From abae4e913e91e64153edcc8cb771393062432ea2 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 22 Oct 2009 14:59:56 +0300 Subject: Lowering toplevel widget puts app to background. Since raising toplevel widget nowdays brings the whole app to top, logically lowering toplevel widget should put the app to background. Reviewed-by: axis --- src/gui/kernel/qwidget_s60.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index abf5ba5..cb615fe 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -564,8 +564,13 @@ void QWidgetPrivate::lower_sys() Q_Q(QWidget); Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); - if (q->internalWinId()) - q->internalWinId()->DrawableWindow()->SetOrdinalPosition(-1); + if (q->internalWinId()) { + // If toplevel widget, lower app to background + if (q->isWindow()) + S60->wsSession().SetWindowGroupOrdinalPosition(S60->windowGroup().Identifier(), -1); + else + q->internalWinId()->DrawableWindow()->SetOrdinalPosition(-1); + } if (!q->isWindow()) invalidateBuffer(q->rect()); -- cgit v0.12 From e4954731369d9b339a79ec9fe737d70ef6dc4755 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Thu, 22 Oct 2009 15:38:25 +0200 Subject: In Vista style, renaming Animation, Transition and Pulse There is a name clash, so we prefixed them with QWindowsVista Reviewed-by: Benjamin Poulain --- src/gui/styles/qwindowsvistastyle.cpp | 50 +++++++++++++++++------------------ src/gui/styles/qwindowsvistastyle_p.h | 24 ++++++++--------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp index 6cb8b40..aafd087 100644 --- a/src/gui/styles/qwindowsvistastyle.cpp +++ b/src/gui/styles/qwindowsvistastyle.cpp @@ -159,7 +159,7 @@ QWindowsVistaStyle::QWindowsVistaStyle() } //convert Qt state flags to uxtheme button states -int buttonStateId(int flags, int partId) +static int buttonStateId(int flags, int partId) { int stateId = 0; if (partId == BP_RADIOBUTTON || partId == BP_CHECKBOX) { @@ -190,7 +190,7 @@ int buttonStateId(int flags, int partId) return stateId; } -void Animation::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaAnimation::paint(QPainter *painter, const QStyleOption *option) { Q_UNUSED(option); Q_UNUSED(painter); @@ -205,7 +205,7 @@ void Animation::paint(QPainter *painter, const QStyleOption *option) + ((1-alpha)*_secondaryImage) */ -void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { +void QWindowsVistaAnimation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { if (_secondaryImage.isNull() || _primaryImage.isNull()) return; @@ -251,7 +251,7 @@ void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { initial and final state of the transition, depending on the time difference between _startTime and current time. */ -void Transition::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaTransition::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -278,7 +278,7 @@ void Transition::paint(QPainter *painter, const QStyleOption *option) secondary pulse images depending on the time difference between _startTime and current time. */ -void Pulse::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaPulse::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -393,8 +393,8 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt startImage.fill(0); QPainter startPainter(&startImage); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); // If we have a running animation on the widget already, we will use that to paint the initial @@ -531,7 +531,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt case PE_IndicatorCheckBox: case PE_IndicatorRadioButton: { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { a->paint(painter, option); } else { QWindowsXPStyle::drawPrimitive(element, option, painter, widget); @@ -644,7 +644,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt break; case PE_FrameLineEdit: - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { QPainter *p = painter; @@ -929,13 +929,13 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); QStyleOptionButton opt = *button; opt.state = (QStyle::State)oldState; startImage.fill(0); - Transition *t = new Transition; + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); QPainter startPainter(&startImage); @@ -972,7 +972,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { name = QLatin1String("BUTTON"); @@ -999,14 +999,14 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption !(state & (State_Sunken | State_On)) && !(state & State_MouseOver) && (state & State_Enabled) && (state & State_Active)) { - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); if (!anim && widget) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); startImage.fill(0); QImage alternateImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); alternateImage.fill(0); - Pulse *pulse = new Pulse; + QWindowsVistaPulse *pulse = new QWindowsVistaPulse; pulse->setWidget(const_cast(widget)); QPainter startPainter(&startImage); @@ -1079,7 +1079,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QProgressBar *progressbar = qobject_cast(widget)) { if (((progressbar->value() > 0 && d->transitionsEnabled()) || isIndeterminate)) { if (!d->widgetAnimation(progressbar) && progressbar->value() < progressbar->maximum()) { - Animation *a = new Animation; + QWindowsVistaAnimation *a = new QWindowsVistaAnimation; a->setWidget(const_cast(widget)); a->setStartTime(QTime::currentTime()); d->startAnimation(a); @@ -1095,7 +1095,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption QTime current = QTime::currentTime(); if (isIndeterminate) { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 120; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1165,7 +1165,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption } d->drawBackground(theme); - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 140; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1603,8 +1603,8 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); if (!anim) { if (const QStyleOptionComboBox *combo = qstyleoption_cast(option)) { @@ -1651,7 +1651,7 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle t->setDuration(500); } - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); return; } @@ -2533,7 +2533,7 @@ void QWindowsVistaStylePrivate::timerEvent() !animations[i]->running() || !QWindowsVistaStylePrivate::useVista()) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; } } @@ -2546,14 +2546,14 @@ void QWindowsVistaStylePrivate::stopAnimation(const QWidget *w) { for (int i = animations.size() - 1 ; i >= 0 ; --i) { if (animations[i]->widget() == w) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; break; } } } -void QWindowsVistaStylePrivate::startAnimation(Animation *t) +void QWindowsVistaStylePrivate::startAnimation(QWindowsVistaAnimation *t) { Q_Q(QWindowsVistaStyle); stopAnimation(t->widget()); @@ -2575,11 +2575,11 @@ bool QWindowsVistaStylePrivate::transitionsEnabled() const } -Animation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const +QWindowsVistaAnimation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const { if (!widget) return 0; - foreach (Animation *a, animations) { + foreach (QWindowsVistaAnimation *a, animations) { if (a->widget() == widget) return a; } diff --git a/src/gui/styles/qwindowsvistastyle_p.h b/src/gui/styles/qwindowsvistastyle_p.h index e9bbb77..04823c1 100644 --- a/src/gui/styles/qwindowsvistastyle_p.h +++ b/src/gui/styles/qwindowsvistastyle_p.h @@ -136,11 +136,11 @@ QT_BEGIN_NAMESPACE #define TDLG_SECONDARYPANEL 8 #endif -class Animation +class QWindowsVistaAnimation { public : - Animation() : _running(true) { } - virtual ~Animation() { } + QWindowsVistaAnimation() : _running(true) { } + virtual ~QWindowsVistaAnimation() { } QWidget * widget() const { return _widget; } bool running() const { return _running; } const QTime &startTime() const { return _startTime; } @@ -161,11 +161,11 @@ protected: // Handles state transition animations -class Transition : public Animation +class QWindowsVistaTransition : public QWindowsVistaAnimation { public : - Transition() : Animation() {} - virtual ~Transition() { } + QWindowsVistaTransition() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaTransition() { } void setDuration(int duration) { _duration = duration; } void setStartImage(const QImage &image) { _primaryImage = image; } void setEndImage(const QImage &image) { _secondaryImage = image; } @@ -176,11 +176,11 @@ public : // Handles pulse animations (default buttons) -class Pulse: public Animation +class QWindowsVistaPulse: public QWindowsVistaAnimation { public : - Pulse() : Animation() {} - virtual ~Pulse() { } + QWindowsVistaPulse() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaPulse() { } void setDuration(int duration) { _duration = duration; } void setPrimaryImage(const QImage &image) { _primaryImage = image; } void setAlternateImage(const QImage &image) { _secondaryImage = image; } @@ -199,15 +199,15 @@ public: ~QWindowsVistaStylePrivate(); static bool resolveSymbols(); static inline bool useVista(); - void startAnimation(Animation *); + void startAnimation(QWindowsVistaAnimation *); void stopAnimation(const QWidget *); - Animation* widgetAnimation(const QWidget *) const; + QWindowsVistaAnimation* widgetAnimation(const QWidget *) const; void timerEvent(); bool transitionsEnabled() const; QWidget *treeViewHelper(); private: - QList animations; + QList animations; QBasicTimer animationTimer; QWidget *m_treeViewHelper; }; -- cgit v0.12 From cbbd7e084c7e46fd906db26b13032b8368c59093 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 22 Oct 2009 13:26:45 +0200 Subject: QtGui release/debug binary compatibility QtGui had some debug functions only exported in the debug build. Now these are exported in release mode as well, but as stubs (i.e. no debug output is generated). Reviewed-by: Thiago Macieira --- src/gui/graphicsview/qgraphicslinearlayout.cpp | 10 +++++----- src/gui/graphicsview/qgraphicslinearlayout.h | 2 -- src/gui/styles/qstyle.cpp | 4 ++-- src/gui/styles/qstyle.h | 2 -- src/gui/styles/qstyleoption.cpp | 10 +++++----- src/gui/styles/qstyleoption.h | 2 -- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp index 7ff7c9b..5684f0e 100644 --- a/src/gui/graphicsview/qgraphicslinearlayout.cpp +++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp @@ -59,7 +59,7 @@ You can add widgets, layouts, stretches (addStretch(), insertStretch() or setStretchFactor()), and spacings (setItemSpacing()) to a linear - layout. The layout takes ownership of the items. In some cases when the layout + layout. The layout takes ownership of the items. In some cases when the layout item also inherits from QGraphicsItem (such as QGraphicsWidget) there will be a ambiguity in ownership because the layout item belongs to two ownership hierarchies. See the documentation of QGraphicsLayoutItem::setOwnedByLayout() how to handle @@ -208,7 +208,7 @@ QGraphicsLinearLayout::~QGraphicsLinearLayout() for (int i = count() - 1; i >= 0; --i) { QGraphicsLayoutItem *item = itemAt(i); // The following lines can be removed, but this removes the item - // from the layout more efficiently than the implementation of + // from the layout more efficiently than the implementation of // ~QGraphicsLayoutItem. removeAt(i); if (item) { @@ -542,18 +542,18 @@ void QGraphicsLinearLayout::invalidate() QGraphicsLayout::invalidate(); } -#ifdef QT_DEBUG void QGraphicsLinearLayout::dump(int indent) const { +#ifdef QT_DEBUG if (qt_graphicsLayoutDebug()) { Q_D(const QGraphicsLinearLayout); qDebug("%*s%s layout", indent, "", d->orientation == Qt::Horizontal ? "Horizontal" : "Vertical"); d->engine.dump(indent + 1); } -} #endif +} QT_END_NAMESPACE - + #endif //QT_NO_GRAPHICSVIEW diff --git a/src/gui/graphicsview/qgraphicslinearlayout.h b/src/gui/graphicsview/qgraphicslinearlayout.h index 742392e..15fe81a 100644 --- a/src/gui/graphicsview/qgraphicslinearlayout.h +++ b/src/gui/graphicsview/qgraphicslinearlayout.h @@ -97,9 +97,7 @@ public: Q5SizePolicy::ControlTypes controlTypes(LayoutSide side) const; #endif -#ifdef QT_DEBUG void dump(int indent = 0) const; -#endif protected: #if 0 diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp index eef1573..ec238a9 100644 --- a/src/gui/styles/qstyle.cpp +++ b/src/gui/styles/qstyle.cpp @@ -2417,13 +2417,13 @@ int QStyle::layoutSpacingImplementation(QSizePolicy::ControlType /* control1 */, return -1; } -#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM) QT_BEGIN_INCLUDE_NAMESPACE #include QT_END_INCLUDE_NAMESPACE QDebug operator<<(QDebug debug, QStyle::State state) { +#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM) debug << "QStyle::State("; QStringList states; @@ -2455,9 +2455,9 @@ QDebug operator<<(QDebug debug, QStyle::State state) qSort(states); debug << states.join(QLatin1String(" | ")); debug << ')'; +#endif return debug; } -#endif /*! \since 4.6 diff --git a/src/gui/styles/qstyle.h b/src/gui/styles/qstyle.h index 1f8d5c8..0014954 100644 --- a/src/gui/styles/qstyle.h +++ b/src/gui/styles/qstyle.h @@ -878,9 +878,7 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::State) Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::SubControls) -#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DEBUG) Q_GUI_EXPORT QDebug operator<<(QDebug debug, QStyle::State state); -#endif QT_END_NAMESPACE diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp index 10a6b5b..061afcc 100644 --- a/src/gui/styles/qstyleoption.cpp +++ b/src/gui/styles/qstyleoption.cpp @@ -45,9 +45,7 @@ # include "private/qt_mac_p.h" # include "qmacstyle_mac.h" #endif -#ifndef QT_NO_DEBUG #include -#endif #include QT_BEGIN_NAMESPACE @@ -1254,7 +1252,7 @@ QStyleOptionViewItemV4::QStyleOptionViewItemV4(int version) \brief the features of the group box frame The frame is flat by default. - + \sa QStyleOptionFrameV2::FrameFeature */ @@ -5298,9 +5296,9 @@ QStyleHintReturnVariant::QStyleHintReturnVariant() : QStyleHintReturn(Version, T Returns a T or 0 depending on the type of \a hint. */ -#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM) QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType) { +#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM) switch (optionType) { case QStyleOption::SO_Default: debug << "SO_Default"; break; @@ -5361,19 +5359,21 @@ QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType) case QStyleOption::SO_GraphicsItem: debug << "SO_GraphicsItem"; break; } +#endif return debug; } QDebug operator<<(QDebug debug, const QStyleOption &option) { +#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM) debug << "QStyleOption("; debug << QStyleOption::OptionType(option.type); debug << ',' << (option.direction == Qt::RightToLeft ? "RightToLeft" : "LeftToRight"); debug << ',' << option.state; debug << ',' << option.rect; debug << ')'; +#endif return debug; } -#endif QT_END_NAMESPACE diff --git a/src/gui/styles/qstyleoption.h b/src/gui/styles/qstyleoption.h index 2860664..bf8b479 100644 --- a/src/gui/styles/qstyleoption.h +++ b/src/gui/styles/qstyleoption.h @@ -938,10 +938,8 @@ T qstyleoption_cast(QStyleHintReturn *hint) return 0; } -#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DEBUG) Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType); Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption &option); -#endif QT_END_NAMESPACE -- cgit v0.12 From 63b8a706c57ed292d82fc16a446daa543cf12a38 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 22 Oct 2009 15:21:29 +0200 Subject: stabilize QListView test --- tests/auto/qlistview/tst_qlistview.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 6e211ae..3968529 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -1132,6 +1132,7 @@ void tst_QListView::selection() #endif v.show(); + QTest::qWaitForWindowShown(&v); QApplication::processEvents(); v.setSelection(selectionRect, QItemSelectionModel::ClearAndSelect); @@ -1184,6 +1185,7 @@ void tst_QListView::scrollTo() lv.setModel(&model); lv.setFixedSize(100, 200); lv.show(); + QTest::qWaitForWindowShown(&lv); //by default, the list view scrolls per item and has no wrapping QModelIndex index = model.index(6,0); @@ -1782,12 +1784,13 @@ void tst_QListView::task262152_setModelColumnNavigate() view.setModelColumn(1); view.show(); - QTest::qWait(100); + QTest::qWaitForWindowShown(&view); + QTest::qWait(10); QTest::keyClick(&view, Qt::Key_Down); - QTest::qWait(100); + QTest::qWait(10); QCOMPARE(view.currentIndex(), model.index(1,1)); QTest::keyClick(&view, Qt::Key_Down); - QTest::qWait(100); + QTest::qWait(10); QCOMPARE(view.currentIndex(), model.index(2,1)); } -- cgit v0.12 From 44aa15a08dd8e7e1ea428fd8868a8e531f5ba4d9 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Thu, 22 Oct 2009 16:04:34 +0200 Subject: Autotest fix for parallel animation group On macos (as on symbian), we need to leave some time for the application to become responsive. --- .../tst_qparallelanimationgroup.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp index 8578d36..8d937e9 100644 --- a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp +++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp @@ -56,8 +56,7 @@ public: virtual ~tst_QParallelAnimationGroup(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void construction(); @@ -86,13 +85,13 @@ tst_QParallelAnimationGroup::~tst_QParallelAnimationGroup() { } -void tst_QParallelAnimationGroup::init() +void tst_QParallelAnimationGroup::initTestCase() { qRegisterMetaType("QAbstractAnimation::State"); -} - -void tst_QParallelAnimationGroup::cleanup() -{ +#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAC) || defined(Q_WS_WINCE) + // give the Symbian and mac app start event queue time to clear + QTest::qWait(1000); +#endif } void tst_QParallelAnimationGroup::construction() @@ -486,10 +485,6 @@ void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup() void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup() { -#if defined(Q_OS_SYMBIAN) - // give the Symbian app start event queue time to clear - QTest::qWait(1000); -#endif // test if children can be activated when their group is stopped QParallelAnimationGroup group; -- cgit v0.12 From bff3c3daf29e581cd0b8b990491ff9444c63a3e9 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 22 Oct 2009 16:09:43 +0200 Subject: Update 4.6 def files Reviewed-by: TrustMe --- src/s60installs/eabi/QtCoreu.def | 2 ++ src/s60installs/eabi/QtGuiu.def | 44 ++++++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 2ecc48f..33df9fe 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3577,4 +3577,6 @@ EXPORTS uncompress @ 3576 NONAME zError @ 3577 NONAME zlibVersion @ 3578 NONAME + _ZNSsC1EPKcRKSaIcE @ 3579 NONAME + _ZNSsC2EPKcRKSaIcE @ 3580 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 1f4be7a..0c47232 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -1511,13 +1511,13 @@ EXPORTS _ZN12QApplication13startDragTimeEv @ 1510 NONAME _ZN12QApplication14navigationModeEv @ 1511 NONAME _ZN12QApplication14overrideCursorEv @ 1512 NONAME - _ZN12QApplication14s60EventFilterEP8TWsEvent @ 1513 NONAME + _ZN12QApplication14s60EventFilterEP8TWsEvent @ 1513 NONAME ABSENT _ZN12QApplication14setGlobalStrutERK5QSize @ 1514 NONAME _ZN12QApplication15closeAllWindowsEv @ 1515 NONAME _ZN12QApplication15cursorFlashTimeEv @ 1516 NONAME _ZN12QApplication15isEffectEnabledEN2Qt8UIEffectE @ 1517 NONAME _ZN12QApplication15layoutDirectionEv @ 1518 NONAME - _ZN12QApplication15s60ProcessEventEP8TWsEvent @ 1519 NONAME + _ZN12QApplication15s60ProcessEventEP8TWsEvent @ 1519 NONAME ABSENT _ZN12QApplication15setActiveWindowEP7QWidget @ 1520 NONAME _ZN12QApplication15setInputContextEP13QInputContext @ 1521 NONAME _ZN12QApplication15topLevelWidgetsEv @ 1522 NONAME @@ -1546,10 +1546,10 @@ EXPORTS _ZN12QApplication20changeOverrideCursorERK7QCursor @ 1545 NONAME _ZN12QApplication20desktopSettingsAwareEv @ 1546 NONAME _ZN12QApplication20setStartDragDistanceEi @ 1547 NONAME - _ZN12QApplication20symbianHandleCommandEi @ 1548 NONAME + _ZN12QApplication20symbianHandleCommandEi @ 1548 NONAME ABSENT _ZN12QApplication21keyboardInputIntervalEv @ 1549 NONAME _ZN12QApplication21restoreOverrideCursorEv @ 1550 NONAME - _ZN12QApplication21symbianResourceChangeEi @ 1551 NONAME + _ZN12QApplication21symbianResourceChangeEi @ 1551 NONAME ABSENT _ZN12QApplication22keyboardInputDirectionEv @ 1552 NONAME _ZN12QApplication22quitOnLastWindowClosedEv @ 1553 NONAME _ZN12QApplication22setDoubleClickIntervalEi @ 1554 NONAME @@ -2458,7 +2458,7 @@ EXPORTS _ZN13QInputContext11qt_metacallEN11QMetaObject4CallEiPPv @ 2457 NONAME _ZN13QInputContext11qt_metacastEPKc @ 2458 NONAME _ZN13QInputContext12mouseHandlerEiP11QMouseEvent @ 2459 NONAME - _ZN13QInputContext14s60FilterEventEP7QWidgetP8TWsEvent @ 2460 NONAME + _ZN13QInputContext14s60FilterEventEP7QWidgetP8TWsEvent @ 2460 NONAME ABSENT _ZN13QInputContext14setFocusWidgetEP7QWidget @ 2461 NONAME _ZN13QInputContext15widgetDestroyedEP7QWidget @ 2462 NONAME _ZN13QInputContext16staticMetaObjectE @ 2463 NONAME DATA 16 @@ -5215,11 +5215,11 @@ EXPORTS _ZN24QGraphicsSceneWheelEventD1Ev @ 5214 NONAME _ZN24QGraphicsSceneWheelEventD2Ev @ 5215 NONAME _ZN24QImagePixmapCleanupHooks12addImageHookEPFvxE @ 5216 NONAME - _ZN24QImagePixmapCleanupHooks13addPixmapHookEPFvP7QPixmapE @ 5217 NONAME + _ZN24QImagePixmapCleanupHooks13addPixmapHookEPFvP7QPixmapE @ 5217 NONAME ABSENT _ZN24QImagePixmapCleanupHooks15removeImageHookEPFvxE @ 5218 NONAME - _ZN24QImagePixmapCleanupHooks16removePixmapHookEPFvP7QPixmapE @ 5219 NONAME + _ZN24QImagePixmapCleanupHooks16removePixmapHookEPFvP7QPixmapE @ 5219 NONAME ABSENT _ZN24QImagePixmapCleanupHooks17executeImageHooksEx @ 5220 NONAME - _ZN24QImagePixmapCleanupHooks18executePixmapHooksEP7QPixmap @ 5221 NONAME + _ZN24QImagePixmapCleanupHooks18executePixmapHooksEP7QPixmap @ 5221 NONAME ABSENT _ZN24QImagePixmapCleanupHooks8instanceEv @ 5222 NONAME _ZN24QImagePixmapCleanupHooksC1Ev @ 5223 NONAME _ZN24QImagePixmapCleanupHooksC2Ev @ 5224 NONAME @@ -11585,4 +11585,32 @@ EXPORTS _ZN14QWidgetPrivate17_q_delayedDestroyEP11CCoeControl @ 11584 NONAME _ZN14QWidgetPrivate21activateSymbianWindowEP11CCoeControl @ 11585 NONAME _ZNK17QRasterPixmapData26createCompatiblePixmapDataEv @ 11586 NONAME + _ZN12QApplication18symbianEventFilterEPK13QSymbianEvent @ 11587 NONAME + _ZN12QApplication19symbianProcessEventEPK13QSymbianEvent @ 11588 NONAME + _ZN13QInputContext18symbianFilterEventEP7QWidgetPK13QSymbianEvent @ 11589 NONAME + _ZN13QSymbianEventC1ENS_4TypeEi @ 11590 NONAME + _ZN13QSymbianEventC1EPK8TWsEvent @ 11591 NONAME + _ZN13QSymbianEventC2ENS_4TypeEi @ 11592 NONAME + _ZN13QSymbianEventC2EPK8TWsEvent @ 11593 NONAME + _ZN13QSymbianEventD1Ev @ 11594 NONAME + _ZN13QSymbianEventD2Ev @ 11595 NONAME + _ZN15QGraphicsAnchor13setSizePolicyEN11QSizePolicy6PolicyE @ 11596 NONAME + _ZN19QApplicationPrivate20symbianHandleCommandEi @ 11597 NONAME + _ZN19QApplicationPrivate21symbianProcessWsEventEPK8TWsEvent @ 11598 NONAME + _ZN19QApplicationPrivate21symbianResourceChangeEi @ 11599 NONAME + _ZN24QImagePixmapCleanupHooks24addPixmapDestructionHookEPFvP7QPixmapE @ 11600 NONAME + _ZN24QImagePixmapCleanupHooks25addPixmapModificationHookEPFvP7QPixmapE @ 11601 NONAME + _ZN24QImagePixmapCleanupHooks27removePixmapDestructionHookEPFvP7QPixmapE @ 11602 NONAME + _ZN24QImagePixmapCleanupHooks28removePixmapModificationHookEPFvP7QPixmapE @ 11603 NONAME + _ZN24QImagePixmapCleanupHooks29executePixmapDestructionHooksEP7QPixmap @ 11604 NONAME + _ZN24QImagePixmapCleanupHooks30executePixmapModificationHooksEP7QPixmap @ 11605 NONAME + _ZNK11QPixmapData26createCompatiblePixmapDataEv @ 11606 NONAME + _ZNK13QSymbianEvent17windowServerEventEv @ 11607 NONAME + _ZNK13QSymbianEvent18resourceChangeTypeEv @ 11608 NONAME + _ZNK13QSymbianEvent7commandEv @ 11609 NONAME + _ZNK15QGraphicsAnchor10sizePolicyEv @ 11610 NONAME + _ZNK21QGraphicsLinearLayout4dumpEi @ 11611 NONAME + _Zls6QDebug6QFlagsIN6QStyle9StateFlagEE @ 11612 NONAME + _Zls6QDebugRK12QStyleOption @ 11613 NONAME + _Zls6QDebugRKN12QStyleOption10OptionTypeE @ 11614 NONAME -- cgit v0.12 From 630df1da5d49ed6984dcaffdc5860598b143f66c Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 22 Oct 2009 16:52:18 +0200 Subject: update QtGui def file One private export has been changed from non-const to const pointer parameter Reviewed-by: TrustMe --- src/s60installs/eabi/QtGuiu.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 0c47232..0e1bc43 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -3141,7 +3141,7 @@ EXPORTS _ZN14QWidgetPrivate25setLayoutDirection_helperEN2Qt15LayoutDirectionE @ 3140 NONAME _ZN14QWidgetPrivate26adjustQuitOnCloseAttributeEv @ 3141 NONAME _ZN14QWidgetPrivate26createDefaultWindowSurfaceEv @ 3142 NONAME - _ZN14QWidgetPrivate26nearestGraphicsProxyWidgetEP7QWidget @ 3143 NONAME + _ZN14QWidgetPrivate26nearestGraphicsProxyWidgetEPK7QWidget @ 3143 NONAME _ZN14QWidgetPrivate27widgetInNavigationDirectionENS_9DirectionE @ 3144 NONAME _ZN14QWidgetPrivate29invalidateBuffer_resizeHelperERK6QPointRK5QSize @ 3145 NONAME _ZN14QWidgetPrivate30createDefaultWindowSurface_sysEv @ 3146 NONAME -- cgit v0.12 From 82caa7b3f97c6cda0ebceb477856442653a83699 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Thu, 22 Oct 2009 18:11:19 +0200 Subject: Warning -- Reviewed-by:TrustMe --- src/gui/graphicsview/qgraphicsproxywidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp index 64c51ad..e9173a9 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget.cpp +++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp @@ -397,7 +397,7 @@ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next) do { if (child->isEnabled() && child->isVisibleTo(widget) - && (child->focusPolicy() & focus_flag == focus_flag) + && ((child->focusPolicy() & focus_flag) == focus_flag) && !(child->d_func()->extra && child->d_func()->extra->focus_proxy)) { return child; } -- cgit v0.12 From a5f7f88932c6911fb65552d65d62efdcf496beec Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Thu, 22 Oct 2009 18:11:34 +0200 Subject: Fix crash in QGraphicsView BSP discovered in Amarok. Basically some items were not properly remove in the BSP which means that if you delete one of items, the BSP tree may contain dangling pointers. The problem was in removeItemHelper in QGraphicsScene were the child were removed after reparenting to 0 the topmost parent. The sceneBoundingRect for children was invalid which means that we were removing them in the wrong position inside the BSP. Reparenting to 0 means that the sceneBoundingRect will be the boundingRect but wasn't the case before (for the topmost parent). Reviewed-by:bnilsen --- src/gui/graphicsview/qgraphicsscene.cpp | 14 +++--- .../tst_qgraphicssceneindex.cpp | 58 ++++++++++++++++++++++ 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index a624b10..03c8a97 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -518,6 +518,14 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) item->d_func()->scene = 0; + //We need to remove all children first because they might use their parent + //attributes (e.g. sceneTransform). + if (!item->d_ptr->inDestructor) { + // Remove all children recursively + for (int i = 0; i < item->d_ptr->children.size(); ++i) + q->removeItem(item->d_ptr->children.at(i)); + } + // Unregister focus proxy. item->d_ptr->resetFocusProxy(); @@ -564,12 +572,6 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) ++iterator; } - if (!item->d_ptr->inDestructor) { - // Remove all children recursively - for (int i = 0; i < item->d_ptr->children.size(); ++i) - q->removeItem(item->d_ptr->children.at(i)); - } - if (item->isPanel() && item->isVisible() && item->panelModality() != QGraphicsItem::NonModal) leaveModal(item); diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp index 1109e5e..9dfd486 100644 --- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp +++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp @@ -66,6 +66,7 @@ private slots: void movingItems(); void connectedToSceneRectChanged(); void items(); + void removeItems(); void clear(); private: @@ -268,6 +269,63 @@ void tst_QGraphicsSceneIndex::items() QCOMPARE(scene.items().size(), 3); } +class RectWidget : public QGraphicsWidget +{ + Q_OBJECT +public: + RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent) + { + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + painter->setBrush(brush); + painter->drawRect(boundingRect()); + } +public: + QBrush brush; +}; + +void tst_QGraphicsSceneIndex::removeItems() +{ + QGraphicsScene scene; + + RectWidget *parent = new RectWidget; + parent->brush = QBrush(QColor(Qt::magenta)); + parent->setGeometry(250, 250, 400, 400); + + RectWidget *widget = new RectWidget(parent); + widget->brush = QBrush(QColor(Qt::blue)); + widget->setGeometry(10, 10, 200, 200); + + RectWidget *widgetChild1 = new RectWidget(widget); + widgetChild1->brush = QBrush(QColor(Qt::green)); + widgetChild1->setGeometry(20, 20, 100, 100); + + RectWidget *widgetChild2 = new RectWidget(widgetChild1); + widgetChild2->brush = QBrush(QColor(Qt::yellow)); + widgetChild2->setGeometry(25, 25, 50, 50); + + scene.addItem(parent); + + QGraphicsView view(&scene); + view.resize(600, 600); + view.show(); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + + QApplication::processEvents(); + + scene.removeItem(widgetChild1); + + delete widgetChild1; + + //We move the parent + scene.items(295, 295, 50, 50); + + //This should not crash +} + void tst_QGraphicsSceneIndex::clear() { class MyItem : public QGraphicsItem -- cgit v0.12 From 363c2d0ee8342a014282326b6c660a9a0e919423 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 22 Oct 2009 18:54:33 +0200 Subject: Fix def file error for qtcore Problem caused by freezing with wrong openC version in environment Reviewed-by: TrustMe --- src/s60installs/eabi/QtCoreu.def | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 33df9fe..2ecc48f 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3577,6 +3577,4 @@ EXPORTS uncompress @ 3576 NONAME zError @ 3577 NONAME zlibVersion @ 3578 NONAME - _ZNSsC1EPKcRKSaIcE @ 3579 NONAME - _ZNSsC2EPKcRKSaIcE @ 3580 NONAME -- cgit v0.12 From 18acf933474577a4cec31560eeee22de04111e1e Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 22 Oct 2009 18:59:09 +0200 Subject: QtGui def file update Two new APIs in QDesktopWidget --- src/s60installs/eabi/QtGuiu.def | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 0e1bc43..ae69475 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -11613,4 +11613,6 @@ EXPORTS _Zls6QDebug6QFlagsIN6QStyle9StateFlagEE @ 11612 NONAME _Zls6QDebugRK12QStyleOption @ 11613 NONAME _Zls6QDebugRKN12QStyleOption10OptionTypeE @ 11614 NONAME + _ZNK14QDesktopWidget14screenGeometryEPK7QWidget @ 11615 NONAME + _ZNK14QDesktopWidget17availableGeometryEPK7QWidget @ 11616 NONAME -- cgit v0.12 From a95883e90fadeddd2f49da6765fb2d79f7ce77bd Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Fri, 23 Oct 2009 09:14:39 +0200 Subject: Added visual DnD indicator for left to right flow in QListView Extended the behaviour already present in QAbstractItemView into QListView. This means some code duplication which should maybe be refactored at some point. (Seems to be the price to pay when some delegate does almost the same thing as the base class). No auto-test, as it's a drag-and-drop related task. Reviewed-by: Thierry Task-number: QTBUG-3730 --- src/gui/itemviews/qabstractitemview.h | 1 + src/gui/itemviews/qabstractitemview_p.h | 3 +- src/gui/itemviews/qlistview.cpp | 109 +++++++++++++++++++++++++++++++- src/gui/itemviews/qlistview_p.h | 9 +++ 4 files changed, 119 insertions(+), 3 deletions(-) diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h index b4f0957..f438148 100644 --- a/src/gui/itemviews/qabstractitemview.h +++ b/src/gui/itemviews/qabstractitemview.h @@ -361,6 +361,7 @@ private: friend class QTreeViewPrivate; // needed to compile with MSVC friend class QAccessibleItemRow; + friend class QListModeViewBase; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractItemView::EditTriggers) diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h index fcf381a..66b7662 100644 --- a/src/gui/itemviews/qabstractitemview_p.h +++ b/src/gui/itemviews/qabstractitemview_p.h @@ -164,7 +164,8 @@ public: } #ifndef QT_NO_DRAGANDDROP - QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + inline bool canDecode(QDropEvent *e) const { QStringList modelTypes = model->mimeTypes(); const QMimeData *mime = e->mimeData(); diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp index f58f458..109d760 100644 --- a/src/gui/itemviews/qlistview.cpp +++ b/src/gui/itemviews/qlistview.cpp @@ -853,8 +853,13 @@ void QListView::resizeEvent(QResizeEvent *e) */ void QListView::dragMoveEvent(QDragMoveEvent *e) { - if (!d_func()->commonListView->filterDragMoveEvent(e)) - QAbstractItemView::dragMoveEvent(e); + Q_D(QListView); + if (!d->commonListView->filterDragMoveEvent(e)) { + if (viewMode() == QListView::ListMode && flow() == QListView::LeftToRight) + static_cast(d->commonListView)->dragMoveEvent(e); + else + QAbstractItemView::dragMoveEvent(e); + } } @@ -1804,6 +1809,16 @@ QItemSelection QListViewPrivate::selection(const QRect &rect) const return selection; } +#ifndef QT_NO_DRAGANDDROP +QAbstractItemView::DropIndicatorPosition QListViewPrivate::position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const +{ + if (viewMode == QListView::ListMode && flow == QListView::LeftToRight) + return static_cast(commonListView)->position(pos, rect, idx); + else + return QAbstractItemViewPrivate::position(pos, rect, idx); +} +#endif + /* * Common ListView Implementation */ @@ -1893,6 +1908,96 @@ void QListModeViewBase::paintDragDrop(QPainter *painter) // in IconMode, it makes no sense to show it dd->paintDropIndicator(painter); } + +QAbstractItemView::DropIndicatorPosition QListModeViewBase::position(const QPoint &pos, const QRect &rect, const QModelIndex &index) const +{ + QAbstractItemView::DropIndicatorPosition r = QAbstractItemView::OnViewport; + if (!dd->overwrite) { + const int margin = 2; + if (pos.x() - rect.left() < margin) { + r = QAbstractItemView::AboveItem; // Visually, on the left + } else if (rect.right() - pos.x() < margin) { + r = QAbstractItemView::BelowItem; // Visually, on the right + } else if (rect.contains(pos, true)) { + r = QAbstractItemView::OnItem; + } + } else { + QRect touchingRect = rect; + touchingRect.adjust(-1, -1, 1, 1); + if (touchingRect.contains(pos, false)) { + r = QAbstractItemView::OnItem; + } + } + + if (r == QAbstractItemView::OnItem && (!(dd->model->flags(index) & Qt::ItemIsDropEnabled))) + r = pos.x() < rect.center().x() ? QAbstractItemView::AboveItem : QAbstractItemView::BelowItem; + + return r; +} + +void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event) +{ + if (qq->dragDropMode() == QAbstractItemView::InternalMove + && (event->source() != qq || !(event->possibleActions() & Qt::MoveAction))) + return; + + // ignore by default + event->ignore(); + + QModelIndex index = qq->indexAt(event->pos()); + dd->hover = index; + if (!dd->droppingOnItself(event, index) + && dd->canDecode(event)) { + + if (index.isValid() && dd->showDropIndicator) { + QRect rect = qq->visualRect(index); + dd->dropIndicatorPosition = position(event->pos(), rect, index); + switch (dd->dropIndicatorPosition) { + case QAbstractItemView::AboveItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.left(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::BelowItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.right(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnItem: + if (dd->isIndexDropEnabled(index)) { + dd->dropIndicatorRect = rect; + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnViewport: + dd->dropIndicatorRect = QRect(); + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + break; + } + } else { + dd->dropIndicatorRect = QRect(); + dd->dropIndicatorPosition = QAbstractItemView::OnViewport; + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + } + dd->viewport->update(); + } // can decode + + if (dd->shouldAutoScroll(event->pos())) + qq->startAutoScroll(); +} + #endif //QT_NO_DRAGANDDROP void QListModeViewBase::updateVerticalScrollBar(const QSize &step) diff --git a/src/gui/itemviews/qlistview_p.h b/src/gui/itemviews/qlistview_p.h index de4c7f3..3f8f9db 100644 --- a/src/gui/itemviews/qlistview_p.h +++ b/src/gui/itemviews/qlistview_p.h @@ -231,6 +231,11 @@ public: #ifndef QT_NO_DRAGANDDROP void paintDragDrop(QPainter *painter); + + // The next two methods are to be used on LefToRight flow only. + // WARNING: Plenty of duplicated code from QAbstractItemView{,Private}. + QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + void dragMoveEvent(QDragMoveEvent *e); #endif private: @@ -356,6 +361,10 @@ public: QItemSelection selection(const QRect &rect) const; void selectAll(QItemSelectionModel::SelectionFlags command); +#ifndef QT_NO_DRAGANDDROP + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; +#endif + inline void setGridSize(const QSize &size) { grid = size; } inline QSize gridSize() const { return grid; } inline void setWrapping(bool b) { wrap = b; } -- cgit v0.12 From cc4d3fbc317bc9044c3ce23569f0225b29af4fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Thu, 22 Oct 2009 14:49:40 +0200 Subject: QGraphicsLineItem leave traces when moving around (reg. against 4.5) The problem was that QGraphicsLineItem's bounding rect is an empty rect (either width is 0 or height is 0), and when updating the item's old occupied area, we explicitly checked whether the rect was empty() or not. In case of being empty (rect.isEmpty()) we did nothing, which was the root of the problem. We can safely remove the rect.isEmpty() check without any significant loss of performance since the common case is that the rect is non-empty. And in the case of being empty, we'll bail out from QGraphicsViewPrivate::updateRect's highly optimized rect intersection. Auto test included. Task: QTBUG-4877 Reviewed-by: alexis --- src/gui/graphicsview/qgraphicsscene.cpp | 2 +- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 34 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index 03c8a97..9736c3e 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -4888,7 +4888,7 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item, bool continue; } - if (item->d_ptr->paintedViewBoundingRectsNeedRepaint && !paintedViewBoundingRect.isEmpty()) { + if (item->d_ptr->paintedViewBoundingRectsNeedRepaint) { paintedViewBoundingRect.translate(viewPrivate->dirtyScrollOffset); if (!viewPrivate->updateRect(paintedViewBoundingRect)) paintedViewBoundingRect = QRect(-1, -1, -1, -1); // Outside viewport. diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index dcad8e1..4fae911 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -372,6 +372,7 @@ private slots: void itemUsesExtendedStyleOption(); void itemSendsGeometryChanges(); void moveItem(); + void moveLineItem(); void sorting_data(); void sorting(); void itemHasNoContents(); @@ -7438,6 +7439,39 @@ void tst_QGraphicsItem::moveItem() COMPARE_REGIONS(view.paintedRegion, expectedParentRegion); } +void tst_QGraphicsItem::moveLineItem() +{ + QGraphicsScene scene; + scene.setSceneRect(0, 0, 200, 200); + QGraphicsLineItem *item = new QGraphicsLineItem(0, 0, 100, 0); + item->setPos(50, 50); + scene.addItem(item); + + MyGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + view.reset(); + + const QRect itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform()) + .mapRect(item->boundingRect()).toRect(); + QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); // antialiasing + + // Make sure the calculated region is correct. + item->update(); + QTest::qWait(10); + QCOMPARE(view.paintedRegion, expectedRegion); + view.reset(); + + // Old position: (50, 50) + item->setPos(50, 100); + expectedRegion += expectedRegion.translated(0, 50); + QTest::qWait(10); + QCOMPARE(view.paintedRegion, expectedRegion); +} + void tst_QGraphicsItem::sorting_data() { QTest::addColumn("index"); -- cgit v0.12 From e751b8e9b0fdc1e23084a102ca6d86fea7f530d4 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Fri, 23 Oct 2009 12:05:30 +0200 Subject: MAke sure we call setCurrentTime when an animation is started This could be prevented by a pause animation currently running. Reviewed-by: Leo --- src/corelib/animation/qabstractanimation.cpp | 19 ++++++++----------- src/corelib/animation/qabstractanimation_p.h | 2 +- tests/auto/qpauseanimation/tst_qpauseanimation.cpp | 9 +++++++++ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index f83c2a1..b8b9214 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -194,15 +194,10 @@ QUnifiedTimer *QUnifiedTimer::instance() return inst; } -void QUnifiedTimer::ensureTimerUpdate(QAbstractAnimation *animation) +void QUnifiedTimer::ensureTimerUpdate() { - if (isPauseTimerActive) { + if (isPauseTimerActive) updateAnimationsTime(); - } else { - // this code is needed when ensureTimerUpdate is called from setState because we update - // the currentTime when an animation starts running (otherwise we could remove it) - animation->setCurrentTime(animation->currentTime()); - } } void QUnifiedTimer::updateAnimationsTime() @@ -381,7 +376,7 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) case QAbstractAnimation::Paused: if (hasRegisteredTimer) // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); if (!guard) return; //here we're sure that we were in running state before and that the @@ -395,9 +390,11 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) // this ensures that the value is updated now that the animation is running if (oldState == QAbstractAnimation::Stopped) { - if (isTopLevel) + if (isTopLevel) { // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); + q->setCurrentTime(totalCurrentTime); + } } } break; @@ -558,7 +555,7 @@ void QAbstractAnimation::setDirection(Direction direction) // the commands order below is important: first we need to setCurrentTime with the old direction, // then update the direction on this and all children and finally restart the pauseTimer if needed if (d->hasRegisteredTimer) - QUnifiedTimer::instance()->ensureTimerUpdate(this); + QUnifiedTimer::instance()->ensureTimerUpdate(); d->direction = direction; updateDirection(direction); diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h index bef0499..f989bce 100644 --- a/src/corelib/animation/qabstractanimation_p.h +++ b/src/corelib/animation/qabstractanimation_p.h @@ -142,7 +142,7 @@ public: this is used for updating the currentTime of all animations in case the pause timer is active or, otherwise, only of the animation passed as parameter. */ - void ensureTimerUpdate(QAbstractAnimation *animation); + void ensureTimerUpdate(); /* this will evaluate the need of restarting the pause timer in case there is still diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp index b11efa0..2546163 100644 --- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp +++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp @@ -260,6 +260,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() animation3.setDuration(200); group.start(); + QCOMPARE(animation1.m_updateCurrentTimeCount, 1); + QCOMPARE(animation2.m_updateCurrentTimeCount, 0); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Running); @@ -267,6 +270,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(250); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 1); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); @@ -275,6 +281,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(500); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 2); + QCOMPARE(animation3.m_updateCurrentTimeCount, 1); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); -- cgit v0.12 From a1301736c3fdc25bdf6f35bf67747804adb83ac3 Mon Sep 17 00:00:00 2001 From: Leonardo Sobral Cunha Date: Fri, 23 Oct 2009 12:08:54 +0200 Subject: Increase realiability of pauseanimation autotests on win Reviewed-by: thierry --- tests/auto/qpauseanimation/tst_qpauseanimation.cpp | 44 ++++++++++++---------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp index 2546163..4d0a7a7 100644 --- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp +++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp @@ -93,8 +93,7 @@ public: virtual ~tst_QPauseAnimation(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void changeDirectionWhileRunning(); @@ -117,20 +116,15 @@ tst_QPauseAnimation::~tst_QPauseAnimation() { } -void tst_QPauseAnimation::init() +void tst_QPauseAnimation::initTestCase() { qRegisterMetaType("QAbstractAnimation::State"); qRegisterMetaType("QAbstractAnimation::DeletionPolicy"); } -void tst_QPauseAnimation::cleanup() -{ -} - void tst_QPauseAnimation::changeDirectionWhileRunning() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(400); @@ -140,8 +134,6 @@ void tst_QPauseAnimation::changeDirectionWhileRunning() animation.setDirection(QAbstractAnimation::Backward); QTest::qWait(animation.totalDuration() + 50); QVERIFY(animation.state() == QAbstractAnimation::Stopped); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::noTimerUpdates_data() @@ -157,8 +149,7 @@ void tst_QPauseAnimation::noTimerUpdates_data() void tst_QPauseAnimation::noTimerUpdates() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; QFETCH(int, duration); QFETCH(int, loopCount); @@ -168,16 +159,19 @@ void tst_QPauseAnimation::noTimerUpdates() animation.setLoopCount(loopCount); animation.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 1 + loopCount); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::mulitplePauseAnimations() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(200); @@ -188,16 +182,26 @@ void tst_QPauseAnimation::mulitplePauseAnimations() animation.start(); animation2.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QVERIFY(animation2.state() == QAbstractAnimation::Running); QCOMPARE(animation.m_updateCurrentTimeCount, 2); QCOMPARE(animation2.m_updateCurrentTimeCount, 2); QTest::qWait(550); + +#ifdef Q_OS_WIN + if (animation2.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation2.state() == QAbstractAnimation::Stopped); QCOMPARE(animation2.m_updateCurrentTimeCount, 3); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::pauseAndPropertyAnimations() @@ -243,7 +247,7 @@ void tst_QPauseAnimation::pauseResume() animation.pause(); QVERIFY(animation.state() == QAbstractAnimation::Paused); animation.start(); - QTest::qWait(250); + QTest::qWait(300); QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 3); } -- cgit v0.12 From d48c3129992bf4b962201fa908f37f0e2a61f7c4 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Fri, 23 Oct 2009 14:16:38 +0300 Subject: Fixed softkey autotest build after 5370e5ff. Reviewed-by: axis --- tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp b/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp index 6efa85b..87e0533 100644 --- a/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp +++ b/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp @@ -47,6 +47,10 @@ #include "qdialogbuttonbox.h" #include "private/qsoftkeymanager_p.h" +#ifdef Q_OS_SYMBIAN +#include "qsymbianevent.h" +#endif + #ifdef Q_WS_S60 static const int s60CommandStart = 6000; #endif @@ -69,6 +73,13 @@ private slots: void updateSoftKeysCompressed(); void handleCommand(); void checkSoftkeyEnableStates(); + +private: // utils + inline void simulateSymbianCommand(int command) + { + QSymbianEvent event1(QSymbianEvent::CommandEvent, command); + qApp->symbianProcessEvent(&event1); + }; }; class EventListener : public QObject @@ -167,8 +178,8 @@ void tst_QSoftKeyManager::handleCommand() // QTest::keyPress(&w, Qt::Key_Context1); // QTest::keyPress(&w, Qt::Key_Context2); - qApp->symbianHandleCommand(6000); - qApp->symbianHandleCommand(6001); + simulateSymbianCommand(6000); + simulateSymbianCommand(6001); QApplication::processEvents(); @@ -200,9 +211,9 @@ void tst_QSoftKeyManager::checkSoftkeyEnableStates() //disabled button gets none. for (int i = 0; i < 10; i++) { //simulate "Restore Defaults" softkey press - qApp->symbianHandleCommand(s60CommandStart); + simulateSymbianCommand(s60CommandStart); //simulate "help" softkey press - qApp->symbianHandleCommand(s60CommandStart + 1); + simulateSymbianCommand(s60CommandStart + 1); } QApplication::processEvents(); QCOMPARE(spy0.count(), 10); @@ -212,16 +223,16 @@ void tst_QSoftKeyManager::checkSoftkeyEnableStates() for (int i = 0; i < 10; i++) { //simulate "Restore Defaults" softkey press - qApp->symbianHandleCommand(s60CommandStart); + simulateSymbianCommand(s60CommandStart); //simulate "help" softkey press - qApp->symbianHandleCommand(s60CommandStart + 1); + simulateSymbianCommand(s60CommandStart + 1); //switch enabled button to disabled and vice versa pBHelp->setEnabled(!pBHelp->isEnabled()); pBDefaults->setEnabled(!pBDefaults->isEnabled()); } QApplication::processEvents(); QCOMPARE(spy0.count(), 5); - QCOMPARE(spy1.count(), 5); + QCOMPARE(spy1.count(), 5); } QTEST_MAIN(tst_QSoftKeyManager) -- cgit v0.12 From 2c0921b667ec74df6ad3d749b30bb9b7c5843343 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Fri, 23 Oct 2009 14:03:08 +0200 Subject: Fixed crash in QGraphicsEffects Reviewed-by: Samuel --- src/gui/effects/qgraphicseffect_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h index 8fb55d8..fc925f2 100644 --- a/src/gui/effects/qgraphicseffect_p.h +++ b/src/gui/effects/qgraphicseffect_p.h @@ -102,8 +102,8 @@ public: QGraphicsEffect::ChangeFlags flags; if (source) { flags |= QGraphicsEffect::SourceDetached; - source->d_func()->detach(); source->d_func()->invalidateCache(); + source->d_func()->detach(); delete source; } source = newSource; -- cgit v0.12 From dd48c27fcdded149c8db7d08107632c2476178ca Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Fri, 23 Oct 2009 15:26:23 +0300 Subject: Softkeys should not put exit by default on RSK for dialogs and popups. The idea is that softkeys and pop-ups need to take care of setting all softkeys by themselves. Task-number: QTBUG-4916 Reviewed-by: Jason Barron --- src/gui/kernel/qsoftkeymanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp index 6116a5e..fac936f 100644 --- a/src/gui/kernel/qsoftkeymanager.cpp +++ b/src/gui/kernel/qsoftkeymanager.cpp @@ -237,7 +237,8 @@ void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList &softkeys) } } - if (needsExitButton) + Qt::WindowType sourceWindowType = QSoftKeyManagerPrivate::softKeySource->window()->windowType(); + if (needsExitButton && sourceWindowType != Qt::Dialog && sourceWindowType != Qt::Popup) QT_TRAP_THROWING(nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QSoftKeyManager::tr("Exit")))); nativeContainer->DrawDeferred(); // 3.1 needs an extra invitation -- cgit v0.12 From 72fb0f2637db401efd178b9d4139fc2b6ef59112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Fri, 23 Oct 2009 13:17:06 +0200 Subject: Wrong worldTransform() on the painter in QGraphicsScene::drawForeground. The painter's worldTransform() is updated for each item we draw, and when the DontSavePainterState optimization flag is set, this change is not protected by save() and restore(). After all the items are drawn, it means the painter is left with the last drawn item's transform. We therefore have to make sure it is reset back to whatever it was before the items were drawn. Auto-test included. Task-number: QTBUG-4973 Reviewed-by: alexis Reviewed-by: andreas --- src/gui/graphicsview/qgraphicsview.cpp | 8 +++++ tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 49 ++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 32747cc..49348de 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -3306,6 +3306,14 @@ void QGraphicsView::paintEvent(QPaintEvent *event) if (!(d->optimizationFlags & IndirectPainting)) { d->scene->d_func()->drawItems(&painter, viewTransformed ? &viewTransform : 0, &d->exposedRegion, viewport()); + // Make sure the painter's world transform is restored correctly when + // drawing without painter state protection (DontSavePainterState). + // We only change the worldTransform() so there's no need to do a full-blown + // save() and restore(). Also note that we don't have to do this in case of + // IndirectPainting (the else branch), because in that case we always save() + // and restore() in QGraphicsScene::drawItems(). + if (!d->scene->d_func()->painterStateProtection) + painter.setWorldTransform(viewTransform); } else { // Find all exposed items bool allItems = false; diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index dc08d0e..092f81d 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -194,6 +194,8 @@ private slots: void acceptDrops(); void optimizationFlags(); void optimizationFlags_dontSavePainterState(); + void optimizationFlags_dontSavePainterState2_data(); + void optimizationFlags_dontSavePainterState2(); void levelOfDetail_data(); void levelOfDetail(); void scrollBarRanges_data(); @@ -2455,6 +2457,53 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState() QTest::qWaitForWindowShown(&painter2); } +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2_data() +{ + QTest::addColumn("savePainter"); + QTest::newRow("With painter state protection") << true; + QTest::newRow("Without painter state protection") << false; +} + +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2() +{ + QFETCH(bool, savePainter); + + class MyScene : public QGraphicsScene + { + public: + void drawBackground(QPainter *p, const QRectF &) + { transformInDrawBackground = p->worldTransform(); } + + void drawForeground(QPainter *p, const QRectF &) + { transformInDrawForeground = p->worldTransform(); } + + QTransform transformInDrawBackground; + QTransform transformInDrawForeground; + }; + + MyScene scene; + // Add transformed dummy items to make sure the painter's worldTransform() is changed in drawItems. + scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2)); + scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200)); + + QGraphicsView view(&scene); + if (!savePainter) + view.setOptimizationFlag(QGraphicsView::DontSavePainterState); + view.rotate(45); + view.scale(1.5, 1.5); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(150); + + // Make sure the painter's world transform is preserved after drawItems. + const QTransform expectedTransform = view.viewportTransform(); + QVERIFY(!expectedTransform.isIdentity()); + QCOMPARE(scene.transformInDrawForeground, expectedTransform); + QCOMPARE(scene.transformInDrawBackground, expectedTransform); +} + class LodItem : public QGraphicsRectItem { public: -- cgit v0.12 From b2cc784cbba9c790c2cc083cf99d9a2a112a9c27 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Fri, 23 Oct 2009 15:36:30 +0200 Subject: Phonon: allows to stream wave files from QIODevice Reviewed-by: trust Me --- src/3rdparty/phonon/ds9/iodevicereader.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/3rdparty/phonon/ds9/iodevicereader.cpp b/src/3rdparty/phonon/ds9/iodevicereader.cpp index e0c505c..695af59 100644 --- a/src/3rdparty/phonon/ds9/iodevicereader.cpp +++ b/src/3rdparty/phonon/ds9/iodevicereader.cpp @@ -36,17 +36,20 @@ namespace Phonon //these mediatypes define a stream, its type will be autodetected by DirectShow static QVector getMediaTypes() { - AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_NULL, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; + //the order here is important because otherwise, + //directshow might not be able to detect the stream type correctly + + AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_Avi, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; QVector ret; - //normal auto-detect stream - ret << mt; //AVI stream - mt.subtype = MEDIASUBTYPE_Avi; ret << mt; //WAVE stream mt.subtype = MEDIASUBTYPE_WAVE; ret << mt; + //normal auto-detect stream (must be at the end!) + mt.subtype = MEDIASUBTYPE_NULL; + ret << mt; return ret; } -- cgit v0.12 From 94adcc5022d6d8e9278c569203a9d0be12e36cc1 Mon Sep 17 00:00:00 2001 From: Iain Date: Thu, 22 Oct 2009 23:10:46 +0200 Subject: OpenVG EABI DEF file Reviewed-by: TrustMe --- src/s60installs/eabi/QtOpenVGu.def | 232 +++++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 src/s60installs/eabi/QtOpenVGu.def diff --git a/src/s60installs/eabi/QtOpenVGu.def b/src/s60installs/eabi/QtOpenVGu.def new file mode 100644 index 0000000..b8bd214 --- /dev/null +++ b/src/s60installs/eabi/QtOpenVGu.def @@ -0,0 +1,232 @@ +EXPORTS + _Z16qPixmapToVGImageRK7QPixmap @ 1 NONAME + _Z20qt_vg_create_contextP12QPaintDevice @ 2 NONAME + _Z20qt_vg_shared_surfacev @ 3 NONAME + _Z21qt_vg_destroy_contextP11QEglContext @ 4 NONAME + _Z24qt_vg_image_to_vg_formatN6QImage6FormatE @ 5 NONAME + _Z25qt_vg_config_to_vg_formatP11QEglContext @ 6 NONAME + _Z25qt_vg_create_paint_enginev @ 7 NONAME + _Z26qt_vg_destroy_paint_engineP14QVGPaintEngine @ 8 NONAME + _Z28qt_vg_config_to_image_formatP11QEglContext @ 9 NONAME + _ZN13QVGPixmapData12forceToImageEv @ 10 NONAME + _ZN13QVGPixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 11 NONAME + _ZN13QVGPixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 12 NONAME + _ZN13QVGPixmapData15setAlphaChannelERK7QPixmap @ 13 NONAME + _ZN13QVGPixmapData4fillERK6QColor @ 14 NONAME + _ZN13QVGPixmapData6bufferEv @ 15 NONAME + _ZN13QVGPixmapData6resizeEii @ 16 NONAME + _ZN13QVGPixmapData7cleanupEv @ 17 NONAME + _ZN13QVGPixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 18 NONAME + _ZN13QVGPixmapData9toVGImageEf @ 19 NONAME + _ZN13QVGPixmapData9toVGImageEv @ 20 NONAME + _ZN13QVGPixmapDataC1EN11QPixmapData9PixelTypeE @ 21 NONAME + _ZN13QVGPixmapDataC2EN11QPixmapData9PixelTypeE @ 22 NONAME + _ZN13QVGPixmapDataD0Ev @ 23 NONAME + _ZN13QVGPixmapDataD1Ev @ 24 NONAME + _ZN13QVGPixmapDataD2Ev @ 25 NONAME + _ZN14QVGPaintEngine10drawPixmapERK6QRectFRK7QPixmapS2_ @ 26 NONAME + _ZN14QVGPaintEngine10drawPixmapERK7QPointFRK7QPixmap @ 27 NONAME + _ZN14QVGPaintEngine10drawPointsEPK6QPointi @ 28 NONAME + _ZN14QVGPaintEngine10drawPointsEPK7QPointFi @ 29 NONAME + _ZN14QVGPaintEngine10penChangedEv @ 30 NONAME + _ZN14QVGPaintEngine11drawEllipseERK5QRect @ 31 NONAME + _ZN14QVGPaintEngine11drawEllipseERK6QRectF @ 32 NONAME + _ZN14QVGPaintEngine11drawPixmapsEPKN12QDrawPixmaps4DataEiRK7QPixmap6QFlagsINS0_11DrawingHintEE @ 33 NONAME + _ZN14QVGPaintEngine11drawPolygonEPK6QPointiN12QPaintEngine15PolygonDrawModeE @ 34 NONAME + _ZN14QVGPaintEngine11drawPolygonEPK7QPointFiN12QPaintEngine15PolygonDrawModeE @ 35 NONAME + _ZN14QVGPaintEngine12brushChangedEv @ 36 NONAME + _ZN14QVGPaintEngine12drawTextItemERK7QPointFRK9QTextItem @ 37 NONAME + _ZN14QVGPaintEngine12pixmapFilterEiPK13QPixmapFilter @ 38 NONAME + _ZN14QVGPaintEngine12restoreStateE6QFlagsIN12QPaintEngine9DirtyFlagEE @ 39 NONAME + _ZN14QVGPaintEngine13updateScissorEv @ 40 NONAME + _ZN14QVGPaintEngine14opacityChangedEv @ 41 NONAME + _ZN14QVGPaintEngine15drawRoundedRectERK6QRectFffN2Qt8SizeModeE @ 42 NONAME + _ZN14QVGPaintEngine15drawTiledPixmapERK6QRectFRK7QPixmapRK7QPointF @ 43 NONAME + _ZN14QVGPaintEngine16transformChangedEv @ 44 NONAME + _ZN14QVGPaintEngine17defaultClipRegionEv @ 45 NONAME + _ZN14QVGPaintEngine17endNativePaintingEv @ 46 NONAME + _ZN14QVGPaintEngine17isDefaultClipRectERK5QRect @ 47 NONAME + _ZN14QVGPaintEngine18brushOriginChangedEv @ 48 NONAME + _ZN14QVGPaintEngine18clipEnabledChangedEv @ 49 NONAME + _ZN14QVGPaintEngine18renderHintsChangedEv @ 50 NONAME + _ZN14QVGPaintEngine19beginNativePaintingEv @ 51 NONAME + _ZN14QVGPaintEngine19isDefaultClipRegionERK7QRegion @ 52 NONAME + _ZN14QVGPaintEngine22compositionModeChangedEv @ 53 NONAME + _ZN14QVGPaintEngine3endEv @ 54 NONAME + _ZN14QVGPaintEngine4clipERK11QVectorPathN2Qt13ClipOperationE @ 55 NONAME + _ZN14QVGPaintEngine4clipERK12QPainterPathN2Qt13ClipOperationE @ 56 NONAME + _ZN14QVGPaintEngine4clipERK5QRectN2Qt13ClipOperationE @ 57 NONAME + _ZN14QVGPaintEngine4clipERK7QRegionN2Qt13ClipOperationE @ 58 NONAME + _ZN14QVGPaintEngine4drawERK11QVectorPath @ 59 NONAME + _ZN14QVGPaintEngine4fillERK11QVectorPathRK6QBrush @ 60 NONAME + _ZN14QVGPaintEngine5beginEP12QPaintDevice @ 61 NONAME + _ZN14QVGPaintEngine6strokeERK11QVectorPathRK4QPen @ 62 NONAME + _ZN14QVGPaintEngine8drawPathERK12QPainterPath @ 63 NONAME + _ZN14QVGPaintEngine8fillRectERK6QRectFRK6QBrush @ 64 NONAME + _ZN14QVGPaintEngine8fillRectERK6QRectFRK6QColor @ 65 NONAME + _ZN14QVGPaintEngine8setStateEP13QPainterState @ 66 NONAME + _ZN14QVGPaintEngine9clearRectERK6QRectFRK6QColor @ 67 NONAME + _ZN14QVGPaintEngine9drawImageERK6QRectFRK6QImageS2_6QFlagsIN2Qt19ImageConversionFlagEE @ 68 NONAME + _ZN14QVGPaintEngine9drawImageERK7QPointFRK6QImage @ 69 NONAME + _ZN14QVGPaintEngine9drawLinesEPK5QLinei @ 70 NONAME + _ZN14QVGPaintEngine9drawLinesEPK6QLineFi @ 71 NONAME + _ZN14QVGPaintEngine9drawRectsEPK5QRecti @ 72 NONAME + _ZN14QVGPaintEngine9drawRectsEPK6QRectFi @ 73 NONAME + _ZN14QVGPaintEngineC1ER21QVGPaintEnginePrivate @ 74 NONAME + _ZN14QVGPaintEngineC1Ev @ 75 NONAME + _ZN14QVGPaintEngineC2ER21QVGPaintEnginePrivate @ 76 NONAME + _ZN14QVGPaintEngineC2Ev @ 77 NONAME + _ZN14QVGPaintEngineD0Ev @ 78 NONAME + _ZN14QVGPaintEngineD1Ev @ 79 NONAME + _ZN14QVGPaintEngineD2Ev @ 80 NONAME + _ZN15QVGPainterStateC1ERS_ @ 81 NONAME + _ZN15QVGPainterStateC1Ev @ 82 NONAME + _ZN15QVGPainterStateC2ERS_ @ 83 NONAME + _ZN15QVGPainterStateC2Ev @ 84 NONAME + _ZN15QVGPainterStateD0Ev @ 85 NONAME + _ZN15QVGPainterStateD1Ev @ 86 NONAME + _ZN15QVGPainterStateD2Ev @ 87 NONAME + _ZN16QVGWindowSurface10beginPaintERK7QRegion @ 88 NONAME + _ZN16QVGWindowSurface11paintDeviceEv @ 89 NONAME + _ZN16QVGWindowSurface11setGeometryERK5QRect @ 90 NONAME + _ZN16QVGWindowSurface5flushEP7QWidgetRK7QRegionRK6QPoint @ 91 NONAME + _ZN16QVGWindowSurface6scrollERK7QRegionii @ 92 NONAME + _ZN16QVGWindowSurface8endPaintERK7QRegion @ 93 NONAME + _ZN16QVGWindowSurfaceC1EP7QWidget @ 94 NONAME + _ZN16QVGWindowSurfaceC1EP7QWidgetP26QVGEGLWindowSurfacePrivate @ 95 NONAME + _ZN16QVGWindowSurfaceC2EP7QWidget @ 96 NONAME + _ZN16QVGWindowSurfaceC2EP7QWidgetP26QVGEGLWindowSurfacePrivate @ 97 NONAME + _ZN16QVGWindowSurfaceD0Ev @ 98 NONAME + _ZN16QVGWindowSurfaceD1Ev @ 99 NONAME + _ZN16QVGWindowSurfaceD2Ev @ 100 NONAME + _ZN19QVGPixmapBlurFilter11qt_metacallEN11QMetaObject4CallEiPPv @ 101 NONAME + _ZN19QVGPixmapBlurFilter11qt_metacastEPKc @ 102 NONAME + _ZN19QVGPixmapBlurFilter16staticMetaObjectE @ 103 NONAME DATA 16 + _ZN19QVGPixmapBlurFilter19getStaticMetaObjectEv @ 104 NONAME + _ZN19QVGPixmapBlurFilterC1EP7QObject @ 105 NONAME + _ZN19QVGPixmapBlurFilterC2EP7QObject @ 106 NONAME + _ZN19QVGPixmapBlurFilterD0Ev @ 107 NONAME + _ZN19QVGPixmapBlurFilterD1Ev @ 108 NONAME + _ZN19QVGPixmapBlurFilterD2Ev @ 109 NONAME + _ZN20QVGCompositionHelper10blitWindowEP26QVGEGLWindowSurfacePrivateRK5QRectRK6QPointi @ 110 NONAME + _ZN20QVGCompositionHelper10setScissorERK7QRegion @ 111 NONAME + _ZN20QVGCompositionHelper12clearScissorEv @ 112 NONAME + _ZN20QVGCompositionHelper14endCompositingEv @ 113 NONAME + _ZN20QVGCompositionHelper14fillBackgroundERK7QRegionRK6QBrush @ 114 NONAME + _ZN20QVGCompositionHelper15drawCursorImageERK6QImageRK6QPoint @ 115 NONAME + _ZN20QVGCompositionHelper16drawCursorPixmapERK7QPixmapRK6QPoint @ 116 NONAME + _ZN20QVGCompositionHelper16startCompositingERK5QSize @ 117 NONAME + _ZN20QVGCompositionHelperC1Ev @ 118 NONAME + _ZN20QVGCompositionHelperC2Ev @ 119 NONAME + _ZN20QVGCompositionHelperD0Ev @ 120 NONAME + _ZN20QVGCompositionHelperD1Ev @ 121 NONAME + _ZN20QVGCompositionHelperD2Ev @ 122 NONAME + _ZN23QVGPixmapColorizeFilter11qt_metacallEN11QMetaObject4CallEiPPv @ 123 NONAME + _ZN23QVGPixmapColorizeFilter11qt_metacastEPKc @ 124 NONAME + _ZN23QVGPixmapColorizeFilter16staticMetaObjectE @ 125 NONAME DATA 16 + _ZN23QVGPixmapColorizeFilter19getStaticMetaObjectEv @ 126 NONAME + _ZN23QVGPixmapColorizeFilterC1Ev @ 127 NONAME + _ZN23QVGPixmapColorizeFilterC2Ev @ 128 NONAME + _ZN23QVGPixmapColorizeFilterD0Ev @ 129 NONAME + _ZN23QVGPixmapColorizeFilterD1Ev @ 130 NONAME + _ZN23QVGPixmapColorizeFilterD2Ev @ 131 NONAME + _ZN25QVGEGLWindowSurfaceDirect10beginPaintEP7QWidget @ 132 NONAME + _ZN25QVGEGLWindowSurfaceDirect13ensureContextEP7QWidget @ 133 NONAME + _ZN25QVGEGLWindowSurfaceDirect8endPaintEP7QWidgetRK7QRegionP6QImage @ 134 NONAME + _ZN25QVGEGLWindowSurfaceDirectC1EP14QWindowSurface @ 135 NONAME + _ZN25QVGEGLWindowSurfaceDirectC2EP14QWindowSurface @ 136 NONAME + _ZN25QVGEGLWindowSurfaceDirectD0Ev @ 137 NONAME + _ZN25QVGEGLWindowSurfaceDirectD1Ev @ 138 NONAME + _ZN25QVGEGLWindowSurfaceDirectD2Ev @ 139 NONAME + _ZN25QVGEGLWindowSurfaceQImage8endPaintEP7QWidgetRK7QRegionP6QImage @ 140 NONAME + _ZN25QVGEGLWindowSurfaceQImageC1EP14QWindowSurface @ 141 NONAME + _ZN25QVGEGLWindowSurfaceQImageC2EP14QWindowSurface @ 142 NONAME + _ZN25QVGEGLWindowSurfaceQImageD0Ev @ 143 NONAME + _ZN25QVGEGLWindowSurfaceQImageD1Ev @ 144 NONAME + _ZN25QVGEGLWindowSurfaceQImageD2Ev @ 145 NONAME + _ZN25QVGPixmapDropShadowFilter11qt_metacallEN11QMetaObject4CallEiPPv @ 146 NONAME + _ZN25QVGPixmapDropShadowFilter11qt_metacastEPKc @ 147 NONAME + _ZN25QVGPixmapDropShadowFilter16staticMetaObjectE @ 148 NONAME DATA 16 + _ZN25QVGPixmapDropShadowFilter19getStaticMetaObjectEv @ 149 NONAME + _ZN25QVGPixmapDropShadowFilterC1Ev @ 150 NONAME + _ZN25QVGPixmapDropShadowFilterC2Ev @ 151 NONAME + _ZN25QVGPixmapDropShadowFilterD0Ev @ 152 NONAME + _ZN25QVGPixmapDropShadowFilterD1Ev @ 153 NONAME + _ZN25QVGPixmapDropShadowFilterD2Ev @ 154 NONAME + _ZN26QVGEGLWindowSurfacePrivate11paintEngineEv @ 155 NONAME + _ZN26QVGEGLWindowSurfacePrivate18destroyPaintEngineEv @ 156 NONAME + _ZN26QVGEGLWindowSurfacePrivate6createENS_11SurfaceTypeEP14QWindowSurface @ 157 NONAME + _ZN26QVGEGLWindowSurfacePrivateC2EP14QWindowSurface @ 158 NONAME + _ZN26QVGEGLWindowSurfacePrivateD0Ev @ 159 NONAME + _ZN26QVGEGLWindowSurfacePrivateD1Ev @ 160 NONAME + _ZN26QVGEGLWindowSurfacePrivateD2Ev @ 161 NONAME + _ZN26QVGEGLWindowSurfaceVGImage10beginPaintEP7QWidget @ 162 NONAME + _ZN26QVGEGLWindowSurfaceVGImage13ensureContextEP7QWidget @ 163 NONAME + _ZN26QVGEGLWindowSurfaceVGImage8endPaintEP7QWidgetRK7QRegionP6QImage @ 164 NONAME + _ZN26QVGEGLWindowSurfaceVGImageC1EP14QWindowSurface @ 165 NONAME + _ZN26QVGEGLWindowSurfaceVGImageC2EP14QWindowSurface @ 166 NONAME + _ZN26QVGEGLWindowSurfaceVGImageD0Ev @ 167 NONAME + _ZN26QVGEGLWindowSurfaceVGImageD1Ev @ 168 NONAME + _ZN26QVGEGLWindowSurfaceVGImageD2Ev @ 169 NONAME + _ZN26QVGPixmapConvolutionFilter11qt_metacallEN11QMetaObject4CallEiPPv @ 170 NONAME + _ZN26QVGPixmapConvolutionFilter11qt_metacastEPKc @ 171 NONAME + _ZN26QVGPixmapConvolutionFilter16staticMetaObjectE @ 172 NONAME DATA 16 + _ZN26QVGPixmapConvolutionFilter19getStaticMetaObjectEv @ 173 NONAME + _ZN26QVGPixmapConvolutionFilterC1Ev @ 174 NONAME + _ZN26QVGPixmapConvolutionFilterC2Ev @ 175 NONAME + _ZN26QVGPixmapConvolutionFilterD0Ev @ 176 NONAME + _ZN26QVGPixmapConvolutionFilterD1Ev @ 177 NONAME + _ZN26QVGPixmapConvolutionFilterD2Ev @ 178 NONAME + _ZNK13QVGPixmapData11paintEngineEv @ 179 NONAME + _ZNK13QVGPixmapData12sourceFormatEv @ 180 NONAME + _ZNK13QVGPixmapData15hasAlphaChannelEv @ 181 NONAME + _ZNK13QVGPixmapData26createCompatiblePixmapDataEv @ 182 NONAME + _ZNK13QVGPixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 183 NONAME + _ZNK13QVGPixmapData7isValidEv @ 184 NONAME + _ZNK13QVGPixmapData7toImageEv @ 185 NONAME + _ZNK14QVGPaintEngine11createStateEP13QPainterState @ 186 NONAME + _ZNK16QVGWindowSurface11paintEngineEv @ 187 NONAME + _ZNK16QVGWindowSurface6metricEN12QPaintDevice17PaintDeviceMetricE @ 188 NONAME + _ZNK19QVGPixmapBlurFilter10metaObjectEv @ 189 NONAME + _ZNK19QVGPixmapBlurFilter4drawEP8QPainterRK7QPointFRK7QPixmapRK6QRectF @ 190 NONAME + _ZNK23QVGPixmapColorizeFilter10metaObjectEv @ 191 NONAME + _ZNK23QVGPixmapColorizeFilter4drawEP8QPainterRK7QPointFRK7QPixmapRK6QRectF @ 192 NONAME + _ZNK25QVGPixmapDropShadowFilter10metaObjectEv @ 193 NONAME + _ZNK25QVGPixmapDropShadowFilter4drawEP8QPainterRK7QPointFRK7QPixmapRK6QRectF @ 194 NONAME + _ZNK26QVGEGLWindowSurfacePrivate12surfaceImageEv @ 195 NONAME + _ZNK26QVGEGLWindowSurfacePrivate17windowSurfaceSizeEP7QWidget @ 196 NONAME + _ZNK26QVGEGLWindowSurfaceVGImage11mainSurfaceEv @ 197 NONAME + _ZNK26QVGEGLWindowSurfaceVGImage12surfaceImageEv @ 198 NONAME + _ZNK26QVGPixmapConvolutionFilter10metaObjectEv @ 199 NONAME + _ZNK26QVGPixmapConvolutionFilter4drawEP8QPainterRK7QPointFRK7QPixmapRK6QRectF @ 200 NONAME + _ZTI13QVGPixmapData @ 201 NONAME + _ZTI14QVGPaintEngine @ 202 NONAME + _ZTI15QVGPainterState @ 203 NONAME + _ZTI16QVGWindowSurface @ 204 NONAME + _ZTI19QVGPixmapBlurFilter @ 205 NONAME + _ZTI20QVGCompositionHelper @ 206 NONAME + _ZTI23QVGPixmapColorizeFilter @ 207 NONAME + _ZTI25QVGEGLWindowSurfaceDirect @ 208 NONAME + _ZTI25QVGEGLWindowSurfaceQImage @ 209 NONAME + _ZTI25QVGPixmapDropShadowFilter @ 210 NONAME + _ZTI26QVGEGLWindowSurfacePrivate @ 211 NONAME + _ZTI26QVGEGLWindowSurfaceVGImage @ 212 NONAME + _ZTI26QVGPixmapConvolutionFilter @ 213 NONAME + _ZTV13QVGPixmapData @ 214 NONAME + _ZTV14QVGPaintEngine @ 215 NONAME + _ZTV15QVGPainterState @ 216 NONAME + _ZTV16QVGWindowSurface @ 217 NONAME + _ZTV19QVGPixmapBlurFilter @ 218 NONAME + _ZTV20QVGCompositionHelper @ 219 NONAME + _ZTV23QVGPixmapColorizeFilter @ 220 NONAME + _ZTV25QVGEGLWindowSurfaceDirect @ 221 NONAME + _ZTV25QVGEGLWindowSurfaceQImage @ 222 NONAME + _ZTV25QVGPixmapDropShadowFilter @ 223 NONAME + _ZTV26QVGEGLWindowSurfacePrivate @ 224 NONAME + _ZTV26QVGEGLWindowSurfaceVGImage @ 225 NONAME + _ZTV26QVGPixmapConvolutionFilter @ 226 NONAME + _ZThn8_N16QVGWindowSurfaceD0Ev @ 227 NONAME + _ZThn8_N16QVGWindowSurfaceD1Ev @ 228 NONAME + _ZThn8_NK16QVGWindowSurface11paintEngineEv @ 229 NONAME + _ZThn8_NK16QVGWindowSurface6metricEN12QPaintDevice17PaintDeviceMetricE @ 230 NONAME + -- cgit v0.12 From 3b7f570e6f296ef0a5c9c581ed06cb19986164a0 Mon Sep 17 00:00:00 2001 From: Iain Date: Fri, 23 Oct 2009 15:43:28 +0200 Subject: Revert "Re-apply change 8e0fbc2caa3edefb78d6667721235b783bc1a850 by Iain" This reverts commit f4abf627a8d097e095022d2709718a681b54bd7e. DEF file was unconditionally enabled for Webkit, ignoring setting in qtbase.pri, which was supposed to be the global place to enable/disable DEF file usage. Remove this workaround since we still haven't got DEF files switched on by default. --- src/3rdparty/webkit/WebCore/WebCore.pro | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro index f321aad..a835fc7 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/WebCore/WebCore.pro @@ -87,19 +87,6 @@ win32-g++ { QMAKE_LIBDIR_POST += $$split(TMPPATH,";") } -# Temporary workaround to pick up the DEF file from the same place as all the others -symbian { - shared { - MMP_RULES -= defBlock - - MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \ - "DEFFILE ../../../s60installs/bwins/$${TARGET}.def" \ - "$${LITERAL_HASH}elif defined EABI" \ - "DEFFILE ../../../s60installs/eabi/$${TARGET}.def" \ - "$${LITERAL_HASH}endif" - } -} - # Assume that symbian OS always comes with sqlite symbian:!CONFIG(QTDIR_build): CONFIG += system-sqlite -- cgit v0.12 From dc6c52f6ccff9e9fdf2f4446bd2a95296bb0871b Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 23 Oct 2009 16:50:28 +0300 Subject: Updated Qt for Symbian requirements docs Added requirement for perl and clarified MinGW requirement. Reviewed-by: Janne Koskinen --- doc/src/getting-started/installation.qdoc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index 8269552..e127429 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -963,16 +963,23 @@ Symbian platform, see \l{Symbian platform - Introduction to using Qt}. Qt for Symbian platform requires the following software installed on your development PC: \list - \o \l{http://www.mingw.org/}{MinGW 3.4.5 or higher}, or another windows compiler to build the tools. \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/}{Carbide.c++ v2.0.0 or higher} \list \o \bold{Note:} It may be necessary to update the Carbide compiler. See \l{http://pepper.troll.no/s60prereleases/patches/}{here} for instructions how to check your compiler version and how to patch it, if needed. \endlist + \o \l{http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi}{ActivePerl v5.6.1 build 638} + \list + \o \bold{Note:} According to Symbian, version 5.6.1 build 638 is mandatory. Using later versions may result in unexplained errors. + \endlist \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/S60SDK/}{S60 Platform SDK 3rd Edition FP1 or higher} \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/}{Open C/C++ v1.6.0 or higher}. Install this to all Symbian SDKs you plan to use Qt with. + \o Building Qt tools from scratch requires \l{http://www.mingw.org/}{MinGW 3.4.5 or higher}, or another windows compiler. + \list + \o \bold{Note:} This is not required if you are using pre-built binary package. + \endlist \o Building Qt libraries requires \l{http://www.arm.com/products/DevTools/RVCT.html}{RVCT} 2.2 [build 686] or later, which is not available free of charge. \endlist -- cgit v0.12 From 27b25994dfd49dfcb8b5f1674f6b2d385ba2cc10 Mon Sep 17 00:00:00 2001 From: Iain Date: Fri, 23 Oct 2009 18:07:37 +0200 Subject: *Experimental* WINSCW DEF files for Qt, except WebKit Note: No autotest exports, no EGL exports from QtGui Reviewed-by: Jason Barron --- src/s60installs/bwins/QtCoreu.def | 4360 +++++++++++ src/s60installs/bwins/QtGuiu.def | 12545 ++++++++++++++++++++++++++++++ src/s60installs/bwins/QtMultimediau.def | 273 + src/s60installs/bwins/QtNetworku.def | 977 +++ src/s60installs/bwins/QtOpenVGu.def | 199 + src/s60installs/bwins/QtScriptu.def | 331 + src/s60installs/bwins/QtSqlu.def | 464 ++ src/s60installs/bwins/QtSvgu.def | 149 + src/s60installs/bwins/QtTestu.def | 79 + src/s60installs/bwins/QtXmlu.def | 410 + src/s60installs/bwins/phononu.def | 521 ++ 11 files changed, 20308 insertions(+) create mode 100644 src/s60installs/bwins/QtCoreu.def create mode 100644 src/s60installs/bwins/QtGuiu.def create mode 100644 src/s60installs/bwins/QtMultimediau.def create mode 100644 src/s60installs/bwins/QtNetworku.def create mode 100644 src/s60installs/bwins/QtOpenVGu.def create mode 100644 src/s60installs/bwins/QtScriptu.def create mode 100644 src/s60installs/bwins/QtSqlu.def create mode 100644 src/s60installs/bwins/QtSvgu.def create mode 100644 src/s60installs/bwins/QtTestu.def create mode 100644 src/s60installs/bwins/QtXmlu.def create mode 100644 src/s60installs/bwins/phononu.def diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def new file mode 100644 index 0000000..cbaf523 --- /dev/null +++ b/src/s60installs/bwins/QtCoreu.def @@ -0,0 +1,4360 @@ +EXPORTS + adler32 @ 1 NONAME + compress @ 2 NONAME + compress2 @ 3 NONAME + crc32 @ 4 NONAME + deflate @ 5 NONAME + deflateCopy @ 6 NONAME + deflateEnd @ 7 NONAME + deflateInit2_ @ 8 NONAME + deflateInit_ @ 9 NONAME + deflateParams @ 10 NONAME + deflateReset @ 11 NONAME + deflateSetDictionary @ 12 NONAME + get_crc_table @ 13 NONAME + gzclose @ 14 NONAME + gzdopen @ 15 NONAME + gzeof @ 16 NONAME + gzerror @ 17 NONAME + gzflush @ 18 NONAME + gzgetc @ 19 NONAME + gzgets @ 20 NONAME + gzopen @ 21 NONAME + gzprintf @ 22 NONAME + gzputc @ 23 NONAME + gzputs @ 24 NONAME + gzread @ 25 NONAME + gzrewind @ 26 NONAME + gzseek @ 27 NONAME + gzsetparams @ 28 NONAME + gztell @ 29 NONAME + gzwrite @ 30 NONAME + inflate @ 31 NONAME + inflateEnd @ 32 NONAME + inflateInit2_ @ 33 NONAME + inflateInit_ @ 34 NONAME + inflateReset @ 35 NONAME + inflateSetDictionary @ 36 NONAME + inflateSync @ 37 NONAME + inflateSyncPoint @ 38 NONAME + qt_addObject @ 39 NONAME + qt_removeObject @ 40 NONAME + qt_startup_hook @ 41 NONAME + uncompress @ 42 NONAME + zError @ 43 NONAME + zlibVersion @ 44 NONAME + ?sort@QAbstractItemModel@@UAEXHW4SortOrder@Qt@@@Z @ 45 NONAME ; void QAbstractItemModel::sort(int, enum Qt::SortOrder) + ?trUtf8@QAbstractState@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString QAbstractState::trUtf8(char const *, char const *, int) + ?fromUcs4@QString@@SA?AV1@PBIH@Z @ 47 NONAME ; class QString QString::fromUcs4(unsigned int const *, int) + ?addMSecs@QDateTime@@QBE?AV1@_J@Z @ 48 NONAME ; class QDateTime QDateTime::addMSecs(long long) const + ?metaObject@QMimeData@@UBEPBUQMetaObject@@XZ @ 49 NONAME ; struct QMetaObject const * QMimeData::metaObject(void) const + ?encodedPath@QUrl@@QBE?AVQByteArray@@XZ @ 50 NONAME ; class QByteArray QUrl::encodedPath(void) const + ?trUtf8@QPluginLoader@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString QPluginLoader::trUtf8(char const *, char const *, int) + ?tr@QFile@@SA?AVQString@@PBD0@Z @ 52 NONAME ; class QString QFile::tr(char const *, char const *) + ?begin@QByteArray@@QAEPADXZ @ 53 NONAME ; char * QByteArray::begin(void) + ?systemId@QXmlStreamNotationDeclaration@@QBE?AVQStringRef@@XZ @ 54 NONAME ; class QStringRef QXmlStreamNotationDeclaration::systemId(void) const + ?isFetchAndAddNative@QBasicAtomicInt@@SA_NXZ @ 55 NONAME ; bool QBasicAtomicInt::isFetchAndAddNative(void) + ??NQString@@QBE_NABV0@@Z @ 56 NONAME ; bool QString::operator<=(class QString const &) const + ?setEncodedUrl@QUrl@@QAEXABVQByteArray@@@Z @ 57 NONAME ; void QUrl::setEncodedUrl(class QByteArray const &) + ?loopCount@QTimeLine@@QBEHXZ @ 58 NONAME ; int QTimeLine::loopCount(void) const + ?fileTime@QAbstractFileEngine@@UBE?AVQDateTime@@W4FileTime@1@@Z @ 59 NONAME ; class QDateTime QAbstractFileEngine::fileTime(enum QAbstractFileEngine::FileTime) const + ?writeCharacters@QXmlStreamWriter@@QAEXABVQString@@@Z @ 60 NONAME ; void QXmlStreamWriter::writeCharacters(class QString const &) + ?qt_metacast@QTimeLine@@UAEPAXPBD@Z @ 61 NONAME ; void * QTimeLine::qt_metacast(char const *) + ??1QEventTransitionPrivate@@UAE@XZ @ 62 NONAME ; QEventTransitionPrivate::~QEventTransitionPrivate(void) + ?isComment@QXmlStreamReader@@QBE_NXZ @ 63 NONAME ; bool QXmlStreamReader::isComment(void) const + ?tr@QAbstractTableModel@@SA?AVQString@@PBD0@Z @ 64 NONAME ; class QString QAbstractTableModel::tr(char const *, char const *) + ?shortMonthName@QDate@@SA?AVQString@@H@Z @ 65 NONAME ; class QString QDate::shortMonthName(int) + ?toString@QLocale@@QBE?AVQString@@H@Z @ 66 NONAME ; class QString QLocale::toString(int) const + ??0QAbstractState@@IAE@PAVQState@@@Z @ 67 NONAME ; QAbstractState::QAbstractState(class QState *) + ?d_func@QSequentialAnimationGroup@@AAEPAVQSequentialAnimationGroupPrivate@@XZ @ 68 NONAME ; class QSequentialAnimationGroupPrivate * QSequentialAnimationGroup::d_func(void) + ??0QString@@QAE@ABVQByteArray@@@Z @ 69 NONAME ; QString::QString(class QByteArray const &) + ?numCaptures@QRegExp@@QBEHXZ @ 70 NONAME ; int QRegExp::numCaptures(void) const + ?setNumberFlags@QTextStream@@QAEXV?$QFlags@W4NumberFlag@QTextStream@@@@@Z @ 71 NONAME ; void QTextStream::setNumberFlags(class QFlags) + ?setDefaultState@QHistoryState@@QAEXPAVQAbstractState@@@Z @ 72 NONAME ; void QHistoryState::setDefaultState(class QAbstractState *) + ?qt_metacall@QAbstractItemModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 73 NONAME ; int QAbstractItemModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getMinimum@QDateTimeParser@@UBE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime QDateTimeParser::getMinimum(void) const + ?isInFinalState@QStateMachinePrivate@@QBE_NPAVQAbstractState@@@Z @ 75 NONAME ; bool QStateMachinePrivate::isInFinalState(class QAbstractState *) const + ?floatingPointPrecision@QDataStream@@QBE?AW4FloatingPointPrecision@1@XZ @ 76 NONAME ; enum QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision(void) const + ?currentDate@QDate@@SA?AV1@XZ @ 77 NONAME ; class QDate QDate::currentDate(void) + ?acquire@QSemaphore@@QAEXH@Z @ 78 NONAME ; void QSemaphore::acquire(int) + ?addStatesToEnter@QStateMachinePrivate@@QAEXPAVQAbstractState@@PAVQState@@AAV?$QSet@PAVQAbstractState@@@@2@Z @ 79 NONAME ; void QStateMachinePrivate::addStatesToEnter(class QAbstractState *, class QState *, class QSet &, class QSet &) + ?isReferenceCountingWaitFree@QBasicAtomicInt@@SA_NXZ @ 80 NONAME ; bool QBasicAtomicInt::isReferenceCountingWaitFree(void) + ?inherits@QObject@@QBE_NPBD@Z @ 81 NONAME ; bool QObject::inherits(char const *) const + ?pos@QRegExp@@QAEHH@Z @ 82 NONAME ; int QRegExp::pos(int) + ??8QString@@QBE_NABVQLatin1String@@@Z @ 83 NONAME ; bool QString::operator==(class QLatin1String const &) const + ?rowsAboutToBeInserted@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 84 NONAME ; void QAbstractItemModel::rowsAboutToBeInserted(class QModelIndex const &, int, int) + ?decodeData@QAbstractItemModel@@IAE_NHHABVQModelIndex@@AAVQDataStream@@@Z @ 85 NONAME ; bool QAbstractItemModel::decodeData(int, int, class QModelIndex const &, class QDataStream &) + ?findAmPm@QDateTimeParser@@QBEHAAVQString@@HPAH@Z @ 86 NONAME ; int QDateTimeParser::findAmPm(class QString &, int, int *) const + ??YQSizeF@@QAEAAV0@ABV0@@Z @ 87 NONAME ; class QSizeF & QSizeF::operator+=(class QSizeF const &) + ??0QEventTransition@@QAE@PAVQState@@@Z @ 88 NONAME ; QEventTransition::QEventTransition(class QState *) + ?qGetCharAttributes@@YAXPBGIPBUHB_ScriptItem@@IPAUHB_CharAttributes@@@Z @ 89 NONAME ; void qGetCharAttributes(unsigned short const *, unsigned int, struct HB_ScriptItem const *, unsigned int, struct HB_CharAttributes *) + ??1QAbstractDynamicMetaObject@@UAE@XZ @ 90 NONAME ; QAbstractDynamicMetaObject::~QAbstractDynamicMetaObject(void) + ??0QAbstractListModel@@QAE@PAVQObject@@@Z @ 91 NONAME ; QAbstractListModel::QAbstractListModel(class QObject *) + ?tr@QSequentialAnimationGroup@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString QSequentialAnimationGroup::tr(char const *, char const *, int) + ?constData@QStringRef@@QBEPBVQChar@@XZ @ 93 NONAME ; class QChar const * QStringRef::constData(void) const + ??0QPluginLoader@@QAE@ABVQString@@PAVQObject@@@Z @ 94 NONAME ; QPluginLoader::QPluginLoader(class QString const &, class QObject *) + ?qIsFinite@@YA_NN@Z @ 95 NONAME ; bool qIsFinite(double) + ?isValid@QTextBoundaryFinder@@QBE_NXZ @ 96 NONAME ; bool QTextBoundaryFinder::isValid(void) const + ??0QMetaEnum@@QAE@XZ @ 97 NONAME ; QMetaEnum::QMetaEnum(void) + ?isLetter@QChar@@QBE_NXZ @ 98 NONAME ; bool QChar::isLetter(void) const + ?invoke@QMetaMethod@@QBE_NPAVQObject@@VQGenericArgument@@111111111@Z @ 99 NONAME ; bool QMetaMethod::invoke(class QObject *, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) const + ?toPercentEncoding@QUrl@@SA?AVQByteArray@@ABVQString@@ABV2@1@Z @ 100 NONAME ; class QByteArray QUrl::toPercentEncoding(class QString const &, class QByteArray const &, class QByteArray const &) + ?hasAttribute@QXmlStreamAttributes@@QBE_NABVQLatin1String@@@Z @ 101 NONAME ; bool QXmlStreamAttributes::hasAttribute(class QLatin1String const &) const + ?section@QString@@QBE?AV1@VQChar@@HHV?$QFlags@W4SectionFlag@QString@@@@@Z @ 102 NONAME ; class QString QString::section(class QChar, int, int, class QFlags) const + ?replace@QString@@QAEAAV1@ABVQLatin1String@@0W4CaseSensitivity@Qt@@@Z @ 103 NONAME ; class QString & QString::replace(class QLatin1String const &, class QLatin1String const &, enum Qt::CaseSensitivity) + ?prefix@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 104 NONAME ; class QStringRef QXmlStreamReader::prefix(void) const + ?setP1@QLineF@@QAEXABVQPointF@@@Z @ 105 NONAME ; void QLineF::setP1(class QPointF const &) + ?executeTransitionContent@QStateMachinePrivate@@QAEXPAVQEvent@@ABV?$QList@PAVQAbstractTransition@@@@@Z @ 106 NONAME ; void QStateMachinePrivate::executeTransitionContent(class QEvent *, class QList const &) + ?ignore@QEvent@@QAEXXZ @ 107 NONAME ; void QEvent::ignore(void) + ?tr@QAbstractAnimation@@SA?AVQString@@PBD0@Z @ 108 NONAME ; class QString QAbstractAnimation::tr(char const *, char const *) + ?finished@QProcess@@IAEXH@Z @ 109 NONAME ; void QProcess::finished(int) + ?setPaused@QTimeLine@@QAEX_N@Z @ 110 NONAME ; void QTimeLine::setPaused(bool) + ?d_func@QTranslator@@AAEPAVQTranslatorPrivate@@XZ @ 111 NONAME ; class QTranslatorPrivate * QTranslator::d_func(void) + ??6QTextStream@@QAEAAV0@I@Z @ 112 NONAME ; class QTextStream & QTextStream::operator<<(unsigned int) + ?capacity@QString@@QBEHXZ @ 113 NONAME ; int QString::capacity(void) const + ??0QVariant@@QAE@ABVQPoint@@@Z @ 114 NONAME ; QVariant::QVariant(class QPoint const &) + ?isExtender@QXmlUtils@@CA_NVQChar@@@Z @ 115 NONAME ; bool QXmlUtils::isExtender(class QChar) + ?intersect@QRectF@@QBE?AV1@ABV1@@Z @ 116 NONAME ; class QRectF QRectF::intersect(class QRectF const &) const + ?boundaryReasons@QTextBoundaryFinder@@QBE?AV?$QFlags@W4BoundaryReason@QTextBoundaryFinder@@@@XZ @ 117 NONAME ; class QFlags QTextBoundaryFinder::boundaryReasons(void) const + ??YQByteArray@@QAEAAV0@D@Z @ 118 NONAME ; class QByteArray & QByteArray::operator+=(char) + ?elapsed@QTime@@QBEHXZ @ 119 NONAME ; int QTime::elapsed(void) const + ?groupId@QFileInfo@@QBEIXZ @ 120 NONAME ; unsigned int QFileInfo::groupId(void) const + ?metaObject@QStateMachine@@UBEPBUQMetaObject@@XZ @ 121 NONAME ; struct QMetaObject const * QStateMachine::metaObject(void) const + ?rwidth@QSize@@QAEAAHXZ @ 122 NONAME ; int & QSize::rwidth(void) + ?type@QEasingCurve@@QBE?AW4Type@1@XZ @ 123 NONAME ; enum QEasingCurve::Type QEasingCurve::type(void) const + ?arguments@QCoreApplication@@SA?AVQStringList@@XZ @ 124 NONAME ; class QStringList QCoreApplication::arguments(void) + ?number@QByteArray@@SA?AV1@IH@Z @ 125 NONAME ; class QByteArray QByteArray::number(unsigned int, int) + ?indexOfMethod@QMetaObject@@QBEHPBD@Z @ 126 NONAME ; int QMetaObject::indexOfMethod(char const *) const + ??4QLocale@@QAEAAV0@ABV0@@Z @ 127 NONAME ; class QLocale & QLocale::operator=(class QLocale const &) + ??1QXmlStreamNotationDeclaration@@QAE@XZ @ 128 NONAME ; QXmlStreamNotationDeclaration::~QXmlStreamNotationDeclaration(void) + ??OQDate@@QBE_NABV0@@Z @ 129 NONAME ; bool QDate::operator>(class QDate const &) const + ?isDigit@QCharRef@@QBE_NXZ @ 130 NONAME ; bool QCharRef::isDigit(void) const + ?staticMetaObject@QObjectCleanupHandler@@2UQMetaObject@@B @ 131 NONAME ; struct QMetaObject const QObjectCleanupHandler::staticMetaObject + ?qt_metacall@QEventLoop@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 132 NONAME ; int QEventLoop::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setDigit@QDateTimeParser@@QBE_NAAVQDateTime@@HH@Z @ 133 NONAME ; bool QDateTimeParser::setDigit(class QDateTime &, int, int) const + ?rheight@QSize@@QAEAAHXZ @ 134 NONAME ; int & QSize::rheight(void) + ?relock@QWriteLocker@@QAEXXZ @ 135 NONAME ; void QWriteLocker::relock(void) + ?toLong@QByteArray@@QBEJPA_NH@Z @ 136 NONAME ; long QByteArray::toLong(bool *, int) const + ??8QFileInfo@@QBE_NABV0@@Z @ 137 NONAME ; bool QFileInfo::operator==(class QFileInfo const &) const + ?unicodeVersion@QChar@@QBE?AW4UnicodeVersion@1@XZ @ 138 NONAME ; enum QChar::UnicodeVersion QChar::unicodeVersion(void) const + ?columnsInserted@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 139 NONAME ; void QAbstractItemModelPrivate::columnsInserted(class QModelIndex const &, int, int) + ??AQString@@QBE?BVQChar@@I@Z @ 140 NONAME ; class QChar const QString::operator[](unsigned int) const + ?setItemData@QAbstractItemModel@@UAE_NABVQModelIndex@@ABV?$QMap@HVQVariant@@@@@Z @ 141 NONAME ; bool QAbstractItemModel::setItemData(class QModelIndex const &, class QMap const &) + ?getStaticMetaObject@QEventLoop@@SAABUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const & QEventLoop::getStaticMetaObject(void) + ?namespaceUri@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 143 NONAME ; class QStringRef QXmlStreamReader::namespaceUri(void) const + ?remove@QAbstractFileEngine@@UAE_NXZ @ 144 NONAME ; bool QAbstractFileEngine::remove(void) + ?RequestComplete@QEventDispatcherSymbian@@SAXAAVRThread@@AAPAVTRequestStatus@@H@Z @ 145 NONAME ; void QEventDispatcherSymbian::RequestComplete(class RThread &, class TRequestStatus * &, int) + ??BQPersistentModelIndex@@QBEABVQModelIndex@@XZ @ 146 NONAME ; QPersistentModelIndex::operator class QModelIndex const &(void) const + ?owner@QFileInfo@@QBE?AVQString@@XZ @ 147 NONAME ; class QString QFileInfo::owner(void) const + ?country@QLocale@@QBE?AW4Country@1@XZ @ 148 NONAME ; enum QLocale::Country QLocale::country(void) const + ??_EQHistoryState@@UAE@I@Z @ 149 NONAME ; QHistoryState::~QHistoryState(unsigned int) + ??8QHBufC@@QBE_NABV0@@Z @ 150 NONAME ; bool QHBufC::operator==(class QHBufC const &) const + ??9QDateTime@@QBE_NABV0@@Z @ 151 NONAME ; bool QDateTime::operator!=(class QDateTime const &) const + ?trimmed@QByteArray@@QBE?AV1@XZ @ 152 NONAME ; class QByteArray QByteArray::trimmed(void) const + ??1QObjectUserData@@UAE@XZ @ 153 NONAME ; QObjectUserData::~QObjectUserData(void) + ?event@QAbstractState@@MAE_NPAVQEvent@@@Z @ 154 NONAME ; bool QAbstractState::event(class QEvent *) + ?qShapeItem@@YAEPAUHB_ShaperItem@@@Z @ 155 NONAME ; unsigned char qShapeItem(struct HB_ShaperItem *) + ??9QLocale@@QBE_NABV0@@Z @ 156 NONAME ; bool QLocale::operator!=(class QLocale const &) const + ?started@QThread@@IAEXXZ @ 157 NONAME ; void QThread::started(void) + ?postEvent@QStateMachine@@QAEXPAVQEvent@@W4EventPriority@1@@Z @ 158 NONAME ; void QStateMachine::postEvent(class QEvent *, enum QStateMachine::EventPriority) + ?destroyed@QObject@@IAEXPAV1@@Z @ 159 NONAME ; void QObject::destroyed(class QObject *) + ?metaObject@QIODevice@@UBEPBUQMetaObject@@XZ @ 160 NONAME ; struct QMetaObject const * QIODevice::metaObject(void) const + ?getInterpolator@QVariantAnimationPrivate@@SAP6A?AVQVariant@@PBX0M@ZH@Z @ 161 NONAME ; class QVariant (*)(void const *, void const *, float) QVariantAnimationPrivate::getInterpolator(int) + ?trUtf8@QAbstractListModel@@SA?AVQString@@PBD0H@Z @ 162 NONAME ; class QString QAbstractListModel::trUtf8(char const *, char const *, int) + ?toString@QTime@@QBE?AVQString@@W4DateFormat@Qt@@@Z @ 163 NONAME ; class QString QTime::toString(enum Qt::DateFormat) const + ?caseSensitive@QAbstractFileEngine@@UBE_NXZ @ 164 NONAME ; bool QAbstractFileEngine::caseSensitive(void) const + ?isLower@QChar@@QBE_NXZ @ 165 NONAME ; bool QChar::isLower(void) const + ??_EQPluginLoader@@UAE@I@Z @ 166 NONAME ; QPluginLoader::~QPluginLoader(unsigned int) + ?right@QRect@@QBEHXZ @ 167 NONAME ; int QRect::right(void) const + ?close@QProcess@@UAEXXZ @ 168 NONAME ; void QProcess::close(void) + ??0QVariant@@QAE@ABVQSize@@@Z @ 169 NONAME ; QVariant::QVariant(class QSize const &) + ?setOrganizationDomain@QCoreApplication@@SAXABVQString@@@Z @ 170 NONAME ; void QCoreApplication::setOrganizationDomain(class QString const &) + ?hasChildren@QAbstractListModel@@EBE_NABVQModelIndex@@@Z @ 171 NONAME ; bool QAbstractListModel::hasChildren(class QModelIndex const &) const + ?currentLoopChanged@QAbstractAnimation@@IAEXH@Z @ 172 NONAME ; void QAbstractAnimation::currentLoopChanged(int) + ?configuration@QStateMachine@@QBE?AV?$QSet@PAVQAbstractState@@@@XZ @ 173 NONAME ; class QSet QStateMachine::configuration(void) const + ?dx@QLine@@QBEHXZ @ 174 NONAME ; int QLine::dx(void) const + ?clear@QMimeData@@QAEXXZ @ 175 NONAME ; void QMimeData::clear(void) + ?event@QAbstractAnimation@@MAE_NPAVQEvent@@@Z @ 176 NONAME ; bool QAbstractAnimation::event(class QEvent *) + ?create@QNonContiguousByteDeviceFactory@@SAPAVQNonContiguousByteDevice@@PAVQByteArray@@@Z @ 177 NONAME ; class QNonContiguousByteDevice * QNonContiguousByteDeviceFactory::create(class QByteArray *) + ??6@YAAAVQDataStream@@AAV0@ABVQString@@@Z @ 178 NONAME ; class QDataStream & operator<<(class QDataStream &, class QString const &) + ?filters@QAbstractFileEngineIterator@@QBE?AV?$QFlags@W4Filter@QDir@@@@XZ @ 179 NONAME ; class QFlags QAbstractFileEngineIterator::filters(void) const + ?simplified@QString@@QBE?AV1@XZ @ 180 NONAME ; class QString QString::simplified(void) const + ?toString@QLocale@@QBE?AVQString@@ABVQDate@@ABV2@@Z @ 181 NONAME ; class QString QLocale::toString(class QDate const &, class QString const &) const + ?eventDispatcher@QCoreApplicationPrivate@@2PAVQAbstractEventDispatcher@@A @ 182 NONAME ; class QAbstractEventDispatcher * QCoreApplicationPrivate::eventDispatcher + ?trUtf8@QTextCodecPlugin@@SA?AVQString@@PBD0@Z @ 183 NONAME ; class QString QTextCodecPlugin::trUtf8(char const *, char const *) + ?setNum@QByteArray@@QAEAAV1@IH@Z @ 184 NONAME ; class QByteArray & QByteArray::setNum(unsigned int, int) + ?setIdnWhitelist@QUrl@@SAXABVQStringList@@@Z @ 185 NONAME ; void QUrl::setIdnWhitelist(class QStringList const &) + ?isSimpleText@QString@@QBE_NXZ @ 186 NONAME ; bool QString::isSimpleText(void) const + ?sectionText@QDateTimeParser@@QBE?AVQString@@ABV2@HH@Z @ 187 NONAME ; class QString QDateTimeParser::sectionText(class QString const &, int, int) const + ?trUtf8@QParallelAnimationGroup@@SA?AVQString@@PBD0@Z @ 188 NONAME ; class QString QParallelAnimationGroup::trUtf8(char const *, char const *) + ?userName@QUrl@@QBE?AVQString@@XZ @ 189 NONAME ; class QString QUrl::userName(void) const + ?permissions@QFile@@QBE?AV?$QFlags@W4Permission@QFile@@@@XZ @ 190 NONAME ; class QFlags QFile::permissions(void) const + ??0QEventTransition@@QAE@PAVQObject@@W4Type@QEvent@@PAVQState@@@Z @ 191 NONAME ; QEventTransition::QEventTransition(class QObject *, enum QEvent::Type, class QState *) + ?processEnvironment@QProcess@@QBE?AVQProcessEnvironment@@XZ @ 192 NONAME ; class QProcessEnvironment QProcess::processEnvironment(void) const + ?exec@QEventLoop@@QAEHV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@@Z @ 193 NONAME ; int QEventLoop::exec(class QFlags) + ?characterOffset@QXmlStreamReader@@QBE_JXZ @ 194 NONAME ; long long QXmlStreamReader::characterOffset(void) const + ?moveTopLeft@QRect@@QAEXABVQPoint@@@Z @ 195 NONAME ; void QRect::moveTopLeft(class QPoint const &) + ??_EQEvent@@UAE@I@Z @ 196 NONAME ; QEvent::~QEvent(unsigned int) + ?registerRestorable@QStateMachinePrivate@@QAEXPAVQObject@@ABVQByteArray@@@Z @ 197 NONAME ; void QStateMachinePrivate::registerRestorable(class QObject *, class QByteArray const &) + ?addExtraNamespaceDeclarations@QXmlStreamReader@@QAEXABV?$QVector@VQXmlStreamNamespaceDeclaration@@@@@Z @ 198 NONAME ; void QXmlStreamReader::addExtraNamespaceDeclarations(class QVector const &) + ?moveLeft@QRect@@QAEXH@Z @ 199 NONAME ; void QRect::moveLeft(int) + ?toLatin1@QChar@@QBEDXZ @ 200 NONAME ; char QChar::toLatin1(void) const + ?d_func@QState@@AAEPAVQStatePrivate@@XZ @ 201 NONAME ; class QStatePrivate * QState::d_func(void) + ?position@QStringRef@@QBEHXZ @ 202 NONAME ; int QStringRef::position(void) const + ?fileName@QDirIterator@@QBE?AVQString@@XZ @ 203 NONAME ; class QString QDirIterator::fileName(void) const + ?setFrameRange@QTimeLine@@QAEXHH@Z @ 204 NONAME ; void QTimeLine::setFrameRange(int, int) + ?event@QEventTransition@@MAE_NPAVQEvent@@@Z @ 205 NONAME ; bool QEventTransition::event(class QEvent *) + ??_EQSharedMemory@@UAE@I@Z @ 206 NONAME ; QSharedMemory::~QSharedMemory(unsigned int) + ?qt_metacast@QTextCodecPlugin@@UAEPAXPBD@Z @ 207 NONAME ; void * QTextCodecPlugin::qt_metacast(char const *) + ?convertSeparators@QDir@@SA?AVQString@@ABV2@@Z @ 208 NONAME ; class QString QDir::convertSeparators(class QString const &) + ?mimeData@QAbstractItemModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 209 NONAME ; class QMimeData * QAbstractItemModel::mimeData(class QList const &) const + ??0QPauseAnimation@@QAE@HPAVQObject@@@Z @ 210 NONAME ; QPauseAnimation::QPauseAnimation(int, class QObject *) + ??0QVariantAnimation@@QAE@PAVQObject@@@Z @ 211 NONAME ; QVariantAnimation::QVariantAnimation(class QObject *) + ?toString@QVariant@@QBE?AVQString@@XZ @ 212 NONAME ; class QString QVariant::toString(void) const + ?capacity@QByteArray@@QBEHXZ @ 213 NONAME ; int QByteArray::capacity(void) const + ?appendApplicationPathToLibraryPaths@QCoreApplicationPrivate@@QAEXXZ @ 214 NONAME ; void QCoreApplicationPrivate::appendApplicationPathToLibraryPaths(void) + ?count@QByteArray@@QBEHABV1@@Z @ 215 NONAME ; int QByteArray::count(class QByteArray const &) const + ?sprintf@QString@@QAAAAV1@PBDZZ @ 216 NONAME ; class QString & QString::sprintf(char const *, ...) + ?period@QEasingCurve@@QBEMXZ @ 217 NONAME ; float QEasingCurve::period(void) const + ?value@QXmlStreamAttributes@@QBE?AVQStringRef@@ABVQString@@0@Z @ 218 NONAME ; class QStringRef QXmlStreamAttributes::value(class QString const &, class QString const &) const + ?combiningClass@QCharRef@@QBEEXZ @ 219 NONAME ; unsigned char QCharRef::combiningClass(void) const + ?symLinkTarget@QFile@@QBE?AVQString@@XZ @ 220 NONAME ; class QString QFile::symLinkTarget(void) const + ?itemData@QAbstractItemModel@@UBE?AV?$QMap@HVQVariant@@@@ABVQModelIndex@@@Z @ 221 NONAME ; class QMap QAbstractItemModel::itemData(class QModelIndex const &) const + ?metaObject@QSequentialAnimationGroup@@UBEPBUQMetaObject@@XZ @ 222 NONAME ; struct QMetaObject const * QSequentialAnimationGroup::metaObject(void) const + ?localeAwareCompare@QStringRef@@SAHABV1@0@Z @ 223 NONAME ; int QStringRef::localeAwareCompare(class QStringRef const &, class QStringRef const &) + ?fileName@QTemporaryFile@@QBE?AVQString@@XZ @ 224 NONAME ; class QString QTemporaryFile::fileName(void) const + ?qt_metacast@QAbstractState@@UAEPAXPBD@Z @ 225 NONAME ; void * QAbstractState::qt_metacast(char const *) + ?bytesToWrite@QIODevice@@UBE_JXZ @ 226 NONAME ; long long QIODevice::bytesToWrite(void) const + ?utf16@QString@@QBEPBGXZ @ 227 NONAME ; unsigned short const * QString::utf16(void) const + ?setLoadHints@QPluginLoader@@QAEXV?$QFlags@W4LoadHint@QLibrary@@@@@Z @ 228 NONAME ; void QPluginLoader::setLoadHints(class QFlags) + ?toInt@QByteArray@@QBEHPA_NH@Z @ 229 NONAME ; int QByteArray::toInt(bool *, int) const + ?setSignal@QSignalTransition@@QAEXABVQByteArray@@@Z @ 230 NONAME ; void QSignalTransition::setSignal(class QByteArray const &) + ?isDetached@QBitArray@@QBE_NXZ @ 231 NONAME ; bool QBitArray::isDetached(void) const + ??8@YA_NABVQStringRef@@0@Z @ 232 NONAME ; bool operator==(class QStringRef const &, class QStringRef const &) + ?trUtf8@QTimeLine@@SA?AVQString@@PBD0H@Z @ 233 NONAME ; class QString QTimeLine::trUtf8(char const *, char const *, int) + ?columnsInserted@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 234 NONAME ; void QAbstractItemModel::columnsInserted(class QModelIndex const &, int, int) + ?getStaticMetaObject@QState@@SAABUQMetaObject@@XZ @ 235 NONAME ; struct QMetaObject const & QState::getStaticMetaObject(void) + ?getStaticMetaObject@QAnimationGroup@@SAABUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const & QAnimationGroup::getStaticMetaObject(void) + ?setAnimationsEnabled@QStateMachine@@QAEX_N@Z @ 237 NONAME ; void QStateMachine::setAnimationsEnabled(bool) + ??MQLatin1String@@QBE_NABVQString@@@Z @ 238 NONAME ; bool QLatin1String::operator<(class QString const &) const + ?contains@QSettings@@QBE_NABVQString@@@Z @ 239 NONAME ; bool QSettings::contains(class QString const &) const + ?wrap@QNonContiguousByteDeviceFactory@@SAPAVQIODevice@@PAVQNonContiguousByteDevice@@@Z @ 240 NONAME ; class QIODevice * QNonContiguousByteDeviceFactory::wrap(class QNonContiguousByteDevice *) + ?setLoopCount@QTimeLine@@QAEXH@Z @ 241 NONAME ; void QTimeLine::setLoopCount(int) + ?chop@QByteArray@@QAEXH@Z @ 242 NONAME ; void QByteArray::chop(int) + ?scale@QSize@@QAEXABV1@W4AspectRatioMode@Qt@@@Z @ 243 NONAME ; void QSize::scale(class QSize const &, enum Qt::AspectRatioMode) + ??BQByteRef@@QBEDXZ @ 244 NONAME ; QByteRef::operator char(void) const + ??4QString@@QAEAAV0@D@Z @ 245 NONAME ; class QString & QString::operator=(char) + ?metaObject@QAbstractState@@UBEPBUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const * QAbstractState::metaObject(void) const + ?append@QByteArray@@QAEAAV1@ABV1@@Z @ 247 NONAME ; class QByteArray & QByteArray::append(class QByteArray const &) + ?tempPath@QDir@@SA?AVQString@@XZ @ 248 NONAME ; class QString QDir::tempPath(void) + ?onTransition@QSignalTransition@@MAEXPAVQEvent@@@Z @ 249 NONAME ; void QSignalTransition::onTransition(class QEvent *) + ?fromString@QDateTime@@SA?AV1@ABVQString@@0@Z @ 250 NONAME ; class QDateTime QDateTime::fromString(class QString const &, class QString const &) + ??6QDataStream@@QAEAAV0@E@Z @ 251 NONAME ; class QDataStream & QDataStream::operator<<(unsigned char) + ??_EQAbstractTableModel@@UAE@I@Z @ 252 NONAME ; QAbstractTableModel::~QAbstractTableModel(unsigned int) + ??5QDataStream@@QAEAAV0@AA_K@Z @ 253 NONAME ; class QDataStream & QDataStream::operator>>(unsigned long long &) + ?isDesignable@QMetaProperty@@QBE_NPBVQObject@@@Z @ 254 NONAME ; bool QMetaProperty::isDesignable(class QObject const *) const + ?exponential@QLocalePrivate@@QBE?AVQChar@@XZ @ 255 NONAME ; class QChar QLocalePrivate::exponential(void) const + ?unregisterResource@QResource@@SA_NABVQString@@0@Z @ 256 NONAME ; bool QResource::unregisterResource(class QString const &, class QString const &) + ?setKeyValueAt@QVariantAnimation@@QAEXMABVQVariant@@@Z @ 257 NONAME ; void QVariantAnimation::setKeyValueAt(float, class QVariant const &) + ?insert@QByteArray@@QAEAAV1@HABV1@@Z @ 258 NONAME ; class QByteArray & QByteArray::insert(int, class QByteArray const &) + ?lockForRead@QReadWriteLock@@QAEXXZ @ 259 NONAME ; void QReadWriteLock::lockForRead(void) + ?qHash@@YAIABVQString@@@Z @ 260 NONAME ; unsigned int qHash(class QString const &) + ?clear@QString@@QAEXXZ @ 261 NONAME ; void QString::clear(void) + ?groupSeparator@QLocale@@QBE?AVQChar@@XZ @ 262 NONAME ; class QChar QLocale::groupSeparator(void) const + ?arg@QString@@QBE?AV1@ABV1@000000@Z @ 263 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) const + ??0QDirIterator@@QAE@ABVQString@@ABVQStringList@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4IteratorFlag@QDirIterator@@@@@Z @ 264 NONAME ; QDirIterator::QDirIterator(class QString const &, class QStringList const &, class QFlags, class QFlags) + ?topLeft@QRectF@@QBE?AVQPointF@@XZ @ 265 NONAME ; class QPointF QRectF::topLeft(void) const + ?mapped@QSignalMapper@@IAEXABVQString@@@Z @ 266 NONAME ; void QSignalMapper::mapped(class QString const &) + ??0QReadLocker@@QAE@PAVQReadWriteLock@@@Z @ 267 NONAME ; QReadLocker::QReadLocker(class QReadWriteLock *) + ?tr@QNonContiguousByteDevice@@SA?AVQString@@PBD0H@Z @ 268 NONAME ; class QString QNonContiguousByteDevice::tr(char const *, char const *, int) + ?internalSafetyCheckRemove2@QtSharedPointer@@YAXPBX@Z @ 269 NONAME ; void QtSharedPointer::internalSafetyCheckRemove2(void const *) + ?idnWhitelist@QUrl@@SA?AVQStringList@@XZ @ 270 NONAME ; class QStringList QUrl::idnWhitelist(void) + ?systemId@QXmlStreamEntityDeclaration@@QBE?AVQStringRef@@XZ @ 271 NONAME ; class QStringRef QXmlStreamEntityDeclaration::systemId(void) const + ?julianToGregorian@QDate@@SAXIAAH00@Z @ 272 NONAME ; void QDate::julianToGregorian(unsigned int, int &, int &, int &) + ??9QBitArray@@QBE_NABV0@@Z @ 273 NONAME ; bool QBitArray::operator!=(class QBitArray const &) const + ?exit@QThread@@QAEXH@Z @ 274 NONAME ; void QThread::exit(int) + ?toDateTime@QLocale@@QBE?AVQDateTime@@ABVQString@@0@Z @ 275 NONAME ; class QDateTime QLocale::toDateTime(class QString const &, class QString const &) const + ??5@YAAAVQDataStream@@AAV0@AAVQPointF@@@Z @ 276 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPointF &) + ??0QSettings@@QAE@W4Format@0@W4Scope@0@ABVQString@@2PAVQObject@@@Z @ 277 NONAME ; QSettings::QSettings(enum QSettings::Format, enum QSettings::Scope, class QString const &, class QString const &, class QObject *) + ?open@QFSFileEngine@@QAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@H@Z @ 278 NONAME ; bool QFSFileEngine::open(class QFlags, int) + ?endEntryList@QFSFileEngine@@UAEPAVQAbstractFileEngineIterator@@XZ @ 279 NONAME ; class QAbstractFileEngineIterator * QFSFileEngine::endEntryList(void) + ?device@QXmlStreamReader@@QBEPAVQIODevice@@XZ @ 280 NONAME ; class QIODevice * QXmlStreamReader::device(void) const + ?qsnprintf@@YAHPADIPBDZZ @ 281 NONAME ; int qsnprintf(char *, unsigned int, char const *, ...) + ?setHost@QUrl@@QAEXABVQString@@@Z @ 282 NONAME ; void QUrl::setHost(class QString const &) + ?d_func@QSharedMemory@@ABEPBVQSharedMemoryPrivate@@XZ @ 283 NONAME ; class QSharedMemoryPrivate const * QSharedMemory::d_func(void) const + ?right@QByteArray@@QBE?AV1@H@Z @ 284 NONAME ; class QByteArray QByteArray::right(int) const + ??1QSequentialAnimationGroup@@UAE@XZ @ 285 NONAME ; QSequentialAnimationGroup::~QSequentialAnimationGroup(void) + ?registerResource@QResource@@SA_NPBEABVQString@@@Z @ 286 NONAME ; bool QResource::registerResource(unsigned char const *, class QString const &) + ??6QDebug@@QAEAAV0@ABVQString@@@Z @ 287 NONAME ; class QDebug & QDebug::operator<<(class QString const &) + ??1QFSFileEngine@@UAE@XZ @ 288 NONAME ; QFSFileEngine::~QFSFileEngine(void) + ?pos@QFile@@UBE_JXZ @ 289 NONAME ; long long QFile::pos(void) const + ?registerTransitions@QStateMachinePrivate@@QAEXPAVQAbstractState@@@Z @ 290 NONAME ; void QStateMachinePrivate::registerTransitions(class QAbstractState *) + ?number@QByteArray@@SA?AV1@NDH@Z @ 291 NONAME ; class QByteArray QByteArray::number(double, char, int) + ?forcepoint@@YAAAVQTextStream@@AAV1@@Z @ 292 NONAME ; class QTextStream & forcepoint(class QTextStream &) + ?classInfoOffset@QMetaObject@@QBEHXZ @ 293 NONAME ; int QMetaObject::classInfoOffset(void) const + ?wait@QThread@@QAE_NK@Z @ 294 NONAME ; bool QThread::wait(unsigned long) + ?qt_metacall@QVariantAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 295 NONAME ; int QVariantAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QFile@@SAABUQMetaObject@@XZ @ 296 NONAME ; struct QMetaObject const & QFile::getStaticMetaObject(void) + ?toUShort@QLocale@@QBEGABVQString@@PA_NH@Z @ 297 NONAME ; unsigned short QLocale::toUShort(class QString const &, bool *, int) const + ?maybeSpace@QDebug@@QAEAAV1@XZ @ 298 NONAME ; class QDebug & QDebug::maybeSpace(void) + ?qt_regexp_toCanonical@@YA?AVQString@@ABV1@W4PatternSyntax@QRegExp@@@Z @ 299 NONAME ; class QString qt_regexp_toCanonical(class QString const &, enum QRegExp::PatternSyntax) + ?setCurrentSender@QObjectPrivate@@SAPAUSender@1@PAVQObject@@PAU21@@Z @ 300 NONAME ; struct QObjectPrivate::Sender * QObjectPrivate::setCurrentSender(class QObject *, struct QObjectPrivate::Sender *) + ?tr@QNonContiguousByteDevice@@SA?AVQString@@PBD0@Z @ 301 NONAME ; class QString QNonContiguousByteDevice::tr(char const *, char const *) + ?event@QParallelAnimationGroup@@MAE_NPAVQEvent@@@Z @ 302 NONAME ; bool QParallelAnimationGroup::event(class QEvent *) + ?tr@QObject@@SA?AVQString@@PBD0H@Z @ 303 NONAME ; class QString QObject::tr(char const *, char const *, int) + ?documentVersion@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 304 NONAME ; class QStringRef QXmlStreamReader::documentVersion(void) const + ?trUtf8@QAbstractTableModel@@SA?AVQString@@PBD0@Z @ 305 NONAME ; class QString QAbstractTableModel::trUtf8(char const *, char const *) + ??YQString@@QAEAAV0@ABVQByteArray@@@Z @ 306 NONAME ; class QString & QString::operator+=(class QByteArray const &) + ?event@QSequentialAnimationGroup@@MAE_NPAVQEvent@@@Z @ 307 NONAME ; bool QSequentialAnimationGroup::event(class QEvent *) + ?terminated@QThread@@IAEXXZ @ 308 NONAME ; void QThread::terminated(void) + ?startsWith@QByteArray@@QBE_NABV1@@Z @ 309 NONAME ; bool QByteArray::startsWith(class QByteArray const &) const + ?compare@QStringRef@@SAHABV1@0W4CaseSensitivity@Qt@@@Z @ 310 NONAME ; int QStringRef::compare(class QStringRef const &, class QStringRef const &, enum Qt::CaseSensitivity) + ?adjusted@QRectF@@QBE?AV1@MMMM@Z @ 311 NONAME ; class QRectF QRectF::adjusted(float, float, float, float) const + ?access@QMetaMethod@@QBE?AW4Access@1@XZ @ 312 NONAME ; enum QMetaMethod::Access QMetaMethod::access(void) const + ?toString@QUuid@@QBE?AVQString@@XZ @ 313 NONAME ; class QString QUuid::toString(void) const + ?category@QChar@@SA?AW4Category@1@I@Z @ 314 NONAME ; enum QChar::Category QChar::category(unsigned int) + ??0QGenericReturnArgument@@QAE@PBDPAX@Z @ 315 NONAME ; QGenericReturnArgument::QGenericReturnArgument(char const *, void *) + ?countryId@QLocalePrivate@@QBEIXZ @ 316 NONAME ; unsigned int QLocalePrivate::countryId(void) const + ?center@QRect@@QBE?AVQPoint@@XZ @ 317 NONAME ; class QPoint QRect::center(void) const + ??_EQThreadPool@@UAE@I@Z @ 318 NONAME ; QThreadPool::~QThreadPool(unsigned int) + ?resize@QByteArray@@QAEXH@Z @ 319 NONAME ; void QByteArray::resize(int) + ?isSingleShot@QTimer@@QBE_NXZ @ 320 NONAME ; bool QTimer::isSingleShot(void) const + ??1QTextCodecPlugin@@UAE@XZ @ 321 NONAME ; QTextCodecPlugin::~QTextCodecPlugin(void) + ?cell@QChar@@QBEEXZ @ 322 NONAME ; unsigned char QChar::cell(void) const + ?setUnicode@QString@@QAEAAV1@PBVQChar@@H@Z @ 323 NONAME ; class QString & QString::setUnicode(class QChar const *, int) + ?timeFormat@QLocale@@QBE?AVQString@@W4FormatType@1@@Z @ 324 NONAME ; class QString QLocale::timeFormat(enum QLocale::FormatType) const + ?isLetterOrNumber@QChar@@QBE_NXZ @ 325 NONAME ; bool QChar::isLetterOrNumber(void) const + ?contains@QByteArray@@QBE?AVQBool@@ABV1@@Z @ 326 NONAME ; class QBool QByteArray::contains(class QByteArray const &) const + ?staticMetaObject@QPluginLoader@@2UQMetaObject@@B @ 327 NONAME ; struct QMetaObject const QPluginLoader::staticMetaObject + ?isReferenceCountingNative@QBasicAtomicInt@@SA_NXZ @ 328 NONAME ; bool QBasicAtomicInt::isReferenceCountingNative(void) + ?connectNotify@QBuffer@@MAEXPBD@Z @ 329 NONAME ; void QBuffer::connectNotify(char const *) + ??_EQAbstractEventDispatcher@@UAE@I@Z @ 330 NONAME ; QAbstractEventDispatcher::~QAbstractEventDispatcher(unsigned int) + ?setError@QStateMachinePrivate@@QAEXW4Error@QStateMachine@@PAVQAbstractState@@@Z @ 331 NONAME ; void QStateMachinePrivate::setError(enum QStateMachine::Error, class QAbstractState *) + ?isSequential@QFile@@UBE_NXZ @ 332 NONAME ; bool QFile::isSequential(void) const + ??0QSignalTransition@@QAE@PAVQState@@@Z @ 333 NONAME ; QSignalTransition::QSignalTransition(class QState *) + ?unregisterType@QMetaType@@SAXPBD@Z @ 334 NONAME ; void QMetaType::unregisterType(char const *) + ??_EQStateMachinePrivate@@UAE@I@Z @ 335 NONAME ; QStateMachinePrivate::~QStateMachinePrivate(unsigned int) + ?replace@QByteArray@@QAEAAV1@PBDH0H@Z @ 336 NONAME ; class QByteArray & QByteArray::replace(char const *, int, char const *, int) + ?group@QSettings@@QBE?AVQString@@XZ @ 337 NONAME ; class QString QSettings::group(void) const + ?testAndSetAcquire@QBasicAtomicInt@@QAE_NHH@Z @ 338 NONAME ; bool QBasicAtomicInt::testAndSetAcquire(int, int) + ?qt_metacast@QPropertyAnimation@@UAEPAXPBD@Z @ 339 NONAME ; void * QPropertyAnimation::qt_metacast(char const *) + ?normalized@QRect@@QBE?AV1@XZ @ 340 NONAME ; class QRect QRect::normalized(void) const + ?handle@QAbstractFileEngine@@UBEHXZ @ 341 NONAME ; int QAbstractFileEngine::handle(void) const + ?x1@QLine@@QBEHXZ @ 342 NONAME ; int QLine::x1(void) const + ??_EQTranslator@@UAE@I@Z @ 343 NONAME ; QTranslator::~QTranslator(unsigned int) + ?error@QXmlStreamReader@@QBE?AW4Error@1@XZ @ 344 NONAME ; enum QXmlStreamReader::Error QXmlStreamReader::error(void) const + ?enumeratorOffset@QMetaObject@@QBEHXZ @ 345 NONAME ; int QMetaObject::enumeratorOffset(void) const + ?unload@QPluginLoader@@QAE_NXZ @ 346 NONAME ; bool QPluginLoader::unload(void) + ?aboutToClose@QIODevice@@IAEXXZ @ 347 NONAME ; void QIODevice::aboutToClose(void) + ??7QBitRef@@QBE_NXZ @ 348 NONAME ; bool QBitRef::operator!(void) const + ?start@QThreadPool@@QAEXPAVQRunnable@@H@Z @ 349 NONAME ; void QThreadPool::start(class QRunnable *, int) + ?timeSpec@QDateTime@@QBE?AW4TimeSpec@Qt@@XZ @ 350 NONAME ; enum Qt::TimeSpec QDateTime::timeSpec(void) const + ?group@QAbstractAnimation@@QBEPAVQAnimationGroup@@XZ @ 351 NONAME ; class QAnimationGroup * QAbstractAnimation::group(void) const + ?metaObject@QObjectCleanupHandler@@UBEPBUQMetaObject@@XZ @ 352 NONAME ; struct QMetaObject const * QObjectCleanupHandler::metaObject(void) const + ?tr@QSettings@@SA?AVQString@@PBD0@Z @ 353 NONAME ; class QString QSettings::tr(char const *, char const *) + ?wakeUpWasCalled@QEventDispatcherSymbian@@QAEXXZ @ 354 NONAME ; void QEventDispatcherSymbian::wakeUpWasCalled(void) + ?isEndDocument@QXmlStreamReader@@QBE_NXZ @ 355 NONAME ; bool QXmlStreamReader::isEndDocument(void) const + ?columnsAboutToBeMoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH0H@Z @ 356 NONAME ; void QAbstractItemModel::columnsAboutToBeMoved(class QModelIndex const &, int, int, class QModelIndex const &, int) + ?flush@@YAAAVQTextStream@@AAV1@@Z @ 357 NONAME ; class QTextStream & flush(class QTextStream &) + ?fileInfo@QDirIterator@@QBE?AVQFileInfo@@XZ @ 358 NONAME ; class QFileInfo QDirIterator::fileInfo(void) const + ?enclosingMetaObject@QMetaClassInfo@@QBEPBUQMetaObject@@XZ @ 359 NONAME ; struct QMetaObject const * QMetaClassInfo::enclosingMetaObject(void) const + ??0QUrl@@QAE@XZ @ 360 NONAME ; QUrl::QUrl(void) + ?intersect@QLineF@@QBE?AW4IntersectType@1@ABV1@PAVQPointF@@@Z @ 361 NONAME ; enum QLineF::IntersectType QLineF::intersect(class QLineF const &, class QPointF *) const + ?isWritable@QFileInfo@@QBE_NXZ @ 362 NONAME ; bool QFileInfo::isWritable(void) const + ?isDir@QFileInfo@@QBE_NXZ @ 363 NONAME ; bool QFileInfo::isDir(void) const + ??5QTextStream@@QAEAAV0@AAM@Z @ 364 NONAME ; class QTextStream & QTextStream::operator>>(float &) + ?tr@QFile@@SA?AVQString@@PBD0H@Z @ 365 NONAME ; class QString QFile::tr(char const *, char const *, int) + ?temp@QDir@@SA?AV1@XZ @ 366 NONAME ; class QDir QDir::temp(void) + ?activate@QMetaObject@@SAXPAVQObject@@PBU1@HPAPAX@Z @ 367 NONAME ; void QMetaObject::activate(class QObject *, struct QMetaObject const *, int, void * *) + ??SQBitArray@@QBE?AV0@XZ @ 368 NONAME ; class QBitArray QBitArray::operator~(void) const + ?waitForBytesWritten@QProcess@@UAE_NH@Z @ 369 NONAME ; bool QProcess::waitForBytesWritten(int) + ?writeEndDocument@QXmlStreamWriter@@QAEXXZ @ 370 NONAME ; void QXmlStreamWriter::writeEndDocument(void) + ?endArray@QSettings@@QAEXXZ @ 371 NONAME ; void QSettings::endArray(void) + ??0QString@@QAE@HVQChar@@@Z @ 372 NONAME ; QString::QString(int, class QChar) + ?data@QByteArray@@QBEPBDXZ @ 373 NONAME ; char const * QByteArray::data(void) const + ?key@QSharedMemory@@QBE?AVQString@@XZ @ 374 NONAME ; class QString QSharedMemory::key(void) const + ?indexOf@QByteArray@@QBEHABV1@H@Z @ 375 NONAME ; int QByteArray::indexOf(class QByteArray const &, int) const + ?stop@QStateMachine@@QAEXXZ @ 376 NONAME ; void QStateMachine::stop(void) + ??4QAtomicInt@@QAEAAV0@H@Z @ 377 NONAME ; class QAtomicInt & QAtomicInt::operator=(int) + ?setIniCodec@QSettings@@QAEXPAVQTextCodec@@@Z @ 378 NONAME ; void QSettings::setIniCodec(class QTextCodec *) + ?count@QBitArray@@QBEH_N@Z @ 379 NONAME ; int QBitArray::count(bool) const + ?padChar@QTextStream@@QBE?AVQChar@@XZ @ 380 NONAME ; class QChar QTextStream::padChar(void) const + ?dayOfYear@QDate@@QBEHXZ @ 381 NONAME ; int QDate::dayOfYear(void) const + ??0QChar@@QAE@G@Z @ 382 NONAME ; QChar::QChar(unsigned short) + ?QStringList_indexOf@QtPrivate@@YAHPBVQStringList@@AAVQRegExp@@H@Z @ 383 NONAME ; int QtPrivate::QStringList_indexOf(class QStringList const *, class QRegExp &, int) + ?instance@QFactoryLoader@@QBEPAVQObject@@ABVQString@@@Z @ 384 NONAME ; class QObject * QFactoryLoader::instance(class QString const &) const + ?trUtf8@QObjectCleanupHandler@@SA?AVQString@@PBD0@Z @ 385 NONAME ; class QString QObjectCleanupHandler::trUtf8(char const *, char const *) + ?sendThroughObjectEventFilters@QCoreApplicationPrivate@@QAE_NPAVQObject@@PAVQEvent@@@Z @ 386 NONAME ; bool QCoreApplicationPrivate::sendThroughObjectEventFilters(class QObject *, class QEvent *) + ?setStandardErrorFile@QProcess@@QAEXABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 387 NONAME ; void QProcess::setStandardErrorFile(class QString const &, class QFlags) + ?persistentIndexList@QAbstractItemModel@@IBE?AV?$QList@VQModelIndex@@@@XZ @ 388 NONAME ; class QList QAbstractItemModel::persistentIndexList(void) const + ??6@YA?AVQDebug@@V0@V?$QFlags@W4Filter@QDir@@@@@Z @ 389 NONAME ; class QDebug operator<<(class QDebug, class QFlags) + ?directoryChanged@QFileSystemWatcher@@IAEXABVQString@@@Z @ 390 NONAME ; void QFileSystemWatcher::directoryChanged(class QString const &) + ??_EQMetaCallEvent@@UAE@I@Z @ 391 NONAME ; QMetaCallEvent::~QMetaCallEvent(unsigned int) + ?setErrorString@QIODevice@@IAEXABVQString@@@Z @ 392 NONAME ; void QIODevice::setErrorString(class QString const &) + ?qt_symbian_throwIfError@@YAXH@Z @ 393 NONAME ; void qt_symbian_throwIfError(int) + ?writeCurrentToken@QXmlStreamWriter@@QAEXABVQXmlStreamReader@@@Z @ 394 NONAME ; void QXmlStreamWriter::writeCurrentToken(class QXmlStreamReader const &) + ?d_func@QEventLoop@@AAEPAVQEventLoopPrivate@@XZ @ 395 NONAME ; class QEventLoopPrivate * QEventLoop::d_func(void) + ??6QDebug@@QAEAAV0@VQBool@@@Z @ 396 NONAME ; class QDebug & QDebug::operator<<(class QBool) + ?toUnicode@QTextDecoder@@QAEXPAVQString@@PBDH@Z @ 397 NONAME ; void QTextDecoder::toUnicode(class QString *, char const *, int) + ?parse@QDateTimeParser@@QBE?AUStateNode@1@AAVQString@@AAHABVQDateTime@@_N@Z @ 398 NONAME ; struct QDateTimeParser::StateNode QDateTimeParser::parse(class QString &, int &, class QDateTime const &, bool) const + ??4QStringRef@@QAEAAV0@PBVQString@@@Z @ 399 NONAME ; class QStringRef & QStringRef::operator=(class QString const *) + ?center@@YAAAVQTextStream@@AAV1@@Z @ 400 NONAME ; class QTextStream & center(class QTextStream &) + ?setProcessChannelMode@QProcess@@QAEXW4ProcessChannelMode@1@@Z @ 401 NONAME ; void QProcess::setProcessChannelMode(enum QProcess::ProcessChannelMode) + ??0QSizeF@@QAE@XZ @ 402 NONAME ; QSizeF::QSizeF(void) + ??8QXmlStreamNotationDeclaration@@QBE_NABV0@@Z @ 403 NONAME ; bool QXmlStreamNotationDeclaration::operator==(class QXmlStreamNotationDeclaration const &) const + ?toCaseFolded@QChar@@SAGG@Z @ 404 NONAME ; unsigned short QChar::toCaseFolded(unsigned short) + ?setY@QRectF@@QAEXM@Z @ 405 NONAME ; void QRectF::setY(float) + ?dy@QLineF@@QBEMXZ @ 406 NONAME ; float QLineF::dy(void) const + ?trUtf8@QPauseAnimation@@SA?AVQString@@PBD0@Z @ 407 NONAME ; class QString QPauseAnimation::trUtf8(char const *, char const *) + ?trUtf8@QAbstractTableModel@@SA?AVQString@@PBD0H@Z @ 408 NONAME ; class QString QAbstractTableModel::trUtf8(char const *, char const *, int) + ?setSingleShot@QTimer@@QAEX_N@Z @ 409 NONAME ; void QTimer::setSingleShot(bool) + ?load@QMetaType@@SA_NAAVQDataStream@@HPAX@Z @ 410 NONAME ; bool QMetaType::load(class QDataStream &, int, void *) + ?setExpiryTimeout@QThreadPool@@QAEXH@Z @ 411 NONAME ; void QThreadPool::setExpiryTimeout(int) + ?isNameChar@QXmlUtils@@SA_NVQChar@@@Z @ 412 NONAME ; bool QXmlUtils::isNameChar(class QChar) + ?setVersion@QDataStream@@QAEXH@Z @ 413 NONAME ; void QDataStream::setVersion(int) + ?removePostedEvents@QCoreApplication@@SAXPAVQObject@@@Z @ 414 NONAME ; void QCoreApplication::removePostedEvents(class QObject *) + ??1QDateTime@@QAE@XZ @ 415 NONAME ; QDateTime::~QDateTime(void) + ?setReadChannelMode@QProcess@@QAEXW4ProcessChannelMode@1@@Z @ 416 NONAME ; void QProcess::setReadChannelMode(enum QProcess::ProcessChannelMode) + ?d_func@QFactoryLoader@@ABEPBVQFactoryLoaderPrivate@@XZ @ 417 NONAME ; class QFactoryLoaderPrivate const * QFactoryLoader::d_func(void) const + ?setEncodedUrl@QUrl@@QAEXABVQByteArray@@W4ParsingMode@1@@Z @ 418 NONAME ; void QUrl::setEncodedUrl(class QByteArray const &, enum QUrl::ParsingMode) + ?insertPauseAt@QSequentialAnimationGroup@@QAEPAVQPauseAnimation@@HH@Z @ 419 NONAME ; class QPauseAnimation * QSequentialAnimationGroup::insertPauseAt(int, int) + ?qt_metacast@QVariantAnimation@@UAEPAXPBD@Z @ 420 NONAME ; void * QVariantAnimation::qt_metacast(char const *) + ?insert@QString@@QAEAAV1@HVQChar@@@Z @ 421 NONAME ; class QString & QString::insert(int, class QChar) + ??0QTextStreamManipulator@@QAE@P8QTextStream@@AEXH@ZH@Z @ 422 NONAME ; QTextStreamManipulator::QTextStreamManipulator(void (*)(int), int) + ?QStringList_lastIndexOf@QtPrivate@@YAHPBVQStringList@@AAVQRegExp@@H@Z @ 423 NONAME ; int QtPrivate::QStringList_lastIndexOf(class QStringList const *, class QRegExp &, int) + ?isLeapYear@QDate@@SA_NH@Z @ 424 NONAME ; bool QDate::isLeapYear(int) + ?QBasicAtomicPointer_fetchAndAddOrdered@@YAPAXPCRAXH@Z @ 425 NONAME ; void * QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *, int) + ?properties@QUnicodeTables@@YAPBUProperties@1@I@Z @ 426 NONAME ; struct QUnicodeTables::Properties const * QUnicodeTables::properties(unsigned int) + ??1QDir@@QAE@XZ @ 427 NONAME ; QDir::~QDir(void) + ?isFetchAndAddWaitFree@QBasicAtomicInt@@SA_NXZ @ 428 NONAME ; bool QBasicAtomicInt::isFetchAndAddWaitFree(void) + ?toTitleCase@QCharRef@@QBE?AVQChar@@XZ @ 429 NONAME ; class QChar QCharRef::toTitleCase(void) const + ?toSize@QSizeF@@QBE?AVQSize@@XZ @ 430 NONAME ; class QSize QSizeF::toSize(void) const + ?squeeze@QByteArray@@QAEXXZ @ 431 NONAME ; void QByteArray::squeeze(void) + ?drives@QFSFileEngine@@SA?AV?$QList@VQFileInfo@@@@XZ @ 432 NONAME ; class QList QFSFileEngine::drives(void) + ?decomposition@QCharRef@@QBE?AVQString@@XZ @ 433 NONAME ; class QString QCharRef::decomposition(void) const + ?sync@QSettings@@QAEXXZ @ 434 NONAME ; void QSettings::sync(void) + ??0QFileSystemWatcher@@QAE@PAVQObject@@@Z @ 435 NONAME ; QFileSystemWatcher::QFileSystemWatcher(class QObject *) + ?setFileName@QPluginLoader@@QAEXABVQString@@@Z @ 436 NONAME ; void QPluginLoader::setFileName(class QString const &) + ?instance@QMutexPool@@SAPAV1@XZ @ 437 NONAME ; class QMutexPool * QMutexPool::instance(void) + ?device@QTextStream@@QBEPAVQIODevice@@XZ @ 438 NONAME ; class QIODevice * QTextStream::device(void) const + ??MQByteRef@@QBE_ND@Z @ 439 NONAME ; bool QByteRef::operator<(char) const + ?easingCurve@QTimeLine@@QBE?AVQEasingCurve@@XZ @ 440 NONAME ; class QEasingCurve QTimeLine::easingCurve(void) const + ??8QString@@QBE_NABV0@@Z @ 441 NONAME ; bool QString::operator==(class QString const &) const + ?x@QPoint@@QBEHXZ @ 442 NONAME ; int QPoint::x(void) const + ?grow@QVectorData@@SAHHHH_N@Z @ 443 NONAME ; int QVectorData::grow(int, int, int, bool) + ?notify_helper@QCoreApplicationPrivate@@QAE_NPAVQObject@@PAVQEvent@@@Z @ 444 NONAME ; bool QCoreApplicationPrivate::notify_helper(class QObject *, class QEvent *) + ?isChar@QXmlUtils@@SA_NVQChar@@@Z @ 445 NONAME ; bool QXmlUtils::isChar(class QChar) + ??XQPoint@@QAEAAV0@M@Z @ 446 NONAME ; class QPoint & QPoint::operator*=(float) + ??1QAbstractTransition@@UAE@XZ @ 447 NONAME ; QAbstractTransition::~QAbstractTransition(void) + ??ZQSizeF@@QAEAAV0@ABV0@@Z @ 448 NONAME ; class QSizeF & QSizeF::operator-=(class QSizeF const &) + ??1QDeclarativeData@@UAE@XZ @ 449 NONAME ; QDeclarativeData::~QDeclarativeData(void) + ??0QDir@@QAE@ABVQString@@@Z @ 450 NONAME ; QDir::QDir(class QString const &) + ?tempPath@QFSFileEngine@@SA?AVQString@@XZ @ 451 NONAME ; class QString QFSFileEngine::tempPath(void) + ?isResettable@QMetaProperty@@QBE_NXZ @ 452 NONAME ; bool QMetaProperty::isResettable(void) const + ?totalDuration@QAbstractAnimation@@QBEHXZ @ 453 NONAME ; int QAbstractAnimation::totalDuration(void) const + ?toAscii@QString@@QBE?AVQByteArray@@XZ @ 454 NONAME ; class QByteArray QString::toAscii(void) const + ??_EQAbstractFileEngineHandler@@UAE@I@Z @ 455 NONAME ; QAbstractFileEngineHandler::~QAbstractFileEngineHandler(unsigned int) + ?clear@QBitArray@@QAEXXZ @ 456 NONAME ; void QBitArray::clear(void) + ?setLibraryPaths@QCoreApplication@@SAXABVQStringList@@@Z @ 457 NONAME ; void QCoreApplication::setLibraryPaths(class QStringList const &) + ?data@QByteArray@@QAEPADXZ @ 458 NONAME ; char * QByteArray::data(void) + ?qt_metacast@QSignalTransition@@UAEPAXPBD@Z @ 459 NONAME ; void * QSignalTransition::qt_metacast(char const *) + ?encodeName@QFile@@SA?AVQByteArray@@ABVQString@@@Z @ 460 NONAME ; class QByteArray QFile::encodeName(class QString const &) + ??0QSignalTransition@@QAE@PAVQObject@@PBDPAVQState@@@Z @ 461 NONAME ; QSignalTransition::QSignalTransition(class QObject *, char const *, class QState *) + ?encodedPassword@QUrl@@QBE?AVQByteArray@@XZ @ 462 NONAME ; class QByteArray QUrl::encodedPassword(void) const + ?defaultState@QHistoryState@@QBEPAVQAbstractState@@XZ @ 463 NONAME ; class QAbstractState * QHistoryState::defaultState(void) const + ?clear@QVariant@@QAEXXZ @ 464 NONAME ; void QVariant::clear(void) + ?methodOffset@QMetaObject@@QBEHXZ @ 465 NONAME ; int QMetaObject::methodOffset(void) const + ?metaObject@QFinalState@@UBEPBUQMetaObject@@XZ @ 466 NONAME ; struct QMetaObject const * QFinalState::metaObject(void) const + ?d_func@QTranslator@@ABEPBVQTranslatorPrivate@@XZ @ 467 NONAME ; class QTranslatorPrivate const * QTranslator::d_func(void) const + ?hasImage@QMimeData@@QBE_NXZ @ 468 NONAME ; bool QMimeData::hasImage(void) const + ??8QPersistentModelIndex@@QBE_NABVQModelIndex@@@Z @ 469 NONAME ; bool QPersistentModelIndex::operator==(class QModelIndex const &) const + ?valueToKey@QMetaEnum@@QBEPBDH@Z @ 470 NONAME ; char const * QMetaEnum::valueToKey(int) const + ??9QHBufC@@QBE_NABV0@@Z @ 471 NONAME ; bool QHBufC::operator!=(class QHBufC const &) const + ?moveBottomRight@QRectF@@QAEXABVQPointF@@@Z @ 472 NONAME ; void QRectF::moveBottomRight(class QPointF const &) + ?fromLatin1@QString@@SA?AV1@PBDH@Z @ 473 NONAME ; class QString QString::fromLatin1(char const *, int) + ?constructor@QMetaObject@@QBE?AVQMetaMethod@@H@Z @ 474 NONAME ; class QMetaMethod QMetaObject::constructor(int) const + ?isRunning@QThread@@QBE_NXZ @ 475 NONAME ; bool QThread::isRunning(void) const + ?eventFilter@QObject@@UAE_NPAV1@PAVQEvent@@@Z @ 476 NONAME ; bool QObject::eventFilter(class QObject *, class QEvent *) + ?compare@QStringRef@@SAHABV1@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 477 NONAME ; int QStringRef::compare(class QStringRef const &, class QString const &, enum Qt::CaseSensitivity) + ??0QVariant@@QAE@M@Z @ 478 NONAME ; QVariant::QVariant(float) + ?absolutePath@QDir@@QBE?AVQString@@XZ @ 479 NONAME ; class QString QDir::absolutePath(void) const + ?isActive@QBasicTimer@@QBE_NXZ @ 480 NONAME ; bool QBasicTimer::isActive(void) const + ?getStaticMetaObject@QLibrary@@SAABUQMetaObject@@XZ @ 481 NONAME ; struct QMetaObject const & QLibrary::getStaticMetaObject(void) + ??0QDebug@@QAE@PAVQString@@@Z @ 482 NONAME ; QDebug::QDebug(class QString *) + ?quit@QCoreApplication@@SAXXZ @ 483 NONAME ; void QCoreApplication::quit(void) + ??0QTemporaryFile@@QAE@ABVQString@@@Z @ 484 NONAME ; QTemporaryFile::QTemporaryFile(class QString const &) + ?y@QPointF@@QBEMXZ @ 485 NONAME ; float QPointF::y(void) const + ?setText@QMimeData@@QAEXABVQString@@@Z @ 486 NONAME ; void QMimeData::setText(class QString const &) + ??MQTime@@QBE_NABV0@@Z @ 487 NONAME ; bool QTime::operator<(class QTime const &) const + ?moveLeft@QRectF@@QAEXM@Z @ 488 NONAME ; void QRectF::moveLeft(float) + ?isEmpty@QStringRef@@QBE_NXZ @ 489 NONAME ; bool QStringRef::isEmpty(void) const + ?hasShrunk@QHashData@@QAEXXZ @ 490 NONAME ; void QHashData::hasShrunk(void) + ?absoluteMax@QDateTimeParser@@QBEHHABVQDateTime@@@Z @ 491 NONAME ; int QDateTimeParser::absoluteMax(int, class QDateTime const &) const + ??5@YAAAVQDataStream@@AAV0@AAW4Type@QVariant@@@Z @ 492 NONAME ; class QDataStream & operator>>(class QDataStream &, enum QVariant::Type &) + ??BQXmlStreamStringRef@@QBE?AVQStringRef@@XZ @ 493 NONAME ; QXmlStreamStringRef::operator class QStringRef(void) const + ?replace@QString@@QAEAAV1@ABV1@ABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 494 NONAME ; class QString & QString::replace(class QString const &, class QLatin1String const &, enum Qt::CaseSensitivity) + ?qt_metacall@QThreadPool@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 495 NONAME ; int QThreadPool::qt_metacall(enum QMetaObject::Call, int, void * *) + ?create@QSharedMemory@@QAE_NHW4AccessMode@1@@Z @ 496 NONAME ; bool QSharedMemory::create(int, enum QSharedMemory::AccessMode) + ?qputenv@@YA_NPBDABVQByteArray@@@Z @ 497 NONAME ; bool qputenv(char const *, class QByteArray const &) + ?tryAcquire@QSemaphore@@QAE_NHH@Z @ 498 NONAME ; bool QSemaphore::tryAcquire(int, int) + ?isFetchAndStoreNative@QBasicAtomicInt@@SA_NXZ @ 499 NONAME ; bool QBasicAtomicInt::isFetchAndStoreNative(void) + ?removePersistentIndexData@QAbstractItemModelPrivate@@QAEXPAVQPersistentModelIndexData@@@Z @ 500 NONAME ; void QAbstractItemModelPrivate::removePersistentIndexData(class QPersistentModelIndexData *) + ?append@QListData@@QAEPAPAXABU1@@Z @ 501 NONAME ; void * * QListData::append(struct QListData const &) + ??9QFileInfo@@QBE_NABV0@@Z @ 502 NONAME ; bool QFileInfo::operator!=(class QFileInfo const &) const + ?indexIn@QByteArrayMatcher@@QBEHABVQByteArray@@H@Z @ 503 NONAME ; int QByteArrayMatcher::indexIn(class QByteArray const &, int) const + ?path@QAbstractFileEngineIterator@@QBE?AVQString@@XZ @ 504 NONAME ; class QString QAbstractFileEngineIterator::path(void) const + ?lastIndexOf@QString@@QBEHABVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 505 NONAME ; int QString::lastIndexOf(class QLatin1String const &, int, enum Qt::CaseSensitivity) const + ??6@YAAAVQDataStream@@AAV0@ABVQLine@@@Z @ 506 NONAME ; class QDataStream & operator<<(class QDataStream &, class QLine const &) + ?key@QMetaEnum@@QBEPBDH@Z @ 507 NONAME ; char const * QMetaEnum::key(int) const + ?trUtf8@QAbstractEventDispatcher@@SA?AVQString@@PBD0@Z @ 508 NONAME ; class QString QAbstractEventDispatcher::trUtf8(char const *, char const *) + ?setMinimal@QRegExp@@QAEX_N@Z @ 509 NONAME ; void QRegExp::setMinimal(bool) + ?translated@QRect@@QBE?AV1@ABVQPoint@@@Z @ 510 NONAME ; class QRect QRect::translated(class QPoint const &) const + ?metaObject@QEventLoop@@UBEPBUQMetaObject@@XZ @ 511 NONAME ; struct QMetaObject const * QEventLoop::metaObject(void) const + ?append2@QListData@@QAEPAPAXABU1@@Z @ 512 NONAME ; void * * QListData::append2(struct QListData const &) + ?decomposition@QChar@@QBE?AVQString@@XZ @ 513 NONAME ; class QString QChar::decomposition(void) const + ?reset@@YAAAVQTextStream@@AAV1@@Z @ 514 NONAME ; class QTextStream & reset(class QTextStream &) + ?endsWith@QByteArray@@QBE_NABV1@@Z @ 515 NONAME ; bool QByteArray::endsWith(class QByteArray const &) const + ?trUtf8@QStateMachine@@SA?AVQString@@PBD0H@Z @ 516 NONAME ; class QString QStateMachine::trUtf8(char const *, char const *, int) + ?translated@QRectF@@QBE?AV1@MM@Z @ 517 NONAME ; class QRectF QRectF::translated(float, float) const + ??0QTemporaryFile@@QAE@ABVQString@@PAVQObject@@@Z @ 518 NONAME ; QTemporaryFile::QTemporaryFile(class QString const &, class QObject *) + ??5QDataStream@@QAEAAV0@AAH@Z @ 519 NONAME ; class QDataStream & QDataStream::operator>>(int &) + ?toLocale@QVariant@@QBE?AVQLocale@@XZ @ 520 NONAME ; class QLocale QVariant::toLocale(void) const + ?toRect@QRectF@@QBE?AVQRect@@XZ @ 521 NONAME ; class QRect QRectF::toRect(void) const + ?children@QObject@@QBEABV?$QList@PAVQObject@@@@XZ @ 522 NONAME ; class QList const & QObject::children(void) const + ?reserveThread@QThreadPool@@QAEXXZ @ 523 NONAME ; void QThreadPool::reserveThread(void) + ?setNum@QByteArray@@QAEAAV1@_KH@Z @ 524 NONAME ; class QByteArray & QByteArray::setNum(unsigned long long, int) + ?year@QDate@@QBEHXZ @ 525 NONAME ; int QDate::year(void) const + ?beginReadArray@QSettings@@QAEHABVQString@@@Z @ 526 NONAME ; int QSettings::beginReadArray(class QString const &) + ?duration@QTimeLine@@QBEHXZ @ 527 NONAME ; int QTimeLine::duration(void) const + ?cftr@QTextCodec@@0PAV1@A @ 528 NONAME ; class QTextCodec * QTextCodec::cftr + ??_6QBitArray@@QAEAAV0@ABV0@@Z @ 529 NONAME ; class QBitArray & QBitArray::operator^=(class QBitArray const &) + ?errorString@QRegExp@@QBE?AVQString@@XZ @ 530 NONAME ; class QString QRegExp::errorString(void) const + ??_5QBitArray@@QAEAAV0@ABV0@@Z @ 531 NONAME ; class QBitArray & QBitArray::operator|=(class QBitArray const &) + ?closingDown@QCoreApplication@@SA_NXZ @ 532 NONAME ; bool QCoreApplication::closingDown(void) + ??0QAbstractItemModelPrivate@@QAE@XZ @ 533 NONAME ; QAbstractItemModelPrivate::QAbstractItemModelPrivate(void) + ?isOpen@QIODevice@@QBE_NXZ @ 534 NONAME ; bool QIODevice::isOpen(void) const + ??_4QBitArray@@QAEAAV0@ABV0@@Z @ 535 NONAME ; class QBitArray & QBitArray::operator&=(class QBitArray const &) + ?easingCurve@QVariantAnimation@@QBE?AVQEasingCurve@@XZ @ 536 NONAME ; class QEasingCurve QVariantAnimation::easingCurve(void) const + ?contains@QRect@@QBE_NHH@Z @ 537 NONAME ; bool QRect::contains(int, int) const + ??0QWriteLocker@@QAE@PAVQReadWriteLock@@@Z @ 538 NONAME ; QWriteLocker::QWriteLocker(class QReadWriteLock *) + ?d_func@QFile@@ABEPBVQFilePrivate@@XZ @ 539 NONAME ; class QFilePrivate const * QFile::d_func(void) const + ?createIndex@QAbstractItemModelPrivate@@QBE?AVQModelIndex@@HHH@Z @ 540 NONAME ; class QModelIndex QAbstractItemModelPrivate::createIndex(int, int, int) const + ?qInstallMsgHandler@@YAP6AXW4QtMsgType@@PBD@ZP6AX01@Z@Z @ 541 NONAME ; void (*)(enum QtMsgType, char const *) qInstallMsgHandler(void (*)(enum QtMsgType, char const *)) + ?stop@QTimeLine@@QAEXXZ @ 542 NONAME ; void QTimeLine::stop(void) + ??4QCharRef@@QAEAAV0@I@Z @ 543 NONAME ; class QCharRef & QCharRef::operator=(unsigned int) + ?tr@QPropertyAnimation@@SA?AVQString@@PBD0H@Z @ 544 NONAME ; class QString QPropertyAnimation::tr(char const *, char const *, int) + ?codec@QXmlStreamWriter@@QBEPAVQTextCodec@@XZ @ 545 NONAME ; class QTextCodec * QXmlStreamWriter::codec(void) const + ?handler@QVariant@@1PBUHandler@1@B @ 546 NONAME ; struct QVariant::Handler const * const QVariant::handler + ??0QDir@@QAE@ABVQString@@0V?$QFlags@W4SortFlag@QDir@@@@V?$QFlags@W4Filter@QDir@@@@@Z @ 547 NONAME ; QDir::QDir(class QString const &, class QString const &, class QFlags, class QFlags) + ??MQString@@QBE_NPBD@Z @ 548 NONAME ; bool QString::operator<(char const *) const + ?push_front@QString@@QAEXABV1@@Z @ 549 NONAME ; void QString::push_front(class QString const &) + ?d_func@QXmlStreamReader@@AAEPAVQXmlStreamReaderPrivate@@XZ @ 550 NONAME ; class QXmlStreamReaderPrivate * QXmlStreamReader::d_func(void) + ?d_func@QParallelAnimationGroup@@ABEPBVQParallelAnimationGroupPrivate@@XZ @ 551 NONAME ; class QParallelAnimationGroupPrivate const * QParallelAnimationGroup::d_func(void) const + ?get@QAbstractTransitionPrivate@@SAPAV1@PAVQAbstractTransition@@@Z @ 552 NONAME ; class QAbstractTransitionPrivate * QAbstractTransitionPrivate::get(class QAbstractTransition *) + ?toLongLong@QString@@QBE_JPA_NH@Z @ 553 NONAME ; long long QString::toLongLong(bool *, int) const + ??5QTextStream@@QAEAAV0@AAF@Z @ 554 NONAME ; class QTextStream & QTextStream::operator>>(short &) + ?q_func@QAbstractTransitionPrivate@@AAEPAVQAbstractTransition@@XZ @ 555 NONAME ; class QAbstractTransition * QAbstractTransitionPrivate::q_func(void) + ?close@QFSFileEngine@@UAE_NXZ @ 556 NONAME ; bool QFSFileEngine::close(void) + ?next@QDirIterator@@QAE?AVQString@@XZ @ 557 NONAME ; class QString QDirIterator::next(void) + ?isTestAndSetWaitFree@QBasicAtomicInt@@SA_NXZ @ 558 NONAME ; bool QBasicAtomicInt::isTestAndSetWaitFree(void) + ?length@QStringRef@@QBEHXZ @ 559 NONAME ; int QStringRef::length(void) const + ?pos@QIODevice@@UBE_JXZ @ 560 NONAME ; long long QIODevice::pos(void) const + ?compare@QString@@SAHABV1@0@Z @ 561 NONAME ; int QString::compare(class QString const &, class QString const &) + ?truncate@QString@@QAEXH@Z @ 562 NONAME ; void QString::truncate(int) + ?unlock@QMutex@@QAEXXZ @ 563 NONAME ; void QMutex::unlock(void) + ?globalInstance@QThreadPool@@SAPAV1@XZ @ 564 NONAME ; class QThreadPool * QThreadPool::globalInstance(void) + ?d_func@QPauseAnimation@@AAEPAVQPauseAnimationPrivate@@XZ @ 565 NONAME ; class QPauseAnimationPrivate * QPauseAnimation::d_func(void) + ??0QVariant@@QAE@HPBX@Z @ 566 NONAME ; QVariant::QVariant(int, void const *) + ?toString@QLocale@@QBE?AVQString@@ABVQTime@@ABV2@@Z @ 567 NONAME ; class QString QLocale::toString(class QTime const &, class QString const &) const + ?qAddPostRoutine@@YAXP6AXXZ@Z @ 568 NONAME ; void qAddPostRoutine(void (*)(void)) + ?trUtf8@QAbstractListModel@@SA?AVQString@@PBD0@Z @ 569 NONAME ; class QString QAbstractListModel::trUtf8(char const *, char const *) + ??_EQXmlStreamEntityResolver@@UAE@I@Z @ 570 NONAME ; QXmlStreamEntityResolver::~QXmlStreamEntityResolver(unsigned int) + ?event@QObject@@UAE_NPAVQEvent@@@Z @ 571 NONAME ; bool QObject::event(class QEvent *) + ?trUtf8@QAnimationGroup@@SA?AVQString@@PBD0H@Z @ 572 NONAME ; class QString QAnimationGroup::trUtf8(char const *, char const *, int) + ?fileName@QAbstractFileEngine@@UBE?AVQString@@W4FileName@1@@Z @ 573 NONAME ; class QString QAbstractFileEngine::fileName(enum QAbstractFileEngine::FileName) const + ??0QXmlStreamAttribute@@QAE@ABVQString@@0@Z @ 574 NONAME ; QXmlStreamAttribute::QXmlStreamAttribute(class QString const &, class QString const &) + ??0QPluginLoader@@QAE@PAVQObject@@@Z @ 575 NONAME ; QPluginLoader::QPluginLoader(class QObject *) + ??0QLocale@@QAE@XZ @ 576 NONAME ; QLocale::QLocale(void) + ??_EQPauseAnimation@@UAE@I@Z @ 577 NONAME ; QPauseAnimation::~QPauseAnimation(unsigned int) + ?open@QTemporaryFile@@QAE_NXZ @ 578 NONAME ; bool QTemporaryFile::open(void) + ?ownerId@QFileInfo@@QBEIXZ @ 579 NONAME ; unsigned int QFileInfo::ownerId(void) const + ?tr@QPropertyAnimation@@SA?AVQString@@PBD0@Z @ 580 NONAME ; class QString QPropertyAnimation::tr(char const *, char const *) + ?theMainThread@QCoreApplicationPrivate@@2PAVQThread@@A @ 581 NONAME ; class QThread * QCoreApplicationPrivate::theMainThread + ??5@YAAAVQDataStream@@AAV0@AAVQSizeF@@@Z @ 582 NONAME ; class QDataStream & operator>>(class QDataStream &, class QSizeF &) + ??PQLatin1String@@QBE_NPBD@Z @ 583 NONAME ; bool QLatin1String::operator>=(char const *) const + ?compare@QString@@SAHABV1@ABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 584 NONAME ; int QString::compare(class QString const &, class QStringRef const &, enum Qt::CaseSensitivity) + ?path@QDirIterator@@QBE?AVQString@@XZ @ 585 NONAME ; class QString QDirIterator::path(void) const + ?number@QString@@SA?AV1@NDH@Z @ 586 NONAME ; class QString QString::number(double, char, int) + ?caseSensitivity@QRegExp@@QBE?AW4CaseSensitivity@Qt@@XZ @ 587 NONAME ; enum Qt::CaseSensitivity QRegExp::caseSensitivity(void) const + ?staticEmptyModel@QAbstractItemModelPrivate@@SAPAVQAbstractItemModel@@XZ @ 588 NONAME ; class QAbstractItemModel * QAbstractItemModelPrivate::staticEmptyModel(void) + ??0QSettings@@QAE@PAVQObject@@@Z @ 589 NONAME ; QSettings::QSettings(class QObject *) + ??4QByteRef@@QAEAAV0@ABV0@@Z @ 590 NONAME ; class QByteRef & QByteRef::operator=(class QByteRef const &) + ?isConstant@QMetaProperty@@QBE_NXZ @ 591 NONAME ; bool QMetaProperty::isConstant(void) const + ?path@QDir@@QBE?AVQString@@XZ @ 592 NONAME ; class QString QDir::path(void) const + ?number@QByteArray@@SA?AV1@_JH@Z @ 593 NONAME ; class QByteArray QByteArray::number(long long, int) + ?moveBottomLeft@QRect@@QAEXABVQPoint@@@Z @ 594 NONAME ; void QRect::moveBottomLeft(class QPoint const &) + ?isFlagType@QMetaProperty@@QBE_NXZ @ 595 NONAME ; bool QMetaProperty::isFlagType(void) const + ?toLower@QChar@@SAII@Z @ 596 NONAME ; unsigned int QChar::toLower(unsigned int) + ??6@YAAAVQDataStream@@AAV0@ABVQRect@@@Z @ 597 NONAME ; class QDataStream & operator<<(class QDataStream &, class QRect const &) + ??T@YA?AVQBitArray@@ABV0@0@Z @ 598 NONAME ; class QBitArray operator^(class QBitArray const &, class QBitArray const &) + ??6QDebug@@QAEAAV0@H@Z @ 599 NONAME ; class QDebug & QDebug::operator<<(int) + ??I@YA?AVQBitArray@@ABV0@0@Z @ 600 NONAME ; class QBitArray operator&(class QBitArray const &, class QBitArray const &) + ?relock@QMutexLocker@@QAEXXZ @ 601 NONAME ; void QMutexLocker::relock(void) + ?signalIndex@QObjectPrivate@@QBEHPBD@Z @ 602 NONAME ; int QObjectPrivate::signalIndex(char const *) const + ?manhattanLength@QPoint@@QBEHXZ @ 603 NONAME ; int QPoint::manhattanLength(void) const + ?metaObject@QAbstractTransition@@UBEPBUQMetaObject@@XZ @ 604 NONAME ; struct QMetaObject const * QAbstractTransition::metaObject(void) const + ?isReadable@QMetaProperty@@QBE_NXZ @ 605 NONAME ; bool QMetaProperty::isReadable(void) const + ?caching@QFileInfo@@QBE_NXZ @ 606 NONAME ; bool QFileInfo::caching(void) const + ?measurementSystem@QLocale@@QBE?AW4MeasurementSystem@1@XZ @ 607 NONAME ; enum QLocale::MeasurementSystem QLocale::measurementSystem(void) const + ?getStaticMetaObject@QAbstractTransition@@SAABUQMetaObject@@XZ @ 608 NONAME ; struct QMetaObject const & QAbstractTransition::getStaticMetaObject(void) + ?cap@QRegExp@@QAE?AVQString@@H@Z @ 609 NONAME ; class QString QRegExp::cap(int) + ??OQUuid@@QBE_NABU0@@Z @ 610 NONAME ; bool QUuid::operator>(struct QUuid const &) const + ?arg@QString@@QBE?AV1@ABV1@00000@Z @ 611 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) const + ?realloc@QByteArray@@AAEXH@Z @ 612 NONAME ; void QByteArray::realloc(int) + ?isNull@QLine@@QBE_NXZ @ 613 NONAME ; bool QLine::isNull(void) const + ?duration@QSequentialAnimationGroup@@UBEHXZ @ 614 NONAME ; int QSequentialAnimationGroup::duration(void) const + ??1QUrl@@QAE@XZ @ 615 NONAME ; QUrl::~QUrl(void) + ??9QXmlStreamEntityDeclaration@@QBE_NABV0@@Z @ 616 NONAME ; bool QXmlStreamEntityDeclaration::operator!=(class QXmlStreamEntityDeclaration const &) const + ?dumpObjectTree@QObject@@QAEXXZ @ 617 NONAME ; void QObject::dumpObjectTree(void) + ?stateChanged@QAbstractAnimation@@IAEXW4State@1@0@Z @ 618 NONAME ; void QAbstractAnimation::stateChanged(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ?status@QDataStream@@QBE?AW4Status@1@XZ @ 619 NONAME ; enum QDataStream::Status QDataStream::status(void) const + ?q_func@QAbstractEventDispatcherPrivate@@AAEPAVQAbstractEventDispatcher@@XZ @ 620 NONAME ; class QAbstractEventDispatcher * QAbstractEventDispatcherPrivate::q_func(void) + ?applicationVersion@QCoreApplication@@SA?AVQString@@XZ @ 621 NONAME ; class QString QCoreApplication::applicationVersion(void) + ??0QVariant@@QAE@ABVQDateTime@@@Z @ 622 NONAME ; QVariant::QVariant(class QDateTime const &) + ??6@YAAAVQDataStream@@AAV0@ABVQSizeF@@@Z @ 623 NONAME ; class QDataStream & operator<<(class QDataStream &, class QSizeF const &) + ?setCodec@QXmlStreamWriter@@QAEXPAVQTextCodec@@@Z @ 624 NONAME ; void QXmlStreamWriter::setCodec(class QTextCodec *) + ??0QVariant@@QAE@_K@Z @ 625 NONAME ; QVariant::QVariant(unsigned long long) + ?setCodec@QTextStream@@QAEXPBD@Z @ 626 NONAME ; void QTextStream::setCodec(char const *) + ?convertToUnicode@QFontLaoCodec@@UBE?AVQString@@PBDHPAUConverterState@QTextCodec@@@Z @ 627 NONAME ; class QString QFontLaoCodec::convertToUnicode(char const *, int, struct QTextCodec::ConverterState *) const + ?searchPaths@QDir@@SA?AVQStringList@@ABVQString@@@Z @ 628 NONAME ; class QStringList QDir::searchPaths(class QString const &) + ??1QNonContiguousByteDevice@@UAE@XZ @ 629 NONAME ; QNonContiguousByteDevice::~QNonContiguousByteDevice(void) + ?translate@QLine@@QAEXHH@Z @ 630 NONAME ; void QLine::translate(int, int) + ?setDevice@QXmlStreamWriter@@QAEXPAVQIODevice@@@Z @ 631 NONAME ; void QXmlStreamWriter::setDevice(class QIODevice *) + ?exit@QEventLoop@@QAEXH@Z @ 632 NONAME ; void QEventLoop::exit(int) + ??_EQTextCodec@@UAE@I@Z @ 633 NONAME ; QTextCodec::~QTextCodec(unsigned int) + ?setPattern@QRegExp@@QAEXABVQString@@@Z @ 634 NONAME ; void QRegExp::setPattern(class QString const &) + ?indexOf@QString@@QBEHABVQRegExp@@H@Z @ 635 NONAME ; int QString::indexOf(class QRegExp const &, int) const + ?united@QRectF@@QBE?AV1@ABV1@@Z @ 636 NONAME ; class QRectF QRectF::united(class QRectF const &) const + ?arg@QString@@QBE?AV1@ABV1@0@Z @ 637 NONAME ; class QString QString::arg(class QString const &, class QString const &) const + ??5@YAAAVQDataStream@@AAV0@AAVQLineF@@@Z @ 638 NONAME ; class QDataStream & operator>>(class QDataStream &, class QLineF &) + ?count@QDir@@QBEIXZ @ 639 NONAME ; unsigned int QDir::count(void) const + ?setCodec@QTextStream@@QAEXPAVQTextCodec@@@Z @ 640 NONAME ; void QTextStream::setCodec(class QTextCodec *) + ?setBit@QBitArray@@QAEXH@Z @ 641 NONAME ; void QBitArray::setBit(int) + ??0QAbstractListModel@@IAE@AAVQAbstractItemModelPrivate@@PAVQObject@@@Z @ 642 NONAME ; QAbstractListModel::QAbstractListModel(class QAbstractItemModelPrivate &, class QObject *) + ??6@YA?AVQDebug@@V0@W4Type@QVariant@@@Z @ 643 NONAME ; class QDebug operator<<(class QDebug, enum QVariant::Type) + ?isUser@QMetaProperty@@QBE_NPBVQObject@@@Z @ 644 NONAME ; bool QMetaProperty::isUser(class QObject const *) const + ??1QEvent@@UAE@XZ @ 645 NONAME ; QEvent::~QEvent(void) + ?finished@QAbstractAnimation@@IAEXXZ @ 646 NONAME ; void QAbstractAnimation::finished(void) + ?translate@QLine@@QAEXABVQPoint@@@Z @ 647 NONAME ; void QLine::translate(class QPoint const &) + ?hasNotifySignal@QMetaProperty@@QBE_NXZ @ 648 NONAME ; bool QMetaProperty::hasNotifySignal(void) const + ?shared_null@QHashData@@2U1@A @ 649 NONAME ; struct QHashData QHashData::shared_null + ?setQueryItems@QUrl@@QAEXABV?$QList@U?$QPair@VQString@@V1@@@@@@Z @ 650 NONAME ; void QUrl::setQueryItems(class QList > const &) + ?restorablesToPropertyList@QStateMachinePrivate@@QBE?AV?$QList@UQPropertyAssignment@@@@ABV?$QHash@U?$QPair@PAVQObject@@VQByteArray@@@@VQVariant@@@@@Z @ 651 NONAME ; class QList QStateMachinePrivate::restorablesToPropertyList(class QHash, class QVariant> const &) const + ?qt_metacall@QNonContiguousByteDevice@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 652 NONAME ; int QNonContiguousByteDevice::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setLeft@QRect@@QAEXH@Z @ 653 NONAME ; void QRect::setLeft(int) + ?scientific@@YAAAVQTextStream@@AAV1@@Z @ 654 NONAME ; class QTextStream & scientific(class QTextStream &) + ?trUtf8@QFileSystemWatcher@@SA?AVQString@@PBD0@Z @ 655 NONAME ; class QString QFileSystemWatcher::trUtf8(char const *, char const *) + ??_EQFontLaoCodec@@UAE@I@Z @ 656 NONAME ; QFontLaoCodec::~QFontLaoCodec(unsigned int) + ?toString@QLocale@@QBE?AVQString@@I@Z @ 657 NONAME ; class QString QLocale::toString(unsigned int) const + ??0QVariant@@QAE@HPBXI@Z @ 658 NONAME ; QVariant::QVariant(int, void const *, unsigned int) + ??0QTemporaryFile@@QAE@XZ @ 659 NONAME ; QTemporaryFile::QTemporaryFile(void) + ??6QDebug@@QAEAAV0@_N@Z @ 660 NONAME ; class QDebug & QDebug::operator<<(bool) + ?addMonths@QDateTime@@QBE?AV1@H@Z @ 661 NONAME ; class QDateTime QDateTime::addMonths(int) const + ?locale@QTextStream@@QBE?AVQLocale@@XZ @ 662 NONAME ; class QLocale QTextStream::locale(void) const + ?clearGuards@QObjectPrivate@@SAXPAVQObject@@@Z @ 663 NONAME ; void QObjectPrivate::clearGuards(class QObject *) + ?organizationName@QSettings@@QBE?AVQString@@XZ @ 664 NONAME ; class QString QSettings::organizationName(void) const + ?value@QMetaClassInfo@@QBEPBDXZ @ 665 NONAME ; char const * QMetaClassInfo::value(void) const + ?q_func@QStateMachinePrivate@@AAEPAVQStateMachine@@XZ @ 666 NONAME ; class QStateMachine * QStateMachinePrivate::q_func(void) + ?restorableValue@QStateMachinePrivate@@QBE?AVQVariant@@PAVQObject@@ABVQByteArray@@@Z @ 667 NONAME ; class QVariant QStateMachinePrivate::restorableValue(class QObject *, class QByteArray const &) const + ?insert@QByteArray@@QAEAAV1@HPBD@Z @ 668 NONAME ; class QByteArray & QByteArray::insert(int, char const *) + ?tr@QTimeLine@@SA?AVQString@@PBD0H@Z @ 669 NONAME ; class QString QTimeLine::tr(char const *, char const *, int) + ?append@QString@@QAEAAV1@ABVQStringRef@@@Z @ 670 NONAME ; class QString & QString::append(class QStringRef const &) + ?toString@QUrl@@QBE?AVQString@@V?$QFlags@W4FormattingOption@QUrl@@@@@Z @ 671 NONAME ; class QString QUrl::toString(class QFlags) const + ?setStatus@QTextStream@@QAEXW4Status@1@@Z @ 672 NONAME ; void QTextStream::setStatus(enum QTextStream::Status) + ?lastIndexOf@QByteArray@@QBEHABV1@H@Z @ 673 NONAME ; int QByteArray::lastIndexOf(class QByteArray const &, int) const + ??6@YAAAVQDataStream@@AAV0@ABVQLineF@@@Z @ 674 NONAME ; class QDataStream & operator<<(class QDataStream &, class QLineF const &) + ?detach_helper@QHashData@@QAEPAU1@P6AXPAUNode@1@PAX@ZH@Z @ 675 NONAME ; struct QHashData * QHashData::detach_helper(void (*)(struct QHashData::Node *, void *), int) + ??6QDataStream@@QAEAAV0@M@Z @ 676 NONAME ; class QDataStream & QDataStream::operator<<(float) + ?prepend@QString@@QAEAAV1@ABV1@@Z @ 677 NONAME ; class QString & QString::prepend(class QString const &) + ??6@YAAAVQDataStream@@AAV0@ABVQChar@@@Z @ 678 NONAME ; class QDataStream & operator<<(class QDataStream &, class QChar const &) + ?setAmplitude@QEasingCurve@@QAEXM@Z @ 679 NONAME ; void QEasingCurve::setAmplitude(float) + ?qQNaN@@YANXZ @ 680 NONAME ; double qQNaN(void) + ?indexOfAnimation@QAnimationGroup@@QBEHPAVQAbstractAnimation@@@Z @ 681 NONAME ; int QAnimationGroup::indexOfAnimation(class QAbstractAnimation *) const + ?updateCurrentValue@QPropertyAnimation@@MAEXABVQVariant@@@Z @ 682 NONAME ; void QPropertyAnimation::updateCurrentValue(class QVariant const &) + ?direction@QChar@@SA?AW4Direction@1@I@Z @ 683 NONAME ; enum QChar::Direction QChar::direction(unsigned int) + ?longLongToString@QLocalePrivate@@QBE?AVQString@@_JHHHI@Z @ 684 NONAME ; class QString QLocalePrivate::longLongToString(long long, int, int, int, unsigned int) const + ??0QByteArray@@QAE@HD@Z @ 685 NONAME ; QByteArray::QByteArray(int, char) + ??0QXmlStreamWriter@@QAE@PAVQByteArray@@@Z @ 686 NONAME ; QXmlStreamWriter::QXmlStreamWriter(class QByteArray *) + ?absoluteFilePath@QResource@@QBE?AVQString@@XZ @ 687 NONAME ; class QString QResource::absoluteFilePath(void) const + ?toUpper@QChar@@SAII@Z @ 688 NONAME ; unsigned int QChar::toUpper(unsigned int) + ?rowsAboutToBeInserted@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 689 NONAME ; void QAbstractItemModelPrivate::rowsAboutToBeInserted(class QModelIndex const &, int, int) + ?itemsMoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH0HW4Orientation@Qt@@@Z @ 690 NONAME ; void QAbstractItemModelPrivate::itemsMoved(class QModelIndex const &, int, int, class QModelIndex const &, int, enum Qt::Orientation) + ?resolve@QLibrary@@SAPAXABVQString@@0PBD@Z @ 691 NONAME ; void * QLibrary::resolve(class QString const &, class QString const &, char const *) + ??1QWaitCondition@@QAE@XZ @ 692 NONAME ; QWaitCondition::~QWaitCondition(void) + ?split@QString@@QBE?AVQStringList@@ABVQRegExp@@W4SplitBehavior@1@@Z @ 693 NONAME ; class QStringList QString::split(class QRegExp const &, enum QString::SplitBehavior) const + ?setCurrentTime@QAbstractAnimation@@QAEXH@Z @ 694 NONAME ; void QAbstractAnimation::setCurrentTime(int) + ?toPercentEncoding@QByteArray@@QBE?AV1@ABV1@0D@Z @ 695 NONAME ; class QByteArray QByteArray::toPercentEncoding(class QByteArray const &, class QByteArray const &, char) const + ?d_func@QAbstractState@@ABEPBVQAbstractStatePrivate@@XZ @ 696 NONAME ; class QAbstractStatePrivate const * QAbstractState::d_func(void) const + ??6QTextStream@@QAEAAV0@J@Z @ 697 NONAME ; class QTextStream & QTextStream::operator<<(long) + ?remove@QFile@@SA_NABVQString@@@Z @ 698 NONAME ; bool QFile::remove(class QString const &) + ?isMark@QCharRef@@QBE_NXZ @ 699 NONAME ; bool QCharRef::isMark(void) const + ?isSpace@QChar@@QBE_NXZ @ 700 NONAME ; bool QChar::isSpace(void) const + ?isRelativePath@QAbstractFileEngine@@UBE_NXZ @ 701 NONAME ; bool QAbstractFileEngine::isRelativePath(void) const + ?d_func@QSignalMapper@@AAEPAVQSignalMapperPrivate@@XZ @ 702 NONAME ; class QSignalMapperPrivate * QSignalMapper::d_func(void) + ?attribs@QCoreApplicationPrivate@@2IA @ 703 NONAME ; unsigned int QCoreApplicationPrivate::attribs + ?initialState@QState@@QBEPAVQAbstractState@@XZ @ 704 NONAME ; class QAbstractState * QState::initialState(void) const + ?realloc@QString@@AAEXXZ @ 705 NONAME ; void QString::realloc(void) + ?hasFormat@QMimeData@@UBE_NABVQString@@@Z @ 706 NONAME ; bool QMimeData::hasFormat(class QString const &) const + ?tr@QPauseAnimation@@SA?AVQString@@PBD0H@Z @ 707 NONAME ; class QString QPauseAnimation::tr(char const *, char const *, int) + ?connect@QObject@@QBE_NPBV1@PBD1W4ConnectionType@Qt@@@Z @ 708 NONAME ; bool QObject::connect(class QObject const *, char const *, char const *, enum Qt::ConnectionType) const + ?errorState@QState@@QBEPAVQAbstractState@@XZ @ 709 NONAME ; class QAbstractState * QState::errorState(void) const + ?at@QStringRef@@QBE?BVQChar@@H@Z @ 710 NONAME ; class QChar const QStringRef::at(int) const + ?yieldCurrentThread@QThread@@SAXXZ @ 711 NONAME ; void QThread::yieldCurrentThread(void) + ?getChar@QIODevice@@QAE_NPAD@Z @ 712 NONAME ; bool QIODevice::getChar(char *) + ?qt_metacast@QPluginLoader@@UAEPAXPBD@Z @ 713 NONAME ; void * QPluginLoader::qt_metacast(char const *) + ?trUtf8@QTextCodecPlugin@@SA?AVQString@@PBD0H@Z @ 714 NONAME ; class QString QTextCodecPlugin::trUtf8(char const *, char const *, int) + ?qRemovePostRoutine@@YAXP6AXXZ@Z @ 715 NONAME ; void qRemovePostRoutine(void (*)(void)) + ?map@QSignalMapper@@QAEXPAVQObject@@@Z @ 716 NONAME ; void QSignalMapper::map(class QObject *) + ?fromAscii_helper@QString@@CAPAUData@1@PBDH@Z @ 717 NONAME ; struct QString::Data * QString::fromAscii_helper(char const *, int) + ?trUtf8@QLibrary@@SA?AVQString@@PBD0@Z @ 718 NONAME ; class QString QLibrary::trUtf8(char const *, char const *) + ??0QString@@QAE@XZ @ 719 NONAME ; QString::QString(void) + ?localeAwareCompare@QString@@QBEHABV1@@Z @ 720 NONAME ; int QString::localeAwareCompare(class QString const &) const + ?d_func@QResource@@AAEPAVQResourcePrivate@@XZ @ 721 NONAME ; class QResourcePrivate * QResource::d_func(void) + ?qRegisterResourceData@@YA_NHPBE00@Z @ 722 NONAME ; bool qRegisterResourceData(int, unsigned char const *, unsigned char const *, unsigned char const *) + ?fileEngine@QFile@@UBEPAVQAbstractFileEngine@@XZ @ 723 NONAME ; class QAbstractFileEngine * QFile::fileEngine(void) const + ??1QAbstractState@@UAE@XZ @ 724 NONAME ; QAbstractState::~QAbstractState(void) + ?resume@QAbstractAnimation@@QAEXXZ @ 725 NONAME ; void QAbstractAnimation::resume(void) + ?addTransition@QState@@QAEPAVQAbstractTransition@@PAV2@@Z @ 726 NONAME ; class QAbstractTransition * QState::addTransition(class QAbstractTransition *) + ?rowsRemoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 727 NONAME ; void QAbstractItemModel::rowsRemoved(class QModelIndex const &, int, int) + ?intersects@QRect@@QBE_NABV1@@Z @ 728 NONAME ; bool QRect::intersects(class QRect const &) const + ?size@QRect@@QBE?AVQSize@@XZ @ 729 NONAME ; class QSize QRect::size(void) const + ?isReadable@QIODevice@@QBE_NXZ @ 730 NONAME ; bool QIODevice::isReadable(void) const + ?toTime@QVariant@@QBE?AVQTime@@XZ @ 731 NONAME ; class QTime QVariant::toTime(void) const + ?toUTC@QDateTime@@QBE?AV1@XZ @ 732 NONAME ; class QDateTime QDateTime::toUTC(void) const + ?getRect@QRectF@@QBEXPAM000@Z @ 733 NONAME ; void QRectF::getRect(float *, float *, float *, float *) const + ?read@QFSFileEngine@@UAE_JPAD_J@Z @ 734 NONAME ; long long QFSFileEngine::read(char *, long long) + ?entryInfoList@QDir@@QBE?AV?$QList@VQFileInfo@@@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z @ 735 NONAME ; class QList QDir::entryInfoList(class QFlags, class QFlags) const + ?daysTo@QDateTime@@QBEHABV1@@Z @ 736 NONAME ; int QDateTime::daysTo(class QDateTime const &) const + ??BQUuid@@QBE?AVQString@@XZ @ 737 NONAME ; QUuid::operator class QString(void) const + ?mkdir@QAbstractFileEngine@@UBE_NABVQString@@_N@Z @ 738 NONAME ; bool QAbstractFileEngine::mkdir(class QString const &, bool) const + ?attributes@QXmlStreamReader@@QBE?AVQXmlStreamAttributes@@XZ @ 739 NONAME ; class QXmlStreamAttributes QXmlStreamReader::attributes(void) const + ?tr@QVariantAnimation@@SA?AVQString@@PBD0H@Z @ 740 NONAME ; class QString QVariantAnimation::tr(char const *, char const *, int) + ?isRightToLeft@QString@@QBE_NXZ @ 741 NONAME ; bool QString::isRightToLeft(void) const + ??4QBitRef@@QAEAAV0@_N@Z @ 742 NONAME ; class QBitRef & QBitRef::operator=(bool) + ?sectionType@QDateTimeParser@@QBE?AW4Section@1@H@Z @ 743 NONAME ; enum QDateTimeParser::Section QDateTimeParser::sectionType(int) const + ??1QPersistentModelIndex@@QAE@XZ @ 744 NONAME ; QPersistentModelIndex::~QPersistentModelIndex(void) + ?qt_metacast@QSequentialAnimationGroup@@UAEPAXPBD@Z @ 745 NONAME ; void * QSequentialAnimationGroup::qt_metacast(char const *) + ?isUpper@QCharRef@@QBE_NXZ @ 746 NONAME ; bool QCharRef::isUpper(void) const + ?notationName@QXmlStreamEntityDeclaration@@QBE?AVQStringRef@@XZ @ 747 NONAME ; class QStringRef QXmlStreamEntityDeclaration::notationName(void) const + ?updateDirection@QParallelAnimationGroup@@MAEXW4Direction@QAbstractAnimation@@@Z @ 748 NONAME ; void QParallelAnimationGroup::updateDirection(enum QAbstractAnimation::Direction) + ?setFilter@QDir@@QAEXV?$QFlags@W4Filter@QDir@@@@@Z @ 749 NONAME ; void QDir::setFilter(class QFlags) + ??4QByteRef@@QAEAAV0@D@Z @ 750 NONAME ; class QByteRef & QByteRef::operator=(char) + ?tr@QAbstractItemModel@@SA?AVQString@@PBD0@Z @ 751 NONAME ; class QString QAbstractItemModel::tr(char const *, char const *) + ?d_func@QAnimationGroup@@ABEPBVQAnimationGroupPrivate@@XZ @ 752 NONAME ; class QAnimationGroupPrivate const * QAnimationGroup::d_func(void) const + ?isMark@QChar@@QBE_NXZ @ 753 NONAME ; bool QChar::isMark(void) const + ?arg@QString@@QBE?AV1@ABV1@000@Z @ 754 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &) const + ??6QDataStream@@QAEAAV0@_N@Z @ 755 NONAME ; class QDataStream & QDataStream::operator<<(bool) + ?tr@QParallelAnimationGroup@@SA?AVQString@@PBD0@Z @ 756 NONAME ; class QString QParallelAnimationGroup::tr(char const *, char const *) + ?currentTime@QTimeLine@@QBEHXZ @ 757 NONAME ; int QTimeLine::currentTime(void) const + ?prepend@QString@@QAEAAV1@ABVQLatin1String@@@Z @ 758 NONAME ; class QString & QString::prepend(class QLatin1String const &) + ?processEvents@QCoreApplication@@SAXV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@H@Z @ 759 NONAME ; void QCoreApplication::processEvents(class QFlags, int) + ?valueToKeys@QMetaEnum@@QBE?AVQByteArray@@H@Z @ 760 NONAME ; class QByteArray QMetaEnum::valueToKeys(int) const + ?trUtf8@QPropertyAnimation@@SA?AVQString@@PBD0H@Z @ 761 NONAME ; class QString QPropertyAnimation::trUtf8(char const *, char const *, int) + ?clear@QXmlStreamReader@@QAEXXZ @ 762 NONAME ; void QXmlStreamReader::clear(void) + ?isSignalConnected@QObjectPrivate@@QBE_NH@Z @ 763 NONAME ; bool QObjectPrivate::isSignalConnected(int) const + ?fromJulianDay@QDate@@SA?AV1@H@Z @ 764 NONAME ; class QDate QDate::fromJulianDay(int) + ?isValid@QMetaEnum@@QBE_NXZ @ 765 NONAME ; bool QMetaEnum::isValid(void) const + ?sendPostedEvents@QCoreApplication@@SAXXZ @ 766 NONAME ; void QCoreApplication::sendPostedEvents(void) + ??8QUrl@@QBE_NABV0@@Z @ 767 NONAME ; bool QUrl::operator==(class QUrl const &) const + ?d_func@QDir@@AAEPAVQDirPrivate@@XZ @ 768 NONAME ; class QDirPrivate * QDir::d_func(void) + ?qCritical@@YA?AVQDebug@@XZ @ 769 NONAME ; class QDebug qCritical(void) + ??6@YA?AVQDebug@@V0@ABVQMargins@@@Z @ 770 NONAME ; class QDebug operator<<(class QDebug, class QMargins const &) + ?y@QRect@@QBEHXZ @ 771 NONAME ; int QRect::y(void) const + ?tr@QObjectCleanupHandler@@SA?AVQString@@PBD0@Z @ 772 NONAME ; class QString QObjectCleanupHandler::tr(char const *, char const *) + ?indexOfSlot@QMetaObject@@QBEHPBD@Z @ 773 NONAME ; int QMetaObject::indexOfSlot(char const *) const + ?isSequential@QIODevicePrivate@@QBE_NXZ @ 774 NONAME ; bool QIODevicePrivate::isSequential(void) const + ?fieldAlignment@QTextStream@@QBE?AW4FieldAlignment@1@XZ @ 775 NONAME ; enum QTextStream::FieldAlignment QTextStream::fieldAlignment(void) const + ?squeeze@QString@@QAEXXZ @ 776 NONAME ; void QString::squeeze(void) + ?caseSensitivity@QStringMatcher@@QBE?AW4CaseSensitivity@Qt@@XZ @ 777 NONAME ; enum Qt::CaseSensitivity QStringMatcher::caseSensitivity(void) const + ?bottomRight@QRect@@QBE?AVQPoint@@XZ @ 778 NONAME ; class QPoint QRect::bottomRight(void) const + ?isTitleCase@QCharRef@@QBE_NXZ @ 779 NONAME ; bool QCharRef::isTitleCase(void) const + ?receivers@QObject@@IBEHPBD@Z @ 780 NONAME ; int QObject::receivers(char const *) const + ?trUtf8@QFile@@SA?AVQString@@PBD0@Z @ 781 NONAME ; class QString QFile::trUtf8(char const *, char const *) + ?trUtf8@QEventTransition@@SA?AVQString@@PBD0@Z @ 782 NONAME ; class QString QEventTransition::trUtf8(char const *, char const *) + ?setMapping@QSignalMapper@@QAEXPAVQObject@@PAVQWidget@@@Z @ 783 NONAME ; void QSignalMapper::setMapping(class QObject *, class QWidget *) + ?qt_metacall@QStateMachine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 784 NONAME ; int QStateMachine::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isValid@QMetaProperty@@QBE_NXZ @ 785 NONAME ; bool QMetaProperty::isValid(void) const + ?name@QGenericArgument@@QBEPBDXZ @ 786 NONAME ; char const * QGenericArgument::name(void) const + ??0QVariant@@QAE@ABV?$QHash@VQString@@VQVariant@@@@@Z @ 787 NONAME ; QVariant::QVariant(class QHash const &) + ?isSequential@QProcess@@UBE_NXZ @ 788 NONAME ; bool QProcess::isSequential(void) const + ?registerCallback@QInternal@@SA_NW4Callback@1@P6A_NPAPAX@Z@Z @ 789 NONAME ; bool QInternal::registerCallback(enum QInternal::Callback, bool (*)(void * *)) + ?toStringList@QProcessEnvironment@@QBE?AVQStringList@@XZ @ 790 NONAME ; class QStringList QProcessEnvironment::toStringList(void) const + ?host@QUrl@@QBE?AVQString@@XZ @ 791 NONAME ; class QString QUrl::host(void) const + ?writeEntityReference@QXmlStreamWriter@@QAEXABVQString@@@Z @ 792 NONAME ; void QXmlStreamWriter::writeEntityReference(class QString const &) + ?setBottomLeft@QRect@@QAEXABVQPoint@@@Z @ 793 NONAME ; void QRect::setBottomLeft(class QPoint const &) + ??_4QRectF@@QAEAAV0@ABV0@@Z @ 794 NONAME ; class QRectF & QRectF::operator&=(class QRectF const &) + ?lastIndexIn@QRegExp@@QBEHABVQString@@HW4CaretMode@1@@Z @ 795 NONAME ; int QRegExp::lastIndexIn(class QString const &, int, enum QRegExp::CaretMode) const + ??8@YA_NABVQRectF@@0@Z @ 796 NONAME ; bool operator==(class QRectF const &, class QRectF const &) + ?trUtf8@QThreadPool@@SA?AVQString@@PBD0H@Z @ 797 NONAME ; class QString QThreadPool::trUtf8(char const *, char const *, int) + ?device@QDataStream@@QBEPAVQIODevice@@XZ @ 798 NONAME ; class QIODevice * QDataStream::device(void) const + ?blockSignals@QObject@@QAE_N_N@Z @ 799 NONAME ; bool QObject::blockSignals(bool) + ?tr@QAbstractTableModel@@SA?AVQString@@PBD0H@Z @ 800 NONAME ; class QString QAbstractTableModel::tr(char const *, char const *, int) + ?qt_metacall@QTranslator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 801 NONAME ; int QTranslator::qt_metacall(enum QMetaObject::Call, int, void * *) + ?exists@QDir@@QBE_NXZ @ 802 NONAME ; bool QDir::exists(void) const + ?compressEvent@QCoreApplication@@MAE_NPAVQEvent@@PAVQObject@@PAVQPostEventList@@@Z @ 803 NONAME ; bool QCoreApplication::compressEvent(class QEvent *, class QObject *, class QPostEventList *) + ?isValid@QPersistentModelIndex@@QBE_NXZ @ 804 NONAME ; bool QPersistentModelIndex::isValid(void) const + ?dateTimeToString@QLocalePrivate@@QBE?AVQString@@ABV2@PBVQDate@@PBVQTime@@PBVQLocale@@@Z @ 805 NONAME ; class QString QLocalePrivate::dateTimeToString(class QString const &, class QDate const *, class QTime const *, class QLocale const *) const + ?text@QMimeData@@QBE?AVQString@@XZ @ 806 NONAME ; class QString QMimeData::text(void) const + ?createIndex@QAbstractItemModel@@IBE?AVQModelIndex@@HHH@Z @ 807 NONAME ; class QModelIndex QAbstractItemModel::createIndex(int, int, int) const + ?unregisterSignalTransition@QStateMachinePrivate@@QAEXPAVQSignalTransition@@@Z @ 808 NONAME ; void QStateMachinePrivate::unregisterSignalTransition(class QSignalTransition *) + ?width@QSize@@QBEHXZ @ 809 NONAME ; int QSize::width(void) const + ??0QChar@@QAE@EE@Z @ 810 NONAME ; QChar::QChar(unsigned char, unsigned char) + ?qt_metacall@QObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 811 NONAME ; int QObject::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qMemSet@@YAPAXPAXHI@Z @ 812 NONAME ; void * qMemSet(void *, int, unsigned int) + ?hasQuery@QUrl@@QBE_NXZ @ 813 NONAME ; bool QUrl::hasQuery(void) const + ?format@QSettings@@QBE?AW4Format@1@XZ @ 814 NONAME ; enum QSettings::Format QSettings::format(void) const + ?isAbsolutePath@QDir@@SA_NABVQString@@@Z @ 815 NONAME ; bool QDir::isAbsolutePath(class QString const &) + ?mkdir@QFSFileEngine@@UBE_NABVQString@@_N@Z @ 816 NONAME ; bool QFSFileEngine::mkdir(class QString const &, bool) const + ?init@QAbstractEventDispatcherPrivate@@QAEXXZ @ 817 NONAME ; void QAbstractEventDispatcherPrivate::init(void) + ??8QFileInfo@@QAE_NABV0@@Z @ 818 NONAME ; bool QFileInfo::operator==(class QFileInfo const &) + ?deleteChildren@QObjectPrivate@@QAEXXZ @ 819 NONAME ; void QObjectPrivate::deleteChildren(void) + ?d_func@QAbstractTransition@@AAEPAVQAbstractTransitionPrivate@@XZ @ 820 NONAME ; class QAbstractTransitionPrivate * QAbstractTransition::d_func(void) + ?setDirection@QTimeLine@@QAEXW4Direction@1@@Z @ 821 NONAME ; void QTimeLine::setDirection(enum QTimeLine::Direction) + ?string@QXmlStreamStringRef@@QBEPBVQString@@XZ @ 822 NONAME ; class QString const * QXmlStreamStringRef::string(void) const + ?name@QLocale@@QBE?AVQString@@XZ @ 823 NONAME ; class QString QLocale::name(void) const + ??1QBuffer@@UAE@XZ @ 824 NONAME ; QBuffer::~QBuffer(void) + ??1QMutex@@QAE@XZ @ 825 NONAME ; QMutex::~QMutex(void) + ?trUtf8@QAnimationGroup@@SA?AVQString@@PBD0@Z @ 826 NONAME ; class QString QAnimationGroup::trUtf8(char const *, char const *) + ??6@YA?AVQDebug@@V0@ABVQPoint@@@Z @ 827 NONAME ; class QDebug operator<<(class QDebug, class QPoint const &) + ?isRoot@QDir@@QBE_NXZ @ 828 NONAME ; bool QDir::isRoot(void) const + ??9QByteRef@@QBE_ND@Z @ 829 NONAME ; bool QByteRef::operator!=(char) const + ?setTopLeft@QRect@@QAEXABVQPoint@@@Z @ 830 NONAME ; void QRect::setTopLeft(class QPoint const &) + ?currentFrame@QTimeLine@@QBEHXZ @ 831 NONAME ; int QTimeLine::currentFrame(void) const + ?licensedProducts@QLibraryInfo@@SA?AVQString@@XZ @ 832 NONAME ; class QString QLibraryInfo::licensedProducts(void) + ?trUtf8@QCoreApplication@@SA?AVQString@@PBD0H@Z @ 833 NONAME ; class QString QCoreApplication::trUtf8(char const *, char const *, int) + ?setUserIniPath@QSettings@@SAXABVQString@@@Z @ 834 NONAME ; void QSettings::setUserIniPath(class QString const &) + ?sectionPos@QDateTimeParser@@QBEHABUSectionNode@1@@Z @ 835 NONAME ; int QDateTimeParser::sectionPos(struct QDateTimeParser::SectionNode const &) const + ?updateCurrentTime@QPauseAnimation@@MAEXH@Z @ 836 NONAME ; void QPauseAnimation::updateCurrentTime(int) + ??1QHBufC@@QAE@XZ @ 837 NONAME ; QHBufC::~QHBufC(void) + ??0QRectF@@QAE@ABV0@@Z @ 838 NONAME ; QRectF::QRectF(class QRectF const &) + ?sectionName@QDateTimeParser@@QBE?AVQString@@H@Z @ 839 NONAME ; class QString QDateTimeParser::sectionName(int) const + ??0QPersistentModelIndex@@QAE@ABV0@@Z @ 840 NONAME ; QPersistentModelIndex::QPersistentModelIndex(class QPersistentModelIndex const &) + ?errorString@QSharedMemory@@QBE?AVQString@@XZ @ 841 NONAME ; class QString QSharedMemory::errorString(void) const + ?atEnd@QAbstractFileEngine@@QBE_NXZ @ 842 NONAME ; bool QAbstractFileEngine::atEnd(void) const + ?type@QSocketNotifier@@QBE?AW4Type@1@XZ @ 843 NONAME ; enum QSocketNotifier::Type QSocketNotifier::type(void) const + ?frameForTime@QTimeLine@@QBEHH@Z @ 844 NONAME ; int QTimeLine::frameForTime(int) const + ??5QTextStream@@QAEAAV0@PAD@Z @ 845 NONAME ; class QTextStream & QTextStream::operator>>(char *) + ??0QFile@@IAE@AAVQFilePrivate@@PAVQObject@@@Z @ 846 NONAME ; QFile::QFile(class QFilePrivate &, class QObject *) + ?length@QLineF@@QBEMXZ @ 847 NONAME ; float QLineF::length(void) const + ?getStaticMetaObject@QAbstractEventDispatcher@@SAABUQMetaObject@@XZ @ 848 NONAME ; struct QMetaObject const & QAbstractEventDispatcher::getStaticMetaObject(void) + ??6QDataStream@@QAEAAV0@F@Z @ 849 NONAME ; class QDataStream & QDataStream::operator<<(short) + ?trUtf8@QParallelAnimationGroup@@SA?AVQString@@PBD0H@Z @ 850 NONAME ; class QString QParallelAnimationGroup::trUtf8(char const *, char const *, int) + ?pointAt@QLineF@@QBE?AVQPointF@@M@Z @ 851 NONAME ; class QPointF QLineF::pointAt(float) const + ?trUtf8@QBuffer@@SA?AVQString@@PBD0@Z @ 852 NONAME ; class QString QBuffer::trUtf8(char const *, char const *) + ??0QMetaCallEvent@@QAE@HPBVQObject@@HHPAHPAPAXPAVQSemaphore@@@Z @ 853 NONAME ; QMetaCallEvent::QMetaCallEvent(int, class QObject const *, int, int, int *, void * *, class QSemaphore *) + ?tr@QThreadPool@@SA?AVQString@@PBD0@Z @ 854 NONAME ; class QString QThreadPool::tr(char const *, char const *) + ?secsTo@QDateTime@@QBEHABV1@@Z @ 855 NONAME ; int QDateTime::secsTo(class QDateTime const &) const + ?isEditable@QMetaProperty@@QBE_NPBVQObject@@@Z @ 856 NONAME ; bool QMetaProperty::isEditable(class QObject const *) const + ?setProcessState@QProcess@@IAEXW4ProcessState@1@@Z @ 857 NONAME ; void QProcess::setProcessState(enum QProcess::ProcessState) + ?adjust@QRectF@@QAEXMMMM@Z @ 858 NONAME ; void QRectF::adjust(float, float, float, float) + ??1QMutexPool@@QAE@XZ @ 859 NONAME ; QMutexPool::~QMutexPool(void) + ?setParent_helper@QObjectPrivate@@QAEXPAVQObject@@@Z @ 860 NONAME ; void QObjectPrivate::setParent_helper(class QObject *) + ?start@QTimeLine@@QAEXXZ @ 861 NONAME ; void QTimeLine::start(void) + ?wait@QWaitCondition@@QAE_NPAVQReadWriteLock@@K@Z @ 862 NONAME ; bool QWaitCondition::wait(class QReadWriteLock *, unsigned long) + ?number@QString@@SA?AV1@_JH@Z @ 863 NONAME ; class QString QString::number(long long, int) + ?getStaticMetaObject@QSignalMapper@@SAABUQMetaObject@@XZ @ 864 NONAME ; struct QMetaObject const & QSignalMapper::getStaticMetaObject(void) + ?dumpObjectInfo@QObject@@QAEXXZ @ 865 NONAME ; void QObject::dumpObjectInfo(void) + ?tr@QSharedMemory@@SA?AVQString@@PBD0H@Z @ 866 NONAME ; class QString QSharedMemory::tr(char const *, char const *, int) + ?setSupportedDragActions@QAbstractItemModel@@QAEXV?$QFlags@W4DropAction@Qt@@@@@Z @ 867 NONAME ; void QAbstractItemModel::setSupportedDragActions(class QFlags) + ?userType@QMetaProperty@@QBEHXZ @ 868 NONAME ; int QMetaProperty::userType(void) const + ?setEncodedQuery@QUrl@@QAEXABVQByteArray@@@Z @ 869 NONAME ; void QUrl::setEncodedQuery(class QByteArray const &) + ?sectionText@QDateTimeParser@@QBE?AVQString@@H@Z @ 870 NONAME ; class QString QDateTimeParser::sectionText(int) const + ?setBit@QBitArray@@QAEXH_N@Z @ 871 NONAME ; void QBitArray::setBit(int, bool) + ?arg@QString@@QBE?AV1@NHDHABVQChar@@@Z @ 872 NONAME ; class QString QString::arg(double, int, char, int, class QChar const &) const + ?fileName@QSettings@@QBE?AVQString@@XZ @ 873 NONAME ; class QString QSettings::fileName(void) const + ?match@QAbstractItemModel@@UBE?AV?$QList@VQModelIndex@@@@ABVQModelIndex@@HABVQVariant@@HV?$QFlags@W4MatchFlag@Qt@@@@@Z @ 874 NONAME ; class QList QAbstractItemModel::match(class QModelIndex const &, int, class QVariant const &, int, class QFlags) const + ?toLine@QVariant@@QBE?AVQLine@@XZ @ 875 NONAME ; class QLine QVariant::toLine(void) const + ?writeAttributes@QXmlStreamWriter@@QAEXABVQXmlStreamAttributes@@@Z @ 876 NONAME ; void QXmlStreamWriter::writeAttributes(class QXmlStreamAttributes const &) + ?at@QByteArray@@QBEDH@Z @ 877 NONAME ; char QByteArray::at(int) const + ??4QByteArray@@QAEAAV0@PBD@Z @ 878 NONAME ; class QByteArray & QByteArray::operator=(char const *) + ?map@QSignalMapper@@QAEXXZ @ 879 NONAME ; void QSignalMapper::map(void) + ?spontaneous@QEvent@@QBE_NXZ @ 880 NONAME ; bool QEvent::spontaneous(void) const + ?remove@QString@@QAEAAV1@VQChar@@W4CaseSensitivity@Qt@@@Z @ 881 NONAME ; class QString & QString::remove(class QChar, enum Qt::CaseSensitivity) + ?setCaseSensitivity@QRegExp@@QAEXW4CaseSensitivity@Qt@@@Z @ 882 NONAME ; void QRegExp::setCaseSensitivity(enum Qt::CaseSensitivity) + ?remove@QFSFileEngine@@UAE_NXZ @ 883 NONAME ; bool QFSFileEngine::remove(void) + ?itemsAboutToBeMoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH0HW4Orientation@Qt@@@Z @ 884 NONAME ; void QAbstractItemModelPrivate::itemsAboutToBeMoved(class QModelIndex const &, int, int, class QModelIndex const &, int, enum Qt::Orientation) + ?invokeMethod@QMetaObject@@SA_NPAVQObject@@PBDW4ConnectionType@Qt@@VQGenericArgument@@333333333@Z @ 885 NONAME ; bool QMetaObject::invokeMethod(class QObject *, char const *, enum Qt::ConnectionType, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) + ?readLine@QTextStream@@QAE?AVQString@@_J@Z @ 886 NONAME ; class QString QTextStream::readLine(long long) + ?defaultFormat@QSettings@@SA?AW4Format@1@XZ @ 887 NONAME ; enum QSettings::Format QSettings::defaultFormat(void) + ?arg@QString@@QBE?AV1@IHHABVQChar@@@Z @ 888 NONAME ; class QString QString::arg(unsigned int, int, int, class QChar const &) const + ?invokeMethod@QMetaObject@@SA_NPAVQObject@@PBDVQGenericArgument@@222222222@Z @ 889 NONAME ; bool QMetaObject::invokeMethod(class QObject *, char const *, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) + ?arg@QString@@QBE?AV1@_JHHABVQChar@@@Z @ 890 NONAME ; class QString QString::arg(long long, int, int, class QChar const &) const + ??0QTextStream@@QAE@PAVQByteArray@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 891 NONAME ; QTextStream::QTextStream(class QByteArray *, class QFlags) + ?qt_metacast@QTimer@@UAEPAXPBD@Z @ 892 NONAME ; void * QTimer::qt_metacast(char const *) + ?fromEncoded@QUrl@@SA?AV1@ABVQByteArray@@@Z @ 893 NONAME ; class QUrl QUrl::fromEncoded(class QByteArray const &) + ??_EQBuffer@@UAE@I@Z @ 894 NONAME ; QBuffer::~QBuffer(unsigned int) + ?path@QUrl@@QBE?AVQString@@XZ @ 895 NONAME ; class QString QUrl::path(void) const + ?zeroDigit@QLocale@@QBE?AVQChar@@XZ @ 896 NONAME ; class QChar QLocale::zeroDigit(void) const + ??0QReadWriteLock@@QAE@XZ @ 897 NONAME ; QReadWriteLock::QReadWriteLock(void) + ?errorString@QStateMachine@@QBE?AVQString@@XZ @ 898 NONAME ; class QString QStateMachine::errorString(void) const + ?constEnd@QString@@QBEPBVQChar@@XZ @ 899 NONAME ; class QChar const * QString::constEnd(void) const + ??9QPersistentModelIndex@@QBE_NABVQModelIndex@@@Z @ 900 NONAME ; bool QPersistentModelIndex::operator!=(class QModelIndex const &) const + ?isLibrary@QLibrary@@SA_NABVQString@@@Z @ 901 NONAME ; bool QLibrary::isLibrary(class QString const &) + ?port@QUrl@@QBEHXZ @ 902 NONAME ; int QUrl::port(void) const + ?toLatin1@QCharRef@@QBEDXZ @ 903 NONAME ; char QCharRef::toLatin1(void) const + ?shared_null@QString@@0UData@1@A @ 904 NONAME ; struct QString::Data QString::shared_null + ?isEmpty@QBitArray@@QBE_NXZ @ 905 NONAME ; bool QBitArray::isEmpty(void) const + ?isEmpty@QListData@@QBE_NXZ @ 906 NONAME ; bool QListData::isEmpty(void) const + ?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 907 NONAME ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int) + ?nameFilters@QAbstractFileEngineIterator@@QBE?AVQStringList@@XZ @ 908 NONAME ; class QStringList QAbstractFileEngineIterator::nameFilters(void) const + ?hasMirrored@QCharRef@@QBE_NXZ @ 909 NONAME ; bool QCharRef::hasMirrored(void) const + ?animationCount@QAnimationGroup@@QBEHXZ @ 910 NONAME ; int QAnimationGroup::animationCount(void) const + ?secsTo@QTime@@QBEHABV1@@Z @ 911 NONAME ; int QTime::secsTo(class QTime const &) const + ?trUtf8@QProcess@@SA?AVQString@@PBD0H@Z @ 912 NONAME ; class QString QProcess::trUtf8(char const *, char const *, int) + ?peek@QIODevice@@QAE_JPAD_J@Z @ 913 NONAME ; long long QIODevice::peek(char *, long long) + ??0QUuid@@QAE@PBD@Z @ 914 NONAME ; QUuid::QUuid(char const *) + ??0QCharRef@@AAE@AAVQString@@H@Z @ 915 NONAME ; QCharRef::QCharRef(class QString &, int) + ?eventTest@QSignalTransition@@MAE_NPAVQEvent@@@Z @ 916 NONAME ; bool QSignalTransition::eventTest(class QEvent *) + ?internalSafetyCheckAdd2@QtSharedPointer@@YAXPBXPDX@Z @ 917 NONAME ; void QtSharedPointer::internalSafetyCheckAdd2(void const *, void const volatile *) + ??0QAbstractAnimation@@QAE@PAVQObject@@@Z @ 918 NONAME ; QAbstractAnimation::QAbstractAnimation(class QObject *) + ?setNum@QString@@QAEAAV1@GH@Z @ 919 NONAME ; class QString & QString::setNum(unsigned short, int) + ?namespaceUri@QXmlStreamAttribute@@QBE?AVQStringRef@@XZ @ 920 NONAME ; class QStringRef QXmlStreamAttribute::namespaceUri(void) const + ??_EQCoreApplication@@UAE@I@Z @ 921 NONAME ; QCoreApplication::~QCoreApplication(unsigned int) + ?bin@@YAAAVQTextStream@@AAV1@@Z @ 922 NONAME ; class QTextStream & bin(class QTextStream &) + ?rootState@QStateMachinePrivate@@QBEPAVQState@@XZ @ 923 NONAME ; class QState * QStateMachinePrivate::rootState(void) const + ?toULongLong@QByteArray@@QBE_KPA_NH@Z @ 924 NONAME ; unsigned long long QByteArray::toULongLong(bool *, int) const + ?addSecs@QTime@@QBE?AV1@H@Z @ 925 NONAME ; class QTime QTime::addSecs(int) const + ?bottomLeft@QRectF@@QBE?AVQPointF@@XZ @ 926 NONAME ; class QPointF QRectF::bottomLeft(void) const + ?qt_metacall@QAbstractTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 927 NONAME ; int QAbstractTransition::qt_metacall(enum QMetaObject::Call, int, void * *) + ??9QTime@@QBE_NABV0@@Z @ 928 NONAME ; bool QTime::operator!=(class QTime const &) const + ?iterationCount@QEventDispatcherSymbian@@QBEHXZ @ 929 NONAME ; int QEventDispatcherSymbian::iterationCount(void) const + ??DQHBufC@@QBEABVHBufC16@@XZ @ 930 NONAME ; class HBufC16 const & QHBufC::operator*(void) const + ?setEncodedPath@QUrl@@QAEXABVQByteArray@@@Z @ 931 NONAME ; void QUrl::setEncodedPath(class QByteArray const &) + ?d_func@QObject@@AAEPAVQObjectPrivate@@XZ @ 932 NONAME ; class QObjectPrivate * QObject::d_func(void) + ?qt_metacast@QAbstractEventDispatcher@@UAEPAXPBD@Z @ 933 NONAME ; void * QAbstractEventDispatcher::qt_metacast(char const *) + ?firstNode@QHashData@@QAEPAUNode@1@XZ @ 934 NONAME ; struct QHashData::Node * QHashData::firstNode(void) + ?argc@QCoreApplication@@SAHXZ @ 935 NONAME ; int QCoreApplication::argc(void) + ?relativeFilePath@QDir@@QBE?AVQString@@ABV2@@Z @ 936 NONAME ; class QString QDir::relativeFilePath(class QString const &) const + ?findDay@QDateTimeParser@@QBEHABVQString@@HHPAV2@PAH@Z @ 937 NONAME ; int QDateTimeParser::findDay(class QString const &, int, int, class QString *, int *) const + ??0QVariant@@QAE@ABV?$QMap@VQString@@VQVariant@@@@@Z @ 938 NONAME ; QVariant::QVariant(class QMap const &) + ??0QEventLoop@@QAE@PAVQObject@@@Z @ 939 NONAME ; QEventLoop::QEventLoop(class QObject *) + ?toBitArray@QVariant@@QBE?AVQBitArray@@XZ @ 940 NONAME ; class QBitArray QVariant::toBitArray(void) const + ?qHash@@YAIABVQStringRef@@@Z @ 941 NONAME ; unsigned int qHash(class QStringRef const &) + ?contains@QRectF@@QBE_NMM@Z @ 942 NONAME ; bool QRectF::contains(float, float) const + ??0QTimer@@QAE@PAVQObject@@@Z @ 943 NONAME ; QTimer::QTimer(class QObject *) + ?isEmpty@QSize@@QBE_NXZ @ 944 NONAME ; bool QSize::isEmpty(void) const + ??0QState@@QAE@W4ChildMode@0@PAV0@@Z @ 945 NONAME ; QState::QState(enum QState::ChildMode, class QState *) + ?fromPunycode@QUrl@@SA?AVQString@@ABVQByteArray@@@Z @ 946 NONAME ; class QString QUrl::fromPunycode(class QByteArray const &) + ?trUtf8@QEventLoop@@SA?AVQString@@PBD0H@Z @ 947 NONAME ; class QString QEventLoop::trUtf8(char const *, char const *, int) + ?testAttribute@QCoreApplication@@SA_NW4ApplicationAttribute@Qt@@@Z @ 948 NONAME ; bool QCoreApplication::testAttribute(enum Qt::ApplicationAttribute) + ?compare@QString@@QBEHABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 949 NONAME ; int QString::compare(class QStringRef const &, enum Qt::CaseSensitivity) const + ?setEventSource@QEventTransition@@QAEXPAVQObject@@@Z @ 950 NONAME ; void QEventTransition::setEventSource(class QObject *) + ?toPreviousBoundary@QTextBoundaryFinder@@QAEHXZ @ 951 NONAME ; int QTextBoundaryFinder::toPreviousBoundary(void) + ?resize@QFile@@SA_NABVQString@@_J@Z @ 952 NONAME ; bool QFile::resize(class QString const &, long long) + ??0QSharedData@@QAE@ABV0@@Z @ 953 NONAME ; QSharedData::QSharedData(class QSharedData const &) + ??5QTextStream@@QAEAAV0@AAN@Z @ 954 NONAME ; class QTextStream & QTextStream::operator>>(double &) + ??8QModelIndex@@QBE_NABV0@@Z @ 955 NONAME ; bool QModelIndex::operator==(class QModelIndex const &) const + ?separator@QDir@@SA?AVQChar@@XZ @ 956 NONAME ; class QChar QDir::separator(void) + ?append@QString@@QAEAAV1@ABVQByteArray@@@Z @ 957 NONAME ; class QString & QString::append(class QByteArray const &) + ?defaultAnimations@QStateMachine@@QBE?AV?$QList@PAVQAbstractAnimation@@@@XZ @ 958 NONAME ; class QList QStateMachine::defaultAnimations(void) const + ?setFileName@QFSFileEngine@@UAEXABVQString@@@Z @ 959 NONAME ; void QFSFileEngine::setFileName(class QString const &) + ??1QAnimationGroup@@UAE@XZ @ 960 NONAME ; QAnimationGroup::~QAnimationGroup(void) + ?reserve@QByteArray@@QAEXH@Z @ 961 NONAME ; void QByteArray::reserve(int) + ?isSequential@QIODevice@@UBE_NXZ @ 962 NONAME ; bool QIODevice::isSequential(void) const + ??0QChar@@QAE@H@Z @ 963 NONAME ; QChar::QChar(int) + ?qIsNaN@@YA_NM@Z @ 964 NONAME ; bool qIsNaN(float) + ?data@QModelIndex@@QBE?AVQVariant@@H@Z @ 965 NONAME ; class QVariant QModelIndex::data(int) const + ?constData@QSharedMemory@@QBEPBXXZ @ 966 NONAME ; void const * QSharedMemory::constData(void) const + ??0QTextDecoder@@QAE@PBVQTextCodec@@@Z @ 967 NONAME ; QTextDecoder::QTextDecoder(class QTextCodec const *) + ??6@YAAAVQDataStream@@AAV0@ABVQVariant@@@Z @ 968 NONAME ; class QDataStream & operator<<(class QDataStream &, class QVariant const &) + ?applicationDirPath@QCoreApplication@@SA?AVQString@@XZ @ 969 NONAME ; class QString QCoreApplication::applicationDirPath(void) + ?entityResolver@QXmlStreamReader@@QBEPAVQXmlStreamEntityResolver@@XZ @ 970 NONAME ; class QXmlStreamEntityResolver * QXmlStreamReader::entityResolver(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQDate@@@Z @ 971 NONAME ; class QDataStream & operator>>(class QDataStream &, class QDate &) + ?toULongLong@QVariant@@QBE_KPA_N@Z @ 972 NONAME ; unsigned long long QVariant::toULongLong(bool *) const + ?scope@QMetaEnum@@QBEPBDXZ @ 973 NONAME ; char const * QMetaEnum::scope(void) const + ?isDTD@QXmlStreamReader@@QBE_NXZ @ 974 NONAME ; bool QXmlStreamReader::isDTD(void) const + ?value@QMetaEnum@@QBEHH@Z @ 975 NONAME ; int QMetaEnum::value(int) const + ?tr@QSignalTransition@@SA?AVQString@@PBD0H@Z @ 976 NONAME ; class QString QSignalTransition::tr(char const *, char const *, int) + ?qrand@@YAHXZ @ 977 NONAME ; int qrand(void) + ?quit@QEventLoop@@QAEXXZ @ 978 NONAME ; void QEventLoop::quit(void) + ??0QXmlStreamWriter@@QAE@XZ @ 979 NONAME ; QXmlStreamWriter::QXmlStreamWriter(void) + ?trUtf8@QTemporaryFile@@SA?AVQString@@PBD0H@Z @ 980 NONAME ; class QString QTemporaryFile::trUtf8(char const *, char const *, int) + ?standaloneMonthName@QLocale@@QBE?AVQString@@HW4FormatType@1@@Z @ 981 NONAME ; class QString QLocale::standaloneMonthName(int, enum QLocale::FormatType) const + ?namespaceProcessing@QXmlStreamReader@@QBE_NXZ @ 982 NONAME ; bool QXmlStreamReader::namespaceProcessing(void) const + ?state@QAbstractAnimation@@QBE?AW4State@1@XZ @ 983 NONAME ; enum QAbstractAnimation::State QAbstractAnimation::state(void) const + ?enclosingMetaObject@QMetaEnum@@QBEPBUQMetaObject@@XZ @ 984 NONAME ; struct QMetaObject const * QMetaEnum::enclosingMetaObject(void) const + ?disconnect@QObject@@QAE_NPBDPBV1@0@Z @ 985 NONAME ; bool QObject::disconnect(char const *, class QObject const *, char const *) + ??9QString@@QBE_NPBD@Z @ 986 NONAME ; bool QString::operator!=(char const *) const + ?addDeferredActiveObject@QEventDispatcherSymbian@@QAEXPAVQActiveObject@@@Z @ 987 NONAME ; void QEventDispatcherSymbian::addDeferredActiveObject(class QActiveObject *) + ?beginMicrostep@QStateMachine@@MAEXPAVQEvent@@@Z @ 988 NONAME ; void QStateMachine::beginMicrostep(class QEvent *) + ?parent@QAbstractTableModel@@EBE?AVQModelIndex@@ABV2@@Z @ 989 NONAME ; class QModelIndex QAbstractTableModel::parent(class QModelIndex const &) const + ?createProperty@QAbstractDynamicMetaObject@@UAEHPBD0@Z @ 990 NONAME ; int QAbstractDynamicMetaObject::createProperty(char const *, char const *) + ??0QSemaphore@@QAE@H@Z @ 991 NONAME ; QSemaphore::QSemaphore(int) + ?stop@QBasicTimer@@QAEXXZ @ 992 NONAME ; void QBasicTimer::stop(void) + ?standaloneDayName@QLocale@@QBE?AVQString@@HW4FormatType@1@@Z @ 993 NONAME ; class QString QLocale::standaloneDayName(int, enum QLocale::FormatType) const + ?replace@QString@@QAEAAV1@VQChar@@0W4CaseSensitivity@Qt@@@Z @ 994 NONAME ; class QString & QString::replace(class QChar, class QChar, enum Qt::CaseSensitivity) + ?addAnimation@QAnimationGroup@@QAEXPAVQAbstractAnimation@@@Z @ 995 NONAME ; void QAnimationGroup::addAnimation(class QAbstractAnimation *) + ??8QProcessEnvironment@@QBE_NABV0@@Z @ 996 NONAME ; bool QProcessEnvironment::operator==(class QProcessEnvironment const &) const + ?isDetached@QString@@QBE_NXZ @ 997 NONAME ; bool QString::isDetached(void) const + ??0QAbstractTableModel@@IAE@AAVQAbstractItemModelPrivate@@PAVQObject@@@Z @ 998 NONAME ; QAbstractTableModel::QAbstractTableModel(class QAbstractItemModelPrivate &, class QObject *) + ?disconnectNotify@QBuffer@@MAEXPBD@Z @ 999 NONAME ; void QBuffer::disconnectNotify(char const *) + ??0QSharedMemory@@QAE@PAVQObject@@@Z @ 1000 NONAME ; QSharedMemory::QSharedMemory(class QObject *) + ?constData@QByteArray@@QBEPBDXZ @ 1001 NONAME ; char const * QByteArray::constData(void) const + ?setOpenMode@QIODevice@@IAEXV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1002 NONAME ; void QIODevice::setOpenMode(class QFlags) + ?getStaticMetaObject@QAbstractAnimation@@SAABUQMetaObject@@XZ @ 1003 NONAME ; struct QMetaObject const & QAbstractAnimation::getStaticMetaObject(void) + ?data_ptr@QBitArray@@QAEAAPAUData@QByteArray@@XZ @ 1004 NONAME ; struct QByteArray::Data * & QBitArray::data_ptr(void) + ?stateEntryLessThan@QStateMachinePrivate@@SA_NPAVQAbstractState@@0@Z @ 1005 NONAME ; bool QStateMachinePrivate::stateEntryLessThan(class QAbstractState *, class QAbstractState *) + ?home@QDir@@SA?AV1@XZ @ 1006 NONAME ; class QDir QDir::home(void) + ??0QStringRef@@QAE@PBVQString@@HH@Z @ 1007 NONAME ; QStringRef::QStringRef(class QString const *, int, int) + ?setNum@QByteArray@@QAEAAV1@MDH@Z @ 1008 NONAME ; class QByteArray & QByteArray::setNum(float, char, int) + ?qt_metacall@QPauseAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1009 NONAME ; int QPauseAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?moveTo@QRect@@QAEXHH@Z @ 1010 NONAME ; void QRect::moveTo(int, int) + ?tr@QState@@SA?AVQString@@PBD0@Z @ 1011 NONAME ; class QString QState::tr(char const *, char const *) + ?fromUserInput@QUrl@@SA?AV1@ABVQString@@@Z @ 1012 NONAME ; class QUrl QUrl::fromUserInput(class QString const &) + ??4QXmlStreamNamespaceDeclaration@@QAEAAV0@ABV0@@Z @ 1013 NONAME ; class QXmlStreamNamespaceDeclaration & QXmlStreamNamespaceDeclaration::operator=(class QXmlStreamNamespaceDeclaration const &) + ?timerEvent@QTimeLine@@MAEXPAVQTimerEvent@@@Z @ 1014 NONAME ; void QTimeLine::timerEvent(class QTimerEvent *) + ?setFile@QFileInfo@@QAEXABVQFile@@@Z @ 1015 NONAME ; void QFileInfo::setFile(class QFile const &) + ?setAutoRemove@QTemporaryFile@@QAEX_N@Z @ 1016 NONAME ; void QTemporaryFile::setAutoRemove(bool) + ?direction@QChar@@QBE?AW4Direction@1@XZ @ 1017 NONAME ; enum QChar::Direction QChar::direction(void) const + ?append@QString@@QAEAAV1@PBD@Z @ 1018 NONAME ; class QString & QString::append(char const *) + ?reserve@QString@@QAEXH@Z @ 1019 NONAME ; void QString::reserve(int) + ?makeDecoder@QTextCodec@@QBEPAVQTextDecoder@@XZ @ 1020 NONAME ; class QTextDecoder * QTextCodec::makeDecoder(void) const + ??0QHistoryState@@QAE@PAVQState@@@Z @ 1021 NONAME ; QHistoryState::QHistoryState(class QState *) + ?instance@QCoreApplication@@SAPAV1@XZ @ 1022 NONAME ; class QCoreApplication * QCoreApplication::instance(void) + ?setTime_t@QDateTime@@QAEXI@Z @ 1023 NONAME ; void QDateTime::setTime_t(unsigned int) + ?positiveSign@QLocale@@QBE?AVQChar@@XZ @ 1024 NONAME ; class QChar QLocale::positiveSign(void) const + ?open@QBuffer@@UAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1025 NONAME ; bool QBuffer::open(class QFlags) + ?isNull@QChar@@QBE_NXZ @ 1026 NONAME ; bool QChar::isNull(void) const + ??_EQProcess@@UAE@I@Z @ 1027 NONAME ; QProcess::~QProcess(unsigned int) + ?save@QVariant@@QBEXAAVQDataStream@@@Z @ 1028 NONAME ; void QVariant::save(class QDataStream &) const + ??0QAbstractEventDispatcher@@IAE@AAVQAbstractEventDispatcherPrivate@@PAVQObject@@@Z @ 1029 NONAME ; QAbstractEventDispatcher::QAbstractEventDispatcher(class QAbstractEventDispatcherPrivate &, class QObject *) + ?addResourceSearchPath@QDir@@SAXABVQString@@@Z @ 1030 NONAME ; void QDir::addResourceSearchPath(class QString const &) + ?writeDefaultNamespace@QXmlStreamWriter@@QAEXABVQString@@@Z @ 1031 NONAME ; void QXmlStreamWriter::writeDefaultNamespace(class QString const &) + ?read@QAbstractFileEngine@@UAE_JPAD_J@Z @ 1032 NONAME ; long long QAbstractFileEngine::read(char *, long long) + ?html@QMimeData@@QBE?AVQString@@XZ @ 1033 NONAME ; class QString QMimeData::html(void) const + ?toBase64@QByteArray@@QBE?AV1@XZ @ 1034 NONAME ; class QByteArray QByteArray::toBase64(void) const + ?supportsExtension@QFSFileEngine@@UBE_NW4Extension@QAbstractFileEngine@@@Z @ 1035 NONAME ; bool QFSFileEngine::supportsExtension(enum QAbstractFileEngine::Extension) const + ??1QSemaphore@@QAE@XZ @ 1036 NONAME ; QSemaphore::~QSemaphore(void) + ?colorData@QMimeData@@QBE?AVQVariant@@XZ @ 1037 NONAME ; class QVariant QMimeData::colorData(void) const + ?rehash@QHashData@@QAEXH@Z @ 1038 NONAME ; void QHashData::rehash(int) + ?setOrganizationName@QCoreApplication@@SAXABVQString@@@Z @ 1039 NONAME ; void QCoreApplication::setOrganizationName(class QString const &) + ?number@QString@@SA?AV1@IH@Z @ 1040 NONAME ; class QString QString::number(unsigned int, int) + ??4QCharRef@@QAEAAV0@ABV0@@Z @ 1041 NONAME ; class QCharRef & QCharRef::operator=(class QCharRef const &) + ?toShort@QString@@QBEFPA_NH@Z @ 1042 NONAME ; short QString::toShort(bool *, int) const + ?toByteArray@QVariant@@QBE?AVQByteArray@@XZ @ 1043 NONAME ; class QByteArray QVariant::toByteArray(void) const + ?senderObject@QSignalTransition@@QBEPAVQObject@@XZ @ 1044 NONAME ; class QObject * QSignalTransition::senderObject(void) const + ?headerData@QAbstractItemModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 1045 NONAME ; class QVariant QAbstractItemModel::headerData(int, enum Qt::Orientation, int) const + ?toUShort@QString@@QBEGPA_NH@Z @ 1046 NONAME ; unsigned short QString::toUShort(bool *, int) const + ??0QVariant@@QAE@ABVQPointF@@@Z @ 1047 NONAME ; QVariant::QVariant(class QPointF const &) + ??0QVariant@@QAE@N@Z @ 1048 NONAME ; QVariant::QVariant(double) + ?contains@QProcessEnvironment@@QBE_NABVQString@@@Z @ 1049 NONAME ; bool QProcessEnvironment::contains(class QString const &) const + ?toDouble@QVariant@@QBENPA_N@Z @ 1050 NONAME ; double QVariant::toDouble(bool *) const + ?lastIndexOf@QString@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 1051 NONAME ; int QString::lastIndexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ??4QTextBoundaryFinder@@QAEAAV0@ABV0@@Z @ 1052 NONAME ; class QTextBoundaryFinder & QTextBoundaryFinder::operator=(class QTextBoundaryFinder const &) + ?setEasingCurve@QTimeLine@@QAEXABVQEasingCurve@@@Z @ 1053 NONAME ; void QTimeLine::setEasingCurve(class QEasingCurve const &) + ?isValid@QRegExp@@QBE_NXZ @ 1054 NONAME ; bool QRegExp::isValid(void) const + ?d_func@QState@@ABEPBVQStatePrivate@@XZ @ 1055 NONAME ; class QStatePrivate const * QState::d_func(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQLocale@@@Z @ 1056 NONAME ; class QDataStream & operator>>(class QDataStream &, class QLocale &) + ?clearAnimations@QAnimationGroup@@QAEXXZ @ 1057 NONAME ; void QAnimationGroup::clearAnimations(void) + ?toFloat@QString@@QBEMPA_N@Z @ 1058 NONAME ; float QString::toFloat(bool *) const + ?kill@QProcess@@QAEXXZ @ 1059 NONAME ; void QProcess::kill(void) + ?d_func@QResource@@ABEPBVQResourcePrivate@@XZ @ 1060 NONAME ; class QResourcePrivate const * QResource::d_func(void) const + ?onEntry@QHistoryState@@MAEXPAVQEvent@@@Z @ 1061 NONAME ; void QHistoryState::onEntry(class QEvent *) + ?moveTopRight@QRectF@@QAEXABVQPointF@@@Z @ 1062 NONAME ; void QRectF::moveTopRight(class QPointF const &) + ?registerUserData@QObject@@SAIXZ @ 1063 NONAME ; unsigned int QObject::registerUserData(void) + ?supportedDropActions@QAbstractItemModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 1064 NONAME ; class QFlags QAbstractItemModel::supportedDropActions(void) const + ?append@QString@@QAEAAV1@ABV1@@Z @ 1065 NONAME ; class QString & QString::append(class QString const &) + ?timerId@QTimer@@QBEHXZ @ 1066 NONAME ; int QTimer::timerId(void) const + ?valueChanged@QTimeLine@@IAEXM@Z @ 1067 NONAME ; void QTimeLine::valueChanged(float) + ?toTitleCase@QChar@@SAII@Z @ 1068 NONAME ; unsigned int QChar::toTitleCase(unsigned int) + ?event@QAbstractTransition@@MAE_NPAVQEvent@@@Z @ 1069 NONAME ; bool QAbstractTransition::event(class QEvent *) + ?getStaticMetaObject@QPluginLoader@@SAABUQMetaObject@@XZ @ 1070 NONAME ; struct QMetaObject const & QPluginLoader::getStaticMetaObject(void) + ??0QHBufC@@QAE@PAVHBufC16@@@Z @ 1071 NONAME ; QHBufC::QHBufC(class HBufC16 *) + ?split@QString@@QBE?AVQStringList@@ABV1@W4SplitBehavior@1@W4CaseSensitivity@Qt@@@Z @ 1072 NONAME ; class QStringList QString::split(class QString const &, enum QString::SplitBehavior, enum Qt::CaseSensitivity) const + ?destroy@QMetaType@@SAXHPAX@Z @ 1073 NONAME ; void QMetaType::destroy(int, void *) + ??5QDataStream@@QAEAAV0@AAI@Z @ 1074 NONAME ; class QDataStream & QDataStream::operator>>(unsigned int &) + ?errorString@QAbstractFileEngine@@QBE?AVQString@@XZ @ 1075 NONAME ; class QString QAbstractFileEngine::errorString(void) const + ?dateTimeFormat@QLocale@@QBE?AVQString@@W4FormatType@1@@Z @ 1076 NONAME ; class QString QLocale::dateTimeFormat(enum QLocale::FormatType) const + ?fetchMore@QAbstractItemModel@@UAEXABVQModelIndex@@@Z @ 1077 NONAME ; void QAbstractItemModel::fetchMore(class QModelIndex const &) + ?event@QPauseAnimation@@MAE_NPAVQEvent@@@Z @ 1078 NONAME ; bool QPauseAnimation::event(class QEvent *) + ??_EQAbstractDynamicMetaObject@@UAE@I@Z @ 1079 NONAME ; QAbstractDynamicMetaObject::~QAbstractDynamicMetaObject(unsigned int) + ?sectionSize@QDateTimeParser@@QBEHH@Z @ 1080 NONAME ; int QDateTimeParser::sectionSize(int) const + ?setAutoFormattingIndent@QXmlStreamWriter@@QAEXH@Z @ 1081 NONAME ; void QXmlStreamWriter::setAutoFormattingIndent(int) + ?setSize@QAbstractFileEngine@@UAE_N_J@Z @ 1082 NONAME ; bool QAbstractFileEngine::setSize(long long) + ?d_func@QSignalTransition@@ABEPBVQSignalTransitionPrivate@@XZ @ 1083 NONAME ; class QSignalTransitionPrivate const * QSignalTransition::d_func(void) const + ?string@QTextBoundaryFinder@@QBE?AVQString@@XZ @ 1084 NONAME ; class QString QTextBoundaryFinder::string(void) const + ??MQPersistentModelIndex@@QBE_NABV0@@Z @ 1085 NONAME ; bool QPersistentModelIndex::operator<(class QPersistentModelIndex const &) const + ?isAtomic@QStateMachinePrivate@@QBE_NPBVQAbstractState@@@Z @ 1086 NONAME ; bool QStateMachinePrivate::isAtomic(class QAbstractState const *) const + ?toRegExp@QVariant@@QBE?AVQRegExp@@XZ @ 1087 NONAME ; class QRegExp QVariant::toRegExp(void) const + ?enclosingMetaObject@QMetaMethod@@QBEPBUQMetaObject@@XZ @ 1088 NONAME ; struct QMetaObject const * QMetaMethod::enclosingMetaObject(void) const + ?hasEncodedQueryItem@QUrl@@QBE_NABVQByteArray@@@Z @ 1089 NONAME ; bool QUrl::hasEncodedQueryItem(class QByteArray const &) const + ?objectDestroyed@QObjectCleanupHandler@@AAEXPAVQObject@@@Z @ 1090 NONAME ; void QObjectCleanupHandler::objectDestroyed(class QObject *) + ?fromRawData@QString@@SA?AV1@PBVQChar@@H@Z @ 1091 NONAME ; class QString QString::fromRawData(class QChar const *, int) + ?stringToUnsLongLong@QLocalePrivate@@QBE_KABVQString@@HPA_NW4GroupSeparatorMode@1@@Z @ 1092 NONAME ; unsigned long long QLocalePrivate::stringToUnsLongLong(class QString const &, int, bool *, enum QLocalePrivate::GroupSeparatorMode) const + ?signalsBlocked@QObject@@QBE_NXZ @ 1093 NONAME ; bool QObject::signalsBlocked(void) const + ?endInsertColumns@QAbstractItemModel@@IAEXXZ @ 1094 NONAME ; void QAbstractItemModel::endInsertColumns(void) + ??PQString@@QBE_NABVQByteArray@@@Z @ 1095 NONAME ; bool QString::operator>=(class QByteArray const &) const + ?placeMetaCall@QMetaCallEvent@@UAEHPAVQObject@@@Z @ 1096 NONAME ; int QMetaCallEvent::placeMetaCall(class QObject *) + ??_EQAbstractListModel@@UAE@I@Z @ 1097 NONAME ; QAbstractListModel::~QAbstractListModel(unsigned int) + ??1QCryptographicHash@@QAE@XZ @ 1098 NONAME ; QCryptographicHash::~QCryptographicHash(void) + ?staticMetaObject@QFinalState@@2UQMetaObject@@B @ 1099 NONAME ; struct QMetaObject const QFinalState::staticMetaObject + ?isLoaded@QPluginLoader@@QBE_NXZ @ 1100 NONAME ; bool QPluginLoader::isLoaded(void) const + ?removeRows@QAbstractItemModel@@UAE_NHHABVQModelIndex@@@Z @ 1101 NONAME ; bool QAbstractItemModel::removeRows(int, int, class QModelIndex const &) + ?d_func@QMimeData@@AAEPAVQMimeDataPrivate@@XZ @ 1102 NONAME ; class QMimeDataPrivate * QMimeData::d_func(void) + ?setNum@QString@@QAEAAV1@IH@Z @ 1103 NONAME ; class QString & QString::setNum(unsigned int, int) + ??5QTextStream@@QAEAAV0@AAG@Z @ 1104 NONAME ; class QTextStream & QTextStream::operator>>(unsigned short &) + ?unicode@QChar@@QBEGXZ @ 1105 NONAME ; unsigned short QChar::unicode(void) const + ??1QTimeLine@@UAE@XZ @ 1106 NONAME ; QTimeLine::~QTimeLine(void) + ?findMonth@QDateTimeParser@@QBEHABVQString@@HHPAV2@PAH@Z @ 1107 NONAME ; int QDateTimeParser::findMonth(class QString const &, int, int, class QString *, int *) const + ?fromString@QDateTime@@SA?AV1@ABVQString@@W4DateFormat@Qt@@@Z @ 1108 NONAME ; class QDateTime QDateTime::fromString(class QString const &, enum Qt::DateFormat) + ??BQByteArray@@QBEPBXXZ @ 1109 NONAME ; QByteArray::operator void const *(void) const + ?directories@QFileSystemWatcher@@QBE?AVQStringList@@XZ @ 1110 NONAME ; class QStringList QFileSystemWatcher::directories(void) const + ?d_func@QEventTransition@@ABEPBVQEventTransitionPrivate@@XZ @ 1111 NONAME ; class QEventTransitionPrivate const * QEventTransition::d_func(void) const + ?getAndRef@ExternalRefCountData@QtSharedPointer@@SAPAU12@PBVQObject@@@Z @ 1112 NONAME ; struct QtSharedPointer::ExternalRefCountData * QtSharedPointer::ExternalRefCountData::getAndRef(class QObject const *) + ?arg@QString@@QBE?AV1@ABV1@00@Z @ 1113 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &) const + ?isPunct@QChar@@QBE_NXZ @ 1114 NONAME ; bool QChar::isPunct(void) const + ?setLocale@QResource@@QAEXABVQLocale@@@Z @ 1115 NONAME ; void QResource::setLocale(class QLocale const &) + ?qMetaTypeGuiHelper@@3PBUQMetaTypeGuiHelper@@B @ 1116 NONAME ; struct QMetaTypeGuiHelper const * const qMetaTypeGuiHelper + ??0QUuid@@QAE@ABVQString@@@Z @ 1117 NONAME ; QUuid::QUuid(class QString const &) + ?isWidgetType@QObject@@QBE_NXZ @ 1118 NONAME ; bool QObject::isWidgetType(void) const + ??1QSystemLocale@@UAE@XZ @ 1119 NONAME ; QSystemLocale::~QSystemLocale(void) + ??0QTextStream@@QAE@PAVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1120 NONAME ; QTextStream::QTextStream(class QString *, class QFlags) + ??5QTextStream@@QAEAAV0@AA_J@Z @ 1121 NONAME ; class QTextStream & QTextStream::operator>>(long long &) + ??YQString@@QAEAAV0@PBD@Z @ 1122 NONAME ; class QString & QString::operator+=(char const *) + ??8QLineF@@QBE_NABV0@@Z @ 1123 NONAME ; bool QLineF::operator==(class QLineF const &) const + ?rx@QPoint@@QAEAAHXZ @ 1124 NONAME ; int & QPoint::rx(void) + ?model@QPersistentModelIndex@@QBEPBVQAbstractItemModel@@XZ @ 1125 NONAME ; class QAbstractItemModel const * QPersistentModelIndex::model(void) const + ?indexOfEnumerator@QMetaObject@@QBEHPBD@Z @ 1126 NONAME ; int QMetaObject::indexOfEnumerator(char const *) const + ??_EQIODevicePrivate@@UAE@I@Z @ 1127 NONAME ; QIODevicePrivate::~QIODevicePrivate(unsigned int) + ?truncate@QBitArray@@QAEXH@Z @ 1128 NONAME ; void QBitArray::truncate(int) + ??_5QRectF@@QAEAAV0@ABV0@@Z @ 1129 NONAME ; class QRectF & QRectF::operator|=(class QRectF const &) + ?createIndex@QAbstractItemModel@@IBE?AVQModelIndex@@HHPAX@Z @ 1130 NONAME ; class QModelIndex QAbstractItemModel::createIndex(int, int, void *) const + ?trUtf8@QBuffer@@SA?AVQString@@PBD0H@Z @ 1131 NONAME ; class QString QBuffer::trUtf8(char const *, char const *, int) + ??_4QRect@@QAEAAV0@ABV0@@Z @ 1132 NONAME ; class QRect & QRect::operator&=(class QRect const &) + ?mid@QByteArray@@QBE?AV1@HH@Z @ 1133 NONAME ; class QByteArray QByteArray::mid(int, int) const + ?isDescendantOf@QStateMachinePrivate@@SA_NPBVQAbstractState@@0@Z @ 1134 NONAME ; bool QStateMachinePrivate::isDescendantOf(class QAbstractState const *, class QAbstractState const *) + ?columnsAboutToBeRemoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 1135 NONAME ; void QAbstractItemModelPrivate::columnsAboutToBeRemoved(class QModelIndex const &, int, int) + ?qt_symbian_exception2Error@@YAHABVexception@std@@@Z @ 1136 NONAME ; int qt_symbian_exception2Error(class std::exception const &) + ?metaObject@QSignalMapper@@UBEPBUQMetaObject@@XZ @ 1137 NONAME ; struct QMetaObject const * QSignalMapper::metaObject(void) const + ?lastIndexOf@QString@@QBEHABVQRegExp@@H@Z @ 1138 NONAME ; int QString::lastIndexOf(class QRegExp const &, int) const + ??0QObjectPrivate@@QAE@H@Z @ 1139 NONAME ; QObjectPrivate::QObjectPrivate(int) + ?lastRead@QFileInfo@@QBE?AVQDateTime@@XZ @ 1140 NONAME ; class QDateTime QFileInfo::lastRead(void) const + ?y@QRectF@@QBEMXZ @ 1141 NONAME ; float QRectF::y(void) const + ?setDevice@QXmlStreamReader@@QAEXPAVQIODevice@@@Z @ 1142 NONAME ; void QXmlStreamReader::setDevice(class QIODevice *) + ?bom@@YAAAVQTextStream@@AAV1@@Z @ 1143 NONAME ; class QTextStream & bom(class QTextStream &) + ?triggered@QAbstractTransition@@AAEXXZ @ 1144 NONAME ; void QAbstractTransition::triggered(void) + ?size@QListData@@QBEHXZ @ 1145 NONAME ; int QListData::size(void) const + ??9QFileInfo@@QAE_NABV0@@Z @ 1146 NONAME ; bool QFileInfo::operator!=(class QFileInfo const &) + ?clear@QProcessEnvironment@@QAEXXZ @ 1147 NONAME ; void QProcessEnvironment::clear(void) + ?trUtf8@QAbstractTransition@@SA?AVQString@@PBD0H@Z @ 1148 NONAME ; class QString QAbstractTransition::trUtf8(char const *, char const *, int) + ?createEventDispatcher@QCoreApplicationPrivate@@UAEXXZ @ 1149 NONAME ; void QCoreApplicationPrivate::createEventDispatcher(void) + ?data@QString@@QAEPAVQChar@@XZ @ 1150 NONAME ; class QChar * QString::data(void) + ?topRight@QRectF@@QBE?AVQPointF@@XZ @ 1151 NONAME ; class QPointF QRectF::topRight(void) const + ?acquire@QSystemSemaphore@@QAE_NXZ @ 1152 NONAME ; bool QSystemSemaphore::acquire(void) + ?size@QBuffer@@UBE_JXZ @ 1153 NONAME ; long long QBuffer::size(void) const + ??PQDate@@QBE_NABV0@@Z @ 1154 NONAME ; bool QDate::operator>=(class QDate const &) const + ?allowMove@QAbstractItemModelPrivate@@QAE_NABVQModelIndex@@HH0HW4Orientation@Qt@@@Z @ 1155 NONAME ; bool QAbstractItemModelPrivate::allowMove(class QModelIndex const &, int, int, class QModelIndex const &, int, enum Qt::Orientation) + ??6QDebug@@QAEAAV0@I@Z @ 1156 NONAME ; class QDebug & QDebug::operator<<(unsigned int) + ?remove@QString@@QAEAAV1@HH@Z @ 1157 NONAME ; class QString & QString::remove(int, int) + ?arg@QString@@QBE?AV1@VQChar@@HABV2@@Z @ 1158 NONAME ; class QString QString::arg(class QChar, int, class QChar const &) const + ?setLoopCount@QAbstractAnimation@@QAEXH@Z @ 1159 NONAME ; void QAbstractAnimation::setLoopCount(int) + ?setCodec@QXmlStreamWriter@@QAEXPBD@Z @ 1160 NONAME ; void QXmlStreamWriter::setCodec(char const *) + ?setDate@QDate@@QAE_NHHH@Z @ 1161 NONAME ; bool QDate::setDate(int, int, int) + ?end@QByteArray@@QBEPBDXZ @ 1162 NONAME ; char const * QByteArray::end(void) const + ??CQHBufC@@QAEPAVHBufC16@@XZ @ 1163 NONAME ; class HBufC16 * QHBufC::operator->(void) + ?metaObject@QVariantAnimation@@UBEPBUQMetaObject@@XZ @ 1164 NONAME ; struct QMetaObject const * QVariantAnimation::metaObject(void) const + ?tr@QIODevice@@SA?AVQString@@PBD0@Z @ 1165 NONAME ; class QString QIODevice::tr(char const *, char const *) + ?isRegistered@QMetaType@@SA_NH@Z @ 1166 NONAME ; bool QMetaType::isRegistered(int) + ?append@QByteArray@@QAEAAV1@D@Z @ 1167 NONAME ; class QByteArray & QByteArray::append(char) + ??1QProcessEnvironment@@QAE@XZ @ 1168 NONAME ; QProcessEnvironment::~QProcessEnvironment(void) + ?endValue@QVariantAnimation@@QBE?AVQVariant@@XZ @ 1169 NONAME ; class QVariant QVariantAnimation::endValue(void) const + ?endResetModel@QAbstractItemModel@@IAEXXZ @ 1170 NONAME ; void QAbstractItemModel::endResetModel(void) + ?languageId@QLocalePrivate@@QBEIXZ @ 1171 NONAME ; unsigned int QLocalePrivate::languageId(void) const + ?left@@YAAAVQTextStream@@AAV1@@Z @ 1172 NONAME ; class QTextStream & left(class QTextStream &) + ??6@YA?AVQDebug@@V0@ABVQTime@@@Z @ 1173 NONAME ; class QDebug operator<<(class QDebug, class QTime const &) + ?localeAwareCompare@QStringRef@@SAHABV1@ABVQString@@@Z @ 1174 NONAME ; int QStringRef::localeAwareCompare(class QStringRef const &, class QString const &) + ??0QMutexPool@@QAE@W4RecursionMode@QMutex@@H@Z @ 1175 NONAME ; QMutexPool::QMutexPool(enum QMutex::RecursionMode, int) + ?setTime@QDateTime@@QAEXABVQTime@@@Z @ 1176 NONAME ; void QDateTime::setTime(class QTime const &) + ??0QMetaClassInfo@@QAE@XZ @ 1177 NONAME ; QMetaClassInfo::QMetaClassInfo(void) + ?push_front@QByteArray@@QAEXD@Z @ 1178 NONAME ; void QByteArray::push_front(char) + ?replace@QByteArray@@QAEAAV1@PBDABV1@@Z @ 1179 NONAME ; class QByteArray & QByteArray::replace(char const *, class QByteArray const &) + ?script@QUnicodeTables@@YAHI@Z @ 1180 NONAME ; int QUnicodeTables::script(unsigned int) + ??9@YA_NABVQRect@@0@Z @ 1181 NONAME ; bool operator!=(class QRect const &, class QRect const &) + ?setLength@QLineF@@QAEXM@Z @ 1182 NONAME ; void QLineF::setLength(float) + ?metaObject@QTemporaryFile@@UBEPBUQMetaObject@@XZ @ 1183 NONAME ; struct QMetaObject const * QTemporaryFile::metaObject(void) const + ??0QCoreApplication@@IAE@AAVQCoreApplicationPrivate@@@Z @ 1184 NONAME ; QCoreApplication::QCoreApplication(class QCoreApplicationPrivate &) + ?addData@QCryptographicHash@@QAEXABVQByteArray@@@Z @ 1185 NONAME ; void QCryptographicHash::addData(class QByteArray const &) + ?endRemoveRows@QAbstractItemModel@@IAEXXZ @ 1186 NONAME ; void QAbstractItemModel::endRemoveRows(void) + ??_EQEventDispatcherSymbian@@UAE@I@Z @ 1187 NONAME ; QEventDispatcherSymbian::~QEventDispatcherSymbian(unsigned int) + ?type@QMetaType@@SAHPBD@Z @ 1188 NONAME ; int QMetaType::type(char const *) + ?ownerId@QAbstractFileEngine@@UBEIW4FileOwner@1@@Z @ 1189 NONAME ; unsigned int QAbstractFileEngine::ownerId(enum QAbstractFileEngine::FileOwner) const + ?shared_empty@QString@@0UData@1@A @ 1190 NONAME ; struct QString::Data QString::shared_empty + ?type@QMetaProperty@@QBE?AW4Type@QVariant@@XZ @ 1191 NONAME ; enum QVariant::Type QMetaProperty::type(void) const + ?disableReset@QNonContiguousByteDevice@@QAEXXZ @ 1192 NONAME ; void QNonContiguousByteDevice::disableReset(void) + ?unmap@QAbstractFileEngine@@QAE_NPAE@Z @ 1193 NONAME ; bool QAbstractFileEngine::unmap(unsigned char *) + ?currentValue@QVariantAnimation@@QBE?AVQVariant@@XZ @ 1194 NONAME ; class QVariant QVariantAnimation::currentValue(void) const + ?waitForReadyRead@QProcess@@UAE_NH@Z @ 1195 NONAME ; bool QProcess::waitForReadyRead(int) + ?errorString@QPluginLoader@@QBE?AVQString@@XZ @ 1196 NONAME ; class QString QPluginLoader::errorString(void) const + ?center@QRectF@@QBE?AVQPointF@@XZ @ 1197 NONAME ; class QPointF QRectF::center(void) const + ?currentAnimationChanged@QSequentialAnimationGroup@@IAEXPAVQAbstractAnimation@@@Z @ 1198 NONAME ; void QSequentialAnimationGroup::currentAnimationChanged(class QAbstractAnimation *) + ?qt_metacast@QObject@@UAEPAXPBD@Z @ 1199 NONAME ; void * QObject::qt_metacast(char const *) + ??6QTextStream@@QAEAAV0@ABVQByteArray@@@Z @ 1200 NONAME ; class QTextStream & QTextStream::operator<<(class QByteArray const &) + ?sender@QObject@@IBEPAV1@XZ @ 1201 NONAME ; class QObject * QObject::sender(void) const + ??0QRectF@@QAE@ABVQRect@@@Z @ 1202 NONAME ; QRectF::QRectF(class QRect const &) + ?trUtf8@QCoreApplication@@SA?AVQString@@PBD0@Z @ 1203 NONAME ; class QString QCoreApplication::trUtf8(char const *, char const *) + ?d_func@QFileInfo@@AAEPAVQFileInfoPrivate@@XZ @ 1204 NONAME ; class QFileInfoPrivate * QFileInfo::d_func(void) + ??8@YA_NABVQLatin1String@@ABVQStringRef@@@Z @ 1205 NONAME ; bool operator==(class QLatin1String const &, class QStringRef const &) + ?flush@QTextStream@@QAEXXZ @ 1206 NONAME ; void QTextStream::flush(void) + ?waitForFinished@QProcess@@QAE_NH@Z @ 1207 NONAME ; bool QProcess::waitForFinished(int) + ??0QLatin1String@@QAE@PBD@Z @ 1208 NONAME ; QLatin1String::QLatin1String(char const *) + ?readElementText@QXmlStreamReader@@QAE?AVQString@@XZ @ 1209 NONAME ; class QString QXmlStreamReader::readElementText(void) + ?setPropertyName@QPropertyAnimation@@QAEXABVQByteArray@@@Z @ 1210 NONAME ; void QPropertyAnimation::setPropertyName(class QByteArray const &) + ?indexOf@QString@@QBEHAAVQRegExp@@H@Z @ 1211 NONAME ; int QString::indexOf(class QRegExp &, int) const + ??_EQState@@UAE@I@Z @ 1212 NONAME ; QState::~QState(unsigned int) + ??XQSize@@QAEAAV0@M@Z @ 1213 NONAME ; class QSize & QSize::operator*=(float) + ?isBundle@QFileInfo@@QBE_NXZ @ 1214 NONAME ; bool QFileInfo::isBundle(void) const + ??0QEasingCurve@@QAE@ABV0@@Z @ 1215 NONAME ; QEasingCurve::QEasingCurve(class QEasingCurve const &) + ??4QStringMatcher@@QAEAAV0@ABV0@@Z @ 1216 NONAME ; class QStringMatcher & QStringMatcher::operator=(class QStringMatcher const &) + ?qHash@@YAIABVQByteArray@@@Z @ 1217 NONAME ; unsigned int qHash(class QByteArray const &) + ?qstrnicmp@@YAHPBD0I@Z @ 1218 NONAME ; int qstrnicmp(char const *, char const *, unsigned int) + ?tr@QSocketNotifier@@SA?AVQString@@PBD0@Z @ 1219 NONAME ; class QString QSocketNotifier::tr(char const *, char const *) + ?prepend@QByteArray@@QAEAAV1@PBD@Z @ 1220 NONAME ; class QByteArray & QByteArray::prepend(char const *) + ??0QFactoryLoader@@QAE@PBDABVQString@@W4CaseSensitivity@Qt@@@Z @ 1221 NONAME ; QFactoryLoader::QFactoryLoader(char const *, class QString const &, enum Qt::CaseSensitivity) + ?reset@QTextStream@@QAEXXZ @ 1222 NONAME ; void QTextStream::reset(void) + ?realNumberPrecision@QTextStream@@QBEHXZ @ 1223 NONAME ; int QTextStream::realNumberPrecision(void) const + ?setEncodedHost@QUrl@@QAEXABVQByteArray@@@Z @ 1224 NONAME ; void QUrl::setEncodedHost(class QByteArray const &) + ?mapping@QSignalMapper@@QBEPAVQObject@@H@Z @ 1225 NONAME ; class QObject * QSignalMapper::mapping(int) const + ?number@QString@@SA?AV1@KH@Z @ 1226 NONAME ; class QString QString::number(unsigned long, int) + ?tr@QAbstractTransition@@SA?AVQString@@PBD0@Z @ 1227 NONAME ; class QString QAbstractTransition::tr(char const *, char const *) + ?shared_null@QVectorData@@2U1@A @ 1228 NONAME ; struct QVectorData QVectorData::shared_null + ?contains@QString@@QBE?AVQBool@@VQChar@@W4CaseSensitivity@Qt@@@Z @ 1229 NONAME ; class QBool QString::contains(class QChar, enum Qt::CaseSensitivity) const + ??4QString@@QAEAAV0@ABVQByteArray@@@Z @ 1230 NONAME ; class QString & QString::operator=(class QByteArray const &) + ??0QPoint@@QAE@XZ @ 1231 NONAME ; QPoint::QPoint(void) + ?lastIndexOf@QByteArray@@QBEHPBDH@Z @ 1232 NONAME ; int QByteArray::lastIndexOf(char const *, int) const + ??6@YAAAVQDataStream@@AAV0@ABVQDateTime@@@Z @ 1233 NONAME ; class QDataStream & operator<<(class QDataStream &, class QDateTime const &) + ?activate@QMetaObject@@SAXPAVQObject@@HHPAPAX@Z @ 1234 NONAME ; void QMetaObject::activate(class QObject *, int, int, void * *) + ?endMoveRows@QAbstractItemModel@@IAEXXZ @ 1235 NONAME ; void QAbstractItemModel::endMoveRows(void) + ??1QFactoryInterface@@UAE@XZ @ 1236 NONAME ; QFactoryInterface::~QFactoryInterface(void) + ??0QByteRef@@AAE@AAVQByteArray@@H@Z @ 1237 NONAME ; QByteRef::QByteRef(class QByteArray &, int) + ??9QXmlStreamNotationDeclaration@@QBE_NABV0@@Z @ 1238 NONAME ; bool QXmlStreamNotationDeclaration::operator!=(class QXmlStreamNotationDeclaration const &) const + ??6QDataStream@@QAEAAV0@N@Z @ 1239 NONAME ; class QDataStream & QDataStream::operator<<(double) + ?end@QByteArray@@QAEPADXZ @ 1240 NONAME ; char * QByteArray::end(void) + ?Error@CQtActiveScheduler@@UBEXH@Z @ 1241 NONAME ; void CQtActiveScheduler::Error(int) const + ?isCharacters@QXmlStreamReader@@QBE_NXZ @ 1242 NONAME ; bool QXmlStreamReader::isCharacters(void) const + ?setFile@QFileInfo@@QAEXABVQString@@@Z @ 1243 NONAME ; void QFileInfo::setFile(class QString const &) + ??1QObjectCleanupHandler@@UAE@XZ @ 1244 NONAME ; QObjectCleanupHandler::~QObjectCleanupHandler(void) + ?tr@QHistoryState@@SA?AVQString@@PBD0@Z @ 1245 NONAME ; class QString QHistoryState::tr(char const *, char const *) + ?d_func@QThread@@AAEPAVQThreadPrivate@@XZ @ 1246 NONAME ; class QThreadPrivate * QThread::d_func(void) + ??YQByteArray@@QAEAAV0@PBD@Z @ 1247 NONAME ; class QByteArray & QByteArray::operator+=(char const *) + ?trUtf8@QMetaObject@@QBE?AVQString@@PBD0@Z @ 1248 NONAME ; class QString QMetaObject::trUtf8(char const *, char const *) const + ?isFinal@QMetaProperty@@QBE_NXZ @ 1249 NONAME ; bool QMetaProperty::isFinal(void) const + ?columnsAboutToBeRemoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 1250 NONAME ; void QAbstractItemModel::columnsAboutToBeRemoved(class QModelIndex const &, int, int) + ?toAce@QUrl@@SA?AVQByteArray@@ABVQString@@@Z @ 1251 NONAME ; class QByteArray QUrl::toAce(class QString const &) + ??0QProcessEnvironment@@QAE@XZ @ 1252 NONAME ; QProcessEnvironment::QProcessEnvironment(void) + ??5@YAAAVQDataStream@@AAV0@AAVQDateTime@@@Z @ 1253 NONAME ; class QDataStream & operator>>(class QDataStream &, class QDateTime &) + ?rootPath@QDir@@SA?AVQString@@XZ @ 1254 NONAME ; class QString QDir::rootPath(void) + ?qt_metacast@QAnimationGroup@@UAEPAXPBD@Z @ 1255 NONAME ; void * QAnimationGroup::qt_metacast(char const *) + ?at@QString@@QBE?BVQChar@@H@Z @ 1256 NONAME ; class QChar const QString::at(int) const + ?loopCount@QAbstractAnimation@@QBEHXZ @ 1257 NONAME ; int QAbstractAnimation::loopCount(void) const + ?toRect@QVariant@@QBE?AVQRect@@XZ @ 1258 NONAME ; class QRect QVariant::toRect(void) const + ?rowsAboutToBeMoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH0H@Z @ 1259 NONAME ; void QAbstractItemModel::rowsAboutToBeMoved(class QModelIndex const &, int, int, class QModelIndex const &, int) + ?setBottomRight@QRectF@@QAEXABVQPointF@@@Z @ 1260 NONAME ; void QRectF::setBottomRight(class QPointF const &) + ?moveTo@QRect@@QAEXABVQPoint@@@Z @ 1261 NONAME ; void QRect::moveTo(class QPoint const &) + ??1QAbstractTableModel@@UAE@XZ @ 1262 NONAME ; QAbstractTableModel::~QAbstractTableModel(void) + ??4QProcessEnvironment@@QAEAAV0@ABV0@@Z @ 1263 NONAME ; class QProcessEnvironment & QProcessEnvironment::operator=(class QProcessEnvironment const &) + ??0QSizeF@@QAE@MM@Z @ 1264 NONAME ; QSizeF::QSizeF(float, float) + ??6QTextStream@@QAEAAV0@K@Z @ 1265 NONAME ; class QTextStream & QTextStream::operator<<(unsigned long) + ?trUtf8@QFinalState@@SA?AVQString@@PBD0@Z @ 1266 NONAME ; class QString QFinalState::trUtf8(char const *, char const *) + ?licensee@QLibraryInfo@@SA?AVQString@@XZ @ 1267 NONAME ; class QString QLibraryInfo::licensee(void) + ?toLocalFile@QUrl@@QBE?AVQString@@XZ @ 1268 NONAME ; class QString QUrl::toLocalFile(void) const + ??_0QSizeF@@QAEAAV0@M@Z @ 1269 NONAME ; class QSizeF & QSizeF::operator/=(float) + ?trUtf8@QVariantAnimation@@SA?AVQString@@PBD0@Z @ 1270 NONAME ; class QString QVariantAnimation::trUtf8(char const *, char const *) + ?toULongLong@QString@@QBE_KPA_NH@Z @ 1271 NONAME ; unsigned long long QString::toULongLong(bool *, int) const + ?topRight@QRect@@QBE?AVQPoint@@XZ @ 1272 NONAME ; class QPoint QRect::topRight(void) const + ?uppercasedigits@@YAAAVQTextStream@@AAV1@@Z @ 1273 NONAME ; class QTextStream & uppercasedigits(class QTextStream &) + ?toString@QLocale@@QBE?AVQString@@ABVQDate@@W4FormatType@1@@Z @ 1274 NONAME ; class QString QLocale::toString(class QDate const &, enum QLocale::FormatType) const + ?setTopRight@QRectF@@QAEXABVQPointF@@@Z @ 1275 NONAME ; void QRectF::setTopRight(class QPointF const &) + ?setEndValue@QVariantAnimation@@QAEXABVQVariant@@@Z @ 1276 NONAME ; void QVariantAnimation::setEndValue(class QVariant const &) + ??0QTranslator@@QAE@PAVQObject@@@Z @ 1277 NONAME ; QTranslator::QTranslator(class QObject *) + ??4QString@@QAEAAV0@ABVQLatin1String@@@Z @ 1278 NONAME ; class QString & QString::operator=(class QLatin1String const &) + ??4QDebug@@QAEAAV0@ABV0@@Z @ 1279 NONAME ; class QDebug & QDebug::operator=(class QDebug const &) + ?atEnd@QIODevice@@UBE_NXZ @ 1280 NONAME ; bool QIODevice::atEnd(void) const + ?tr@QSocketNotifier@@SA?AVQString@@PBD0H@Z @ 1281 NONAME ; class QString QSocketNotifier::tr(char const *, char const *, int) + ?readLine@QIODevice@@QAE_JPAD_J@Z @ 1282 NONAME ; long long QIODevice::readLine(char *, long long) + ?tr@QThreadPool@@SA?AVQString@@PBD0H@Z @ 1283 NONAME ; class QString QThreadPool::tr(char const *, char const *, int) + ?tr@QProcess@@SA?AVQString@@PBD0@Z @ 1284 NONAME ; class QString QProcess::tr(char const *, char const *) + ??_EQThread@@UAE@I@Z @ 1285 NONAME ; QThread::~QThread(unsigned int) + ?device@QXmlStreamWriter@@QBEPAVQIODevice@@XZ @ 1286 NONAME ; class QIODevice * QXmlStreamWriter::device(void) const + ??0QByteArray@@QAE@PBDH@Z @ 1287 NONAME ; QByteArray::QByteArray(char const *, int) + ?qt_call_post_routines@@YAXXZ @ 1288 NONAME ; void qt_call_post_routines(void) + ?moveTo@QRectF@@QAEXABVQPointF@@@Z @ 1289 NONAME ; void QRectF::moveTo(class QPointF const &) + ?entryInfo@QAbstractFileEngineIterator@@MBE?AVQVariant@@W4EntryInfoType@1@@Z @ 1290 NONAME ; class QVariant QAbstractFileEngineIterator::entryInfo(enum QAbstractFileEngineIterator::EntryInfoType) const + ?moveRight@QRect@@QAEXH@Z @ 1291 NONAME ; void QRect::moveRight(int) + ?toLower@QString@@QBE?AV1@XZ @ 1292 NONAME ; class QString QString::toLower(void) const + ?disconnect@QObject@@SA_NPBV1@PBD01@Z @ 1293 NONAME ; bool QObject::disconnect(class QObject const *, char const *, class QObject const *, char const *) + ?hour@QTime@@QBEHXZ @ 1294 NONAME ; int QTime::hour(void) const + ?qt_metacast@QCoreApplication@@UAEPAXPBD@Z @ 1295 NONAME ; void * QCoreApplication::qt_metacast(char const *) + ??0QRectF@@QAE@XZ @ 1296 NONAME ; QRectF::QRectF(void) + ?getStaticMetaObject@QTimeLine@@SAABUQMetaObject@@XZ @ 1297 NONAME ; struct QMetaObject const & QTimeLine::getStaticMetaObject(void) + ?reactivateSocketNotifier@QEventDispatcherSymbian@@QAEXPAVQSocketNotifier@@@Z @ 1298 NONAME ; void QEventDispatcherSymbian::reactivateSocketNotifier(class QSocketNotifier *) + ?permissions@QFile@@SA?AV?$QFlags@W4Permission@QFile@@@@ABVQString@@@Z @ 1299 NONAME ; class QFlags QFile::permissions(class QString const &) + ?metaObject@QAbstractListModel@@UBEPBUQMetaObject@@XZ @ 1300 NONAME ; struct QMetaObject const * QAbstractListModel::metaObject(void) const + ?qMalloc@@YAPAXI@Z @ 1301 NONAME ; void * qMalloc(unsigned int) + ??0QVariant@@QAE@ABVQUrl@@@Z @ 1302 NONAME ; QVariant::QVariant(class QUrl const &) + ?isEnabled@QSocketNotifier@@QBE_NXZ @ 1303 NONAME ; bool QSocketNotifier::isEnabled(void) const + ?refresh@QFileInfo@@QAEXXZ @ 1304 NONAME ; void QFileInfo::refresh(void) + ?setCurrentPath@QFSFileEngine@@SA_NABVQString@@@Z @ 1305 NONAME ; bool QFSFileEngine::setCurrentPath(class QString const &) + ?moveBottom@QRectF@@QAEXM@Z @ 1306 NONAME ; void QRectF::moveBottom(float) + ?QBasicAtomicInt_testAndSetOrdered@@YA_NPCHHH@Z @ 1307 NONAME ; bool QBasicAtomicInt_testAndSetOrdered(int volatile *, int, int) + ??4QDir@@QAEAAV0@ABVQString@@@Z @ 1308 NONAME ; class QDir & QDir::operator=(class QString const &) + ?setNum@QString@@QAEAAV1@KH@Z @ 1309 NONAME ; class QString & QString::setNum(unsigned long, int) + ?startingUp@QEventDispatcherSymbian@@UAEXXZ @ 1310 NONAME ; void QEventDispatcherSymbian::startingUp(void) + ?replace@QByteArray@@QAEAAV1@DD@Z @ 1311 NONAME ; class QByteArray & QByteArray::replace(char, char) + ?isTranslatorInstalled@QCoreApplicationPrivate@@SA_NPAVQTranslator@@@Z @ 1312 NONAME ; bool QCoreApplicationPrivate::isTranslatorInstalled(class QTranslator *) + ?toTime@QLocale@@QBE?AVQTime@@ABVQString@@0@Z @ 1313 NONAME ; class QTime QLocale::toTime(class QString const &, class QString const &) const + ?readyRead@QNonContiguousByteDevice@@IAEXXZ @ 1314 NONAME ; void QNonContiguousByteDevice::readyRead(void) + ?availableMibs@QTextCodec@@SA?AV?$QList@H@@XZ @ 1315 NONAME ; class QList QTextCodec::availableMibs(void) + ?toUnicode@QTextCodec@@QBE?AVQString@@PBDHPAUConverterState@1@@Z @ 1316 NONAME ; class QString QTextCodec::toUnicode(char const *, int, struct QTextCodec::ConverterState *) const + ?start@QProcess@@QAEXABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1317 NONAME ; void QProcess::start(class QString const &, class QFlags) + ?newInstance@QMetaObject@@QBEPAVQObject@@VQGenericArgument@@000000000@Z @ 1318 NONAME ; class QObject * QMetaObject::newInstance(class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) const + ?sendPostedEvents@QCoreApplication@@SAXPAVQObject@@H@Z @ 1319 NONAME ; void QCoreApplication::sendPostedEvents(class QObject *, int) + ??1QTimerEvent@@UAE@XZ @ 1320 NONAME ; QTimerEvent::~QTimerEvent(void) + ?unicode@QCharRef@@QBEGXZ @ 1321 NONAME ; unsigned short QCharRef::unicode(void) const + ?qt_metacast@QAbstractTransition@@UAEPAXPBD@Z @ 1322 NONAME ; void * QAbstractTransition::qt_metacast(char const *) + ??1QHistoryState@@UAE@XZ @ 1323 NONAME ; QHistoryState::~QHistoryState(void) + ?isAbsolute@QDir@@QBE_NXZ @ 1324 NONAME ; bool QDir::isAbsolute(void) const + ?headerDataChanged@QAbstractItemModel@@IAEXW4Orientation@Qt@@HH@Z @ 1325 NONAME ; void QAbstractItemModel::headerDataChanged(enum Qt::Orientation, int, int) + ?toDouble@QString@@QBENPA_N@Z @ 1326 NONAME ; double QString::toDouble(bool *) const + ?staticMetaObject@QIODevice@@2UQMetaObject@@B @ 1327 NONAME ; struct QMetaObject const QIODevice::staticMetaObject + ?readLink@QFile@@QBE?AVQString@@XZ @ 1328 NONAME ; class QString QFile::readLink(void) const + ?isRunning@QEventLoop@@QBE_NXZ @ 1329 NONAME ; bool QEventLoop::isRunning(void) const + ??MQLatin1String@@QBE_NPBD@Z @ 1330 NONAME ; bool QLatin1String::operator<(char const *) const + ?keysToValue@QMetaEnum@@QBEHPBD@Z @ 1331 NONAME ; int QMetaEnum::keysToValue(char const *) const + ?getStaticMetaObject@QLocale@@SAABUQMetaObject@@XZ @ 1332 NONAME ; struct QMetaObject const & QLocale::getStaticMetaObject(void) + ?machine@QAbstractState@@QBEPAVQStateMachine@@XZ @ 1333 NONAME ; class QStateMachine * QAbstractState::machine(void) const + ?qt_register_signal_spy_callbacks@@YAXABUQSignalSpyCallbackSet@@@Z @ 1334 NONAME ; void qt_register_signal_spy_callbacks(struct QSignalSpyCallbackSet const &) + ?isCombiningChar@QXmlUtils@@CA_NVQChar@@@Z @ 1335 NONAME ; bool QXmlUtils::isCombiningChar(class QChar) + ?getStaticMetaObject@QEvent@@SAABUQMetaObject@@XZ @ 1336 NONAME ; struct QMetaObject const & QEvent::getStaticMetaObject(void) + ?updateCurrentTime@QVariantAnimation@@MAEXH@Z @ 1337 NONAME ; void QVariantAnimation::updateCurrentTime(int) + ?endsWith@QByteArray@@QBE_ND@Z @ 1338 NONAME ; bool QByteArray::endsWith(char) const + ?indexOf@QString@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 1339 NONAME ; int QString::indexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?staticMetaObject@QSignalMapper@@2UQMetaObject@@B @ 1340 NONAME ; struct QMetaObject const QSignalMapper::staticMetaObject + ??5@YAAAVQDataStream@@AAV0@AAVQVariant@@@Z @ 1341 NONAME ; class QDataStream & operator>>(class QDataStream &, class QVariant &) + ?d_func@QEventDispatcherSymbian@@ABEPBVQAbstractEventDispatcherPrivate@@XZ @ 1342 NONAME ; class QAbstractEventDispatcherPrivate const * QEventDispatcherSymbian::d_func(void) const + ?frameChanged@QTimeLine@@IAEXH@Z @ 1343 NONAME ; void QTimeLine::frameChanged(int) + ?trUtf8@QEventLoop@@SA?AVQString@@PBD0@Z @ 1344 NONAME ; class QString QEventLoop::trUtf8(char const *, char const *) + ??OQString@@QBE_NABVQByteArray@@@Z @ 1345 NONAME ; bool QString::operator>(class QByteArray const &) const + ?trUtf8@QLibrary@@SA?AVQString@@PBD0H@Z @ 1346 NONAME ; class QString QLibrary::trUtf8(char const *, char const *, int) + ?size@QStringRef@@QBEHXZ @ 1347 NONAME ; int QStringRef::size(void) const + ??0QVariantAnimation@@IAE@AAVQVariantAnimationPrivate@@PAVQObject@@@Z @ 1348 NONAME ; QVariantAnimation::QVariantAnimation(class QVariantAnimationPrivate &, class QObject *) + ?exitCode@QProcess@@QBEHXZ @ 1349 NONAME ; int QProcess::exitCode(void) const + ?percent@QLocalePrivate@@QBE?AVQChar@@XZ @ 1350 NONAME ; class QChar QLocalePrivate::percent(void) const + ??1QAbstractFileEngineHandler@@UAE@XZ @ 1351 NONAME ; QAbstractFileEngineHandler::~QAbstractFileEngineHandler(void) + ?qt_metacall@QIODevice@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1352 NONAME ; int QIODevice::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QDebug@@QAE@XZ @ 1353 NONAME ; QDebug::~QDebug(void) + ??9QEasingCurve@@QBE_NABV0@@Z @ 1354 NONAME ; bool QEasingCurve::operator!=(class QEasingCurve const &) const + ?tryStart@QThreadPool@@QAE_NPAVQRunnable@@@Z @ 1355 NONAME ; bool QThreadPool::tryStart(class QRunnable *) + ?setFile@QFileInfo@@QAEXABVQDir@@ABVQString@@@Z @ 1356 NONAME ; void QFileInfo::setFile(class QDir const &, class QString const &) + ??8QEasingCurve@@QBE_NABV0@@Z @ 1357 NONAME ; bool QEasingCurve::operator==(class QEasingCurve const &) const + ?isCompound@QStateMachinePrivate@@QBE_NPBVQAbstractState@@@Z @ 1358 NONAME ; bool QStateMachinePrivate::isCompound(class QAbstractState const *) const + ?attributes@QMetaMethod@@QBEHXZ @ 1359 NONAME ; int QMetaMethod::attributes(void) const + ??_EQTimer@@UAE@I@Z @ 1360 NONAME ; QTimer::~QTimer(unsigned int) + ?unregisterCallback@QInternal@@SA_NW4Callback@1@P6A_NPAPAX@Z@Z @ 1361 NONAME ; bool QInternal::unregisterCallback(enum QInternal::Callback, bool (*)(void * *)) + ?tr@QAbstractState@@SA?AVQString@@PBD0H@Z @ 1362 NONAME ; class QString QAbstractState::tr(char const *, char const *, int) + ?microstep@QStateMachinePrivate@@QAEXPAVQEvent@@ABV?$QList@PAVQAbstractTransition@@@@@Z @ 1363 NONAME ; void QStateMachinePrivate::microstep(class QEvent *, class QList const &) + ?tryLock@QMutex@@QAE_NH@Z @ 1364 NONAME ; bool QMutex::tryLock(int) + ?height@QRect@@QBEHXZ @ 1365 NONAME ; int QRect::height(void) const + ?top@QRectF@@QBEMXZ @ 1366 NONAME ; float QRectF::top(void) const + ??_ECQtActiveScheduler@@UAE@I@Z @ 1367 NONAME ; CQtActiveScheduler::~CQtActiveScheduler(unsigned int) + ??0QRect@@QAE@ABVQPoint@@0@Z @ 1368 NONAME ; QRect::QRect(class QPoint const &, class QPoint const &) + ?getStaticMetaObject@QParallelAnimationGroup@@SAABUQMetaObject@@XZ @ 1369 NONAME ; struct QMetaObject const & QParallelAnimationGroup::getStaticMetaObject(void) + ?arg@QString@@QBE?AV1@ABV1@0000@Z @ 1370 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) const + ??1QSystemSemaphore@@QAE@XZ @ 1371 NONAME ; QSystemSemaphore::~QSystemSemaphore(void) + ?canReadLine@QProcess@@UBE_NXZ @ 1372 NONAME ; bool QProcess::canReadLine(void) const + ?compare_helper@QString@@CAHPBVQChar@@H0HW4CaseSensitivity@Qt@@@Z @ 1373 NONAME ; int QString::compare_helper(class QChar const *, int, class QChar const *, int, enum Qt::CaseSensitivity) + ??1QByteArray@@QAE@XZ @ 1374 NONAME ; QByteArray::~QByteArray(void) + ?rename@QFSFileEngine@@UAE_NABVQString@@@Z @ 1375 NONAME ; bool QFSFileEngine::rename(class QString const &) + ?translated@QRect@@QBE?AV1@HH@Z @ 1376 NONAME ; class QRect QRect::translated(int, int) const + ?filter@QDir@@QBE?AV?$QFlags@W4Filter@QDir@@@@XZ @ 1377 NONAME ; class QFlags QDir::filter(void) const + ?position@QXmlStreamStringRef@@QBEHXZ @ 1378 NONAME ; int QXmlStreamStringRef::position(void) const + ?prepend@QByteArray@@QAEAAV1@PBDH@Z @ 1379 NONAME ; class QByteArray & QByteArray::prepend(char const *, int) + ?quit@QThread@@QAEXXZ @ 1380 NONAME ; void QThread::quit(void) + ?isPunct@QCharRef@@QBE_NXZ @ 1381 NONAME ; bool QCharRef::isPunct(void) const + ?execute@QProcess@@SAHABVQString@@ABVQStringList@@@Z @ 1382 NONAME ; int QProcess::execute(class QString const &, class QStringList const &) + ?queryPairDelimiter@QUrl@@QBEDXZ @ 1383 NONAME ; char QUrl::queryPairDelimiter(void) const + ?createIndex@QAbstractItemModel@@IBE?AVQModelIndex@@HHI@Z @ 1384 NONAME ; class QModelIndex QAbstractItemModel::createIndex(int, int, unsigned int) const + ?dirName@QDir@@QBE?AVQString@@XZ @ 1385 NONAME ; class QString QDir::dirName(void) const + ?setStackSize@QThread@@QAEXI@Z @ 1386 NONAME ; void QThread::setStackSize(unsigned int) + ?ownerId@QFSFileEngine@@UBEIW4FileOwner@QAbstractFileEngine@@@Z @ 1387 NONAME ; unsigned int QFSFileEngine::ownerId(enum QAbstractFileEngine::FileOwner) const + ?isWhitespace@QXmlStreamReader@@QBE_NXZ @ 1388 NONAME ; bool QXmlStreamReader::isWhitespace(void) const + ?onEntry@QState@@MAEXPAVQEvent@@@Z @ 1389 NONAME ; void QState::onEntry(class QEvent *) + ?mirroredChar@QChar@@SAII@Z @ 1390 NONAME ; unsigned int QChar::mirroredChar(unsigned int) + ?fromLocalFile@QUrl@@SA?AV1@ABVQString@@@Z @ 1391 NONAME ; class QUrl QUrl::fromLocalFile(class QString const &) + ?metaObject@QTimeLine@@UBEPBUQMetaObject@@XZ @ 1392 NONAME ; struct QMetaObject const * QTimeLine::metaObject(void) const + ?toTimeSpec@QDateTime@@QBE?AV1@W4TimeSpec@Qt@@@Z @ 1393 NONAME ; class QDateTime QDateTime::toTimeSpec(enum Qt::TimeSpec) const + ?column@QPersistentModelIndex@@QBEHXZ @ 1394 NONAME ; int QPersistentModelIndex::column(void) const + ?duration@QVariantAnimation@@UBEHXZ @ 1395 NONAME ; int QVariantAnimation::duration(void) const + ?qt_resolveS60PluginFunc@@YAP6AHXZH@Z @ 1396 NONAME ; int (*)(void) qt_resolveS60PluginFunc(int) + ?resolved@QUrl@@QBE?AV1@ABV1@@Z @ 1397 NONAME ; class QUrl QUrl::resolved(class QUrl const &) const + ?get@QThreadStorageData@@QBEPAPAXXZ @ 1398 NONAME ; void * * QThreadStorageData::get(void) const + ?getStaticMetaObject@QMimeData@@SAABUQMetaObject@@XZ @ 1399 NONAME ; struct QMetaObject const & QMimeData::getStaticMetaObject(void) + ?translate@QRect@@QAEXHH@Z @ 1400 NONAME ; void QRect::translate(int, int) + ?isRelative@QUrl@@QBE_NXZ @ 1401 NONAME ; bool QUrl::isRelative(void) const + ?dy@QLine@@QBEHXZ @ 1402 NONAME ; int QLine::dy(void) const + ?open@QAbstractFileEngine@@UAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1403 NONAME ; bool QAbstractFileEngine::open(class QFlags) + ?contains@QRect@@QBE_NABVQPoint@@_N@Z @ 1404 NONAME ; bool QRect::contains(class QPoint const &, bool) const + ?pos@QBuffer@@UBE_JXZ @ 1405 NONAME ; long long QBuffer::pos(void) const + ?bottomRight@QRectF@@QBE?AVQPointF@@XZ @ 1406 NONAME ; class QPointF QRectF::bottomRight(void) const + ??_EQDirIterator@@UAE@I@Z @ 1407 NONAME ; QDirIterator::~QDirIterator(unsigned int) + ?trUtf8@QFactoryLoader@@SA?AVQString@@PBD0H@Z @ 1408 NONAME ; class QString QFactoryLoader::trUtf8(char const *, char const *, int) + ?qt_s60GetRFs@@YAAAVRFs@@XZ @ 1409 NONAME ; class RFs & qt_s60GetRFs(void) + ?setWidth@QSizeF@@QAEXM@Z @ 1410 NONAME ; void QSizeF::setWidth(float) + ?count@QString@@QBEHVQChar@@W4CaseSensitivity@Qt@@@Z @ 1411 NONAME ; int QString::count(class QChar, enum Qt::CaseSensitivity) const + ?cleanPath@QDir@@SA?AVQString@@ABV2@@Z @ 1412 NONAME ; class QString QDir::cleanPath(class QString const &) + ?metaObject@QSignalTransition@@UBEPBUQMetaObject@@XZ @ 1413 NONAME ; struct QMetaObject const * QSignalTransition::metaObject(void) const + ??BQFlag@@QBEHXZ @ 1414 NONAME ; QFlag::operator int(void) const + ?indexOfClassInfo@QMetaObject@@QBEHPBD@Z @ 1415 NONAME ; int QMetaObject::indexOfClassInfo(char const *) const + ?sender@QMetaCallEvent@@QBEPBVQObject@@XZ @ 1416 NONAME ; class QObject const * QMetaCallEvent::sender(void) const + ??0QPointF@@QAE@ABVQPoint@@@Z @ 1417 NONAME ; QPointF::QPointF(class QPoint const &) + ?beginEntryList@QAbstractFileEngine@@UAEPAVQAbstractFileEngineIterator@@V?$QFlags@W4Filter@QDir@@@@ABVQStringList@@@Z @ 1418 NONAME ; class QAbstractFileEngineIterator * QAbstractFileEngine::beginEntryList(class QFlags, class QStringList const &) + ??6QDataStream@@QAEAAV0@G@Z @ 1419 NONAME ; class QDataStream & QDataStream::operator<<(unsigned short) + ?toDouble@QByteArray@@QBENPA_N@Z @ 1420 NONAME ; double QByteArray::toDouble(bool *) const + ?setSenderObject@QSignalTransition@@QAEXPAVQObject@@@Z @ 1421 NONAME ; void QSignalTransition::setSenderObject(class QObject *) + ?fileName@QFile@@QBE?AVQString@@XZ @ 1422 NONAME ; class QString QFile::fileName(void) const + ?tr@QMetaObject@@QBE?AVQString@@PBD0H@Z @ 1423 NONAME ; class QString QMetaObject::tr(char const *, char const *, int) const + ?toChar@QVariant@@QBE?AVQChar@@XZ @ 1424 NONAME ; class QChar QVariant::toChar(void) const + ?isStored@QMetaProperty@@QBE_NPBVQObject@@@Z @ 1425 NONAME ; bool QMetaProperty::isStored(class QObject const *) const + ?pause@QAbstractAnimation@@QAEXXZ @ 1426 NONAME ; void QAbstractAnimation::pause(void) + ?error@QProcess@@QBE?AW4ProcessError@1@XZ @ 1427 NONAME ; enum QProcess::ProcessError QProcess::error(void) const + ?registerStreamOperators@QMetaType@@SAXPBDP6AXAAVQDataStream@@PBX@ZP6AX1PAX@Z@Z @ 1428 NONAME ; void QMetaType::registerStreamOperators(char const *, void (*)(class QDataStream &, void const *), void (*)(class QDataStream &, void *)) + ?trUtf8@QSequentialAnimationGroup@@SA?AVQString@@PBD0@Z @ 1429 NONAME ; class QString QSequentialAnimationGroup::trUtf8(char const *, char const *) + ?args@QMetaCallEvent@@QBEPAPAXXZ @ 1430 NONAME ; void * * QMetaCallEvent::args(void) const + ?fieldWidth@QTextStream@@QBEHXZ @ 1431 NONAME ; int QTextStream::fieldWidth(void) const + ?addPause@QSequentialAnimationGroup@@QAEPAVQPauseAnimation@@H@Z @ 1432 NONAME ; class QPauseAnimation * QSequentialAnimationGroup::addPause(int) + ?senderList@QObjectPrivate@@QBE?AV?$QList@PAVQObject@@@@XZ @ 1433 NONAME ; class QList QObjectPrivate::senderList(void) const + ??4QStringRef@@QAEAAV0@ABV0@@Z @ 1434 NONAME ; class QStringRef & QStringRef::operator=(class QStringRef const &) + ?qt_metacast@QSettings@@UAEPAXPBD@Z @ 1435 NONAME ; void * QSettings::qt_metacast(char const *) + ?animationAt@QAnimationGroup@@QBEPAVQAbstractAnimation@@H@Z @ 1436 NONAME ; class QAbstractAnimation * QAnimationGroup::animationAt(int) const + ?metaObject@QNonContiguousByteDevice@@UBEPBUQMetaObject@@XZ @ 1437 NONAME ; struct QMetaObject const * QNonContiguousByteDevice::metaObject(void) const + ?childGroups@QSettings@@QBE?AVQStringList@@XZ @ 1438 NONAME ; class QStringList QSettings::childGroups(void) const + ?handle@QFile@@QBEHXZ @ 1439 NONAME ; int QFile::handle(void) const + ??6@YAAAVQDataStream@@AAV0@ABUQUuid@@@Z @ 1440 NONAME ; class QDataStream & operator<<(class QDataStream &, struct QUuid const &) + ??0QXmlStreamStringRef@@QAE@ABVQString@@@Z @ 1441 NONAME ; QXmlStreamStringRef::QXmlStreamStringRef(class QString const &) + ?setDirection@QAbstractAnimation@@QAEXW4Direction@1@@Z @ 1442 NONAME ; void QAbstractAnimation::setDirection(enum QAbstractAnimation::Direction) + ??9QLineF@@QBE_NABV0@@Z @ 1443 NONAME ; bool QLineF::operator!=(class QLineF const &) const + ?x2@QLineF@@QBEMXZ @ 1444 NONAME ; float QLineF::x2(void) const + ?atEnd@QProcess@@UBE_NXZ @ 1445 NONAME ; bool QProcess::atEnd(void) const + ??6QTextStream@@QAEAAV0@D@Z @ 1446 NONAME ; class QTextStream & QTextStream::operator<<(char) + ?beginRemoveColumns@QAbstractItemModel@@IAEXABVQModelIndex@@HH@Z @ 1447 NONAME ; void QAbstractItemModel::beginRemoveColumns(class QModelIndex const &, int, int) + ??0QTextStreamManipulator@@QAE@P8QTextStream@@AEXVQChar@@@Z0@Z @ 1448 NONAME ; QTextStreamManipulator::QTextStreamManipulator(void (*)(class QChar), class QChar) + ??6QDebug@@QAEAAV0@PBX@Z @ 1449 NONAME ; class QDebug & QDebug::operator<<(void const *) + ?d_func@QXmlStreamWriter@@AAEPAVQXmlStreamWriterPrivate@@XZ @ 1450 NONAME ; class QXmlStreamWriterPrivate * QXmlStreamWriter::d_func(void) + ?animationsEnabled@QStateMachine@@QBE_NXZ @ 1451 NONAME ; bool QStateMachine::animationsEnabled(void) const + ?scale@QSize@@QAEXHHW4AspectRatioMode@Qt@@@Z @ 1452 NONAME ; void QSize::scale(int, int, enum Qt::AspectRatioMode) + ?fileFlags@QFSFileEngine@@UBE?AV?$QFlags@W4FileFlag@QAbstractFileEngine@@@@V2@@Z @ 1453 NONAME ; class QFlags QFSFileEngine::fileFlags(class QFlags) const + ??1QReadLocker@@QAE@XZ @ 1454 NONAME ; QReadLocker::~QReadLocker(void) + ?qstrcpy@@YAPADPADPBD@Z @ 1455 NONAME ; char * qstrcpy(char *, char const *) + ??4QFileInfo@@QAEAAV0@ABV0@@Z @ 1456 NONAME ; class QFileInfo & QFileInfo::operator=(class QFileInfo const &) + ?writeNamespace@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 1457 NONAME ; void QXmlStreamWriter::writeNamespace(class QString const &, class QString const &) + ?startsWith@QString@@QBE_NABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 1458 NONAME ; bool QString::startsWith(class QLatin1String const &, enum Qt::CaseSensitivity) const + ?d_func@QMimeData@@ABEPBVQMimeDataPrivate@@XZ @ 1459 NONAME ; class QMimeDataPrivate const * QMimeData::d_func(void) const + ?setUpdateInterval@QTimeLine@@QAEXH@Z @ 1460 NONAME ; void QTimeLine::setUpdateInterval(int) + ?toLineF@QVariant@@QBE?AVQLineF@@XZ @ 1461 NONAME ; class QLineF QVariant::toLineF(void) const + ?replace@QString@@QAEAAV1@ABV1@0W4CaseSensitivity@Qt@@@Z @ 1462 NONAME ; class QString & QString::replace(class QString const &, class QString const &, enum Qt::CaseSensitivity) + ?indexValid@QAbstractItemModelPrivate@@QBE_NABVQModelIndex@@@Z @ 1463 NONAME ; bool QAbstractItemModelPrivate::indexValid(class QModelIndex const &) const + ?getStaticMetaObject@QPropertyAnimation@@SAABUQMetaObject@@XZ @ 1464 NONAME ; struct QMetaObject const & QPropertyAnimation::getStaticMetaObject(void) + ?receiverList@QObjectPrivate@@QBE?AV?$QList@PAVQObject@@@@PBD@Z @ 1465 NONAME ; class QList QObjectPrivate::receiverList(char const *) const + ?truncate@QByteArray@@QAEXH@Z @ 1466 NONAME ; void QByteArray::truncate(int) + ?processChannelMode@QProcess@@QBE?AW4ProcessChannelMode@1@XZ @ 1467 NONAME ; enum QProcess::ProcessChannelMode QProcess::processChannelMode(void) const + ?beginRemoveRows@QAbstractItemModel@@IAEXABVQModelIndex@@HH@Z @ 1468 NONAME ; void QAbstractItemModel::beginRemoveRows(class QModelIndex const &, int, int) + ?emitTriggered@QAbstractTransitionPrivate@@QAEXXZ @ 1469 NONAME ; void QAbstractTransitionPrivate::emitTriggered(void) + ?amplitude@QEasingCurve@@QBEMXZ @ 1470 NONAME ; float QEasingCurve::amplitude(void) const + ??4QChar@@QAEAAV0@ABV0@@Z @ 1471 NONAME ; class QChar & QChar::operator=(class QChar const &) + ?setBottomLeft@QRectF@@QAEXABVQPointF@@@Z @ 1472 NONAME ; void QRectF::setBottomLeft(class QPointF const &) + ?create@QNonContiguousByteDeviceFactory@@SAPAVQNonContiguousByteDevice@@PAVQRingBuffer@@@Z @ 1473 NONAME ; class QNonContiguousByteDevice * QNonContiguousByteDeviceFactory::create(class QRingBuffer *) + ?codecForName@QTextCodec@@SAPAV1@ABVQByteArray@@@Z @ 1474 NONAME ; class QTextCodec * QTextCodec::codecForName(class QByteArray const &) + ?qt_qFindChildren_helper@@YAXPBVQObject@@ABVQString@@PBVQRegExp@@ABUQMetaObject@@PAV?$QList@PAX@@@Z @ 1475 NONAME ; void qt_qFindChildren_helper(class QObject const *, class QString const &, class QRegExp const *, struct QMetaObject const &, class QList *) + ??0QDir@@QAE@ABV0@@Z @ 1476 NONAME ; QDir::QDir(class QDir const &) + ?arg@QString@@QBE?AV1@FHHABVQChar@@@Z @ 1477 NONAME ; class QString QString::arg(short, int, int, class QChar const &) const + ?translate@QTranslator@@QBE?AVQString@@PBD00H@Z @ 1478 NONAME ; class QString QTranslator::translate(char const *, char const *, char const *, int) const + ?transpose@QSizeF@@QAEXXZ @ 1479 NONAME ; void QSizeF::transpose(void) + ??0QXmlStreamWriter@@QAE@PAVQIODevice@@@Z @ 1480 NONAME ; QXmlStreamWriter::QXmlStreamWriter(class QIODevice *) + ?beginInsertColumns@QAbstractItemModel@@IAEXABVQModelIndex@@HH@Z @ 1481 NONAME ; void QAbstractItemModel::beginInsertColumns(class QModelIndex const &, int, int) + ?qt_metacast@QHistoryState@@UAEPAXPBD@Z @ 1482 NONAME ; void * QHistoryState::qt_metacast(char const *) + ?writeStartDocument@QXmlStreamWriter@@QAEXABVQString@@@Z @ 1483 NONAME ; void QXmlStreamWriter::writeStartDocument(class QString const &) + ?trUtf8@QAbstractTransition@@SA?AVQString@@PBD0@Z @ 1484 NONAME ; class QString QAbstractTransition::trUtf8(char const *, char const *) + ??0QThread@@IAE@AAVQThreadPrivate@@PAVQObject@@@Z @ 1485 NONAME ; QThread::QThread(class QThreadPrivate &, class QObject *) + ??0QDebug@@QAE@PAVQIODevice@@@Z @ 1486 NONAME ; QDebug::QDebug(class QIODevice *) + ?detach@QSharedMemory@@QAE_NXZ @ 1487 NONAME ; bool QSharedMemory::detach(void) + ?unicode@QCharRef@@QAEAAGXZ @ 1488 NONAME ; unsigned short & QCharRef::unicode(void) + ?qstrcmp@@YAHPBD0@Z @ 1489 NONAME ; int qstrcmp(char const *, char const *) + ?qt_metacall@QObjectCleanupHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1490 NONAME ; int QObjectCleanupHandler::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@QFSFileEngine@@AAEPAVQFSFileEnginePrivate@@XZ @ 1491 NONAME ; class QFSFileEnginePrivate * QFSFileEngine::d_func(void) + ?typeName@QMetaProperty@@QBEPBDXZ @ 1492 NONAME ; char const * QMetaProperty::typeName(void) const + ?count@QBitArray@@QBEHXZ @ 1493 NONAME ; int QBitArray::count(void) const + ?replace@QString@@QAEAAV1@HHVQChar@@@Z @ 1494 NONAME ; class QString & QString::replace(int, int, class QChar) + ?imageData@QMimeData@@QBE?AVQVariant@@XZ @ 1495 NONAME ; class QVariant QMimeData::imageData(void) const + ?digitValue@QChar@@QBEHXZ @ 1496 NONAME ; int QChar::digitValue(void) const + ?trUtf8@QTranslator@@SA?AVQString@@PBD0@Z @ 1497 NONAME ; class QString QTranslator::trUtf8(char const *, char const *) + ?append@QByteArray@@QAEAAV1@PBD@Z @ 1498 NONAME ; class QByteArray & QByteArray::append(char const *) + ?readAll@QIODevice@@QAE?AVQByteArray@@XZ @ 1499 NONAME ; class QByteArray QIODevice::readAll(void) + ??1QXmlStreamReader@@QAE@XZ @ 1500 NONAME ; QXmlStreamReader::~QXmlStreamReader(void) + ??1QFactoryLoader@@UAE@XZ @ 1501 NONAME ; QFactoryLoader::~QFactoryLoader(void) + ?isNull@QCharRef@@QBE_NXZ @ 1502 NONAME ; bool QCharRef::isNull(void) const + ?toSizeF@QVariant@@QBE?AVQSizeF@@XZ @ 1503 NONAME ; class QSizeF QVariant::toSizeF(void) const + ?isRelativePath@QDir@@SA_NABVQString@@@Z @ 1504 NONAME ; bool QDir::isRelativePath(class QString const &) + ?closingDown@QEventDispatcherSymbian@@UAEXXZ @ 1505 NONAME ; void QEventDispatcherSymbian::closingDown(void) + ?setParent@QObject@@QAEXPAV1@@Z @ 1506 NONAME ; void QObject::setParent(class QObject *) + ?realNumberNotation@QTextStream@@QBE?AW4RealNumberNotation@1@XZ @ 1507 NONAME ; enum QTextStream::RealNumberNotation QTextStream::realNumberNotation(void) const + ??NQTime@@QBE_NABV0@@Z @ 1508 NONAME ; bool QTime::operator<=(class QTime const &) const + ??0QFileInfo@@QAE@ABVQString@@@Z @ 1509 NONAME ; QFileInfo::QFileInfo(class QString const &) + ?q_func@QStateMachinePrivate@@ABEPBVQStateMachine@@XZ @ 1510 NONAME ; class QStateMachine const * QStateMachinePrivate::q_func(void) const + ?endMoveColumns@QAbstractItemModel@@IAEXXZ @ 1511 NONAME ; void QAbstractItemModel::endMoveColumns(void) + ??0QDataStream@@QAE@XZ @ 1512 NONAME ; QDataStream::QDataStream(void) + ?staticMetaObject@QPauseAnimation@@2UQMetaObject@@B @ 1513 NONAME ; struct QMetaObject const QPauseAnimation::staticMetaObject + ?event@QStateMachine@@MAE_NPAVQEvent@@@Z @ 1514 NONAME ; bool QStateMachine::event(class QEvent *) + ?fetchAndAddAcquire@QBasicAtomicInt@@QAEHH@Z @ 1515 NONAME ; int QBasicAtomicInt::fetchAndAddAcquire(int) + ?wakeAll@QWaitCondition@@QAEXXZ @ 1516 NONAME ; void QWaitCondition::wakeAll(void) + ?read@QIODevice@@QAE?AVQByteArray@@_J@Z @ 1517 NONAME ; class QByteArray QIODevice::read(long long) + ??_EQSocketNotifier@@UAE@I@Z @ 1518 NONAME ; QSocketNotifier::~QSocketNotifier(unsigned int) + ?fromUnicode@QTextCodec@@QBE?AVQByteArray@@ABVQString@@@Z @ 1519 NONAME ; class QByteArray QTextCodec::fromUnicode(class QString const &) const + ??1QEventLoop@@UAE@XZ @ 1520 NONAME ; QEventLoop::~QEventLoop(void) + ?release@QSemaphore@@QAEXH@Z @ 1521 NONAME ; void QSemaphore::release(int) + ?interrupt@QEventDispatcherSymbian@@UAEXXZ @ 1522 NONAME ; void QEventDispatcherSymbian::interrupt(void) + ?findLCA@QStateMachinePrivate@@QBEPAVQState@@ABV?$QList@PAVQAbstractState@@@@@Z @ 1523 NONAME ; class QState * QStateMachinePrivate::findLCA(class QList const &) const + ?setKey@QSharedMemory@@QAEXABVQString@@@Z @ 1524 NONAME ; void QSharedMemory::setKey(class QString const &) + ?tr@QTemporaryFile@@SA?AVQString@@PBD0@Z @ 1525 NONAME ; class QString QTemporaryFile::tr(char const *, char const *) + ?setPath@QDir@@QAEXABVQString@@@Z @ 1526 NONAME ; void QDir::setPath(class QString const &) + ?setNum@QString@@QAEAAV1@_KH@Z @ 1527 NONAME ; class QString & QString::setNum(unsigned long long, int) + ?read@QIODevice@@QAE_JPAD_J@Z @ 1528 NONAME ; long long QIODevice::read(char *, long long) + ?layoutAboutToBeChanged@QAbstractItemModel@@IAEXXZ @ 1529 NONAME ; void QAbstractItemModel::layoutAboutToBeChanged(void) + ?urls@QMimeData@@QBE?AV?$QList@VQUrl@@@@XZ @ 1530 NONAME ; class QList QMimeData::urls(void) const + ?files@QFileSystemWatcher@@QBE?AVQStringList@@XZ @ 1531 NONAME ; class QStringList QFileSystemWatcher::files(void) const + ?trUtf8@QSignalMapper@@SA?AVQString@@PBD0H@Z @ 1532 NONAME ; class QString QSignalMapper::trUtf8(char const *, char const *, int) + ??8QXmlStreamAttribute@@QBE_NABV0@@Z @ 1533 NONAME ; bool QXmlStreamAttribute::operator==(class QXmlStreamAttribute const &) const + ?isProcessingInstruction@QXmlStreamReader@@QBE_NXZ @ 1534 NONAME ; bool QXmlStreamReader::isProcessingInstruction(void) const + ?addEncodedQueryItem@QUrl@@QAEXABVQByteArray@@0@Z @ 1535 NONAME ; void QUrl::addEncodedQueryItem(class QByteArray const &, class QByteArray const &) + ??1QAbstractItemModel@@UAE@XZ @ 1536 NONAME ; QAbstractItemModel::~QAbstractItemModel(void) + ?shortDayName@QDate@@SA?AVQString@@HW4MonthNameType@1@@Z @ 1537 NONAME ; class QString QDate::shortDayName(int, enum QDate::MonthNameType) + ?d_func@QHistoryState@@AAEPAVQHistoryStatePrivate@@XZ @ 1538 NONAME ; class QHistoryStatePrivate * QHistoryState::d_func(void) + ?metaObject@QParallelAnimationGroup@@UBEPBUQMetaObject@@XZ @ 1539 NONAME ; struct QMetaObject const * QParallelAnimationGroup::metaObject(void) const + ??0QByteArrayMatcher@@QAE@XZ @ 1540 NONAME ; QByteArrayMatcher::QByteArrayMatcher(void) + ?sectionFormat@QDateTimeParser@@QBE?AVQString@@H@Z @ 1541 NONAME ; class QString QDateTimeParser::sectionFormat(int) const + ?setDevice@QDataStream@@QAEXPAVQIODevice@@@Z @ 1542 NONAME ; void QDataStream::setDevice(class QIODevice *) + ?stopped@QStateMachine@@IAEXXZ @ 1543 NONAME ; void QStateMachine::stopped(void) + ?unregisterRestorable@QStateMachinePrivate@@QAEXPAVQObject@@ABVQByteArray@@@Z @ 1544 NONAME ; void QStateMachinePrivate::unregisterRestorable(class QObject *, class QByteArray const &) + ?stateChanged@QTimeLine@@IAEXW4State@1@@Z @ 1545 NONAME ; void QTimeLine::stateChanged(enum QTimeLine::State) + ?hasError@QXmlStreamReader@@QBE_NXZ @ 1546 NONAME ; bool QXmlStreamReader::hasError(void) const + ?codecForMib@QTextCodec@@SAPAV1@H@Z @ 1547 NONAME ; class QTextCodec * QTextCodec::codecForMib(int) + ?toLongLong@QByteArray@@QBE_JPA_NH@Z @ 1548 NONAME ; long long QByteArray::toLongLong(bool *, int) const + ??0QChar@@QAE@I@Z @ 1549 NONAME ; QChar::QChar(unsigned int) + ?qIsNaN@@YA_NN@Z @ 1550 NONAME ; bool qIsNaN(double) + ?hasNext@QDirIterator@@QBE_NXZ @ 1551 NONAME ; bool QDirIterator::hasNext(void) const + ?joining@QCharRef@@QBE?AW4Joining@QChar@@XZ @ 1552 NONAME ; enum QChar::Joining QCharRef::joining(void) const + ?toLong@QString@@QBEJPA_NH@Z @ 1553 NONAME ; long QString::toLong(bool *, int) const + ?methodIndex@QMetaMethod@@QBEHXZ @ 1554 NONAME ; int QMetaMethod::methodIndex(void) const + ?prepend@QByteArray@@QAEAAV1@D@Z @ 1555 NONAME ; class QByteArray & QByteArray::prepend(char) + ??0QNonContiguousByteDevice@@IAE@XZ @ 1556 NONAME ; QNonContiguousByteDevice::QNonContiguousByteDevice(void) + ?readAllStandardOutput@QProcess@@QAE?AVQByteArray@@XZ @ 1557 NONAME ; class QByteArray QProcess::readAllStandardOutput(void) + ??0QVariant@@QAE@ABVQDate@@@Z @ 1558 NONAME ; QVariant::QVariant(class QDate const &) + ??0QIncompatibleFlag@@QAE@H@Z @ 1559 NONAME ; QIncompatibleFlag::QIncompatibleFlag(int) + ?x2@QLine@@QBEHXZ @ 1560 NONAME ; int QLine::x2(void) const + ?d_func@QFileInfo@@ABEPBVQFileInfoPrivate@@XZ @ 1561 NONAME ; class QFileInfoPrivate const * QFileInfo::d_func(void) const + ?tr@QAbstractTransition@@SA?AVQString@@PBD0H@Z @ 1562 NONAME ; class QString QAbstractTransition::tr(char const *, char const *, int) + ?qDeleteInEventHandler@@YAXPAVQObject@@@Z @ 1563 NONAME ; void qDeleteInEventHandler(class QObject *) + ?tr@QTextCodecPlugin@@SA?AVQString@@PBD0@Z @ 1564 NONAME ; class QString QTextCodecPlugin::tr(char const *, char const *) + ?left@QByteArray@@QBE?AV1@H@Z @ 1565 NONAME ; class QByteArray QByteArray::left(int) const + ?seek@QTextStream@@QAE_N_J@Z @ 1566 NONAME ; bool QTextStream::seek(long long) + ?constData@QVariant@@QBEPBXXZ @ 1567 NONAME ; void const * QVariant::constData(void) const + ?qstrcmp@@YAHABVQByteArray@@PBD@Z @ 1568 NONAME ; int qstrcmp(class QByteArray const &, char const *) + ?toUpper@QByteArray@@QBE?AV1@XZ @ 1569 NONAME ; class QByteArray QByteArray::toUpper(void) const + ?normalizedType@QMetaObject@@SA?AVQByteArray@@PBD@Z @ 1570 NONAME ; class QByteArray QMetaObject::normalizedType(char const *) + ?setAutoDetectUnicode@QTextStream@@QAEX_N@Z @ 1571 NONAME ; void QTextStream::setAutoDetectUnicode(bool) + ?qBadAlloc@@YAXXZ @ 1572 NONAME ; void qBadAlloc(void) + ??NQString@@QBE_NPBD@Z @ 1573 NONAME ; bool QString::operator<=(char const *) const + ?unmap@QFile@@QAE_NPAE@Z @ 1574 NONAME ; bool QFile::unmap(unsigned char *) + ?isActive@QTimer@@QBE_NXZ @ 1575 NONAME ; bool QTimer::isActive(void) const + ??1QXmlStreamEntityResolver@@UAE@XZ @ 1576 NONAME ; QXmlStreamEntityResolver::~QXmlStreamEntityResolver(void) + ?wakeUp@QEventLoop@@QAEXXZ @ 1577 NONAME ; void QEventLoop::wakeUp(void) + ?qt_metacast@QSharedMemory@@UAEPAXPBD@Z @ 1578 NONAME ; void * QSharedMemory::qt_metacast(char const *) + ?unixSignal@QCoreApplication@@IAEXH@Z @ 1579 NONAME ; void QCoreApplication::unixSignal(int) + ?end@QString@@QBEPBVQChar@@XZ @ 1580 NONAME ; class QChar const * QString::end(void) const + ?QBasicAtomicInt_fetchAndAddOrdered@@YAHPCHH@Z @ 1581 NONAME ; int QBasicAtomicInt_fetchAndAddOrdered(int volatile *, int) + ?setFragment@QUrl@@QAEXABVQString@@@Z @ 1582 NONAME ; void QUrl::setFragment(class QString const &) + ?numberToCLocale@QLocalePrivate@@QBE_NABVQString@@W4GroupSeparatorMode@1@PAV?$QVarLengthArray@D$0BAA@@@@Z @ 1583 NONAME ; bool QLocalePrivate::numberToCLocale(class QString const &, enum QLocalePrivate::GroupSeparatorMode, class QVarLengthArray *) const + ?endRemoveColumns@QAbstractItemModel@@IAEXXZ @ 1584 NONAME ; void QAbstractItemModel::endRemoveColumns(void) + ?readLine@QFSFileEngine@@UAE_JPAD_J@Z @ 1585 NONAME ; long long QFSFileEngine::readLine(char *, long long) + ?startTimer@QObject@@QAEHH@Z @ 1586 NONAME ; int QObject::startTimer(int) + ?raiseError@QXmlStreamReader@@QAEXABVQString@@@Z @ 1587 NONAME ; void QXmlStreamReader::raiseError(class QString const &) + ??0QByteArrayMatcher@@QAE@PBDH@Z @ 1588 NONAME ; QByteArrayMatcher::QByteArrayMatcher(char const *, int) + ?maxThreadCount@QThreadPool@@QBEHXZ @ 1589 NONAME ; int QThreadPool::maxThreadCount(void) const + ?bytearrayToLongLong@QLocalePrivate@@SA_JPBDHPA_N1@Z @ 1590 NONAME ; long long QLocalePrivate::bytearrayToLongLong(char const *, int, bool *, bool *) + ?fromUnicode@QTextCodec@@QBE?AVQByteArray@@PBVQChar@@HPAUConverterState@1@@Z @ 1591 NONAME ; class QByteArray QTextCodec::fromUnicode(class QChar const *, int, struct QTextCodec::ConverterState *) const + ??_EQAbstractState@@UAE@I@Z @ 1592 NONAME ; QAbstractState::~QAbstractState(unsigned int) + ?createLocalFile@QTemporaryFile@@SAPAV1@ABVQString@@@Z @ 1593 NONAME ; class QTemporaryFile * QTemporaryFile::createLocalFile(class QString const &) + ?setX@QPoint@@QAEXH@Z @ 1594 NONAME ; void QPoint::setX(int) + ?staticMetaObject@QThread@@2UQMetaObject@@B @ 1595 NONAME ; struct QMetaObject const QThread::staticMetaObject + ?fromWCharArray@QString@@SA?AV1@PB_WH@Z @ 1596 NONAME ; class QString QString::fromWCharArray(wchar_t const *, int) + ??4QLatin1String@@QAEAAV0@ABV0@@Z @ 1597 NONAME ; class QLatin1String & QLatin1String::operator=(class QLatin1String const &) + ?properAncestors@QStateMachinePrivate@@SA?AV?$QList@PAVQState@@@@PBVQAbstractState@@PBVQState@@@Z @ 1598 NONAME ; class QList QStateMachinePrivate::properAncestors(class QAbstractState const *, class QState const *) + ?isNull@QUuid@@QBE_NXZ @ 1599 NONAME ; bool QUuid::isNull(void) const + ?qdtoa@@YAPADNHHPAH0PAPAD1@Z @ 1600 NONAME ; char * qdtoa(double, int, int, int *, int *, char * *, char * *) + ?currentFilePath@QAbstractFileEngineIterator@@QBE?AVQString@@XZ @ 1601 NONAME ; class QString QAbstractFileEngineIterator::currentFilePath(void) const + ?capturedTexts@QRegExp@@QAE?AVQStringList@@XZ @ 1602 NONAME ; class QStringList QRegExp::capturedTexts(void) + ??NQString@@QBE_NABVQByteArray@@@Z @ 1603 NONAME ; bool QString::operator<=(class QByteArray const &) const + ?invalidatePersistentIndexes@QAbstractItemModelPrivate@@QAEXXZ @ 1604 NONAME ; void QAbstractItemModelPrivate::invalidatePersistentIndexes(void) + ??6@YA?AVQDebug@@V0@ABVQPersistentModelIndex@@@Z @ 1605 NONAME ; class QDebug operator<<(class QDebug, class QPersistentModelIndex const &) + ?plus@QLocalePrivate@@QBE?AVQChar@@XZ @ 1606 NONAME ; class QChar QLocalePrivate::plus(void) const + ?nameToType@QVariant@@SA?AW4Type@1@PBD@Z @ 1607 NONAME ; enum QVariant::Type QVariant::nameToType(char const *) + ?installEventFilter@QObject@@QAEXPAV1@@Z @ 1608 NONAME ; void QObject::installEventFilter(class QObject *) + ??0QRegExp@@QAE@XZ @ 1609 NONAME ; QRegExp::QRegExp(void) + ?clear@QUrl@@QAEXXZ @ 1610 NONAME ; void QUrl::clear(void) + ?toUnicode@QTextCodec@@QBE?AVQString@@PBD@Z @ 1611 NONAME ; class QString QTextCodec::toUnicode(char const *) const + ?startTimer@QTimer@@AAEHH@Z @ 1612 NONAME ; int QTimer::startTimer(int) + ?state@QTimeLine@@QBE?AW4State@1@XZ @ 1613 NONAME ; enum QTimeLine::State QTimeLine::state(void) const + ?staticMetaObject@QFile@@2UQMetaObject@@B @ 1614 NONAME ; struct QMetaObject const QFile::staticMetaObject + ?compare@QString@@QBEHABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 1615 NONAME ; int QString::compare(class QLatin1String const &, enum Qt::CaseSensitivity) const + ?duration@QPauseAnimation@@UBEHXZ @ 1616 NONAME ; int QPauseAnimation::duration(void) const + ?sibling@QModelIndex@@QBE?AV1@HH@Z @ 1617 NONAME ; class QModelIndex QModelIndex::sibling(int, int) const + ?metaObject@QFactoryLoader@@UBEPBUQMetaObject@@XZ @ 1618 NONAME ; struct QMetaObject const * QFactoryLoader::metaObject(void) const + ?fetchAndAddRelaxed@QBasicAtomicInt@@QAEHH@Z @ 1619 NONAME ; int QBasicAtomicInt::fetchAndAddRelaxed(int) + ??0QFinalState@@QAE@PAVQState@@@Z @ 1620 NONAME ; QFinalState::QFinalState(class QState *) + ??0QFileInfo@@QAE@ABV0@@Z @ 1621 NONAME ; QFileInfo::QFileInfo(class QFileInfo const &) + ?setIntegerBase@QTextStream@@QAEXH@Z @ 1622 NONAME ; void QTextStream::setIntegerBase(int) + ?trUtf8@QSettings@@SA?AVQString@@PBD0H@Z @ 1623 NONAME ; class QString QSettings::trUtf8(char const *, char const *, int) + ?workingDirectory@QProcess@@QBE?AVQString@@XZ @ 1624 NONAME ; class QString QProcess::workingDirectory(void) const + ??0QMutexLocker@@QAE@PAVQMutex@@@Z @ 1625 NONAME ; QMutexLocker::QMutexLocker(class QMutex *) + ?type@QVariant@@QBE?AW4Type@1@XZ @ 1626 NONAME ; enum QVariant::Type QVariant::type(void) const + ?setPatternSyntax@QRegExp@@QAEXW4PatternSyntax@1@@Z @ 1627 NONAME ; void QRegExp::setPatternSyntax(enum QRegExp::PatternSyntax) + ?propertyCount@QMetaObject@@QBEHXZ @ 1628 NONAME ; int QMetaObject::propertyCount(void) const + ?d_func@QFinalState@@AAEPAVQFinalStatePrivate@@XZ @ 1629 NONAME ; class QFinalStatePrivate * QFinalState::d_func(void) + ?d_func@QStateMachine@@AAEPAVQStateMachinePrivate@@XZ @ 1630 NONAME ; class QStateMachinePrivate * QStateMachine::d_func(void) + ?setPoints@QLine@@QAEXABVQPoint@@0@Z @ 1631 NONAME ; void QLine::setPoints(class QPoint const &, class QPoint const &) + ?qt_metacast@QAbstractAnimation@@UAEPAXPBD@Z @ 1632 NONAME ; void * QAbstractAnimation::qt_metacast(char const *) + ?setData@QAbstractItemModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 1633 NONAME ; bool QAbstractItemModel::setData(class QModelIndex const &, class QVariant const &, int) + ?scale@QSizeF@@QAEXABV1@W4AspectRatioMode@Qt@@@Z @ 1634 NONAME ; void QSizeF::scale(class QSizeF const &, enum Qt::AspectRatioMode) + ?isAbsolute@QFileInfo@@QBE_NXZ @ 1635 NONAME ; bool QFileInfo::isAbsolute(void) const + ?callEventTest@QAbstractTransitionPrivate@@QAE_NPAVQEvent@@@Z @ 1636 NONAME ; bool QAbstractTransitionPrivate::callEventTest(class QEvent *) + ?invoke@QMetaMethod@@QBE_NPAVQObject@@W4ConnectionType@Qt@@VQGenericReturnArgument@@VQGenericArgument@@333333333@Z @ 1637 NONAME ; bool QMetaMethod::invoke(class QObject *, enum Qt::ConnectionType, class QGenericReturnArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) const + ??0QBuffer@@QAE@PAVQByteArray@@PAVQObject@@@Z @ 1638 NONAME ; QBuffer::QBuffer(class QByteArray *, class QObject *) + ?toTime@QLocale@@QBE?AVQTime@@ABVQString@@W4FormatType@1@@Z @ 1639 NONAME ; class QTime QLocale::toTime(class QString const &, enum QLocale::FormatType) const + ??YQSize@@QAEAAV0@ABV0@@Z @ 1640 NONAME ; class QSize & QSize::operator+=(class QSize const &) + ??0QFile@@QAE@PAVQObject@@@Z @ 1641 NONAME ; QFile::QFile(class QObject *) + ?data@QSharedMemory@@QBEPBXXZ @ 1642 NONAME ; void const * QSharedMemory::data(void) const + ?setKey@QSystemSemaphore@@QAEXABVQString@@HW4AccessMode@1@@Z @ 1643 NONAME ; void QSystemSemaphore::setKey(class QString const &, int, enum QSystemSemaphore::AccessMode) + ?toLongLong@QLocale@@QBE_JABVQString@@PA_NH@Z @ 1644 NONAME ; long long QLocale::toLongLong(class QString const &, bool *, int) const + ?read@QMetaProperty@@QBE?AVQVariant@@PBVQObject@@@Z @ 1645 NONAME ; class QVariant QMetaProperty::read(class QObject const *) const + ?getStaticMetaObject@QAbstractItemModel@@SAABUQMetaObject@@XZ @ 1646 NONAME ; struct QMetaObject const & QAbstractItemModel::getStaticMetaObject(void) + ??5QTextStream@@QAEAAV0@AAVQString@@@Z @ 1647 NONAME ; class QTextStream & QTextStream::operator>>(class QString &) + ??_EQFactoryInterface@@UAE@I@Z @ 1648 NONAME ; QFactoryInterface::~QFactoryInterface(unsigned int) + ?setBottomRight@QRect@@QAEXABVQPoint@@@Z @ 1649 NONAME ; void QRect::setBottomRight(class QPoint const &) + ?fromEncoded@QUrl@@SA?AV1@ABVQByteArray@@W4ParsingMode@1@@Z @ 1650 NONAME ; class QUrl QUrl::fromEncoded(class QByteArray const &, enum QUrl::ParsingMode) + ?releaseTimerId@QAbstractEventDispatcherPrivate@@SAXH@Z @ 1651 NONAME ; void QAbstractEventDispatcherPrivate::releaseTimerId(int) + ?link@QFile@@QAE_NABVQString@@@Z @ 1652 NONAME ; bool QFile::link(class QString const &) + ?d_func@QProcess@@AAEPAVQProcessPrivate@@XZ @ 1653 NONAME ; class QProcessPrivate * QProcess::d_func(void) + ?flush@QAbstractFileEngine@@UAE_NXZ @ 1654 NONAME ; bool QAbstractFileEngine::flush(void) + ?sibling@QPersistentModelIndex@@QBE?AVQModelIndex@@HH@Z @ 1655 NONAME ; class QModelIndex QPersistentModelIndex::sibling(int, int) const + ?skipRawData@QDataStream@@QAEHH@Z @ 1656 NONAME ; int QDataStream::skipRawData(int) + ?userProperty@QMetaObject@@QBE?AVQMetaProperty@@XZ @ 1657 NONAME ; class QMetaProperty QMetaObject::userProperty(void) const + ?qAppName@@YA?AVQString@@XZ @ 1658 NONAME ; class QString qAppName(void) + ??1QObject@@UAE@XZ @ 1659 NONAME ; QObject::~QObject(void) + ?string@QTextStream@@QBEPAVQString@@XZ @ 1660 NONAME ; class QString * QTextStream::string(void) const + ?data@QHBufC@@QAEPAVHBufC16@@XZ @ 1661 NONAME ; class HBufC16 * QHBufC::data(void) + ?unicode@QChar@@QAEAAGXZ @ 1662 NONAME ; unsigned short & QChar::unicode(void) + ?staticMetaObject@QFactoryLoader@@2UQMetaObject@@B @ 1663 NONAME ; struct QMetaObject const QFactoryLoader::staticMetaObject + ??0QMetaProperty@@QAE@XZ @ 1664 NONAME ; QMetaProperty::QMetaProperty(void) + ?resize@QFile@@QAE_N_J@Z @ 1665 NONAME ; bool QFile::resize(long long) + ?moveTop@QRectF@@QAEXM@Z @ 1666 NONAME ; void QRectF::moveTop(float) + ??4QByteArray@@QAEAAV0@ABV0@@Z @ 1667 NONAME ; class QByteArray & QByteArray::operator=(class QByteArray const &) + ?waitForStarted@QProcess@@QAE_NH@Z @ 1668 NONAME ; bool QProcess::waitForStarted(int) + ?d_func@QAbstractEventDispatcher@@ABEPBVQAbstractEventDispatcherPrivate@@XZ @ 1669 NONAME ; class QAbstractEventDispatcherPrivate const * QAbstractEventDispatcher::d_func(void) const + ?isEmpty@QSizeF@@QBE_NXZ @ 1670 NONAME ; bool QSizeF::isEmpty(void) const + ??0QUuid@@QAE@IGGEEEEEEEE@Z @ 1671 NONAME ; QUuid::QUuid(unsigned int, unsigned short, unsigned short, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char) + ??6@YAAAVQDataStream@@AAV0@ABVQPointF@@@Z @ 1672 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPointF const &) + ?data_ptr@QByteArray@@QAEAAPAUData@1@XZ @ 1673 NONAME ; struct QByteArray::Data * & QByteArray::data_ptr(void) + ?decompositionTag@QChar@@SA?AW4Decomposition@1@I@Z @ 1674 NONAME ; enum QChar::Decomposition QChar::decompositionTag(unsigned int) + ??6QTextStream@@QAEAAV0@_J@Z @ 1675 NONAME ; class QTextStream & QTextStream::operator<<(long long) + ?isHidden@QFileInfo@@QBE_NXZ @ 1676 NONAME ; bool QFileInfo::isHidden(void) const + ??9QDir@@QBE_NABV0@@Z @ 1677 NONAME ; bool QDir::operator!=(class QDir const &) const + ?sorting@QDir@@QBE?AV?$QFlags@W4SortFlag@QDir@@@@XZ @ 1678 NONAME ; class QFlags QDir::sorting(void) const + ??1QResource@@QAE@XZ @ 1679 NONAME ; QResource::~QResource(void) + ?registerInterpolator@QVariantAnimation@@CAXP6A?AVQVariant@@PBX0M@ZH@Z @ 1680 NONAME ; void QVariantAnimation::registerInterpolator(class QVariant (*)(void const *, void const *, float), int) + ?staticMetaObject@QSocketNotifier@@2UQMetaObject@@B @ 1681 NONAME ; struct QMetaObject const QSocketNotifier::staticMetaObject + ??0QAnimationGroup@@QAE@PAVQObject@@@Z @ 1682 NONAME ; QAnimationGroup::QAnimationGroup(class QObject *) + ?append@QByteArray@@QAEAAV1@PBDH@Z @ 1683 NONAME ; class QByteArray & QByteArray::append(char const *, int) + ??8QByteRef@@QBE_ND@Z @ 1684 NONAME ; bool QByteRef::operator==(char) const + ?setAttribute@QCoreApplication@@SAXW4ApplicationAttribute@Qt@@_N@Z @ 1685 NONAME ; void QCoreApplication::setAttribute(enum Qt::ApplicationAttribute, bool) + ?addData@QXmlStreamReader@@QAEXPBD@Z @ 1686 NONAME ; void QXmlStreamReader::addData(char const *) + ?typeName@QMetaType@@SAPBDH@Z @ 1687 NONAME ; char const * QMetaType::typeName(int) + ?registerTimer@QAbstractEventDispatcher@@QAEHHPAVQObject@@@Z @ 1688 NONAME ; int QAbstractEventDispatcher::registerTimer(int, class QObject *) + ??4QUrl@@QAEAAV0@ABV0@@Z @ 1689 NONAME ; class QUrl & QUrl::operator=(class QUrl const &) + ?activated@QSocketNotifier@@IAEXH@Z @ 1690 NONAME ; void QSocketNotifier::activated(int) + ?trUtf8@QTranslator@@SA?AVQString@@PBD0H@Z @ 1691 NONAME ; class QString QTranslator::trUtf8(char const *, char const *, int) + ?readyRead@QIODevice@@IAEXXZ @ 1692 NONAME ; void QIODevice::readyRead(void) + ??5QTextStream@@QAEAAV0@AAH@Z @ 1693 NONAME ; class QTextStream & QTextStream::operator>>(int &) + ?row@QModelIndex@@QBEHXZ @ 1694 NONAME ; int QModelIndex::row(void) const + ?update@QFactoryLoader@@QAEXXZ @ 1695 NONAME ; void QFactoryLoader::update(void) + ?hasAttribute@QXmlStreamAttributes@@QBE_NABVQString@@0@Z @ 1696 NONAME ; bool QXmlStreamAttributes::hasAttribute(class QString const &, class QString const &) const + ?qvsnprintf@@YAHPADIPBD0@Z @ 1697 NONAME ; int qvsnprintf(char *, unsigned int, char const *, char *) + ?qCompress@@YA?AVQByteArray@@PBEHH@Z @ 1698 NONAME ; class QByteArray qCompress(unsigned char const *, int, int) + ?processingInstructionTarget@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 1699 NONAME ; class QStringRef QXmlStreamReader::processingInstructionTarget(void) const + ?setP1@QLine@@QAEXABVQPoint@@@Z @ 1700 NONAME ; void QLine::setP1(class QPoint const &) + ?tr@QSequentialAnimationGroup@@SA?AVQString@@PBD0@Z @ 1701 NONAME ; class QString QSequentialAnimationGroup::tr(char const *, char const *) + ?y1@QLineF@@QBEMXZ @ 1702 NONAME ; float QLineF::y1(void) const + ?setWidth@QRectF@@QAEXM@Z @ 1703 NONAME ; void QRectF::setWidth(float) + ?setPattern@QStringMatcher@@QAEXABVQString@@@Z @ 1704 NONAME ; void QStringMatcher::setPattern(class QString const &) + ?organizationName@QCoreApplication@@SA?AVQString@@XZ @ 1705 NONAME ; class QString QCoreApplication::organizationName(void) + ??8QDate@@QBE_NABV0@@Z @ 1706 NONAME ; bool QDate::operator==(class QDate const &) const + ?allEncodedQueryItemValues@QUrl@@QBE?AV?$QList@VQByteArray@@@@ABVQByteArray@@@Z @ 1707 NONAME ; class QList QUrl::allEncodedQueryItemValues(class QByteArray const &) const + ?trUtf8@QTimeLine@@SA?AVQString@@PBD0@Z @ 1708 NONAME ; class QString QTimeLine::trUtf8(char const *, char const *) + ??5QTextStream@@QAEAAV0@AA_K@Z @ 1709 NONAME ; class QTextStream & QTextStream::operator>>(unsigned long long &) + ?data@QSharedMemory@@QAEPAXXZ @ 1710 NONAME ; void * QSharedMemory::data(void) + ?gregorianToJulian@QDate@@SAIHHH@Z @ 1711 NONAME ; unsigned int QDate::gregorianToJulian(int, int, int) + ?qGlobalPostedEventsCount@@YAIXZ @ 1712 NONAME ; unsigned int qGlobalPostedEventsCount(void) + ?changePersistentIndex@QAbstractItemModel@@IAEXABVQModelIndex@@0@Z @ 1713 NONAME ; void QAbstractItemModel::changePersistentIndex(class QModelIndex const &, class QModelIndex const &) + ?revert@QAbstractItemModel@@UAEXXZ @ 1714 NONAME ; void QAbstractItemModel::revert(void) + ?d_func@QXmlStreamReader@@ABEPBVQXmlStreamReaderPrivate@@XZ @ 1715 NONAME ; class QXmlStreamReaderPrivate const * QXmlStreamReader::d_func(void) const + ?q_func@QEventTransitionPrivate@@AAEPAVQEventTransition@@XZ @ 1716 NONAME ; class QEventTransition * QEventTransitionPrivate::q_func(void) + ??_EQParallelAnimationGroup@@UAE@I@Z @ 1717 NONAME ; QParallelAnimationGroup::~QParallelAnimationGroup(unsigned int) + ?clear@QObjectCleanupHandler@@QAEXXZ @ 1718 NONAME ; void QObjectCleanupHandler::clear(void) + ?tr@QPauseAnimation@@SA?AVQString@@PBD0@Z @ 1719 NONAME ; class QString QPauseAnimation::tr(char const *, char const *) + ?getStaticMetaObject@QStateMachine@@SAABUQMetaObject@@XZ @ 1720 NONAME ; struct QMetaObject const & QStateMachine::getStaticMetaObject(void) + ?get@QMutexPool@@QAEPAVQMutex@@PBX@Z @ 1721 NONAME ; class QMutex * QMutexPool::get(void const *) + ?reset@QMetaProperty@@QBE_NPAVQObject@@@Z @ 1722 NONAME ; bool QMetaProperty::reset(class QObject *) const + ?staticMetaObject@QLocale@@2UQMetaObject@@B @ 1723 NONAME ; struct QMetaObject const QLocale::staticMetaObject + ?d_func@QEventDispatcherSymbian@@AAEPAVQAbstractEventDispatcherPrivate@@XZ @ 1724 NONAME ; class QAbstractEventDispatcherPrivate * QEventDispatcherSymbian::d_func(void) + ?isWritable@QIODevice@@QBE_NXZ @ 1725 NONAME ; bool QIODevice::isWritable(void) const + ?addState@QStateMachine@@QAEXPAVQAbstractState@@@Z @ 1726 NONAME ; void QStateMachine::addState(class QAbstractState *) + ?onExit@QHistoryState@@MAEXPAVQEvent@@@Z @ 1727 NONAME ; void QHistoryState::onExit(class QEvent *) + ??U@YA?AVQBitArray@@ABV0@0@Z @ 1728 NONAME ; class QBitArray operator|(class QBitArray const &, class QBitArray const &) + ??6QTextStream@@QAEAAV0@ABVQString@@@Z @ 1729 NONAME ; class QTextStream & QTextStream::operator<<(class QString const &) + ?setEnabled@QSocketNotifier@@QAEX_N@Z @ 1730 NONAME ; void QSocketNotifier::setEnabled(bool) + ?close@QFile@@UAEXXZ @ 1731 NONAME ; void QFile::close(void) + ??5@YAAAVQDataStream@@AAV0@AAVQRegExp@@@Z @ 1732 NONAME ; class QDataStream & operator>>(class QDataStream &, class QRegExp &) + ?tr@QAbstractState@@SA?AVQString@@PBD0@Z @ 1733 NONAME ; class QString QAbstractState::tr(char const *, char const *) + ??6QDebug@@QAEAAV0@J@Z @ 1734 NONAME ; class QDebug & QDebug::operator<<(long) + ?tr@QMetaObject@@QBE?AVQString@@PBD0@Z @ 1735 NONAME ; class QString QMetaObject::tr(char const *, char const *) const + ?q_func@QAbstractEventDispatcherPrivate@@ABEPBVQAbstractEventDispatcher@@XZ @ 1736 NONAME ; class QAbstractEventDispatcher const * QAbstractEventDispatcherPrivate::q_func(void) const + ?port@QUrl@@QBEHH@Z @ 1737 NONAME ; int QUrl::port(int) const + ?beginWriteArray@QSettings@@QAEXABVQString@@H@Z @ 1738 NONAME ; void QSettings::beginWriteArray(class QString const &, int) + ?qt_metacall@QSettings@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1739 NONAME ; int QSettings::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QProcess@@UAE@XZ @ 1740 NONAME ; QProcess::~QProcess(void) + ?setCell@QChar@@QAEXE@Z @ 1741 NONAME ; void QChar::setCell(unsigned char) + ?lastIndexOf@QString@@QBEHAAVQRegExp@@H@Z @ 1742 NONAME ; int QString::lastIndexOf(class QRegExp &, int) const + ??0QHBufC@@QAE@ABV0@@Z @ 1743 NONAME ; QHBufC::QHBufC(class QHBufC const &) + ?remove@QListData@@QAEXH@Z @ 1744 NONAME ; void QListData::remove(int) + ?setTimeSpec@QDateTime@@QAEXW4TimeSpec@Qt@@@Z @ 1745 NONAME ; void QDateTime::setTimeSpec(enum Qt::TimeSpec) + ?makeEncoder@QTextCodec@@QBEPAVQTextEncoder@@XZ @ 1746 NONAME ; class QTextEncoder * QTextCodec::makeEncoder(void) const + ?byteOrder@QDataStream@@QBE?AW4ByteOrder@1@XZ @ 1747 NONAME ; enum QDataStream::ByteOrder QDataStream::byteOrder(void) const + ?codecForName@QTextCodec@@SAPAV1@PBD@Z @ 1748 NONAME ; class QTextCodec * QTextCodec::codecForName(char const *) + ?toString@QDateTime@@QBE?AVQString@@ABV2@@Z @ 1749 NONAME ; class QString QDateTime::toString(class QString const &) const + ?remove@QListData@@QAEXHH@Z @ 1750 NONAME ; void QListData::remove(int, int) + ?toCaseFolded@QChar@@SAII@Z @ 1751 NONAME ; unsigned int QChar::toCaseFolded(unsigned int) + ??0QFSFileEngine@@QAE@ABVQString@@@Z @ 1752 NONAME ; QFSFileEngine::QFSFileEngine(class QString const &) + ?lastIndexOf@QString@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 1753 NONAME ; int QString::lastIndexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?tr@QEventLoop@@SA?AVQString@@PBD0@Z @ 1754 NONAME ; class QString QEventLoop::tr(char const *, char const *) + ??OQString@@QBE_NABV0@@Z @ 1755 NONAME ; bool QString::operator>(class QString const &) const + ?surrogateToUcs4@QChar@@SAIV1@0@Z @ 1756 NONAME ; unsigned int QChar::surrogateToUcs4(class QChar, class QChar) + ??5@YAAAVQDataStream@@AAV0@AAVQLine@@@Z @ 1757 NONAME ; class QDataStream & operator>>(class QDataStream &, class QLine &) + ?d_func@QVariantAnimation@@AAEPAVQVariantAnimationPrivate@@XZ @ 1758 NONAME ; class QVariantAnimationPrivate * QVariantAnimation::d_func(void) + ??PQLatin1String@@QBE_NABVQString@@@Z @ 1759 NONAME ; bool QLatin1String::operator>=(class QString const &) const + ??8QRegExp@@QBE_NABV0@@Z @ 1760 NONAME ; bool QRegExp::operator==(class QRegExp const &) const + ?addDays@QDate@@QBE?AV1@H@Z @ 1761 NONAME ; class QDate QDate::addDays(int) const + ?translated@QLine@@QBE?AV1@ABVQPoint@@@Z @ 1762 NONAME ; class QLine QLine::translated(class QPoint const &) const + ??0QLibrary@@QAE@ABVQString@@PAVQObject@@@Z @ 1763 NONAME ; QLibrary::QLibrary(class QString const &, class QObject *) + ?processEvents@QStateMachinePrivate@@QAEXW4EventProcessingMode@1@@Z @ 1764 NONAME ; void QStateMachinePrivate::processEvents(enum QStateMachinePrivate::EventProcessingMode) + ?getStaticMetaObject@QSignalTransition@@SAABUQMetaObject@@XZ @ 1765 NONAME ; struct QMetaObject const & QSignalTransition::getStaticMetaObject(void) + ?section@QString@@QBE?AV1@ABVQRegExp@@HHV?$QFlags@W4SectionFlag@QString@@@@@Z @ 1766 NONAME ; class QString QString::section(class QRegExp const &, int, int, class QFlags) const + ?qt_metacall@QEventTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1767 NONAME ; int QEventTransition::qt_metacall(enum QMetaObject::Call, int, void * *) + ?localeAwareCompare@QString@@SAHABV1@0@Z @ 1768 NONAME ; int QString::localeAwareCompare(class QString const &, class QString const &) + ?staticMetaObject@QMimeData@@2UQMetaObject@@B @ 1769 NONAME ; struct QMetaObject const QMimeData::staticMetaObject + ??4QDateTime@@QAEAAV0@ABV0@@Z @ 1770 NONAME ; class QDateTime & QDateTime::operator=(class QDateTime const &) + ?staticMetaObject@QAbstractTransition@@2UQMetaObject@@B @ 1771 NONAME ; struct QMetaObject const QAbstractTransition::staticMetaObject + ?isIdeographic@QXmlUtils@@CA_NVQChar@@@Z @ 1772 NONAME ; bool QXmlUtils::isIdeographic(class QChar) + ?applicationName@QCoreApplication@@SA?AVQString@@XZ @ 1773 NONAME ; class QString QCoreApplication::applicationName(void) + ?staticMetaObject@QEventLoop@@2UQMetaObject@@B @ 1774 NONAME ; struct QMetaObject const QEventLoop::staticMetaObject + ?fileName@QResource@@QBE?AVQString@@XZ @ 1775 NONAME ; class QString QResource::fileName(void) const + ?insert@QString@@QAEAAV1@HABVQLatin1String@@@Z @ 1776 NONAME ; class QString & QString::insert(int, class QLatin1String const &) + ??AQString@@QAE?AVQCharRef@@H@Z @ 1777 NONAME ; class QCharRef QString::operator[](int) + ?tr@QFactoryLoader@@SA?AVQString@@PBD0@Z @ 1778 NONAME ; class QString QFactoryLoader::tr(char const *, char const *) + ?setHMS@QTime@@QAE_NHHHH@Z @ 1779 NONAME ; bool QTime::setHMS(int, int, int, int) + ?language@QLocale@@QBE?AW4Language@1@XZ @ 1780 NONAME ; enum QLocale::Language QLocale::language(void) const + ??1QIODevice@@UAE@XZ @ 1781 NONAME ; QIODevice::~QIODevice(void) + ??0QTextStream@@QAE@XZ @ 1782 NONAME ; QTextStream::QTextStream(void) + ?property@QMetaObject@@QBE?AVQMetaProperty@@H@Z @ 1783 NONAME ; class QMetaProperty QMetaObject::property(int) const + ?libraryPaths@QCoreApplication@@SA?AVQStringList@@XZ @ 1784 NONAME ; class QStringList QCoreApplication::libraryPaths(void) + ??0QVariant@@QAE@H@Z @ 1785 NONAME ; QVariant::QVariant(int) + ?testAndSetRelease@QBasicAtomicInt@@QAE_NHH@Z @ 1786 NONAME ; bool QBasicAtomicInt::testAndSetRelease(int, int) + ?setPeriod@QEasingCurve@@QAEXM@Z @ 1787 NONAME ; void QEasingCurve::setPeriod(float) + ??0QAbstractFileEngineIterator@@QAE@V?$QFlags@W4Filter@QDir@@@@ABVQStringList@@@Z @ 1788 NONAME ; QAbstractFileEngineIterator::QAbstractFileEngineIterator(class QFlags, class QStringList const &) + ?sourceState@QAbstractTransitionPrivate@@QBEPAVQState@@XZ @ 1789 NONAME ; class QState * QAbstractTransitionPrivate::sourceState(void) const + ?startingUp@QCoreApplication@@SA_NXZ @ 1790 NONAME ; bool QCoreApplication::startingUp(void) + ?decodeName@QFile@@SA?AVQString@@ABVQByteArray@@@Z @ 1791 NONAME ; class QString QFile::decodeName(class QByteArray const &) + ?_q_animationFinished@QStateMachinePrivate@@QAEXXZ @ 1792 NONAME ; void QStateMachinePrivate::_q_animationFinished(void) + ?setTargetState@QAbstractTransition@@QAEXPAVQAbstractState@@@Z @ 1793 NONAME ; void QAbstractTransition::setTargetState(class QAbstractState *) + ?trUtf8@QMimeData@@SA?AVQString@@PBD0@Z @ 1794 NONAME ; class QString QMimeData::trUtf8(char const *, char const *) + ??0QFSFileEngine@@QAE@XZ @ 1795 NONAME ; QFSFileEngine::QFSFileEngine(void) + ?makeAbsolute@QDir@@QAE_NXZ @ 1796 NONAME ; bool QDir::makeAbsolute(void) + ??0QRectF@@QAE@ABVQPointF@@0@Z @ 1797 NONAME ; QRectF::QRectF(class QPointF const &, class QPointF const &) + ?exec@QTextStreamManipulator@@QAEXAAVQTextStream@@@Z @ 1798 NONAME ; void QTextStreamManipulator::exec(class QTextStream &) + ??0QHBufC@@QAE@ABVQString@@@Z @ 1799 NONAME ; QHBufC::QHBufC(class QString const &) + ?setKeyValues@QVariantAnimation@@QAEXABV?$QVector@U?$QPair@MVQVariant@@@@@@@Z @ 1800 NONAME ; void QVariantAnimation::setKeyValues(class QVector > const &) + ??0QVariant@@QAE@ABVQLocale@@@Z @ 1801 NONAME ; QVariant::QVariant(class QLocale const &) + ?toEnd@QTextBoundaryFinder@@QAEXXZ @ 1802 NONAME ; void QTextBoundaryFinder::toEnd(void) + ?instance@QAbstractEventDispatcher@@SAPAV1@PAVQThread@@@Z @ 1803 NONAME ; class QAbstractEventDispatcher * QAbstractEventDispatcher::instance(class QThread *) + ?translate@QCoreApplication@@SA?AVQString@@PBD00W4Encoding@1@@Z @ 1804 NONAME ; class QString QCoreApplication::translate(char const *, char const *, char const *, enum QCoreApplication::Encoding) + ??_EQEventTransitionPrivate@@UAE@I@Z @ 1805 NONAME ; QEventTransitionPrivate::~QEventTransitionPrivate(unsigned int) + ?absolutePath@QFileInfo@@QBE?AVQString@@XZ @ 1806 NONAME ; class QString QFileInfo::absolutePath(void) const + ?staticMetaObject@QVariantAnimation@@2UQMetaObject@@B @ 1807 NONAME ; struct QMetaObject const QVariantAnimation::staticMetaObject + ?invokeMethod@QMetaObject@@SA_NPAVQObject@@PBDVQGenericReturnArgument@@VQGenericArgument@@333333333@Z @ 1808 NONAME ; bool QMetaObject::invokeMethod(class QObject *, char const *, class QGenericReturnArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) + ?getStaticMetaObject@QObjectCleanupHandler@@SAABUQMetaObject@@XZ @ 1809 NONAME ; struct QMetaObject const & QObjectCleanupHandler::getStaticMetaObject(void) + ?append@QString@@QAEAAV1@ABVQLatin1String@@@Z @ 1810 NONAME ; class QString & QString::append(class QLatin1String const &) + ?toTitleCase@QChar@@QBE?AV1@XZ @ 1811 NONAME ; class QChar QChar::toTitleCase(void) const + ??4QModelIndex@@QAEAAV0@ABV0@@Z @ 1812 NONAME ; class QModelIndex & QModelIndex::operator=(class QModelIndex const &) + ?getStaticMetaObject@QTextCodecPlugin@@SAABUQMetaObject@@XZ @ 1813 NONAME ; struct QMetaObject const & QTextCodecPlugin::getStaticMetaObject(void) + ??9QProcessEnvironment@@QBE_NABV0@@Z @ 1814 NONAME ; bool QProcessEnvironment::operator!=(class QProcessEnvironment const &) const + ?toLocal8Bit@QString@@QBE?AVQByteArray@@XZ @ 1815 NONAME ; class QByteArray QString::toLocal8Bit(void) const + ?QStringList_replaceInStrings@QtPrivate@@YAXPAVQStringList@@ABVQRegExp@@ABVQString@@@Z @ 1816 NONAME ; void QtPrivate::QStringList_replaceInStrings(class QStringList *, class QRegExp const &, class QString const &) + ?userData@QObject@@QBEPAVQObjectUserData@@I@Z @ 1817 NONAME ; class QObjectUserData * QObject::userData(unsigned int) const + ?potentialValue@QDateTimeParser@@QBE_NABVQString@@HHHABVQDateTime@@H@Z @ 1818 NONAME ; bool QDateTimeParser::potentialValue(class QString const &, int, int, int, class QDateTime const &, int) const + ?link@QFile@@SA_NABVQString@@0@Z @ 1819 NONAME ; bool QFile::link(class QString const &, class QString const &) + ??YQString@@QAEAAV0@ABV0@@Z @ 1820 NONAME ; class QString & QString::operator+=(class QString const &) + ?skipCurrentElement@QXmlStreamReader@@QAEXXZ @ 1821 NONAME ; void QXmlStreamReader::skipCurrentElement(void) + ?qt_metacast@QEventLoop@@UAEPAXPBD@Z @ 1822 NONAME ; void * QEventLoop::qt_metacast(char const *) + ?qt_metacast@QEventTransition@@UAEPAXPBD@Z @ 1823 NONAME ; void * QEventTransition::qt_metacast(char const *) + ??0QVariant@@QAE@W4Type@0@@Z @ 1824 NONAME ; QVariant::QVariant(enum QVariant::Type) + ?getCoords@QRect@@QBEXPAH000@Z @ 1825 NONAME ; void QRect::getCoords(int *, int *, int *, int *) const + ??0QSequentialAnimationGroup@@IAE@AAVQSequentialAnimationGroupPrivate@@PAVQObject@@@Z @ 1826 NONAME ; QSequentialAnimationGroup::QSequentialAnimationGroup(class QSequentialAnimationGroupPrivate &, class QObject *) + ??5QDataStream@@QAEAAV0@AAC@Z @ 1827 NONAME ; class QDataStream & QDataStream::operator>>(signed char &) + ?historyType@QHistoryState@@QBE?AW4HistoryType@1@XZ @ 1828 NONAME ; enum QHistoryState::HistoryType QHistoryState::historyType(void) const + ??9@YA_NABVQRectF@@0@Z @ 1829 NONAME ; bool operator!=(class QRectF const &, class QRectF const &) + ??0QAbstractEventDispatcherPrivate@@QAE@XZ @ 1830 NONAME ; QAbstractEventDispatcherPrivate::QAbstractEventDispatcherPrivate(void) + ?close@QBuffer@@UAEXXZ @ 1831 NONAME ; void QBuffer::close(void) + ?registerFormat@QSettings@@SA?AW4Format@1@ABVQString@@P6A_NAAVQIODevice@@AAV?$QMap@VQString@@VQVariant@@@@@ZP6A_N1ABV5@@ZW4CaseSensitivity@Qt@@@Z @ 1832 NONAME ; enum QSettings::Format QSettings::registerFormat(class QString const &, bool (*)(class QIODevice &, class QMap &), bool (*)(class QIODevice &, class QMap const &), enum Qt::CaseSensitivity) + ??_EQTimerEvent@@UAE@I@Z @ 1833 NONAME ; QTimerEvent::~QTimerEvent(unsigned int) + ??0QEvent@@QAE@W4Type@0@@Z @ 1834 NONAME ; QEvent::QEvent(enum QEvent::Type) + ?repeated@QString@@QBE?AV1@H@Z @ 1835 NONAME ; class QString QString::repeated(int) const + ?indexOfConstructor@QMetaObject@@QBEHPBD@Z @ 1836 NONAME ; int QMetaObject::indexOfConstructor(char const *) const + ?isEmpty@QRect@@QBE_NXZ @ 1837 NONAME ; bool QRect::isEmpty(void) const + ??MQString@@QBE_NABVQByteArray@@@Z @ 1838 NONAME ; bool QString::operator<(class QByteArray const &) const + ??1QFinalState@@UAE@XZ @ 1839 NONAME ; QFinalState::~QFinalState(void) + ??0QLibrary@@QAE@PAVQObject@@@Z @ 1840 NONAME ; QLibrary::QLibrary(class QObject *) + ??0QRect@@QAE@XZ @ 1841 NONAME ; QRect::QRect(void) + ?begin@QListData@@QBEPAPAXXZ @ 1842 NONAME ; void * * QListData::begin(void) const + ?takeAnimationAt@QAnimationGroup@@QAEPAVQAbstractAnimation@@H@Z @ 1843 NONAME ; class QAbstractAnimation * QAnimationGroup::takeAnimationAt(int) + ?machine@QAbstractTransitionPrivate@@QBEPAVQStateMachine@@XZ @ 1844 NONAME ; class QStateMachine * QAbstractTransitionPrivate::machine(void) const + ?sendPostedEvents@QEventDispatcherSymbian@@AAE_NXZ @ 1845 NONAME ; bool QEventDispatcherSymbian::sendPostedEvents(void) + ?eventType@QEventTransition@@QBE?AW4Type@QEvent@@XZ @ 1846 NONAME ; enum QEvent::Type QEventTransition::eventType(void) const + ??4QCharRef@@QAEAAV0@D@Z @ 1847 NONAME ; class QCharRef & QCharRef::operator=(char) + ??6QDataStream@@QAEAAV0@PBD@Z @ 1848 NONAME ; class QDataStream & QDataStream::operator<<(char const *) + ?q_func@QObjectPrivate@@ABEPBVQObject@@XZ @ 1849 NONAME ; class QObject const * QObjectPrivate::q_func(void) const + ?isPrint@QCharRef@@QBE_NXZ @ 1850 NONAME ; bool QCharRef::isPrint(void) const + ?version@QDataStream@@QBEHXZ @ 1851 NONAME ; int QDataStream::version(void) const + ??6@YAAAVQDataStream@@AAV0@ABVQTime@@@Z @ 1852 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTime const &) + ?getStaticMetaObject@QSettings@@SAABUQMetaObject@@XZ @ 1853 NONAME ; struct QMetaObject const & QSettings::getStaticMetaObject(void) + ?dropMimeData@QAbstractTableModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 1854 NONAME ; bool QAbstractTableModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?weekNumber@QDate@@QBEHPAH@Z @ 1855 NONAME ; int QDate::weekNumber(int *) const + ?updateState@QParallelAnimationGroup@@MAEXW4State@QAbstractAnimation@@0@Z @ 1856 NONAME ; void QParallelAnimationGroup::updateState(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ?mightGrow@QHashData@@QAEXXZ @ 1857 NONAME ; void QHashData::mightGrow(void) + ??6@YA?AVQDebug@@V0@ABVQSize@@@Z @ 1858 NONAME ; class QDebug operator<<(class QDebug, class QSize const &) + ?getMaximum@QDateTimeParser@@UBE?AVQDateTime@@XZ @ 1859 NONAME ; class QDateTime QDateTimeParser::getMaximum(void) const + ?time@QDateTime@@QBE?AVQTime@@XZ @ 1860 NONAME ; class QTime QDateTime::time(void) const + ?pmText@QLocale@@QBE?AVQString@@XZ @ 1861 NONAME ; class QString QLocale::pmText(void) const + ?isNCName@QXmlUtils@@SA_NABVQString@@@Z @ 1862 NONAME ; bool QXmlUtils::isNCName(class QString const &) + ?setCurrent@QDir@@SA_NABVQString@@@Z @ 1863 NONAME ; bool QDir::setCurrent(class QString const &) + ?reset@QCryptographicHash@@QAEXXZ @ 1864 NONAME ; void QCryptographicHash::reset(void) + ??5@YAAAVQDataStream@@AAV0@AAVQRect@@@Z @ 1865 NONAME ; class QDataStream & operator>>(class QDataStream &, class QRect &) + ?rmdir@QAbstractFileEngine@@UBE_NABVQString@@_N@Z @ 1866 NONAME ; bool QAbstractFileEngine::rmdir(class QString const &, bool) const + ?startValue@QVariantAnimation@@QBE?AVQVariant@@XZ @ 1867 NONAME ; class QVariant QVariantAnimation::startValue(void) const + ?unite@QRectF@@QBE?AV1@ABV1@@Z @ 1868 NONAME ; class QRectF QRectF::unite(class QRectF const &) const + ?toUnicode@QTextCodec@@QBE?AVQString@@ABVQByteArray@@@Z @ 1869 NONAME ; class QString QTextCodec::toUnicode(class QByteArray const &) const + ??1QVariant@@QAE@XZ @ 1870 NONAME ; QVariant::~QVariant(void) + ?pattern@QRegExp@@QBE?AVQString@@XZ @ 1871 NONAME ; class QString QRegExp::pattern(void) const + ?amText@QLocale@@QBE?AVQString@@XZ @ 1872 NONAME ; class QString QLocale::amText(void) const + ??0QChildEvent@@QAE@W4Type@QEvent@@PAVQObject@@@Z @ 1873 NONAME ; QChildEvent::QChildEvent(enum QEvent::Type, class QObject *) + ?closeWriteChannel@QProcess@@QAEXXZ @ 1874 NONAME ; void QProcess::closeWriteChannel(void) + ?onEntry@QStateMachine@@MAEXPAVQEvent@@@Z @ 1875 NONAME ; void QStateMachine::onEntry(class QEvent *) + ?moveCenter@QRect@@QAEXABVQPoint@@@Z @ 1876 NONAME ; void QRect::moveCenter(class QPoint const &) + ?setPermissions@QFile@@QAE_NV?$QFlags@W4Permission@QFile@@@@@Z @ 1877 NONAME ; bool QFile::setPermissions(class QFlags) + ??0QXmlStreamReader@@QAE@ABVQString@@@Z @ 1878 NONAME ; QXmlStreamReader::QXmlStreamReader(class QString const &) + ?isDefault@QXmlStreamAttribute@@QBE_NXZ @ 1879 NONAME ; bool QXmlStreamAttribute::isDefault(void) const + ??0QModelIndex@@AAE@HHPAXPBVQAbstractItemModel@@@Z @ 1880 NONAME ; QModelIndex::QModelIndex(int, int, void *, class QAbstractItemModel const *) + ?setLine@QLineF@@QAEXMMMM@Z @ 1881 NONAME ; void QLineF::setLine(float, float, float, float) + ??5@YAAAVQDataStream@@AAV0@AAVQPoint@@@Z @ 1882 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPoint &) + ?set@QThreadStorageData@@QAEPAPAXPAX@Z @ 1883 NONAME ; void * * QThreadStorageData::set(void *) + ?qt_symbian_exception2LeaveL@@YAXABVexception@std@@@Z @ 1884 NONAME ; void qt_symbian_exception2LeaveL(class std::exception const &) + ?hasUrls@QMimeData@@QBE_NXZ @ 1885 NONAME ; bool QMimeData::hasUrls(void) const + ?globalInstanceGet@QMutexPool@@SAPAVQMutex@@PBX@Z @ 1886 NONAME ; class QMutex * QMutexPool::globalInstanceGet(void const *) + ?errorString@QSystemSemaphore@@QBE?AVQString@@XZ @ 1887 NONAME ; class QString QSystemSemaphore::errorString(void) const + ?isNull@QPoint@@QBE_NXZ @ 1888 NONAME ; bool QPoint::isNull(void) const + ?processEvents@QEventLoop@@QAE_NV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@@Z @ 1889 NONAME ; bool QEventLoop::processEvents(class QFlags) + ?readNext@QXmlStreamReader@@QAE?AW4TokenType@1@XZ @ 1890 NONAME ; enum QXmlStreamReader::TokenType QXmlStreamReader::readNext(void) + ?lock@QSharedMemory@@QAE_NXZ @ 1891 NONAME ; bool QSharedMemory::lock(void) + ??_EQFactoryLoader@@UAE@I@Z @ 1892 NONAME ; QFactoryLoader::~QFactoryLoader(unsigned int) + ?toString@QLocale@@QBE?AVQString@@ABVQDateTime@@W4FormatType@1@@Z @ 1893 NONAME ; class QString QLocale::toString(class QDateTime const &, enum QLocale::FormatType) const + ?d_func@QFile@@AAEPAVQFilePrivate@@XZ @ 1894 NONAME ; class QFilePrivate * QFile::d_func(void) + ??8QVariant@@QBE_NABV0@@Z @ 1895 NONAME ; bool QVariant::operator==(class QVariant const &) const + ?fetchAndAddOrdered@QBasicAtomicInt@@QAEHH@Z @ 1896 NONAME ; int QBasicAtomicInt::fetchAndAddOrdered(int) + ?qt_metacast@QStateMachine@@UAEPAXPBD@Z @ 1897 NONAME ; void * QStateMachine::qt_metacast(char const *) + ?isDigit@QXmlUtils@@CA_NVQChar@@@Z @ 1898 NONAME ; bool QXmlUtils::isDigit(class QChar) + ?rmdir@QFSFileEngine@@UBE_NABVQString@@_N@Z @ 1899 NONAME ; bool QFSFileEngine::rmdir(class QString const &, bool) const + ?exitStates@QStateMachinePrivate@@QAE?AV?$QList@PAVQAbstractState@@@@PAVQEvent@@ABV?$QList@PAVQAbstractTransition@@@@@Z @ 1900 NONAME ; class QList QStateMachinePrivate::exitStates(class QEvent *, class QList const &) + ?staticMetaObject@QState@@2UQMetaObject@@B @ 1901 NONAME ; struct QMetaObject const QState::staticMetaObject + ?stop@QTimer@@QAEXXZ @ 1902 NONAME ; void QTimer::stop(void) + ?resolve@QLibrary@@SAPAXABVQString@@PBD@Z @ 1903 NONAME ; void * QLibrary::resolve(class QString const &, char const *) + ??OQString@@QBE_NABVQLatin1String@@@Z @ 1904 NONAME ; bool QString::operator>(class QLatin1String const &) const + ?metaObject@QPropertyAnimation@@UBEPBUQMetaObject@@XZ @ 1905 NONAME ; struct QMetaObject const * QPropertyAnimation::metaObject(void) const + ?isNull@QByteArray@@QBE_NXZ @ 1906 NONAME ; bool QByteArray::isNull(void) const + ?isEntityReference@QXmlStreamReader@@QBE_NXZ @ 1907 NONAME ; bool QXmlStreamReader::isEntityReference(void) const + ?setSize@QFSFileEngine@@UAE_N_J@Z @ 1908 NONAME ; bool QFSFileEngine::setSize(long long) + ?normalized@QString@@QBE?AV1@W4NormalizationForm@1@W4UnicodeVersion@QChar@@@Z @ 1909 NONAME ; class QString QString::normalized(enum QString::NormalizationForm, enum QChar::UnicodeVersion) const + ?toFloat@QLocale@@QBEMABVQString@@PA_N@Z @ 1910 NONAME ; float QLocale::toFloat(class QString const &, bool *) const + ?interval@QTimer@@QBEHXZ @ 1911 NONAME ; int QTimer::interval(void) const + ?childKeys@QSettings@@QBE?AVQStringList@@XZ @ 1912 NONAME ; class QStringList QSettings::childKeys(void) const + ?getStaticMetaObject@QThreadPool@@SAABUQMetaObject@@XZ @ 1913 NONAME ; struct QMetaObject const & QThreadPool::getStaticMetaObject(void) + ?waitForBytesWritten@QIODevice@@UAE_NH@Z @ 1914 NONAME ; bool QIODevice::waitForBytesWritten(int) + ?setStandardInputFile@QProcess@@QAEXABVQString@@@Z @ 1915 NONAME ; void QProcess::setStandardInputFile(class QString const &) + ??0QAbstractEventDispatcher@@QAE@PAVQObject@@@Z @ 1916 NONAME ; QAbstractEventDispatcher::QAbstractEventDispatcher(class QObject *) + ?fileTemplate@QTemporaryFile@@QBE?AVQString@@XZ @ 1917 NONAME ; class QString QTemporaryFile::fileTemplate(void) const + ?d_func@QSharedMemory@@AAEPAVQSharedMemoryPrivate@@XZ @ 1918 NONAME ; class QSharedMemoryPrivate * QSharedMemory::d_func(void) + ?endEntryList@QAbstractFileEngine@@UAEPAVQAbstractFileEngineIterator@@XZ @ 1919 NONAME ; class QAbstractFileEngineIterator * QAbstractFileEngine::endEntryList(void) + ?tr@QAnimationGroup@@SA?AVQString@@PBD0H@Z @ 1920 NONAME ; class QString QAnimationGroup::tr(char const *, char const *, int) + ?onEntry@QFinalState@@MAEXPAVQEvent@@@Z @ 1921 NONAME ; void QFinalState::onEntry(class QEvent *) + ?load@QLibrary@@QAE_NXZ @ 1922 NONAME ; bool QLibrary::load(void) + ??6@YAAAVQDataStream@@AAV0@ABVQPoint@@@Z @ 1923 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPoint const &) + ?setFileTemplate@QTemporaryFile@@QAEXABVQString@@@Z @ 1924 NONAME ; void QTemporaryFile::setFileTemplate(class QString const &) + ??0QSettings@@QAE@W4Scope@0@ABVQString@@1PAVQObject@@@Z @ 1925 NONAME ; QSettings::QSettings(enum QSettings::Scope, class QString const &, class QString const &, class QObject *) + ?category@QChar@@QBE?AW4Category@1@XZ @ 1926 NONAME ; enum QChar::Category QChar::category(void) const + ?fragment@QUrl@@QBE?AVQString@@XZ @ 1927 NONAME ; class QString QUrl::fragment(void) const + ?toULong@QByteArray@@QBEKPA_NH@Z @ 1928 NONAME ; unsigned long QByteArray::toULong(bool *, int) const + ??5@YAAAVQDataStream@@AAV0@AAVQUrl@@@Z @ 1929 NONAME ; class QDataStream & operator>>(class QDataStream &, class QUrl &) + ?writeEmptyElement@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 1930 NONAME ; void QXmlStreamWriter::writeEmptyElement(class QString const &, class QString const &) + ?toStart@QTextBoundaryFinder@@QAEXXZ @ 1931 NONAME ; void QTextBoundaryFinder::toStart(void) + ?fromUnicode@QTextEncoder@@QAE?AVQByteArray@@PBVQChar@@H@Z @ 1932 NONAME ; class QByteArray QTextEncoder::fromUnicode(class QChar const *, int) + ?processingInstructionData@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 1933 NONAME ; class QStringRef QXmlStreamReader::processingInstructionData(void) const + ?onExit@QFinalState@@MAEXPAVQEvent@@@Z @ 1934 NONAME ; void QFinalState::onExit(class QEvent *) + ?insert@QListData@@QAEPAPAXH@Z @ 1935 NONAME ; void * * QListData::insert(int) + ??_EQChildEvent@@UAE@I@Z @ 1936 NONAME ; QChildEvent::~QChildEvent(unsigned int) + ?setRect@QRect@@QAEXHHHH@Z @ 1937 NONAME ; void QRect::setRect(int, int, int, int) + ?isCompressed@QResource@@QBE_NXZ @ 1938 NONAME ; bool QResource::isCompressed(void) const + ?isValid@QVariant@@QBE_NXZ @ 1939 NONAME ; bool QVariant::isValid(void) const + ?setGenerateByteOrderMark@QTextStream@@QAEX_N@Z @ 1940 NONAME ; void QTextStream::setGenerateByteOrderMark(bool) + ?toLower@QByteArray@@QBE?AV1@XZ @ 1941 NONAME ; class QByteArray QByteArray::toLower(void) const + ??4QString@@QAEAAV0@ABV0@@Z @ 1942 NONAME ; class QString & QString::operator=(class QString const &) + ?searchPaths@QResource@@SA?AVQStringList@@XZ @ 1943 NONAME ; class QStringList QResource::searchPaths(void) + ?readLink@QFileInfo@@QBE?AVQString@@XZ @ 1944 NONAME ; class QString QFileInfo::readLink(void) const + ??1QSettings@@UAE@XZ @ 1945 NONAME ; QSettings::~QSettings(void) + ?beginResetModel@QAbstractItemModel@@IAEXXZ @ 1946 NONAME ; void QAbstractItemModel::beginResetModel(void) + ?handleTransitionSignal@QStateMachinePrivate@@QAEXPAVQObject@@HPAPAX@Z @ 1947 NONAME ; void QStateMachinePrivate::handleTransitionSignal(class QObject *, int, void * *) + ??AQByteArray@@QAE?AVQByteRef@@H@Z @ 1948 NONAME ; class QByteRef QByteArray::operator[](int) + ??5@YAAAVQDataStream@@AAV0@AAVQChar@@@Z @ 1949 NONAME ; class QDataStream & operator>>(class QDataStream &, class QChar &) + ?trUtf8@QHistoryState@@SA?AVQString@@PBD0@Z @ 1950 NONAME ; class QString QHistoryState::trUtf8(char const *, char const *) + ?setMapping@QSignalMapper@@QAEXPAVQObject@@0@Z @ 1951 NONAME ; void QSignalMapper::setMapping(class QObject *, class QObject *) + ?create@QVariant@@IAEXHPBX@Z @ 1952 NONAME ; void QVariant::create(int, void const *) + ?property@QObject@@QBE?AVQVariant@@PBD@Z @ 1953 NONAME ; class QVariant QObject::property(char const *) const + ??6QTextStream@@QAEAAV0@PBX@Z @ 1954 NONAME ; class QTextStream & QTextStream::operator<<(void const *) + ?indexOf@QString@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 1955 NONAME ; int QString::indexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?free_helper@QHashData@@QAEXP6AXPAUNode@1@@Z@Z @ 1956 NONAME ; void QHashData::free_helper(void (*)(struct QHashData::Node *)) + ??0QTime@@QAE@XZ @ 1957 NONAME ; QTime::QTime(void) + ??_EQSystemLocale@@UAE@I@Z @ 1958 NONAME ; QSystemLocale::~QSystemLocale(unsigned int) + ?fetchAndAddRelease@QBasicAtomicInt@@QAEHH@Z @ 1959 NONAME ; int QBasicAtomicInt::fetchAndAddRelease(int) + ?isRunning@QStateMachine@@QBE_NXZ @ 1960 NONAME ; bool QStateMachine::isRunning(void) const + ?setMapping@QSignalMapper@@QAEXPAVQObject@@ABVQString@@@Z @ 1961 NONAME ; void QSignalMapper::setMapping(class QObject *, class QString const &) + ?d_func@QFinalState@@ABEPBVQFinalStatePrivate@@XZ @ 1962 NONAME ; class QFinalStatePrivate const * QFinalState::d_func(void) const + ?static_metacall@QMetaObject@@QBEHW4Call@1@HPAPAX@Z @ 1963 NONAME ; int QMetaObject::static_metacall(enum QMetaObject::Call, int, void * *) const + ?setByteOrder@QDataStream@@QAEXW4ByteOrder@1@@Z @ 1964 NONAME ; void QDataStream::setByteOrder(enum QDataStream::ByteOrder) + ?sendSpontaneousEvent@QCoreApplication@@CA_NPAVQObject@@PAVQEvent@@@Z @ 1965 NONAME ; bool QCoreApplication::sendSpontaneousEvent(class QObject *, class QEvent *) + ?readWriteLock@QWriteLocker@@QBEPAVQReadWriteLock@@XZ @ 1966 NONAME ; class QReadWriteLock * QWriteLocker::readWriteLock(void) const + ?setPermissions@QFile@@SA_NABVQString@@V?$QFlags@W4Permission@QFile@@@@@Z @ 1967 NONAME ; bool QFile::setPermissions(class QString const &, class QFlags) + ?setupChildProcess@QProcess@@MAEXXZ @ 1968 NONAME ; void QProcess::setupChildProcess(void) + ?parent@QPersistentModelIndex@@QBE?AVQModelIndex@@XZ @ 1969 NONAME ; class QModelIndex QPersistentModelIndex::parent(void) const + ?setDevice@QTextStream@@QAEXPAVQIODevice@@@Z @ 1970 NONAME ; void QTextStream::setDevice(class QIODevice *) + ?pos@QFSFileEngine@@UBE_JXZ @ 1971 NONAME ; long long QFSFileEngine::pos(void) const + ?isEmpty@QRectF@@QBE_NXZ @ 1972 NONAME ; bool QRectF::isEmpty(void) const + ?invoke@QMetaMethod@@QBE_NPAVQObject@@W4ConnectionType@Qt@@VQGenericArgument@@222222222@Z @ 1973 NONAME ; bool QMetaMethod::invoke(class QObject *, enum Qt::ConnectionType, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) const + ?QStringList_contains@QtPrivate@@YA?AVQBool@@PBVQStringList@@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 1974 NONAME ; class QBool QtPrivate::QStringList_contains(class QStringList const *, class QString const &, enum Qt::CaseSensitivity) + ?tr@QEventLoop@@SA?AVQString@@PBD0H@Z @ 1975 NONAME ; class QString QEventLoop::tr(char const *, char const *, int) + ?append@QXmlStreamAttributes@@QAEXABVQString@@0@Z @ 1976 NONAME ; void QXmlStreamAttributes::append(class QString const &, class QString const &) + ?notifySignal@QMetaProperty@@QBE?AVQMetaMethod@@XZ @ 1977 NONAME ; class QMetaMethod QMetaProperty::notifySignal(void) const + ??0QTextStream@@QAE@PAU__sFILE@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 1978 NONAME ; QTextStream::QTextStream(struct __sFILE *, class QFlags) + ??1QThread@@UAE@XZ @ 1979 NONAME ; QThread::~QThread(void) + ??_EQModelIndex@@QAE@I@Z @ 1980 NONAME ; QModelIndex::~QModelIndex(unsigned int) + ??0QAnimationGroup@@IAE@AAVQAnimationGroupPrivate@@PAVQObject@@@Z @ 1981 NONAME ; QAnimationGroup::QAnimationGroup(class QAnimationGroupPrivate &, class QObject *) + ?tr@QSignalTransition@@SA?AVQString@@PBD0@Z @ 1982 NONAME ; class QString QSignalTransition::tr(char const *, char const *) + ?testAttribute@QCoreApplicationPrivate@@SA_NI@Z @ 1983 NONAME ; bool QCoreApplicationPrivate::testAttribute(unsigned int) + ??0QParallelAnimationGroup@@QAE@PAVQObject@@@Z @ 1984 NONAME ; QParallelAnimationGroup::QParallelAnimationGroup(class QObject *) + ?updateState@QSequentialAnimationGroup@@MAEXW4State@QAbstractAnimation@@0@Z @ 1985 NONAME ; void QSequentialAnimationGroup::updateState(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ??0QSocketNotifier@@QAE@HW4Type@0@PAVQObject@@@Z @ 1986 NONAME ; QSocketNotifier::QSocketNotifier(int, enum QSocketNotifier::Type, class QObject *) + ?d_func@QTemporaryFile@@AAEPAVQTemporaryFilePrivate@@XZ @ 1987 NONAME ; class QTemporaryFilePrivate * QTemporaryFile::d_func(void) + ??_EQFinalState@@UAE@I@Z @ 1988 NONAME ; QFinalState::~QFinalState(unsigned int) + ?bytesWritten@QIODevice@@IAEX_J@Z @ 1989 NONAME ; void QIODevice::bytesWritten(long long) + ?staticMetaObject@QProcess@@2UQMetaObject@@B @ 1990 NONAME ; struct QMetaObject const QProcess::staticMetaObject + ?insert@QString@@QAEAAV1@HPBVQChar@@H@Z @ 1991 NONAME ; class QString & QString::insert(int, class QChar const *, int) + ?canConvert@QVariant@@QBE_NW4Type@1@@Z @ 1992 NONAME ; bool QVariant::canConvert(enum QVariant::Type) const + ?endMicrostep@QStateMachine@@MAEXPAVQEvent@@@Z @ 1993 NONAME ; void QStateMachine::endMicrostep(class QEvent *) + ??0QPersistentModelIndex@@QAE@ABVQModelIndex@@@Z @ 1994 NONAME ; QPersistentModelIndex::QPersistentModelIndex(class QModelIndex const &) + ?setNum@QByteArray@@QAEAAV1@FH@Z @ 1995 NONAME ; class QByteArray & QByteArray::setNum(short, int) + ??6QDataStream@@QAEAAV0@H@Z @ 1996 NONAME ; class QDataStream & QDataStream::operator<<(int) + ?resize@QBitArray@@QAEXH@Z @ 1997 NONAME ; void QBitArray::resize(int) + ??5QDataStream@@QAEAAV0@AA_N@Z @ 1998 NONAME ; class QDataStream & QDataStream::operator>>(bool &) + ?right@QString@@QBE?AV1@H@Z @ 1999 NONAME ; class QString QString::right(int) const + ?countryToString@QLocale@@SA?AVQString@@W4Country@1@@Z @ 2000 NONAME ; class QString QLocale::countryToString(enum QLocale::Country) + ?metaObject@QPauseAnimation@@UBEPBUQMetaObject@@XZ @ 2001 NONAME ; struct QMetaObject const * QPauseAnimation::metaObject(void) const + ??9QString@@QBE_NABVQLatin1String@@@Z @ 2002 NONAME ; bool QString::operator!=(class QLatin1String const &) const + ?toShort@QLocale@@QBEFABVQString@@PA_NH@Z @ 2003 NONAME ; short QLocale::toShort(class QString const &, bool *, int) const + ?mid@QString@@QBE?AV1@HH@Z @ 2004 NONAME ; class QString QString::mid(int, int) const + ?setAuthority@QUrl@@QAEXABVQString@@@Z @ 2005 NONAME ; void QUrl::setAuthority(class QString const &) + ?d_func@QFileSystemWatcher@@ABEPBVQFileSystemWatcherPrivate@@XZ @ 2006 NONAME ; class QFileSystemWatcherPrivate const * QFileSystemWatcher::d_func(void) const + ?setNum@QString@@QAEAAV1@MDH@Z @ 2007 NONAME ; class QString & QString::setNum(float, char, int) + ?qt_metacast@QFinalState@@UAEPAXPBD@Z @ 2008 NONAME ; void * QFinalState::qt_metacast(char const *) + ?toJulianDay@QDate@@QBEHXZ @ 2009 NONAME ; int QDate::toJulianDay(void) const + ?flush@QEventDispatcherSymbian@@UAEXXZ @ 2010 NONAME ; void QEventDispatcherSymbian::flush(void) + ?qt_metacast@QAbstractTableModel@@UAEPAXPBD@Z @ 2011 NONAME ; void * QAbstractTableModel::qt_metacast(char const *) + ??0QXmlStreamReader@@QAE@PAVQIODevice@@@Z @ 2012 NONAME ; QXmlStreamReader::QXmlStreamReader(class QIODevice *) + ?node_delete@QMapData@@QAEXQAPAUNode@1@HPAU21@@Z @ 2013 NONAME ; void QMapData::node_delete(struct QMapData::Node * * const, int, struct QMapData::Node *) + ?clear@QXmlStreamStringRef@@QAEXXZ @ 2014 NONAME ; void QXmlStreamStringRef::clear(void) + ?resetStatus@QDataStream@@QAEXXZ @ 2015 NONAME ; void QDataStream::resetStatus(void) + ?encodedQueryItems@QUrl@@QBE?AV?$QList@U?$QPair@VQByteArray@@V1@@@@@XZ @ 2016 NONAME ; class QList > QUrl::encodedQueryItems(void) const + ?systemEnvironment@QProcess@@SA?AVQStringList@@XZ @ 2017 NONAME ; class QStringList QProcess::systemEnvironment(void) + ??0QAbstractTableModel@@QAE@PAVQObject@@@Z @ 2018 NONAME ; QAbstractTableModel::QAbstractTableModel(class QObject *) + ?boundedTo@QSizeF@@QBE?AV1@ABV1@@Z @ 2019 NONAME ; class QSizeF QSizeF::boundedTo(class QSizeF const &) const + ?onExit@QState@@MAEXPAVQEvent@@@Z @ 2020 NONAME ; void QState::onExit(class QEvent *) + ?tr@QSettings@@SA?AVQString@@PBD0H@Z @ 2021 NONAME ; class QString QSettings::tr(char const *, char const *, int) + ?right@@YAAAVQTextStream@@AAV1@@Z @ 2022 NONAME ; class QTextStream & right(class QTextStream &) + ?mirroredChar@QCharRef@@QBE?AVQChar@@XZ @ 2023 NONAME ; class QChar QCharRef::mirroredChar(void) const + ?modelAboutToBeReset@QAbstractItemModel@@AAEXXZ @ 2024 NONAME ; void QAbstractItemModel::modelAboutToBeReset(void) + ?columnsMoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH0H@Z @ 2025 NONAME ; void QAbstractItemModel::columnsMoved(class QModelIndex const &, int, int, class QModelIndex const &, int) + ?qt_metacast@QAbstractItemModel@@UAEPAXPBD@Z @ 2026 NONAME ; void * QAbstractItemModel::qt_metacast(char const *) + ?toUInt@QLocale@@QBEIABVQString@@PA_NH@Z @ 2027 NONAME ; unsigned int QLocale::toUInt(class QString const &, bool *, int) const + ?type@QTextBoundaryFinder@@QBE?AW4BoundaryType@1@XZ @ 2028 NONAME ; enum QTextBoundaryFinder::BoundaryType QTextBoundaryFinder::type(void) const + ?count@QString@@QBEHXZ @ 2029 NONAME ; int QString::count(void) const + ??1QXmlStreamStringRef@@QAE@XZ @ 2030 NONAME ; QXmlStreamStringRef::~QXmlStreamStringRef(void) + ?refreshAll@QFactoryLoader@@SAXXZ @ 2031 NONAME ; void QFactoryLoader::refreshAll(void) + ?setQObjectShared@ExternalRefCountData@QtSharedPointer@@QAEXPBVQObject@@_N@Z @ 2032 NONAME ; void QtSharedPointer::ExternalRefCountData::setQObjectShared(class QObject const *, bool) + ?isTestAndSetNative@QBasicAtomicInt@@SA_NXZ @ 2033 NONAME ; bool QBasicAtomicInt::isTestAndSetNative(void) + ?hasIndex@QAbstractItemModel@@QBE_NHHABVQModelIndex@@@Z @ 2034 NONAME ; bool QAbstractItemModel::hasIndex(int, int, class QModelIndex const &) const + ?dec@@YAAAVQTextStream@@AAV1@@Z @ 2035 NONAME ; class QTextStream & dec(class QTextStream &) + ?staticMetaObject@QSettings@@2UQMetaObject@@B @ 2036 NONAME ; struct QMetaObject const QSettings::staticMetaObject + ??0QTextEncoder@@QAE@PBVQTextCodec@@@Z @ 2037 NONAME ; QTextEncoder::QTextEncoder(class QTextCodec const *) + ??0QAbstractTransition@@QAE@PAVQState@@@Z @ 2038 NONAME ; QAbstractTransition::QAbstractTransition(class QState *) + ?writeStartDocument@QXmlStreamWriter@@QAEXABVQString@@_N@Z @ 2039 NONAME ; void QXmlStreamWriter::writeStartDocument(class QString const &, bool) + ??0QByteArray@@QAE@ABV0@@Z @ 2040 NONAME ; QByteArray::QByteArray(class QByteArray const &) + ??0QFlag@@QAE@H@Z @ 2041 NONAME ; QFlag::QFlag(int) + ?setX@QRect@@QAEXH@Z @ 2042 NONAME ; void QRect::setX(int) + ??1QBitArray@@QAE@XZ @ 2043 NONAME ; QBitArray::~QBitArray(void) + ?getStaticMetaObject@QSharedMemory@@SAABUQMetaObject@@XZ @ 2044 NONAME ; struct QMetaObject const & QSharedMemory::getStaticMetaObject(void) + ??8@YA_NABVQRect@@0@Z @ 2045 NONAME ; bool operator==(class QRect const &, class QRect const &) + ?endsWith@QString@@QBE_NABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 2046 NONAME ; bool QString::endsWith(class QLatin1String const &, enum Qt::CaseSensitivity) const + ?unlock@QWriteLocker@@QAEXXZ @ 2047 NONAME ; void QWriteLocker::unlock(void) + ?postEvent@QCoreApplication@@SAXPAVQObject@@PAVQEvent@@@Z @ 2048 NONAME ; void QCoreApplication::postEvent(class QObject *, class QEvent *) + ??PQByteRef@@QBE_ND@Z @ 2049 NONAME ; bool QByteRef::operator>=(char) const + ?q_func@QEventTransitionPrivate@@ABEPBVQEventTransition@@XZ @ 2050 NONAME ; class QEventTransition const * QEventTransitionPrivate::q_func(void) const + ?qt_metacall@QAbstractState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2051 NONAME ; int QAbstractState::qt_metacall(enum QMetaObject::Call, int, void * *) + ?children@QResource@@IBE?AVQStringList@@XZ @ 2052 NONAME ; class QStringList QResource::children(void) const + ?fill@QString@@QAEAAV1@VQChar@@H@Z @ 2053 NONAME ; class QString & QString::fill(class QChar, int) + ?staticMetaObject@QTextCodecPlugin@@2UQMetaObject@@B @ 2054 NONAME ; struct QMetaObject const QTextCodecPlugin::staticMetaObject + ?variantLessThan@QAbstractItemModelPrivate@@SA_NABVQVariant@@0@Z @ 2055 NONAME ; bool QAbstractItemModelPrivate::variantLessThan(class QVariant const &, class QVariant const &) + ?setAccepted@QEvent@@QAEX_N@Z @ 2056 NONAME ; void QEvent::setAccepted(bool) + ?tr@QHistoryState@@SA?AVQString@@PBD0H@Z @ 2057 NONAME ; class QString QHistoryState::tr(char const *, char const *, int) + ?d_func@QAbstractEventDispatcher@@AAEPAVQAbstractEventDispatcherPrivate@@XZ @ 2058 NONAME ; class QAbstractEventDispatcherPrivate * QAbstractEventDispatcher::d_func(void) + ?utcOffset@QDateTime@@QBEHXZ @ 2059 NONAME ; int QDateTime::utcOffset(void) const + ?qt_metacast@QIODevice@@UAEPAXPBD@Z @ 2060 NONAME ; void * QIODevice::qt_metacast(char const *) + ?ry@QPointF@@QAEAAMXZ @ 2061 NONAME ; float & QPointF::ry(void) + ?pattern@QByteArrayMatcher@@QBE?AVQByteArray@@XZ @ 2062 NONAME ; class QByteArray QByteArrayMatcher::pattern(void) const + ?typeName@QMetaMethod@@QBEPBDXZ @ 2063 NONAME ; char const * QMetaMethod::typeName(void) const + ??0QDirIterator@@QAE@ABVQString@@V?$QFlags@W4IteratorFlag@QDirIterator@@@@@Z @ 2064 NONAME ; QDirIterator::QDirIterator(class QString const &, class QFlags) + ??1QState@@UAE@XZ @ 2065 NONAME ; QState::~QState(void) + ?toLatin1@QString@@QBE?AVQByteArray@@XZ @ 2066 NONAME ; class QByteArray QString::toLatin1(void) const + ?completeSuffix@QFileInfo@@QBE?AVQString@@XZ @ 2067 NONAME ; class QString QFileInfo::completeSuffix(void) const + ?codecForHtml@QTextCodec@@SAPAV1@ABVQByteArray@@PAV1@@Z @ 2068 NONAME ; class QTextCodec * QTextCodec::codecForHtml(class QByteArray const &, class QTextCodec *) + ?writeStartElement@QXmlStreamWriter@@QAEXABVQString@@@Z @ 2069 NONAME ; void QXmlStreamWriter::writeStartElement(class QString const &) + ??0QVariant@@QAE@ABVQRectF@@@Z @ 2070 NONAME ; QVariant::QVariant(class QRectF const &) + ?entryList@QAbstractFileEngine@@UBE?AVQStringList@@V?$QFlags@W4Filter@QDir@@@@ABV2@@Z @ 2071 NONAME ; class QStringList QAbstractFileEngine::entryList(class QFlags, class QStringList const &) const + ?longMonthName@QDate@@SA?AVQString@@HW4MonthNameType@1@@Z @ 2072 NONAME ; class QString QDate::longMonthName(int, enum QDate::MonthNameType) + ?installTranslator@QCoreApplication@@SAXPAVQTranslator@@@Z @ 2073 NONAME ; void QCoreApplication::installTranslator(class QTranslator *) + ?writeAttribute@QXmlStreamWriter@@QAEXABVQString@@00@Z @ 2074 NONAME ; void QXmlStreamWriter::writeAttribute(class QString const &, class QString const &, class QString const &) + ?clear@QByteArray@@QAEXXZ @ 2075 NONAME ; void QByteArray::clear(void) + ?removeState@QStateMachine@@QAEXPAVQAbstractState@@@Z @ 2076 NONAME ; void QStateMachine::removeState(class QAbstractState *) + ?setDuration@QVariantAnimation@@QAEXH@Z @ 2077 NONAME ; void QVariantAnimation::setDuration(int) + ??PQByteArray@@QBE_NABVQString@@@Z @ 2078 NONAME ; bool QByteArray::operator>=(class QString const &) const + ?setCell@QCharRef@@QAEXE@Z @ 2079 NONAME ; void QCharRef::setCell(unsigned char) + ??1ConverterState@QTextCodec@@QAE@XZ @ 2080 NONAME ; QTextCodec::ConverterState::~ConverterState(void) + ??0QModelIndex@@QAE@ABV0@@Z @ 2081 NONAME ; QModelIndex::QModelIndex(class QModelIndex const &) + ?readAll@QTextStream@@QAE?AVQString@@XZ @ 2082 NONAME ; class QString QTextStream::readAll(void) + ??0QEventTransition@@IAE@AAVQEventTransitionPrivate@@PAVQState@@@Z @ 2083 NONAME ; QEventTransition::QEventTransition(class QEventTransitionPrivate &, class QState *) + ?toDouble@QLocale@@QBENABVQString@@PA_N@Z @ 2084 NONAME ; double QLocale::toDouble(class QString const &, bool *) const + ??1QMetaCallEvent@@UAE@XZ @ 2085 NONAME ; QMetaCallEvent::~QMetaCallEvent(void) + ?arg@QString@@QBE?AV1@JHHABVQChar@@@Z @ 2086 NONAME ; class QString QString::arg(long, int, int, class QChar const &) const + ?arg@QString@@QBE?AV1@_KHHABVQChar@@@Z @ 2087 NONAME ; class QString QString::arg(unsigned long long, int, int, class QChar const &) const + ?moveCenter@QRectF@@QAEXABVQPointF@@@Z @ 2088 NONAME ; void QRectF::moveCenter(class QPointF const &) + ?setSorting@QDir@@QAEXV?$QFlags@W4SortFlag@QDir@@@@@Z @ 2089 NONAME ; void QDir::setSorting(class QFlags) + ?seek@QAbstractFileEngine@@UAE_N_J@Z @ 2090 NONAME ; bool QAbstractFileEngine::seek(long long) + ?setErrorState@QState@@QAEXPAVQAbstractState@@@Z @ 2091 NONAME ; void QState::setErrorState(class QAbstractState *) + ?d_func@QAbstractFileEngine@@AAEPAVQAbstractFileEnginePrivate@@XZ @ 2092 NONAME ; class QAbstractFileEnginePrivate * QAbstractFileEngine::d_func(void) + ?open@QFile@@QAE_NPAU__sFILE@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 2093 NONAME ; bool QFile::open(struct __sFILE *, class QFlags) + ??0QRectF@@QAE@ABVQPointF@@ABVQSizeF@@@Z @ 2094 NONAME ; QRectF::QRectF(class QPointF const &, class QSizeF const &) + ??9QModelIndex@@QBE_NABV0@@Z @ 2095 NONAME ; bool QModelIndex::operator!=(class QModelIndex const &) const + ?qErrnoWarning@@YAXPBDZZ @ 2096 NONAME ; void qErrnoWarning(char const *, ...) + ??0QDateTime@@QAE@XZ @ 2097 NONAME ; QDateTime::QDateTime(void) + ?compare@QStringRef@@QBEHABVQString@@W4CaseSensitivity@Qt@@@Z @ 2098 NONAME ; int QStringRef::compare(class QString const &, enum Qt::CaseSensitivity) const + ?joining@QChar@@SA?AW4Joining@1@G@Z @ 2099 NONAME ; enum QChar::Joining QChar::joining(unsigned short) + ?setTop@QRectF@@QAEXM@Z @ 2100 NONAME ; void QRectF::setTop(float) + ?toFloat@QByteArray@@QBEMPA_N@Z @ 2101 NONAME ; float QByteArray::toFloat(bool *) const + ?mutex@QMutexLocker@@QBEPAVQMutex@@XZ @ 2102 NONAME ; class QMutex * QMutexLocker::mutex(void) const + ?self@QCoreApplication@@0PAV1@A @ 2103 NONAME ; class QCoreApplication * QCoreApplication::self + ?setProperty@QObject@@QAE_NPBDABVQVariant@@@Z @ 2104 NONAME ; bool QObject::setProperty(char const *, class QVariant const &) + ?endsWith@QString@@QBE_NABVQChar@@W4CaseSensitivity@Qt@@@Z @ 2105 NONAME ; bool QString::endsWith(class QChar const &, enum Qt::CaseSensitivity) const + ?setUrls@QMimeData@@QAEXABV?$QList@VQUrl@@@@@Z @ 2106 NONAME ; void QMimeData::setUrls(class QList const &) + ?setObjectName@QObject@@QAEXABVQString@@@Z @ 2107 NONAME ; void QObject::setObjectName(class QString const &) + ?sendEvent@QCoreApplication@@SA_NPAVQObject@@PAVQEvent@@@Z @ 2108 NONAME ; bool QCoreApplication::sendEvent(class QObject *, class QEvent *) + ?translated@QLineF@@QBE?AV1@ABVQPointF@@@Z @ 2109 NONAME ; class QLineF QLineF::translated(class QPointF const &) const + ?canonicalPath@QDir@@QBE?AVQString@@XZ @ 2110 NONAME ; class QString QDir::canonicalPath(void) const + ?trUtf8@QMetaObject@@QBE?AVQString@@PBD0H@Z @ 2111 NONAME ; class QString QMetaObject::trUtf8(char const *, char const *, int) const + ?fromLatin1_helper@QString@@CAPAUData@1@PBDH@Z @ 2112 NONAME ; struct QString::Data * QString::fromLatin1_helper(char const *, int) + ?isNull@QString@@QBE_NXZ @ 2113 NONAME ; bool QString::isNull(void) const + ??_EQObjectPrivate@@UAE@I@Z @ 2114 NONAME ; QObjectPrivate::~QObjectPrivate(unsigned int) + ?d_func@QAnimationGroup@@AAEPAVQAnimationGroupPrivate@@XZ @ 2115 NONAME ; class QAnimationGroupPrivate * QAnimationGroup::d_func(void) + ?toPointF@QVariant@@QBE?AVQPointF@@XZ @ 2116 NONAME ; class QPointF QVariant::toPointF(void) const + ??0QXmlStreamStringRef@@QAE@XZ @ 2117 NONAME ; QXmlStreamStringRef::QXmlStreamStringRef(void) + ?name@QMetaEnum@@QBEPBDXZ @ 2118 NONAME ; char const * QMetaEnum::name(void) const + ?prepend@QString@@QAEAAV1@VQChar@@@Z @ 2119 NONAME ; class QString & QString::prepend(class QChar) + ?endsWith@QByteArray@@QBE_NPBD@Z @ 2120 NONAME ; bool QByteArray::endsWith(char const *) const + ?uppercasebase@@YAAAVQTextStream@@AAV1@@Z @ 2121 NONAME ; class QTextStream & uppercasebase(class QTextStream &) + ?setImageData@QMimeData@@QAEXABVQVariant@@@Z @ 2122 NONAME ; void QMimeData::setImageData(class QVariant const &) + ?detach@QDateTime@@AAEXXZ @ 2123 NONAME ; void QDateTime::detach(void) + ??0QStringMatcher@@QAE@XZ @ 2124 NONAME ; QStringMatcher::QStringMatcher(void) + ??0QCoreApplication@@QAE@AAHPAPAD@Z @ 2125 NONAME ; QCoreApplication::QCoreApplication(int &, char * *) + ?toDateTime@QVariant@@QBE?AVQDateTime@@XZ @ 2126 NONAME ; class QDateTime QVariant::toDateTime(void) const + ??0QAbstractFileEngine@@IAE@AAVQAbstractFileEnginePrivate@@@Z @ 2127 NONAME ; QAbstractFileEngine::QAbstractFileEngine(class QAbstractFileEnginePrivate &) + ?mapped@QSignalMapper@@IAEXPAVQObject@@@Z @ 2128 NONAME ; void QSignalMapper::mapped(class QObject *) + ?rename@QAbstractFileEngine@@UAE_NABVQString@@@Z @ 2129 NONAME ; bool QAbstractFileEngine::rename(class QString const &) + ?disconnect@QObject@@QAE_NPBV1@PBD@Z @ 2130 NONAME ; bool QObject::disconnect(class QObject const *, char const *) + ?qt_global_mutexpool@@3PAVQMutexPool@@A @ 2131 NONAME ; class QMutexPool * qt_global_mutexpool + ?number@QByteArray@@SA?AV1@HH@Z @ 2132 NONAME ; class QByteArray QByteArray::number(int, int) + ??9QString@@QBE_NABV0@@Z @ 2133 NONAME ; bool QString::operator!=(class QString const &) const + ?tr@QAnimationGroup@@SA?AVQString@@PBD0@Z @ 2134 NONAME ; class QString QAnimationGroup::tr(char const *, char const *) + ?monthName@QLocale@@QBE?AVQString@@HW4FormatType@1@@Z @ 2135 NONAME ; class QString QLocale::monthName(int, enum QLocale::FormatType) const + ??0QAbstractState@@IAE@AAVQAbstractStatePrivate@@PAVQState@@@Z @ 2136 NONAME ; QAbstractState::QAbstractState(class QAbstractStatePrivate &, class QState *) + ?remove@QSettings@@QAEXABVQString@@@Z @ 2137 NONAME ; void QSettings::remove(class QString const &) + ?buddy@QAbstractItemModel@@UBE?AVQModelIndex@@ABV2@@Z @ 2138 NONAME ; class QModelIndex QAbstractItemModel::buddy(class QModelIndex const &) const + ??1QFileInfo@@QAE@XZ @ 2139 NONAME ; QFileInfo::~QFileInfo(void) + ?tr@QEventTransition@@SA?AVQString@@PBD0@Z @ 2140 NONAME ; class QString QEventTransition::tr(char const *, char const *) + ?group@QLocalePrivate@@QBE?AVQChar@@XZ @ 2141 NONAME ; class QChar QLocalePrivate::group(void) const + ?parent@QModelIndex@@QBE?AV1@XZ @ 2142 NONAME ; class QModelIndex QModelIndex::parent(void) const + ??1QIODevicePrivate@@UAE@XZ @ 2143 NONAME ; QIODevicePrivate::~QIODevicePrivate(void) + ??NQLatin1String@@QBE_NABVQString@@@Z @ 2144 NONAME ; bool QLatin1String::operator<=(class QString const &) const + ?rowsAboutToBeRemoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 2145 NONAME ; void QAbstractItemModel::rowsAboutToBeRemoved(class QModelIndex const &, int, int) + ?intersect@QRect@@QBE?AV1@ABV1@@Z @ 2146 NONAME ; class QRect QRect::intersect(class QRect const &) const + ??0QTextCodecPlugin@@QAE@PAVQObject@@@Z @ 2147 NONAME ; QTextCodecPlugin::QTextCodecPlugin(class QObject *) + ?applicationName@QSettings@@QBE?AVQString@@XZ @ 2148 NONAME ; class QString QSettings::applicationName(void) const + ?trUtf8@QAbstractAnimation@@SA?AVQString@@PBD0@Z @ 2149 NONAME ; class QString QAbstractAnimation::trUtf8(char const *, char const *) + ??4QPersistentModelIndex@@QAEAAV0@ABVQModelIndex@@@Z @ 2150 NONAME ; class QPersistentModelIndex & QPersistentModelIndex::operator=(class QModelIndex const &) + ?flush@QFile@@QAE_NXZ @ 2151 NONAME ; bool QFile::flush(void) + ??7QBasicAtomicInt@@QBE_NXZ @ 2152 NONAME ; bool QBasicAtomicInt::operator!(void) const + ??8QUuid@@QBE_NABU0@@Z @ 2153 NONAME ; bool QUuid::operator==(struct QUuid const &) const + ?staticMetaObject@QEventTransition@@2UQMetaObject@@B @ 2154 NONAME ; struct QMetaObject const QEventTransition::staticMetaObject + ?compare@QString@@SAHABVQLatin1String@@ABV1@W4CaseSensitivity@Qt@@@Z @ 2155 NONAME ; int QString::compare(class QLatin1String const &, class QString const &, enum Qt::CaseSensitivity) + ?toUInt@QString@@QBEIPA_NH@Z @ 2156 NONAME ; unsigned int QString::toUInt(bool *, int) const + ?mimeTypes@QAbstractItemModel@@UBE?AVQStringList@@XZ @ 2157 NONAME ; class QStringList QAbstractItemModel::mimeTypes(void) const + ??1QStateMachine@@UAE@XZ @ 2158 NONAME ; QStateMachine::~QStateMachine(void) + ?isFetchAndStoreWaitFree@QBasicAtomicInt@@SA_NXZ @ 2159 NONAME ; bool QBasicAtomicInt::isFetchAndStoreWaitFree(void) + ?tr@QTranslator@@SA?AVQString@@PBD0H@Z @ 2160 NONAME ; class QString QTranslator::tr(char const *, char const *, int) + ?lastModified@QFileInfo@@QBE?AVQDateTime@@XZ @ 2161 NONAME ; class QDateTime QFileInfo::lastModified(void) const + ?fromHex@QByteArray@@SA?AV1@ABV1@@Z @ 2162 NONAME ; class QByteArray QByteArray::fromHex(class QByteArray const &) + ?toLower@QChar@@QBE?AV1@XZ @ 2163 NONAME ; class QChar QChar::toLower(void) const + ??1QLibrary@@UAE@XZ @ 2164 NONAME ; QLibrary::~QLibrary(void) + ?malloc@QVectorData@@SAPAU1@HHHPAU1@@Z @ 2165 NONAME ; struct QVectorData * QVectorData::malloc(int, int, int, struct QVectorData *) + ?width@QSizeF@@QBEMXZ @ 2166 NONAME ; float QSizeF::width(void) const + ?scale@QSizeF@@QAEXMMW4AspectRatioMode@Qt@@@Z @ 2167 NONAME ; void QSizeF::scale(float, float, enum Qt::AspectRatioMode) + ?digitValue@QChar@@SAHG@Z @ 2168 NONAME ; int QChar::digitValue(unsigned short) + ?unitVector@QLineF@@QBE?AV1@XZ @ 2169 NONAME ; class QLineF QLineF::unitVector(void) const + ?span@QAbstractItemModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 2170 NONAME ; class QSize QAbstractItemModel::span(class QModelIndex const &) const + ?isEnumType@QMetaProperty@@QBE_NXZ @ 2171 NONAME ; bool QMetaProperty::isEnumType(void) const + ?lowercasebase@@YAAAVQTextStream@@AAV1@@Z @ 2172 NONAME ; class QTextStream & lowercasebase(class QTextStream &) + ?isCDATA@QXmlStreamReader@@QBE_NXZ @ 2173 NONAME ; bool QXmlStreamReader::isCDATA(void) const + ?isRelativePath@QFSFileEngine@@UBE_NXZ @ 2174 NONAME ; bool QFSFileEngine::isRelativePath(void) const + ?method@QMetaObject@@QBE?AVQMetaMethod@@H@Z @ 2175 NONAME ; class QMetaMethod QMetaObject::method(int) const + ?layoutChanged@QAbstractItemModel@@IAEXXZ @ 2176 NONAME ; void QAbstractItemModel::layoutChanged(void) + ?setNum@QByteArray@@QAEAAV1@HH@Z @ 2177 NONAME ; class QByteArray & QByteArray::setNum(int, int) + ?qt_metacall@QSharedMemory@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2178 NONAME ; int QSharedMemory::qt_metacall(enum QMetaObject::Call, int, void * *) + ?space@QDebug@@QAEAAV1@XZ @ 2179 NONAME ; class QDebug & QDebug::space(void) + ??XQPointF@@QAEAAV0@M@Z @ 2180 NONAME ; class QPointF & QPointF::operator*=(float) + ?writeCDATA@QXmlStreamWriter@@QAEXABVQString@@@Z @ 2181 NONAME ; void QXmlStreamWriter::writeCDATA(class QString const &) + ?reset@QIODevice@@UAE_NXZ @ 2182 NONAME ; bool QIODevice::reset(void) + ?load@QPluginLoader@@QAE_NXZ @ 2183 NONAME ; bool QPluginLoader::load(void) + ?dtdSystemId@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 2184 NONAME ; class QStringRef QXmlStreamReader::dtdSystemId(void) const + ?entryInfoList@QDir@@QBE?AV?$QList@VQFileInfo@@@@ABVQStringList@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z @ 2185 NONAME ; class QList QDir::entryInfoList(class QStringList const &, class QFlags, class QFlags) const + ?numberOptions@QLocale@@QBE?AV?$QFlags@W4NumberOption@QLocale@@@@XZ @ 2186 NONAME ; class QFlags QLocale::numberOptions(void) const + ??IQRect@@QBE?AV0@ABV0@@Z @ 2187 NONAME ; class QRect QRect::operator&(class QRect const &) const + ??0QXmlStreamNamespaceDeclaration@@QAE@ABVQString@@0@Z @ 2188 NONAME ; QXmlStreamNamespaceDeclaration::QXmlStreamNamespaceDeclaration(class QString const &, class QString const &) + ??BQByteArray@@QBEPBDXZ @ 2189 NONAME ; QByteArray::operator char const *(void) const + ?exponential@QLocale@@QBE?AVQChar@@XZ @ 2190 NONAME ; class QChar QLocale::exponential(void) const + ?createUuid@QUuid@@SA?AU1@XZ @ 2191 NONAME ; struct QUuid QUuid::createUuid(void) + ?indexIn@QStringMatcher@@QBEHPBVQChar@@HH@Z @ 2192 NONAME ; int QStringMatcher::indexIn(class QChar const *, int, int) const + ?isSpace@QCharRef@@QBE_NXZ @ 2193 NONAME ; bool QCharRef::isSpace(void) const + ??0QString@@QAE@VQChar@@@Z @ 2194 NONAME ; QString::QString(class QChar) + ?namespaceUri@QXmlStreamNamespaceDeclaration@@QBE?AVQStringRef@@XZ @ 2195 NONAME ; class QStringRef QXmlStreamNamespaceDeclaration::namespaceUri(void) const + ?patternSyntax@QRegExp@@QBE?AW4PatternSyntax@1@XZ @ 2196 NONAME ; enum QRegExp::PatternSyntax QRegExp::patternSyntax(void) const + ?polished@QState@@IAEXXZ @ 2197 NONAME ; void QState::polished(void) + ?finished@QProcess@@IAEXHW4ExitStatus@1@@Z @ 2198 NONAME ; void QProcess::finished(int, enum QProcess::ExitStatus) + ?autoRemove@QTemporaryFile@@QBE_NXZ @ 2199 NONAME ; bool QTemporaryFile::autoRemove(void) const + ?createLocalFile@QTemporaryFile@@SAPAV1@AAVQFile@@@Z @ 2200 NONAME ; class QTemporaryFile * QTemporaryFile::createLocalFile(class QFile &) + ??_EQCoreApplicationPrivate@@UAE@I@Z @ 2201 NONAME ; QCoreApplicationPrivate::~QCoreApplicationPrivate(unsigned int) + ??ZQPointF@@QAEAAV0@ABV0@@Z @ 2202 NONAME ; class QPointF & QPointF::operator-=(class QPointF const &) + ?trUtf8@QThread@@SA?AVQString@@PBD0H@Z @ 2203 NONAME ; class QString QThread::trUtf8(char const *, char const *, int) + ??_EQTimeLine@@UAE@I@Z @ 2204 NONAME ; QTimeLine::~QTimeLine(unsigned int) + ?setY@QPointF@@QAEXM@Z @ 2205 NONAME ; void QPointF::setY(float) + ??1QAbstractFileEngine@@UAE@XZ @ 2206 NONAME ; QAbstractFileEngine::~QAbstractFileEngine(void) + ?isScriptable@QMetaProperty@@QBE_NPBVQObject@@@Z @ 2207 NONAME ; bool QMetaProperty::isScriptable(class QObject const *) const + ?setNum@QByteArray@@QAEAAV1@NDH@Z @ 2208 NONAME ; class QByteArray & QByteArray::setNum(double, char, int) + ?trUtf8@QAbstractEventDispatcher@@SA?AVQString@@PBD0H@Z @ 2209 NONAME ; class QString QAbstractEventDispatcher::trUtf8(char const *, char const *, int) + ?load@QTranslator@@QAE_NABVQString@@000@Z @ 2210 NONAME ; bool QTranslator::load(class QString const &, class QString const &, class QString const &, class QString const &) + ?cancelAllDelayedEvents@QStateMachinePrivate@@QAEXXZ @ 2211 NONAME ; void QStateMachinePrivate::cancelAllDelayedEvents(void) + ?link@QFSFileEngine@@UAE_NABVQString@@@Z @ 2212 NONAME ; bool QFSFileEngine::link(class QString const &) + ??0QRegExp@@QAE@ABV0@@Z @ 2213 NONAME ; QRegExp::QRegExp(class QRegExp const &) + ?tryLockForRead@QReadWriteLock@@QAE_NXZ @ 2214 NONAME ; bool QReadWriteLock::tryLockForRead(void) + ?insert@QProcessEnvironment@@QAEXABVQString@@0@Z @ 2215 NONAME ; void QProcessEnvironment::insert(class QString const &, class QString const &) + ?toString@QLocale@@QBE?AVQString@@ABVQDateTime@@ABV2@@Z @ 2216 NONAME ; class QString QLocale::toString(class QDateTime const &, class QString const &) const + ?p2@QLineF@@QBE?AVQPointF@@XZ @ 2217 NONAME ; class QPointF QLineF::p2(void) const + ?removeColumn@QAbstractItemModel@@QAE_NHABVQModelIndex@@@Z @ 2218 NONAME ; bool QAbstractItemModel::removeColumn(int, class QModelIndex const &) + ?p1@QLineF@@QBE?AVQPointF@@XZ @ 2219 NONAME ; class QPointF QLineF::p1(void) const + ?bytesToWrite@QProcess@@UBE_JXZ @ 2220 NONAME ; long long QProcess::bytesToWrite(void) const + ?staticMetaObject@QCoreApplication@@2UQMetaObject@@B @ 2221 NONAME ; struct QMetaObject const QCoreApplication::staticMetaObject + ?daysTo@QDate@@QBEHABV1@@Z @ 2222 NONAME ; int QDate::daysTo(class QDate const &) const + ?filePath@QFileInfo@@QBE?AVQString@@XZ @ 2223 NONAME ; class QString QFileInfo::filePath(void) const + ?toString@QTime@@QBE?AVQString@@ABV2@@Z @ 2224 NONAME ; class QString QTime::toString(class QString const &) const + ?toPunycode@QUrl@@SA?AVQByteArray@@ABVQString@@@Z @ 2225 NONAME ; class QByteArray QUrl::toPunycode(class QString const &) + ??_EQAbstractTransition@@UAE@I@Z @ 2226 NONAME ; QAbstractTransition::~QAbstractTransition(unsigned int) + ?errorString@QIODevice@@QBE?AVQString@@XZ @ 2227 NONAME ; class QString QIODevice::errorString(void) const + ?completeBaseName@QFileInfo@@QBE?AVQString@@XZ @ 2228 NONAME ; class QString QFileInfo::completeBaseName(void) const + ?goToState@QStateMachinePrivate@@QAEXPAVQAbstractState@@@Z @ 2229 NONAME ; void QStateMachinePrivate::goToState(class QAbstractState *) + ?toShort@QByteArray@@QBEFPA_NH@Z @ 2230 NONAME ; short QByteArray::toShort(bool *, int) const + ??0QByteArray@@QAE@XZ @ 2231 NONAME ; QByteArray::QByteArray(void) + ?setSize@QRect@@QAEXABVQSize@@@Z @ 2232 NONAME ; void QRect::setSize(class QSize const &) + ??BQHBufC@@QBEPBVHBufC16@@XZ @ 2233 NONAME ; QHBufC::operator class HBufC16 const *(void) const + ?arg@QString@@QBE?AV1@ABV1@0000000@Z @ 2234 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) const + ?decimal@QLocalePrivate@@QBE?AVQChar@@XZ @ 2235 NONAME ; class QChar QLocalePrivate::decimal(void) const + ?onTransition@QEventTransition@@MAEXPAVQEvent@@@Z @ 2236 NONAME ; void QEventTransition::onTransition(class QEvent *) + ?fromPercentEncoding@QByteArray@@SA?AV1@ABV1@D@Z @ 2237 NONAME ; class QByteArray QByteArray::fromPercentEncoding(class QByteArray const &, char) + ?prefix@QXmlStreamAttribute@@QBE?AVQStringRef@@XZ @ 2238 NONAME ; class QStringRef QXmlStreamAttribute::prefix(void) const + ?symbianVersion@QSysInfo@@SA?AW4SymbianVersion@1@XZ @ 2239 NONAME ; enum QSysInfo::SymbianVersion QSysInfo::symbianVersion(void) + ??0QStateMachine@@IAE@AAVQStateMachinePrivate@@PAVQObject@@@Z @ 2240 NONAME ; QStateMachine::QStateMachine(class QStateMachinePrivate &, class QObject *) + ??6QTextStream@@QAEAAV0@_K@Z @ 2241 NONAME ; class QTextStream & QTextStream::operator<<(unsigned long long) + ?indexOf@QByteArray@@QBEHPBDH@Z @ 2242 NONAME ; int QByteArray::indexOf(char const *, int) const + ?indexIn@QStringMatcher@@QBEHABVQString@@H@Z @ 2243 NONAME ; int QStringMatcher::indexIn(class QString const &, int) const + ?setLeft@QRectF@@QAEXM@Z @ 2244 NONAME ; void QRectF::setLeft(float) + ?value@QXmlStreamAttributes@@QBE?AVQStringRef@@ABVQString@@@Z @ 2245 NONAME ; class QStringRef QXmlStreamAttributes::value(class QString const &) const + ??0QUrl@@QAE@ABVQString@@@Z @ 2246 NONAME ; QUrl::QUrl(class QString const &) + ??8QLatin1String@@QBE_NABVQString@@@Z @ 2247 NONAME ; bool QLatin1String::operator==(class QString const &) const + ?freeNode@QHashData@@QAEXPAX@Z @ 2248 NONAME ; void QHashData::freeNode(void *) + ?assignProperty@QState@@QAEXPAVQObject@@PBDABVQVariant@@@Z @ 2249 NONAME ; void QState::assignProperty(class QObject *, char const *, class QVariant const &) + ?toUrl@QVariant@@QBE?AVQUrl@@XZ @ 2250 NONAME ; class QUrl QVariant::toUrl(void) const + ?trUtf8@QSettings@@SA?AVQString@@PBD0@Z @ 2251 NONAME ; class QString QSettings::trUtf8(char const *, char const *) + ?get@QObjectPrivate@@SAPAV1@PAVQObject@@@Z @ 2252 NONAME ; class QObjectPrivate * QObjectPrivate::get(class QObject *) + ?tr@QEventTransition@@SA?AVQString@@PBD0H@Z @ 2253 NONAME ; class QString QEventTransition::tr(char const *, char const *, int) + ?setStartFrame@QTimeLine@@QAEXH@Z @ 2254 NONAME ; void QTimeLine::setStartFrame(int) + ?tr@QPluginLoader@@SA?AVQString@@PBD0H@Z @ 2255 NONAME ; class QString QPluginLoader::tr(char const *, char const *, int) + ??0QXmlStreamReader@@QAE@PBD@Z @ 2256 NONAME ; QXmlStreamReader::QXmlStreamReader(char const *) + ?staticMetaObject@QParallelAnimationGroup@@2UQMetaObject@@B @ 2257 NONAME ; struct QMetaObject const QParallelAnimationGroup::staticMetaObject + ?allocateNode@QHashData@@QAEPAXXZ @ 2258 NONAME ; void * QHashData::allocateNode(void) + ?rightJustified@QString@@QBE?AV1@HVQChar@@_N@Z @ 2259 NONAME ; class QString QString::rightJustified(int, class QChar, bool) const + ?noforcepoint@@YAAAVQTextStream@@AAV1@@Z @ 2260 NONAME ; class QTextStream & noforcepoint(class QTextStream &) + ?startingUp@QAbstractEventDispatcher@@UAEXXZ @ 2261 NONAME ; void QAbstractEventDispatcher::startingUp(void) + ??5QTextStream@@QAEAAV0@AAI@Z @ 2262 NONAME ; class QTextStream & QTextStream::operator>>(unsigned int &) + ??AQBitArray@@QBE_NH@Z @ 2263 NONAME ; bool QBitArray::operator[](int) const + ?qt_metacall@QMimeData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2264 NONAME ; int QMimeData::qt_metacall(enum QMetaObject::Call, int, void * *) + ?registerSocketNotifier@QEventDispatcherSymbian@@UAEXPAVQSocketNotifier@@@Z @ 2265 NONAME ; void QEventDispatcherSymbian::registerSocketNotifier(class QSocketNotifier *) + ?toUInt@QByteArray@@QBEIPA_NH@Z @ 2266 NONAME ; unsigned int QByteArray::toUInt(bool *, int) const + ?unsetDevice@QDataStream@@QAEXXZ @ 2267 NONAME ; void QDataStream::unsetDevice(void) + ?push_front@QByteArray@@QAEXPBD@Z @ 2268 NONAME ; void QByteArray::push_front(char const *) + ?moveTop@QRect@@QAEXH@Z @ 2269 NONAME ; void QRect::moveTop(int) + ??5QTextStream@@QAEAAV0@AAVQByteArray@@@Z @ 2270 NONAME ; class QTextStream & QTextStream::operator>>(class QByteArray &) + ??AQBitArray@@QAE?AVQBitRef@@H@Z @ 2271 NONAME ; class QBitRef QBitArray::operator[](int) + ?qt_metacast@QBuffer@@UAEPAXPBD@Z @ 2272 NONAME ; void * QBuffer::qt_metacast(char const *) + ?releaseThread@QThreadPool@@QAEXXZ @ 2273 NONAME ; void QThreadPool::releaseThread(void) + ??MQDate@@QBE_NABV0@@Z @ 2274 NONAME ; bool QDate::operator<(class QDate const &) const + ??4QBitRef@@QAEAAV0@ABV0@@Z @ 2275 NONAME ; class QBitRef & QBitRef::operator=(class QBitRef const &) + ?tr@QAbstractEventDispatcher@@SA?AVQString@@PBD0@Z @ 2276 NONAME ; class QString QAbstractEventDispatcher::tr(char const *, char const *) + ?activeThreadCount@QThreadPool@@QBEHXZ @ 2277 NONAME ; int QThreadPool::activeThreadCount(void) const + ?staticMetaObject@QAbstractTableModel@@2UQMetaObject@@B @ 2278 NONAME ; struct QMetaObject const QAbstractTableModel::staticMetaObject + ?tryLock@QMutex@@QAE_NXZ @ 2279 NONAME ; bool QMutex::tryLock(void) + ?split@QString@@QBE?AVQStringList@@ABVQChar@@W4SplitBehavior@1@W4CaseSensitivity@Qt@@@Z @ 2280 NONAME ; class QStringList QString::split(class QChar const &, enum QString::SplitBehavior, enum Qt::CaseSensitivity) const + ?unsetError@QFile@@QAEXXZ @ 2281 NONAME ; void QFile::unsetError(void) + ?model@QModelIndex@@QBEPBVQAbstractItemModel@@XZ @ 2282 NONAME ; class QAbstractItemModel const * QModelIndex::model(void) const + ?setEncodingFunction@QFile@@SAXP6A?AVQByteArray@@ABVQString@@@Z@Z @ 2283 NONAME ; void QFile::setEncodingFunction(class QByteArray (*)(class QString const &)) + ?tr@QTemporaryFile@@SA?AVQString@@PBD0H@Z @ 2284 NONAME ; class QString QTemporaryFile::tr(char const *, char const *, int) + ?validateChars@QLocalePrivate@@QBE_NABVQString@@W4NumberMode@1@PAVQByteArray@@H@Z @ 2285 NONAME ; bool QLocalePrivate::validateChars(class QString const &, enum QLocalePrivate::NumberMode, class QByteArray *, int) const + ?rmdir@QDir@@QBE_NABVQString@@@Z @ 2286 NONAME ; bool QDir::rmdir(class QString const &) const + ??MQString@@QBE_NABVQLatin1String@@@Z @ 2287 NONAME ; bool QString::operator<(class QLatin1String const &) const + ?d_func@QProcess@@ABEPBVQProcessPrivate@@XZ @ 2288 NONAME ; class QProcessPrivate const * QProcess::d_func(void) const + ?metaObject@QFile@@UBEPBUQMetaObject@@XZ @ 2289 NONAME ; struct QMetaObject const * QFile::metaObject(void) const + ?flags@QPersistentModelIndex@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 2290 NONAME ; class QFlags QPersistentModelIndex::flags(void) const + ??1QWriteLocker@@QAE@XZ @ 2291 NONAME ; QWriteLocker::~QWriteLocker(void) + ??_EQAbstractFileEngine@@UAE@I@Z @ 2292 NONAME ; QAbstractFileEngine::~QAbstractFileEngine(unsigned int) + ??_EQDynamicPropertyChangeEvent@@UAE@I@Z @ 2293 NONAME ; QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent(unsigned int) + ?mirroredChar@QChar@@QBE?AV1@XZ @ 2294 NONAME ; class QChar QChar::mirroredChar(void) const + ?resetStatus@QTextStream@@QAEXXZ @ 2295 NONAME ; void QTextStream::resetStatus(void) + ??_EQVariantAnimation@@UAE@I@Z @ 2296 NONAME ; QVariantAnimation::~QVariantAnimation(unsigned int) + ?lowSurrogate@QChar@@SAGI@Z @ 2297 NONAME ; unsigned short QChar::lowSurrogate(unsigned int) + ??0QString@@AAE@PAUData@0@H@Z @ 2298 NONAME ; QString::QString(struct QString::Data *, int) + ?data@QStringRef@@QBEPBVQChar@@XZ @ 2299 NONAME ; class QChar const * QStringRef::data(void) const + ?close@QAbstractFileEngine@@UAE_NXZ @ 2300 NONAME ; bool QAbstractFileEngine::close(void) + ?unregisterResource@QResource@@SA_NPBEABVQString@@@Z @ 2301 NONAME ; bool QResource::unregisterResource(unsigned char const *, class QString const &) + ?tr@QFinalState@@SA?AVQString@@PBD0@Z @ 2302 NONAME ; class QString QFinalState::tr(char const *, char const *) + ?methodCount@QMetaObject@@QBEHXZ @ 2303 NONAME ; int QMetaObject::methodCount(void) const + ?notify@QCoreApplication@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 2304 NONAME ; bool QCoreApplication::notify(class QObject *, class QEvent *) + ?filePath@QDirIterator@@QBE?AVQString@@XZ @ 2305 NONAME ; class QString QDirIterator::filePath(void) const + ?data@QBuffer@@QBEABVQByteArray@@XZ @ 2306 NONAME ; class QByteArray const & QBuffer::data(void) const + ?staticMetaObject@QPropertyAnimation@@2UQMetaObject@@B @ 2307 NONAME ; struct QMetaObject const QPropertyAnimation::staticMetaObject + ?timerId@QBasicTimer@@QBEHXZ @ 2308 NONAME ; int QBasicTimer::timerId(void) const + ??0QBitRef@@AAE@AAVQBitArray@@H@Z @ 2309 NONAME ; QBitRef::QBitRef(class QBitArray &, int) + ?qDebug@@YAXPBDZZ @ 2310 NONAME ; void qDebug(char const *, ...) + ??0QString@@QAE@ABV0@@Z @ 2311 NONAME ; QString::QString(class QString const &) + ?decomposition@QChar@@SA?AVQString@@I@Z @ 2312 NONAME ; class QString QChar::decomposition(unsigned int) + ?translate@QTranslator@@UBE?AVQString@@PBD00@Z @ 2313 NONAME ; class QString QTranslator::translate(char const *, char const *, char const *) const + ?isRelative@QFileInfo@@QBE_NXZ @ 2314 NONAME ; bool QFileInfo::isRelative(void) const + ?isValid@QDate@@SA_NHHH@Z @ 2315 NONAME ; bool QDate::isValid(int, int, int) + ??1QXmlStreamAttribute@@QAE@XZ @ 2316 NONAME ; QXmlStreamAttribute::~QXmlStreamAttribute(void) + ??0QHistoryState@@QAE@W4HistoryType@0@PAVQState@@@Z @ 2317 NONAME ; QHistoryState::QHistoryState(enum QHistoryState::HistoryType, class QState *) + ??6QDebug@@QAEAAV0@K@Z @ 2318 NONAME ; class QDebug & QDebug::operator<<(unsigned long) + ?enumerator@QMetaProperty@@QBE?AVQMetaEnum@@XZ @ 2319 NONAME ; class QMetaEnum QMetaProperty::enumerator(void) const + ?mkpath@QDir@@QBE_NABVQString@@@Z @ 2320 NONAME ; bool QDir::mkpath(class QString const &) const + ?remove@QObjectCleanupHandler@@QAEXPAVQObject@@@Z @ 2321 NONAME ; void QObjectCleanupHandler::remove(class QObject *) + ??0QTimeLine@@QAE@HPAVQObject@@@Z @ 2322 NONAME ; QTimeLine::QTimeLine(int, class QObject *) + ??OQByteArray@@QBE_NABVQString@@@Z @ 2323 NONAME ; bool QByteArray::operator>(class QString const &) const + ?value@QProcessEnvironment@@QBE?AVQString@@ABV2@0@Z @ 2324 NONAME ; class QString QProcessEnvironment::value(class QString const &, class QString const &) const + ?writeDTD@QXmlStreamWriter@@QAEXABVQString@@@Z @ 2325 NONAME ; void QXmlStreamWriter::writeDTD(class QString const &) + ?tr@QSignalMapper@@SA?AVQString@@PBD0@Z @ 2326 NONAME ; class QString QSignalMapper::tr(char const *, char const *) + ?y1@QLine@@QBEHXZ @ 2327 NONAME ; int QLine::y1(void) const + ?cleanup@QThread@@CAXXZ @ 2328 NONAME ; void QThread::cleanup(void) + ?grow@QString@@CAHH@Z @ 2329 NONAME ; int QString::grow(int) + ?translated@QLineF@@QBE?AV1@MM@Z @ 2330 NONAME ; class QLineF QLineF::translated(float, float) const + ?parameterNames@QMetaMethod@@QBE?AV?$QList@VQByteArray@@@@XZ @ 2331 NONAME ; class QList QMetaMethod::parameterNames(void) const + ??0QTemporaryFile@@QAE@PAVQObject@@@Z @ 2332 NONAME ; QTemporaryFile::QTemporaryFile(class QObject *) + ?exists@QFileInfo@@QBE_NXZ @ 2333 NONAME ; bool QFileInfo::exists(void) const + ?invoke@QMetaMethod@@QBE_NPAVQObject@@VQGenericReturnArgument@@VQGenericArgument@@222222222@Z @ 2334 NONAME ; bool QMetaMethod::invoke(class QObject *, class QGenericReturnArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) const + ?toString@QLocale@@QBE?AVQString@@_J@Z @ 2335 NONAME ; class QString QLocale::toString(long long) const + ??1QAbstractItemModelPrivate@@UAE@XZ @ 2336 NONAME ; QAbstractItemModelPrivate::~QAbstractItemModelPrivate(void) + ?isValid@QUrl@@QBE_NXZ @ 2337 NONAME ; bool QUrl::isValid(void) const + ?qt_metacall@QAbstractEventDispatcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2338 NONAME ; int QAbstractEventDispatcher::qt_metacall(enum QMetaObject::Call, int, void * *) + ?match@QDir@@SA_NABVQStringList@@ABVQString@@@Z @ 2339 NONAME ; bool QDir::match(class QStringList const &, class QString const &) + ??9QXmlStreamAttribute@@QBE_NABV0@@Z @ 2340 NONAME ; bool QXmlStreamAttribute::operator!=(class QXmlStreamAttribute const &) const + ?ds@QTime@@ABEHXZ @ 2341 NONAME ; int QTime::ds(void) const + ?extension@QAbstractFileEngine@@UAE_NW4Extension@1@PBVExtensionOption@1@PAVExtensionReturn@1@@Z @ 2342 NONAME ; bool QAbstractFileEngine::extension(enum QAbstractFileEngine::Extension, class QAbstractFileEngine::ExtensionOption const *, class QAbstractFileEngine::ExtensionReturn *) + ?size@QFSFileEngine@@UBE_JXZ @ 2343 NONAME ; long long QFSFileEngine::size(void) const + ??0QVariant@@QAE@_N@Z @ 2344 NONAME ; QVariant::QVariant(bool) + ?right@QRectF@@QBEMXZ @ 2345 NONAME ; float QRectF::right(void) const + ?combiningClass@QChar@@QBEEXZ @ 2346 NONAME ; unsigned char QChar::combiningClass(void) const + ?toDate@QVariant@@QBE?AVQDate@@XZ @ 2347 NONAME ; class QDate QVariant::toDate(void) const + ??0QVariant@@QAE@ABVQLine@@@Z @ 2348 NONAME ; QVariant::QVariant(class QLine const &) + ?date@QDateTime@@QBE?AVQDate@@XZ @ 2349 NONAME ; class QDate QDateTime::date(void) const + ?updateState@QVariantAnimation@@MAEXW4State@QAbstractAnimation@@0@Z @ 2350 NONAME ; void QVariantAnimation::updateState(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ?connect@QObject@@SA_NPBV1@PBD01W4ConnectionType@Qt@@@Z @ 2351 NONAME ; bool QObject::connect(class QObject const *, char const *, class QObject const *, char const *, enum Qt::ConnectionType) + ?fileName@QLibrary@@QBE?AVQString@@XZ @ 2352 NONAME ; class QString QLibrary::fileName(void) const + ?value@QXmlStreamAttributes@@QBE?AVQStringRef@@ABVQLatin1String@@@Z @ 2353 NONAME ; class QStringRef QXmlStreamAttributes::value(class QLatin1String const &) const + ?column@QModelIndex@@QBEHXZ @ 2354 NONAME ; int QModelIndex::column(void) const + ??1QDirIterator@@UAE@XZ @ 2355 NONAME ; QDirIterator::~QDirIterator(void) + ?toDate@QLocale@@QBE?AVQDate@@ABVQString@@0@Z @ 2356 NONAME ; class QDate QLocale::toDate(class QString const &, class QString const &) const + ??AQString@@QAE?AVQCharRef@@I@Z @ 2357 NONAME ; class QCharRef QString::operator[](unsigned int) + ?tr@QState@@SA?AVQString@@PBD0H@Z @ 2358 NONAME ; class QString QState::tr(char const *, char const *, int) + ?symLinkTarget@QFileInfo@@QBE?AVQString@@XZ @ 2359 NONAME ; class QString QFileInfo::symLinkTarget(void) const + ?combiningClass@QChar@@SAEG@Z @ 2360 NONAME ; unsigned char QChar::combiningClass(unsigned short) + ?mainThread@QCoreApplicationPrivate@@SAPAVQThread@@XZ @ 2361 NONAME ; class QThread * QCoreApplicationPrivate::mainThread(void) + ??0QVariant@@QAE@I@Z @ 2362 NONAME ; QVariant::QVariant(unsigned int) + ??1QFontLaoCodec@@UAE@XZ @ 2363 NONAME ; QFontLaoCodec::~QFontLaoCodec(void) + ?isEmpty@QRegExp@@QBE_NXZ @ 2364 NONAME ; bool QRegExp::isEmpty(void) const + ?isPreempted@QStateMachinePrivate@@QBE_NPBVQAbstractState@@ABV?$QSet@PAVQAbstractTransition@@@@@Z @ 2365 NONAME ; bool QStateMachinePrivate::isPreempted(class QAbstractState const *, class QSet const &) const + ?setX@QRectF@@QAEXM@Z @ 2366 NONAME ; void QRectF::setX(float) + ?testBit@QBitArray@@QBE_NH@Z @ 2367 NONAME ; bool QBitArray::testBit(int) const + ?qt_metacast@QTranslator@@UAEPAXPBD@Z @ 2368 NONAME ; void * QTranslator::qt_metacast(char const *) + ?replace_helper@QString@@AAEXPAIHHPBVQChar@@H@Z @ 2369 NONAME ; void QString::replace_helper(unsigned int *, int, int, class QChar const *, int) + ?setDate@QDateTime@@QAEXABVQDate@@@Z @ 2370 NONAME ; void QDateTime::setDate(class QDate const &) + ?addData@QXmlStreamReader@@QAEXABVQString@@@Z @ 2371 NONAME ; void QXmlStreamReader::addData(class QString const &) + ?value@QXmlStreamEntityDeclaration@@QBE?AVQStringRef@@XZ @ 2372 NONAME ; class QStringRef QXmlStreamEntityDeclaration::value(void) const + ?insert@QString@@QAEAAV1@HABV1@@Z @ 2373 NONAME ; class QString & QString::insert(int, class QString const &) + ?setUserInfo@QUrl@@QAEXABVQString@@@Z @ 2374 NONAME ; void QUrl::setUserInfo(class QString const &) + ?minute@QTime@@QBEHXZ @ 2375 NONAME ; int QTime::minute(void) const + ?write@QIODevice@@QAE_JPBD_J@Z @ 2376 NONAME ; long long QIODevice::write(char const *, long long) + ?p2@QLine@@QBE?AVQPoint@@XZ @ 2377 NONAME ; class QPoint QLine::p2(void) const + ?status@QSettings@@QBE?AW4Status@1@XZ @ 2378 NONAME ; enum QSettings::Status QSettings::status(void) const + ?msleep@QThread@@KAXK@Z @ 2379 NONAME ; void QThread::msleep(unsigned long) + ?notationDeclarations@QXmlStreamReader@@QBE?AV?$QVector@VQXmlStreamNotationDeclaration@@@@XZ @ 2380 NONAME ; class QVector QXmlStreamReader::notationDeclarations(void) const + ?staticMetaObject@QAbstractAnimation@@2UQMetaObject@@B @ 2381 NONAME ; struct QMetaObject const QAbstractAnimation::staticMetaObject + ??4QByteArrayMatcher@@QAEAAV0@ABV0@@Z @ 2382 NONAME ; class QByteArrayMatcher & QByteArrayMatcher::operator=(class QByteArrayMatcher const &) + ??0QDateTime@@QAE@ABVQDate@@ABVQTime@@W4TimeSpec@Qt@@@Z @ 2383 NONAME ; QDateTime::QDateTime(class QDate const &, class QTime const &, enum Qt::TimeSpec) + ??0QTextBoundaryFinder@@QAE@W4BoundaryType@0@PBVQChar@@HPAEH@Z @ 2384 NONAME ; QTextBoundaryFinder::QTextBoundaryFinder(enum QTextBoundaryFinder::BoundaryType, class QChar const *, int, unsigned char *, int) + ??0QLine@@QAE@XZ @ 2385 NONAME ; QLine::QLine(void) + ?atEnd@QDataStream@@QBE_NXZ @ 2386 NONAME ; bool QDataStream::atEnd(void) const + ?notifySignalIndex@QMetaProperty@@QBEHXZ @ 2387 NONAME ; int QMetaProperty::notifySignalIndex(void) const + ?toMap@QVariant@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 2388 NONAME ; class QMap QVariant::toMap(void) const + ?isLetter@QXmlUtils@@SA_NVQChar@@@Z @ 2389 NONAME ; bool QXmlUtils::isLetter(class QChar) + ?setDuration@QTimeLine@@QAEXH@Z @ 2390 NONAME ; void QTimeLine::setDuration(int) + ?startFrame@QTimeLine@@QBEHXZ @ 2391 NONAME ; int QTimeLine::startFrame(void) const + ??0QTextStream@@QAE@ABVQByteArray@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 2392 NONAME ; QTextStream::QTextStream(class QByteArray const &, class QFlags) + ?filePath@QDir@@QBE?AVQString@@ABV2@@Z @ 2393 NONAME ; class QString QDir::filePath(class QString const &) const + ?isStartElement@QXmlStreamReader@@QBE_NXZ @ 2394 NONAME ; bool QXmlStreamReader::isStartElement(void) const + ??1QObjectPrivate@@UAE@XZ @ 2395 NONAME ; QObjectPrivate::~QObjectPrivate(void) + ?tr@QAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 2396 NONAME ; class QString QAbstractAnimation::tr(char const *, char const *, int) + ?readLineData@QIODevice@@MAE_JPAD_J@Z @ 2397 NONAME ; long long QIODevice::readLineData(char *, long long) + ?setInterval@QTimer@@QAEXH@Z @ 2398 NONAME ; void QTimer::setInterval(int) + ??0QXmlStreamAttribute@@QAE@XZ @ 2399 NONAME ; QXmlStreamAttribute::QXmlStreamAttribute(void) + ?isSequential@QAbstractFileEngine@@UBE_NXZ @ 2400 NONAME ; bool QAbstractFileEngine::isSequential(void) const + ?open@QFile@@UAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 2401 NONAME ; bool QFile::open(class QFlags) + ?setGlobalRestorePolicy@QStateMachine@@QAEXW4RestorePolicy@1@@Z @ 2402 NONAME ; void QStateMachine::setGlobalRestorePolicy(enum QStateMachine::RestorePolicy) + ?isEmpty@QUrl@@QBE_NXZ @ 2403 NONAME ; bool QUrl::isEmpty(void) const + ??6QDebug@@QAEAAV0@ABVQLatin1String@@@Z @ 2404 NONAME ; class QDebug & QDebug::operator<<(class QLatin1String const &) + ??1QThreadStorageData@@QAE@XZ @ 2405 NONAME ; QThreadStorageData::~QThreadStorageData(void) + ?isSymbol@QChar@@QBE_NXZ @ 2406 NONAME ; bool QChar::isSymbol(void) const + ??1QSocketNotifier@@UAE@XZ @ 2407 NONAME ; QSocketNotifier::~QSocketNotifier(void) + ??0QDataStream@@QAE@PAVQByteArray@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 2408 NONAME ; QDataStream::QDataStream(class QByteArray *, class QFlags) + ?count@QString@@QBEHABVQRegExp@@@Z @ 2409 NONAME ; int QString::count(class QRegExp const &) const + ?replace@QByteArray@@QAEAAV1@PBD0@Z @ 2410 NONAME ; class QByteArray & QByteArray::replace(char const *, char const *) + ?hasColor@QMimeData@@QBE_NXZ @ 2411 NONAME ; bool QMimeData::hasColor(void) const + ?y@QPoint@@QBEHXZ @ 2412 NONAME ; int QPoint::y(void) const + ??4QEasingCurve@@QAEAAV0@ABV0@@Z @ 2413 NONAME ; class QEasingCurve & QEasingCurve::operator=(class QEasingCurve const &) + ?getStaticMetaObject@QEventTransition@@SAABUQMetaObject@@XZ @ 2414 NONAME ; struct QMetaObject const & QEventTransition::getStaticMetaObject(void) + ?stateChanged@QProcess@@IAEXW4ProcessState@1@@Z @ 2415 NONAME ; void QProcess::stateChanged(enum QProcess::ProcessState) + ??AQDir@@QBE?AVQString@@H@Z @ 2416 NONAME ; class QString QDir::operator[](int) const + ?seek@QIODevice@@UAE_N_J@Z @ 2417 NONAME ; bool QIODevice::seek(long long) + ??_EQSequentialAnimationGroup@@UAE@I@Z @ 2418 NONAME ; QSequentialAnimationGroup::~QSequentialAnimationGroup(unsigned int) + ?detach3@QListData@@QAEPAUData@1@XZ @ 2419 NONAME ; struct QListData::Data * QListData::detach3(void) + ??0QPointF@@QAE@XZ @ 2420 NONAME ; QPointF::QPointF(void) + ??4QCharRef@@QAEAAV0@E@Z @ 2421 NONAME ; class QCharRef & QCharRef::operator=(unsigned char) + ??6@YA?AVQDebug@@V0@ABVQDir@@@Z @ 2422 NONAME ; class QDebug operator<<(class QDebug, class QDir const &) + ??6QTextStream@@QAEAAV0@M@Z @ 2423 NONAME ; class QTextStream & QTextStream::operator<<(float) + ?name@QMetaProperty@@QBEPBDXZ @ 2424 NONAME ; char const * QMetaProperty::name(void) const + ?addPaths@QFileSystemWatcher@@QAEXABVQStringList@@@Z @ 2425 NONAME ; void QFileSystemWatcher::addPaths(class QStringList const &) + ?fromUtf8@QString@@SA?AV1@PBDH@Z @ 2426 NONAME ; class QString QString::fromUtf8(char const *, int) + ?contains@QByteArray@@QBE?AVQBool@@PBD@Z @ 2427 NONAME ; class QBool QByteArray::contains(char const *) const + ?testAndSetRelaxed@QBasicAtomicInt@@QAE_NHH@Z @ 2428 NONAME ; bool QBasicAtomicInt::testAndSetRelaxed(int, int) + ??1QStateMachinePrivate@@UAE@XZ @ 2429 NONAME ; QStateMachinePrivate::~QStateMachinePrivate(void) + ??0QXmlStreamAttribute@@QAE@ABV0@@Z @ 2430 NONAME ; QXmlStreamAttribute::QXmlStreamAttribute(class QXmlStreamAttribute const &) + ??1QReadWriteLock@@QAE@XZ @ 2431 NONAME ; QReadWriteLock::~QReadWriteLock(void) + ?x@QPointF@@QBEMXZ @ 2432 NONAME ; float QPointF::x(void) const + ?autoFormatting@QXmlStreamWriter@@QBE_NXZ @ 2433 NONAME ; bool QXmlStreamWriter::autoFormatting(void) const + ?finished@QState@@IAEXXZ @ 2434 NONAME ; void QState::finished(void) + ?setCurveShape@QTimeLine@@QAEXW4CurveShape@1@@Z @ 2435 NONAME ; void QTimeLine::setCurveShape(enum QTimeLine::CurveShape) + ?addDefaultAnimation@QStateMachine@@QAEXPAVQAbstractAnimation@@@Z @ 2436 NONAME ; void QStateMachine::addDefaultAnimation(class QAbstractAnimation *) + ?killTimer@QObject@@QAEXH@Z @ 2437 NONAME ; void QObject::killTimer(int) + ??6@YAAAVQDataStream@@AAV0@ABVQLocale@@@Z @ 2438 NONAME ; class QDataStream & operator<<(class QDataStream &, class QLocale const &) + ?tryLockForWrite@QReadWriteLock@@QAE_NH@Z @ 2439 NONAME ; bool QReadWriteLock::tryLockForWrite(int) + ??0QVariant@@QAE@ABVQRect@@@Z @ 2440 NONAME ; QVariant::QVariant(class QRect const &) + ?currentTime@QAbstractAnimation@@QBEHXZ @ 2441 NONAME ; int QAbstractAnimation::currentTime(void) const + ?pos@QRegExp@@QBEHH@Z @ 2442 NONAME ; int QRegExp::pos(int) const + ?rowsAboutToBeRemoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 2443 NONAME ; void QAbstractItemModelPrivate::rowsAboutToBeRemoved(class QModelIndex const &, int, int) + ??YQString@@QAEAAV0@ABVQLatin1String@@@Z @ 2444 NONAME ; class QString & QString::operator+=(class QLatin1String const &) + ?qt_metacast@QProcess@@UAEPAXPBD@Z @ 2445 NONAME ; void * QProcess::qt_metacast(char const *) + ?retrieveData@QMimeData@@MBE?AVQVariant@@ABVQString@@W4Type@2@@Z @ 2446 NONAME ; class QVariant QMimeData::retrieveData(class QString const &, enum QVariant::Type) const + ?adjusted@QRect@@QBE?AV1@HHHH@Z @ 2447 NONAME ; class QRect QRect::adjusted(int, int, int, int) const + ??0QIODevice@@IAE@AAVQIODevicePrivate@@PAVQObject@@@Z @ 2448 NONAME ; QIODevice::QIODevice(class QIODevicePrivate &, class QObject *) + ?localeAwareCompare@QStringRef@@QBEHABVQString@@@Z @ 2449 NONAME ; int QStringRef::localeAwareCompare(class QString const &) const + ?angleTo@QLineF@@QBEMABV1@@Z @ 2450 NONAME ; float QLineF::angleTo(class QLineF const &) const + ?toCaseFolded@QString@@QBE?AV1@XZ @ 2451 NONAME ; class QString QString::toCaseFolded(void) const + ?addGuard@QMetaObject@@SAXPAPAVQObject@@@Z @ 2452 NONAME ; void QMetaObject::addGuard(class QObject * *) + ??_EQAbstractTransitionPrivate@@UAE@I@Z @ 2453 NONAME ; QAbstractTransitionPrivate::~QAbstractTransitionPrivate(unsigned int) + ?isDetached@QByteArray@@QBE_NXZ @ 2454 NONAME ; bool QByteArray::isDetached(void) const + ??0ConverterState@QTextCodec@@QAE@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 2455 NONAME ; QTextCodec::ConverterState::ConverterState(class QFlags) + ?setPath@QAbstractFileEngineIterator@@AAEXABVQString@@@Z @ 2456 NONAME ; void QAbstractFileEngineIterator::setPath(class QString const &) + ?d_func@QFileSystemWatcher@@AAEPAVQFileSystemWatcherPrivate@@XZ @ 2457 NONAME ; class QFileSystemWatcherPrivate * QFileSystemWatcher::d_func(void) + ?modelReset@QAbstractItemModel@@AAEXXZ @ 2458 NONAME ; void QAbstractItemModel::modelReset(void) + ??0QIODevice@@QAE@XZ @ 2459 NONAME ; QIODevice::QIODevice(void) + ?joining@QChar@@QBE?AW4Joining@1@XZ @ 2460 NONAME ; enum QChar::Joining QChar::joining(void) const + ?setCurrentTime@QTimeLine@@QAEXH@Z @ 2461 NONAME ; void QTimeLine::setCurrentTime(int) + ?tokenString@QXmlStreamReader@@QBE?AVQString@@XZ @ 2462 NONAME ; class QString QXmlStreamReader::tokenString(void) const + ?resolve@QLibrary@@SAPAXABVQString@@HPBD@Z @ 2463 NONAME ; void * QLibrary::resolve(class QString const &, int, char const *) + ?qsrand@@YAXI@Z @ 2464 NONAME ; void qsrand(unsigned int) + ?lock@QMutex@@QAEXXZ @ 2465 NONAME ; void QMutex::lock(void) + ?d_func@QAbstractTransition@@ABEPBVQAbstractTransitionPrivate@@XZ @ 2466 NONAME ; class QAbstractTransitionPrivate const * QAbstractTransition::d_func(void) const + ?setFloatingPointPrecision@QDataStream@@QAEXW4FloatingPointPrecision@1@@Z @ 2467 NONAME ; void QDataStream::setFloatingPointPrecision(enum QDataStream::FloatingPointPrecision) + ?updateDirection@QSequentialAnimationGroup@@MAEXW4Direction@QAbstractAnimation@@@Z @ 2468 NONAME ; void QSequentialAnimationGroup::updateDirection(enum QAbstractAnimation::Direction) + ?tr@QAbstractItemModel@@SA?AVQString@@PBD0H@Z @ 2469 NONAME ; class QString QAbstractItemModel::tr(char const *, char const *, int) + ?submit@QAbstractItemModel@@UAE_NXZ @ 2470 NONAME ; bool QAbstractItemModel::submit(void) + ??NQLatin1String@@QBE_NPBD@Z @ 2471 NONAME ; bool QLatin1String::operator<=(char const *) const + ??8QLatin1String@@QBE_NPBD@Z @ 2472 NONAME ; bool QLatin1String::operator==(char const *) const + ?result@QCryptographicHash@@QBE?AVQByteArray@@XZ @ 2473 NONAME ; class QByteArray QCryptographicHash::result(void) const + ??6QDebug@@QAEAAV0@D@Z @ 2474 NONAME ; class QDebug & QDebug::operator<<(char) + ?metacall@QMetaObject@@SAHPAVQObject@@W4Call@1@HPAPAX@Z @ 2475 NONAME ; int QMetaObject::metacall(class QObject *, enum QMetaObject::Call, int, void * *) + ?exec@QCoreApplication@@SAHXZ @ 2476 NONAME ; int QCoreApplication::exec(void) + ?metaObject@QSharedMemory@@UBEPBUQMetaObject@@XZ @ 2477 NONAME ; struct QMetaObject const * QSharedMemory::metaObject(void) const + ??1CQtActiveScheduler@@UAE@XZ @ 2478 NONAME ; CQtActiveScheduler::~CQtActiveScheduler(void) + ??_EQAbstractItemModelPrivate@@UAE@I@Z @ 2479 NONAME ; QAbstractItemModelPrivate::~QAbstractItemModelPrivate(unsigned int) + ?unlock@QMutexLocker@@QAEXXZ @ 2480 NONAME ; void QMutexLocker::unlock(void) + ??0QDebug@@QAE@W4QtMsgType@@@Z @ 2481 NONAME ; QDebug::QDebug(enum QtMsgType) + ??0QVariant@@QAE@ABVQRegExp@@@Z @ 2482 NONAME ; QVariant::QVariant(class QRegExp const &) + ?unlock@QReadLocker@@QAEXXZ @ 2483 NONAME ; void QReadLocker::unlock(void) + ?remove@QDir@@QAE_NABVQString@@@Z @ 2484 NONAME ; bool QDir::remove(class QString const &) + ??0QDateTime@@QAE@ABV0@@Z @ 2485 NONAME ; QDateTime::QDateTime(class QDateTime const &) + ?toAscii@QCharRef@@QBEDXZ @ 2486 NONAME ; char QCharRef::toAscii(void) const + ?QBasicAtomicInt_fetchAndStoreOrdered@@YAHPCHH@Z @ 2487 NONAME ; int QBasicAtomicInt_fetchAndStoreOrdered(int volatile *, int) + ?staticQtMetaObject@QObject@@1UQMetaObject@@B @ 2488 NONAME ; struct QMetaObject const QObject::staticQtMetaObject + ?indexOf@QString@@QBEHABVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 2489 NONAME ; int QString::indexOf(class QLatin1String const &, int, enum Qt::CaseSensitivity) const + ?q_func@QIODevicePrivate@@ABEPBVQIODevice@@XZ @ 2490 NONAME ; class QIODevice const * QIODevicePrivate::q_func(void) const + ?tr@QAbstractEventDispatcher@@SA?AVQString@@PBD0H@Z @ 2491 NONAME ; class QString QAbstractEventDispatcher::tr(char const *, char const *, int) + ?translate@QRect@@QAEXABVQPoint@@@Z @ 2492 NONAME ; void QRect::translate(class QPoint const &) + ??0QPointF@@QAE@MM@Z @ 2493 NONAME ; QPointF::QPointF(float, float) + ?clearBit@QBitArray@@QAEXH@Z @ 2494 NONAME ; void QBitArray::clearBit(int) + ?applicationFilePath@QCoreApplication@@SA?AVQString@@XZ @ 2495 NONAME ; class QString QCoreApplication::applicationFilePath(void) + ?compare@QString@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 2496 NONAME ; int QString::compare(class QString const &, enum Qt::CaseSensitivity) const + ?detach2@QListData@@QAEPAUData@1@XZ @ 2497 NONAME ; struct QListData::Data * QListData::detach2(void) + ?qt_metacast@QFile@@UAEPAXPBD@Z @ 2498 NONAME ; void * QFile::qt_metacast(char const *) + ?_q_process@QStateMachinePrivate@@QAEXXZ @ 2499 NONAME ; void QStateMachinePrivate::_q_process(void) + ?indexOf@QByteArray@@QBEHDH@Z @ 2500 NONAME ; int QByteArray::indexOf(char, int) const + ?setValue@QSettings@@QAEXABVQString@@ABVQVariant@@@Z @ 2501 NONAME ; void QSettings::setValue(class QString const &, class QVariant const &) + ?staticMetaObject@QLibrary@@2UQMetaObject@@B @ 2502 NONAME ; struct QMetaObject const QLibrary::staticMetaObject + ?terminate@QProcess@@QAEXXZ @ 2503 NONAME ; void QProcess::terminate(void) + ?setFileNameAndVersion@QLibrary@@QAEXABVQString@@0@Z @ 2504 NONAME ; void QLibrary::setFileNameAndVersion(class QString const &, class QString const &) + ?authority@QUrl@@QBE?AVQString@@XZ @ 2505 NONAME ; class QString QUrl::authority(void) const + ?setNum@QByteArray@@QAEAAV1@_JH@Z @ 2506 NONAME ; class QByteArray & QByteArray::setNum(long long, int) + ?animations@QAbstractTransition@@QBE?AV?$QList@PAVQAbstractAnimation@@@@XZ @ 2507 NONAME ; class QList QAbstractTransition::animations(void) const + ?q_func@QCoreApplicationPrivate@@AAEPAVQCoreApplication@@XZ @ 2508 NONAME ; class QCoreApplication * QCoreApplicationPrivate::q_func(void) + ?readyReadStandardError@QProcess@@IAEXXZ @ 2509 NONAME ; void QProcess::readyReadStandardError(void) + ?isDetached@QUrl@@QBE_NXZ @ 2510 NONAME ; bool QUrl::isDetached(void) const + ?insertAnimationAt@QAnimationGroup@@QAEXHPAVQAbstractAnimation@@@Z @ 2511 NONAME ; void QAnimationGroup::insertAnimationAt(int, class QAbstractAnimation *) + ??0QFile@@QAE@ABVQString@@PAVQObject@@@Z @ 2512 NONAME ; QFile::QFile(class QString const &, class QObject *) + ??6QDebug@@QAEAAV0@ABVQStringRef@@@Z @ 2513 NONAME ; class QDebug & QDebug::operator<<(class QStringRef const &) + ?setLoadHints@QLibrary@@QAEXV?$QFlags@W4LoadHint@QLibrary@@@@@Z @ 2514 NONAME ; void QLibrary::setLoadHints(class QFlags) + ?d_func@QThreadPool@@AAEPAVQThreadPoolPrivate@@XZ @ 2515 NONAME ; class QThreadPoolPrivate * QThreadPool::d_func(void) + ??AQByteArray@@QAE?AVQByteRef@@I@Z @ 2516 NONAME ; class QByteRef QByteArray::operator[](unsigned int) + ?removePaths@QFileSystemWatcher@@QAEXABVQStringList@@@Z @ 2517 NONAME ; void QFileSystemWatcher::removePaths(class QStringList const &) + ??0QDynamicPropertyChangeEvent@@QAE@ABVQByteArray@@@Z @ 2518 NONAME ; QDynamicPropertyChangeEvent::QDynamicPropertyChangeEvent(class QByteArray const &) + ??6@YAAAVQDataStream@@AAV0@ABVQUrl@@@Z @ 2519 NONAME ; class QDataStream & operator<<(class QDataStream &, class QUrl const &) + ??1QAbstractAnimation@@UAE@XZ @ 2520 NONAME ; QAbstractAnimation::~QAbstractAnimation(void) + ??0QIODevicePrivate@@QAE@XZ @ 2521 NONAME ; QIODevicePrivate::QIODevicePrivate(void) + ??6@YAAAVQDataStream@@AAV0@ABVQSize@@@Z @ 2522 NONAME ; class QDataStream & operator<<(class QDataStream &, class QSize const &) + ?removeTransition@QState@@QAEXPAVQAbstractTransition@@@Z @ 2523 NONAME ; void QState::removeTransition(class QAbstractTransition *) + ??6QDebug@@QAEAAV0@PBD@Z @ 2524 NONAME ; class QDebug & QDebug::operator<<(char const *) + ??OQTime@@QBE_NABV0@@Z @ 2525 NONAME ; bool QTime::operator>(class QTime const &) const + ?setCoords@QRectF@@QAEXMMMM@Z @ 2526 NONAME ; void QRectF::setCoords(float, float, float, float) + ?tr@QTranslator@@SA?AVQString@@PBD0@Z @ 2527 NONAME ; class QString QTranslator::tr(char const *, char const *) + ??0QVariant@@QAE@ABVQChar@@@Z @ 2528 NONAME ; QVariant::QVariant(class QChar const &) + ?changePersistentIndexList@QAbstractItemModel@@IAEXABV?$QList@VQModelIndex@@@@0@Z @ 2529 NONAME ; void QAbstractItemModel::changePersistentIndexList(class QList const &, class QList const &) + ?tr@QPluginLoader@@SA?AVQString@@PBD0@Z @ 2530 NONAME ; class QString QPluginLoader::tr(char const *, char const *) + ?trUtf8@QObject@@SA?AVQString@@PBD0H@Z @ 2531 NONAME ; class QString QObject::trUtf8(char const *, char const *, int) + ??6@YA?AVQDebug@@V0@ABVQVariant@@@Z @ 2532 NONAME ; class QDebug operator<<(class QDebug, class QVariant const &) + ?child@QChildEvent@@QBEPAVQObject@@XZ @ 2533 NONAME ; class QObject * QChildEvent::child(void) const + ?writeStartElement@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 2534 NONAME ; void QXmlStreamWriter::writeStartElement(class QString const &, class QString const &) + ??_EQAbstractAnimation@@UAE@I@Z @ 2535 NONAME ; QAbstractAnimation::~QAbstractAnimation(unsigned int) + ??0QVariant@@QAE@ABVQStringList@@@Z @ 2536 NONAME ; QVariant::QVariant(class QStringList const &) + ?readElementText@QXmlStreamReader@@QAE?AVQString@@W4ReadElementTextBehaviour@1@@Z @ 2537 NONAME ; class QString QXmlStreamReader::readElementText(enum QXmlStreamReader::ReadElementTextBehaviour) + ?toDateTime@QLocale@@QBE?AVQDateTime@@ABVQString@@W4FormatType@1@@Z @ 2538 NONAME ; class QDateTime QLocale::toDateTime(class QString const &, enum QLocale::FormatType) const + ??8QDir@@QBE_NABV0@@Z @ 2539 NONAME ; bool QDir::operator==(class QDir const &) const + ?signalId@QMetaCallEvent@@QBEHXZ @ 2540 NONAME ; int QMetaCallEvent::signalId(void) const + ?intersected@QRect@@QBE?AV1@ABV1@@Z @ 2541 NONAME ; class QRect QRect::intersected(class QRect const &) const + ?qt_symbianLocaleName@@YA?AVQByteArray@@H@Z @ 2542 NONAME ; class QByteArray qt_symbianLocaleName(int) + ?d_func@QBuffer@@ABEPBVQBufferPrivate@@XZ @ 2543 NONAME ; class QBufferPrivate const * QBuffer::d_func(void) const + ?argv@QCoreApplication@@SAPAPADXZ @ 2544 NONAME ; char * * QCoreApplication::argv(void) + ?count@QByteArray@@QBEHXZ @ 2545 NONAME ; int QByteArray::count(void) const + ?propertyName@QDynamicPropertyChangeEvent@@QBE?AVQByteArray@@XZ @ 2546 NONAME ; class QByteArray QDynamicPropertyChangeEvent::propertyName(void) const + ??0QState@@IAE@AAVQStatePrivate@@PAV0@@Z @ 2547 NONAME ; QState::QState(class QStatePrivate &, class QState *) + ?onExit@QStateMachine@@MAEXPAVQEvent@@@Z @ 2548 NONAME ; void QStateMachine::onExit(class QEvent *) + ??0QLineF@@QAE@ABV0@@Z @ 2549 NONAME ; QLineF::QLineF(class QLineF const &) + ?findErrorState@QStateMachinePrivate@@QAEPAVQAbstractState@@PAV2@@Z @ 2550 NONAME ; class QAbstractState * QStateMachinePrivate::findErrorState(class QAbstractState *) + ?permission@QFileInfo@@QBE_NV?$QFlags@W4Permission@QFile@@@@@Z @ 2551 NONAME ; bool QFileInfo::permission(class QFlags) const + ?msec@QTime@@QBEHXZ @ 2552 NONAME ; int QTime::msec(void) const + ?longDayName@QDate@@SA?AVQString@@H@Z @ 2553 NONAME ; class QString QDate::longDayName(int) + ?readRawData@QDataStream@@QAEHPADH@Z @ 2554 NONAME ; int QDataStream::readRawData(char *, int) + ?toLocalTime@QDateTime@@QBE?AV1@XZ @ 2555 NONAME ; class QDateTime QDateTime::toLocalTime(void) const + ??0QVariant@@QAE@ABV?$QList@VQVariant@@@@@Z @ 2556 NONAME ; QVariant::QVariant(class QList const &) + ?setSystemIniPath@QSettings@@SAXABVQString@@@Z @ 2557 NONAME ; void QSettings::setSystemIniPath(class QString const &) + ??6QDebug@@QAEAAV0@_J@Z @ 2558 NONAME ; class QDebug & QDebug::operator<<(long long) + ?qt_metacall@QHistoryState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2559 NONAME ; int QHistoryState::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QLineF@@QAE@XZ @ 2560 NONAME ; QLineF::QLineF(void) + ?remove@QByteArray@@QAEAAV1@HH@Z @ 2561 NONAME ; class QByteArray & QByteArray::remove(int, int) + ?realloc@QListData@@QAEXH@Z @ 2562 NONAME ; void QListData::realloc(int) + ?removeLibraryPath@QCoreApplication@@SAXABVQString@@@Z @ 2563 NONAME ; void QCoreApplication::removeLibraryPath(class QString const &) + ??0QEasingCurve@@QAE@W4Type@0@@Z @ 2564 NONAME ; QEasingCurve::QEasingCurve(enum QEasingCurve::Type) + ?qt_metacall@QBuffer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2565 NONAME ; int QBuffer::qt_metacall(enum QMetaObject::Call, int, void * *) + ??MQString@@QBE_NABV0@@Z @ 2566 NONAME ; bool QString::operator<(class QString const &) const + ?_q_reregisterTimers@QObjectPrivate@@QAEXPAX@Z @ 2567 NONAME ; void QObjectPrivate::_q_reregisterTimers(void *) + ?free@QString@@CAXPAUData@1@@Z @ 2568 NONAME ; void QString::free(struct QString::Data *) + ??9QString@@QBE_NABVQByteArray@@@Z @ 2569 NONAME ; bool QString::operator!=(class QByteArray const &) const + ??_EQMimeData@@UAE@I@Z @ 2570 NONAME ; QMimeData::~QMimeData(unsigned int) + ?encodeData@QAbstractItemModel@@IBEXABV?$QList@VQModelIndex@@@@AAVQDataStream@@@Z @ 2571 NONAME ; void QAbstractItemModel::encodeData(class QList const &, class QDataStream &) const + ?left@QRectF@@QBEMXZ @ 2572 NONAME ; float QRectF::left(void) const + ?endFrame@QTimeLine@@QBEHXZ @ 2573 NONAME ; int QTimeLine::endFrame(void) const + ?toInt@QString@@QBEHPA_NH@Z @ 2574 NONAME ; int QString::toInt(bool *, int) const + ??NQByteArray@@QBE_NABVQString@@@Z @ 2575 NONAME ; bool QByteArray::operator<=(class QString const &) const + ?replace@QByteArray@@QAEAAV1@DPBD@Z @ 2576 NONAME ; class QByteArray & QByteArray::replace(char, char const *) + ?nameFilters@QDir@@QBE?AVQStringList@@XZ @ 2577 NONAME ; class QStringList QDir::nameFilters(void) const + ?allKeys@QSettings@@QBE?AVQStringList@@XZ @ 2578 NONAME ; class QStringList QSettings::allKeys(void) const + ?setReadChannel@QProcess@@QAEXW4ProcessChannel@1@@Z @ 2579 NONAME ; void QProcess::setReadChannel(enum QProcess::ProcessChannel) + ??6QDataStream@@QAEAAV0@I@Z @ 2580 NONAME ; class QDataStream & QDataStream::operator<<(unsigned int) + ??_EQByteArray@@QAE@I@Z @ 2581 NONAME ; QByteArray::~QByteArray(unsigned int) + ??5QDataStream@@QAEAAV0@AAPAD@Z @ 2582 NONAME ; class QDataStream & QDataStream::operator>>(char * &) + ?setScheme@QUrl@@QAEXABVQString@@@Z @ 2583 NONAME ; void QUrl::setScheme(class QString const &) + ?currentValue@QTimeLine@@QBEMXZ @ 2584 NONAME ; float QTimeLine::currentValue(void) const + ?addSearchPath@QResource@@SAXABVQString@@@Z @ 2585 NONAME ; void QResource::addSearchPath(class QString const &) + ?tr@QCoreApplication@@SA?AVQString@@PBD0@Z @ 2586 NONAME ; class QString QCoreApplication::tr(char const *, char const *) + ?setTopRight@QRect@@QAEXABVQPoint@@@Z @ 2587 NONAME ; void QRect::setTopRight(class QPoint const &) + ?thread@QObject@@QBEPAVQThread@@XZ @ 2588 NONAME ; class QThread * QObject::thread(void) const + ?metaObject@QSocketNotifier@@UBEPBUQMetaObject@@XZ @ 2589 NONAME ; struct QMetaObject const * QSocketNotifier::metaObject(void) const + ?fromString@QTime@@SA?AV1@ABVQString@@0@Z @ 2590 NONAME ; class QTime QTime::fromString(class QString const &, class QString const &) + ?methodType@QMetaMethod@@QBE?AW4MethodType@1@XZ @ 2591 NONAME ; enum QMetaMethod::MethodType QMetaMethod::methodType(void) const + ?qMemCopy@@YAPAXPAXPBXI@Z @ 2592 NONAME ; void * qMemCopy(void *, void const *, unsigned int) + ?qstrtod@@YANPBDPAPBDPA_N@Z @ 2593 NONAME ; double qstrtod(char const *, char const * *, bool *) + ?key@QSystemSemaphore@@QBE?AVQString@@XZ @ 2594 NONAME ; class QString QSystemSemaphore::key(void) const + ?qIsInf@@YA_NM@Z @ 2595 NONAME ; bool qIsInf(float) + ?setError@QAbstractFileEngine@@IAEXW4FileError@QFile@@ABVQString@@@Z @ 2596 NONAME ; void QAbstractFileEngine::setError(enum QFile::FileError, class QString const &) + ??OQString@@QBE_NPBD@Z @ 2597 NONAME ; bool QString::operator>(char const *) const + ?sectionPos@QDateTimeParser@@QBEHH@Z @ 2598 NONAME ; int QDateTimeParser::sectionPos(int) const + ??4QString@@QAEAAV0@VQChar@@@Z @ 2599 NONAME ; class QString & QString::operator=(class QChar) + ?startDetached@QProcess@@SA_NABVQString@@ABVQStringList@@0PA_J@Z @ 2600 NONAME ; bool QProcess::startDetached(class QString const &, class QStringList const &, class QString const &, long long *) + ?writeData@QBuffer@@MAE_JPBD_J@Z @ 2601 NONAME ; long long QBuffer::writeData(char const *, long long) + ?qRegisterStaticPluginInstanceFunction@@YAXP6APAVQObject@@XZ@Z @ 2602 NONAME ; void qRegisterStaticPluginInstanceFunction(class QObject * (*)(void)) + ?countriesForLanguage@QLocale@@SA?AV?$QList@W4Country@QLocale@@@@W4Language@1@@Z @ 2603 NONAME ; class QList QLocale::countriesForLanguage(enum QLocale::Language) + ?qt_metacall@QProcess@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2604 NONAME ; int QProcess::qt_metacall(enum QMetaObject::Call, int, void * *) + ??6QTextStream@@QAEAAV0@F@Z @ 2605 NONAME ; class QTextStream & QTextStream::operator<<(short) + ?stateExitLessThan@QStateMachinePrivate@@SA_NPAVQAbstractState@@0@Z @ 2606 NONAME ; bool QStateMachinePrivate::stateExitLessThan(class QAbstractState *, class QAbstractState *) + ?rangeContains@QXmlUtils@@CA_NPBVQXmlCharRange@@0VQChar@@@Z @ 2607 NONAME ; bool QXmlUtils::rangeContains(class QXmlCharRange const *, class QXmlCharRange const *, class QChar) + ?staticMetaObject@QEasingCurve@@2UQMetaObject@@B @ 2608 NONAME ; struct QMetaObject const QEasingCurve::staticMetaObject + ?toString@QLocale@@QBE?AVQString@@MDH@Z @ 2609 NONAME ; class QString QLocale::toString(float, char, int) const + ?started@QStateMachine@@IAEXXZ @ 2610 NONAME ; void QStateMachine::started(void) + ?isFinished@QThread@@QBE_NXZ @ 2611 NONAME ; bool QThread::isFinished(void) const + ?internalId@QPersistentModelIndex@@QBE_JXZ @ 2612 NONAME ; long long QPersistentModelIndex::internalId(void) const + ?rename@QFile@@QAE_NABVQString@@@Z @ 2613 NONAME ; bool QFile::rename(class QString const &) + ?d_func@QSocketNotifier@@ABEPBVQObjectPrivate@@XZ @ 2614 NONAME ; class QObjectPrivate const * QSocketNotifier::d_func(void) const + ?setBottom@QRectF@@QAEXM@Z @ 2615 NONAME ; void QRectF::setBottom(float) + ?metaObject@QState@@UBEPBUQMetaObject@@XZ @ 2616 NONAME ; struct QMetaObject const * QState::metaObject(void) const + ?addTransition@QState@@QAEPAVQAbstractTransition@@PAVQAbstractState@@@Z @ 2617 NONAME ; class QAbstractTransition * QState::addTransition(class QAbstractState *) + ?setFileName@QResource@@QAEXABVQString@@@Z @ 2618 NONAME ; void QResource::setFileName(class QString const &) + ?d_func@QTextStream@@AAEPAVQTextStreamPrivate@@XZ @ 2619 NONAME ; class QTextStreamPrivate * QTextStream::d_func(void) + ?isExecutable@QFileInfo@@QBE_NXZ @ 2620 NONAME ; bool QFileInfo::isExecutable(void) const + ?metaObject@QBuffer@@UBEPBUQMetaObject@@XZ @ 2621 NONAME ; struct QMetaObject const * QBuffer::metaObject(void) const + ?moveToThread_helper@QObjectPrivate@@QAEXXZ @ 2622 NONAME ; void QObjectPrivate::moveToThread_helper(void) + ??0QThreadPool@@QAE@PAVQObject@@@Z @ 2623 NONAME ; QThreadPool::QThreadPool(class QObject *) + ?convertFromUnicode@QFontLaoCodec@@UBE?AVQByteArray@@PBVQChar@@HPAUConverterState@QTextCodec@@@Z @ 2624 NONAME ; class QByteArray QFontLaoCodec::convertFromUnicode(class QChar const *, int, struct QTextCodec::ConverterState *) const + ?hasQueryItem@QUrl@@QBE_NABVQString@@@Z @ 2625 NONAME ; bool QUrl::hasQueryItem(class QString const &) const + ?trUtf8@QPropertyAnimation@@SA?AVQString@@PBD0@Z @ 2626 NONAME ; class QString QPropertyAnimation::trUtf8(char const *, char const *) + ?qt_metacast@QLibrary@@UAEPAXPBD@Z @ 2627 NONAME ; void * QLibrary::qt_metacast(char const *) + ?fromLocal8Bit@QString@@SA?AV1@PBDH@Z @ 2628 NONAME ; class QString QString::fromLocal8Bit(char const *, int) + ?activate@QMetaObject@@SAXPAVQObject@@HPAPAX@Z @ 2629 NONAME ; void QMetaObject::activate(class QObject *, int, void * *) + ?connectSlotsByName@QMetaObject@@SAXPAVQObject@@@Z @ 2630 NONAME ; void QMetaObject::connectSlotsByName(class QObject *) + ??0QCoreApplicationPrivate@@QAE@AAHPAPAD@Z @ 2631 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *) + ?width@QRect@@QBEHXZ @ 2632 NONAME ; int QRect::width(void) const + ?capturedTexts@QRegExp@@QBE?AVQStringList@@XZ @ 2633 NONAME ; class QStringList QRegExp::capturedTexts(void) const + ??_EQSignalTransition@@UAE@I@Z @ 2634 NONAME ; QSignalTransition::~QSignalTransition(unsigned int) + ?registeredTimers@QEventDispatcherSymbian@@UBE?AV?$QList@U?$QPair@HH@@@@PAVQObject@@@Z @ 2635 NONAME ; class QList > QEventDispatcherSymbian::registeredTimers(class QObject *) const + ?d_func@QXmlStreamWriter@@ABEPBVQXmlStreamWriterPrivate@@XZ @ 2636 NONAME ; class QXmlStreamWriterPrivate const * QXmlStreamWriter::d_func(void) const + ?seek@QFSFileEngine@@UAE_N_J@Z @ 2637 NONAME ; bool QFSFileEngine::seek(long long) + ??_EQSignalMapper@@UAE@I@Z @ 2638 NONAME ; QSignalMapper::~QSignalMapper(unsigned int) + ??0QStringRef@@QAE@ABV0@@Z @ 2639 NONAME ; QStringRef::QStringRef(class QStringRef const &) + ?dx@QLineF@@QBEMXZ @ 2640 NONAME ; float QLineF::dx(void) const + ??1QPauseAnimation@@UAE@XZ @ 2641 NONAME ; QPauseAnimation::~QPauseAnimation(void) + ??0QSystemLocale@@QAE@XZ @ 2642 NONAME ; QSystemLocale::QSystemLocale(void) + ?qt_signal_spy_callback_set@@3UQSignalSpyCallbackSet@@A @ 2643 NONAME ; struct QSignalSpyCallbackSet qt_signal_spy_callback_set + ?tr@QParallelAnimationGroup@@SA?AVQString@@PBD0H@Z @ 2644 NONAME ; class QString QParallelAnimationGroup::tr(char const *, char const *, int) + ?detach@QListData@@QAEPAUData@1@XZ @ 2645 NONAME ; struct QListData::Data * QListData::detach(void) + ?bundleName@QFileInfo@@QBE?AVQString@@XZ @ 2646 NONAME ; class QString QFileInfo::bundleName(void) const + ?bottom@QRect@@QBEHXZ @ 2647 NONAME ; int QRect::bottom(void) const + ?setStatus@QDataStream@@QAEXW4Status@1@@Z @ 2648 NONAME ; void QDataStream::setStatus(enum QDataStream::Status) + ?moveToThread@QObject@@QAEXPAVQThread@@@Z @ 2649 NONAME ; void QObject::moveToThread(class QThread *) + ?trUtf8@QAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 2650 NONAME ; class QString QAbstractAnimation::trUtf8(char const *, char const *, int) + ?replace@QByteArray@@QAEAAV1@HHPBD@Z @ 2651 NONAME ; class QByteArray & QByteArray::replace(int, int, char const *) + ?setRight@QRectF@@QAEXM@Z @ 2652 NONAME ; void QRectF::setRight(float) + ??9QXmlStreamNamespaceDeclaration@@QBE_NABV0@@Z @ 2653 NONAME ; bool QXmlStreamNamespaceDeclaration::operator!=(class QXmlStreamNamespaceDeclaration const &) const + ?toNativeSeparators@QDir@@SA?AVQString@@ABV2@@Z @ 2654 NONAME ; class QString QDir::toNativeSeparators(class QString const &) + ?row@QPersistentModelIndex@@QBEHXZ @ 2655 NONAME ; int QPersistentModelIndex::row(void) const + ??0QAbstractFileEngineHandler@@QAE@XZ @ 2656 NONAME ; QAbstractFileEngineHandler::QAbstractFileEngineHandler(void) + ??0QDataStream@@QAE@PAVQIODevice@@@Z @ 2657 NONAME ; QDataStream::QDataStream(class QIODevice *) + ??0QXmlStreamNamespaceDeclaration@@QAE@XZ @ 2658 NONAME ; QXmlStreamNamespaceDeclaration::QXmlStreamNamespaceDeclaration(void) + ?currentTime@QTime@@SA?AV1@XZ @ 2659 NONAME ; class QTime QTime::currentTime(void) + ?isFile@QResource@@IBE_NXZ @ 2660 NONAME ; bool QResource::isFile(void) const + ?qstrcmp@@YAHABVQByteArray@@0@Z @ 2661 NONAME ; int qstrcmp(class QByteArray const &, class QByteArray const &) + ?isNull@QSize@@QBE_NXZ @ 2662 NONAME ; bool QSize::isNull(void) const + ??0QByteArray@@AAE@PAUData@0@HH@Z @ 2663 NONAME ; QByteArray::QByteArray(struct QByteArray::Data *, int, int) + ?setTargetStates@QAbstractTransition@@QAEXABV?$QList@PAVQAbstractState@@@@@Z @ 2664 NONAME ; void QAbstractTransition::setTargetStates(class QList const &) + ?timerEvent@QTimer@@MAEXPAVQTimerEvent@@@Z @ 2665 NONAME ; void QTimer::timerEvent(class QTimerEvent *) + ??6QDataStream@@QAEAAV0@_J@Z @ 2666 NONAME ; class QDataStream & QDataStream::operator<<(long long) + ?unicode@QStringRef@@QBEPBVQChar@@XZ @ 2667 NONAME ; class QChar const * QStringRef::unicode(void) const + ?size@QAbstractFileEngine@@UBE_JXZ @ 2668 NONAME ; long long QAbstractFileEngine::size(void) const + ?setDeleteWatch@QObjectPrivate@@SAPAHPAV1@PAH@Z @ 2669 NONAME ; int * QObjectPrivate::setDeleteWatch(class QObjectPrivate *, int *) + ?metaObject@QEventTransition@@UBEPBUQMetaObject@@XZ @ 2670 NONAME ; struct QMetaObject const * QEventTransition::metaObject(void) const + ?resume@QTimeLine@@QAEXXZ @ 2671 NONAME ; void QTimeLine::resume(void) + ?match@QDir@@SA_NABVQString@@0@Z @ 2672 NONAME ; bool QDir::match(class QString const &, class QString const &) + ?event@QSocketNotifier@@MAE_NPAVQEvent@@@Z @ 2673 NONAME ; bool QSocketNotifier::event(class QEvent *) + ??8QLocale@@QBE_NABV0@@Z @ 2674 NONAME ; bool QLocale::operator==(class QLocale const &) const + ?d_func@QAbstractAnimation@@ABEPBVQAbstractAnimationPrivate@@XZ @ 2675 NONAME ; class QAbstractAnimationPrivate const * QAbstractAnimation::d_func(void) const + ??8@YA_NABUSectionNode@QDateTimeParser@@0@Z @ 2676 NONAME ; bool operator==(struct QDateTimeParser::SectionNode const &, struct QDateTimeParser::SectionNode const &) + ?getStaticMetaObject@QIODevice@@SAABUQMetaObject@@XZ @ 2677 NONAME ; struct QMetaObject const & QIODevice::getStaticMetaObject(void) + ?size@QRectF@@QBE?AVQSizeF@@XZ @ 2678 NONAME ; class QSizeF QRectF::size(void) const + ??8QBasicAtomicInt@@QBE_NH@Z @ 2679 NONAME ; bool QBasicAtomicInt::operator==(int) const + ?removeDefaultAnimation@QStateMachine@@QAEXPAVQAbstractAnimation@@@Z @ 2680 NONAME ; void QStateMachine::removeDefaultAnimation(class QAbstractAnimation *) + ?setUrl@QUrl@@QAEXABVQString@@W4ParsingMode@1@@Z @ 2681 NONAME ; void QUrl::setUrl(class QString const &, enum QUrl::ParsingMode) + ?qt_metacast@QSignalMapper@@UAEPAXPBD@Z @ 2682 NONAME ; void * QSignalMapper::qt_metacast(char const *) + ?isFlag@QMetaEnum@@QBE_NXZ @ 2683 NONAME ; bool QMetaEnum::isFlag(void) const + ?pos@QAbstractFileEngine@@UBE_JXZ @ 2684 NONAME ; long long QAbstractFileEngine::pos(void) const + ??1QFileSystemWatcher@@UAE@XZ @ 2685 NONAME ; QFileSystemWatcher::~QFileSystemWatcher(void) + ??0QVariant@@QAE@W4GlobalColor@Qt@@@Z @ 2686 NONAME ; QVariant::QVariant(enum Qt::GlobalColor) + ?arg@QString@@QBE?AV1@GHHABVQChar@@@Z @ 2687 NONAME ; class QString QString::arg(unsigned short, int, int, class QChar const &) const + ?getStaticMetaObject@QObject@@SAABUQMetaObject@@XZ @ 2688 NONAME ; struct QMetaObject const & QObject::getStaticMetaObject(void) + ?removePostedEvent@QCoreApplicationPrivate@@SAXPAVQEvent@@@Z @ 2689 NONAME ; void QCoreApplicationPrivate::removePostedEvent(class QEvent *) + ??_EQAbstractFileEngineIterator@@UAE@I@Z @ 2690 NONAME ; QAbstractFileEngineIterator::~QAbstractFileEngineIterator(unsigned int) + ??1QByteArrayMatcher@@QAE@XZ @ 2691 NONAME ; QByteArrayMatcher::~QByteArrayMatcher(void) + ?addYears@QDate@@QBE?AV1@H@Z @ 2692 NONAME ; class QDate QDate::addYears(int) const + ??1QSignalMapper@@UAE@XZ @ 2693 NONAME ; QSignalMapper::~QSignalMapper(void) + ?createIndex@QAbstractItemModelPrivate@@QBE?AVQModelIndex@@HHPAX@Z @ 2694 NONAME ; class QModelIndex QAbstractItemModelPrivate::createIndex(int, int, void *) const + ??_5QRect@@QAEAAV0@ABV0@@Z @ 2695 NONAME ; class QRect & QRect::operator|=(class QRect const &) + ?link@QAbstractFileEngine@@UAE_NABVQString@@@Z @ 2696 NONAME ; bool QAbstractFileEngine::link(class QString const &) + ?isEmpty@QObjectCleanupHandler@@QBE_NXZ @ 2697 NONAME ; bool QObjectCleanupHandler::isEmpty(void) const + ??0QTextBoundaryFinder@@QAE@ABV0@@Z @ 2698 NONAME ; QTextBoundaryFinder::QTextBoundaryFinder(class QTextBoundaryFinder const &) + ??6QDebug@@QAEAAV0@P6AAAVQTextStream@@AAV1@@Z@Z @ 2699 NONAME ; class QDebug & QDebug::operator<<(class QTextStream & (*)(class QTextStream &)) + ?setString@QTextStream@@QAEXPAVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 2700 NONAME ; void QTextStream::setString(class QString *, class QFlags) + ?shared_null@QLinkedListData@@2U1@A @ 2701 NONAME ; struct QLinkedListData QLinkedListData::shared_null + ?showbase@@YAAAVQTextStream@@AAV1@@Z @ 2702 NONAME ; class QTextStream & showbase(class QTextStream &) + ?entryList@QDir@@QBE?AVQStringList@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z @ 2703 NONAME ; class QStringList QDir::entryList(class QFlags, class QFlags) const + ?isWritable@QSettings@@QBE_NXZ @ 2704 NONAME ; bool QSettings::isWritable(void) const + ?lowercasedigits@@YAAAVQTextStream@@AAV1@@Z @ 2705 NONAME ; class QTextStream & lowercasedigits(class QTextStream &) + ?qt_metacast@QObjectCleanupHandler@@UAEPAXPBD@Z @ 2706 NONAME ; void * QObjectCleanupHandler::qt_metacast(char const *) + ?tr@QFileSystemWatcher@@SA?AVQString@@PBD0H@Z @ 2707 NONAME ; class QString QFileSystemWatcher::tr(char const *, char const *, int) + ??1QString@@QAE@XZ @ 2708 NONAME ; QString::~QString(void) + ?qt_metacast@QPauseAnimation@@UAEPAXPBD@Z @ 2709 NONAME ; void * QPauseAnimation::qt_metacast(char const *) + ?tr@QLibrary@@SA?AVQString@@PBD0@Z @ 2710 NONAME ; class QString QLibrary::tr(char const *, char const *) + ?at@QListData@@QBEPAPAXH@Z @ 2711 NONAME ; void * * QListData::at(int) const + ?begin@QString@@QBEPBVQChar@@XZ @ 2712 NONAME ; class QChar const * QString::begin(void) const + ?tr@QStateMachine@@SA?AVQString@@PBD0H@Z @ 2713 NONAME ; class QString QStateMachine::tr(char const *, char const *, int) + ??_EQStateMachine@@UAE@I@Z @ 2714 NONAME ; QStateMachine::~QStateMachine(unsigned int) + ??UQRectF@@QBE?AV0@ABV0@@Z @ 2715 NONAME ; class QRectF QRectF::operator|(class QRectF const &) const + ?isAccepted@QEvent@@QBE_NXZ @ 2716 NONAME ; bool QEvent::isAccepted(void) const + ??6@YAAAVQDataStream@@AAV0@W4Type@QVariant@@@Z @ 2717 NONAME ; class QDataStream & operator<<(class QDataStream &, enum QVariant::Type) + ??5@YAAAVQDataStream@@AAV0@AAUQUuid@@@Z @ 2718 NONAME ; class QDataStream & operator>>(class QDataStream &, struct QUuid &) + ?setHeight@QSize@@QAEXH@Z @ 2719 NONAME ; void QSize::setHeight(int) + ?enumerator@QMetaObject@@QBE?AVQMetaEnum@@H@Z @ 2720 NONAME ; class QMetaEnum QMetaObject::enumerator(int) const + ?write@QAbstractFileEngine@@UAE_JPBD_J@Z @ 2721 NONAME ; long long QAbstractFileEngine::write(char const *, long long) + ?exec@QThread@@IAEHXZ @ 2722 NONAME ; int QThread::exec(void) + ?normalizedSignature@QMetaObject@@SA?AVQByteArray@@PBD@Z @ 2723 NONAME ; class QByteArray QMetaObject::normalizedSignature(char const *) + ?attach@QSharedMemory@@QAE_NW4AccessMode@1@@Z @ 2724 NONAME ; bool QSharedMemory::attach(enum QSharedMemory::AccessMode) + ?tr@QFactoryLoader@@SA?AVQString@@PBD0H@Z @ 2725 NONAME ; class QString QFactoryLoader::tr(char const *, char const *, int) + ?addQueryItem@QUrl@@QAEXABVQString@@0@Z @ 2726 NONAME ; void QUrl::addQueryItem(class QString const &, class QString const &) + ?isStartDocument@QXmlStreamReader@@QBE_NXZ @ 2727 NONAME ; bool QXmlStreamReader::isStartDocument(void) const + ?start@QTimer@@QAEXXZ @ 2728 NONAME ; void QTimer::start(void) + ?tr@QAbstractListModel@@SA?AVQString@@PBD0@Z @ 2729 NONAME ; class QString QAbstractListModel::tr(char const *, char const *) + ?trUtf8@QNonContiguousByteDevice@@SA?AVQString@@PBD0@Z @ 2730 NONAME ; class QString QNonContiguousByteDevice::trUtf8(char const *, char const *) + ?trUtf8@QTimer@@SA?AVQString@@PBD0@Z @ 2731 NONAME ; class QString QTimer::trUtf8(char const *, char const *) + ??8QLine@@QBE_NABV0@@Z @ 2732 NONAME ; bool QLine::operator==(class QLine const &) const + ?bytesAvailable@QProcess@@UBE_JXZ @ 2733 NONAME ; long long QProcess::bytesAvailable(void) const + ?longDayName@QDate@@SA?AVQString@@HW4MonthNameType@1@@Z @ 2734 NONAME ; class QString QDate::longDayName(int, enum QDate::MonthNameType) + ?trUtf8@QAbstractItemModel@@SA?AVQString@@PBD0H@Z @ 2735 NONAME ; class QString QAbstractItemModel::trUtf8(char const *, char const *, int) + ??0QMetaMethod@@QAE@XZ @ 2736 NONAME ; QMetaMethod::QMetaMethod(void) + ?targetState@QAbstractTransition@@QBEPAVQAbstractState@@XZ @ 2737 NONAME ; class QAbstractState * QAbstractTransition::targetState(void) const + ?setNamespaceProcessing@QXmlStreamReader@@QAEX_N@Z @ 2738 NONAME ; void QXmlStreamReader::setNamespaceProcessing(bool) + ?save@QMetaType@@SA_NAAVQDataStream@@HPBX@Z @ 2739 NONAME ; bool QMetaType::save(class QDataStream &, int, void const *) + ??_EQEventLoop@@UAE@I@Z @ 2740 NONAME ; QEventLoop::~QEventLoop(unsigned int) + ?metaObject@QThreadPool@@UBEPBUQMetaObject@@XZ @ 2741 NONAME ; struct QMetaObject const * QThreadPool::metaObject(void) const + ?qErrnoWarning@@YAXHPBDZZ @ 2742 NONAME ; void qErrnoWarning(int, char const *, ...) + ?rmpath@QDir@@QBE_NABVQString@@@Z @ 2743 NONAME ; bool QDir::rmpath(class QString const &) const + ?trUtf8@QFinalState@@SA?AVQString@@PBD0H@Z @ 2744 NONAME ; class QString QFinalState::trUtf8(char const *, char const *, int) + ?defaultRoleNames@QAbstractItemModelPrivate@@SAABV?$QHash@HVQByteArray@@@@XZ @ 2745 NONAME ; class QHash const & QAbstractItemModelPrivate::defaultRoleNames(void) + ?setEncodedFragment@QUrl@@QAEXABVQByteArray@@@Z @ 2746 NONAME ; void QUrl::setEncodedFragment(class QByteArray const &) + ?moveTopLeft@QRectF@@QAEXABVQPointF@@@Z @ 2747 NONAME ; void QRectF::moveTopLeft(class QPointF const &) + ?seek@QFile@@UAE_N_J@Z @ 2748 NONAME ; bool QFile::seek(long long) + ??9QDate@@QBE_NABV0@@Z @ 2749 NONAME ; bool QDate::operator!=(class QDate const &) const + ?documentEncoding@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 2750 NONAME ; class QStringRef QXmlStreamReader::documentEncoding(void) const + ?errorString@QRegExp@@QAE?AVQString@@XZ @ 2751 NONAME ; class QString QRegExp::errorString(void) + ?isWritable@QMetaProperty@@QBE_NXZ @ 2752 NONAME ; bool QMetaProperty::isWritable(void) const + ?start@QAbstractAnimation@@QAEXW4DeletionPolicy@1@@Z @ 2753 NONAME ; void QAbstractAnimation::start(enum QAbstractAnimation::DeletionPolicy) + ?exited@QAbstractState@@AAEXXZ @ 2754 NONAME ; void QAbstractState::exited(void) + ?addTransition@QState@@QAEPAVQSignalTransition@@PAVQObject@@PBDPAVQAbstractState@@@Z @ 2755 NONAME ; class QSignalTransition * QState::addTransition(class QObject *, char const *, class QAbstractState *) + ?setTopLeft@QRectF@@QAEXABVQPointF@@@Z @ 2756 NONAME ; void QRectF::setTopLeft(class QPointF const &) + ?RequestComplete@QEventDispatcherSymbian@@SAXAAPAVTRequestStatus@@H@Z @ 2757 NONAME ; void QEventDispatcherSymbian::RequestComplete(class TRequestStatus * &, int) + ?setChildMode@QState@@QAEXW4ChildMode@1@@Z @ 2758 NONAME ; void QState::setChildMode(enum QState::ChildMode) + ?toLower@QCharRef@@QBE?AVQChar@@XZ @ 2759 NONAME ; class QChar QCharRef::toLower(void) const + ?setData@QMimeData@@QAEXABVQString@@ABVQByteArray@@@Z @ 2760 NONAME ; void QMimeData::setData(class QString const &, class QByteArray const &) + ?classInfo@QMetaObject@@QBE?AVQMetaClassInfo@@H@Z @ 2761 NONAME ; class QMetaClassInfo QMetaObject::classInfo(int) const + ?setData@QBuffer@@QAEXABVQByteArray@@@Z @ 2762 NONAME ; void QBuffer::setData(class QByteArray const &) + ?isValid@QTime@@SA_NHHHH@Z @ 2763 NONAME ; bool QTime::isValid(int, int, int, int) + ?writeTextElement@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 2764 NONAME ; void QXmlStreamWriter::writeTextElement(class QString const &, class QString const &) + ??1QMutexLocker@@QAE@XZ @ 2765 NONAME ; QMutexLocker::~QMutexLocker(void) + ??MQUuid@@QBE_NABU0@@Z @ 2766 NONAME ; bool QUuid::operator<(struct QUuid const &) const + ?codecForLocale@QTextCodec@@SAPAV1@XZ @ 2767 NONAME ; class QTextCodec * QTextCodec::codecForLocale(void) + ?event@QAnimationGroup@@MAE_NPAVQEvent@@@Z @ 2768 NONAME ; bool QAnimationGroup::event(class QEvent *) + ?isEmpty@QString@@QBE_NXZ @ 2769 NONAME ; bool QString::isEmpty(void) const + ??YQByteArray@@QAEAAV0@ABV0@@Z @ 2770 NONAME ; class QByteArray & QByteArray::operator+=(class QByteArray const &) + ?metaObject@QSettings@@UBEPBUQMetaObject@@XZ @ 2771 NONAME ; struct QMetaObject const * QSettings::metaObject(void) const + ?qcoreVariantHandler@@YAPBUHandler@QVariant@@XZ @ 2772 NONAME ; struct QVariant::Handler const * qcoreVariantHandler(void) + ?setCodecForTr@QTextCodec@@SAXPAV1@@Z @ 2773 NONAME ; void QTextCodec::setCodecForTr(class QTextCodec *) + ?setLocale@QTextStream@@QAEXABVQLocale@@@Z @ 2774 NONAME ; void QTextStream::setLocale(class QLocale const &) + ?event@QSignalTransition@@MAE_NPAVQEvent@@@Z @ 2775 NONAME ; bool QSignalTransition::event(class QEvent *) + ?willGrow@QHashData@@QAE_NXZ @ 2776 NONAME ; bool QHashData::willGrow(void) + ??6@YA?AVQDebug@@V0@ABVQUrl@@@Z @ 2777 NONAME ; class QDebug operator<<(class QDebug, class QUrl const &) + ?status@QTextStream@@QBE?AW4Status@1@XZ @ 2778 NONAME ; enum QTextStream::Status QTextStream::status(void) const + ?d_func@QAbstractItemModel@@ABEPBVQAbstractItemModelPrivate@@XZ @ 2779 NONAME ; class QAbstractItemModelPrivate const * QAbstractItemModel::d_func(void) const + ??6@YA?AVQDebug@@V0@ABVQDateTime@@@Z @ 2780 NONAME ; class QDebug operator<<(class QDebug, class QDateTime const &) + ?activate@QMetaObject@@SAXPAVQObject@@PBU1@HHPAPAX@Z @ 2781 NONAME ; void QMetaObject::activate(class QObject *, struct QMetaObject const *, int, int, void * *) + ?toBool@QVariant@@QBE_NXZ @ 2782 NONAME ; bool QVariant::toBool(void) const + ?isTitleCase@QChar@@QBE_NXZ @ 2783 NONAME ; bool QChar::isTitleCase(void) const + ??MQDateTime@@QBE_NABV0@@Z @ 2784 NONAME ; bool QDateTime::operator<(class QDateTime const &) const + ?currentPath@QDir@@SA?AVQString@@XZ @ 2785 NONAME ; class QString QDir::currentPath(void) + ?getRect@QRect@@QBEXPAH000@Z @ 2786 NONAME ; void QRect::getRect(int *, int *, int *, int *) const + ?setEncodedPassword@QUrl@@QAEXABVQByteArray@@@Z @ 2787 NONAME ; void QUrl::setEncodedPassword(class QByteArray const &) + ?currentThread@QThread@@SAPAV1@XZ @ 2788 NONAME ; class QThread * QThread::currentThread(void) + ??0QFile@@QAE@XZ @ 2789 NONAME ; QFile::QFile(void) + ?keys@QTextCodecPlugin@@EBE?AVQStringList@@XZ @ 2790 NONAME ; class QStringList QTextCodecPlugin::keys(void) const + ?toInt@QVariant@@QBEHPA_N@Z @ 2791 NONAME ; int QVariant::toInt(bool *) const + ?rename@QFile@@SA_NABVQString@@0@Z @ 2792 NONAME ; bool QFile::rename(class QString const &, class QString const &) + ?size@QFileInfo@@QBE_JXZ @ 2793 NONAME ; long long QFileInfo::size(void) const + ??6@YA?AVQDebug@@V0@ABVQRectF@@@Z @ 2794 NONAME ; class QDebug operator<<(class QDebug, class QRectF const &) + ?updateState@QPropertyAnimation@@MAEXW4State@QAbstractAnimation@@0@Z @ 2795 NONAME ; void QPropertyAnimation::updateState(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ?writeProcessingInstruction@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 2796 NONAME ; void QXmlStreamWriter::writeProcessingInstruction(class QString const &, class QString const &) + ?isEmpty@QProcessEnvironment@@QBE_NXZ @ 2797 NONAME ; bool QProcessEnvironment::isEmpty(void) const + ?qHash@@YAIABVQBitArray@@@Z @ 2798 NONAME ; unsigned int qHash(class QBitArray const &) + ??0QBuffer@@QAE@PAVQObject@@@Z @ 2799 NONAME ; QBuffer::QBuffer(class QObject *) + ?qt_QString2HBufC@@YAPAVHBufC16@@ABVQString@@@Z @ 2800 NONAME ; class HBufC16 * qt_QString2HBufC(class QString const &) + ?isLowSurrogate@QChar@@QBE_NXZ @ 2801 NONAME ; bool QChar::isLowSurrogate(void) const + ??_EQLibrary@@UAE@I@Z @ 2802 NONAME ; QLibrary::~QLibrary(unsigned int) + ?addDays@QDateTime@@QBE?AV1@H@Z @ 2803 NONAME ; class QDateTime QDateTime::addDays(int) const + ??1QMimeData@@UAE@XZ @ 2804 NONAME ; QMimeData::~QMimeData(void) + ??0QPropertyAnimation@@QAE@PAVQObject@@ABVQByteArray@@0@Z @ 2805 NONAME ; QPropertyAnimation::QPropertyAnimation(class QObject *, class QByteArray const &, class QObject *) + ??1QEasingCurve@@QAE@XZ @ 2806 NONAME ; QEasingCurve::~QEasingCurve(void) + ?number@QByteArray@@SA?AV1@_KH@Z @ 2807 NONAME ; class QByteArray QByteArray::number(unsigned long long, int) + ?replace@QByteArray@@QAEAAV1@DABV1@@Z @ 2808 NONAME ; class QByteArray & QByteArray::replace(char, class QByteArray const &) + ?decodeName@QFile@@SA?AVQString@@PBD@Z @ 2809 NONAME ; class QString QFile::decodeName(char const *) + ?trUtf8@QVariantAnimation@@SA?AVQString@@PBD0H@Z @ 2810 NONAME ; class QString QVariantAnimation::trUtf8(char const *, char const *, int) + ?absoluteFilePath@QFileInfo@@QBE?AVQString@@XZ @ 2811 NONAME ; class QString QFileInfo::absoluteFilePath(void) const + ?contains@QString@@QBE?AVQBool@@ABV1@W4CaseSensitivity@Qt@@@Z @ 2812 NONAME ; class QBool QString::contains(class QString const &, enum Qt::CaseSensitivity) const + ?mkdir@QDir@@QBE_NABVQString@@@Z @ 2813 NONAME ; bool QDir::mkdir(class QString const &) const + ?id@QMetaCallEvent@@QBEHXZ @ 2814 NONAME ; int QMetaCallEvent::id(void) const + ?setIniCodec@QSettings@@QAEXPBD@Z @ 2815 NONAME ; void QSettings::setIniCodec(char const *) + ?push_back@QByteArray@@QAEXABV1@@Z @ 2816 NONAME ; void QByteArray::push_back(class QByteArray const &) + ??0QLine@@QAE@ABVQPoint@@0@Z @ 2817 NONAME ; QLine::QLine(class QPoint const &, class QPoint const &) + ?isNull@QDate@@QBE_NXZ @ 2818 NONAME ; bool QDate::isNull(void) const + ?setCaching@QFileInfo@@QAEX_N@Z @ 2819 NONAME ; void QFileInfo::setCaching(bool) + ?changeGuard@QMetaObject@@SAXPAPAVQObject@@PAV2@@Z @ 2820 NONAME ; void QMetaObject::changeGuard(class QObject * *, class QObject *) + ?tr@QFileSystemWatcher@@SA?AVQString@@PBD0@Z @ 2821 NONAME ; class QString QFileSystemWatcher::tr(char const *, char const *) + ?trUtf8@QAbstractItemModel@@SA?AVQString@@PBD0@Z @ 2822 NONAME ; class QString QAbstractItemModel::trUtf8(char const *, char const *) + ?parent@QObject@@QBEPAV1@XZ @ 2823 NONAME ; class QObject * QObject::parent(void) const + ?absoluteMin@QDateTimeParser@@QBEHH@Z @ 2824 NONAME ; int QDateTimeParser::absoluteMin(int) const + ??6QDebug@@QAEAAV0@ABVQByteArray@@@Z @ 2825 NONAME ; class QDebug & QDebug::operator<<(class QByteArray const &) + ??0QFileInfo@@QAE@ABVQDir@@ABVQString@@@Z @ 2826 NONAME ; QFileInfo::QFileInfo(class QDir const &, class QString const &) + ??8QString@@QBE_NABVQByteArray@@@Z @ 2827 NONAME ; bool QString::operator==(class QByteArray const &) const + ??1QPropertyAnimation@@UAE@XZ @ 2828 NONAME ; QPropertyAnimation::~QPropertyAnimation(void) + ?unload@QLibrary@@QAE_NXZ @ 2829 NONAME ; bool QLibrary::unload(void) + ??1QTranslator@@UAE@XZ @ 2830 NONAME ; QTranslator::~QTranslator(void) + ?error@QSharedMemory@@QBE?AW4SharedMemoryError@1@XZ @ 2831 NONAME ; enum QSharedMemory::SharedMemoryError QSharedMemory::error(void) const + ?d_func@QCoreApplication@@AAEPAVQCoreApplicationPrivate@@XZ @ 2832 NONAME ; class QCoreApplicationPrivate * QCoreApplication::d_func(void) + ?height@QSizeF@@QBEMXZ @ 2833 NONAME ; float QSizeF::height(void) const + ?QStringList_filter@QtPrivate@@YA?AVQStringList@@PBV2@ABVQRegExp@@@Z @ 2834 NONAME ; class QStringList QtPrivate::QStringList_filter(class QStringList const *, class QRegExp const &) + ??MQByteArray@@QBE_NABVQString@@@Z @ 2835 NONAME ; bool QByteArray::operator<(class QString const &) const + ?stateName@QDateTimeParser@@QBE?AVQString@@H@Z @ 2836 NONAME ; class QString QDateTimeParser::stateName(int) const + ??1QAbstractTransitionPrivate@@UAE@XZ @ 2837 NONAME ; QAbstractTransitionPrivate::~QAbstractTransitionPrivate(void) + ?setPermissions@QFSFileEngine@@UAE_NI@Z @ 2838 NONAME ; bool QFSFileEngine::setPermissions(unsigned int) + ?rootPath@QFSFileEngine@@SA?AVQString@@XZ @ 2839 NONAME ; class QString QFSFileEngine::rootPath(void) + ?data@QMimeData@@QBE?AVQByteArray@@ABVQString@@@Z @ 2840 NONAME ; class QByteArray QMimeData::data(class QString const &) const + ??IQRectF@@QBE?AV0@ABV0@@Z @ 2841 NONAME ; class QRectF QRectF::operator&(class QRectF const &) const + ??4QString@@QAEAAV0@ABUNull@0@@Z @ 2842 NONAME ; class QString & QString::operator=(struct QString::Null const &) + ?atEnd@QXmlStreamReader@@QBE_NXZ @ 2843 NONAME ; bool QXmlStreamReader::atEnd(void) const + ?entityDeclarations@QXmlStreamReader@@QBE?AV?$QVector@VQXmlStreamEntityDeclaration@@@@XZ @ 2844 NONAME ; class QVector QXmlStreamReader::entityDeclarations(void) const + ?timerId@QTimerEvent@@QBEHXZ @ 2845 NONAME ; int QTimerEvent::timerId(void) const + ??1QStringRef@@QAE@XZ @ 2846 NONAME ; QStringRef::~QStringRef(void) + ?staticMetaObject@QSignalTransition@@2UQMetaObject@@B @ 2847 NONAME ; struct QMetaObject const QSignalTransition::staticMetaObject + ?putCharHelper@QIODevicePrivate@@UAE_ND@Z @ 2848 NONAME ; bool QIODevicePrivate::putCharHelper(char) + ?callFunction@QInternal@@SA_NW4InternalFunction@1@PAPAX@Z @ 2849 NONAME ; bool QInternal::callFunction(enum QInternal::InternalFunction, void * *) + ?eventFilter@QStateMachine@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 2850 NONAME ; bool QStateMachine::eventFilter(class QObject *, class QEvent *) + ?className@QMetaObject@@QBEPBDXZ @ 2851 NONAME ; char const * QMetaObject::className(void) const + ?d_func@QTemporaryFile@@ABEPBVQTemporaryFilePrivate@@XZ @ 2852 NONAME ; class QTemporaryFilePrivate const * QTemporaryFile::d_func(void) const + ?end@QString@@QAEPAVQChar@@XZ @ 2853 NONAME ; class QChar * QString::end(void) + ??_0QPointF@@QAEAAV0@M@Z @ 2854 NONAME ; class QPointF & QPointF::operator/=(float) + ?cap@QRegExp@@QBE?AVQString@@H@Z @ 2855 NONAME ; class QString QRegExp::cap(int) const + ?getStaticMetaObject@QCoreApplication@@SAABUQMetaObject@@XZ @ 2856 NONAME ; struct QMetaObject const & QCoreApplication::getStaticMetaObject(void) + ?resize@QString@@QAEXH@Z @ 2857 NONAME ; void QString::resize(int) + ?d_func@QTimeLine@@AAEPAVQTimeLinePrivate@@XZ @ 2858 NONAME ; class QTimeLinePrivate * QTimeLine::d_func(void) + ?qInf@@YANXZ @ 2859 NONAME ; double qInf(void) + ?registerResource@QResource@@SA_NABVQString@@0@Z @ 2860 NONAME ; bool QResource::registerResource(class QString const &, class QString const &) + ?prepend@QString@@QAEAAV1@ABVQByteArray@@@Z @ 2861 NONAME ; class QString & QString::prepend(class QByteArray const &) + ?removeGuard@QMetaObject@@SAXPAPAVQObject@@@Z @ 2862 NONAME ; void QMetaObject::removeGuard(class QObject * *) + ??5QTextStream@@QAEAAV0@AAJ@Z @ 2863 NONAME ; class QTextStream & QTextStream::operator>>(long &) + ??_EQEventTransition@@UAE@I@Z @ 2864 NONAME ; QEventTransition::~QEventTransition(unsigned int) + ??AQBitArray@@QBE_NI@Z @ 2865 NONAME ; bool QBitArray::operator[](unsigned int) const + ?setProcessEnvironment@QProcess@@QAEXABVQProcessEnvironment@@@Z @ 2866 NONAME ; void QProcess::setProcessEnvironment(class QProcessEnvironment const &) + ?q_func@QCoreApplicationPrivate@@ABEPBVQCoreApplication@@XZ @ 2867 NONAME ; class QCoreApplication const * QCoreApplicationPrivate::q_func(void) const + ?setP2@QLine@@QAEXABVQPoint@@@Z @ 2868 NONAME ; void QLine::setP2(class QPoint const &) + ?push_back@QString@@QAEXABV1@@Z @ 2869 NONAME ; void QString::push_back(class QString const &) + ?isPublicID@QXmlUtils@@SA_NABVQString@@@Z @ 2870 NONAME ; bool QXmlUtils::isPublicID(class QString const &) + ?rowsInserted@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 2871 NONAME ; void QAbstractItemModelPrivate::rowsInserted(class QModelIndex const &, int, int) + ??4QVariant@@QAEAAV0@ABV0@@Z @ 2872 NONAME ; class QVariant & QVariant::operator=(class QVariant const &) + ?setFieldAlignment@QTextStream@@QAEXW4FieldAlignment@1@@Z @ 2873 NONAME ; void QTextStream::setFieldAlignment(enum QTextStream::FieldAlignment) + ?fromStdWString@QString@@SA?AV1@ABV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z @ 2874 NONAME ; class QString QString::fromStdWString(class std::basic_string, class std::allocator > const &) + ??_EQObjectCleanupHandler@@UAE@I@Z @ 2875 NONAME ; QObjectCleanupHandler::~QObjectCleanupHandler(unsigned int) + ?errorString@QXmlStreamReader@@QBE?AVQString@@XZ @ 2876 NONAME ; class QString QXmlStreamReader::errorString(void) const + ?tr@QObject@@SA?AVQString@@PBD0@Z @ 2877 NONAME ; class QString QObject::tr(char const *, char const *) + ??0QChar@@QAE@D@Z @ 2878 NONAME ; QChar::QChar(char) + ??AQBitArray@@QAE?AVQBitRef@@I@Z @ 2879 NONAME ; class QBitRef QBitArray::operator[](unsigned int) + ?moveRight@QRectF@@QAEXM@Z @ 2880 NONAME ; void QRectF::moveRight(float) + ?d_func@QThreadPool@@ABEPBVQThreadPoolPrivate@@XZ @ 2881 NONAME ; class QThreadPoolPrivate const * QThreadPool::d_func(void) const + ?metaObject@QProcess@@UBEPBUQMetaObject@@XZ @ 2882 NONAME ; struct QMetaObject const * QProcess::metaObject(void) const + ?trUtf8@QSharedMemory@@SA?AVQString@@PBD0H@Z @ 2883 NONAME ; class QString QSharedMemory::trUtf8(char const *, char const *, int) + ??0QXmlStreamReader@@QAE@XZ @ 2884 NONAME ; QXmlStreamReader::QXmlStreamReader(void) + ?qualifiedName@QXmlStreamAttribute@@QBE?AVQStringRef@@XZ @ 2885 NONAME ; class QStringRef QXmlStreamAttribute::qualifiedName(void) const + ?constData@QString@@QBEPBVQChar@@XZ @ 2886 NONAME ; class QChar const * QString::constData(void) const + ?startsWith@QString@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 2887 NONAME ; bool QString::startsWith(class QString const &, enum Qt::CaseSensitivity) const + ?staticMetaObject@QFileSystemWatcher@@2UQMetaObject@@B @ 2888 NONAME ; struct QMetaObject const QFileSystemWatcher::staticMetaObject + ?propertyIndex@QMetaProperty@@QBEHXZ @ 2889 NONAME ; int QMetaProperty::propertyIndex(void) const + ?split@QByteArray@@QBE?AV?$QList@VQByteArray@@@@D@Z @ 2890 NONAME ; class QList QByteArray::split(char) const + ?start@QTimer@@QAEXH@Z @ 2891 NONAME ; void QTimer::start(int) + ?aboutToBlock@QAbstractEventDispatcher@@IAEXXZ @ 2892 NONAME ; void QAbstractEventDispatcher::aboutToBlock(void) + ?position@QTextBoundaryFinder@@QBEHXZ @ 2893 NONAME ; int QTextBoundaryFinder::position(void) const + ?qt_safe_select@@YAHHPAUfd_set@@00PBUtimeval@@@Z @ 2894 NONAME ; int qt_safe_select(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval const *) + ??4QDir@@QAEAAV0@ABV0@@Z @ 2895 NONAME ; class QDir & QDir::operator=(class QDir const &) + ?isLoaded@QLibrary@@QBE_NXZ @ 2896 NONAME ; bool QLibrary::isLoaded(void) const + ?dropMimeData@QAbstractItemModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 2897 NONAME ; bool QAbstractItemModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?isBaseChar@QXmlUtils@@CA_NVQChar@@@Z @ 2898 NONAME ; bool QXmlUtils::isBaseChar(class QChar) + ??BQBasicAtomicInt@@QBEHXZ @ 2899 NONAME ; QBasicAtomicInt::operator int(void) const + ?variant@QUuid@@QBE?AW4Variant@1@XZ @ 2900 NONAME ; enum QUuid::Variant QUuid::variant(void) const + ?toPoint@QPointF@@QBE?AVQPoint@@XZ @ 2901 NONAME ; class QPoint QPointF::toPoint(void) const + ?execute@QProcess@@SAHABVQString@@@Z @ 2902 NONAME ; int QProcess::execute(class QString const &) + ?qt_TDesC2QString@@YA?AVQString@@ABVTDesC16@@@Z @ 2903 NONAME ; class QString qt_TDesC2QString(class TDesC16 const &) + ??1QCoreApplicationPrivate@@UAE@XZ @ 2904 NONAME ; QCoreApplicationPrivate::~QCoreApplicationPrivate(void) + ?matchedLength@QRegExp@@QBEHXZ @ 2905 NONAME ; int QRegExp::matchedLength(void) const + ?setThreadData_helper@QObjectPrivate@@QAEXPAVQThreadData@@0@Z @ 2906 NONAME ; void QObjectPrivate::setThreadData_helper(class QThreadData *, class QThreadData *) + ?priority@QThread@@QBE?AW4Priority@1@XZ @ 2907 NONAME ; enum QThread::Priority QThread::priority(void) const + ?removePath@QFileSystemWatcher@@QAEXABVQString@@@Z @ 2908 NONAME ; void QFileSystemWatcher::removePath(class QString const &) + ?isValid@QSize@@QBE_NXZ @ 2909 NONAME ; bool QSize::isValid(void) const + ?setApplicationName@QCoreApplication@@SAXABVQString@@@Z @ 2910 NONAME ; void QCoreApplication::setApplicationName(class QString const &) + ?isRoot@QFileInfo@@QBE_NXZ @ 2911 NONAME ; bool QFileInfo::isRoot(void) const + ?stringToDouble@QLocalePrivate@@QBENABVQString@@PA_NW4GroupSeparatorMode@1@@Z @ 2912 NONAME ; double QLocalePrivate::stringToDouble(class QString const &, bool *, enum QLocalePrivate::GroupSeparatorMode) const + ?fetchAndStoreAcquire@QBasicAtomicInt@@QAEHH@Z @ 2913 NONAME ; int QBasicAtomicInt::fetchAndStoreAcquire(int) + ??0QTextBoundaryFinder@@QAE@W4BoundaryType@0@ABVQString@@@Z @ 2914 NONAME ; QTextBoundaryFinder::QTextBoundaryFinder(enum QTextBoundaryFinder::BoundaryType, class QString const &) + ?fromPercentEncoding@QUrl@@SA?AVQString@@ABVQByteArray@@@Z @ 2915 NONAME ; class QString QUrl::fromPercentEncoding(class QByteArray const &) + ?vsprintf@QString@@QAEAAV1@PBDPAD@Z @ 2916 NONAME ; class QString & QString::vsprintf(char const *, char *) + ?d_func@QVariantAnimation@@ABEPBVQVariantAnimationPrivate@@XZ @ 2917 NONAME ; class QVariantAnimationPrivate const * QVariantAnimation::d_func(void) const + ?daysInYear@QDate@@QBEHXZ @ 2918 NONAME ; int QDate::daysInYear(void) const + ??0QXmlStreamNotationDeclaration@@QAE@ABV0@@Z @ 2919 NONAME ; QXmlStreamNotationDeclaration::QXmlStreamNotationDeclaration(class QXmlStreamNotationDeclaration const &) + ?getAmPmText@QDateTimeParser@@UBE?AVQString@@W4AmPm@1@W4Case@1@@Z @ 2920 NONAME ; class QString QDateTimeParser::getAmPmText(enum QDateTimeParser::AmPm, enum QDateTimeParser::Case) const + ??4QAtomicInt@@QAEAAV0@ABV0@@Z @ 2921 NONAME ; class QAtomicInt & QAtomicInt::operator=(class QAtomicInt const &) + ?isParentOf@QUrl@@QBE_NABV1@@Z @ 2922 NONAME ; bool QUrl::isParentOf(class QUrl const &) const + ?isNull@QBitArray@@QBE_NXZ @ 2923 NONAME ; bool QBitArray::isNull(void) const + ?getStaticMetaObject@QEasingCurve@@SAABUQMetaObject@@XZ @ 2924 NONAME ; struct QMetaObject const & QEasingCurve::getStaticMetaObject(void) + ?normalized@QRectF@@QBE?AV1@XZ @ 2925 NONAME ; class QRectF QRectF::normalized(void) const + ?removeColumns@QAbstractItemModel@@UAE_NHHABVQModelIndex@@@Z @ 2926 NONAME ; bool QAbstractItemModel::removeColumns(int, int, class QModelIndex const &) + ?addYears@QDateTime@@QBE?AV1@H@Z @ 2927 NONAME ; class QDateTime QDateTime::addYears(int) const + ?setWidth@QSize@@QAEXH@Z @ 2928 NONAME ; void QSize::setWidth(int) + ?started@QProcess@@IAEXXZ @ 2929 NONAME ; void QProcess::started(void) + ?toString@QLocale@@QBE?AVQString@@_K@Z @ 2930 NONAME ; class QString QLocale::toString(unsigned long long) const + ?prepend@QByteArray@@QAEAAV1@ABV1@@Z @ 2931 NONAME ; class QByteArray & QByteArray::prepend(class QByteArray const &) + ??XQSizeF@@QAEAAV0@M@Z @ 2932 NONAME ; class QSizeF & QSizeF::operator*=(float) + ??0QString@@QAE@ABVQLatin1String@@@Z @ 2933 NONAME ; QString::QString(class QLatin1String const &) + ?qt_metacall@QFactoryLoader@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2934 NONAME ; int QFactoryLoader::qt_metacall(enum QMetaObject::Call, int, void * *) + ?registerEventTransition@QStateMachinePrivate@@QAEXPAVQEventTransition@@@Z @ 2935 NONAME ; void QStateMachinePrivate::registerEventTransition(class QEventTransition *) + ??OQByteRef@@QBE_ND@Z @ 2936 NONAME ; bool QByteRef::operator>(char) const + ?unregisterAllTransitions@QStateMachinePrivate@@QAEXXZ @ 2937 NONAME ; void QStateMachinePrivate::unregisterAllTransitions(void) + ?added@QChildEvent@@QBE_NXZ @ 2938 NONAME ; bool QChildEvent::added(void) const + ?processEvents@QEventLoop@@QAEXV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@H@Z @ 2939 NONAME ; void QEventLoop::processEvents(class QFlags, int) + ?setNum@QString@@QAEAAV1@FH@Z @ 2940 NONAME ; class QString & QString::setNum(short, int) + ??DQHBufC@@QAEAAVHBufC16@@XZ @ 2941 NONAME ; class HBufC16 & QHBufC::operator*(void) + ?queryValueDelimiter@QUrl@@QBEDXZ @ 2942 NONAME ; char QUrl::queryValueDelimiter(void) const + ?rx@QPointF@@QAEAAMXZ @ 2943 NONAME ; float & QPointF::rx(void) + ?getStaticMetaObject@QThread@@SAABUQMetaObject@@XZ @ 2944 NONAME ; struct QMetaObject const & QThread::getStaticMetaObject(void) + ??4QXmlStreamAttribute@@QAEAAV0@ABV0@@Z @ 2945 NONAME ; class QXmlStreamAttribute & QXmlStreamAttribute::operator=(class QXmlStreamAttribute const &) + ?currentLoop@QAbstractAnimation@@QBEHXZ @ 2946 NONAME ; int QAbstractAnimation::currentLoop(void) const + ?error@QFile@@QBE?AW4FileError@1@XZ @ 2947 NONAME ; enum QFile::FileError QFile::error(void) const + ?columnsRemoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 2948 NONAME ; void QAbstractItemModel::columnsRemoved(class QModelIndex const &, int, int) + ?qt_metacall@QSignalMapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2949 NONAME ; int QSignalMapper::qt_metacall(enum QMetaObject::Call, int, void * *) + ?event@QVariantAnimation@@MAE_NPAVQEvent@@@Z @ 2950 NONAME ; bool QVariantAnimation::event(class QEvent *) + ??0QStateMachine@@QAE@PAVQObject@@@Z @ 2951 NONAME ; QStateMachine::QStateMachine(class QObject *) + ?oct@@YAAAVQTextStream@@AAV1@@Z @ 2952 NONAME ; class QTextStream & oct(class QTextStream &) + ?removeEventFilter@QObject@@QAEXPAV1@@Z @ 2953 NONAME ; void QObject::removeEventFilter(class QObject *) + ?shared_null@QListData@@2UData@1@A @ 2954 NONAME ; struct QListData::Data QListData::shared_null + ?qt_locale_initialized@@3_NA @ 2955 NONAME ; bool qt_locale_initialized + ?instance@QUnifiedTimer@@SAPAV1@XZ @ 2956 NONAME ; class QUnifiedTimer * QUnifiedTimer::instance(void) + ?translate@QRectF@@QAEXABVQPointF@@@Z @ 2957 NONAME ; void QRectF::translate(class QPointF const &) + ?trUtf8@QFileSystemWatcher@@SA?AVQString@@PBD0H@Z @ 2958 NONAME ; class QString QFileSystemWatcher::trUtf8(char const *, char const *, int) + ?d_func@QTextStream@@ABEPBVQTextStreamPrivate@@XZ @ 2959 NONAME ; class QTextStreamPrivate const * QTextStream::d_func(void) const + ?deleteLater@QObject@@QAEXXZ @ 2960 NONAME ; void QObject::deleteLater(void) + ?writeAttribute@QXmlStreamWriter@@QAEXABVQString@@0@Z @ 2961 NONAME ; void QXmlStreamWriter::writeAttribute(class QString const &, class QString const &) + ?qWarning@@YAXPBDZZ @ 2962 NONAME ; void qWarning(char const *, ...) + ?toPoint@QVariant@@QBE?AVQPoint@@XZ @ 2963 NONAME ; class QPoint QVariant::toPoint(void) const + ??BQCharRef@@QBE?AVQChar@@XZ @ 2964 NONAME ; QCharRef::operator class QChar(void) const + ?relock@QReadLocker@@QAEXXZ @ 2965 NONAME ; void QReadLocker::relock(void) + ?data_ptr@QVariant@@QAEAAUPrivate@1@XZ @ 2966 NONAME ; struct QVariant::Private & QVariant::data_ptr(void) + ?day@QDate@@QBEHXZ @ 2967 NONAME ; int QDate::day(void) const + ?setEndFrame@QTimeLine@@QAEXH@Z @ 2968 NONAME ; void QTimeLine::setEndFrame(int) + ?toHex@QByteArray@@QBE?AV1@XZ @ 2969 NONAME ; class QByteArray QByteArray::toHex(void) const + ?getStaticMetaObject@QTimer@@SAABUQMetaObject@@XZ @ 2970 NONAME ; struct QMetaObject const & QTimer::getStaticMetaObject(void) + ?absoluteFilePath@QDir@@QBE?AVQString@@ABV2@@Z @ 2971 NONAME ; class QString QDir::absoluteFilePath(class QString const &) const + ?atEnd@QFile@@UBE_NXZ @ 2972 NONAME ; bool QFile::atEnd(void) const + ?beginEntryList@QFSFileEngine@@UAEPAVQAbstractFileEngineIterator@@V?$QFlags@W4Filter@QDir@@@@ABVQStringList@@@Z @ 2973 NONAME ; class QAbstractFileEngineIterator * QFSFileEngine::beginEntryList(class QFlags, class QStringList const &) + ?count@QString@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 2974 NONAME ; int QString::count(class QString const &, enum Qt::CaseSensitivity) const + ??_EQNonContiguousByteDevice@@UAE@I@Z @ 2975 NONAME ; QNonContiguousByteDevice::~QNonContiguousByteDevice(unsigned int) + ?trUtf8@QObjectCleanupHandler@@SA?AVQString@@PBD0H@Z @ 2976 NONAME ; class QString QObjectCleanupHandler::trUtf8(char const *, char const *, int) + ?canonicalPath@QFileInfo@@QBE?AVQString@@XZ @ 2977 NONAME ; class QString QFileInfo::canonicalPath(void) const + ?setSearchPaths@QDir@@SAXABVQString@@ABVQStringList@@@Z @ 2978 NONAME ; void QDir::setSearchPaths(class QString const &, class QStringList const &) + ?superClass@QMetaObject@@QBEPBU1@XZ @ 2979 NONAME ; struct QMetaObject const * QMetaObject::superClass(void) const + ?moveTopRight@QRect@@QAEXABVQPoint@@@Z @ 2980 NONAME ; void QRect::moveTopRight(class QPoint const &) + ?overshoot@QEasingCurve@@QBEMXZ @ 2981 NONAME ; float QEasingCurve::overshoot(void) const + ?remove@QString@@QAEAAV1@ABV1@W4CaseSensitivity@Qt@@@Z @ 2982 NONAME ; class QString & QString::remove(class QString const &, enum Qt::CaseSensitivity) + ?shortDayName@QDate@@SA?AVQString@@H@Z @ 2983 NONAME ; class QString QDate::shortDayName(int) + ?isNCName@QXmlUtils@@SA_NABVQStringRef@@@Z @ 2984 NONAME ; bool QXmlUtils::isNCName(class QStringRef const &) + ?unicodeVersion@QChar@@SA?AW4UnicodeVersion@1@G@Z @ 2985 NONAME ; enum QChar::UnicodeVersion QChar::unicodeVersion(unsigned short) + ?parseFormat@QDateTimeParser@@QAE_NABVQString@@@Z @ 2986 NONAME ; bool QDateTimeParser::parseFormat(class QString const &) + ?targetObject@QPropertyAnimation@@QBEPAVQObject@@XZ @ 2987 NONAME ; class QObject * QPropertyAnimation::targetObject(void) const + ?compare@QString@@SAHABV1@0W4CaseSensitivity@Qt@@@Z @ 2988 NONAME ; int QString::compare(class QString const &, class QString const &, enum Qt::CaseSensitivity) + ?minus@QLocalePrivate@@QBE?AVQChar@@XZ @ 2989 NONAME ; class QChar QLocalePrivate::minus(void) const + ?event@QPropertyAnimation@@MAE_NPAVQEvent@@@Z @ 2990 NONAME ; bool QPropertyAnimation::event(class QEvent *) + ??0QTime@@QAE@HHHH@Z @ 2991 NONAME ; QTime::QTime(int, int, int, int) + ?bottomLeft@QRect@@QBE?AVQPoint@@XZ @ 2992 NONAME ; class QPoint QRect::bottomLeft(void) const + ?error@QSystemSemaphore@@QBE?AW4SystemSemaphoreError@1@XZ @ 2993 NONAME ; enum QSystemSemaphore::SystemSemaphoreError QSystemSemaphore::error(void) const + ??4QUrl@@QAEAAV0@ABVQString@@@Z @ 2994 NONAME ; class QUrl & QUrl::operator=(class QString const &) + ?mapping@QSignalMapper@@QBEPAVQObject@@PAVQWidget@@@Z @ 2995 NONAME ; class QObject * QSignalMapper::mapping(class QWidget *) const + ?q_func@QIODevicePrivate@@AAEPAVQIODevice@@XZ @ 2996 NONAME ; class QIODevice * QIODevicePrivate::q_func(void) + ?hash@QCryptographicHash@@SA?AVQByteArray@@ABV2@W4Algorithm@1@@Z @ 2997 NONAME ; class QByteArray QCryptographicHash::hash(class QByteArray const &, enum QCryptographicHash::Algorithm) + ??5QDataStream@@QAEAAV0@AAE@Z @ 2998 NONAME ; class QDataStream & QDataStream::operator>>(unsigned char &) + ?toLongLong@QVariant@@QBE_JPA_N@Z @ 2999 NONAME ; long long QVariant::toLongLong(bool *) const + ?toUpper@QChar@@QBE?AV1@XZ @ 3000 NONAME ; class QChar QChar::toUpper(void) const + ?previousNode@QHashData@@SAPAUNode@1@PAU21@@Z @ 3001 NONAME ; struct QHashData::Node * QHashData::previousNode(struct QHashData::Node *) + ?socketFired@QEventDispatcherSymbian@@QAEXPAVQSocketActiveObject@@@Z @ 3002 NONAME ; void QEventDispatcherSymbian::socketFired(class QSocketActiveObject *) + ?boundedTo@QSize@@QBE?AV1@ABV1@@Z @ 3003 NONAME ; class QSize QSize::boundedTo(class QSize const &) const + ?moveBottomRight@QRect@@QAEXABVQPoint@@@Z @ 3004 NONAME ; void QRect::moveBottomRight(class QPoint const &) + ??1QChildEvent@@UAE@XZ @ 3005 NONAME ; QChildEvent::~QChildEvent(void) + ?arg@QString@@QBE?AV1@DHABVQChar@@@Z @ 3006 NONAME ; class QString QString::arg(char, int, class QChar const &) const + ??0QBasicTimer@@QAE@XZ @ 3007 NONAME ; QBasicTimer::QBasicTimer(void) + ?push_back@QByteArray@@QAEXPBD@Z @ 3008 NONAME ; void QByteArray::push_back(char const *) + ?topLeft@QRect@@QBE?AVQPoint@@XZ @ 3009 NONAME ; class QPoint QRect::topLeft(void) const + ??0QLocale@@QAE@ABVQString@@@Z @ 3010 NONAME ; QLocale::QLocale(class QString const &) + ?copy@QAbstractFileEngine@@UAE_NABVQString@@@Z @ 3011 NONAME ; bool QAbstractFileEngine::copy(class QString const &) + ?hasStdCppSet@QMetaProperty@@QBE_NXZ @ 3012 NONAME ; bool QMetaProperty::hasStdCppSet(void) const + ??0QSettings@@QAE@ABVQString@@W4Format@0@PAVQObject@@@Z @ 3013 NONAME ; QSettings::QSettings(class QString const &, enum QSettings::Format, class QObject *) + ?encodedHost@QUrl@@QBE?AVQByteArray@@XZ @ 3014 NONAME ; class QByteArray QUrl::encodedHost(void) const + ?fromAce@QUrl@@SA?AVQString@@ABVQByteArray@@@Z @ 3015 NONAME ; class QString QUrl::fromAce(class QByteArray const &) + ?staticMetaObject@QSharedMemory@@2UQMetaObject@@B @ 3016 NONAME ; struct QMetaObject const QSharedMemory::staticMetaObject + ?toStdString@QString@@QBE?AV?$basic_string@DV?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @ 3017 NONAME ; class std::basic_string, class std::allocator > QString::toStdString(void) const + ?accept@QEvent@@QAEXXZ @ 3018 NONAME ; void QEvent::accept(void) + ?codecForTr@QTextCodec@@SAPAV1@XZ @ 3019 NONAME ; class QTextCodec * QTextCodec::codecForTr(void) + ??4QCharRef@@QAEAAV0@F@Z @ 3020 NONAME ; class QCharRef & QCharRef::operator=(short) + ?toLine@QLineF@@QBE?AVQLine@@XZ @ 3021 NONAME ; class QLine QLineF::toLine(void) const + ??6QTextStream@@QAEAAV0@N@Z @ 3022 NONAME ; class QTextStream & QTextStream::operator<<(double) + ??YQString@@QAEAAV0@W4SpecialCharacter@QChar@@@Z @ 3023 NONAME ; class QString & QString::operator+=(enum QChar::SpecialCharacter) + ??5@YAAAVQDataStream@@AAV0@AAVQString@@@Z @ 3024 NONAME ; class QDataStream & operator>>(class QDataStream &, class QString &) + ?fetchAndStoreRelaxed@QBasicAtomicInt@@QAEHH@Z @ 3025 NONAME ; int QBasicAtomicInt::fetchAndStoreRelaxed(int) + ??_0QPoint@@QAEAAV0@M@Z @ 3026 NONAME ; class QPoint & QPoint::operator/=(float) + ??0QByteArrayMatcher@@QAE@ABV0@@Z @ 3027 NONAME ; QByteArrayMatcher::QByteArrayMatcher(class QByteArrayMatcher const &) + ?exists@QFile@@SA_NABVQString@@@Z @ 3028 NONAME ; bool QFile::exists(class QString const &) + ?qt_metacall@QAbstractListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3029 NONAME ; int QAbstractListModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?indexIn@QByteArrayMatcher@@QBEHPBDHH@Z @ 3030 NONAME ; int QByteArrayMatcher::indexIn(char const *, int, int) const + ?toULong@QString@@QBEKPA_NH@Z @ 3031 NONAME ; unsigned long QString::toULong(bool *, int) const + ?insertRow@QAbstractItemModel@@QAE_NHABVQModelIndex@@@Z @ 3032 NONAME ; bool QAbstractItemModel::insertRow(int, class QModelIndex const &) + ?toEncoded@QUrl@@QBE?AVQByteArray@@V?$QFlags@W4FormattingOption@QUrl@@@@@Z @ 3033 NONAME ; class QByteArray QUrl::toEncoded(class QFlags) const + ??0QVariant@@QAE@ABVQSizeF@@@Z @ 3034 NONAME ; QVariant::QVariant(class QSizeF const &) + ?toString@QStringRef@@QBE?AVQString@@XZ @ 3035 NONAME ; class QString QStringRef::toString(void) const + ?QStringList_removeDuplicates@QtPrivate@@YAHPAVQStringList@@@Z @ 3036 NONAME ; int QtPrivate::QStringList_removeDuplicates(class QStringList *) + ?isEmpty@QByteArray@@QBE_NXZ @ 3037 NONAME ; bool QByteArray::isEmpty(void) const + ?translated@QRectF@@QBE?AV1@ABVQPointF@@@Z @ 3038 NONAME ; class QRectF QRectF::translated(class QPointF const &) const + ??0QObject@@QAE@PAV0@@Z @ 3039 NONAME ; QObject::QObject(class QObject *) + ?writeData@QProcess@@MAE_JPBD_J@Z @ 3040 NONAME ; long long QProcess::writeData(char const *, long long) + ?fromStdString@QString@@SA?AV1@ABV?$basic_string@DV?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @ 3041 NONAME ; class QString QString::fromStdString(class std::basic_string, class std::allocator > const &) + ?sectionFormat@QDateTimeParser@@QBE?AVQString@@W4Section@1@H@Z @ 3042 NONAME ; class QString QDateTimeParser::sectionFormat(enum QDateTimeParser::Section, int) const + ?setYMD@QDate@@QAE_NHHH@Z @ 3043 NONAME ; bool QDate::setYMD(int, int, int) + ?setQueryDelimiters@QUrl@@QAEXDD@Z @ 3044 NONAME ; void QUrl::setQueryDelimiters(char, char) + ?toggleDirection@QTimeLine@@QAEXXZ @ 3045 NONAME ; void QTimeLine::toggleDirection(void) + ?trUtf8@QSignalMapper@@SA?AVQString@@PBD0@Z @ 3046 NONAME ; class QString QSignalMapper::trUtf8(char const *, char const *) + ?trUtf8@QSignalTransition@@SA?AVQString@@PBD0H@Z @ 3047 NONAME ; class QString QSignalTransition::trUtf8(char const *, char const *, int) + ??0QRegExp@@QAE@ABVQString@@W4CaseSensitivity@Qt@@W4PatternSyntax@0@@Z @ 3048 NONAME ; QRegExp::QRegExp(class QString const &, enum Qt::CaseSensitivity, enum QRegExp::PatternSyntax) + ?fromRawData@QByteArray@@SA?AV1@PBDH@Z @ 3049 NONAME ; class QByteArray QByteArray::fromRawData(char const *, int) + ?skipToNextSection@QDateTimeParser@@QBE_NHABVQDateTime@@ABVQString@@@Z @ 3050 NONAME ; bool QDateTimeParser::skipToNextSection(int, class QDateTime const &, class QString const &) const + ?addData@QXmlStreamReader@@QAEXABVQByteArray@@@Z @ 3051 NONAME ; void QXmlStreamReader::addData(class QByteArray const &) + ??0QIODevice@@QAE@PAVQObject@@@Z @ 3052 NONAME ; QIODevice::QIODevice(class QObject *) + ?move@QListData@@QAEXHH@Z @ 3053 NONAME ; void QListData::move(int, int) + ?push_back@QString@@QAEXVQChar@@@Z @ 3054 NONAME ; void QString::push_back(class QChar) + ?isNumber@QChar@@QBE_NXZ @ 3055 NONAME ; bool QChar::isNumber(void) const + ?isValid@QSizeF@@QBE_NXZ @ 3056 NONAME ; bool QSizeF::isValid(void) const + ?toString@QDateTime@@QBE?AVQString@@W4DateFormat@Qt@@@Z @ 3057 NONAME ; class QString QDateTime::toString(enum Qt::DateFormat) const + ?endl@@YAAAVQTextStream@@AAV1@@Z @ 3058 NONAME ; class QTextStream & endl(class QTextStream &) + ??0QVariant@@QAE@ABV0@@Z @ 3059 NONAME ; QVariant::QVariant(class QVariant const &) + ?isValid@QDate@@QBE_NXZ @ 3060 NONAME ; bool QDate::isValid(void) const + ?reactivateDeferredActiveObjects@QEventDispatcherSymbian@@QAEXXZ @ 3061 NONAME ; void QEventDispatcherSymbian::reactivateDeferredActiveObjects(void) + ?msecsTo@QTime@@QBEHABV1@@Z @ 3062 NONAME ; int QTime::msecsTo(class QTime const &) const + ??_EQTemporaryFile@@UAE@I@Z @ 3063 NONAME ; QTemporaryFile::~QTemporaryFile(unsigned int) + ?number@QString@@SA?AV1@HH@Z @ 3064 NONAME ; class QString QString::number(int, int) + ?setRealNumberPrecision@QTextStream@@QAEXH@Z @ 3065 NONAME ; void QTextStream::setRealNumberPrecision(int) + ?qSharedBuild@@YA_NXZ @ 3066 NONAME ; bool qSharedBuild(void) + ??6QTextStream@@QAEAAV0@PBD@Z @ 3067 NONAME ; class QTextStream & QTextStream::operator<<(char const *) + ?processEvents@QEventDispatcherSymbian@@UAE_NV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@@Z @ 3068 NONAME ; bool QEventDispatcherSymbian::processEvents(class QFlags) + ?setArrayIndex@QSettings@@QAEXH@Z @ 3069 NONAME ; void QSettings::setArrayIndex(int) + ?setCoords@QRect@@QAEXHHHH@Z @ 3070 NONAME ; void QRect::setCoords(int, int, int, int) + ?error@QStateMachine@@QBE?AW4Error@1@XZ @ 3071 NONAME ; enum QStateMachine::Error QStateMachine::error(void) const + ??1QAbstractEventDispatcherPrivate@@UAE@XZ @ 3072 NONAME ; QAbstractEventDispatcherPrivate::~QAbstractEventDispatcherPrivate(void) + ?replace@QString@@QAEAAV1@ABVQLatin1String@@ABV1@W4CaseSensitivity@Qt@@@Z @ 3073 NONAME ; class QString & QString::replace(class QLatin1String const &, class QString const &, enum Qt::CaseSensitivity) + ?toUcs4@QString@@QBE?AV?$QVector@I@@XZ @ 3074 NONAME ; class QVector QString::toUcs4(void) const + ?readWriteLock@QReadLocker@@QBEPAVQReadWriteLock@@XZ @ 3075 NONAME ; class QReadWriteLock * QReadLocker::readWriteLock(void) const + ??4QString@@QAEAAV0@PBD@Z @ 3076 NONAME ; class QString & QString::operator=(char const *) + ?compare_helper@QString@@CAHPBVQChar@@HVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 3077 NONAME ; int QString::compare_helper(class QChar const *, int, class QLatin1String, enum Qt::CaseSensitivity) + ?finished@QTimeLine@@IAEXXZ @ 3078 NONAME ; void QTimeLine::finished(void) + ?organizationDomain@QCoreApplication@@SA?AVQString@@XZ @ 3079 NONAME ; class QString QCoreApplication::organizationDomain(void) + ?QStringList_filter@QtPrivate@@YA?AVQStringList@@PBV2@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 3080 NONAME ; class QStringList QtPrivate::QStringList_filter(class QStringList const *, class QString const &, enum Qt::CaseSensitivity) + ?qt_assert@@YAXPBD0H@Z @ 3081 NONAME ; void qt_assert(char const *, char const *, int) + ??0QLibraryInfo@@AAE@XZ @ 3082 NONAME ; QLibraryInfo::QLibraryInfo(void) + ?appendTo@QStringRef@@QBE?AV1@PAVQString@@@Z @ 3083 NONAME ; class QStringRef QStringRef::appendTo(class QString *) const + ??6@YA?AVQDebug@@V0@ABVQModelIndex@@@Z @ 3084 NONAME ; class QDebug operator<<(class QDebug, class QModelIndex const &) + ?internalPointer@QPersistentModelIndex@@QBEPAXXZ @ 3085 NONAME ; void * QPersistentModelIndex::internalPointer(void) const + ??_EQObjectUserData@@UAE@I@Z @ 3086 NONAME ; QObjectUserData::~QObjectUserData(unsigned int) + ?setUtcOffset@QDateTime@@QAEXH@Z @ 3087 NONAME ; void QDateTime::setUtcOffset(int) + ?qFatal@@YAXPBDZZ @ 3088 NONAME ; void qFatal(char const *, ...) + ?number@QString@@SA?AV1@_KH@Z @ 3089 NONAME ; class QString QString::number(unsigned long long, int) + ?unlock@QReadWriteLock@@QAEXXZ @ 3090 NONAME ; void QReadWriteLock::unlock(void) + ?buffer@QBuffer@@QAEAAVQByteArray@@XZ @ 3091 NONAME ; class QByteArray & QBuffer::buffer(void) + ?getStaticMetaObject@QNonContiguousByteDevice@@SAABUQMetaObject@@XZ @ 3092 NONAME ; struct QMetaObject const & QNonContiguousByteDevice::getStaticMetaObject(void) + ?null@QString@@2UNull@1@B @ 3093 NONAME ; struct QString::Null const QString::null + ??0QVariant@@QAE@ABVQLineF@@@Z @ 3094 NONAME ; QVariant::QVariant(class QLineF const &) + ?queryItems@QUrl@@QBE?AV?$QList@U?$QPair@VQString@@V1@@@@@XZ @ 3095 NONAME ; class QList > QUrl::queryItems(void) const + ?name@QXmlStreamNotationDeclaration@@QBE?AVQStringRef@@XZ @ 3096 NONAME ; class QStringRef QXmlStreamNotationDeclaration::name(void) const + ?trUtf8@QIODevice@@SA?AVQString@@PBD0@Z @ 3097 NONAME ; class QString QIODevice::trUtf8(char const *, char const *) + ?postDelayedEvent@QStateMachine@@QAEHPAVQEvent@@H@Z @ 3098 NONAME ; int QStateMachine::postDelayedEvent(class QEvent *, int) + ?setRight@QRect@@QAEXH@Z @ 3099 NONAME ; void QRect::setRight(int) + ??_EQAbstractItemModel@@UAE@I@Z @ 3100 NONAME ; QAbstractItemModel::~QAbstractItemModel(unsigned int) + ??0QString@@QAE@HW4Initialization@Qt@@@Z @ 3101 NONAME ; QString::QString(int, enum Qt::Initialization) + ?index@QAbstractListModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 3102 NONAME ; class QModelIndex QAbstractListModel::index(int, int, class QModelIndex const &) const + ?staticMetaObject@QTranslator@@2UQMetaObject@@B @ 3103 NONAME ; struct QMetaObject const QTranslator::staticMetaObject + ?timerFired@QEventDispatcherSymbian@@QAEXH@Z @ 3104 NONAME ; void QEventDispatcherSymbian::timerFired(int) + ?qt_assert_x@@YAXPBD00H@Z @ 3105 NONAME ; void qt_assert_x(char const *, char const *, char const *, int) + ?width@QRectF@@QBEMXZ @ 3106 NONAME ; float QRectF::width(void) const + ?d_func@QEventLoop@@ABEPBVQEventLoopPrivate@@XZ @ 3107 NONAME ; class QEventLoopPrivate const * QEventLoop::d_func(void) const + ?fromNativeSeparators@QDir@@SA?AVQString@@ABV2@@Z @ 3108 NONAME ; class QString QDir::fromNativeSeparators(class QString const &) + ?deref@QBasicAtomicInt@@QAE_NXZ @ 3109 NONAME ; bool QBasicAtomicInt::deref(void) + ?toStringList@QVariant@@QBE?AVQStringList@@XZ @ 3110 NONAME ; class QStringList QVariant::toStringList(void) const + ?event@QCoreApplication@@MAE_NPAVQEvent@@@Z @ 3111 NONAME ; bool QCoreApplication::event(class QEvent *) + ?indexOfProperty@QMetaObject@@QBEHPBD@Z @ 3112 NONAME ; int QMetaObject::indexOfProperty(char const *) const + ?selectTransitions@QStateMachinePrivate@@QBE?AV?$QSet@PAVQAbstractTransition@@@@PAVQEvent@@@Z @ 3113 NONAME ; class QSet QStateMachinePrivate::selectTransitions(class QEvent *) const + ?translated@QLine@@QBE?AV1@HH@Z @ 3114 NONAME ; class QLine QLine::translated(int, int) const + ?availableCodecs@QTextCodec@@SA?AV?$QList@VQByteArray@@@@XZ @ 3115 NONAME ; class QList QTextCodec::availableCodecs(void) + ?qCritical@@YAXPBDZZ @ 3116 NONAME ; void qCritical(char const *, ...) + ?left@QString@@QBE?AV1@H@Z @ 3117 NONAME ; class QString QString::left(int) const + ?toUpper@QCharRef@@QBE?AVQChar@@XZ @ 3118 NONAME ; class QChar QCharRef::toUpper(void) const + ?currentFileInfo@QAbstractFileEngineIterator@@UBE?AVQFileInfo@@XZ @ 3119 NONAME ; class QFileInfo QAbstractFileEngineIterator::currentFileInfo(void) const + ?setPriority@QThread@@QAEXW4Priority@1@@Z @ 3120 NONAME ; void QThread::setPriority(enum QThread::Priority) + ??1QDateTimeParser@@UAE@XZ @ 3121 NONAME ; QDateTimeParser::~QDateTimeParser(void) + ??0QTextStream@@QAE@PAVQIODevice@@@Z @ 3122 NONAME ; QTextStream::QTextStream(class QIODevice *) + ?qt_metacall@QState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3123 NONAME ; int QState::qt_metacall(enum QMetaObject::Call, int, void * *) + ?toFloat@QVariant@@QBEMPA_N@Z @ 3124 NONAME ; float QVariant::toFloat(bool *) const + ?toWCharArray@QString@@QBEHPA_W@Z @ 3125 NONAME ; int QString::toWCharArray(wchar_t *) const + ??0QSharedMemory@@QAE@ABVQString@@PAVQObject@@@Z @ 3126 NONAME ; QSharedMemory::QSharedMemory(class QString const &, class QObject *) + ?setWorkingDirectory@QProcess@@QAEXABVQString@@@Z @ 3127 NONAME ; void QProcess::setWorkingDirectory(class QString const &) + ?tr@QThread@@SA?AVQString@@PBD0@Z @ 3128 NONAME ; class QString QThread::tr(char const *, char const *) + ?readLineData@QFile@@MAE_JPAD_J@Z @ 3129 NONAME ; long long QFile::readLineData(char *, long long) + ?typeToName@QVariant@@SAPBDW4Type@1@@Z @ 3130 NONAME ; char const * QVariant::typeToName(enum QVariant::Type) + ??0QState@@QAE@PAV0@@Z @ 3131 NONAME ; QState::QState(class QState *) + ??0QModelIndex@@QAE@XZ @ 3132 NONAME ; QModelIndex::QModelIndex(void) + ??1QEventDispatcherSymbian@@UAE@XZ @ 3133 NONAME ; QEventDispatcherSymbian::~QEventDispatcherSymbian(void) + ?writeAttribute@QXmlStreamWriter@@QAEXABVQXmlStreamAttribute@@@Z @ 3134 NONAME ; void QXmlStreamWriter::writeAttribute(class QXmlStreamAttribute const &) + ?lockForWrite@QReadWriteLock@@QAEXXZ @ 3135 NONAME ; void QReadWriteLock::lockForWrite(void) + ?longMonthName@QDate@@SA?AVQString@@H@Z @ 3136 NONAME ; class QString QDate::longMonthName(int) + ?qstricmp@@YAHPBD0@Z @ 3137 NONAME ; int qstricmp(char const *, char const *) + ??NQDateTime@@QBE_NABV0@@Z @ 3138 NONAME ; bool QDateTime::operator<=(class QDateTime const &) const + ?read@QTextStream@@QAE?AVQString@@_J@Z @ 3139 NONAME ; class QString QTextStream::read(long long) + ?write@QIODevice@@QAE_JPBD@Z @ 3140 NONAME ; long long QIODevice::write(char const *) + ?value@QXmlStreamAttributes@@QBE?AVQStringRef@@ABVQString@@ABVQLatin1String@@@Z @ 3141 NONAME ; class QStringRef QXmlStreamAttributes::value(class QString const &, class QLatin1String const &) const + ??1QPluginLoader@@UAE@XZ @ 3142 NONAME ; QPluginLoader::~QPluginLoader(void) + ?toList@QVariant@@QBE?AV?$QList@VQVariant@@@@XZ @ 3143 NONAME ; class QList QVariant::toList(void) const + ?length@QString@@QBEHXZ @ 3144 NONAME ; int QString::length(void) const + ?trUtf8@QMimeData@@SA?AVQString@@PBD0H@Z @ 3145 NONAME ; class QString QMimeData::trUtf8(char const *, char const *, int) + ?setNum@QString@@QAEAAV1@HH@Z @ 3146 NONAME ; class QString & QString::setNum(int, int) + ?exists@QDir@@QBE_NABVQString@@@Z @ 3147 NONAME ; bool QDir::exists(class QString const &) const + ?create@QNonContiguousByteDeviceFactory@@SAPAVQNonContiguousByteDevice@@PAVQIODevice@@@Z @ 3148 NONAME ; class QNonContiguousByteDevice * QNonContiguousByteDeviceFactory::create(class QIODevice *) + ??0QSizeF@@QAE@ABVQSize@@@Z @ 3149 NONAME ; QSizeF::QSizeF(class QSize const &) + ??1QParallelAnimationGroup@@UAE@XZ @ 3150 NONAME ; QParallelAnimationGroup::~QParallelAnimationGroup(void) + ?bytearrayToUnsLongLong@QLocalePrivate@@SA_KPBDHPA_N@Z @ 3151 NONAME ; unsigned long long QLocalePrivate::bytearrayToUnsLongLong(char const *, int, bool *) + ?isDir@QResource@@IBE_NXZ @ 3152 NONAME ; bool QResource::isDir(void) const + ?setEnvironment@QProcess@@QAEXABVQStringList@@@Z @ 3153 NONAME ; void QProcess::setEnvironment(class QStringList const &) + ?bytearrayToDouble@QLocalePrivate@@SANPBDPA_N1@Z @ 3154 NONAME ; double QLocalePrivate::bytearrayToDouble(char const *, bool *, bool *) + ?value@QSettings@@QBE?AVQVariant@@ABVQString@@ABV2@@Z @ 3155 NONAME ; class QVariant QSettings::value(class QString const &, class QVariant const &) const + ?updateState@QAbstractAnimation@@MAEXW4State@1@0@Z @ 3156 NONAME ; void QAbstractAnimation::updateState(enum QAbstractAnimation::State, enum QAbstractAnimation::State) + ?tr@QBuffer@@SA?AVQString@@PBD0H@Z @ 3157 NONAME ; class QString QBuffer::tr(char const *, char const *, int) + ??5@YAAAVQDataStream@@AAV0@AAVQTime@@@Z @ 3158 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTime &) + ?propertyOffset@QMetaObject@@QBEHXZ @ 3159 NONAME ; int QMetaObject::propertyOffset(void) const + ?toString@QLocale@@QBE?AVQString@@F@Z @ 3160 NONAME ; class QString QLocale::toString(short) const + ?d_func@QAbstractAnimation@@AAEPAVQAbstractAnimationPrivate@@XZ @ 3161 NONAME ; class QAbstractAnimationPrivate * QAbstractAnimation::d_func(void) + ?encodedFragment@QUrl@@QBE?AVQByteArray@@XZ @ 3162 NONAME ; class QByteArray QUrl::encodedFragment(void) const + ??6QDebug@@QAEAAV0@_K@Z @ 3163 NONAME ; class QDebug & QDebug::operator<<(unsigned long long) + ?_q_start@QStateMachinePrivate@@QAEXXZ @ 3164 NONAME ; void QStateMachinePrivate::_q_start(void) + ??6@YAAAVQDataStream@@AAV0@ABVQRegExp@@@Z @ 3165 NONAME ; class QDataStream & operator<<(class QDataStream &, class QRegExp const &) + ?qt_metacall@QPluginLoader@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3166 NONAME ; int QPluginLoader::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isValid@QResource@@QBE_NXZ @ 3167 NONAME ; bool QResource::isValid(void) const + ?load@QTranslator@@QAE_NPBEH@Z @ 3168 NONAME ; bool QTranslator::load(unsigned char const *, int) + ?allocateTimerId@QAbstractEventDispatcherPrivate@@SAHXZ @ 3169 NONAME ; int QAbstractEventDispatcherPrivate::allocateTimerId(void) + ??5QTextStream@@QAEAAV0@AAVQChar@@@Z @ 3170 NONAME ; class QTextStream & QTextStream::operator>>(class QChar &) + ?removeAnimation@QAbstractTransition@@QAEXPAVQAbstractAnimation@@@Z @ 3171 NONAME ; void QAbstractTransition::removeAnimation(class QAbstractAnimation *) + ?angle@QLineF@@QBEMXZ @ 3172 NONAME ; float QLineF::angle(void) const + ?owner@QAbstractFileEngine@@UBE?AVQString@@W4FileOwner@1@@Z @ 3173 NONAME ; class QString QAbstractFileEngine::owner(enum QAbstractFileEngine::FileOwner) const + ?dateFormat@QLocale@@QBE?AVQString@@W4FormatType@1@@Z @ 3174 NONAME ; class QString QLocale::dateFormat(enum QLocale::FormatType) const + ??0QBitArray@@QAE@ABV0@@Z @ 3175 NONAME ; QBitArray::QBitArray(class QBitArray const &) + ?connect@QMetaObject@@SA_NPBVQObject@@H0HHPAH@Z @ 3176 NONAME ; bool QMetaObject::connect(class QObject const *, int, class QObject const *, int, int, int *) + ?ungetChar@QIODevice@@QAEXD@Z @ 3177 NONAME ; void QIODevice::ungetChar(char) + ?internalSafetyCheckRemove@QtSharedPointer@@YAXPDX@Z @ 3178 NONAME ; void QtSharedPointer::internalSafetyCheckRemove(void const volatile *) + ?ref@QBasicAtomicInt@@QAE_NXZ @ 3179 NONAME ; bool QBasicAtomicInt::ref(void) + ?unregisterTimers@QEventDispatcherSymbian@@UAE_NPAVQObject@@@Z @ 3180 NONAME ; bool QEventDispatcherSymbian::unregisterTimers(class QObject *) + ?unregisterTimer@QEventDispatcherSymbian@@UAE_NH@Z @ 3181 NONAME ; bool QEventDispatcherSymbian::unregisterTimer(int) + ?staticMetaObject@QObject@@2UQMetaObject@@B @ 3182 NONAME ; struct QMetaObject const QObject::staticMetaObject + ?checkInstance@QCoreApplicationPrivate@@SA_NPBD@Z @ 3183 NONAME ; bool QCoreApplicationPrivate::checkInstance(char const *) + ?isPrint@QChar@@QBE_NXZ @ 3184 NONAME ; bool QChar::isPrint(void) const + ?arg@QString@@QBE?AV1@ABV1@HABVQChar@@@Z @ 3185 NONAME ; class QString QString::arg(class QString const &, int, class QChar const &) const + ?tr@QTimer@@SA?AVQString@@PBD0H@Z @ 3186 NONAME ; class QString QTimer::tr(char const *, char const *, int) + ?stop@QAbstractAnimation@@QAEXXZ @ 3187 NONAME ; void QAbstractAnimation::stop(void) + ?qChecksum@@YAGPBDI@Z @ 3188 NONAME ; unsigned short qChecksum(char const *, unsigned int) + ?applyProperties@QStateMachinePrivate@@QAEXABV?$QList@PAVQAbstractTransition@@@@ABV?$QList@PAVQAbstractState@@@@1@Z @ 3189 NONAME ; void QStateMachinePrivate::applyProperties(class QList const &, class QList const &, class QList const &) + ?maxChange@QDateTimeParser@@QBEHH@Z @ 3190 NONAME ; int QDateTimeParser::maxChange(int) const + ?staticMetaObject@QAbstractItemModel@@2UQMetaObject@@B @ 3191 NONAME ; struct QMetaObject const QAbstractItemModel::staticMetaObject + ??_EQFileSystemWatcher@@UAE@I@Z @ 3192 NONAME ; QFileSystemWatcher::~QFileSystemWatcher(unsigned int) + ?entered@QAbstractState@@AAEXXZ @ 3193 NONAME ; void QAbstractState::entered(void) + ?copy@QFile@@QAE_NABVQString@@@Z @ 3194 NONAME ; bool QFile::copy(class QString const &) + ??0QStringMatcher@@QAE@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 3195 NONAME ; QStringMatcher::QStringMatcher(class QString const &, enum Qt::CaseSensitivity) + ?isNull@QTime@@QBE_NXZ @ 3196 NONAME ; bool QTime::isNull(void) const + ?qIsInf@@YA_NN@Z @ 3197 NONAME ; bool qIsInf(double) + ?version@QUuid@@QBE?AW4Version@1@XZ @ 3198 NONAME ; enum QUuid::Version QUuid::version(void) const + ?updateProperties@QString@@ABEXXZ @ 3199 NONAME ; void QString::updateProperties(void) const + ?setHeight@QSizeF@@QAEXM@Z @ 3200 NONAME ; void QSizeF::setHeight(float) + ??1QFile@@UAE@XZ @ 3201 NONAME ; QFile::~QFile(void) + ?contains@QString@@QBE?AVQBool@@AAVQRegExp@@@Z @ 3202 NONAME ; class QBool QString::contains(class QRegExp &) const + ?percent@QLocale@@QBE?AVQChar@@XZ @ 3203 NONAME ; class QChar QLocale::percent(void) const + ??_EQDataStream@@UAE@I@Z @ 3204 NONAME ; QDataStream::~QDataStream(unsigned int) + ?isEncName@QXmlUtils@@SA_NABVQString@@@Z @ 3205 NONAME ; bool QXmlUtils::isEncName(class QString const &) + ?loadHints@QLibrary@@QBE?AV?$QFlags@W4LoadHint@QLibrary@@@@XZ @ 3206 NONAME ; class QFlags QLibrary::loadHints(void) const + ?setMapping@QSignalMapper@@QAEXPAVQObject@@H@Z @ 3207 NONAME ; void QSignalMapper::setMapping(class QObject *, int) + ??6QTextStream@@QAEAAV0@G@Z @ 3208 NONAME ; class QTextStream & QTextStream::operator<<(unsigned short) + ??ZQSize@@QAEAAV0@ABV0@@Z @ 3209 NONAME ; class QSize & QSize::operator-=(class QSize const &) + ?getCoords@QRectF@@QBEXPAM000@Z @ 3210 NONAME ; void QRectF::getCoords(float *, float *, float *, float *) const + ?isStandaloneDocument@QXmlStreamReader@@QBE_NXZ @ 3211 NONAME ; bool QXmlStreamReader::isStandaloneDocument(void) const + ??AQByteArray@@QBEDH@Z @ 3212 NONAME ; char QByteArray::operator[](int) const + ?encodedQueryItemValue@QUrl@@QBE?AVQByteArray@@ABV2@@Z @ 3213 NONAME ; class QByteArray QUrl::encodedQueryItemValue(class QByteArray const &) const + ??_EQDateTimeParser@@UAE@I@Z @ 3214 NONAME ; QDateTimeParser::~QDateTimeParser(unsigned int) + ?write@QFSFileEngine@@UAE_JPBD_J@Z @ 3215 NONAME ; long long QFSFileEngine::write(char const *, long long) + ?d_func@QTimeLine@@ABEPBVQTimeLinePrivate@@XZ @ 3216 NONAME ; class QTimeLinePrivate const * QTimeLine::d_func(void) const + ?exactMatch@QRegExp@@QBE_NABVQString@@@Z @ 3217 NONAME ; bool QRegExp::exactMatch(class QString const &) const + ?qt_metacall@QFinalState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3218 NONAME ; int QFinalState::qt_metacall(enum QMetaObject::Call, int, void * *) + ?init@QCoreApplication@@AAEXXZ @ 3219 NONAME ; void QCoreApplication::init(void) + ?midRef@QString@@QBE?AVQStringRef@@HH@Z @ 3220 NONAME ; class QStringRef QString::midRef(int, int) const + ?tr@QStateMachine@@SA?AVQString@@PBD0@Z @ 3221 NONAME ; class QString QStateMachine::tr(char const *, char const *) + ?checkReceiverThread@QCoreApplicationPrivate@@QAEXPAVQObject@@@Z @ 3222 NONAME ; void QCoreApplicationPrivate::checkReceiverThread(class QObject *) + ?fromString@QTime@@SA?AV1@ABVQString@@W4DateFormat@Qt@@@Z @ 3223 NONAME ; class QTime QTime::fromString(class QString const &, enum Qt::DateFormat) + ?internalPointer@QModelIndex@@QBEPAXXZ @ 3224 NONAME ; void * QModelIndex::internalPointer(void) const + ?child@QPersistentModelIndex@@QBE?AVQModelIndex@@HH@Z @ 3225 NONAME ; class QModelIndex QPersistentModelIndex::child(int, int) const + ??YQString@@QAEAAV0@D@Z @ 3226 NONAME ; class QString & QString::operator+=(char) + ??1QTemporaryFile@@UAE@XZ @ 3227 NONAME ; QTemporaryFile::~QTemporaryFile(void) + ?updateSystemPrivate@QLocalePrivate@@SAXXZ @ 3228 NONAME ; void QLocalePrivate::updateSystemPrivate(void) + ?columnsRemoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 3229 NONAME ; void QAbstractItemModelPrivate::columnsRemoved(class QModelIndex const &, int, int) + ?staticMetaObject@QTemporaryFile@@2UQMetaObject@@B @ 3230 NONAME ; struct QMetaObject const QTemporaryFile::staticMetaObject + ?killTimer@QTimer@@AAEXH@Z @ 3231 NONAME ; void QTimer::killTimer(int) + ??9QUuid@@QBE_NABU0@@Z @ 3232 NONAME ; bool QUuid::operator!=(struct QUuid const &) const + ??M@YA_NABVQStringRef@@0@Z @ 3233 NONAME ; bool operator<(class QStringRef const &, class QStringRef const &) + ??6QTextStream@@QAEAAV0@VQChar@@@Z @ 3234 NONAME ; class QTextStream & QTextStream::operator<<(class QChar) + ?noforcesign@@YAAAVQTextStream@@AAV1@@Z @ 3235 NONAME ; class QTextStream & noforcesign(class QTextStream &) + ??0QVariant@@QAE@AAVQDataStream@@@Z @ 3236 NONAME ; QVariant::QVariant(class QDataStream &) + ??0QThread@@QAE@PAVQObject@@@Z @ 3237 NONAME ; QThread::QThread(class QObject *) + ?beginSelectTransitions@QStateMachine@@MAEXPAVQEvent@@@Z @ 3238 NONAME ; void QStateMachine::beginSelectTransitions(class QEvent *) + ?fromAscii@QString@@SA?AV1@PBDH@Z @ 3239 NONAME ; class QString QString::fromAscii(char const *, int) + ??4QRegExp@@QAEAAV0@ABV0@@Z @ 3240 NONAME ; class QRegExp & QRegExp::operator=(class QRegExp const &) + ?readLine@QAbstractFileEngine@@UAE_JPAD_J@Z @ 3241 NONAME ; long long QAbstractFileEngine::readLine(char *, long long) + ?rename@QDir@@QAE_NABVQString@@0@Z @ 3242 NONAME ; bool QDir::rename(class QString const &, class QString const &) + ?movePersistentIndexes@QAbstractItemModelPrivate@@QAEXV?$QVector@PAVQPersistentModelIndexData@@@@HABVQModelIndex@@W4Orientation@Qt@@@Z @ 3243 NONAME ; void QAbstractItemModelPrivate::movePersistentIndexes(class QVector, int, class QModelIndex const &, enum Qt::Orientation) + ?tryLockForWrite@QReadWriteLock@@QAE_NXZ @ 3244 NONAME ; bool QReadWriteLock::tryLockForWrite(void) + ?tr@QProcess@@SA?AVQString@@PBD0H@Z @ 3245 NONAME ; class QString QProcess::tr(char const *, char const *, int) + ?fill@QBitArray@@QAE_N_NH@Z @ 3246 NONAME ; bool QBitArray::fill(bool, int) + ?metaObject@QAnimationGroup@@UBEPBUQMetaObject@@XZ @ 3247 NONAME ; struct QMetaObject const * QAnimationGroup::metaObject(void) const + ?dayOfWeek@QDate@@QBEHXZ @ 3248 NONAME ; int QDate::dayOfWeek(void) const + ?qstrncpy@@YAPADPADPBDI@Z @ 3249 NONAME ; char * qstrncpy(char *, char const *, unsigned int) + ?setDefault@QLocale@@SAXABV1@@Z @ 3250 NONAME ; void QLocale::setDefault(class QLocale const &) + ??0QDirIterator@@QAE@ABVQString@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4IteratorFlag@QDirIterator@@@@@Z @ 3251 NONAME ; QDirIterator::QDirIterator(class QString const &, class QFlags, class QFlags) + ?surrogateToUcs4@QChar@@SAIGG@Z @ 3252 NONAME ; unsigned int QChar::surrogateToUcs4(unsigned short, unsigned short) + ?toString@QDate@@QBE?AVQString@@ABV2@@Z @ 3253 NONAME ; class QString QDate::toString(class QString const &) const + ?connectNotify@QObject@@MAEXPBD@Z @ 3254 NONAME ; void QObject::connectNotify(char const *) + ?staticMetaObject@QAbstractListModel@@2UQMetaObject@@B @ 3255 NONAME ; struct QMetaObject const QAbstractListModel::staticMetaObject + ?removeStartState@QStateMachinePrivate@@QAEXXZ @ 3256 NONAME ; void QStateMachinePrivate::removeStartState(void) + ?isNull@QLineF@@QBE_NXZ @ 3257 NONAME ; bool QLineF::isNull(void) const + ?tr@QFinalState@@SA?AVQString@@PBD0H@Z @ 3258 NONAME ; class QString QFinalState::tr(char const *, char const *, int) + ?contains@QRect@@QBE_NHH_N@Z @ 3259 NONAME ; bool QRect::contains(int, int, bool) const + ??0QLineF@@QAE@MMMM@Z @ 3260 NONAME ; QLineF::QLineF(float, float, float, float) + ?postEvent@QCoreApplication@@SAXPAVQObject@@PAVQEvent@@H@Z @ 3261 NONAME ; void QCoreApplication::postEvent(class QObject *, class QEvent *, int) + ?d_func@QAbstractItemModel@@AAEPAVQAbstractItemModelPrivate@@XZ @ 3262 NONAME ; class QAbstractItemModelPrivate * QAbstractItemModel::d_func(void) + ?qt_metacast@QMimeData@@UAEPAXPBD@Z @ 3263 NONAME ; void * QMimeData::qt_metacast(char const *) + ?detach@QVariant@@QAEXXZ @ 3264 NONAME ; void QVariant::detach(void) + ??0QXmlStreamNamespaceDeclaration@@QAE@ABV0@@Z @ 3265 NONAME ; QXmlStreamNamespaceDeclaration::QXmlStreamNamespaceDeclaration(class QXmlStreamNamespaceDeclaration const &) + ??_EQIODevice@@UAE@I@Z @ 3266 NONAME ; QIODevice::~QIODevice(unsigned int) + ??6@YA?AVQDebug@@V0@ABVQDate@@@Z @ 3267 NONAME ; class QDebug operator<<(class QDebug, class QDate const &) + ?setStartValue@QVariantAnimation@@QAEXABVQVariant@@@Z @ 3268 NONAME ; void QVariantAnimation::setStartValue(class QVariant const &) + ??0QVariant@@QAE@ABVQBitArray@@@Z @ 3269 NONAME ; QVariant::QVariant(class QBitArray const &) + ?tr@QObjectCleanupHandler@@SA?AVQString@@PBD0H@Z @ 3270 NONAME ; class QString QObjectCleanupHandler::tr(char const *, char const *, int) + ?setNum@QString@@QAEAAV1@NDH@Z @ 3271 NONAME ; class QString & QString::setNum(double, char, int) + ?trUtf8@QPluginLoader@@SA?AVQString@@PBD0@Z @ 3272 NONAME ; class QString QPluginLoader::trUtf8(char const *, char const *) + ?escape@QRegExp@@SA?AVQString@@ABV2@@Z @ 3273 NONAME ; class QString QRegExp::escape(class QString const &) + ?trUtf8@QIODevice@@SA?AVQString@@PBD0H@Z @ 3274 NONAME ; class QString QIODevice::trUtf8(char const *, char const *, int) + ??6@YAAAVQDataStream@@AAV0@ABVQByteArray@@@Z @ 3275 NONAME ; class QDataStream & operator<<(class QDataStream &, class QByteArray const &) + ?parentState@QAbstractState@@QBEPAVQState@@XZ @ 3276 NONAME ; class QState * QAbstractState::parentState(void) const + ?atEnd@QTextStream@@QBE_NXZ @ 3277 NONAME ; bool QTextStream::atEnd(void) const + ??6QDataStream@@QAEAAV0@_K@Z @ 3278 NONAME ; class QDataStream & QDataStream::operator<<(unsigned long long) + ?isSymLink@QFileInfo@@QBE_NXZ @ 3279 NONAME ; bool QFileInfo::isSymLink(void) const + ?number@QString@@SA?AV1@JH@Z @ 3280 NONAME ; class QString QString::number(long, int) + ?makeAbsolute@QFileInfo@@QAE_NXZ @ 3281 NONAME ; bool QFileInfo::makeAbsolute(void) + ?registerSignalTransition@QStateMachinePrivate@@QAEXPAVQSignalTransition@@@Z @ 3282 NONAME ; void QStateMachinePrivate::registerSignalTransition(class QSignalTransition *) + ?setPattern@QByteArrayMatcher@@QAEXABVQByteArray@@@Z @ 3283 NONAME ; void QByteArrayMatcher::setPattern(class QByteArray const &) + ??0QXmlStreamStringRef@@QAE@ABVQStringRef@@@Z @ 3284 NONAME ; QXmlStreamStringRef::QXmlStreamStringRef(class QStringRef const &) + ??_EQDeclarativeData@@UAE@I@Z @ 3285 NONAME ; QDeclarativeData::~QDeclarativeData(unsigned int) + ?qt_metacall@QSocketNotifier@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3286 NONAME ; int QSocketNotifier::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QXmlStreamAttribute@@QAE@ABVQString@@00@Z @ 3287 NONAME ; QXmlStreamAttribute::QXmlStreamAttribute(class QString const &, class QString const &, class QString const &) + ?leftJustified@QString@@QBE?AV1@HVQChar@@_N@Z @ 3288 NONAME ; class QString QString::leftJustified(int, class QChar, bool) const + ?isReadable@QDir@@QBE_NXZ @ 3289 NONAME ; bool QDir::isReadable(void) const + ??0QAbstractItemModel@@IAE@AAVQAbstractItemModelPrivate@@PAVQObject@@@Z @ 3290 NONAME ; QAbstractItemModel::QAbstractItemModel(class QAbstractItemModelPrivate &, class QObject *) + ?qt_error_string@@YA?AVQString@@H@Z @ 3291 NONAME ; class QString qt_error_string(int) + ?indexIn@QRegExp@@QBEHABVQString@@HW4CaretMode@1@@Z @ 3292 NONAME ; int QRegExp::indexIn(class QString const &, int, enum QRegExp::CaretMode) const + ?daysInMonth@QDate@@QBEHXZ @ 3293 NONAME ; int QDate::daysInMonth(void) const + ??6@YA?AVQDebug@@V0@ABVQPointF@@@Z @ 3294 NONAME ; class QDebug operator<<(class QDebug, class QPointF const &) + ?toStdWString@QString@@QBE?AV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ @ 3295 NONAME ; class std::basic_string, class std::allocator > QString::toStdWString(void) const + ?toString@QDate@@QBE?AVQString@@W4DateFormat@Qt@@@Z @ 3296 NONAME ; class QString QDate::toString(enum Qt::DateFormat) const + ?joining@QChar@@SA?AW4Joining@1@I@Z @ 3297 NONAME ; enum QChar::Joining QChar::joining(unsigned int) + ?dtdPublicId@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 3298 NONAME ; class QStringRef QXmlStreamReader::dtdPublicId(void) const + ?childEvent@QObject@@MAEXPAVQChildEvent@@@Z @ 3299 NONAME ; void QObject::childEvent(class QChildEvent *) + ?getStaticMetaObject@QTemporaryFile@@SAABUQMetaObject@@XZ @ 3300 NONAME ; struct QMetaObject const & QTemporaryFile::getStaticMetaObject(void) + ?path@QFileInfo@@QBE?AVQString@@XZ @ 3301 NONAME ; class QString QFileInfo::path(void) const + ?leftRef@QString@@QBE?AVQStringRef@@H@Z @ 3302 NONAME ; class QStringRef QString::leftRef(int) const + ?getStaticMetaObject@QProcess@@SAABUQMetaObject@@XZ @ 3303 NONAME ; struct QMetaObject const & QProcess::getStaticMetaObject(void) + ??8QXmlStreamEntityDeclaration@@QBE_NABV0@@Z @ 3304 NONAME ; bool QXmlStreamEntityDeclaration::operator==(class QXmlStreamEntityDeclaration const &) const + ?seek@QBuffer@@UAE_N_J@Z @ 3305 NONAME ; bool QBuffer::seek(long long) + ?resolveUndeclaredEntity@QXmlStreamEntityResolver@@UAE?AVQString@@ABV2@@Z @ 3306 NONAME ; class QString QXmlStreamEntityResolver::resolveUndeclaredEntity(class QString const &) + ?addData@QCryptographicHash@@QAEXPBDH@Z @ 3307 NONAME ; void QCryptographicHash::addData(char const *, int) + ?invokeMethod@QMetaObject@@SA_NPAVQObject@@PBDW4ConnectionType@Qt@@VQGenericReturnArgument@@VQGenericArgument@@444444444@Z @ 3308 NONAME ; bool QMetaObject::invokeMethod(class QObject *, char const *, enum Qt::ConnectionType, class QGenericReturnArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument, class QGenericArgument) + ?leftJustified@QByteArray@@QBE?AV1@HD_N@Z @ 3309 NONAME ; class QByteArray QByteArray::leftJustified(int, char, bool) const + ?QBasicAtomicPointer_testAndSetOrdered@@YA_NPCRAXPAX1@Z @ 3310 NONAME ; bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *, void *, void *) + ?codecForCStrings@QString@@0PAVQTextCodec@@A @ 3311 NONAME ; class QTextCodec * QString::codecForCStrings + ??0QByteArray@@QAE@PBD@Z @ 3312 NONAME ; QByteArray::QByteArray(char const *) + ?isAtBoundary@QTextBoundaryFinder@@QBE_NXZ @ 3313 NONAME ; bool QTextBoundaryFinder::isAtBoundary(void) const + ?string@QStringRef@@QBEPBVQString@@XZ @ 3314 NONAME ; class QString const * QStringRef::string(void) const + ?supportedDragActions@QAbstractItemModel@@QBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 3315 NONAME ; class QFlags QAbstractItemModel::supportedDragActions(void) const + ?node_create@QMapData@@QAEPAUNode@1@QAPAU21@H@Z @ 3316 NONAME ; struct QMapData::Node * QMapData::node_create(struct QMapData::Node * * const, int) + ?dropMimeData@QAbstractListModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 3317 NONAME ; bool QAbstractListModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?start@QThread@@QAEXW4Priority@1@@Z @ 3318 NONAME ; void QThread::start(enum QThread::Priority) + ?d_func@QSignalMapper@@ABEPBVQSignalMapperPrivate@@XZ @ 3319 NONAME ; class QSignalMapperPrivate const * QSignalMapper::d_func(void) const + ?d_func@QIODevice@@AAEPAVQIODevicePrivate@@XZ @ 3320 NONAME ; class QIODevicePrivate * QIODevice::d_func(void) + ?is_app_closing@QCoreApplicationPrivate@@2_NA @ 3321 NONAME ; bool QCoreApplicationPrivate::is_app_closing + ?qt_metacall@QCoreApplication@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3322 NONAME ; int QCoreApplication::qt_metacall(enum QMetaObject::Call, int, void * *) + ?stringToLongLong@QLocalePrivate@@QBE_JABVQString@@HPA_NW4GroupSeparatorMode@1@@Z @ 3323 NONAME ; long long QLocalePrivate::stringToLongLong(class QString const &, int, bool *, enum QLocalePrivate::GroupSeparatorMode) const + ??0QXmlStreamNotationDeclaration@@QAE@XZ @ 3324 NONAME ; QXmlStreamNotationDeclaration::QXmlStreamNotationDeclaration(void) + ?removeDeferredActiveObject@QEventDispatcherSymbian@@QAEXPAVQActiveObject@@@Z @ 3325 NONAME ; void QEventDispatcherSymbian::removeDeferredActiveObject(class QActiveObject *) + ?latin1@QLatin1String@@QBEPBDXZ @ 3326 NONAME ; char const * QLatin1String::latin1(void) const + ?fetchAndStoreOrdered@QBasicAtomicInt@@QAEHH@Z @ 3327 NONAME ; int QBasicAtomicInt::fetchAndStoreOrdered(int) + ?atEnd@QBuffer@@UBE_NXZ @ 3328 NONAME ; bool QBuffer::atEnd(void) const + ?lineNumber@QXmlStreamReader@@QBE_JXZ @ 3329 NONAME ; long long QXmlStreamReader::lineNumber(void) const + ??0QEventDispatcherSymbian@@QAE@PAVQObject@@@Z @ 3330 NONAME ; QEventDispatcherSymbian::QEventDispatcherSymbian(class QObject *) + ?readyReadStandardOutput@QProcess@@IAEXXZ @ 3331 NONAME ; void QProcess::readyReadStandardOutput(void) + ?s60Version@QSysInfo@@SA?AW4S60Version@1@XZ @ 3332 NONAME ; enum QSysInfo::S60Version QSysInfo::s60Version(void) + ?customType@QEasingCurve@@QBEP6AMM@ZXZ @ 3333 NONAME ; float (*)(float) QEasingCurve::customType(void) const + ?canReadLine@QIODevice@@UBE_NXZ @ 3334 NONAME ; bool QIODevice::canReadLine(void) const + ?q_func@QAbstractTransitionPrivate@@ABEPBVQAbstractTransition@@XZ @ 3335 NONAME ; class QAbstractTransition const * QAbstractTransitionPrivate::q_func(void) const + ??0QRectF@@QAE@MMMM@Z @ 3336 NONAME ; QRectF::QRectF(float, float, float, float) + ?unicode@QString@@QBEPBVQChar@@XZ @ 3337 NONAME ; class QChar const * QString::unicode(void) const + ??0QVariant@@AAE@_NH@Z @ 3338 NONAME ; QVariant::QVariant(bool, int) + ?setRealNumberNotation@QTextStream@@QAEXW4RealNumberNotation@1@@Z @ 3339 NONAME ; void QTextStream::setRealNumberNotation(enum QTextStream::RealNumberNotation) + ?arg@QString@@QBE?AV1@KHHABVQChar@@@Z @ 3340 NONAME ; class QString QString::arg(unsigned long, int, int, class QChar const &) const + ?get@QEventTransitionPrivate@@SAPAV1@PAVQEventTransition@@@Z @ 3341 NONAME ; class QEventTransitionPrivate * QEventTransitionPrivate::get(class QEventTransition *) + ?fallbackLocale@QSystemLocale@@UBE?AVQLocale@@XZ @ 3342 NONAME ; class QLocale QSystemLocale::fallbackLocale(void) const + ?codecForCStrings@QTextCodec@@SAPAV1@XZ @ 3343 NONAME ; class QTextCodec * QTextCodec::codecForCStrings(void) + ?length@QByteArray@@QBEHXZ @ 3344 NONAME ; int QByteArray::length(void) const + ?setDefaultFormat@QSettings@@SAXW4Format@1@@Z @ 3345 NONAME ; void QSettings::setDefaultFormat(enum QSettings::Format) + ?signal@QSignalTransition@@QBE?AVQByteArray@@XZ @ 3346 NONAME ; class QByteArray QSignalTransition::signal(void) const + ?metaObject@QLibrary@@UBEPBUQMetaObject@@XZ @ 3347 NONAME ; struct QMetaObject const * QLibrary::metaObject(void) const + ?shared_empty@QByteArray@@0UData@1@A @ 3348 NONAME ; struct QByteArray::Data QByteArray::shared_empty + ?scheme@QUrl@@QBE?AVQString@@XZ @ 3349 NONAME ; class QString QUrl::scheme(void) const + ?data_ptr@QUrl@@QAEAAPAVQUrlPrivate@@XZ @ 3350 NONAME ; class QUrlPrivate * & QUrl::data_ptr(void) + ?count@QByteArray@@QBEHD@Z @ 3351 NONAME ; int QByteArray::count(char) const + ??4QCharRef@@QAEAAV0@ABVQChar@@@Z @ 3352 NONAME ; class QCharRef & QCharRef::operator=(class QChar const &) + ?staticMetaObject@QAnimationGroup@@2UQMetaObject@@B @ 3353 NONAME ; struct QMetaObject const QAnimationGroup::staticMetaObject + ?aboutToQuit@QCoreApplication@@IAEXXZ @ 3354 NONAME ; void QCoreApplication::aboutToQuit(void) + ?appName@QCoreApplicationPrivate@@UBE?AVQString@@XZ @ 3355 NONAME ; class QString QCoreApplicationPrivate::appName(void) const + ??1QXmlStreamEntityDeclaration@@QAE@XZ @ 3356 NONAME ; QXmlStreamEntityDeclaration::~QXmlStreamEntityDeclaration(void) + ?openMode@QIODevice@@QBE?AV?$QFlags@W4OpenModeFlag@QIODevice@@@@XZ @ 3357 NONAME ; class QFlags QIODevice::openMode(void) const + ?mapped@QSignalMapper@@IAEXPAVQWidget@@@Z @ 3358 NONAME ; void QSignalMapper::mapped(class QWidget *) + ?current@QDir@@SA?AV1@XZ @ 3359 NONAME ; class QDir QDir::current(void) + ??NQDate@@QBE_NABV0@@Z @ 3360 NONAME ; bool QDate::operator<=(class QDate const &) const + ?setTextModeEnabled@QIODevice@@QAEX_N@Z @ 3361 NONAME ; void QIODevice::setTextModeEnabled(bool) + ?keyCount@QMetaEnum@@QBEHXZ @ 3362 NONAME ; int QMetaEnum::keyCount(void) const + ??6QDataStream@@QAEAAV0@C@Z @ 3363 NONAME ; class QDataStream & QDataStream::operator<<(signed char) + ?setHeaderData@QAbstractItemModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 3364 NONAME ; bool QAbstractItemModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ?pid@QProcess@@QBE_JXZ @ 3365 NONAME ; long long QProcess::pid(void) const + ?registerType@QMetaType@@SAHPBDP6AXPAX@ZP6APAXPBX@Z@Z @ 3366 NONAME ; int QMetaType::registerType(char const *, void (*)(void *), void * (*)(void const *)) + ?setNum@QString@@QAEAAV1@JH@Z @ 3367 NONAME ; class QString & QString::setNum(long, int) + ?trUtf8@QSignalTransition@@SA?AVQString@@PBD0@Z @ 3368 NONAME ; class QString QSignalTransition::trUtf8(char const *, char const *) + ?isDigit@QChar@@QBE_NXZ @ 3369 NONAME ; bool QChar::isDigit(void) const + ?registerEventType@QEvent@@SAHH@Z @ 3370 NONAME ; int QEvent::registerEventType(int) + ?sectionNode@QDateTimeParser@@QBEABUSectionNode@1@H@Z @ 3371 NONAME ; struct QDateTimeParser::SectionNode const & QDateTimeParser::sectionNode(int) const + ?qAllocMore@@YAHHH@Z @ 3372 NONAME ; int qAllocMore(int, int) + ?end@QListData@@QBEPAPAXXZ @ 3373 NONAME ; void * * QListData::end(void) const + ?available@QSemaphore@@QBEHXZ @ 3374 NONAME ; int QSemaphore::available(void) const + ?qt_metacall@QSignalTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3375 NONAME ; int QSignalTransition::qt_metacall(enum QMetaObject::Call, int, void * *) + ?addConnection@QObjectPrivate@@QAEXHPAUConnection@1@@Z @ 3376 NONAME ; void QObjectPrivate::addConnection(int, struct QObjectPrivate::Connection *) + ??0QUrl@@QAE@ABV0@@Z @ 3377 NONAME ; QUrl::QUrl(class QUrl const &) + ??0QXmlStreamEntityDeclaration@@QAE@ABV0@@Z @ 3378 NONAME ; QXmlStreamEntityDeclaration::QXmlStreamEntityDeclaration(class QXmlStreamEntityDeclaration const &) + ?setUserName@QUrl@@QAEXABVQString@@@Z @ 3379 NONAME ; void QUrl::setUserName(class QString const &) + ?copy@QFSFileEngine@@UAE_NABVQString@@@Z @ 3380 NONAME ; bool QFSFileEngine::copy(class QString const &) + ?setPath@QUrl@@QAEXABVQString@@@Z @ 3381 NONAME ; void QUrl::setPath(class QString const &) + ?readData@QFile@@MAE_JPAD_J@Z @ 3382 NONAME ; long long QFile::readData(char *, long long) + ?copy@QFile@@SA_NABVQString@@0@Z @ 3383 NONAME ; bool QFile::copy(class QString const &, class QString const &) + ?canEncode@QTextCodec@@QBE_NABVQString@@@Z @ 3384 NONAME ; bool QTextCodec::canEncode(class QString const &) const + ??_EQTextCodecFactoryInterface@@UAE@I@Z @ 3385 NONAME ; QTextCodecFactoryInterface::~QTextCodecFactoryInterface(unsigned int) + ?qt_metacall@QFileSystemWatcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3386 NONAME ; int QFileSystemWatcher::qt_metacall(enum QMetaObject::Call, int, void * *) + ?invalidatePersistentIndex@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@@Z @ 3387 NONAME ; void QAbstractItemModelPrivate::invalidatePersistentIndex(class QModelIndex const &) + ?dayName@QLocale@@QBE?AVQString@@HW4FormatType@1@@Z @ 3388 NONAME ; class QString QLocale::dayName(int, enum QLocale::FormatType) const + ??_EQObject@@UAE@I@Z @ 3389 NONAME ; QObject::~QObject(unsigned int) + ?hasChildren@QAbstractTableModel@@EBE_NABVQModelIndex@@@Z @ 3390 NONAME ; bool QAbstractTableModel::hasChildren(class QModelIndex const &) const + ?isValid@QRectF@@QBE_NXZ @ 3391 NONAME ; bool QRectF::isValid(void) const + ?handleFilteredEvent@QStateMachinePrivate@@QAEXPAVQObject@@PAVQEvent@@@Z @ 3392 NONAME ; void QStateMachinePrivate::handleFilteredEvent(class QObject *, class QEvent *) + ?digitValue@QChar@@SAHI@Z @ 3393 NONAME ; int QChar::digitValue(unsigned int) + ?write@QIODevice@@QAE_JABVQByteArray@@@Z @ 3394 NONAME ; long long QIODevice::write(class QByteArray const &) + ?isNull@QVariant@@QBE_NXZ @ 3395 NONAME ; bool QVariant::isNull(void) const + ?removeAllEncodedQueryItems@QUrl@@QAEXABVQByteArray@@@Z @ 3396 NONAME ; void QUrl::removeAllEncodedQueryItems(class QByteArray const &) + ?rowsInserted@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 3397 NONAME ; void QAbstractItemModel::rowsInserted(class QModelIndex const &, int, int) + ?decompositionTag@QChar@@QBE?AW4Decomposition@1@XZ @ 3398 NONAME ; enum QChar::Decomposition QChar::decompositionTag(void) const + ?interpolated@QVariantAnimation@@MBE?AVQVariant@@ABV2@0M@Z @ 3399 NONAME ; class QVariant QVariantAnimation::interpolated(class QVariant const &, class QVariant const &, float) const + ?data_ptr@QString@@QAEAAPAUData@1@XZ @ 3400 NONAME ; struct QString::Data * & QString::data_ptr(void) + ?languageToString@QLocale@@SA?AVQString@@W4Language@1@@Z @ 3401 NONAME ; class QString QLocale::languageToString(enum QLocale::Language) + ?fetchAndStoreRelease@QBasicAtomicInt@@QAEHH@Z @ 3402 NONAME ; int QBasicAtomicInt::fetchAndStoreRelease(int) + ?machine@QAbstractTransition@@QBEPAVQStateMachine@@XZ @ 3403 NONAME ; class QStateMachine * QAbstractTransition::machine(void) const + ?doubleToString@QLocalePrivate@@QBE?AVQString@@NHW4DoubleForm@1@HI@Z @ 3404 NONAME ; class QString QLocalePrivate::doubleToString(double, int, enum QLocalePrivate::DoubleForm, int, unsigned int) const + ?direction@QAbstractAnimation@@QBE?AW4Direction@1@XZ @ 3405 NONAME ; enum QAbstractAnimation::Direction QAbstractAnimation::direction(void) const + ?q_func@QAbstractItemModelPrivate@@AAEPAVQAbstractItemModel@@XZ @ 3406 NONAME ; class QAbstractItemModel * QAbstractItemModelPrivate::q_func(void) + ?waitForDone@QThreadPool@@QAEXXZ @ 3407 NONAME ; void QThreadPool::waitForDone(void) + ?timerEvent@QObject@@MAEXPAVQTimerEvent@@@Z @ 3408 NONAME ; void QObject::timerEvent(class QTimerEvent *) + ?group@QFileInfo@@QBE?AVQString@@XZ @ 3409 NONAME ; class QString QFileInfo::group(void) const + ?currentDateTime@QDateTime@@SA?AV1@XZ @ 3410 NONAME ; class QDateTime QDateTime::currentDateTime(void) + ?normalized@QString@@QBE?AV1@W4NormalizationForm@1@@Z @ 3411 NONAME ; class QString QString::normalized(enum QString::NormalizationForm) const + ?child@QModelIndex@@QBE?AV1@HH@Z @ 3412 NONAME ; class QModelIndex QModelIndex::child(int, int) const + ??0QWaitCondition@@QAE@XZ @ 3413 NONAME ; QWaitCondition::QWaitCondition(void) + ??0QLine@@QAE@HHHH@Z @ 3414 NONAME ; QLine::QLine(int, int, int, int) + ?setPort@QUrl@@QAEXH@Z @ 3415 NONAME ; void QUrl::setPort(int) + ?activateCallbacks@QInternal@@SA_NW4Callback@1@PAPAX@Z @ 3416 NONAME ; bool QInternal::activateCallbacks(enum QInternal::Callback, void * *) + ?replace@QString@@QAEAAV1@HHPBVQChar@@H@Z @ 3417 NONAME ; class QString & QString::replace(int, int, class QChar const *, int) + ?toUnicode@QTextDecoder@@QAE?AVQString@@PBDH@Z @ 3418 NONAME ; class QString QTextDecoder::toUnicode(char const *, int) + ?category@QChar@@SA?AW4Category@1@G@Z @ 3419 NONAME ; enum QChar::Category QChar::category(unsigned short) + ?endGroup@QSettings@@QAEXXZ @ 3420 NONAME ; void QSettings::endGroup(void) + ?addExtraNamespaceDeclaration@QXmlStreamReader@@QAEXABVQXmlStreamNamespaceDeclaration@@@Z @ 3421 NONAME ; void QXmlStreamReader::addExtraNamespaceDeclaration(class QXmlStreamNamespaceDeclaration const &) + ?localeAwareCompare@QString@@QBEHABVQStringRef@@@Z @ 3422 NONAME ; int QString::localeAwareCompare(class QStringRef const &) const + ?adjust@QRect@@QAEXHHHH@Z @ 3423 NONAME ; void QRect::adjust(int, int, int, int) + ?resetCurrentSender@QObjectPrivate@@SAXPAVQObject@@PAUSender@1@1@Z @ 3424 NONAME ; void QObjectPrivate::resetCurrentSender(class QObject *, struct QObjectPrivate::Sender *, struct QObjectPrivate::Sender *) + ?restart@QTime@@QAEHXZ @ 3425 NONAME ; int QTime::restart(void) + ?getStaticMetaObject@QFinalState@@SAABUQMetaObject@@XZ @ 3426 NONAME ; struct QMetaObject const & QFinalState::getStaticMetaObject(void) + ?fromString@QDateTimeParser@@QBE_NABVQString@@PAVQDate@@PAVQTime@@@Z @ 3427 NONAME ; bool QDateTimeParser::fromString(class QString const &, class QDate *, class QTime *) const + ??1QAbstractListModel@@UAE@XZ @ 3428 NONAME ; QAbstractListModel::~QAbstractListModel(void) + ??0QStringRef@@QAE@PBVQString@@@Z @ 3429 NONAME ; QStringRef::QStringRef(class QString const *) + ?staticMetaObject@QStateMachine@@2UQMetaObject@@B @ 3430 NONAME ; struct QMetaObject const QStateMachine::staticMetaObject + ?x@QRectF@@QBEMXZ @ 3431 NONAME ; float QRectF::x(void) const + ?setRow@QCharRef@@QAEXE@Z @ 3432 NONAME ; void QCharRef::setRow(unsigned char) + ??5QDataStream@@QAEAAV0@AAM@Z @ 3433 NONAME ; class QDataStream & QDataStream::operator>>(float &) + ?dynamicPropertyNames@QObject@@QBE?AV?$QList@VQByteArray@@@@XZ @ 3434 NONAME ; class QList QObject::dynamicPropertyNames(void) const + ?detach@QUrl@@QAEXXZ @ 3435 NONAME ; void QUrl::detach(void) + ?skipWhiteSpace@QTextStream@@QAEXXZ @ 3436 NONAME ; void QTextStream::skipWhiteSpace(void) + ??CQHBufC@@QBEPBVHBufC16@@XZ @ 3437 NONAME ; class HBufC16 const * QHBufC::operator->(void) const + ?d_func@QPauseAnimation@@ABEPBVQPauseAnimationPrivate@@XZ @ 3438 NONAME ; class QPauseAnimationPrivate const * QPauseAnimation::d_func(void) const + ?clearError@QStateMachine@@QAEXXZ @ 3439 NONAME ; void QStateMachine::clearError(void) + ?write@QMetaProperty@@QBE_NPAVQObject@@ABVQVariant@@@Z @ 3440 NONAME ; bool QMetaProperty::write(class QObject *, class QVariant const &) const + ?localeAwareCompare@QStringRef@@QBEHABV1@@Z @ 3441 NONAME ; int QStringRef::localeAwareCompare(class QStringRef const &) const + ?usleep@QThread@@KAXK@Z @ 3442 NONAME ; void QThread::usleep(unsigned long) + ?codecForUtfText@QTextCodec@@SAPAV1@ABVQByteArray@@@Z @ 3443 NONAME ; class QTextCodec * QTextCodec::codecForUtfText(class QByteArray const &) + ?forcesign@@YAAAVQTextStream@@AAV1@@Z @ 3444 NONAME ; class QTextStream & forcesign(class QTextStream &) + ?isValid@QTime@@QBE_NXZ @ 3445 NONAME ; bool QTime::isValid(void) const + ?cmp@QVariant@@IBE_NABV1@@Z @ 3446 NONAME ; bool QVariant::cmp(class QVariant const &) const + ?metaObject@QTimer@@UBEPBUQMetaObject@@XZ @ 3447 NONAME ; struct QMetaObject const * QTimer::metaObject(void) const + ?autoFormattingIndent@QXmlStreamWriter@@QBEHXZ @ 3448 NONAME ; int QXmlStreamWriter::autoFormattingIndent(void) const + ?homePath@QFSFileEngine@@SA?AVQString@@XZ @ 3449 NONAME ; class QString QFSFileEngine::homePath(void) + ?contains@QString@@QBE?AVQBool@@ABVQRegExp@@@Z @ 3450 NONAME ; class QBool QString::contains(class QRegExp const &) const + ??BQIncompatibleFlag@@QBEHXZ @ 3451 NONAME ; QIncompatibleFlag::operator int(void) const + ?isEmpty@QTranslator@@UBE_NXZ @ 3452 NONAME ; bool QTranslator::isEmpty(void) const + ?qt_metacall@QTextCodecPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3453 NONAME ; int QTextCodecPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?iniCodec@QSettings@@QBEPAVQTextCodec@@XZ @ 3454 NONAME ; class QTextCodec * QSettings::iniCodec(void) const + ??0QEventTransition@@IAE@AAVQEventTransitionPrivate@@PAVQObject@@W4Type@QEvent@@PAVQState@@@Z @ 3455 NONAME ; QEventTransition::QEventTransition(class QEventTransitionPrivate &, class QObject *, enum QEvent::Type, class QState *) + ?setCodecForCStrings@QTextCodec@@SAXPAV1@@Z @ 3456 NONAME ; void QTextCodec::setCodecForCStrings(class QTextCodec *) + ?globalRestorePolicy@QStateMachine@@QBE?AW4RestorePolicy@1@XZ @ 3457 NONAME ; enum QStateMachine::RestorePolicy QStateMachine::globalRestorePolicy(void) const + ?removeAnimation@QAnimationGroup@@QAEXPAVQAbstractAnimation@@@Z @ 3458 NONAME ; void QAnimationGroup::removeAnimation(class QAbstractAnimation *) + ?setPassword@QUrl@@QAEXABVQString@@@Z @ 3459 NONAME ; void QUrl::setPassword(class QString const &) + ?updateDirection@QAbstractAnimation@@MAEXW4Direction@1@@Z @ 3460 NONAME ; void QAbstractAnimation::updateDirection(enum QAbstractAnimation::Direction) + ?qt_int_sqrt@@YAII@Z @ 3461 NONAME ; unsigned int qt_int_sqrt(unsigned int) + ?canReadLine@QBuffer@@UBE_NXZ @ 3462 NONAME ; bool QBuffer::canReadLine(void) const + ??_EQPropertyAnimation@@UAE@I@Z @ 3463 NONAME ; QPropertyAnimation::~QPropertyAnimation(unsigned int) + ?qtTrId@@YA?AVQString@@PBDH@Z @ 3464 NONAME ; class QString qtTrId(char const *, int) + ?loadHints@QPluginLoader@@QBE?AV?$QFlags@W4LoadHint@QLibrary@@@@XZ @ 3465 NONAME ; class QFlags QPluginLoader::loadHints(void) const + ??5QTextStream@@QAEAAV0@AAK@Z @ 3466 NONAME ; class QTextStream & QTextStream::operator>>(unsigned long &) + ?getDigit@QDateTimeParser@@QBEHABVQDateTime@@H@Z @ 3467 NONAME ; int QDateTimeParser::getDigit(class QDateTime const &, int) const + ?continueFreeData@QMapData@@QAEXH@Z @ 3468 NONAME ; void QMapData::continueFreeData(int) + ?size@QIODevice@@UBE_JXZ @ 3469 NONAME ; long long QIODevice::size(void) const + ??0QAbstractTransition@@IAE@AAVQAbstractTransitionPrivate@@PAVQState@@@Z @ 3470 NONAME ; QAbstractTransition::QAbstractTransition(class QAbstractTransitionPrivate &, class QState *) + ?detach@QByteArray@@QAEXXZ @ 3471 NONAME ; void QByteArray::detach(void) + ??0QChar@@QAE@E@Z @ 3472 NONAME ; QChar::QChar(unsigned char) + ?d_func@QSettings@@AAEPAVQSettingsPrivate@@XZ @ 3473 NONAME ; class QSettingsPrivate * QSettings::d_func(void) + ??0QProcessEnvironment@@QAE@ABV0@@Z @ 3474 NONAME ; QProcessEnvironment::QProcessEnvironment(class QProcessEnvironment const &) + ??9QVariant@@QBE_NABV0@@Z @ 3475 NONAME ; bool QVariant::operator!=(class QVariant const &) const + ?toLower@QChar@@SAGG@Z @ 3476 NONAME ; unsigned short QChar::toLower(unsigned short) + ?setAutoFormatting@QXmlStreamWriter@@QAEX_N@Z @ 3477 NONAME ; void QXmlStreamWriter::setAutoFormatting(bool) + ?setMaxThreadCount@QThreadPool@@QAEXH@Z @ 3478 NONAME ; void QThreadPool::setMaxThreadCount(int) + ?trUtf8@QState@@SA?AVQString@@PBD0H@Z @ 3479 NONAME ; class QString QState::trUtf8(char const *, char const *, int) + ??0QAbstractAnimation@@IAE@AAVQAbstractAnimationPrivate@@PAVQObject@@@Z @ 3480 NONAME ; QAbstractAnimation::QAbstractAnimation(class QAbstractAnimationPrivate &, class QObject *) + ?qt_metacall@QPropertyAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3481 NONAME ; int QPropertyAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fieldInfo@QDateTimeParser@@QBE?AV?$QFlags@W4FieldInfoFlag@QDateTimeParser@@@@H@Z @ 3482 NONAME ; class QFlags QDateTimeParser::fieldInfo(int) const + ?initialize@QThread@@CAXXZ @ 3483 NONAME ; void QThread::initialize(void) + ?toAlignedRect@QRectF@@QBE?AVQRect@@XZ @ 3484 NONAME ; class QRect QRectF::toAlignedRect(void) const + ?integerBase@QTextStream@@QBEHXZ @ 3485 NONAME ; int QTextStream::integerBase(void) const + ??OQDateTime@@QBE_NABV0@@Z @ 3486 NONAME ; bool QDateTime::operator>(class QDateTime const &) const + ?setPermissions@QAbstractFileEngine@@UAE_NI@Z @ 3487 NONAME ; bool QAbstractFileEngine::setPermissions(unsigned int) + ?size@QBitArray@@QBEHXZ @ 3488 NONAME ; int QBitArray::size(void) const + ??0QLineF@@QAE@ABVQLine@@@Z @ 3489 NONAME ; QLineF::QLineF(class QLine const &) + ?fromUtf16@QString@@SA?AV1@PBGH@Z @ 3490 NONAME ; class QString QString::fromUtf16(unsigned short const *, int) + ??0QVariant@@AAE@PAX@Z @ 3491 NONAME ; QVariant::QVariant(void *) + ??0QXmlStreamEntityDeclaration@@QAE@XZ @ 3492 NONAME ; QXmlStreamEntityDeclaration::QXmlStreamEntityDeclaration(void) + ?qt_check_pointer@@YAXPBDH@Z @ 3493 NONAME ; void qt_check_pointer(char const *, int) + ?codecForUtfText@QTextCodec@@SAPAV1@ABVQByteArray@@PAV1@@Z @ 3494 NONAME ; class QTextCodec * QTextCodec::codecForUtfText(class QByteArray const &, class QTextCodec *) + ?pattern@QStringMatcher@@QBE?AVQString@@XZ @ 3495 NONAME ; class QString QStringMatcher::pattern(void) const + ?insertRows@QAbstractItemModel@@UAE_NHHABVQModelIndex@@@Z @ 3496 NONAME ; bool QAbstractItemModel::insertRows(int, int, class QModelIndex const &) + ?fromTime_t@QDateTime@@SA?AV1@I@Z @ 3497 NONAME ; class QDateTime QDateTime::fromTime_t(unsigned int) + ?formats@QMimeData@@UBE?AVQStringList@@XZ @ 3498 NONAME ; class QStringList QMimeData::formats(void) const + ?readLink@QFile@@SA?AVQString@@ABV2@@Z @ 3499 NONAME ; class QString QFile::readLink(class QString const &) + ?isNumber@QCharRef@@QBE_NXZ @ 3500 NONAME ; bool QCharRef::isNumber(void) const + ?canonicalFilePath@QFileInfo@@QBE?AVQString@@XZ @ 3501 NONAME ; class QString QFileInfo::canonicalFilePath(void) const + ?columnNumber@QXmlStreamReader@@QBE_JXZ @ 3502 NONAME ; long long QXmlStreamReader::columnNumber(void) const + ??PQString@@QBE_NABV0@@Z @ 3503 NONAME ; bool QString::operator>=(class QString const &) const + ??0QString@@QAE@PBD@Z @ 3504 NONAME ; QString::QString(char const *) + ?error@QAbstractFileEngine@@QBE?AW4FileError@QFile@@XZ @ 3505 NONAME ; enum QFile::FileError QAbstractFileEngine::error(void) const + ??8@YA_NABVQString@@ABVQStringRef@@@Z @ 3506 NONAME ; bool operator==(class QString const &, class QStringRef const &) + ?start@QBasicTimer@@QAEXHPAVQObject@@@Z @ 3507 NONAME ; void QBasicTimer::start(int, class QObject *) + ??_0QSize@@QAEAAV0@M@Z @ 3508 NONAME ; class QSize & QSize::operator/=(float) + ?fromAscii@QChar@@SA?AV1@D@Z @ 3509 NONAME ; class QChar QChar::fromAscii(char) + ??0QMimeData@@QAE@XZ @ 3510 NONAME ; QMimeData::QMimeData(void) + ?qRealloc@@YAPAXPAXI@Z @ 3511 NONAME ; void * qRealloc(void *, unsigned int) + ?setHeight@QRectF@@QAEXM@Z @ 3512 NONAME ; void QRectF::setHeight(float) + ?construct@QMetaType@@SAPAXHPBX@Z @ 3513 NONAME ; void * QMetaType::construct(int, void const *) + ??6QDebug@@QAEAAV0@M@Z @ 3514 NONAME ; class QDebug & QDebug::operator<<(float) + ?fromLatin1@QChar@@SA?AV1@D@Z @ 3515 NONAME ; class QChar QChar::fromLatin1(char) + ??9QRegExp@@QBE_NABV0@@Z @ 3516 NONAME ; bool QRegExp::operator!=(class QRegExp const &) const + ?setBuffer@QBuffer@@QAEXPAVQByteArray@@@Z @ 3517 NONAME ; void QBuffer::setBuffer(class QByteArray *) + ?get@QStateMachinePrivate@@SAPAV1@PAVQStateMachine@@@Z @ 3518 NONAME ; class QStateMachinePrivate * QStateMachinePrivate::get(class QStateMachine *) + ?properties@QUnicodeTables@@YAPBUProperties@1@G@Z @ 3519 NONAME ; struct QUnicodeTables::Properties const * QUnicodeTables::properties(unsigned short) + ??4QXmlStreamNotationDeclaration@@QAEAAV0@ABV0@@Z @ 3520 NONAME ; class QXmlStreamNotationDeclaration & QXmlStreamNotationDeclaration::operator=(class QXmlStreamNotationDeclaration const &) + ??0QDate@@QAE@XZ @ 3521 NONAME ; QDate::QDate(void) + ?filterEvent@QCoreApplication@@QAE_NPAXPAJ@Z @ 3522 NONAME ; bool QCoreApplication::filterEvent(void *, long *) + ??1QTextCodecFactoryInterface@@UAE@XZ @ 3523 NONAME ; QTextCodecFactoryInterface::~QTextCodecFactoryInterface(void) + ?exitStatus@QProcess@@QBE?AW4ExitStatus@1@XZ @ 3524 NONAME ; enum QProcess::ExitStatus QProcess::exitStatus(void) const + ?setEntityResolver@QXmlStreamReader@@QAEXPAVQXmlStreamEntityResolver@@@Z @ 3525 NONAME ; void QXmlStreamReader::setEntityResolver(class QXmlStreamEntityResolver *) + ?moveBottomLeft@QRectF@@QAEXABVQPointF@@@Z @ 3526 NONAME ; void QRectF::moveBottomLeft(class QPointF const &) + ?getStaticMetaObject@QAbstractState@@SAABUQMetaObject@@XZ @ 3527 NONAME ; struct QMetaObject const & QAbstractState::getStaticMetaObject(void) + ?setAngle@QLineF@@QAEXM@Z @ 3528 NONAME ; void QLineF::setAngle(float) + ?beginMoveColumns@QAbstractItemModel@@IAE_NABVQModelIndex@@HH0H@Z @ 3529 NONAME ; bool QAbstractItemModel::beginMoveColumns(class QModelIndex const &, int, int, class QModelIndex const &, int) + ??0QStringMatcher@@QAE@ABV0@@Z @ 3530 NONAME ; QStringMatcher::QStringMatcher(class QStringMatcher const &) + ?sendDeferredSocketEvents@QEventDispatcherSymbian@@AAE_NXZ @ 3531 NONAME ; bool QEventDispatcherSymbian::sendDeferredSocketEvents(void) + ?highSurrogate@QChar@@SAGI@Z @ 3532 NONAME ; unsigned short QChar::highSurrogate(unsigned int) + ?handle@QFSFileEngine@@UBEHXZ @ 3533 NONAME ; int QFSFileEngine::handle(void) const + ?setEventFilter@QCoreApplication@@QAEP6A_NPAXPAJ@ZP6A_N01@Z@Z @ 3534 NONAME ; bool (*)(void *, long *) QCoreApplication::setEventFilter(bool (*)(void *, long *)) + ?qInitResourceIO@@YAXXZ @ 3535 NONAME ; void qInitResourceIO(void) + ?fileEngine@QTemporaryFile@@UBEPAVQAbstractFileEngine@@XZ @ 3536 NONAME ; class QAbstractFileEngine * QTemporaryFile::fileEngine(void) const + ?reset@QAbstractItemModel@@IAEXXZ @ 3537 NONAME ; void QAbstractItemModel::reset(void) + ?supportsExtension@QAbstractFileEngine@@UBE_NW4Extension@1@@Z @ 3538 NONAME ; bool QAbstractFileEngine::supportsExtension(enum QAbstractFileEngine::Extension) const + ?endSelectTransitions@QStateMachine@@MAEXPAVQEvent@@@Z @ 3539 NONAME ; void QStateMachine::endSelectTransitions(class QEvent *) + ?d_func@QObject@@ABEPBVQObjectPrivate@@XZ @ 3540 NONAME ; class QObjectPrivate const * QObject::d_func(void) const + ?isValid@QDateTime@@QBE_NXZ @ 3541 NONAME ; bool QDateTime::isValid(void) const + ?error@QProcess@@IAEXW4ProcessError@1@@Z @ 3542 NONAME ; void QProcess::error(enum QProcess::ProcessError) + ?indexOfSignal@QMetaObject@@QBEHPBD@Z @ 3543 NONAME ; int QMetaObject::indexOfSignal(char const *) const + ?manhattanLength@QPointF@@QBEMXZ @ 3544 NONAME ; float QPointF::manhattanLength(void) const + ?setNumberOptions@QLocale@@QAEXV?$QFlags@W4NumberOption@QLocale@@@@@Z @ 3545 NONAME ; void QLocale::setNumberOptions(class QFlags) + ?processEvents@QCoreApplication@@SAXV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@@Z @ 3546 NONAME ; void QCoreApplication::processEvents(class QFlags) + ?startsWith@QByteArray@@QBE_NPBD@Z @ 3547 NONAME ; bool QByteArray::startsWith(char const *) const + ?list@QLocalePrivate@@QBE?AVQChar@@XZ @ 3548 NONAME ; class QChar QLocalePrivate::list(void) const + ?tr@QSharedMemory@@SA?AVQString@@PBD0@Z @ 3549 NONAME ; class QString QSharedMemory::tr(char const *, char const *) + ?setEventFilter@QAbstractEventDispatcher@@QAEP6A_NPAX@ZP6A_N0@Z@Z @ 3550 NONAME ; bool (*)(void *) QAbstractEventDispatcher::setEventFilter(bool (*)(void *)) + ?trUtf8@QProcess@@SA?AVQString@@PBD0@Z @ 3551 NONAME ; class QString QProcess::trUtf8(char const *, char const *) + ?currentAnimation@QSequentialAnimationGroup@@QBEPAVQAbstractAnimation@@XZ @ 3552 NONAME ; class QAbstractAnimation * QSequentialAnimationGroup::currentAnimation(void) const + ??0QMutex@@QAE@W4RecursionMode@0@@Z @ 3553 NONAME ; QMutex::QMutex(enum QMutex::RecursionMode) + ?trUtf8@QTemporaryFile@@SA?AVQString@@PBD0@Z @ 3554 NONAME ; class QString QTemporaryFile::trUtf8(char const *, char const *) + ?data@QVariant@@QBEPBXXZ @ 3555 NONAME ; void const * QVariant::data(void) const + ?combiningClass@QChar@@SAEI@Z @ 3556 NONAME ; unsigned char QChar::combiningClass(unsigned int) + ?setUserData@QObject@@QAEXIPAVQObjectUserData@@@Z @ 3557 NONAME ; void QObject::setUserData(unsigned int, class QObjectUserData *) + ?toRectF@QVariant@@QBE?AVQRectF@@XZ @ 3558 NONAME ; class QRectF QVariant::toRectF(void) const + ?setNum@QString@@QAEAAV1@_JH@Z @ 3559 NONAME ; class QString & QString::setNum(long long, int) + ?setPath@QSettings@@SAXW4Format@1@W4Scope@1@ABVQString@@@Z @ 3560 NONAME ; void QSettings::setPath(enum QSettings::Format, enum QSettings::Scope, class QString const &) + ?socket@QSocketNotifier@@QBEHXZ @ 3561 NONAME ; int QSocketNotifier::socket(void) const + ?owner@QFSFileEngine@@UBE?AVQString@@W4FileOwner@QAbstractFileEngine@@@Z @ 3562 NONAME ; class QString QFSFileEngine::owner(enum QAbstractFileEngine::FileOwner) const + ??0QAbstractFileEngine@@IAE@XZ @ 3563 NONAME ; QAbstractFileEngine::QAbstractFileEngine(void) + ??0QEventTransitionPrivate@@QAE@XZ @ 3564 NONAME ; QEventTransitionPrivate::QEventTransitionPrivate(void) + ?entryList@QFSFileEngine@@UBE?AVQStringList@@V?$QFlags@W4Filter@QDir@@@@ABV2@@Z @ 3565 NONAME ; class QStringList QFSFileEngine::entryList(class QFlags, class QStringList const &) const + ?created@QFileInfo@@QBE?AVQDateTime@@XZ @ 3566 NONAME ; class QDateTime QFileInfo::created(void) const + ?release@QSystemSemaphore@@QAE_NH@Z @ 3567 NONAME ; bool QSystemSemaphore::release(int) + ??1QDynamicPropertyChangeEvent@@UAE@XZ @ 3568 NONAME ; QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent(void) + ?close@QIODevice@@UAEXXZ @ 3569 NONAME ; void QIODevice::close(void) + ??YQPoint@@QAEAAV0@ABV0@@Z @ 3570 NONAME ; class QPoint & QPoint::operator+=(class QPoint const &) + ?getStaticMetaObject@QFactoryLoader@@SAABUQMetaObject@@XZ @ 3571 NONAME ; struct QMetaObject const & QFactoryLoader::getStaticMetaObject(void) + ?cd@QDir@@QAE_NABVQString@@@Z @ 3572 NONAME ; bool QDir::cd(class QString const &) + ??0QCryptographicHash@@QAE@W4Algorithm@0@@Z @ 3573 NONAME ; QCryptographicHash::QCryptographicHash(enum QCryptographicHash::Algorithm) + ?rwidth@QSizeF@@QAEAAMXZ @ 3574 NONAME ; float & QSizeF::rwidth(void) + ?setEncodedUserName@QUrl@@QAEXABVQByteArray@@@Z @ 3575 NONAME ; void QUrl::setEncodedUserName(class QByteArray const &) + ?clear@QStringRef@@QAEXXZ @ 3576 NONAME ; void QStringRef::clear(void) + ??0QXmlStreamReader@@QAE@ABVQByteArray@@@Z @ 3577 NONAME ; QXmlStreamReader::QXmlStreamReader(class QByteArray const &) + ?putChar@QIODevice@@QAE_ND@Z @ 3578 NONAME ; bool QIODevice::putChar(char) + ?codecForHtml@QTextCodec@@SAPAV1@ABVQByteArray@@@Z @ 3579 NONAME ; class QTextCodec * QTextCodec::codecForHtml(class QByteArray const &) + ?name@QMetaClassInfo@@QBEPBDXZ @ 3580 NONAME ; char const * QMetaClassInfo::name(void) const + ?y2@QLine@@QBEHXZ @ 3581 NONAME ; int QLine::y2(void) const + ?isUpper@QChar@@QBE_NXZ @ 3582 NONAME ; bool QChar::isUpper(void) const + ??0QLibrary@@QAE@ABVQString@@HPAVQObject@@@Z @ 3583 NONAME ; QLibrary::QLibrary(class QString const &, int, class QObject *) + ?tr@QMimeData@@SA?AVQString@@PBD0H@Z @ 3584 NONAME ; class QString QMimeData::tr(char const *, char const *, int) + ?cancelDelayedEvent@QStateMachine@@QAE_NH@Z @ 3585 NONAME ; bool QStateMachine::cancelDelayedEvent(int) + ??1QDataStream@@UAE@XZ @ 3586 NONAME ; QDataStream::~QDataStream(void) + ?readData@QBuffer@@MAE_JPAD_J@Z @ 3587 NONAME ; long long QBuffer::readData(char *, long long) + ??1QAbstractFileEngineIterator@@UAE@XZ @ 3588 NONAME ; QAbstractFileEngineIterator::~QAbstractFileEngineIterator(void) + ?qUnregisterResourceData@@YA_NHPBE00@Z @ 3589 NONAME ; bool qUnregisterResourceData(int, unsigned char const *, unsigned char const *, unsigned char const *) + ?qt_metacast@QThread@@UAEPAXPBD@Z @ 3590 NONAME ; void * QThread::qt_metacast(char const *) + ??1QTextBoundaryFinder@@QAE@XZ @ 3591 NONAME ; QTextBoundaryFinder::~QTextBoundaryFinder(void) + ??9QByteArray@@QBE_NABVQString@@@Z @ 3592 NONAME ; bool QByteArray::operator!=(class QString const &) const + ?checkConnectArgs@QMetaObject@@SA_NPBD0@Z @ 3593 NONAME ; bool QMetaObject::checkConnectArgs(char const *, char const *) + ?toUpper@QChar@@SAGG@Z @ 3594 NONAME ; unsigned short QChar::toUpper(unsigned short) + ?readChannel@QProcess@@QBE?AW4ProcessChannel@1@XZ @ 3595 NONAME ; enum QProcess::ProcessChannel QProcess::readChannel(void) const + ??0QVariant@@QAE@ABVQByteArray@@@Z @ 3596 NONAME ; QVariant::QVariant(class QByteArray const &) + ?getStaticMetaObject@QSocketNotifier@@SAABUQMetaObject@@XZ @ 3597 NONAME ; struct QMetaObject const & QSocketNotifier::getStaticMetaObject(void) + ?detach@QBitArray@@QAEXXZ @ 3598 NONAME ; void QBitArray::detach(void) + ??4QPersistentModelIndex@@QAEAAV0@ABV0@@Z @ 3599 NONAME ; class QPersistentModelIndex & QPersistentModelIndex::operator=(class QPersistentModelIndex const &) + ?qSNaN@@YANXZ @ 3600 NONAME ; double qSNaN(void) + ?objectName@QObject@@QBE?AVQString@@XZ @ 3601 NONAME ; class QString QObject::objectName(void) const + ?clear@QSettings@@QAEXXZ @ 3602 NONAME ; void QSettings::clear(void) + ?trUtf8@QPauseAnimation@@SA?AVQString@@PBD0H@Z @ 3603 NONAME ; class QString QPauseAnimation::trUtf8(char const *, char const *, int) + ?setPadChar@QTextStream@@QAEXVQChar@@@Z @ 3604 NONAME ; void QTextStream::setPadChar(class QChar) + ?value@QXmlStreamAttributes@@QBE?AVQStringRef@@ABVQLatin1String@@0@Z @ 3605 NONAME ; class QStringRef QXmlStreamAttributes::value(class QLatin1String const &, class QLatin1String const &) const + ?tryLockForRead@QReadWriteLock@@QAE_NH@Z @ 3606 NONAME ; bool QReadWriteLock::tryLockForRead(int) + ?qt_metacall@QLibrary@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3607 NONAME ; int QLibrary::qt_metacall(enum QMetaObject::Call, int, void * *) + ??5QDataStream@@QAEAAV0@AAF@Z @ 3608 NONAME ; class QDataStream & QDataStream::operator>>(short &) + ?fileFlags@QAbstractFileEngine@@UBE?AV?$QFlags@W4FileFlag@QAbstractFileEngine@@@@V2@@Z @ 3609 NONAME ; class QFlags QAbstractFileEngine::fileFlags(class QFlags) const + ?name@QXmlStreamEntityDeclaration@@QBE?AVQStringRef@@XZ @ 3610 NONAME ; class QStringRef QXmlStreamEntityDeclaration::name(void) const + ?qt_metacall@QTemporaryFile@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3611 NONAME ; int QTemporaryFile::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isNull@QRect@@QBE_NXZ @ 3612 NONAME ; bool QRect::isNull(void) const + ?trUtf8@QSequentialAnimationGroup@@SA?AVQString@@PBD0H@Z @ 3613 NONAME ; class QString QSequentialAnimationGroup::trUtf8(char const *, char const *, int) + ?allQueryItemValues@QUrl@@QBE?AVQStringList@@ABVQString@@@Z @ 3614 NONAME ; class QStringList QUrl::allQueryItemValues(class QString const &) const + ??PQTime@@QBE_NABV0@@Z @ 3615 NONAME ; bool QTime::operator>=(class QTime const &) const + ?setHtml@QMimeData@@QAEXABVQString@@@Z @ 3616 NONAME ; void QMimeData::setHtml(class QString const &) + ?typeName@QVariant@@QBEPBDXZ @ 3617 NONAME ; char const * QVariant::typeName(void) const + ?startDetached@QProcess@@SA_NABVQString@@@Z @ 3618 NONAME ; bool QProcess::startDetached(class QString const &) + ?fromString@QDate@@SA?AV1@ABVQString@@0@Z @ 3619 NONAME ; class QDate QDate::fromString(class QString const &, class QString const &) + ?category@QCharRef@@QBE?AW4Category@QChar@@XZ @ 3620 NONAME ; enum QChar::Category QCharRef::category(void) const + ??0QLine@@QAE@ABV0@@Z @ 3621 NONAME ; QLine::QLine(class QLine const &) + ?QStringList_sort@QtPrivate@@YAXPAVQStringList@@@Z @ 3622 NONAME ; void QtPrivate::QStringList_sort(class QStringList *) + ??1QSignalTransition@@UAE@XZ @ 3623 NONAME ; QSignalTransition::~QSignalTransition(void) + ??0QFileInfo@@QAE@ABVQFile@@@Z @ 3624 NONAME ; QFileInfo::QFileInfo(class QFile const &) + ?setEventType@QEventTransition@@QAEXW4Type@QEvent@@@Z @ 3625 NONAME ; void QEventTransition::setEventType(enum QEvent::Type) + ??4QXmlStreamEntityDeclaration@@QAEAAV0@ABV0@@Z @ 3626 NONAME ; class QXmlStreamEntityDeclaration & QXmlStreamEntityDeclaration::operator=(class QXmlStreamEntityDeclaration const &) + ??0QVariant@@QAE@ABVQLatin1String@@@Z @ 3627 NONAME ; QVariant::QVariant(class QLatin1String const &) + ?endsWith@QString@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 3628 NONAME ; bool QString::endsWith(class QString const &, enum Qt::CaseSensitivity) const + ?isReadable@QFileInfo@@QBE_NXZ @ 3629 NONAME ; bool QFileInfo::isReadable(void) const + ?isNull@QStringRef@@QBE_NXZ @ 3630 NONAME ; bool QStringRef::isNull(void) const + ?section@QString@@QBE?AV1@ABV1@HHV?$QFlags@W4SectionFlag@QString@@@@@Z @ 3631 NONAME ; class QString QString::section(class QString const &, int, int, class QFlags) const + ?addSearchPath@QDir@@SAXABVQString@@0@Z @ 3632 NONAME ; void QDir::addSearchPath(class QString const &, class QString const &) + ??4QCharRef@@QAEAAV0@G@Z @ 3633 NONAME ; class QCharRef & QCharRef::operator=(unsigned short) + ??0QPoint@@QAE@HH@Z @ 3634 NONAME ; QPoint::QPoint(int, int) + ??0QString@@QAE@ABUNull@0@@Z @ 3635 NONAME ; QString::QString(struct QString::Null const &) + ?setFieldWidth@QTextStream@@QAEXH@Z @ 3636 NONAME ; void QTextStream::setFieldWidth(int) + ?toULongLong@QLocale@@QBE_JABVQString@@PA_NH@Z @ 3637 NONAME ; long long QLocale::toULongLong(class QString const &, bool *, int) const + ??1QRegExp@@QAE@XZ @ 3638 NONAME ; QRegExp::~QRegExp(void) + ?translate@QCoreApplication@@SA?AVQString@@PBD00W4Encoding@1@H@Z @ 3639 NONAME ; class QString QCoreApplication::translate(char const *, char const *, char const *, enum QCoreApplication::Encoding, int) + ?setBottom@QRect@@QAEXH@Z @ 3640 NONAME ; void QRect::setBottom(int) + ?isNull@QPointF@@QBE_NXZ @ 3641 NONAME ; bool QPointF::isNull(void) const + ?enclosingMetaObject@QMetaProperty@@QBEPBUQMetaObject@@XZ @ 3642 NONAME ; struct QMetaObject const * QMetaProperty::enclosingMetaObject(void) const + ??YQPointF@@QAEAAV0@ABV0@@Z @ 3643 NONAME ; class QPointF & QPointF::operator+=(class QPointF const &) + ?sectionMaxSize@QDateTimeParser@@QBEHW4Section@1@H@Z @ 3644 NONAME ; int QDateTimeParser::sectionMaxSize(enum QDateTimeParser::Section, int) const + ?top@QRect@@QBEHXZ @ 3645 NONAME ; int QRect::top(void) const + ?tr@QTextCodecPlugin@@SA?AVQString@@PBD0H@Z @ 3646 NONAME ; class QString QTextCodecPlugin::tr(char const *, char const *, int) + ?updateInterval@QTimeLine@@QBEHXZ @ 3647 NONAME ; int QTimeLine::updateInterval(void) const + ?trUtf8@QFile@@SA?AVQString@@PBD0H@Z @ 3648 NONAME ; class QString QFile::trUtf8(char const *, char const *, int) + ?data@QVariant@@QAEPAXXZ @ 3649 NONAME ; void * QVariant::data(void) + ??5QTextStream@@QAEAAV0@AAD@Z @ 3650 NONAME ; class QTextStream & QTextStream::operator>>(char &) + ?insert@QByteArray@@QAEAAV1@HPBDH@Z @ 3651 NONAME ; class QByteArray & QByteArray::insert(int, char const *, int) + ?keyToValue@QMetaEnum@@QBEHPBD@Z @ 3652 NONAME ; int QMetaEnum::keyToValue(char const *) const + ?internalId@QModelIndex@@QBE_JXZ @ 3653 NONAME ; long long QModelIndex::internalId(void) const + ??1QAbstractEventDispatcher@@UAE@XZ @ 3654 NONAME ; QAbstractEventDispatcher::~QAbstractEventDispatcher(void) + ?trUtf8@QEventTransition@@SA?AVQString@@PBD0H@Z @ 3655 NONAME ; class QString QEventTransition::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@QTranslator@@SAABUQMetaObject@@XZ @ 3656 NONAME ; struct QMetaObject const & QTranslator::getStaticMetaObject(void) + ?unregisterSocketNotifier@QEventDispatcherSymbian@@UAEXPAVQSocketNotifier@@@Z @ 3657 NONAME ; void QEventDispatcherSymbian::unregisterSocketNotifier(class QSocketNotifier *) + ?destroyAndFree@QHashData@@QAEXXZ @ 3658 NONAME ; void QHashData::destroyAndFree(void) + ??0QDataStream@@QAE@ABVQByteArray@@@Z @ 3659 NONAME ; QDataStream::QDataStream(class QByteArray const &) + ?namespaceDeclarations@QXmlStreamReader@@QBE?AV?$QVector@VQXmlStreamNamespaceDeclaration@@@@XZ @ 3660 NONAME ; class QVector QXmlStreamReader::namespaceDeclarations(void) const + ?queryItemValue@QUrl@@QBE?AVQString@@ABV2@@Z @ 3661 NONAME ; class QString QUrl::queryItemValue(class QString const &) const + ?finish@QThreadStorageData@@SAXPAPAX@Z @ 3662 NONAME ; void QThreadStorageData::finish(void * *) + ?getStaticMetaObject@QAbstractListModel@@SAABUQMetaObject@@XZ @ 3663 NONAME ; struct QMetaObject const & QAbstractListModel::getStaticMetaObject(void) + ?trimmed@QString@@QBE?AV1@XZ @ 3664 NONAME ; class QString QString::trimmed(void) const + ?direction@QCharRef@@QBE?AW4Direction@QChar@@XZ @ 3665 NONAME ; enum QChar::Direction QCharRef::direction(void) const + ??0QObjectCleanupHandler@@QAE@XZ @ 3666 NONAME ; QObjectCleanupHandler::QObjectCleanupHandler(void) + ?setHeight@QRect@@QAEXH@Z @ 3667 NONAME ; void QRect::setHeight(int) + ?lastIndexOf@QByteArray@@QBEHDH@Z @ 3668 NONAME ; int QByteArray::lastIndexOf(char, int) const + ?query@QSystemLocale@@UBE?AVQVariant@@W4QueryType@1@V2@@Z @ 3669 NONAME ; class QVariant QSystemLocale::query(enum QSystemLocale::QueryType, class QVariant) const + ?d_func@QIODevice@@ABEPBVQIODevicePrivate@@XZ @ 3670 NONAME ; class QIODevicePrivate const * QIODevice::d_func(void) const + ?repeated@QByteArray@@QBE?AV1@H@Z @ 3671 NONAME ; class QByteArray QByteArray::repeated(int) const + ?system@QLocale@@SA?AV1@XZ @ 3672 NONAME ; class QLocale QLocale::system(void) + ?publicId@QXmlStreamEntityDeclaration@@QBE?AVQStringRef@@XZ @ 3673 NONAME ; class QStringRef QXmlStreamEntityDeclaration::publicId(void) const + ?unite@QRect@@QBE?AV1@ABV1@@Z @ 3674 NONAME ; class QRect QRect::unite(class QRect const &) const + ?hasHtml@QMimeData@@QBE_NXZ @ 3675 NONAME ; bool QMimeData::hasHtml(void) const + ?setStandardOutputFile@QProcess@@QAEXABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 3676 NONAME ; void QProcess::setStandardOutputFile(class QString const &, class QFlags) + ?qFlagLocation@@YAPBDPBD@Z @ 3677 NONAME ; char const * qFlagLocation(char const *) + ??PQString@@QBE_NPBD@Z @ 3678 NONAME ; bool QString::operator>=(char const *) const + ?metaObject@QTranslator@@UBEPBUQMetaObject@@XZ @ 3679 NONAME ; struct QMetaObject const * QTranslator::metaObject(void) const + ??0QTextBoundaryFinder@@QAE@XZ @ 3680 NONAME ; QTextBoundaryFinder::QTextBoundaryFinder(void) + ?scope@QSettings@@QBE?AW4Scope@1@XZ @ 3681 NONAME ; enum QSettings::Scope QSettings::scope(void) const + ?setCustomType@QEasingCurve@@QAEXP6AMM@Z@Z @ 3682 NONAME ; void QEasingCurve::setCustomType(float (*)(float)) + ?flush@QCoreApplication@@SAXXZ @ 3683 NONAME ; void QCoreApplication::flush(void) + ?left@QRect@@QBEHXZ @ 3684 NONAME ; int QRect::left(void) const + ?prefix@QXmlStreamNamespaceDeclaration@@QBE?AVQStringRef@@XZ @ 3685 NONAME ; class QStringRef QXmlStreamNamespaceDeclaration::prefix(void) const + ?toUnicode@QTextDecoder@@QAE?AVQString@@ABVQByteArray@@@Z @ 3686 NONAME ; class QString QTextDecoder::toUnicode(class QByteArray const &) + ??1QSharedMemory@@UAE@XZ @ 3687 NONAME ; QSharedMemory::~QSharedMemory(void) + ?setEncodedQueryItems@QUrl@@QAEXABV?$QList@U?$QPair@VQByteArray@@V1@@@@@@Z @ 3688 NONAME ; void QUrl::setEncodedQueryItems(class QList > const &) + ?normalVector@QLineF@@QBE?AV1@XZ @ 3689 NONAME ; class QLineF QLineF::normalVector(void) const + ??_EQTextCodecPlugin@@UAE@I@Z @ 3690 NONAME ; QTextCodecPlugin::~QTextCodecPlugin(unsigned int) + ?addMonths@QDate@@QBE?AV1@H@Z @ 3691 NONAME ; class QDate QDate::addMonths(int) const + ??OQLatin1String@@QBE_NPBD@Z @ 3692 NONAME ; bool QLatin1String::operator>(char const *) const + ??0QReadWriteLock@@QAE@W4RecursionMode@0@@Z @ 3693 NONAME ; QReadWriteLock::QReadWriteLock(enum QReadWriteLock::RecursionMode) + ??9QLatin1String@@QBE_NPBD@Z @ 3694 NONAME ; bool QLatin1String::operator!=(char const *) const + ?hasPendingEvents@QCoreApplication@@SA_NXZ @ 3695 NONAME ; bool QCoreApplication::hasPendingEvents(void) + ?open@QFile@@QAE_NHV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 3696 NONAME ; bool QFile::open(int, class QFlags) + ?getStaticMetaObject@QAbstractTableModel@@SAABUQMetaObject@@XZ @ 3697 NONAME ; struct QMetaObject const & QAbstractTableModel::getStaticMetaObject(void) + ?isParallel@QStateMachinePrivate@@SA_NPBVQAbstractState@@@Z @ 3698 NONAME ; bool QStateMachinePrivate::isParallel(class QAbstractState const *) + ?dir@QFileInfo@@QBE?AVQDir@@XZ @ 3699 NONAME ; class QDir QFileInfo::dir(void) const + ??6QDebug@@QAEAAV0@VQTextStreamManipulator@@@Z @ 3700 NONAME ; class QDebug & QDebug::operator<<(class QTextStreamManipulator) + ?remove@QProcessEnvironment@@QAEXABVQString@@@Z @ 3701 NONAME ; void QProcessEnvironment::remove(class QString const &) + ?hasRestorable@QStateMachinePrivate@@QBE_NPAVQObject@@ABVQByteArray@@@Z @ 3702 NONAME ; bool QStateMachinePrivate::hasRestorable(class QObject *, class QByteArray const &) const + ?duration@QParallelAnimationGroup@@UBEHXZ @ 3703 NONAME ; int QParallelAnimationGroup::duration(void) const + ?qt_metacall@QParallelAnimationGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3704 NONAME ; int QParallelAnimationGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fromString@QDate@@SA?AV1@ABVQString@@W4DateFormat@Qt@@@Z @ 3705 NONAME ; class QDate QDate::fromString(class QString const &, enum Qt::DateFormat) + ?password@QUrl@@QBE?AVQString@@XZ @ 3706 NONAME ; class QString QUrl::password(void) const + ??0QRect@@QAE@ABV0@@Z @ 3707 NONAME ; QRect::QRect(class QRect const &) + ??6QDebug@@QAEAAV0@F@Z @ 3708 NONAME ; class QDebug & QDebug::operator<<(short) + ?tr@QIODevice@@SA?AVQString@@PBD0H@Z @ 3709 NONAME ; class QString QIODevice::tr(char const *, char const *, int) + ?detach@QFileInfo@@QAEXXZ @ 3710 NONAME ; void QFileInfo::detach(void) + ?staticMetaObject@QAbstractState@@2UQMetaObject@@B @ 3711 NONAME ; struct QMetaObject const QAbstractState::staticMetaObject + ??0QLocale@@QAE@W4Language@0@W4Country@0@@Z @ 3712 NONAME ; QLocale::QLocale(enum QLocale::Language, enum QLocale::Country) + ?staticMetaObject@QTimeLine@@2UQMetaObject@@B @ 3713 NONAME ; struct QMetaObject const QTimeLine::staticMetaObject + ??0QParallelAnimationGroup@@IAE@AAVQParallelAnimationGroupPrivate@@PAVQObject@@@Z @ 3714 NONAME ; QParallelAnimationGroup::QParallelAnimationGroup(class QParallelAnimationGroupPrivate &, class QObject *) + ??0QTimerEvent@@QAE@H@Z @ 3715 NONAME ; QTimerEvent::QTimerEvent(int) + ?tr@QLibrary@@SA?AVQString@@PBD0H@Z @ 3716 NONAME ; class QString QLibrary::tr(char const *, char const *, int) + ?ry@QPoint@@QAEAAHXZ @ 3717 NONAME ; int & QPoint::ry(void) + ?d_func@QPropertyAnimation@@ABEPBVQPropertyAnimationPrivate@@XZ @ 3718 NONAME ; class QPropertyAnimationPrivate const * QPropertyAnimation::d_func(void) const + ??1QTextDecoder@@QAE@XZ @ 3719 NONAME ; QTextDecoder::~QTextDecoder(void) + ?cell@QCharRef@@QBEEXZ @ 3720 NONAME ; unsigned char QCharRef::cell(void) const + ?metaObject@QAbstractEventDispatcher@@UBEPBUQMetaObject@@XZ @ 3721 NONAME ; struct QMetaObject const * QAbstractEventDispatcher::metaObject(void) const + ?toTime_t@QDateTime@@QBEIXZ @ 3722 NONAME ; unsigned int QDateTime::toTime_t(void) const + ?rowsRemoved@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 3723 NONAME ; void QAbstractItemModelPrivate::rowsRemoved(class QModelIndex const &, int, int) + ?negativeSign@QLocale@@QBE?AVQChar@@XZ @ 3724 NONAME ; class QChar QLocale::negativeSign(void) const + ??0QVariant@@QAE@PBD@Z @ 3725 NONAME ; QVariant::QVariant(char const *) + ?sectionMaxSize@QDateTimeParser@@QBEHH@Z @ 3726 NONAME ; int QDateTimeParser::sectionMaxSize(int) const + ??1QTextEncoder@@QAE@XZ @ 3727 NONAME ; QTextEncoder::~QTextEncoder(void) + ?sleep@QThread@@KAXK@Z @ 3728 NONAME ; void QThread::sleep(unsigned long) + ?append@QXmlStreamAttributes@@QAEXABVQString@@00@Z @ 3729 NONAME ; void QXmlStreamAttributes::append(class QString const &, class QString const &, class QString const &) + ??0QObject@@IAE@AAVQObjectPrivate@@PAV0@@Z @ 3730 NONAME ; QObject::QObject(class QObjectPrivate &, class QObject *) + ?toSize@QVariant@@QBE?AVQSize@@XZ @ 3731 NONAME ; class QSize QVariant::toSize(void) const + ?x1@QLineF@@QBEMXZ @ 3732 NONAME ; float QLineF::x1(void) const + ?multiArg@QString@@ABE?AV1@HPAPBV1@@Z @ 3733 NONAME ; class QString QString::multiArg(int, class QString const * *) const + ??1QStringMatcher@@QAE@XZ @ 3734 NONAME ; QStringMatcher::~QStringMatcher(void) + ?intersects@QRectF@@QBE_NABV1@@Z @ 3735 NONAME ; bool QRectF::intersects(class QRectF const &) const + ??0QGenericArgument@@QAE@PBDPBX@Z @ 3736 NONAME ; QGenericArgument::QGenericArgument(char const *, void const *) + ?open@QTemporaryFile@@MAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 3737 NONAME ; bool QTemporaryFile::open(class QFlags) + ?qt_metacast@QThreadPool@@UAEPAXPBD@Z @ 3738 NONAME ; void * QThreadPool::qt_metacast(char const *) + ?start@QTime@@QAEXXZ @ 3739 NONAME ; void QTime::start(void) + ?append@QString@@QAEAAV1@VQChar@@@Z @ 3740 NONAME ; class QString & QString::append(class QChar) + ?systemEnvironment@QProcessEnvironment@@SA?AV1@XZ @ 3741 NONAME ; class QProcessEnvironment QProcessEnvironment::systemEnvironment(void) + ?keys@QFactoryLoader@@QBE?AVQStringList@@XZ @ 3742 NONAME ; class QStringList QFactoryLoader::keys(void) const + ??YQString@@QAEAAV0@VQChar@@@Z @ 3743 NONAME ; class QString & QString::operator+=(class QChar) + ??1QCoreApplication@@UAE@XZ @ 3744 NONAME ; QCoreApplication::~QCoreApplication(void) + ?writeRawData@QDataStream@@QAEHPBDH@Z @ 3745 NONAME ; int QDataStream::writeRawData(char const *, int) + ?y2@QLineF@@QBEMXZ @ 3746 NONAME ; float QLineF::y2(void) const + ?metaObject@QHistoryState@@UBEPBUQMetaObject@@XZ @ 3747 NONAME ; struct QMetaObject const * QHistoryState::metaObject(void) const + ?name@QFontLaoCodec@@UBE?AVQByteArray@@XZ @ 3748 NONAME ; class QByteArray QFontLaoCodec::name(void) const + ?qcoreStateMachineHandler@@YAPBUHandler@QStateMachinePrivate@@XZ @ 3749 NONAME ; struct QStateMachinePrivate::Handler const * qcoreStateMachineHandler(void) + ?bottom@QRectF@@QBEMXZ @ 3750 NONAME ; float QRectF::bottom(void) const + ?tag@QMetaMethod@@QBEPBDXZ @ 3751 NONAME ; char const * QMetaMethod::tag(void) const + ?readLine@QIODevice@@QAE?AVQByteArray@@_J@Z @ 3752 NONAME ; class QByteArray QIODevice::readLine(long long) + ?readNextStartElement@QXmlStreamReader@@QAE_NXZ @ 3753 NONAME ; bool QXmlStreamReader::readNextStartElement(void) + ?roleNames@QAbstractItemModel@@QBEABV?$QHash@HVQByteArray@@@@XZ @ 3754 NONAME ; class QHash const & QAbstractItemModel::roleNames(void) const + ?hex@@YAAAVQTextStream@@AAV1@@Z @ 3755 NONAME ; class QTextStream & hex(class QTextStream &) + ?getStaticMetaObject@QFileSystemWatcher@@SAABUQMetaObject@@XZ @ 3756 NONAME ; struct QMetaObject const & QFileSystemWatcher::getStaticMetaObject(void) + ?metaObject@QThread@@UBEPBUQMetaObject@@XZ @ 3757 NONAME ; struct QMetaObject const * QThread::metaObject(void) const + ?isNull@QSizeF@@QBE_NXZ @ 3758 NONAME ; bool QSizeF::isNull(void) const + ?isLetterOrNumber@QCharRef@@QAE_NXZ @ 3759 NONAME ; bool QCharRef::isLetterOrNumber(void) + ??0QStringRef@@QAE@XZ @ 3760 NONAME ; QStringRef::QStringRef(void) + ?is_app_running@QCoreApplicationPrivate@@2_NA @ 3761 NONAME ; bool QCoreApplicationPrivate::is_app_running + ?polished@QChildEvent@@QBE_NXZ @ 3762 NONAME ; bool QChildEvent::polished(void) const + ?autoDetectUnicode@QTextStream@@QBE_NXZ @ 3763 NONAME ; bool QTextStream::autoDetectUnicode(void) const + ?isAttached@QSharedMemory@@QBE_NXZ @ 3764 NONAME ; bool QSharedMemory::isAttached(void) const + ?q_func@QAbstractItemModelPrivate@@ABEPBVQAbstractItemModel@@XZ @ 3765 NONAME ; class QAbstractItemModel const * QAbstractItemModelPrivate::q_func(void) const + ?isValid@QModelIndex@@QBE_NXZ @ 3766 NONAME ; bool QModelIndex::isValid(void) const + ?direction@QTimeLine@@QBE?AW4Direction@1@XZ @ 3767 NONAME ; enum QTimeLine::Direction QTimeLine::direction(void) const + ?qWarning@@YA?AVQDebug@@XZ @ 3768 NONAME ; class QDebug qWarning(void) + ?nospace@QDebug@@QAEAAV1@XZ @ 3769 NONAME ; class QDebug & QDebug::nospace(void) + ?tr@QCoreApplication@@SA?AVQString@@PBD0H@Z @ 3770 NONAME ; class QString QCoreApplication::tr(char const *, char const *, int) + ??0QPropertyAnimation@@QAE@PAVQObject@@@Z @ 3771 NONAME ; QPropertyAnimation::QPropertyAnimation(class QObject *) + ?unregister@QEventTransitionPrivate@@QAEXXZ @ 3772 NONAME ; void QEventTransitionPrivate::unregister(void) + ?closeReadChannel@QProcess@@QAEXW4ProcessChannel@1@@Z @ 3773 NONAME ; void QProcess::closeReadChannel(enum QProcess::ProcessChannel) + ?beginMoveRows@QAbstractItemModel@@IAE_NABVQModelIndex@@HH0H@Z @ 3774 NONAME ; bool QAbstractItemModel::beginMoveRows(class QModelIndex const &, int, int, class QModelIndex const &, int) + ?toString@QLocale@@QBE?AVQString@@G@Z @ 3775 NONAME ; class QString QLocale::toString(unsigned short) const + ??0QProcess@@QAE@PAVQObject@@@Z @ 3776 NONAME ; QProcess::QProcess(class QObject *) + ?startsWith@QByteArray@@QBE_ND@Z @ 3777 NONAME ; bool QByteArray::startsWith(char) const + ?compare@QString@@QBEHABV1@@Z @ 3778 NONAME ; int QString::compare(class QString const &) const + ?run@QThread@@MAEXXZ @ 3779 NONAME ; void QThread::run(void) + ?handler@QStateMachinePrivate@@2PBUHandler@1@B @ 3780 NONAME ; struct QStateMachinePrivate::Handler const * const QStateMachinePrivate::handler + ?setFileName@QLibrary@@QAEXABVQString@@@Z @ 3781 NONAME ; void QLibrary::setFileName(class QString const &) + ?timeout@QTimer@@IAEXXZ @ 3782 NONAME ; void QTimer::timeout(void) + ?row@QChar@@QBEEXZ @ 3783 NONAME ; unsigned char QChar::row(void) const + ?tr@QTimer@@SA?AVQString@@PBD0@Z @ 3784 NONAME ; class QString QTimer::tr(char const *, char const *) + ??0QVariant@@QAE@ABVQTime@@@Z @ 3785 NONAME ; QVariant::QVariant(class QTime const &) + ?currentThreadId@QThread@@SAKXZ @ 3786 NONAME ; unsigned long QThread::currentThreadId(void) + ?chop@QString@@QAEXH@Z @ 3787 NONAME ; void QString::chop(int) + ?isNull@QDateTime@@QBE_NXZ @ 3788 NONAME ; bool QDateTime::isNull(void) const + ?height@QRectF@@QBEMXZ @ 3789 NONAME ; float QRectF::height(void) const + ?flags@QAbstractItemModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 3790 NONAME ; class QFlags QAbstractItemModel::flags(class QModelIndex const &) const + ?displayText@QDateTimeParser@@UBE?AVQString@@XZ @ 3791 NONAME ; class QString QDateTimeParser::displayText(void) const + ?sendPostedEvents@QCoreApplicationPrivate@@SAXPAVQObject@@HPAVQThreadData@@@Z @ 3792 NONAME ; void QCoreApplicationPrivate::sendPostedEvents(class QObject *, int, class QThreadData *) + ?staticMetaObject@QAbstractEventDispatcher@@2UQMetaObject@@B @ 3793 NONAME ; struct QMetaObject const QAbstractEventDispatcher::staticMetaObject + ?hasPendingEvents@QEventDispatcherSymbian@@UAE_NXZ @ 3794 NONAME ; bool QEventDispatcherSymbian::hasPendingEvents(void) + ??6@YA?AVQDebug@@V0@ABVQSizeF@@@Z @ 3795 NONAME ; class QDebug operator<<(class QDebug, class QSizeF const &) + ??0QRect@@QAE@ABVQPoint@@ABVQSize@@@Z @ 3796 NONAME ; QRect::QRect(class QPoint const &, class QSize const &) + ??0QAbstractItemModel@@QAE@PAVQObject@@@Z @ 3797 NONAME ; QAbstractItemModel::QAbstractItemModel(class QObject *) + ?root@QDir@@SA?AV1@XZ @ 3798 NONAME ; class QDir QDir::root(void) + ?compare@QStringRef@@QBEHVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 3799 NONAME ; int QStringRef::compare(class QLatin1String, enum Qt::CaseSensitivity) const + ??MQUrl@@QBE_NABV0@@Z @ 3800 NONAME ; bool QUrl::operator<(class QUrl const &) const + ?tr@QSignalMapper@@SA?AVQString@@PBD0H@Z @ 3801 NONAME ; class QString QSignalMapper::tr(char const *, char const *, int) + ?qHBNewFace@@YAPAUHB_FaceRec_@@PAXP6A?AW4HB_Error@@0IPAEPAI@Z@Z @ 3802 NONAME ; struct HB_FaceRec_ * qHBNewFace(void *, enum HB_Error (*)(void *, unsigned int, unsigned char *, unsigned int *)) + ?replace@QByteArray@@QAEAAV1@ABV1@PBD@Z @ 3803 NONAME ; class QByteArray & QByteArray::replace(class QByteArray const &, char const *) + ?setFileNameAndVersion@QLibrary@@QAEXABVQString@@H@Z @ 3804 NONAME ; void QLibrary::setFileNameAndVersion(class QString const &, int) + ?aliases@QTextCodec@@UBE?AV?$QList@VQByteArray@@@@XZ @ 3805 NONAME ; class QList QTextCodec::aliases(void) const + ??0QBitArray@@QAE@XZ @ 3806 NONAME ; QBitArray::QBitArray(void) + ?writeEndElement@QXmlStreamWriter@@QAEXXZ @ 3807 NONAME ; void QXmlStreamWriter::writeEndElement(void) + ?endInsertRows@QAbstractItemModel@@IAEXXZ @ 3808 NONAME ; void QAbstractItemModel::endInsertRows(void) + ?qIsFinite@@YA_NM@Z @ 3809 NONAME ; bool qIsFinite(float) + ?d_func@QParallelAnimationGroup@@AAEPAVQParallelAnimationGroupPrivate@@XZ @ 3810 NONAME ; class QParallelAnimationGroupPrivate * QParallelAnimationGroup::d_func(void) + ?shortMonthName@QDate@@SA?AVQString@@HW4MonthNameType@1@@Z @ 3811 NONAME ; class QString QDate::shortMonthName(int, enum QDate::MonthNameType) + ?remove@QFile@@QAE_NXZ @ 3812 NONAME ; bool QFile::remove(void) + ??0QResource@@QAE@ABVQString@@ABVQLocale@@@Z @ 3813 NONAME ; QResource::QResource(class QString const &, class QLocale const &) + ?direction@QChar@@SA?AW4Direction@1@G@Z @ 3814 NONAME ; enum QChar::Direction QChar::direction(unsigned short) + ?testAndSetOrdered@QBasicAtomicInt@@QAE_NHH@Z @ 3815 NONAME ; bool QBasicAtomicInt::testAndSetOrdered(int, int) + ?directionChanged@QAbstractAnimation@@IAEXW4Direction@1@@Z @ 3816 NONAME ; void QAbstractAnimation::directionChanged(enum QAbstractAnimation::Direction) + ?encodedQuery@QUrl@@QBE?AVQByteArray@@XZ @ 3817 NONAME ; class QByteArray QUrl::encodedQuery(void) const + ?toDate@QLocale@@QBE?AVQDate@@ABVQString@@W4FormatType@1@@Z @ 3818 NONAME ; class QDate QLocale::toDate(class QString const &, enum QLocale::FormatType) const + ?append@QListData@@QAEPAPAXXZ @ 3819 NONAME ; void * * QListData::append(void) + ?exists@QFile@@QBE_NXZ @ 3820 NONAME ; bool QFile::exists(void) const + ?setCodecForLocale@QTextCodec@@SAXPAV1@@Z @ 3821 NONAME ; void QTextCodec::setCodecForLocale(class QTextCodec *) + ?trUtf8@QAbstractState@@SA?AVQString@@PBD0@Z @ 3822 NONAME ; class QString QAbstractState::trUtf8(char const *, char const *) + ?qt_metacast@QAbstractListModel@@UAEPAXPBD@Z @ 3823 NONAME ; void * QAbstractListModel::qt_metacast(char const *) + ?setUrl@QUrl@@QAEXABVQString@@@Z @ 3824 NONAME ; void QUrl::setUrl(class QString const &) + ?expiryTimeout@QThreadPool@@QBEHXZ @ 3825 NONAME ; int QThreadPool::expiryTimeout(void) const + ??0QRect@@QAE@HHHH@Z @ 3826 NONAME ; QRect::QRect(int, int, int, int) + ?compare@QStringRef@@SAHABV1@VQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 3827 NONAME ; int QStringRef::compare(class QStringRef const &, class QLatin1String, enum Qt::CaseSensitivity) + ?staticMetaObject@QEvent@@2UQMetaObject@@B @ 3828 NONAME ; struct QMetaObject const QEvent::staticMetaObject + ?size@QXmlStreamStringRef@@QBEHXZ @ 3829 NONAME ; int QXmlStreamStringRef::size(void) const + ?staticMetaObject@QThreadPool@@2UQMetaObject@@B @ 3830 NONAME ; struct QMetaObject const QThreadPool::staticMetaObject + ?terminate@QThread@@QAEXXZ @ 3831 NONAME ; void QThread::terminate(void) + ?bytesAvailable@QIODevice@@UBE_JXZ @ 3832 NONAME ; long long QIODevice::bytesAvailable(void) const + ??0QXmlStreamWriter@@QAE@PAVQString@@@Z @ 3833 NONAME ; QXmlStreamWriter::QXmlStreamWriter(class QString *) + ?addMSecs@QTime@@QBE?AV1@H@Z @ 3834 NONAME ; class QTime QTime::addMSecs(int) const + ?setFileName@QAbstractFileEngine@@UAEXABVQString@@@Z @ 3835 NONAME ; void QAbstractFileEngine::setFileName(class QString const &) + ??6QTextStream@@QAEAAV0@H@Z @ 3836 NONAME ; class QTextStream & QTextStream::operator<<(int) + ?p1@QLine@@QBE?AVQPoint@@XZ @ 3837 NONAME ; class QPoint QLine::p1(void) const + ?qUncompress@@YA?AVQByteArray@@PBEH@Z @ 3838 NONAME ; class QByteArray qUncompress(unsigned char const *, int) + ?toString@QLocale@@QBE?AVQString@@ABVQTime@@W4FormatType@1@@Z @ 3839 NONAME ; class QString QLocale::toString(class QTime const &, enum QLocale::FormatType) const + ?maybeRegister@QEventTransitionPrivate@@QAEXXZ @ 3840 NONAME ; void QEventTransitionPrivate::maybeRegister(void) + ??9QLine@@QBE_NABV0@@Z @ 3841 NONAME ; bool QLine::operator!=(class QLine const &) const + ?idealThreadCount@QThread@@SAHXZ @ 3842 NONAME ; int QThread::idealThreadCount(void) + ??AQByteArray@@QBEDI@Z @ 3843 NONAME ; char QByteArray::operator[](unsigned int) const + ?tryAcquire@QSemaphore@@QAE_NH@Z @ 3844 NONAME ; bool QSemaphore::tryAcquire(int) + ??0QLineF@@QAE@ABVQPointF@@0@Z @ 3845 NONAME ; QLineF::QLineF(class QPointF const &, class QPointF const &) + ?columnCount@QAbstractListModel@@EBEHABVQModelIndex@@@Z @ 3846 NONAME ; int QAbstractListModel::columnCount(class QModelIndex const &) const + ?d_func@QAbstractFileEngine@@ABEPBVQAbstractFileEnginePrivate@@XZ @ 3847 NONAME ; class QAbstractFileEnginePrivate const * QAbstractFileEngine::d_func(void) const + ?peek@QIODevice@@QAE?AVQByteArray@@_J@Z @ 3848 NONAME ; class QByteArray QIODevice::peek(long long) + ?stackSize@QThread@@QBEIXZ @ 3849 NONAME ; unsigned int QThread::stackSize(void) const + ?height@QSize@@QBEHXZ @ 3850 NONAME ; int QSize::height(void) const + ?row@QCharRef@@QBEEXZ @ 3851 NONAME ; unsigned char QCharRef::row(void) const + ??0QSequentialAnimationGroup@@QAE@PAVQObject@@@Z @ 3852 NONAME ; QSequentialAnimationGroup::QSequentialAnimationGroup(class QObject *) + ??0QVariant@@QAE@ABVQString@@@Z @ 3853 NONAME ; QVariant::QVariant(class QString const &) + ?singleShot@QTimer@@SAXHPAVQObject@@PBD@Z @ 3854 NONAME ; void QTimer::singleShot(int, class QObject *, char const *) + ?qt_sine_table@@3QBMB @ 3855 NONAME ; float const * const qt_sine_table + ?data@QResource@@QBEPBEXZ @ 3856 NONAME ; unsigned char const * QResource::data(void) const + ?fileChanged@QFileSystemWatcher@@IAEXABVQString@@@Z @ 3857 NONAME ; void QFileSystemWatcher::fileChanged(class QString const &) + ?addSecs@QDateTime@@QBE?AV1@H@Z @ 3858 NONAME ; class QDateTime QDateTime::addSecs(int) const + ?setCaseSensitivity@QStringMatcher@@QAEXW4CaseSensitivity@Qt@@@Z @ 3859 NONAME ; void QStringMatcher::setCaseSensitivity(enum Qt::CaseSensitivity) + ?d_func@QSettings@@ABEPBVQSettingsPrivate@@XZ @ 3860 NONAME ; class QSettingsPrivate const * QSettings::d_func(void) const + ?d_func@QFactoryLoader@@AAEPAVQFactoryLoaderPrivate@@XZ @ 3861 NONAME ; class QFactoryLoaderPrivate * QFactoryLoader::d_func(void) + ?isFinal@QStateMachinePrivate@@SA_NPBVQAbstractState@@@Z @ 3862 NONAME ; bool QStateMachinePrivate::isFinal(class QAbstractState const *) + ??0QTextCodec@@IAE@XZ @ 3863 NONAME ; QTextCodec::QTextCodec(void) + ??6@YA?AVQDebug@@V0@ABVQLineF@@@Z @ 3864 NONAME ; class QDebug operator<<(class QDebug, class QLineF const &) + ??NQByteRef@@QBE_ND@Z @ 3865 NONAME ; bool QByteRef::operator<=(char) const + ?toHash@QVariant@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 3866 NONAME ; class QHash QVariant::toHash(void) const + ?beginGroup@QSettings@@QAEXABVQString@@@Z @ 3867 NONAME ; void QSettings::beginGroup(class QString const &) + ?x@QRect@@QBEHXZ @ 3868 NONAME ; int QRect::x(void) const + ?metaObject@QAbstractAnimation@@UBEPBUQMetaObject@@XZ @ 3869 NONAME ; struct QMetaObject const * QAbstractAnimation::metaObject(void) const + ??0QSettings@@QAE@ABVQString@@0PAVQObject@@@Z @ 3870 NONAME ; QSettings::QSettings(class QString const &, class QString const &, class QObject *) + ??AQString@@QBE?BVQChar@@H@Z @ 3871 NONAME ; class QChar const QString::operator[](int) const + ?translate@QLineF@@QAEXMM@Z @ 3872 NONAME ; void QLineF::translate(float, float) + ?valueForTime@QTimeLine@@UBEMH@Z @ 3873 NONAME ; float QTimeLine::valueForTime(int) const + ?getStaticMetaObject@QBuffer@@SAABUQMetaObject@@XZ @ 3874 NONAME ; struct QMetaObject const & QBuffer::getStaticMetaObject(void) + ?trUtf8@QFactoryLoader@@SA?AVQString@@PBD0@Z @ 3875 NONAME ; class QString QFactoryLoader::trUtf8(char const *, char const *) + ?fallbacksEnabled@QSettings@@QBE_NXZ @ 3876 NONAME ; bool QSettings::fallbacksEnabled(void) const + ?currentPath@QFSFileEngine@@SA?AVQString@@ABV2@@Z @ 3877 NONAME ; class QString QFSFileEngine::currentPath(class QString const &) + ??8QByteArray@@QBE_NABVQString@@@Z @ 3878 NONAME ; bool QByteArray::operator==(class QString const &) const + ?event@QFinalState@@MAE_NPAVQEvent@@@Z @ 3879 NONAME ; bool QFinalState::event(class QEvent *) + ?setColorData@QMimeData@@QAEXABVQVariant@@@Z @ 3880 NONAME ; void QMimeData::setColorData(class QVariant const &) + ?sourceState@QAbstractTransition@@QBEPAVQState@@XZ @ 3881 NONAME ; class QState * QAbstractTransition::sourceState(void) const + ?valueForProgress@QEasingCurve@@QBEMM@Z @ 3882 NONAME ; float QEasingCurve::valueForProgress(float) const + ?fill@QByteArray@@QAEAAV1@DH@Z @ 3883 NONAME ; class QByteArray & QByteArray::fill(char, int) + ?realloc@QString@@AAEXH@Z @ 3884 NONAME ; void QString::realloc(int) + ?text@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 3885 NONAME ; class QStringRef QXmlStreamReader::text(void) const + ?QStringList_join@QtPrivate@@YA?AVQString@@PBVQStringList@@ABV2@@Z @ 3886 NONAME ; class QString QtPrivate::QStringList_join(class QStringList const *, class QString const &) + ?toNextBoundary@QTextBoundaryFinder@@QAEHXZ @ 3887 NONAME ; int QTextBoundaryFinder::toNextBoundary(void) + ?simplified@QByteArray@@QBE?AV1@XZ @ 3888 NONAME ; class QByteArray QByteArray::simplified(void) const + ?replace@QString@@QAEAAV1@HHABV1@@Z @ 3889 NONAME ; class QString & QString::replace(int, int, class QString const &) + ??PQDateTime@@QBE_NABV0@@Z @ 3890 NONAME ; bool QDateTime::operator>=(class QDateTime const &) const + ?isValid@QRect@@QBE_NXZ @ 3891 NONAME ; bool QRect::isValid(void) const + ?dtdName@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 3892 NONAME ; class QStringRef QXmlStreamReader::dtdName(void) const + ?unregisterTransition@QStateMachinePrivate@@QAEXPAVQAbstractTransition@@@Z @ 3893 NONAME ; void QStateMachinePrivate::unregisterTransition(class QAbstractTransition *) + ??1QXmlStreamAttributes@@QAE@XZ @ 3894 NONAME ; QXmlStreamAttributes::~QXmlStreamAttributes(void) + ?toUpper@QString@@QBE?AV1@XZ @ 3895 NONAME ; class QString QString::toUpper(void) const + ??0QChar@@QAE@UQLatin1Char@@@Z @ 3896 NONAME ; QChar::QChar(struct QLatin1Char) + ?detach@QString@@QAEXXZ @ 3897 NONAME ; void QString::detach(void) + ?moveBottom@QRect@@QAEXH@Z @ 3898 NONAME ; void QRect::moveBottom(int) + ??0QDebug@@QAE@ABV0@@Z @ 3899 NONAME ; QDebug::QDebug(class QDebug const &) + ?fileName@QPluginLoader@@QBE?AVQString@@XZ @ 3900 NONAME ; class QString QPluginLoader::fileName(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQSize@@@Z @ 3901 NONAME ; class QDataStream & operator>>(class QDataStream &, class QSize &) + ?qHBFreeFace@@YAXPAUHB_FaceRec_@@@Z @ 3902 NONAME ; void qHBFreeFace(struct HB_FaceRec_ *) + ?replace@QString@@QAEAAV1@VQChar@@ABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 3903 NONAME ; class QString & QString::replace(class QChar, class QLatin1String const &, enum Qt::CaseSensitivity) + ?map@QAbstractFileEngine@@QAEPAE_J0W4MemoryMapFlags@QFile@@@Z @ 3904 NONAME ; unsigned char * QAbstractFileEngine::map(long long, long long, enum QFile::MemoryMapFlags) + ??1QXmlStreamNamespaceDeclaration@@QAE@XZ @ 3905 NONAME ; QXmlStreamNamespaceDeclaration::~QXmlStreamNamespaceDeclaration(void) + ?setFallbacksEnabled@QSettings@@QAEX_N@Z @ 3906 NONAME ; void QSettings::setFallbacksEnabled(bool) + ?setWidth@QRect@@QAEXH@Z @ 3907 NONAME ; void QRect::setWidth(int) + ?expandedTo@QSize@@QBE?AV1@ABV1@@Z @ 3908 NONAME ; class QSize QSize::expandedTo(class QSize const &) const + ??PQString@@QBE_NABVQLatin1String@@@Z @ 3909 NONAME ; bool QString::operator>=(class QLatin1String const &) const + ?writeStartDocument@QXmlStreamWriter@@QAEXXZ @ 3910 NONAME ; void QXmlStreamWriter::writeStartDocument(void) + ?compare@QString@@SAHABV1@ABVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 3911 NONAME ; int QString::compare(class QString const &, class QLatin1String const &, enum Qt::CaseSensitivity) + ??1QTextStream@@UAE@XZ @ 3912 NONAME ; QTextStream::~QTextStream(void) + ??1QXmlStreamWriter@@QAE@XZ @ 3913 NONAME ; QXmlStreamWriter::~QXmlStreamWriter(void) + ?staticMetaObject@QTimer@@2UQMetaObject@@B @ 3914 NONAME ; struct QMetaObject const QTimer::staticMetaObject + ?fromBase64@QByteArray@@SA?AV1@ABV1@@Z @ 3915 NONAME ; class QByteArray QByteArray::fromBase64(class QByteArray const &) + ??6QDebug@@QAEAAV0@VQChar@@@Z @ 3916 NONAME ; class QDebug & QDebug::operator<<(class QChar) + ?toString@QLocale@@QBE?AVQString@@NDH@Z @ 3917 NONAME ; class QString QLocale::toString(double, char, int) const + ??9QBasicAtomicInt@@QBE_NH@Z @ 3918 NONAME ; bool QBasicAtomicInt::operator!=(int) const + ?d_func@QThread@@ABEPBVQThreadPrivate@@XZ @ 3919 NONAME ; class QThreadPrivate const * QThread::d_func(void) const + ?setRect@QRectF@@QAEXMMMM@Z @ 3920 NONAME ; void QRectF::setRect(float, float, float, float) + ?setTop@QRect@@QAEXH@Z @ 3921 NONAME ; void QRect::setTop(int) + ?writeTextElement@QXmlStreamWriter@@QAEXABVQString@@00@Z @ 3922 NONAME ; void QXmlStreamWriter::writeTextElement(class QString const &, class QString const &, class QString const &) + ?removePostedEvents@QCoreApplication@@SAXPAVQObject@@H@Z @ 3923 NONAME ; void QCoreApplication::removePostedEvents(class QObject *, int) + ?setY@QPoint@@QAEXH@Z @ 3924 NONAME ; void QPoint::setY(int) + ?hasFragment@QUrl@@QBE_NXZ @ 3925 NONAME ; bool QUrl::hasFragment(void) const + ?qDebug@@YA?AVQDebug@@XZ @ 3926 NONAME ; class QDebug qDebug(void) + ??1QThreadPool@@UAE@XZ @ 3927 NONAME ; QThreadPool::~QThreadPool(void) + ?setEasingCurve@QVariantAnimation@@QAEXABVQEasingCurve@@@Z @ 3928 NONAME ; void QVariantAnimation::setEasingCurve(class QEasingCurve const &) + ??0QHBufC@@QAE@XZ @ 3929 NONAME ; QHBufC::QHBufC(void) + ??0QVariant@@QAE@XZ @ 3930 NONAME ; QVariant::QVariant(void) + ??0QFileInfo@@QAE@XZ @ 3931 NONAME ; QFileInfo::QFileInfo(void) + ??5@YAAAVQDataStream@@AAV0@AAVQRectF@@@Z @ 3932 NONAME ; class QDataStream & operator>>(class QDataStream &, class QRectF &) + ?codec@QTextStream@@QBEPAVQTextCodec@@XZ @ 3933 NONAME ; class QTextCodec * QTextStream::codec(void) const + ?data@QGenericArgument@@QBEPAXXZ @ 3934 NONAME ; void * QGenericArgument::data(void) const + ?united@QRect@@QBE?AV1@ABV1@@Z @ 3935 NONAME ; class QRect QRect::united(class QRect const &) const + ?isHighSurrogate@QChar@@QBE_NXZ @ 3936 NONAME ; bool QChar::isHighSurrogate(void) const + ?qt_metacast@QSocketNotifier@@UAEPAXPBD@Z @ 3937 NONAME ; void * QSocketNotifier::qt_metacast(char const *) + ?entryList@QDir@@QBE?AVQStringList@@ABV2@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@@Z @ 3938 NONAME ; class QStringList QDir::entryList(class QStringList const &, class QFlags, class QFlags) const + ?toUInt@QVariant@@QBEIPA_N@Z @ 3939 NONAME ; unsigned int QVariant::toUInt(bool *) const + ?q_func@QObjectPrivate@@AAEPAVQObject@@XZ @ 3940 NONAME ; class QObject * QObjectPrivate::q_func(void) + ?toAscii@QChar@@QBEDXZ @ 3941 NONAME ; char QChar::toAscii(void) const + ?unregisterEventTransition@QStateMachinePrivate@@QAEXPAVQEventTransition@@@Z @ 3942 NONAME ; void QStateMachinePrivate::unregisterEventTransition(class QEventTransition *) + ?hasMirrored@QChar@@QBE_NXZ @ 3943 NONAME ; bool QChar::hasMirrored(void) const + ?finished@QThread@@IAEXXZ @ 3944 NONAME ; void QThread::finished(void) + ??4QBasicAtomicInt@@QAEAAV0@H@Z @ 3945 NONAME ; class QBasicAtomicInt & QBasicAtomicInt::operator=(int) + ?isRelative@QDir@@QBE_NXZ @ 3946 NONAME ; bool QDir::isRelative(void) const + ?size@QFile@@UBE_JXZ @ 3947 NONAME ; long long QFile::size(void) const + ?location@QLibraryInfo@@SA?AVQString@@W4LibraryLocation@1@@Z @ 3948 NONAME ; class QString QLibraryInfo::location(enum QLibraryInfo::LibraryLocation) + ?name@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 3949 NONAME ; class QStringRef QXmlStreamReader::name(void) const + ?rightRef@QString@@QBE?AVQStringRef@@H@Z @ 3950 NONAME ; class QStringRef QString::rightRef(int) const + ?registerTimer@QEventDispatcherSymbian@@UAEXHHPAVQObject@@@Z @ 3951 NONAME ; void QEventDispatcherSymbian::registerTimer(int, int, class QObject *) + ?contains@QRect@@QBE_NABV1@_N@Z @ 3952 NONAME ; bool QRect::contains(class QRect const &, bool) const + ?push_front@QByteArray@@QAEXABV1@@Z @ 3953 NONAME ; void QByteArray::push_front(class QByteArray const &) + ?signature@QMetaMethod@@QBEPBDXZ @ 3954 NONAME ; char const * QMetaMethod::signature(void) const + ?valueChanged@QVariantAnimation@@IAEXABVQVariant@@@Z @ 3955 NONAME ; void QVariantAnimation::valueChanged(class QVariant const &) + ??6@YAAAVQDataStream@@AAV0@ABVQBitArray@@@Z @ 3956 NONAME ; class QDataStream & operator<<(class QDataStream &, class QBitArray const &) + ?qt_metacall@QThread@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3957 NONAME ; int QThread::qt_metacall(enum QMetaObject::Call, int, void * *) + ?callOnTransition@QAbstractTransitionPrivate@@UAEXPAVQEvent@@@Z @ 3958 NONAME ; void QAbstractTransitionPrivate::callOnTransition(class QEvent *) + ??6@YA?AVQDebug@@V0@PBVQObject@@@Z @ 3959 NONAME ; class QDebug operator<<(class QDebug, class QObject const *) + ??UQRect@@QBE?AV0@ABV0@@Z @ 3960 NONAME ; class QRect QRect::operator|(class QRect const &) const + ?metaObject@QAbstractItemModel@@UBEPBUQMetaObject@@XZ @ 3961 NONAME ; struct QMetaObject const * QAbstractItemModel::metaObject(void) const + ?applicationPid@QCoreApplication@@SA_JXZ @ 3962 NONAME ; long long QCoreApplication::applicationPid(void) + ??0QBitArray@@QAE@H_N@Z @ 3963 NONAME ; QBitArray::QBitArray(int, bool) + ??ZQPoint@@QAEAAV0@ABV0@@Z @ 3964 NONAME ; class QPoint & QPoint::operator-=(class QPoint const &) + ?toggleBit@QBitArray@@QAE_NH@Z @ 3965 NONAME ; bool QBitArray::toggleBit(int) + ??_EQFSFileEngine@@UAE@I@Z @ 3966 NONAME ; QFSFileEngine::~QFSFileEngine(unsigned int) + ?constEnd@QByteArray@@QBEPBDXZ @ 3967 NONAME ; char const * QByteArray::constEnd(void) const + ?setOvershoot@QEasingCurve@@QAEXM@Z @ 3968 NONAME ; void QEasingCurve::setOvershoot(float) + ??6@YAAAVQDataStream@@AAV0@ABVQRectF@@@Z @ 3969 NONAME ; class QDataStream & operator<<(class QDataStream &, class QRectF const &) + ?detach_helper@QHashData@@QAEPAU1@P6AXPAUNode@1@PAX@ZP6AX0@ZH@Z @ 3970 NONAME ; struct QHashData * QHashData::detach_helper(void (*)(struct QHashData::Node *, void *), void (*)(struct QHashData::Node *), int) + ??0QSystemLocale@@AAE@_N@Z @ 3971 NONAME ; QSystemLocale::QSystemLocale(bool) + ?data@QHBufC@@QBEPBVHBufC16@@XZ @ 3972 NONAME ; class HBufC16 const * QHBufC::data(void) const + ?setFileName@QFile@@QAEXABVQString@@@Z @ 3973 NONAME ; void QFile::setFileName(class QString const &) + ??5@YAAAVQDataStream@@AAV0@AAVQBitArray@@@Z @ 3974 NONAME ; class QDataStream & operator>>(class QDataStream &, class QBitArray &) + ?parent@QAbstractListModel@@EBE?AVQModelIndex@@ABV2@@Z @ 3975 NONAME ; class QModelIndex QAbstractListModel::parent(class QModelIndex const &) const + ?tokenType@QXmlStreamReader@@QBE?AW4TokenType@1@XZ @ 3976 NONAME ; enum QXmlStreamReader::TokenType QXmlStreamReader::tokenType(void) const + ?cleanConnectionLists@QObjectPrivate@@QAEXXZ @ 3977 NONAME ; void QObjectPrivate::cleanConnectionLists(void) + ?expand@QByteArray@@AAEXH@Z @ 3978 NONAME ; void QByteArray::expand(int) + ?refresh@QDir@@QBEXXZ @ 3979 NONAME ; void QDir::refresh(void) const + ?symLinkTarget@QFile@@SA?AVQString@@ABV2@@Z @ 3980 NONAME ; class QString QFile::symLinkTarget(class QString const &) + ?trUtf8@QStateMachine@@SA?AVQString@@PBD0@Z @ 3981 NONAME ; class QString QStateMachine::trUtf8(char const *, char const *) + ?fileName@QFileInfo@@QBE?AVQString@@XZ @ 3982 NONAME ; class QString QFileInfo::fileName(void) const + ?arg@QString@@QBE?AV1@HHHABVQChar@@@Z @ 3983 NONAME ; class QString QString::arg(int, int, int, class QChar const &) const + ?replace@QByteArray@@QAEAAV1@ABV1@0@Z @ 3984 NONAME ; class QByteArray & QByteArray::replace(class QByteArray const &, class QByteArray const &) + ?resolveEntity@QXmlStreamEntityResolver@@UAE?AVQString@@ABV2@0@Z @ 3985 NONAME ; class QString QXmlStreamEntityResolver::resolveEntity(class QString const &, class QString const &) + ?angle@QLineF@@QBEMABV1@@Z @ 3986 NONAME ; float QLineF::angle(class QLineF const &) const + ??0QSharedData@@QAE@XZ @ 3987 NONAME ; QSharedData::QSharedData(void) + ?disconnectNotify@QObject@@MAEXPBD@Z @ 3988 NONAME ; void QObject::disconnectNotify(char const *) + ?insertColumn@QAbstractItemModel@@QAE_NHABVQModelIndex@@@Z @ 3989 NONAME ; bool QAbstractItemModel::insertColumn(int, class QModelIndex const &) + ?removeAllQueryItems@QUrl@@QAEXABVQString@@@Z @ 3990 NONAME ; void QUrl::removeAllQueryItems(class QString const &) + ?mibEnum@QFontLaoCodec@@UBEHXZ @ 3991 NONAME ; int QFontLaoCodec::mibEnum(void) const + ?metaObject@QPluginLoader@@UBEPBUQMetaObject@@XZ @ 3992 NONAME ; struct QMetaObject const * QPluginLoader::metaObject(void) const + ?addAnimation@QAbstractTransition@@QAEXPAVQAbstractAnimation@@@Z @ 3993 NONAME ; void QAbstractTransition::addAnimation(class QAbstractAnimation *) + ??5QDataStream@@QAEAAV0@AA_J@Z @ 3994 NONAME ; class QDataStream & QDataStream::operator>>(long long &) + ?translate@QLineF@@QAEXABVQPointF@@@Z @ 3995 NONAME ; void QLineF::translate(class QPointF const &) + ?contains@QRectF@@QBE_NABV1@@Z @ 3996 NONAME ; bool QRectF::contains(class QRectF const &) const + ??6@YAAAVQDataStream@@AAV0@ABVQDate@@@Z @ 3997 NONAME ; class QDataStream & operator<<(class QDataStream &, class QDate const &) + ?unicodeVersion@QCharRef@@QBE?AW4UnicodeVersion@QChar@@XZ @ 3998 NONAME ; enum QChar::UnicodeVersion QCharRef::unicodeVersion(void) const + ?enterStates@QStateMachinePrivate@@QAE?AV?$QList@PAVQAbstractState@@@@PAVQEvent@@ABV?$QList@PAVQAbstractTransition@@@@@Z @ 3999 NONAME ; class QList QStateMachinePrivate::enterStates(class QEvent *, class QList const &) + ?value@QXmlStreamAttribute@@QBE?AVQStringRef@@XZ @ 4000 NONAME ; class QStringRef QXmlStreamAttribute::value(void) const + ?exit@QCoreApplication@@SAXH@Z @ 4001 NONAME ; void QCoreApplication::exit(int) + ?mapped@QSignalMapper@@IAEXH@Z @ 4002 NONAME ; void QSignalMapper::mapped(int) + ?setX@QPointF@@QAEXM@Z @ 4003 NONAME ; void QPointF::setX(float) + ??0QUrl@@QAE@ABVQString@@W4ParsingMode@0@@Z @ 4004 NONAME ; QUrl::QUrl(class QString const &, enum QUrl::ParsingMode) + ?awake@QAbstractEventDispatcher@@IAEXXZ @ 4005 NONAME ; void QAbstractEventDispatcher::awake(void) + ??0QLocale@@QAE@ABV0@@Z @ 4006 NONAME ; QLocale::QLocale(class QLocale const &) + ??5@YAAAVQDataStream@@AAV0@AAVQByteArray@@@Z @ 4007 NONAME ; class QDataStream & operator>>(class QDataStream &, class QByteArray &) + ?sendThroughApplicationEventFilters@QCoreApplicationPrivate@@QAE_NPAVQObject@@PAVQEvent@@@Z @ 4008 NONAME ; bool QCoreApplicationPrivate::sendThroughApplicationEventFilters(class QObject *, class QEvent *) + ?dataChanged@QAbstractItemModel@@IAEXABVQModelIndex@@0@Z @ 4009 NONAME ; void QAbstractItemModel::dataChanged(class QModelIndex const &, class QModelIndex const &) + ??1QTextCodec@@MAE@XZ @ 4010 NONAME ; QTextCodec::~QTextCodec(void) + ?rheight@QSizeF@@QAEAAMXZ @ 4011 NONAME ; float & QSizeF::rheight(void) + ?extension@QFSFileEngine@@UAE_NW4Extension@QAbstractFileEngine@@PBVExtensionOption@3@PAVExtensionReturn@3@@Z @ 4012 NONAME ; bool QFSFileEngine::extension(enum QAbstractFileEngine::Extension, class QAbstractFileEngine::ExtensionOption const *, class QAbstractFileEngine::ExtensionReturn *) + ?internalSafetyCheckAdd@QtSharedPointer@@YAXPDX@Z @ 4013 NONAME ; void QtSharedPointer::internalSafetyCheckAdd(void const volatile *) + ?publicId@QXmlStreamNotationDeclaration@@QBE?AVQStringRef@@XZ @ 4014 NONAME ; class QStringRef QXmlStreamNotationDeclaration::publicId(void) const + ??0QFSFileEngine@@IAE@AAVQFSFileEnginePrivate@@@Z @ 4015 NONAME ; QFSFileEngine::QFSFileEngine(class QFSFileEnginePrivate &) + ?parameterTypes@QMetaMethod@@QBE?AV?$QList@VQByteArray@@@@XZ @ 4016 NONAME ; class QList QMetaMethod::parameterTypes(void) const + ?setPosition@QTextBoundaryFinder@@QAEXH@Z @ 4017 NONAME ; void QTextBoundaryFinder::setPosition(int) + ?constBegin@QByteArray@@QBEPBDXZ @ 4018 NONAME ; char const * QByteArray::constBegin(void) const + ?digitValue@QCharRef@@QBEHXZ @ 4019 NONAME ; int QCharRef::digitValue(void) const + ?toTitleCase@QChar@@SAGG@Z @ 4020 NONAME ; unsigned short QChar::toTitleCase(unsigned short) + ?removed@QChildEvent@@QBE_NXZ @ 4021 NONAME ; bool QChildEvent::removed(void) const + ?generateByteOrderMark@QTextStream@@QBE_NXZ @ 4022 NONAME ; bool QTextStream::generateByteOrderMark(void) const + ?index@QAbstractTableModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 4023 NONAME ; class QModelIndex QAbstractTableModel::index(int, int, class QModelIndex const &) const + ?buildKey@QLibraryInfo@@SA?AVQString@@XZ @ 4024 NONAME ; class QString QLibraryInfo::buildKey(void) + ?getDate@QDate@@QAEXPAH00@Z @ 4025 NONAME ; void QDate::getDate(int *, int *, int *) + ?errorString@QUrl@@QBE?AVQString@@XZ @ 4026 NONAME ; class QString QUrl::errorString(void) const + ?setTargetObject@QPropertyAnimation@@QAEXPAVQObject@@@Z @ 4027 NONAME ; void QPropertyAnimation::setTargetObject(class QObject *) + ?getStaticMetaObject@QVariantAnimation@@SAABUQMetaObject@@XZ @ 4028 NONAME ; struct QMetaObject const & QVariantAnimation::getStaticMetaObject(void) + ?setApplicationVersion@QCoreApplication@@SAXABVQString@@@Z @ 4029 NONAME ; void QCoreApplication::setApplicationVersion(class QString const &) + ?userType@QVariant@@QBEHXZ @ 4030 NONAME ; int QVariant::userType(void) const + ??0QChar@@QAE@XZ @ 4031 NONAME ; QChar::QChar(void) + ?filterEvent@QAbstractEventDispatcher@@QAE_NPAX@Z @ 4032 NONAME ; bool QAbstractEventDispatcher::filterEvent(void *) + ??0QStringMatcher@@QAE@PBVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4033 NONAME ; QStringMatcher::QStringMatcher(class QChar const *, int, enum Qt::CaseSensitivity) + ?hasText@QMimeData@@QBE_NXZ @ 4034 NONAME ; bool QMimeData::hasText(void) const + ?qFree@@YAXPAX@Z @ 4035 NONAME ; void qFree(void *) + ?fixed@@YAAAVQTextStream@@AAV1@@Z @ 4036 NONAME ; class QTextStream & fixed(class QTextStream &) + ?eventSource@QEventTransition@@QBEPAVQObject@@XZ @ 4037 NONAME ; class QObject * QEventTransition::eventSource(void) const + ?trUtf8@QObject@@SA?AVQString@@PBD0@Z @ 4038 NONAME ; class QString QObject::trUtf8(char const *, char const *) + ?moveTo@QRectF@@QAEXMM@Z @ 4039 NONAME ; void QRectF::moveTo(float, float) + ?keyValues@QVariantAnimation@@QBE?AV?$QVector@U?$QPair@MVQVariant@@@@@@XZ @ 4040 NONAME ; class QVector > QVariantAnimation::keyValues(void) const + ?isSender@QObjectPrivate@@QBE_NPBVQObject@@PBD@Z @ 4041 NONAME ; bool QObjectPrivate::isSender(class QObject const *, char const *) const + ?addLibraryPath@QCoreApplication@@SAXABVQString@@@Z @ 4042 NONAME ; void QCoreApplication::addLibraryPath(class QString const &) + ??6@YA?AVQDebug@@V0@ABVQEasingCurve@@@Z @ 4043 NONAME ; class QDebug operator<<(class QDebug, class QEasingCurve const &) + ?qt_metacall@QTimer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4044 NONAME ; int QTimer::qt_metacall(enum QMetaObject::Call, int, void * *) + ?parseSection@QDateTimeParser@@QBEHABVQDateTime@@HAAVQString@@AAHHAAW4State@1@PAH@Z @ 4045 NONAME ; int QDateTimeParser::parseSection(class QDateTime const &, int, class QString &, int &, int, enum QDateTimeParser::State &, int *) const + ?flags@QModelIndex@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 4046 NONAME ; class QFlags QModelIndex::flags(void) const + ??5QDataStream@@QAEAAV0@AAN@Z @ 4047 NONAME ; class QDataStream & QDataStream::operator>>(double &) + ?tr@QBuffer@@SA?AVQString@@PBD0@Z @ 4048 NONAME ; class QString QBuffer::tr(char const *, char const *) + ??0QDirIterator@@QAE@ABVQDir@@V?$QFlags@W4IteratorFlag@QDirIterator@@@@@Z @ 4049 NONAME ; QDirIterator::QDirIterator(class QDir const &, class QFlags) + ?noshowbase@@YAAAVQTextStream@@AAV1@@Z @ 4050 NONAME ; class QTextStream & noshowbase(class QTextStream &) + ?staticMetaObject@QSequentialAnimationGroup@@2UQMetaObject@@B @ 4051 NONAME ; struct QMetaObject const QSequentialAnimationGroup::staticMetaObject + ?second@QTime@@QBEHXZ @ 4052 NONAME ; int QTime::second(void) const + ?suffix@QFileInfo@@QBE?AVQString@@XZ @ 4053 NONAME ; class QString QFileInfo::suffix(void) const + ?wait@QWaitCondition@@QAE_NPAVQMutex@@K@Z @ 4054 NONAME ; bool QWaitCondition::wait(class QMutex *, unsigned long) + ?convert@QVariant@@QAE_NW4Type@1@@Z @ 4055 NONAME ; bool QVariant::convert(enum QVariant::Type) + ?begin@QString@@QAEPAVQChar@@XZ @ 4056 NONAME ; class QChar * QString::begin(void) + ?keyValueAt@QVariantAnimation@@QBE?AVQVariant@@M@Z @ 4057 NONAME ; class QVariant QVariantAnimation::keyValueAt(float) const + ?setSize@QRectF@@QAEXABVQSizeF@@@Z @ 4058 NONAME ; void QRectF::setSize(class QSizeF const &) + ?toCaseFolded@QChar@@QBE?AV1@XZ @ 4059 NONAME ; class QChar QChar::toCaseFolded(void) const + ??0QDate@@QAE@HHH@Z @ 4060 NONAME ; QDate::QDate(int, int, int) + ?eventTest@QEventTransition@@MAE_NPAVQEvent@@@Z @ 4061 NONAME ; bool QEventTransition::eventTest(class QEvent *) + ?isEndElement@QXmlStreamReader@@QBE_NXZ @ 4062 NONAME ; bool QXmlStreamReader::isEndElement(void) const + ??0QFile@@QAE@ABVQString@@@Z @ 4063 NONAME ; QFile::QFile(class QString const &) + ?columnsAboutToBeInserted@QAbstractItemModel@@AAEXABVQModelIndex@@HH@Z @ 4064 NONAME ; void QAbstractItemModel::columnsAboutToBeInserted(class QModelIndex const &, int, int) + ?getStaticMetaObject@QSequentialAnimationGroup@@SAABUQMetaObject@@XZ @ 4065 NONAME ; struct QMetaObject const & QSequentialAnimationGroup::getStaticMetaObject(void) + ?flush@QFSFileEngine@@UAE_NXZ @ 4066 NONAME ; bool QFSFileEngine::flush(void) + ?curveShape@QTimeLine@@QBE?AW4CurveShape@1@XZ @ 4067 NONAME ; enum QTimeLine::CurveShape QTimeLine::curveShape(void) const + ??6QTextStream@@QAEAAV0@VQBool@@@Z @ 4068 NONAME ; class QTextStream & QTextStream::operator<<(class QBool) + ?readChannelMode@QProcess@@QBE?AW4ProcessChannelMode@1@XZ @ 4069 NONAME ; enum QProcess::ProcessChannelMode QProcess::readChannelMode(void) const + ?cdUp@QDir@@QAE_NXZ @ 4070 NONAME ; bool QDir::cdUp(void) + ?QStringList_indexOf@QtPrivate@@YAHPBVQStringList@@ABVQRegExp@@H@Z @ 4071 NONAME ; int QtPrivate::QStringList_indexOf(class QStringList const *, class QRegExp const &, int) + ?qt_metacast@QFileSystemWatcher@@UAEPAXPBD@Z @ 4072 NONAME ; void * QFileSystemWatcher::qt_metacast(char const *) + ?writeBytes@QDataStream@@QAEAAV1@PBDI@Z @ 4073 NONAME ; class QDataStream & QDataStream::writeBytes(char const *, unsigned int) + ?metaObject@QTextCodecPlugin@@UBEPBUQMetaObject@@XZ @ 4074 NONAME ; struct QMetaObject const * QTextCodecPlugin::metaObject(void) const + ?writeComment@QXmlStreamWriter@@QAEXABVQString@@@Z @ 4075 NONAME ; void QXmlStreamWriter::writeComment(class QString const &) + ?d_func@QCoreApplication@@ABEPBVQCoreApplicationPrivate@@XZ @ 4076 NONAME ; class QCoreApplicationPrivate const * QCoreApplication::d_func(void) const + ?isNull@QRectF@@QBE_NXZ @ 4077 NONAME ; bool QRectF::isNull(void) const + ?qt_metacast@QParallelAnimationGroup@@UAEPAXPBD@Z @ 4078 NONAME ; void * QParallelAnimationGroup::qt_metacast(char const *) + ?setNameFilters@QDir@@QAEXABVQStringList@@@Z @ 4079 NONAME ; void QDir::setNameFilters(class QStringList const &) + ??1QEventTransition@@UAE@XZ @ 4080 NONAME ; QEventTransition::~QEventTransition(void) + ?getStaticMetaObject@QHistoryState@@SAABUQMetaObject@@XZ @ 4081 NONAME ; struct QMetaObject const & QHistoryState::getStaticMetaObject(void) + ?count@QStringRef@@QBEHXZ @ 4082 NONAME ; int QStringRef::count(void) const + ?baseName@QFileInfo@@QBE?AVQString@@XZ @ 4083 NONAME ; class QString QFileInfo::baseName(void) const + ??BQBitRef@@QBE_NXZ @ 4084 NONAME ; QBitRef::operator bool(void) const + ?isLetter@QCharRef@@QBE_NXZ @ 4085 NONAME ; bool QCharRef::isLetter(void) const + ?qt_message_output@@YAXW4QtMsgType@@PBD@Z @ 4086 NONAME ; void qt_message_output(enum QtMsgType, char const *) + ?metaObject@QObject@@UBEPBUQMetaObject@@XZ @ 4087 NONAME ; struct QMetaObject const * QObject::metaObject(void) const + ?childMode@QState@@QBE?AW4ChildMode@1@XZ @ 4088 NONAME ; enum QState::ChildMode QState::childMode(void) const + ??0QLibrary@@QAE@ABVQString@@0PAVQObject@@@Z @ 4089 NONAME ; QLibrary::QLibrary(class QString const &, class QString const &, class QObject *) + ??MQModelIndex@@QBE_NABV0@@Z @ 4090 NONAME ; bool QModelIndex::operator<(class QModelIndex const &) const + ?nameFiltersFromString@QDir@@SA?AVQStringList@@ABVQString@@@Z @ 4091 NONAME ; class QStringList QDir::nameFiltersFromString(class QString const &) + ?toInt@QLocale@@QBEHABVQString@@PA_NH@Z @ 4092 NONAME ; int QLocale::toInt(class QString const &, bool *, int) const + ?c@QLocale@@SA?AV1@XZ @ 4093 NONAME ; class QLocale QLocale::c(void) + ?start@QStateMachine@@QAEXXZ @ 4094 NONAME ; void QStateMachine::start(void) + ??0QChar@@QAE@F@Z @ 4095 NONAME ; QChar::QChar(short) + ??9QPersistentModelIndex@@QBE_NABV0@@Z @ 4096 NONAME ; bool QPersistentModelIndex::operator!=(class QPersistentModelIndex const &) const + ?name@QXmlStreamAttribute@@QBE?AVQStringRef@@XZ @ 4097 NONAME ; class QStringRef QXmlStreamAttribute::name(void) const + ?hasFailure@QTextDecoder@@QBE_NXZ @ 4098 NONAME ; bool QTextDecoder::hasFailure(void) const + ?tr@QTimeLine@@SA?AVQString@@PBD0@Z @ 4099 NONAME ; class QString QTimeLine::tr(char const *, char const *) + ??_EQTextStream@@UAE@I@Z @ 4100 NONAME ; QTextStream::~QTextStream(unsigned int) + ?replace@QString@@QAEAAV1@VQChar@@ABV1@W4CaseSensitivity@Qt@@@Z @ 4101 NONAME ; class QString & QString::replace(class QChar, class QString const &, enum Qt::CaseSensitivity) + ??1QBasicTimer@@QAE@XZ @ 4102 NONAME ; QBasicTimer::~QBasicTimer(void) + ?trUtf8@QThreadPool@@SA?AVQString@@PBD0@Z @ 4103 NONAME ; class QString QThreadPool::trUtf8(char const *, char const *) + ?locale@QResource@@QBE?AVQLocale@@XZ @ 4104 NONAME ; class QLocale QResource::locale(void) const + ??0QFileSystemWatcher@@QAE@ABVQStringList@@PAVQObject@@@Z @ 4105 NONAME ; QFileSystemWatcher::QFileSystemWatcher(class QStringList const &, class QObject *) + ??8QDateTime@@QBE_NABV0@@Z @ 4106 NONAME ; bool QDateTime::operator==(class QDateTime const &) const + ?qt_metacast@QFactoryLoader@@UAEPAXPBD@Z @ 4107 NONAME ; void * QFactoryLoader::qt_metacast(char const *) + ?setRoleNames@QAbstractItemModel@@IAEXABV?$QHash@HVQByteArray@@@@@Z @ 4108 NONAME ; void QAbstractItemModel::setRoleNames(class QHash const &) + ??_EQFile@@UAE@I@Z @ 4109 NONAME ; QFile::~QFile(unsigned int) + ?QStringList_lastIndexOf@QtPrivate@@YAHPBVQStringList@@ABVQRegExp@@H@Z @ 4110 NONAME ; int QtPrivate::QStringList_lastIndexOf(class QStringList const *, class QRegExp const &, int) + ??6@YA?AVQDebug@@V0@ABVQLine@@@Z @ 4111 NONAME ; class QDebug operator<<(class QDebug, class QLine const &) + ?setY@QRect@@QAEXH@Z @ 4112 NONAME ; void QRect::setY(int) + ?open@QFSFileEngine@@UAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 4113 NONAME ; bool QFSFileEngine::open(class QFlags) + ?qt_metacall@QFile@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4114 NONAME ; int QFile::qt_metacall(enum QMetaObject::Call, int, void * *) + ?customEvent@QObject@@MAEXPAVQEvent@@@Z @ 4115 NONAME ; void QObject::customEvent(class QEvent *) + ?insert@QByteArray@@QAEAAV1@HD@Z @ 4116 NONAME ; class QByteArray & QByteArray::insert(int, char) + ?canEncode@QTextCodec@@QBE_NVQChar@@@Z @ 4117 NONAME ; bool QTextCodec::canEncode(class QChar) const + ?wakeOne@QWaitCondition@@QAEXXZ @ 4118 NONAME ; void QWaitCondition::wakeOne(void) + ?disconnect@QMetaObject@@SA_NPBVQObject@@H0H@Z @ 4119 NONAME ; bool QMetaObject::disconnect(class QObject const *, int, class QObject const *, int) + ?create@QAbstractFileEngine@@SAPAV1@ABVQString@@@Z @ 4120 NONAME ; class QAbstractFileEngine * QAbstractFileEngine::create(class QString const &) + ?getStaticMetaObject@QPauseAnimation@@SAABUQMetaObject@@XZ @ 4121 NONAME ; struct QMetaObject const & QPauseAnimation::getStaticMetaObject(void) + ?qt_metacall@QAbstractAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4122 NONAME ; int QAbstractAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?notifyInternal@QCoreApplication@@AAE_NPAVQObject@@PAVQEvent@@@Z @ 4123 NONAME ; bool QCoreApplication::notifyInternal(class QObject *, class QEvent *) + ?map@QFile@@QAEPAE_J0W4MemoryMapFlags@1@@Z @ 4124 NONAME ; unsigned char * QFile::map(long long, long long, enum QFile::MemoryMapFlags) + ?rowsMoved@QAbstractItemModel@@AAEXABVQModelIndex@@HH0H@Z @ 4125 NONAME ; void QAbstractItemModel::rowsMoved(class QModelIndex const &, int, int, class QModelIndex const &, int) + ?encodedUserName@QUrl@@QBE?AVQByteArray@@XZ @ 4126 NONAME ; class QByteArray QUrl::encodedUserName(void) const + ?setData@QBuffer@@QAEXPBDH@Z @ 4127 NONAME ; void QBuffer::setData(char const *, int) + ?fileName@QFSFileEngine@@UBE?AVQString@@W4FileName@QAbstractFileEngine@@@Z @ 4128 NONAME ; class QString QFSFileEngine::fileName(enum QAbstractFileEngine::FileName) const + ?translate@QRectF@@QAEXMM@Z @ 4129 NONAME ; void QRectF::translate(float, float) + ?pos@QTextStream@@QBE_JXZ @ 4130 NONAME ; long long QTextStream::pos(void) const + ??6QDebug@@QAEAAV0@N@Z @ 4131 NONAME ; class QDebug & QDebug::operator<<(double) + ?d_func@QDir@@ABEPBVQDirPrivate@@XZ @ 4132 NONAME ; class QDirPrivate const * QDir::d_func(void) const + ??0QDateTimeParser@@QAE@W4Type@QVariant@@W4Context@0@@Z @ 4133 NONAME ; QDateTimeParser::QDateTimeParser(enum QVariant::Type, enum QDateTimeParser::Context) + ?metaObject@QAbstractTableModel@@UBEPBUQMetaObject@@XZ @ 4134 NONAME ; struct QMetaObject const * QAbstractTableModel::metaObject(void) const + ?transpose@QSize@@QAEXXZ @ 4135 NONAME ; void QSize::transpose(void) + ?d_func@QAbstractState@@AAEPAVQAbstractStatePrivate@@XZ @ 4136 NONAME ; class QAbstractStatePrivate * QAbstractState::d_func(void) + ?startDetached@QProcess@@SA_NABVQString@@ABVQStringList@@@Z @ 4137 NONAME ; bool QProcess::startDetached(class QString const &, class QStringList const &) + ?trUtf8@QHistoryState@@SA?AVQString@@PBD0H@Z @ 4138 NONAME ; class QString QHistoryState::trUtf8(char const *, char const *, int) + ?wakeUp@QEventDispatcherSymbian@@UAEXXZ @ 4139 NONAME ; void QEventDispatcherSymbian::wakeUp(void) + ?compare@QStringRef@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 4140 NONAME ; int QStringRef::compare(class QStringRef const &, enum Qt::CaseSensitivity) const + ?targetStates@QAbstractTransition@@QBE?AV?$QList@PAVQAbstractState@@@@XZ @ 4141 NONAME ; class QList QAbstractTransition::targetStates(void) const + ?lineBreakClass@QUnicodeTables@@YA?AW4LineBreakClass@1@I@Z @ 4142 NONAME ; enum QUnicodeTables::LineBreakClass QUnicodeTables::lineBreakClass(unsigned int) + ?insertColumns@QAbstractItemModel@@UAE_NHHABVQModelIndex@@@Z @ 4143 NONAME ; bool QAbstractItemModel::insertColumns(int, int, class QModelIndex const &) + ?d_func@QFSFileEngine@@ABEPBVQFSFileEnginePrivate@@XZ @ 4144 NONAME ; class QFSFileEnginePrivate const * QFSFileEngine::d_func(void) const + ?expand@QString@@AAEXH@Z @ 4145 NONAME ; void QString::expand(int) + ?event@QState@@MAE_NPAVQEvent@@@Z @ 4146 NONAME ; bool QState::event(class QEvent *) + ??OQLatin1String@@QBE_NABVQString@@@Z @ 4147 NONAME ; bool QLatin1String::operator>(class QString const &) const + ?propertyName@QPropertyAnimation@@QBE?AVQByteArray@@XZ @ 4148 NONAME ; class QByteArray QPropertyAnimation::propertyName(void) const + ?isSequential@QFSFileEngine@@UBE_NXZ @ 4149 NONAME ; bool QFSFileEngine::isSequential(void) const + ?qstrdup@@YAPADPBD@Z @ 4150 NONAME ; char * qstrdup(char const *) + ?start@QProcess@@QAEXABVQString@@ABVQStringList@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 4151 NONAME ; void QProcess::start(class QString const &, class QStringList const &, class QFlags) + ?replace@QString@@QAEAAV1@PBVQChar@@H0HW4CaseSensitivity@Qt@@@Z @ 4152 NONAME ; class QString & QString::replace(class QChar const *, int, class QChar const *, int, enum Qt::CaseSensitivity) + ?erase@QListData@@QAEPAPAXPAPAX@Z @ 4153 NONAME ; void * * QListData::erase(void * *) + ?shared_null@QByteArray@@0UData@1@A @ 4154 NONAME ; struct QByteArray::Data QByteArray::shared_null + ?environment@QProcess@@QBE?AVQStringList@@XZ @ 4155 NONAME ; class QStringList QProcess::environment(void) const + ?homePath@QDir@@SA?AVQString@@XZ @ 4156 NONAME ; class QString QDir::homePath(void) + ??0QUuid@@QAE@XZ @ 4157 NONAME ; QUuid::QUuid(void) + ?metaObject@QFileSystemWatcher@@UBEPBUQMetaObject@@XZ @ 4158 NONAME ; struct QMetaObject const * QFileSystemWatcher::metaObject(void) const + ?beginInsertRows@QAbstractItemModel@@IAEXABVQModelIndex@@HH@Z @ 4159 NONAME ; void QAbstractItemModel::beginInsertRows(class QModelIndex const &, int, int) + ?hasAttribute@QXmlStreamAttributes@@QBE_NABVQString@@@Z @ 4160 NONAME ; bool QXmlStreamAttributes::hasAttribute(class QString const &) const + ?localeAwareCompare@QString@@SAHABV1@ABVQStringRef@@@Z @ 4161 NONAME ; int QString::localeAwareCompare(class QString const &, class QStringRef const &) + ?push_front@QString@@QAEXVQChar@@@Z @ 4162 NONAME ; void QString::push_front(class QChar) + ?create@QTextCodecPlugin@@EAEPAVQTextCodec@@ABVQString@@@Z @ 4163 NONAME ; class QTextCodec * QTextCodecPlugin::create(class QString const &) + ?columnsAboutToBeInserted@QAbstractItemModelPrivate@@QAEXABVQModelIndex@@HH@Z @ 4164 NONAME ; void QAbstractItemModelPrivate::columnsAboutToBeInserted(class QModelIndex const &, int, int) + ?prepend@QString@@QAEAAV1@PBD@Z @ 4165 NONAME ; class QString & QString::prepend(char const *) + ?cast@QMetaObject@@QBEPAVQObject@@PAV2@@Z @ 4166 NONAME ; class QObject * QMetaObject::cast(class QObject *) const + ?size@QSharedMemory@@QBEHXZ @ 4167 NONAME ; int QSharedMemory::size(void) const + ?prepend@QListData@@QAEPAPAXXZ @ 4168 NONAME ; void * * QListData::prepend(void) + ?count@QByteArray@@QBEHPBD@Z @ 4169 NONAME ; int QByteArray::count(char const *) const + ?classInfoCount@QMetaObject@@QBEHXZ @ 4170 NONAME ; int QMetaObject::classInfoCount(void) const + ?nulTerminated@QByteArray@@ABE?AV1@XZ @ 4171 NONAME ; class QByteArray QByteArray::nulTerminated(void) const + ?staticInstances@QPluginLoader@@SA?AV?$QList@PAVQObject@@@@XZ @ 4172 NONAME ; class QList QPluginLoader::staticInstances(void) + ?enumeratorCount@QMetaObject@@QBEHXZ @ 4173 NONAME ; int QMetaObject::enumeratorCount(void) const + ?writeEmptyElement@QXmlStreamWriter@@QAEXABVQString@@@Z @ 4174 NONAME ; void QXmlStreamWriter::writeEmptyElement(class QString const &) + ?remove@QString@@QAEAAV1@ABVQRegExp@@@Z @ 4175 NONAME ; class QString & QString::remove(class QRegExp const &) + ?ws@@YAAAVQTextStream@@AAV1@@Z @ 4176 NONAME ; class QTextStream & ws(class QTextStream &) + ?open@QIODevice@@UAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 4177 NONAME ; bool QIODevice::open(class QFlags) + ?load@QVariant@@QAEXAAVQDataStream@@@Z @ 4178 NONAME ; void QVariant::load(class QDataStream &) + ?caseSensitive@QFSFileEngine@@UBE_NXZ @ 4179 NONAME ; bool QFSFileEngine::caseSensitive(void) const + ?data@QString@@QBEPBVQChar@@XZ @ 4180 NONAME ; class QChar const * QString::data(void) const + ?fromUnicode@QTextEncoder@@QAE?AVQByteArray@@ABVQString@@@Z @ 4181 NONAME ; class QByteArray QTextEncoder::fromUnicode(class QString const &) + ?constructorCount@QMetaObject@@QBEHXZ @ 4182 NONAME ; int QMetaObject::constructorCount(void) const + ?metaObject@QCoreApplication@@UBEPBUQMetaObject@@XZ @ 4183 NONAME ; struct QMetaObject const * QCoreApplication::metaObject(void) const + ?staticMetaObject@QNonContiguousByteDevice@@2UQMetaObject@@B @ 4184 NONAME ; struct QMetaObject const QNonContiguousByteDevice::staticMetaObject + ??0QPersistentModelIndex@@QAE@XZ @ 4185 NONAME ; QPersistentModelIndex::QPersistentModelIndex(void) + ?setPoints@QLineF@@QAEXABVQPointF@@0@Z @ 4186 NONAME ; void QLineF::setPoints(class QPointF const &, class QPointF const &) + ?fromPolar@QLineF@@SA?AV1@MM@Z @ 4187 NONAME ; class QLineF QLineF::fromPolar(float, float) + ??8QTime@@QBE_NABV0@@Z @ 4188 NONAME ; bool QTime::operator==(class QTime const &) const + ?setType@QEasingCurve@@QAEXW4Type@1@@Z @ 4189 NONAME ; void QEasingCurve::setType(enum QEasingCurve::Type) + ?tr@QMimeData@@SA?AVQString@@PBD0@Z @ 4190 NONAME ; class QString QMimeData::tr(char const *, char const *) + ?d_func@QHistoryState@@ABEPBVQHistoryStatePrivate@@XZ @ 4191 NONAME ; class QHistoryStatePrivate const * QHistoryState::d_func(void) const + ?size@QByteArray@@QBEHXZ @ 4192 NONAME ; int QByteArray::size(void) const + ?closingDown@QAbstractEventDispatcher@@UAEXXZ @ 4193 NONAME ; void QAbstractEventDispatcher::closingDown(void) + ?d_func@QSequentialAnimationGroup@@ABEPBVQSequentialAnimationGroupPrivate@@XZ @ 4194 NONAME ; class QSequentialAnimationGroupPrivate const * QSequentialAnimationGroup::d_func(void) const + ?isFile@QFileInfo@@QBE_NXZ @ 4195 NONAME ; bool QFileInfo::isFile(void) const + ??1QTimer@@UAE@XZ @ 4196 NONAME ; QTimer::~QTimer(void) + ?size@QResource@@QBE_JXZ @ 4197 NONAME ; long long QResource::size(void) const + ?size@QString@@QBEHXZ @ 4198 NONAME ; int QString::size(void) const + ?fileTime@QFSFileEngine@@UBE?AVQDateTime@@W4FileTime@QAbstractFileEngine@@@Z @ 4199 NONAME ; class QDateTime QFSFileEngine::fileTime(enum QAbstractFileEngine::FileTime) const + ?qt_metacall@QAnimationGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4200 NONAME ; int QAnimationGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ?toUShort@QByteArray@@QBEGPA_NH@Z @ 4201 NONAME ; unsigned short QByteArray::toUShort(bool *, int) const + ??_EQString@@QAE@I@Z @ 4202 NONAME ; QString::~QString(unsigned int) + ?readAllStandardError@QProcess@@QAE?AVQByteArray@@XZ @ 4203 NONAME ; class QByteArray QProcess::readAllStandardError(void) + ?cursorPosition@QDateTimeParser@@UBEHXZ @ 4204 NONAME ; int QDateTimeParser::cursorPosition(void) const + ??0QAbstractTransitionPrivate@@QAE@XZ @ 4205 NONAME ; QAbstractTransitionPrivate::QAbstractTransitionPrivate(void) + ??_EQAbstractEventDispatcherPrivate@@UAE@I@Z @ 4206 NONAME ; QAbstractEventDispatcherPrivate::~QAbstractEventDispatcherPrivate(unsigned int) + ?d_func@QPropertyAnimation@@AAEPAVQPropertyAnimationPrivate@@XZ @ 4207 NONAME ; class QPropertyAnimationPrivate * QPropertyAnimation::d_func(void) + ?userInfo@QUrl@@QBE?AVQString@@XZ @ 4208 NONAME ; class QString QUrl::userInfo(void) const + ??_EQAnimationGroup@@UAE@I@Z @ 4209 NONAME ; QAnimationGroup::~QAnimationGroup(unsigned int) + ?trUtf8@QSocketNotifier@@SA?AVQString@@PBD0@Z @ 4210 NONAME ; class QString QSocketNotifier::trUtf8(char const *, char const *) + ?unicodeVersion@QChar@@SA?AW4UnicodeVersion@1@I@Z @ 4211 NONAME ; enum QChar::UnicodeVersion QChar::unicodeVersion(unsigned int) + ?canFetchMore@QAbstractItemModel@@UBE_NABVQModelIndex@@@Z @ 4212 NONAME ; bool QAbstractItemModel::canFetchMore(class QModelIndex const &) const + ??0QAtomicInt@@QAE@H@Z @ 4213 NONAME ; QAtomicInt::QAtomicInt(int) + ??9QUrl@@QBE_NABV0@@Z @ 4214 NONAME ; bool QUrl::operator!=(class QUrl const &) const + ??0QChar@@QAE@W4SpecialCharacter@0@@Z @ 4215 NONAME ; QChar::QChar(enum QChar::SpecialCharacter) + ?localeAwareCompare_helper@QString@@CAHPBVQChar@@H0H@Z @ 4216 NONAME ; int QString::localeAwareCompare_helper(class QChar const *, int, class QChar const *, int) + ?contains@QRectF@@QBE_NABVQPointF@@@Z @ 4217 NONAME ; bool QRectF::contains(class QPointF const &) const + ??6@YA?AVQDebug@@V0@ABVQRect@@@Z @ 4218 NONAME ; class QDebug operator<<(class QDebug, class QRect const &) + ?errorString@QLibrary@@QBE?AVQString@@XZ @ 4219 NONAME ; class QString QLibrary::errorString(void) const + ?qt_metacall@QSequentialAnimationGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4220 NONAME ; int QSequentialAnimationGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ??4QBitArray@@QAEAAV0@ABV0@@Z @ 4221 NONAME ; class QBitArray & QBitArray::operator=(class QBitArray const &) + ?absoluteDir@QFileInfo@@QBE?AVQDir@@XZ @ 4222 NONAME ; class QDir QFileInfo::absoluteDir(void) const + ??5QDataStream@@QAEAAV0@AAG@Z @ 4223 NONAME ; class QDataStream & QDataStream::operator>>(unsigned short &) + ?trUtf8@QSocketNotifier@@SA?AVQString@@PBD0H@Z @ 4224 NONAME ; class QString QSocketNotifier::trUtf8(char const *, char const *, int) + ??1QModelIndex@@QAE@XZ @ 4225 NONAME ; QModelIndex::~QModelIndex(void) + ?tr@QAbstractListModel@@SA?AVQString@@PBD0H@Z @ 4226 NONAME ; class QString QAbstractListModel::tr(char const *, char const *, int) + ?createData@QMapData@@SAPAU1@XZ @ 4227 NONAME ; struct QMapData * QMapData::createData(void) + ?mapping@QSignalMapper@@QBEPAVQObject@@PAV2@@Z @ 4228 NONAME ; class QObject * QSignalMapper::mapping(class QObject *) const + ?state@QProcess@@QBE?AW4ProcessState@1@XZ @ 4229 NONAME ; enum QProcess::ProcessState QProcess::state(void) const + ?setInitialState@QState@@QAEXPAVQAbstractState@@@Z @ 4230 NONAME ; void QState::setInitialState(class QAbstractState *) + ?arg@QString@@QBE?AV1@ABV1@00000000@Z @ 4231 NONAME ; class QString QString::arg(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) const + ?expandedTo@QSizeF@@QBE?AV1@ABV1@@Z @ 4232 NONAME ; class QSizeF QSizeF::expandedTo(class QSizeF const &) const + ?tr@QVariantAnimation@@SA?AVQString@@PBD0@Z @ 4233 NONAME ; class QString QVariantAnimation::tr(char const *, char const *) + ?d_func@QEventTransition@@AAEPAVQEventTransitionPrivate@@XZ @ 4234 NONAME ; class QEventTransitionPrivate * QEventTransition::d_func(void) + ??8QBitArray@@QBE_NABV0@@Z @ 4235 NONAME ; bool QBitArray::operator==(class QBitArray const &) const + ?locale@QDateTimeParser@@UBE?AVQLocale@@XZ @ 4236 NONAME ; class QLocale QDateTimeParser::locale(void) const + ?digitToCLocale@QLocalePrivate@@QBEDABVQChar@@@Z @ 4237 NONAME ; char QLocalePrivate::digitToCLocale(class QChar const &) const + ?mapping@QSignalMapper@@QBEPAVQObject@@ABVQString@@@Z @ 4238 NONAME ; class QObject * QSignalMapper::mapping(class QString const &) const + ?qVersion@@YAPBDXZ @ 4239 NONAME ; char const * qVersion(void) + ?qt_qFindChild_helper@@YAPAVQObject@@PBV1@ABVQString@@ABUQMetaObject@@@Z @ 4240 NONAME ; class QObject * qt_qFindChild_helper(class QObject const *, class QString const &, struct QMetaObject const &) + ?setTerminationEnabled@QThread@@KAX_N@Z @ 4241 NONAME ; void QThread::setTerminationEnabled(bool) + ?setUtf16@QString@@QAEAAV1@PBGH@Z @ 4242 NONAME ; class QString & QString::setUtf16(unsigned short const *, int) + ?type@QEvent@@QBE?AW4Type@1@XZ @ 4243 NONAME ; enum QEvent::Type QEvent::type(void) const + ?isDetached@QVariant@@QBE_NXZ @ 4244 NONAME ; bool QVariant::isDetached(void) const + ??4QCharRef@@QAEAAV0@H@Z @ 4245 NONAME ; class QCharRef & QCharRef::operator=(int) + ?sibling@QAbstractItemModel@@QBE?AVQModelIndex@@HHABV2@@Z @ 4246 NONAME ; class QModelIndex QAbstractItemModel::sibling(int, int, class QModelIndex const &) const + ?replace@QByteArray@@QAEAAV1@HHABV1@@Z @ 4247 NONAME ; class QByteArray & QByteArray::replace(int, int, class QByteArray const &) + ?qt_metacast@QTemporaryFile@@UAEPAXPBD@Z @ 4248 NONAME ; void * QTemporaryFile::qt_metacast(char const *) + ?decimalPoint@QLocale@@QBE?AVQChar@@XZ @ 4249 NONAME ; class QChar QLocale::decimalPoint(void) const + ??8QPersistentModelIndex@@QBE_NABV0@@Z @ 4250 NONAME ; bool QPersistentModelIndex::operator==(class QPersistentModelIndex const &) const + ?updateCurrentTime@QSequentialAnimationGroup@@MAEXH@Z @ 4251 NONAME ; void QSequentialAnimationGroup::updateCurrentTime(int) + ?isLower@QCharRef@@QBE_NXZ @ 4252 NONAME ; bool QCharRef::isLower(void) const + ?removeEncodedQueryItem@QUrl@@QAEXABVQByteArray@@@Z @ 4253 NONAME ; void QUrl::removeEncodedQueryItem(class QByteArray const &) + ??8QString@@QBE_NPBD@Z @ 4254 NONAME ; bool QString::operator==(char const *) const + ?toReal@QVariant@@QBEMPA_N@Z @ 4255 NONAME ; float QVariant::toReal(bool *) const + ?contains@QByteArray@@QBE?AVQBool@@D@Z @ 4256 NONAME ; class QBool QByteArray::contains(char) const + ??0QChar@@QAE@ABV0@@Z @ 4257 NONAME ; QChar::QChar(class QChar const &) + ?instance@QPluginLoader@@QAEPAVQObject@@XZ @ 4258 NONAME ; class QObject * QPluginLoader::instance(void) + ?updateCurrentTime@QParallelAnimationGroup@@MAEXH@Z @ 4259 NONAME ; void QParallelAnimationGroup::updateCurrentTime(int) + ?startState@QStateMachinePrivate@@QAEPAVQState@@XZ @ 4260 NONAME ; class QState * QStateMachinePrivate::startState(void) + ??9QLatin1String@@QBE_NABVQString@@@Z @ 4261 NONAME ; bool QLatin1String::operator!=(class QString const &) const + ?resolve@QLibrary@@QAEPAXPBD@Z @ 4262 NONAME ; void * QLibrary::resolve(char const *) + ?setRow@QChar@@QAEXE@Z @ 4263 NONAME ; void QChar::setRow(unsigned char) + ?add@QObjectCleanupHandler@@QAEPAVQObject@@PAV2@@Z @ 4264 NONAME ; class QObject * QObjectCleanupHandler::add(class QObject *) + ?d_func@QSignalTransition@@AAEPAVQSignalTransitionPrivate@@XZ @ 4265 NONAME ; class QSignalTransitionPrivate * QSignalTransition::d_func(void) + ?qt_metacast@QState@@UAEPAXPBD@Z @ 4266 NONAME ; void * QState::qt_metacast(char const *) + ?setLine@QLine@@QAEXHHHH@Z @ 4267 NONAME ; void QLine::setLine(int, int, int, int) + ?month@QDate@@QBEHXZ @ 4268 NONAME ; int QDate::month(void) const + ?replace@QString@@QAEAAV1@ABVQRegExp@@ABV1@@Z @ 4269 NONAME ; class QString & QString::replace(class QRegExp const &, class QString const &) + ?initializeAnimation@QStateMachinePrivate@@QAE?AU?$QPair@V?$QList@PAVQAbstractAnimation@@@@V1@@@PAVQAbstractAnimation@@ABUQPropertyAssignment@@@Z @ 4270 NONAME ; struct QPair, class QList > QStateMachinePrivate::initializeAnimation(class QAbstractAnimation *, struct QPropertyAssignment const &) + ?at@QBitArray@@QBE_NH@Z @ 4271 NONAME ; bool QBitArray::at(int) const + ?waitForReadyRead@QIODevice@@UAE_NH@Z @ 4272 NONAME ; bool QIODevice::waitForReadyRead(int) + ?qt_metacall@QAbstractTableModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4273 NONAME ; int QAbstractTableModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?open@QFSFileEngine@@QAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@PAU__sFILE@@@Z @ 4274 NONAME ; bool QFSFileEngine::open(class QFlags, struct __sFILE *) + ??0QSize@@QAE@HH@Z @ 4275 NONAME ; QSize::QSize(int, int) + ??0QDateTime@@QAE@ABVQDate@@@Z @ 4276 NONAME ; QDateTime::QDateTime(class QDate const &) + ?d_func@QBuffer@@AAEPAVQBufferPrivate@@XZ @ 4277 NONAME ; class QBufferPrivate * QBuffer::d_func(void) + ?drives@QDir@@SA?AV?$QList@VQFileInfo@@@@XZ @ 4278 NONAME ; class QList QDir::drives(void) + ?begin@QByteArray@@QBEPBDXZ @ 4279 NONAME ; char const * QByteArray::begin(void) const + ?buffer@QBuffer@@QBEABVQByteArray@@XZ @ 4280 NONAME ; class QByteArray const & QBuffer::buffer(void) const + ?shared_null@QMapData@@2U1@A @ 4281 NONAME ; struct QMapData QMapData::shared_null + ?rightJustified@QByteArray@@QBE?AV1@HD_N@Z @ 4282 NONAME ; class QByteArray QByteArray::rightJustified(int, char, bool) const + ?push_back@QByteArray@@QAEXD@Z @ 4283 NONAME ; void QByteArray::push_back(char) + ?qt_metacall@QTimeLine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4284 NONAME ; int QTimeLine::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QThread@@SA?AVQString@@PBD0@Z @ 4285 NONAME ; class QString QThread::trUtf8(char const *, char const *) + ?isMinimal@QRegExp@@QBE_NXZ @ 4286 NONAME ; bool QRegExp::isMinimal(void) const + ?constBegin@QString@@QBEPBVQChar@@XZ @ 4287 NONAME ; class QChar const * QString::constBegin(void) const + ??0QAtomicInt@@QAE@ABV0@@Z @ 4288 NONAME ; QAtomicInt::QAtomicInt(class QAtomicInt const &) + ?setDecodingFunction@QFile@@SAXP6A?AVQString@@ABVQByteArray@@@Z@Z @ 4289 NONAME ; void QFile::setDecodingFunction(class QString (*)(class QByteArray const &)) + ??_EQSettings@@UAE@I@Z @ 4290 NONAME ; QSettings::~QSettings(unsigned int) + ??1QVariantAnimation@@UAE@XZ @ 4291 NONAME ; QVariantAnimation::~QVariantAnimation(void) + ?writeData@QFile@@MAE_JPBD_J@Z @ 4292 NONAME ; long long QFile::writeData(char const *, long long) + ?decompositionTag@QCharRef@@QBE?AW4Decomposition@QChar@@XZ @ 4293 NONAME ; enum QChar::Decomposition QCharRef::decompositionTag(void) const + ?setNum@QByteArray@@QAEAAV1@GH@Z @ 4294 NONAME ; class QByteArray & QByteArray::setNum(unsigned short, int) + ?removeQueryItem@QUrl@@QAEXABVQString@@@Z @ 4295 NONAME ; void QUrl::removeQueryItem(class QString const &) + ?event@QSettings@@MAE_NPAVQEvent@@@Z @ 4296 NONAME ; bool QSettings::event(class QEvent *) + ?addPath@QFileSystemWatcher@@QAEXABVQString@@@Z @ 4297 NONAME ; void QFileSystemWatcher::addPath(class QString const &) + ?d@QLocale@@ABEPBUQLocalePrivate@@XZ @ 4298 NONAME ; struct QLocalePrivate const * QLocale::d(void) const + ?d_func@QStateMachine@@ABEPBVQStateMachinePrivate@@XZ @ 4299 NONAME ; class QStateMachinePrivate const * QStateMachine::d_func(void) const + ?qualifiedName@QXmlStreamReader@@QBE?AVQStringRef@@XZ @ 4300 NONAME ; class QStringRef QXmlStreamReader::qualifiedName(void) const + ??NQString@@QBE_NABVQLatin1String@@@Z @ 4301 NONAME ; bool QString::operator<=(class QLatin1String const &) const + ?readChannelFinished@QIODevice@@IAEXXZ @ 4302 NONAME ; void QIODevice::readChannelFinished(void) + ?tr@QThread@@SA?AVQString@@PBD0H@Z @ 4303 NONAME ; class QString QThread::tr(char const *, char const *, int) + ?fill@QBitArray@@QAEX_NHH@Z @ 4304 NONAME ; void QBitArray::fill(bool, int, int) + ?trUtf8@QNonContiguousByteDevice@@SA?AVQString@@PBD0H@Z @ 4305 NONAME ; class QString QNonContiguousByteDevice::trUtf8(char const *, char const *, int) + ?unsLongLongToString@QLocalePrivate@@QBE?AVQString@@_KHHHI@Z @ 4306 NONAME ; class QString QLocalePrivate::unsLongLongToString(unsigned long long, int, int, int, unsigned int) const + ?toUtf8@QString@@QBE?AVQByteArray@@XZ @ 4307 NONAME ; class QByteArray QString::toUtf8(void) const + ?removeRow@QAbstractItemModel@@QAE_NHABVQModelIndex@@@Z @ 4308 NONAME ; bool QAbstractItemModel::removeRow(int, class QModelIndex const &) + ?hasChildren@QAbstractItemModel@@UBE_NABVQModelIndex@@@Z @ 4309 NONAME ; bool QAbstractItemModel::hasChildren(class QModelIndex const &) const + ?trUtf8@QSharedMemory@@SA?AVQString@@PBD0@Z @ 4310 NONAME ; class QString QSharedMemory::trUtf8(char const *, char const *) + ??0QStateMachinePrivate@@QAE@XZ @ 4311 NONAME ; QStateMachinePrivate::QStateMachinePrivate(void) + ?metaCall@QAbstractDynamicMetaObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4312 NONAME ; int QAbstractDynamicMetaObject::metaCall(enum QMetaObject::Call, int, void * *) + ?setDuration@QPauseAnimation@@QAEXH@Z @ 4313 NONAME ; void QPauseAnimation::setDuration(int) + ??0QSignalMapper@@QAE@PAVQObject@@@Z @ 4314 NONAME ; QSignalMapper::QSignalMapper(class QObject *) + ?qt_metacast@QNonContiguousByteDevice@@UAEPAXPBD@Z @ 4315 NONAME ; void * QNonContiguousByteDevice::qt_metacast(char const *) + ?staticMetaObject@QBuffer@@2UQMetaObject@@B @ 4316 NONAME ; struct QMetaObject const QBuffer::staticMetaObject + ?readProgress@QNonContiguousByteDevice@@IAEX_J0@Z @ 4317 NONAME ; void QNonContiguousByteDevice::readProgress(long long, long long) + ??0QByteArrayMatcher@@QAE@ABVQByteArray@@@Z @ 4318 NONAME ; QByteArrayMatcher::QByteArrayMatcher(class QByteArray const &) + ??0QSystemSemaphore@@QAE@ABVQString@@HW4AccessMode@0@@Z @ 4319 NONAME ; QSystemSemaphore::QSystemSemaphore(class QString const &, int, enum QSystemSemaphore::AccessMode) + ??6QDebug@@QAEAAV0@G@Z @ 4320 NONAME ; class QDebug & QDebug::operator<<(unsigned short) + ??0QPauseAnimation@@QAE@PAVQObject@@@Z @ 4321 NONAME ; QPauseAnimation::QPauseAnimation(class QObject *) + ?QStringList_replaceInStrings@QtPrivate@@YAXPAVQStringList@@ABVQString@@1W4CaseSensitivity@Qt@@@Z @ 4322 NONAME ; void QtPrivate::QStringList_replaceInStrings(class QStringList *, class QString const &, class QString const &, enum Qt::CaseSensitivity) + ?measurementSystem@QLocalePrivate@@QBE?AW4MeasurementSystem@QLocale@@XZ @ 4323 NONAME ; enum QLocale::MeasurementSystem QLocalePrivate::measurementSystem(void) const + ?nextNode@QHashData@@SAPAUNode@1@PAU21@@Z @ 4324 NONAME ; struct QHashData::Node * QHashData::nextNode(struct QHashData::Node *) + ??0QByteArray@@QAE@HW4Initialization@Qt@@@Z @ 4325 NONAME ; QByteArray::QByteArray(int, enum Qt::Initialization) + ?data@QPersistentModelIndex@@QBE?AVQVariant@@H@Z @ 4326 NONAME ; class QVariant QPersistentModelIndex::data(int) const + ??YQString@@QAEAAV0@ABVQStringRef@@@Z @ 4327 NONAME ; class QString & QString::operator+=(class QStringRef const &) + ?trUtf8@QState@@SA?AVQString@@PBD0@Z @ 4328 NONAME ; class QString QState::trUtf8(char const *, char const *) + ?event@QHistoryState@@MAE_NPAVQEvent@@@Z @ 4329 NONAME ; bool QHistoryState::event(class QEvent *) + ?removeMappings@QSignalMapper@@QAEXPAVQObject@@@Z @ 4330 NONAME ; void QSignalMapper::removeMappings(class QObject *) + ?QBasicAtomicPointer_fetchAndStoreOrdered@@YAPAXPCRAXPAX@Z @ 4331 NONAME ; void * QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *, void *) + ?removeTranslator@QCoreApplication@@SAXPAVQTranslator@@@Z @ 4332 NONAME ; void QCoreApplication::removeTranslator(class QTranslator *) + ??0QThreadStorageData@@QAE@P6AXPAX@Z@Z @ 4333 NONAME ; QThreadStorageData::QThreadStorageData(void (*)(void *)) + ??8QXmlStreamNamespaceDeclaration@@QBE_NABV0@@Z @ 4334 NONAME ; bool QXmlStreamNamespaceDeclaration::operator==(class QXmlStreamNamespaceDeclaration const &) const + ?readBytes@QDataStream@@QAEAAV1@AAPADAAI@Z @ 4335 NONAME ; class QDataStream & QDataStream::readBytes(char * &, unsigned int &) + ?permissions@QFileInfo@@QBE?AV?$QFlags@W4Permission@QFile@@@@XZ @ 4336 NONAME ; class QFlags QFileInfo::permissions(void) const + ??BQHBufC@@QAEPAVHBufC16@@XZ @ 4337 NONAME ; QHBufC::operator class HBufC16 *(void) + ?readData@QProcess@@MAE_JPAD_J@Z @ 4338 NONAME ; long long QProcess::readData(char *, long long) + ?qgetenv@@YA?AVQByteArray@@PBD@Z @ 4339 NONAME ; class QByteArray qgetenv(char const *) + ?zero@QLocalePrivate@@QBE?AVQChar@@XZ @ 4340 NONAME ; class QChar QLocalePrivate::zero(void) const + ?setP2@QLineF@@QAEXABVQPointF@@@Z @ 4341 NONAME ; void QLineF::setP2(class QPointF const &) + ?intersected@QRectF@@QBE?AV1@ABV1@@Z @ 4342 NONAME ; class QRectF QRectF::intersected(class QRectF const &) const + ??0QSize@@QAE@XZ @ 4343 NONAME ; QSize::QSize(void) + ?mirroredChar@QChar@@SAGG@Z @ 4344 NONAME ; unsigned short QChar::mirroredChar(unsigned short) + ?setHistoryType@QHistoryState@@QAEXW4HistoryType@1@@Z @ 4345 NONAME ; void QHistoryState::setHistoryType(enum QHistoryState::HistoryType) + ?hasFailure@QTextEncoder@@QBE_NXZ @ 4346 NONAME ; bool QTextEncoder::hasFailure(void) const + ?d_func@QSocketNotifier@@AAEPAVQObjectPrivate@@XZ @ 4347 NONAME ; class QObjectPrivate * QSocketNotifier::d_func(void) + ??0QString@@QAE@PBVQChar@@H@Z @ 4348 NONAME ; QString::QString(class QChar const *, int) + ?trUtf8@QTimer@@SA?AVQString@@PBD0H@Z @ 4349 NONAME ; class QString QTimer::trUtf8(char const *, char const *, int) + ?setStandardOutputProcess@QProcess@@QAEXPAV1@@Z @ 4350 NONAME ; void QProcess::setStandardOutputProcess(class QProcess *) + ?startsWith@QString@@QBE_NABVQChar@@W4CaseSensitivity@Qt@@@Z @ 4351 NONAME ; bool QString::startsWith(class QChar const &, enum Qt::CaseSensitivity) const + ??0QVariant@@QAE@_J@Z @ 4352 NONAME ; QVariant::QVariant(long long) + ?removeFormat@QMimeData@@QAEXABVQString@@@Z @ 4353 NONAME ; void QMimeData::removeFormat(class QString const &) + ?isTextModeEnabled@QIODevice@@QBE_NXZ @ 4354 NONAME ; bool QIODevice::isTextModeEnabled(void) const + ?numberFlags@QTextStream@@QBE?AV?$QFlags@W4NumberFlag@QTextStream@@@@XZ @ 4355 NONAME ; class QFlags QTextStream::numberFlags(void) const + ??6@YA?AVQDebug@@V0@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 4356 NONAME ; class QDebug operator<<(class QDebug, class QFlags) + ?staticMetaObject@QHistoryState@@2UQMetaObject@@B @ 4357 NONAME ; struct QMetaObject const QHistoryState::staticMetaObject + ?unlock@QSharedMemory@@QAE_NXZ @ 4358 NONAME ; bool QSharedMemory::unlock(void) + diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def new file mode 100644 index 0000000..4305346 --- /dev/null +++ b/src/s60installs/bwins/QtGuiu.def @@ -0,0 +1,12545 @@ +EXPORTS + ?d_func@QGraphicsItem@@ABEPBVQGraphicsItemPrivate@@XZ @ 1 NONAME ; class QGraphicsItemPrivate const * QGraphicsItem::d_func(void) const + ?setColumnWidth@QTreeView@@QAEXHH@Z @ 2 NONAME ; void QTreeView::setColumnWidth(int, int) + ?addItem@QToolBox@@QAEHPAVQWidget@@ABVQString@@@Z @ 3 NONAME ; int QToolBox::addItem(class QWidget *, class QString const &) + ?selectAll@QAbstractSpinBox@@QAEXXZ @ 4 NONAME ; void QAbstractSpinBox::selectAll(void) + ?checkedAction@QActionGroup@@QBEPAVQAction@@XZ @ 5 NONAME ; class QAction * QActionGroup::checkedAction(void) const + ?minimumSizeHint@QComboBox@@UBE?AVQSize@@XZ @ 6 NONAME ; class QSize QComboBox::minimumSizeHint(void) const + ?setIcon@QStandardItem@@QAEXABVQIcon@@@Z @ 7 NONAME ; void QStandardItem::setIcon(class QIcon const &) + ?d_func@QGraphicsBloomEffect@@AAEPAVQGraphicsBloomEffectPrivate@@XZ @ 8 NONAME ; class QGraphicsBloomEffectPrivate * QGraphicsBloomEffect::d_func(void) + ?normalize@QVector2D@@QAEXXZ @ 9 NONAME ; void QVector2D::normalize(void) + ?name@QColor@@QBE?AVQString@@XZ @ 10 NONAME ; class QString QColor::name(void) const + ?openPersistentEditor@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 11 NONAME ; void QListWidget::openPersistentEditor(class QListWidgetItem *) + ?updateGeometries@QTableView@@MAEXXZ @ 12 NONAME ; void QTableView::updateGeometries(void) + ?contextMenuEvent@QGraphicsView@@MAEXPAVQContextMenuEvent@@@Z @ 13 NONAME ; void QGraphicsView::contextMenuEvent(class QContextMenuEvent *) + ?clearLayout@QTextLayout@@QAEXXZ @ 14 NONAME ; void QTextLayout::clearLayout(void) + ?setOffset@QPixmapDropShadowFilter@@QAEXABVQPointF@@@Z @ 15 NONAME ; void QPixmapDropShadowFilter::setOffset(class QPointF const &) + ?setTextInteractionFlags@QLabel@@QAEXV?$QFlags@W4TextInteractionFlag@Qt@@@@@Z @ 16 NONAME ; void QLabel::setTextInteractionFlags(class QFlags) + ?pageBreakPolicy@QTextFrameFormat@@QBE?AV?$QFlags@W4PageBreakFlag@QTextFormat@@@@XZ @ 17 NONAME ; class QFlags QTextFrameFormat::pageBreakPolicy(void) const + ??0QStyleOptionHeader@@QAE@ABV0@@Z @ 18 NONAME ; QStyleOptionHeader::QStyleOptionHeader(class QStyleOptionHeader const &) + ??0QSlider@@QAE@PAVQWidget@@@Z @ 19 NONAME ; QSlider::QSlider(class QWidget *) + ?textList@QTextBlock@@QBEPAVQTextList@@XZ @ 20 NONAME ; class QTextList * QTextBlock::textList(void) const + ?takeAt@QDockWidgetLayout@@UAEPAVQLayoutItem@@H@Z @ 21 NONAME ; class QLayoutItem * QDockWidgetLayout::takeAt(int) + ?mouseReleaseEvent@QWidget@@MAEXPAVQMouseEvent@@@Z @ 22 NONAME ; void QWidget::mouseReleaseEvent(class QMouseEvent *) + ?tr@QStandardItemModel@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString QStandardItemModel::tr(char const *, char const *) + ?scaledSize@QImageReader@@QBE?AVQSize@@XZ @ 24 NONAME ; class QSize QImageReader::scaledSize(void) const + ?leaveModal_sys@QApplicationPrivate@@SAXPAVQWidget@@@Z @ 25 NONAME ; void QApplicationPrivate::leaveModal_sys(class QWidget *) + ?d_func@QUndoStack@@ABEPBVQUndoStackPrivate@@XZ @ 26 NONAME ; class QUndoStackPrivate const * QUndoStack::d_func(void) const + ??0QPictureIO@@QAE@PAVQIODevice@@PBD@Z @ 27 NONAME ; QPictureIO::QPictureIO(class QIODevice *, char const *) + ??_EQGraphicsSceneContextMenuEvent@@UAE@I@Z @ 28 NONAME ; QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent(unsigned int) + ?undo@QUndoStack@@QAEXXZ @ 29 NONAME ; void QUndoStack::undo(void) + ?setDateTime@QDateTimeEdit@@QAEXABVQDateTime@@@Z @ 30 NONAME ; void QDateTimeEdit::setDateTime(class QDateTime const &) + ??1QGraphicsSystemPlugin@@UAE@XZ @ 31 NONAME ; QGraphicsSystemPlugin::~QGraphicsSystemPlugin(void) + ?rowsInserted@QListView@@MAEXABVQModelIndex@@HH@Z @ 32 NONAME ; void QListView::rowsInserted(class QModelIndex const &, int, int) + ?popup@QCompleter@@QBEPAVQAbstractItemView@@XZ @ 33 NONAME ; class QAbstractItemView * QCompleter::popup(void) const + ?fixup@QSpinBox@@MBEXAAVQString@@@Z @ 34 NONAME ; void QSpinBox::fixup(class QString &) const + ?setStaticContents@QWindowSurface@@QAEXABVQRegion@@@Z @ 35 NONAME ; void QWindowSurface::setStaticContents(class QRegion const &) + ?isTristate@QCheckBox@@QBE_NXZ @ 36 NONAME ; bool QCheckBox::isTristate(void) const + ?setMinimumWidth@QGraphicsLayoutItem@@QAEXM@Z @ 37 NONAME ; void QGraphicsLayoutItem::setMinimumWidth(float) + ??_EQToolBarChangeEvent@@UAE@I@Z @ 38 NONAME ; QToolBarChangeEvent::~QToolBarChangeEvent(unsigned int) + ?invalidateBuffer_resizeHelper@QWidgetPrivate@@QAEXABVQPoint@@ABVQSize@@@Z @ 39 NONAME ; void QWidgetPrivate::invalidateBuffer_resizeHelper(class QPoint const &, class QSize const &) + ?setLabel@QProgressDialog@@QAEXPAVQLabel@@@Z @ 40 NONAME ; void QProgressDialog::setLabel(class QLabel *) + ?setStack@QUndoView@@QAEXPAVQUndoStack@@@Z @ 41 NONAME ; void QUndoView::setStack(class QUndoStack *) + ?setIsMemberOfGroup@QGraphicsItemPrivate@@QAEX_N@Z @ 42 NONAME ; void QGraphicsItemPrivate::setIsMemberOfGroup(bool) + ?quadTo@QPainterPath@@QAEXMMMM@Z @ 43 NONAME ; void QPainterPath::quadTo(float, float, float, float) + ?dragEnterEvent@QAbstractScrollArea@@MAEXPAVQDragEnterEvent@@@Z @ 44 NONAME ; void QAbstractScrollArea::dragEnterEvent(class QDragEnterEvent *) + ?setStatusTip@QAction@@QAEXABVQString@@@Z @ 45 NONAME ; void QAction::setStatusTip(class QString const &) + ?d_func@QGraphicsSceneContextMenuEvent@@ABEPBVQGraphicsSceneContextMenuEventPrivate@@XZ @ 46 NONAME ; class QGraphicsSceneContextMenuEventPrivate const * QGraphicsSceneContextMenuEvent::d_func(void) const + ?qt_metacast@QAbstractTextDocumentLayout@@UAEPAXPBD@Z @ 47 NONAME ; void * QAbstractTextDocumentLayout::qt_metacast(char const *) + ?verticalOffset@QListView@@MBEHXZ @ 48 NONAME ; int QListView::verticalOffset(void) const + ?staticMetaObject@QGraphicsProxyWidget@@2UQMetaObject@@B @ 49 NONAME ; struct QMetaObject const QGraphicsProxyWidget::staticMetaObject + ?deref@QPixmap@@AAEXXZ @ 50 NONAME ; void QPixmap::deref(void) + ?clearContents@QTableWidget@@QAEXXZ @ 51 NONAME ; void QTableWidget::clearContents(void) + ?selectionChanged@QListView@@MAEXABVQItemSelection@@0@Z @ 52 NONAME ; void QListView::selectionChanged(class QItemSelection const &, class QItemSelection const &) + ?takeRow@QStandardItemModel@@QAE?AV?$QList@PAVQStandardItem@@@@H@Z @ 53 NONAME ; class QList QStandardItemModel::takeRow(int) + ??BQPixmap@@QBE?AVQVariant@@XZ @ 54 NONAME ; QPixmap::operator class QVariant(void) const + ?tr@QGraphicsProxyWidget@@SA?AVQString@@PBD0H@Z @ 55 NONAME ; class QString QGraphicsProxyWidget::tr(char const *, char const *, int) + ?selectionStart@QLineControl@@QBEHXZ @ 56 NONAME ; int QLineControl::selectionStart(void) const + ??0QPicture@@IAE@AAVQPicturePrivate@@@Z @ 57 NONAME ; QPicture::QPicture(class QPicturePrivate &) + ??1QFontComboBox@@UAE@XZ @ 58 NONAME ; QFontComboBox::~QFontComboBox(void) + ?getStaticMetaObject@QCompleter@@SAABUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const & QCompleter::getStaticMetaObject(void) + ?addPage@QWizard@@QAEHPAVQWizardPage@@@Z @ 60 NONAME ; int QWizard::addPage(class QWizardPage *) + ?setSortCacheEnabled@QGraphicsScene@@QAEX_N@Z @ 61 NONAME ; void QGraphicsScene::setSortCacheEnabled(bool) + ?setGeometry_sys@QWidgetPrivate@@QAEXHHHH_N@Z @ 62 NONAME ; void QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + ?qt_metacast@QFileDialog@@UAEPAXPBD@Z @ 63 NONAME ; void * QFileDialog::qt_metacast(char const *) + ?fontLetterSpacing@QTextCharFormat@@QBEMXZ @ 64 NONAME ; float QTextCharFormat::fontLetterSpacing(void) const + ?x@QVector3D@@QBEMXZ @ 65 NONAME ; float QVector3D::x(void) const + ?tr@QCheckBox@@SA?AVQString@@PBD0H@Z @ 66 NONAME ; class QString QCheckBox::tr(char const *, char const *, int) + ?popupWidgets@QApplicationPrivate@@2PAV?$QList@PAVQWidget@@@@A @ 67 NONAME ; class QList * QApplicationPrivate::popupWidgets + ??8QMatrix4x4@@QBE_NABV0@@Z @ 68 NONAME ; bool QMatrix4x4::operator==(class QMatrix4x4 const &) const + ?getStaticMetaObject@QGridLayout@@SAABUQMetaObject@@XZ @ 69 NONAME ; struct QMetaObject const & QGridLayout::getStaticMetaObject(void) + ?setGridStyle@QTableView@@QAEXW4PenStyle@Qt@@@Z @ 70 NONAME ; void QTableView::setGridStyle(enum Qt::PenStyle) + ?cellActivated@QTableWidget@@IAEXHH@Z @ 71 NONAME ; void QTableWidget::cellActivated(int, int) + ?borderBrush@QTextFrameFormat@@QBE?AVQBrush@@XZ @ 72 NONAME ; class QBrush QTextFrameFormat::borderBrush(void) const + ?staticMetaObject@QToolBox@@2UQMetaObject@@B @ 73 NONAME ; struct QMetaObject const QToolBox::staticMetaObject + ?setMenu@QAction@@QAEXPAVQMenu@@@Z @ 74 NONAME ; void QAction::setMenu(class QMenu *) + ?metric@QPaintDevice@@MBEHW4PaintDeviceMetric@1@@Z @ 75 NONAME ; int QPaintDevice::metric(enum QPaintDevice::PaintDeviceMetric) const + ?color@QPen@@QBE?AVQColor@@XZ @ 76 NONAME ; class QColor QPen::color(void) const + ?setDoubleMaximum@QInputDialog@@QAEXN@Z @ 77 NONAME ; void QInputDialog::setDoubleMaximum(double) + ?quitOnLastWindowClosed@QApplication@@SA_NXZ @ 78 NONAME ; bool QApplication::quitOnLastWindowClosed(void) + ?tr@QDataWidgetMapper@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString QDataWidgetMapper::tr(char const *, char const *, int) + ?currentIndexChanged@QDataWidgetMapper@@IAEXH@Z @ 80 NONAME ; void QDataWidgetMapper::currentIndexChanged(int) + ??1QStyleHintReturn@@QAE@XZ @ 81 NONAME ; QStyleHintReturn::~QStyleHintReturn(void) + ??_EQWindowSurface@@UAE@I@Z @ 82 NONAME ; QWindowSurface::~QWindowSurface(unsigned int) + ?setStatusTip@QListWidgetItem@@QAEXABVQString@@@Z @ 83 NONAME ; void QListWidgetItem::setStatusTip(class QString const &) + ?appendColumn@QStandardItem@@QAEXABV?$QList@PAVQStandardItem@@@@@Z @ 84 NONAME ; void QStandardItem::appendColumn(class QList const &) + ?insertBlock@QTextCursor@@QAEXABVQTextBlockFormat@@ABVQTextCharFormat@@@Z @ 85 NONAME ; void QTextCursor::insertBlock(class QTextBlockFormat const &, class QTextCharFormat const &) + ?metaObject@QGraphicsOpacityEffect@@UBEPBUQMetaObject@@XZ @ 86 NONAME ; struct QMetaObject const * QGraphicsOpacityEffect::metaObject(void) const + ?focusNextPrevChild@QLabel@@MAE_N_N@Z @ 87 NONAME ; bool QLabel::focusNextPrevChild(bool) + ?metaObject@QSlider@@UBEPBUQMetaObject@@XZ @ 88 NONAME ; struct QMetaObject const * QSlider::metaObject(void) const + ?ensureBlockLayout@QPlainTextDocumentLayout@@QBEXABVQTextBlock@@@Z @ 89 NONAME ; void QPlainTextDocumentLayout::ensureBlockLayout(class QTextBlock const &) const + ?stroke@QPaintEngineEx@@UAEXABVQVectorPath@@ABVQPen@@@Z @ 90 NONAME ; void QPaintEngineEx::stroke(class QVectorPath const &, class QPen const &) + ?filtersChildEvents@QGraphicsItem@@QBE_NXZ @ 91 NONAME ; bool QGraphicsItem::filtersChildEvents(void) const + ?addWidget@QGraphicsScene@@QAEPAVQGraphicsProxyWidget@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 92 NONAME ; class QGraphicsProxyWidget * QGraphicsScene::addWidget(class QWidget *, class QFlags) + ?setWindowTitle_sys@QWidgetPrivate@@QAEXABVQString@@@Z @ 93 NONAME ; void QWidgetPrivate::setWindowTitle_sys(class QString const &) + ?setDirtyOpaqueRegion@QWidgetPrivate@@QAEXXZ @ 94 NONAME ; void QWidgetPrivate::setDirtyOpaqueRegion(void) + ??0QIcon@@QAE@PAVQIconEngineV2@@@Z @ 95 NONAME ; QIcon::QIcon(class QIconEngineV2 *) + ?qt_metacall@QFileSystemModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 96 NONAME ; int QFileSystemModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QGraphicsDropShadowEffect@@SAABUQMetaObject@@XZ @ 97 NONAME ; struct QMetaObject const & QGraphicsDropShadowEffect::getStaticMetaObject(void) + ?staticMetaObject@QGraphicsPixelizeEffect@@2UQMetaObject@@B @ 98 NONAME ; struct QMetaObject const QGraphicsPixelizeEffect::staticMetaObject + ?eraseRect@QPainter@@QAEXHHHH@Z @ 99 NONAME ; void QPainter::eraseRect(int, int, int, int) + ?gotFocus@QFocusEvent@@QBE_NXZ @ 100 NONAME ; bool QFocusEvent::gotFocus(void) const + ?setLayout@QWidget@@QAEXPAVQLayout@@@Z @ 101 NONAME ; void QWidget::setLayout(class QLayout *) + ?qt_metacast@QListWidget@@UAEPAXPBD@Z @ 102 NONAME ; void * QListWidget::qt_metacast(char const *) + ?isActive@QPainter@@QBE_NXZ @ 103 NONAME ; bool QPainter::isActive(void) const + ?drawLine@QPainter@@QAEXABVQLineF@@@Z @ 104 NONAME ; void QPainter::drawLine(class QLineF const &) + ?tr@QGraphicsWidget@@SA?AVQString@@PBD0H@Z @ 105 NONAME ; class QString QGraphicsWidget::tr(char const *, char const *, int) + ?hasHeightForWidth@QSizePolicy@@QBE_NXZ @ 106 NONAME ; bool QSizePolicy::hasHeightForWidth(void) const + ?metaObject@QPictureFormatPlugin@@UBEPBUQMetaObject@@XZ @ 107 NONAME ; struct QMetaObject const * QPictureFormatPlugin::metaObject(void) const + ?setColumnStretch@QGridLayout@@QAEXHH@Z @ 108 NONAME ; void QGridLayout::setColumnStretch(int, int) + ?mirrored@QImage@@QBE?AV1@_N0@Z @ 109 NONAME ; class QImage QImage::mirrored(bool, bool) const + ?createHandle@QSplitter@@MAEPAVQSplitterHandle@@XZ @ 110 NONAME ; class QSplitterHandle * QSplitter::createHandle(void) + ?metric@QRasterPixmapData@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 111 NONAME ; int QRasterPixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const + ??0QHideEvent@@QAE@XZ @ 112 NONAME ; QHideEvent::QHideEvent(void) + ?removeDockWidget@QMainWindow@@QAEXPAVQDockWidget@@@Z @ 113 NONAME ; void QMainWindow::removeDockWidget(class QDockWidget *) + ?calendarWidget@QDateTimeEdit@@QBEPAVQCalendarWidget@@XZ @ 114 NONAME ; class QCalendarWidget * QDateTimeEdit::calendarWidget(void) const + ?canRead@QImageReader@@QBE_NXZ @ 115 NONAME ; bool QImageReader::canRead(void) const + ?qt_metacall@QCheckBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 116 NONAME ; int QCheckBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?updatesEnabled@QWidget@@QBE_NXZ @ 117 NONAME ; bool QWidget::updatesEnabled(void) const + ?trUtf8@QStatusBar@@SA?AVQString@@PBD0@Z @ 118 NONAME ; class QString QStatusBar::trUtf8(char const *, char const *) + ??5@YAAAVQDataStream@@AAV0@AAVQPolygonF@@@Z @ 119 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPolygonF &) + ?clear@QUndoStack@@QAEXXZ @ 120 NONAME ; void QUndoStack::clear(void) + ??0QCursor@@QAE@W4CursorShape@Qt@@@Z @ 121 NONAME ; QCursor::QCursor(enum Qt::CursorShape) + ?setSizeGripEnabled@QDialog@@QAEX_N@Z @ 122 NONAME ; void QDialog::setSizeGripEnabled(bool) + ?tr@QListWidget@@SA?AVQString@@PBD0@Z @ 123 NONAME ; class QString QListWidget::tr(char const *, char const *) + ?setOverwriteMode@QPlainTextEdit@@QAEX_N@Z @ 124 NONAME ; void QPlainTextEdit::setOverwriteMode(bool) + ?focusPreviousChild@QWidget@@IAE_NXZ @ 125 NONAME ; bool QWidget::focusPreviousChild(void) + ?setDescription@QImageWriter@@QAEXABVQString@@@Z @ 126 NONAME ; void QImageWriter::setDescription(class QString const &) + ?createMimeDataFromSelection@QTextControl@@UBEPAVQMimeData@@XZ @ 127 NONAME ; class QMimeData * QTextControl::createMimeDataFromSelection(void) const + ?value@QColor@@QBEHXZ @ 128 NONAME ; int QColor::value(void) const + ??_EQShortcutEvent@@UAE@I@Z @ 129 NONAME ; QShortcutEvent::~QShortcutEvent(unsigned int) + ?tr@QTextBrowser@@SA?AVQString@@PBD0H@Z @ 130 NONAME ; class QString QTextBrowser::tr(char const *, char const *, int) + ?setIconProvider@QFileSystemModel@@QAEXPAVQFileIconProvider@@@Z @ 131 NONAME ; void QFileSystemModel::setIconProvider(class QFileIconProvider *) + ?setStrength@QGraphicsBloomEffect@@QAEXM@Z @ 132 NONAME ; void QGraphicsBloomEffect::setStrength(float) + ?map@QMatrix4x4@@QBE?AVQVector4D@@ABV2@@Z @ 133 NONAME ; class QVector4D QMatrix4x4::map(class QVector4D const &) const + ?clearSpans@QTableView@@QAEXXZ @ 134 NONAME ; void QTableView::clearSpans(void) + ?tr@QPanGesture@@SA?AVQString@@PBD0@Z @ 135 NONAME ; class QString QPanGesture::tr(char const *, char const *) + ?alignment@QGraphicsView@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 136 NONAME ; class QFlags QGraphicsView::alignment(void) const + ?alternatingRowColors@QAbstractItemView@@QBE_NXZ @ 137 NONAME ; bool QAbstractItemView::alternatingRowColors(void) const + ?sectionEntered@QHeaderView@@IAEXH@Z @ 138 NONAME ; void QHeaderView::sectionEntered(int) + ?setStretch@QBoxLayout@@QAEXHH@Z @ 139 NONAME ; void QBoxLayout::setStretch(int, int) + ?pos@QHoverEvent@@QBEABVQPoint@@XZ @ 140 NONAME ; class QPoint const & QHoverEvent::pos(void) const + ?tr@QMouseEventTransition@@SA?AVQString@@PBD0@Z @ 141 NONAME ; class QString QMouseEventTransition::tr(char const *, char const *) + ?initializePage@QWizardPage@@UAEXXZ @ 142 NONAME ; void QWizardPage::initializePage(void) + ?dragDropOverwriteMode@QAbstractItemView@@QBE_NXZ @ 143 NONAME ; bool QAbstractItemView::dragDropOverwriteMode(void) const + ?takeChildren@QTreeWidgetItem@@QAE?AV?$QList@PAVQTreeWidgetItem@@@@XZ @ 144 NONAME ; class QList QTreeWidgetItem::takeChildren(void) + ?AppDllUid@QS60MainApplication@@UBE?AVTUid@@XZ @ 145 NONAME ; class TUid QS60MainApplication::AppDllUid(void) const + ??0QStyleOptionFocusRect@@IAE@H@Z @ 146 NONAME ; QStyleOptionFocusRect::QStyleOptionFocusRect(int) + ?setAngle@QConicalGradient@@QAEXM@Z @ 147 NONAME ; void QConicalGradient::setAngle(float) + ??BQKeySequence@@QBE?AVQString@@XZ @ 148 NONAME ; QKeySequence::operator class QString(void) const + ?whatsThis@QTreeWidgetItem@@QBE?AVQString@@H@Z @ 149 NONAME ; class QString QTreeWidgetItem::whatsThis(int) const + ?setIconText@QAction@@QAEXABVQString@@@Z @ 150 NONAME ; void QAction::setIconText(class QString const &) + ?cursorBackward@QLineEdit@@QAEX_NH@Z @ 151 NONAME ; void QLineEdit::cursorBackward(bool, int) + ?setCompletionMode@QCompleter@@QAEXW4CompletionMode@1@@Z @ 152 NONAME ; void QCompleter::setCompletionMode(enum QCompleter::CompletionMode) + ?metaObject@QGroupBox@@UBEPBUQMetaObject@@XZ @ 153 NONAME ; struct QMetaObject const * QGroupBox::metaObject(void) const + ?redoText@QUndoStack@@QBE?AVQString@@XZ @ 154 NONAME ; class QString QUndoStack::redoText(void) const + ?dropEvent@QTableWidget@@MAEXPAVQDropEvent@@@Z @ 155 NONAME ; void QTableWidget::dropEvent(class QDropEvent *) + ?setPalette@QToolTip@@SAXABVQPalette@@@Z @ 156 NONAME ; void QToolTip::setPalette(class QPalette const &) + ?tr@QGraphicsPixelizeEffect@@SA?AVQString@@PBD0@Z @ 157 NONAME ; class QString QGraphicsPixelizeEffect::tr(char const *, char const *) + ?read@QImageReader@@QAE?AVQImage@@XZ @ 158 NONAME ; class QImage QImageReader::read(void) + ?tr@QPinchGesture@@SA?AVQString@@PBD0@Z @ 159 NONAME ; class QString QPinchGesture::tr(char const *, char const *) + ?setRadius@QRadialGradient@@QAEXM@Z @ 160 NONAME ; void QRadialGradient::setRadius(float) + ?d_func@QTabBar@@AAEPAVQTabBarPrivate@@XZ @ 161 NONAME ; class QTabBarPrivate * QTabBar::d_func(void) + ?width@QFontMetrics@@QBEHVQChar@@@Z @ 162 NONAME ; int QFontMetrics::width(class QChar) const + ?setCurrentCell@QTableWidget@@QAEXHHV?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 163 NONAME ; void QTableWidget::setCurrentCell(int, int, class QFlags) + ?metaObject@QDialog@@UBEPBUQMetaObject@@XZ @ 164 NONAME ; struct QMetaObject const * QDialog::metaObject(void) const + ?event@QComboBox@@UAE_NPAVQEvent@@@Z @ 165 NONAME ; bool QComboBox::event(class QEvent *) + ?labelAlignment@QFormLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 166 NONAME ; class QFlags QFormLayout::labelAlignment(void) const + ?changeEvent@QMenuBar@@MAEXPAVQEvent@@@Z @ 167 NONAME ; void QMenuBar::changeEvent(class QEvent *) + ?tr@QActionGroup@@SA?AVQString@@PBD0@Z @ 168 NONAME ; class QString QActionGroup::tr(char const *, char const *) + ?messageChanged@QStatusBar@@IAEXABVQString@@@Z @ 169 NONAME ; void QStatusBar::messageChanged(class QString const &) + ?mapToScene@QGestureEvent@@QBE?AVQPointF@@ABV2@@Z @ 170 NONAME ; class QPointF QGestureEvent::mapToScene(class QPointF const &) const + ?quality@QImageWriter@@QBEHXZ @ 171 NONAME ; int QImageWriter::quality(void) const + ?setGeometry@QSpacerItem@@UAEXABVQRect@@@Z @ 172 NONAME ; void QSpacerItem::setGeometry(class QRect const &) + ?isActive@QGraphicsItem@@QBE_NXZ @ 173 NONAME ; bool QGraphicsItem::isActive(void) const + ?d_func@QGraphicsLayout@@ABEPBVQGraphicsLayoutPrivate@@XZ @ 174 NONAME ; class QGraphicsLayoutPrivate const * QGraphicsLayout::d_func(void) const + ??0QSizePolicy@@QAE@W4Policy@0@0@Z @ 175 NONAME ; QSizePolicy::QSizePolicy(enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ??1QListView@@UAE@XZ @ 176 NONAME ; QListView::~QListView(void) + ?setReadOnly@QFileSystemModel@@QAEX_N@Z @ 177 NONAME ; void QFileSystemModel::setReadOnly(bool) + ??YQQuaternion@@QAEAAV0@ABV0@@Z @ 178 NONAME ; class QQuaternion & QQuaternion::operator+=(class QQuaternion const &) + ?focusNextPrevChild@QDateTimeEdit@@MAE_N_N@Z @ 179 NONAME ; bool QDateTimeEdit::focusNextPrevChild(bool) + ??4QPen@@QAEAAV0@ABV0@@Z @ 180 NONAME ; class QPen & QPen::operator=(class QPen const &) + ?itemAt@QTreeWidget@@QBEPAVQTreeWidgetItem@@ABVQPoint@@@Z @ 181 NONAME ; class QTreeWidgetItem * QTreeWidget::itemAt(class QPoint const &) const + ?setFont@QToolTip@@SAXABVQFont@@@Z @ 182 NONAME ; void QToolTip::setFont(class QFont const &) + ?staticMetaObject@QStyledItemDelegate@@2UQMetaObject@@B @ 183 NONAME ; struct QMetaObject const QStyledItemDelegate::staticMetaObject + ?paintEvent@QSizeGrip@@MAEXPAVQPaintEvent@@@Z @ 184 NONAME ; void QSizeGrip::paintEvent(class QPaintEvent *) + ?fromHsl@QColor@@SA?AV1@HHHH@Z @ 185 NONAME ; class QColor QColor::fromHsl(int, int, int, int) + ?d_func@QGraphicsPathItem@@AAEPAVQGraphicsPathItemPrivate@@XZ @ 186 NONAME ; class QGraphicsPathItemPrivate * QGraphicsPathItem::d_func(void) + ?isLayout@QGraphicsLayoutItem@@QBE_NXZ @ 187 NONAME ; bool QGraphicsLayoutItem::isLayout(void) const + ?trUtf8@QGraphicsColorizeEffect@@SA?AVQString@@PBD0@Z @ 188 NONAME ; class QString QGraphicsColorizeEffect::trUtf8(char const *, char const *) + ?hasChildren@QDirModel@@UBE_NABVQModelIndex@@@Z @ 189 NONAME ; bool QDirModel::hasChildren(class QModelIndex const &) const + ?qt_metacall@QLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 190 NONAME ; int QLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@QComboBox@@AAEPAVQComboBoxPrivate@@XZ @ 191 NONAME ; class QComboBoxPrivate * QComboBox::d_func(void) + ?startDrag@QListView@@MAEXV?$QFlags@W4DropAction@Qt@@@@@Z @ 192 NONAME ; void QListView::startDrag(class QFlags) + ?sliderValueFromPosition@QStyle@@SAHHHHH_N@Z @ 193 NONAME ; int QStyle::sliderValueFromPosition(int, int, int, int, bool) + ?activeAction@QMenu@@QBEPAVQAction@@XZ @ 194 NONAME ; class QAction * QMenu::activeAction(void) const + ??1QVBoxLayout@@UAE@XZ @ 195 NONAME ; QVBoxLayout::~QVBoxLayout(void) + ?toAffine@QMatrix4x4@@QBE?AVQMatrix@@XZ @ 196 NONAME ; class QMatrix QMatrix4x4::toAffine(void) const + ?executeImageHooks@QImagePixmapCleanupHooks@@SAX_J@Z @ 197 NONAME ; void QImagePixmapCleanupHooks::executeImageHooks(long long) + ?font@QGraphicsTextItem@@QBE?AVQFont@@XZ @ 198 NONAME ; class QFont QGraphicsTextItem::font(void) const + ?cursorRect@QLineControl@@QBE?AVQRect@@XZ @ 199 NONAME ; class QRect QLineControl::cursorRect(void) const + ?qt_metacall@QShortcut@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 200 NONAME ; int QShortcut::qt_metacall(enum QMetaObject::Call, int, void * *) + ?viewportEvent@QHeaderView@@MAE_NPAVQEvent@@@Z @ 201 NONAME ; bool QHeaderView::viewportEvent(class QEvent *) + ?staticMetaObject@QSpinBox@@2UQMetaObject@@B @ 202 NONAME ; struct QMetaObject const QSpinBox::staticMetaObject + ??_EQSyntaxHighlighter@@UAE@I@Z @ 203 NONAME ; QSyntaxHighlighter::~QSyntaxHighlighter(unsigned int) + ?hasAcceptableInput@QAbstractSpinBox@@QBE_NXZ @ 204 NONAME ; bool QAbstractSpinBox::hasAcceptableInput(void) const + ?sortIndicatorSection@QHeaderView@@QBEHXZ @ 205 NONAME ; int QHeaderView::sortIndicatorSection(void) const + ?scenePos@QGraphicsSceneDragDropEvent@@QBE?AVQPointF@@XZ @ 206 NONAME ; class QPointF QGraphicsSceneDragDropEvent::scenePos(void) const + ?top@QItemSelectionRange@@QBEHXZ @ 207 NONAME ; int QItemSelectionRange::top(void) const + ?setZValue@QGraphicsItem@@QAEXM@Z @ 208 NONAME ; void QGraphicsItem::setZValue(float) + ??1QShowEvent@@UAE@XZ @ 209 NONAME ; QShowEvent::~QShowEvent(void) + ?m22@QMatrix@@QBEMXZ @ 210 NONAME ; float QMatrix::m22(void) const + ??0QGraphicsProxyWidget@@QAE@PAVQGraphicsItem@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 211 NONAME ; QGraphicsProxyWidget::QGraphicsProxyWidget(class QGraphicsItem *, class QFlags) + ??6@YAAAVQDataStream@@AAV0@ABVQVector3D@@@Z @ 212 NONAME ; class QDataStream & operator<<(class QDataStream &, class QVector3D const &) + ?setDefaultStyleSheet@QTextDocument@@QAEXABVQString@@@Z @ 213 NONAME ; void QTextDocument::setDefaultStyleSheet(class QString const &) + ?moveTo@QPainterPath@@QAEXABVQPointF@@@Z @ 214 NONAME ; void QPainterPath::moveTo(class QPointF const &) + ?d_func@QMovie@@ABEPBVQMoviePrivate@@XZ @ 215 NONAME ; class QMoviePrivate const * QMovie::d_func(void) const + ?metaObject@QProgressBar@@UBEPBUQMetaObject@@XZ @ 216 NONAME ; struct QMetaObject const * QProgressBar::metaObject(void) const + ?trUtf8@QGraphicsScene@@SA?AVQString@@PBD0@Z @ 217 NONAME ; class QString QGraphicsScene::trUtf8(char const *, char const *) + ??1QActionGroup@@UAE@XZ @ 218 NONAME ; QActionGroup::~QActionGroup(void) + ?font@QListWidgetItem@@QBE?AVQFont@@XZ @ 219 NONAME ; class QFont QListWidgetItem::font(void) const + ?size@QTextDocument@@QBE?AVQSizeF@@XZ @ 220 NONAME ; class QSizeF QTextDocument::size(void) const + ?metaObject@QMovie@@UBEPBUQMetaObject@@XZ @ 221 NONAME ; struct QMetaObject const * QMovie::metaObject(void) const + ?cursorToX@QLineControl@@QBEMXZ @ 222 NONAME ; float QLineControl::cursorToX(void) const + ?anchorName@QTextCharFormat@@QBE?AVQString@@XZ @ 223 NONAME ; class QString QTextCharFormat::anchorName(void) const + ?select@QItemSelectionModel@@UAEXABVQModelIndex@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 224 NONAME ; void QItemSelectionModel::select(class QModelIndex const &, class QFlags) + ?restoreState@QSplitter@@QAE_NABVQByteArray@@@Z @ 225 NONAME ; bool QSplitter::restoreState(class QByteArray const &) + ?minimum@QAbstractSlider@@QBEHXZ @ 226 NONAME ; int QAbstractSlider::minimum(void) const + ?format@QImageReader@@QBE?AVQByteArray@@XZ @ 227 NONAME ; class QByteArray QImageReader::format(void) const + ?point@QPolygon@@QBE?AVQPoint@@H@Z @ 228 NONAME ; class QPoint QPolygon::point(int) const + ?fontStrikeOut@QTextCharFormat@@QBE_NXZ @ 229 NONAME ; bool QTextCharFormat::fontStrikeOut(void) const + ?qt_metacall@QDialogButtonBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 230 NONAME ; int QDialogButtonBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QDrag@@SA?AVQString@@PBD0H@Z @ 231 NONAME ; class QString QDrag::trUtf8(char const *, char const *, int) + ?metaObject@QCommonStyle@@UBEPBUQMetaObject@@XZ @ 232 NONAME ; struct QMetaObject const * QCommonStyle::metaObject(void) const + ?qt_pixmap_cleanup_hook_64@@3P6AX_J@ZA @ 233 NONAME ; void (*qt_pixmap_cleanup_hook_64)(long long) + ?setMask_sys@QWidgetPrivate@@QAEXABVQRegion@@@Z @ 234 NONAME ; void QWidgetPrivate::setMask_sys(class QRegion const &) + ?mapToScene@QGraphicsItem@@QBE?AVQPolygonF@@ABV2@@Z @ 235 NONAME ; class QPolygonF QGraphicsItem::mapToScene(class QPolygonF const &) const + ?metaObject@QStyledItemDelegate@@UBEPBUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const * QStyledItemDelegate::metaObject(void) const + ?tr@QFontDialog@@SA?AVQString@@PBD0H@Z @ 237 NONAME ; class QString QFontDialog::tr(char const *, char const *, int) + ?textChanged@QTextControl@@IAEXXZ @ 238 NONAME ; void QTextControl::textChanged(void) + ?qt_metacall@QMdiArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 239 NONAME ; int QMdiArea::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setBackgroundRole@QWidget@@QAEXW4ColorRole@QPalette@@@Z @ 240 NONAME ; void QWidget::setBackgroundRole(enum QPalette::ColorRole) + ??4QTextBlock@@QAEAAV0@ABV0@@Z @ 241 NONAME ; class QTextBlock & QTextBlock::operator=(class QTextBlock const &) + ?setSelectionModel@QColumnView@@UAEXPAVQItemSelectionModel@@@Z @ 242 NONAME ; void QColumnView::setSelectionModel(class QItemSelectionModel *) + ?toGraphicsObject@QGraphicsItem@@QAEPAVQGraphicsObject@@XZ @ 243 NONAME ; class QGraphicsObject * QGraphicsItem::toGraphicsObject(void) + ??1QPaintEngine@@UAE@XZ @ 244 NONAME ; QPaintEngine::~QPaintEngine(void) + ?addSeparator@QToolBar@@QAEPAVQAction@@XZ @ 245 NONAME ; class QAction * QToolBar::addSeparator(void) + ?whatsThis@QShortcut@@QBE?AVQString@@XZ @ 246 NONAME ; class QString QShortcut::whatsThis(void) const + ?setReadOnly@QLineEdit@@QAEX_N@Z @ 247 NONAME ; void QLineEdit::setReadOnly(bool) + ?qt_metacall@QItemDelegate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 248 NONAME ; int QItemDelegate::qt_metacall(enum QMetaObject::Call, int, void * *) + ?maximizedSystemMenuIconWidget@QMdiSubWindow@@QBEPAVQWidget@@XZ @ 249 NONAME ; class QWidget * QMdiSubWindow::maximizedSystemMenuIconWidget(void) const + ?scrollChildren@QWidgetPrivate@@QAEXHH@Z @ 250 NONAME ; void QWidgetPrivate::scrollChildren(int, int) + ?insertWidget@QStatusBar@@QAEHHPAVQWidget@@H@Z @ 251 NONAME ; int QStatusBar::insertWidget(int, class QWidget *, int) + ?text@QToolTip@@SA?AVQString@@XZ @ 252 NONAME ; class QString QToolTip::text(void) + ?releaseMouse@QWidget@@QAEXXZ @ 253 NONAME ; void QWidget::releaseMouse(void) + ??1QStyleOptionProgressBar@@QAE@XZ @ 254 NONAME ; QStyleOptionProgressBar::~QStyleOptionProgressBar(void) + ?doItemsLayout@QTreeView@@UAEXXZ @ 255 NONAME ; void QTreeView::doItemsLayout(void) + ?blockCharFormat@QTextCursor@@QBE?AVQTextCharFormat@@XZ @ 256 NONAME ; class QTextCharFormat QTextCursor::blockCharFormat(void) const + ?addLayout@QGridLayout@@QAEXPAVQLayout@@HHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 257 NONAME ; void QGridLayout::addLayout(class QLayout *, int, int, class QFlags) + ?d_func@QGraphicsOpacityEffect@@AAEPAVQGraphicsOpacityEffectPrivate@@XZ @ 258 NONAME ; class QGraphicsOpacityEffectPrivate * QGraphicsOpacityEffect::d_func(void) + ?gridSize@QListView@@QBE?AVQSize@@XZ @ 259 NONAME ; class QSize QListView::gridSize(void) const + ?staticMetaObject@QStylePlugin@@2UQMetaObject@@B @ 260 NONAME ; struct QMetaObject const QStylePlugin::staticMetaObject + ??8QFontMetricsF@@QBE_NABV0@@Z @ 261 NONAME ; bool QFontMetricsF::operator==(class QFontMetricsF const &) const + ?perspective@QMatrix4x4@@QAEAAV1@MMMM@Z @ 262 NONAME ; class QMatrix4x4 & QMatrix4x4::perspective(float, float, float, float) + ?isScaling@QTransform@@QBE_NXZ @ 263 NONAME ; bool QTransform::isScaling(void) const + ?drawLines@QPainter@@QAEXABV?$QVector@VQPointF@@@@@Z @ 264 NONAME ; void QPainter::drawLines(class QVector const &) + ??0QCloseEvent@@QAE@XZ @ 265 NONAME ; QCloseEvent::QCloseEvent(void) + ?staticMetaObject@QPixmapColorizeFilter@@2UQMetaObject@@B @ 266 NONAME ; struct QMetaObject const QPixmapColorizeFilter::staticMetaObject + ?isVisible@QTextBlock@@QBE_NXZ @ 267 NONAME ; bool QTextBlock::isVisible(void) const + ??9QColor@@QBE_NABV0@@Z @ 268 NONAME ; bool QColor::operator!=(class QColor const &) const + ?setTabChangesFocus@QPlainTextEdit@@QAEX_N@Z @ 269 NONAME ; void QPlainTextEdit::setTabChangesFocus(bool) + ?qt_metacast@QTextBlockGroup@@UAEPAXPBD@Z @ 270 NONAME ; void * QTextBlockGroup::qt_metacast(char const *) + ?setSingleStep@QSpinBox@@QAEXH@Z @ 271 NONAME ; void QSpinBox::setSingleStep(int) + ??1QIcon@@QAE@XZ @ 272 NONAME ; QIcon::~QIcon(void) + ?setResolveSymlinks@QFileDialog@@QAEX_N@Z @ 273 NONAME ; void QFileDialog::setResolveSymlinks(bool) + ??1QTextFormatCollection@@QAE@XZ @ 274 NONAME ; QTextFormatCollection::~QTextFormatCollection(void) + ?staticMetaObject@QTextFormat@@2UQMetaObject@@B @ 275 NONAME ; struct QMetaObject const QTextFormat::staticMetaObject + ?paintEvent@QMenuBar@@MAEXPAVQPaintEvent@@@Z @ 276 NONAME ; void QMenuBar::paintEvent(class QPaintEvent *) + ?metaObject@QPixmapBlurFilter@@UBEPBUQMetaObject@@XZ @ 277 NONAME ; struct QMetaObject const * QPixmapBlurFilter::metaObject(void) const + ?currentBlock@iterator@QTextFrame@@QBE?AVQTextBlock@@XZ @ 278 NONAME ; class QTextBlock QTextFrame::iterator::currentBlock(void) const + ?mkdir@QDirModel@@QAE?AVQModelIndex@@ABV2@ABVQString@@@Z @ 279 NONAME ; class QModelIndex QDirModel::mkdir(class QModelIndex const &, class QString const &) + ?drawPixmap@QPainter@@QAEXHHHHABVQPixmap@@@Z @ 280 NONAME ; void QPainter::drawPixmap(int, int, int, int, class QPixmap const &) + ?scaled@QImage@@QBE?AV1@ABVQSize@@W4AspectRatioMode@Qt@@W4TransformationMode@4@@Z @ 281 NONAME ; class QImage QImage::scaled(class QSize const &, enum Qt::AspectRatioMode, enum Qt::TransformationMode) const + ?sizeConstraint@QLayout@@QBE?AW4SizeConstraint@1@XZ @ 282 NONAME ; enum QLayout::SizeConstraint QLayout::sizeConstraint(void) const + ?checkStateSet@QCheckBox@@MAEXXZ @ 283 NONAME ; void QCheckBox::checkStateSet(void) + ?closeEvent@QMessageBox@@MAEXPAVQCloseEvent@@@Z @ 284 NONAME ; void QMessageBox::closeEvent(class QCloseEvent *) + ?loadPicture@QPictureFormatPlugin@@UAE_NABVQString@@0PAVQPicture@@@Z @ 285 NONAME ; bool QPictureFormatPlugin::loadPicture(class QString const &, class QString const &, class QPicture *) + ?width@QTextImageFormat@@QBEMXZ @ 286 NONAME ; float QTextImageFormat::width(void) const + ?isItemEnabled@QToolBox@@QBE_NH@Z @ 287 NONAME ; bool QToolBox::isItemEnabled(int) const + ?editingFinished@QAbstractSpinBox@@IAEXXZ @ 288 NONAME ; void QAbstractSpinBox::editingFinished(void) + ?setDefaultDropAction@QAbstractItemView@@QAEXW4DropAction@Qt@@@Z @ 289 NONAME ; void QAbstractItemView::setDefaultDropAction(enum Qt::DropAction) + ?trUtf8@QActionGroup@@SA?AVQString@@PBD0H@Z @ 290 NONAME ; class QString QActionGroup::trUtf8(char const *, char const *, int) + ?getHsl@QColor@@QBEXPAH000@Z @ 291 NONAME ; void QColor::getHsl(int *, int *, int *, int *) const + ?strengthChanged@QGraphicsColorizeEffect@@IAEXM@Z @ 292 NONAME ; void QGraphicsColorizeEffect::strengthChanged(float) + ?font@QGraphicsWidget@@QBE?AVQFont@@XZ @ 293 NONAME ; class QFont QGraphicsWidget::font(void) const + ??0QPaintEngine@@QAE@V?$QFlags@W4PaintEngineFeature@QPaintEngine@@@@@Z @ 294 NONAME ; QPaintEngine::QPaintEngine(class QFlags) + ?tr@QStackedWidget@@SA?AVQString@@PBD0H@Z @ 295 NONAME ; class QString QStackedWidget::tr(char const *, char const *, int) + ?standardPixmap@QWindowsStyle@@UBE?AVQPixmap@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 296 NONAME ; class QPixmap QWindowsStyle::standardPixmap(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ?setStyleSheet@QApplication@@QAEXABVQString@@@Z @ 297 NONAME ; void QApplication::setStyleSheet(class QString const &) + ?minLeftBearing@QFontMetrics@@QBEHXZ @ 298 NONAME ; int QFontMetrics::minLeftBearing(void) const + ?isComposing@QCoeFepInputContext@@UBE_NXZ @ 299 NONAME ; bool QCoeFepInputContext::isComposing(void) const + ??8iterator@QTextFrame@@QBE_NABV01@@Z @ 300 NONAME ; bool QTextFrame::iterator::operator==(class QTextFrame::iterator const &) const + ?toolBarArea@QMainWindow@@QBE?AW4ToolBarArea@Qt@@PAVQToolBar@@@Z @ 301 NONAME ; enum Qt::ToolBarArea QMainWindow::toolBarArea(class QToolBar *) const + ?mode@QColormap@@QBE?AW4Mode@1@XZ @ 302 NONAME ; enum QColormap::Mode QColormap::mode(void) const + ??_EQGraphicsOpacityEffect@@UAE@I@Z @ 303 NONAME ; QGraphicsOpacityEffect::~QGraphicsOpacityEffect(unsigned int) + ?clearColumnWidthConstraints@QTextTableFormat@@QAEXXZ @ 304 NONAME ; void QTextTableFormat::clearColumnWidthConstraints(void) + ?setModifiersMask@QMouseEventTransition@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 305 NONAME ; void QMouseEventTransition::setModifiersMask(class QFlags) + ?setColor@QBrush@@QAEXW4GlobalColor@Qt@@@Z @ 306 NONAME ; void QBrush::setColor(enum Qt::GlobalColor) + ?setBrush@QAbstractGraphicsShapeItem@@QAEXABVQBrush@@@Z @ 307 NONAME ; void QAbstractGraphicsShapeItem::setBrush(class QBrush const &) + ?sort@QFileSystemModel@@UAEXHW4SortOrder@Qt@@@Z @ 308 NONAME ; void QFileSystemModel::sort(int, enum Qt::SortOrder) + ?setFormat@QMovie@@QAEXABVQByteArray@@@Z @ 309 NONAME ; void QMovie::setFormat(class QByteArray const &) + ?qt_metacall@QPaintBufferSignalProxy@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 310 NONAME ; int QPaintBufferSignalProxy::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@QColorDialog@@UBEPBUQMetaObject@@XZ @ 311 NONAME ; struct QMetaObject const * QColorDialog::metaObject(void) const + ?setPos@QGraphicsItem@@QAEXABVQPointF@@@Z @ 312 NONAME ; void QGraphicsItem::setPos(class QPointF const &) + ?setIndent@QTextBlockFormat@@QAEXH@Z @ 313 NONAME ; void QTextBlockFormat::setIndent(int) + ?setEditorData@QItemDelegate@@UBEXPAVQWidget@@ABVQModelIndex@@@Z @ 314 NONAME ; void QItemDelegate::setEditorData(class QWidget *, class QModelIndex const &) const + ??1QGraphicsScale@@UAE@XZ @ 315 NONAME ; QGraphicsScale::~QGraphicsScale(void) + ?toPlainText@QTextEdit@@QBE?AVQString@@XZ @ 316 NONAME ; class QString QTextEdit::toPlainText(void) const + ?pictureFormat@QPicture@@SAPBDABVQString@@@Z @ 317 NONAME ; char const * QPicture::pictureFormat(class QString const &) + ?metaObject@QInputContext@@UBEPBUQMetaObject@@XZ @ 318 NONAME ; struct QMetaObject const * QInputContext::metaObject(void) const + ??1QHideEvent@@UAE@XZ @ 319 NONAME ; QHideEvent::~QHideEvent(void) + ?qt_metacast@QSyntaxHighlighter@@UAEPAXPBD@Z @ 320 NONAME ; void * QSyntaxHighlighter::qt_metacast(char const *) + ?removeRows@QTextTable@@QAEXHH@Z @ 321 NONAME ; void QTextTable::removeRows(int, int) + ?cursorWidth@QTextControl@@QBEHXZ @ 322 NONAME ; int QTextControl::cursorWidth(void) const + ?trUtf8@QIconEnginePluginV2@@SA?AVQString@@PBD0@Z @ 323 NONAME ; class QString QIconEnginePluginV2::trUtf8(char const *, char const *) + ?document@QGraphicsTextItem@@QBEPAVQTextDocument@@XZ @ 324 NONAME ; class QTextDocument * QGraphicsTextItem::document(void) const + ?opaqueArea@QGraphicsPolygonItem@@UBE?AVQPainterPath@@XZ @ 325 NONAME ; class QPainterPath QGraphicsPolygonItem::opaqueArea(void) const + ?linkActivated@QLabel@@IAEXABVQString@@@Z @ 326 NONAME ; void QLabel::linkActivated(class QString const &) + ?hoverLeaveEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 327 NONAME ; void QGraphicsItem::hoverLeaveEvent(class QGraphicsSceneHoverEvent *) + ?getStaticMetaObject@QGraphicsObject@@SAABUQMetaObject@@XZ @ 328 NONAME ; struct QMetaObject const & QGraphicsObject::getStaticMetaObject(void) + ?setResizeAnchor@QGraphicsView@@QAEXW4ViewportAnchor@1@@Z @ 329 NONAME ; void QGraphicsView::setResizeAnchor(enum QGraphicsView::ViewportAnchor) + ?textDirection@QTextInlineObject@@QBE?AW4LayoutDirection@Qt@@XZ @ 330 NONAME ; enum Qt::LayoutDirection QTextInlineObject::textDirection(void) const + ?setPointSize@QFont@@QAEXH@Z @ 331 NONAME ; void QFont::setPointSize(int) + ?nearestGraphicsProxyWidget@QWidgetPrivate@@SAPAVQGraphicsProxyWidget@@PBVQWidget@@@Z @ 332 NONAME ; class QGraphicsProxyWidget * QWidgetPrivate::nearestGraphicsProxyWidget(class QWidget const *) + ??4QStyleOptionToolButton@@QAEAAV0@ABV0@@Z @ 333 NONAME ; class QStyleOptionToolButton & QStyleOptionToolButton::operator=(class QStyleOptionToolButton const &) + ??0QBrush@@QAE@XZ @ 334 NONAME ; QBrush::QBrush(void) + ?rmdir@QDirModel@@QAE_NABVQModelIndex@@@Z @ 335 NONAME ; bool QDirModel::rmdir(class QModelIndex const &) + ?trUtf8@QMessageBox@@SA?AVQString@@PBD0H@Z @ 336 NONAME ; class QString QMessageBox::trUtf8(char const *, char const *, int) + ?initializeSections@QHeaderView@@IAEXXZ @ 337 NONAME ; void QHeaderView::initializeSections(void) + ??0QStyleOptionProgressBarV2@@IAE@H@Z @ 338 NONAME ; QStyleOptionProgressBarV2::QStyleOptionProgressBarV2(int) + ?setUseDesignMetrics@QTextOption@@QAEX_N@Z @ 339 NONAME ; void QTextOption::setUseDesignMetrics(bool) + ?CreateAppUiL@QS60MainDocument@@UAEPAVCEikAppUi@@XZ @ 340 NONAME ; class CEikAppUi * QS60MainDocument::CreateAppUiL(void) + ?setScene@QGraphicsView@@QAEXPAVQGraphicsScene@@@Z @ 341 NONAME ; void QGraphicsView::setScene(class QGraphicsScene *) + ?returnPressed@QLineEdit@@IAEXXZ @ 342 NONAME ; void QLineEdit::returnPressed(void) + ?windowTitle@QWidget@@QBE?AVQString@@XZ @ 343 NONAME ; class QString QWidget::windowTitle(void) const + ?scaledToWidth@QPixmap@@QBE?AV1@HW4TransformationMode@Qt@@@Z @ 344 NONAME ; class QPixmap QPixmap::scaledToWidth(int, enum Qt::TransformationMode) const + ?setDisabled@QActionGroup@@QAEX_N@Z @ 345 NONAME ; void QActionGroup::setDisabled(bool) + ?elidedText@QFontMetrics@@QBE?AVQString@@ABV2@W4TextElideMode@Qt@@HH@Z @ 346 NONAME ; class QString QFontMetrics::elidedText(class QString const &, enum Qt::TextElideMode, int, int) const + ?d_func@QPlainTextDocumentLayout@@AAEPAVQPlainTextDocumentLayoutPrivate@@XZ @ 347 NONAME ; class QPlainTextDocumentLayoutPrivate * QPlainTextDocumentLayout::d_func(void) + ?setDefaultWidget@QWidgetAction@@QAEXPAVQWidget@@@Z @ 348 NONAME ; void QWidgetAction::setDefaultWidget(class QWidget *) + ?heightForWidth@QLabel@@UBEHH@Z @ 349 NONAME ; int QLabel::heightForWidth(int) const + ??0QVector3D@@QAE@ABV0@@Z @ 350 NONAME ; QVector3D::QVector3D(class QVector3D const &) + ?setFileName@QImageReader@@QAEXABVQString@@@Z @ 351 NONAME ; void QImageReader::setFileName(class QString const &) + ?d_func@QGraphicsSceneResizeEvent@@ABEPBVQGraphicsSceneResizeEventPrivate@@XZ @ 352 NONAME ; class QGraphicsSceneResizeEventPrivate const * QGraphicsSceneResizeEvent::d_func(void) const + ?staticMetaObject@QPlainTextEdit@@2UQMetaObject@@B @ 353 NONAME ; struct QMetaObject const QPlainTextEdit::staticMetaObject + ?drawForeground@QGraphicsView@@MAEXPAVQPainter@@ABVQRectF@@@Z @ 354 NONAME ; void QGraphicsView::drawForeground(class QPainter *, class QRectF const &) + ?setColor@QPixmapDropShadowFilter@@QAEXABVQColor@@@Z @ 355 NONAME ; void QPixmapDropShadowFilter::setColor(class QColor const &) + ?tableWidget@QTableWidgetItem@@QBEPAVQTableWidget@@XZ @ 356 NONAME ; class QTableWidget * QTableWidgetItem::tableWidget(void) const + ?pageCount@QTextDocument@@QBEHXZ @ 357 NONAME ; int QTextDocument::pageCount(void) const + ?isNull@QVector3D@@QBE_NXZ @ 358 NONAME ; bool QVector3D::isNull(void) const + ?clearSelection@QAbstractItemView@@QAEXXZ @ 359 NONAME ; void QAbstractItemView::clearSelection(void) + ?trUtf8@QWizardPage@@SA?AVQString@@PBD0H@Z @ 360 NONAME ; class QString QWizardPage::trUtf8(char const *, char const *, int) + ?setScreenPos@QGraphicsSceneHelpEvent@@QAEXABVQPoint@@@Z @ 361 NONAME ; void QGraphicsSceneHelpEvent::setScreenPos(class QPoint const &) + ?trUtf8@QUndoView@@SA?AVQString@@PBD0@Z @ 362 NONAME ; class QString QUndoView::trUtf8(char const *, char const *) + ?setTextAlignment@QTreeWidgetItem@@QAEXHH@Z @ 363 NONAME ; void QTreeWidgetItem::setTextAlignment(int, int) + ?extension@QGraphicsEllipseItem@@MBE?AVQVariant@@ABV2@@Z @ 364 NONAME ; class QVariant QGraphicsEllipseItem::extension(class QVariant const &) const + ?subtractOpaqueChildren@QWidgetPrivate@@QBEXAAVQRegion@@ABVQRect@@@Z @ 365 NONAME ; void QWidgetPrivate::subtractOpaqueChildren(class QRegion &, class QRect const &) const + ??_EQTextureGlyphCache@@UAE@I@Z @ 366 NONAME ; QTextureGlyphCache::~QTextureGlyphCache(unsigned int) + ?fontFixedPitch@QTextCharFormat@@QBE_NXZ @ 367 NONAME ; bool QTextCharFormat::fontFixedPitch(void) const + ?rowCount@QStandardItemModel@@UBEHABVQModelIndex@@@Z @ 368 NONAME ; int QStandardItemModel::rowCount(class QModelIndex const &) const + ?invalidateCachedClipPathRecursively@QGraphicsItemPrivate@@QAEX_NABVQRectF@@@Z @ 369 NONAME ; void QGraphicsItemPrivate::invalidateCachedClipPathRecursively(bool, class QRectF const &) + ?fromSymbianCFbsBitmap@QPixmap@@SA?AV1@PAVCFbsBitmap@@@Z @ 370 NONAME ; class QPixmap QPixmap::fromSymbianCFbsBitmap(class CFbsBitmap *) + ?qt_metacast@QBoxLayout@@UAEPAXPBD@Z @ 371 NONAME ; void * QBoxLayout::qt_metacast(char const *) + ?copyAvailable@QTextEdit@@IAEX_N@Z @ 372 NONAME ; void QTextEdit::copyAvailable(bool) + ?childrenClippedToShape@QGraphicsItemPrivate@@QBE_NXZ @ 373 NONAME ; bool QGraphicsItemPrivate::childrenClippedToShape(void) const + ?removeTab@QTabBar@@QAEXH@Z @ 374 NONAME ; void QTabBar::removeTab(int) + ?hasNext@Parser@QCss@@QBE_NXZ @ 375 NONAME ; bool QCss::Parser::hasNext(void) const + ?displayText@QStyledItemDelegate@@UBE?AVQString@@ABVQVariant@@ABVQLocale@@@Z @ 376 NONAME ; class QString QStyledItemDelegate::displayText(class QVariant const &, class QLocale const &) const + ?cleanText@QSpinBox@@QBE?AVQString@@XZ @ 377 NONAME ; class QString QSpinBox::cleanText(void) const + ??0QTextBlock@@QAE@XZ @ 378 NONAME ; QTextBlock::QTextBlock(void) + ??0QStyleOptionHeader@@IAE@H@Z @ 379 NONAME ; QStyleOptionHeader::QStyleOptionHeader(int) + ?opaqueArea@QGraphicsLineItem@@UBE?AVQPainterPath@@XZ @ 380 NONAME ; class QPainterPath QGraphicsLineItem::opaqueArea(void) const + ?begin@QTextTableCell@@QBE?AViterator@QTextFrame@@XZ @ 381 NONAME ; class QTextFrame::iterator QTextTableCell::begin(void) const + ??0QMatrix4x4@@QAE@MMMMMMMMMMMMMMMM@Z @ 382 NONAME ; QMatrix4x4::QMatrix4x4(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float) + ?focusNextPrevChild@QGraphicsProxyWidget@@MAE_N_N@Z @ 383 NONAME ; bool QGraphicsProxyWidget::focusNextPrevChild(bool) + ?boundingRect@QFontMetricsF@@QBE?AVQRectF@@VQChar@@@Z @ 384 NONAME ; class QRectF QFontMetricsF::boundingRect(class QChar) const + ?mapSelectionFromSource@QAbstractProxyModel@@UBE?AVQItemSelection@@ABV2@@Z @ 385 NONAME ; class QItemSelection QAbstractProxyModel::mapSelectionFromSource(class QItemSelection const &) const + ?setDirty@QPainterPath@@AAEX_N@Z @ 386 NONAME ; void QPainterPath::setDirty(bool) + ?selectColumn@QTableView@@QAEXH@Z @ 387 NONAME ; void QTableView::selectColumn(int) + ?staticMetaObject@QDateTimeEdit@@2UQMetaObject@@B @ 388 NONAME ; struct QMetaObject const QDateTimeEdit::staticMetaObject + ?hoverEnterEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 389 NONAME ; void QGraphicsTextItem::hoverEnterEvent(class QGraphicsSceneHoverEvent *) + ?mimeTypes@QProxyModel@@UBE?AVQStringList@@XZ @ 390 NONAME ; class QStringList QProxyModel::mimeTypes(void) const + ?correctionMode@QAbstractSpinBox@@QBE?AW4CorrectionMode@1@XZ @ 391 NONAME ; enum QAbstractSpinBox::CorrectionMode QAbstractSpinBox::correctionMode(void) const + ?getStaticMetaObject@QAbstractItemView@@SAABUQMetaObject@@XZ @ 392 NONAME ; struct QMetaObject const & QAbstractItemView::getStaticMetaObject(void) + ?update@QGraphicsItem@@QAEXMMMM@Z @ 393 NONAME ; void QGraphicsItem::update(float, float, float, float) + ??_EQGraphicsRotation@@UAE@I@Z @ 394 NONAME ; QGraphicsRotation::~QGraphicsRotation(unsigned int) + ?setSelection@QHeaderView@@MAEXABVQRect@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 395 NONAME ; void QHeaderView::setSelection(class QRect const &, class QFlags) + ?selectionStart@QLineEdit@@QBEHXZ @ 396 NONAME ; int QLineEdit::selectionStart(void) const + ?adjustSize@QWidget@@QAEXXZ @ 397 NONAME ; void QWidget::adjustSize(void) + ??0QGraphicsEllipseItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 398 NONAME ; QGraphicsEllipseItem::QGraphicsEllipseItem(class QGraphicsItem *, class QGraphicsScene *) + ?selectedItems@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 399 NONAME ; class QList QGraphicsScene::selectedItems(void) const + ?startCenterPoint@QPinchGesture@@QBE?AVQPointF@@XZ @ 400 NONAME ; class QPointF QPinchGesture::startCenterPoint(void) const + ??0QImageIOHandler@@IAE@AAVQImageIOHandlerPrivate@@@Z @ 401 NONAME ; QImageIOHandler::QImageIOHandler(class QImageIOHandlerPrivate &) + ?setTextColor@QTextEdit@@QAEXABVQColor@@@Z @ 402 NONAME ; void QTextEdit::setTextColor(class QColor const &) + ?qt_metacast@QGraphicsView@@UAEPAXPBD@Z @ 403 NONAME ; void * QGraphicsView::qt_metacast(char const *) + ?d_func@QPinchGesture@@ABEPBVQPinchGesturePrivate@@XZ @ 404 NONAME ; class QPinchGesturePrivate const * QPinchGesture::d_func(void) const + ?imageFormat@QImageReader@@QBE?AW4Format@QImage@@XZ @ 405 NONAME ; enum QImage::Format QImageReader::imageFormat(void) const + ?d_func@QSpinBox@@ABEPBVQSpinBoxPrivate@@XZ @ 406 NONAME ; class QSpinBoxPrivate const * QSpinBox::d_func(void) const + ??1QMovie@@UAE@XZ @ 407 NONAME ; QMovie::~QMovie(void) + ?setDrawBase@QTabBar@@QAEX_N@Z @ 408 NONAME ; void QTabBar::setDrawBase(bool) + ?findNextPrevAnchor@QTextControl@@QAE_NABVQTextCursor@@_NAAV2@@Z @ 409 NONAME ; bool QTextControl::findNextPrevAnchor(class QTextCursor const &, bool, class QTextCursor &) + ?qt_metacast@QGraphicsGrayscaleEffect@@UAEPAXPBD@Z @ 410 NONAME ; void * QGraphicsGrayscaleEffect::qt_metacast(char const *) + ?paintEvent@QToolButton@@MAEXPAVQPaintEvent@@@Z @ 411 NONAME ; void QToolButton::paintEvent(class QPaintEvent *) + ?createHeuristicMask@QImage@@QBE?AV1@_N@Z @ 412 NONAME ; class QImage QImage::createHeuristicMask(bool) const + ?supportsAnimation@QImageReader@@QBE_NXZ @ 413 NONAME ; bool QImageReader::supportsAnimation(void) const + ?copy@QTextControl@@QAEXXZ @ 414 NONAME ; void QTextControl::copy(void) + ?d_func@QScrollBar@@ABEPBVQScrollBarPrivate@@XZ @ 415 NONAME ; class QScrollBarPrivate const * QScrollBar::d_func(void) const + ?setClipRect@QPainter@@QAEXABVQRect@@W4ClipOperation@Qt@@@Z @ 416 NONAME ; void QPainter::setClipRect(class QRect const &, enum Qt::ClipOperation) + ?open@QColorDialog@@QAEXPAVQObject@@PBD@Z @ 417 NONAME ; void QColorDialog::open(class QObject *, char const *) + ?trUtf8@QWidget@@SA?AVQString@@PBD0H@Z @ 418 NONAME ; class QString QWidget::trUtf8(char const *, char const *, int) + ?invalidate@QGraphicsAnchorLayout@@UAEXXZ @ 419 NONAME ; void QGraphicsAnchorLayout::invalidate(void) + ?setHidden@QListWidgetItem@@QAEX_N@Z @ 420 NONAME ; void QListWidgetItem::setHidden(bool) + ?cleanText@QDoubleSpinBox@@QBE?AVQString@@XZ @ 421 NONAME ; class QString QDoubleSpinBox::cleanText(void) const + ??_EQStroker@@UAE@I@Z @ 422 NONAME ; QStroker::~QStroker(unsigned int) + ?allowedAreasChanged@QToolBar@@IAEXV?$QFlags@W4ToolBarArea@Qt@@@@@Z @ 423 NONAME ; void QToolBar::allowedAreasChanged(class QFlags) + ?app_compile_version@QApplicationPrivate@@2HA @ 424 NONAME ; int QApplicationPrivate::app_compile_version + ??_EQFormLayout@@UAE@I@Z @ 425 NONAME ; QFormLayout::~QFormLayout(unsigned int) + ?percentAtLength@QPainterPath@@QBEMM@Z @ 426 NONAME ; float QPainterPath::percentAtLength(float) const + ?metaObject@QDockWidgetLayout@@UBEPBUQMetaObject@@XZ @ 427 NONAME ; struct QMetaObject const * QDockWidgetLayout::metaObject(void) const + ?metaObject@QValidator@@UBEPBUQMetaObject@@XZ @ 428 NONAME ; struct QMetaObject const * QValidator::metaObject(void) const + ??1QGridLayout@@UAE@XZ @ 429 NONAME ; QGridLayout::~QGridLayout(void) + ?itemDelegate@QDataWidgetMapper@@QBEPAVQAbstractItemDelegate@@XZ @ 430 NONAME ; class QAbstractItemDelegate * QDataWidgetMapper::itemDelegate(void) const + ?clearFocus@QWidget@@QAEXXZ @ 431 NONAME ; void QWidget::clearFocus(void) + ??1QUndoGroup@@UAE@XZ @ 432 NONAME ; QUndoGroup::~QUndoGroup(void) + ?insertRow@QFormLayout@@QAEXHABVQString@@PAVQLayout@@@Z @ 433 NONAME ; void QFormLayout::insertRow(int, class QString const &, class QLayout *) + ?sizeHint@QItemDelegate@@UBE?AVQSize@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 434 NONAME ; class QSize QItemDelegate::sizeHint(class QStyleOptionViewItem const &, class QModelIndex const &) const + ?invalidate@QLayout@@UAEXXZ @ 435 NONAME ; void QLayout::invalidate(void) + ?metaObject@QFocusFrame@@UBEPBUQMetaObject@@XZ @ 436 NONAME ; struct QMetaObject const * QFocusFrame::metaObject(void) const + ??1QIntValidator@@UAE@XZ @ 437 NONAME ; QIntValidator::~QIntValidator(void) + ?focusInEvent@QTextEdit@@MAEXPAVQFocusEvent@@@Z @ 438 NONAME ; void QTextEdit::focusInEvent(class QFocusEvent *) + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPainterPath@@W4ItemSelectionMode@Qt@@@Z @ 439 NONAME ; class QList QGraphicsView::items(class QPainterPath const &, enum Qt::ItemSelectionMode) const + ?dragEnterEvent@QLineEdit@@MAEXPAVQDragEnterEvent@@@Z @ 440 NONAME ; void QLineEdit::dragEnterEvent(class QDragEnterEvent *) + ?name@QImageIOHandler@@UBE?AVQByteArray@@XZ @ 441 NONAME ; class QByteArray QImageIOHandler::name(void) const + ?trUtf8@QMainWindow@@SA?AVQString@@PBD0H@Z @ 442 NONAME ; class QString QMainWindow::trUtf8(char const *, char const *, int) + ??0QPlainTextEdit@@QAE@ABVQString@@PAVQWidget@@@Z @ 443 NONAME ; QPlainTextEdit::QPlainTextEdit(class QString const &, class QWidget *) + ?cursorForPosition@QTextControl@@QBE?AVQTextCursor@@ABVQPointF@@@Z @ 444 NONAME ; class QTextCursor QTextControl::cursorForPosition(class QPointF const &) const + ?tr@QSplitterHandle@@SA?AVQString@@PBD0H@Z @ 445 NONAME ; class QString QSplitterHandle::tr(char const *, char const *, int) + ?lastScaleFactor@QPinchGesture@@QBEMXZ @ 446 NONAME ; float QPinchGesture::lastScaleFactor(void) const + ?dragLeaveEvent@QAbstractScrollArea@@MAEXPAVQDragLeaveEvent@@@Z @ 447 NONAME ; void QAbstractScrollArea::dragLeaveEvent(class QDragLeaveEvent *) + ?appendRows@QTextTable@@QAEXH@Z @ 448 NONAME ; void QTextTable::appendRows(int) + ?tr@QLabel@@SA?AVQString@@PBD0@Z @ 449 NONAME ; class QString QLabel::tr(char const *, char const *) + ??1QPixmap@@UAE@XZ @ 450 NONAME ; QPixmap::~QPixmap(void) + ?tr@QTextObject@@SA?AVQString@@PBD0@Z @ 451 NONAME ; class QString QTextObject::tr(char const *, char const *) + ?sizeHint@QSplitter@@UBE?AVQSize@@XZ @ 452 NONAME ; class QSize QSplitter::sizeHint(void) const + ?setFocusPolicy@QWidget@@QAEXW4FocusPolicy@Qt@@@Z @ 453 NONAME ; void QWidget::setFocusPolicy(enum Qt::FocusPolicy) + ??0QStackedLayout@@QAE@XZ @ 454 NONAME ; QStackedLayout::QStackedLayout(void) + ??0QRegion@@QAE@ABVQPolygon@@W4FillRule@Qt@@@Z @ 455 NONAME ; QRegion::QRegion(class QPolygon const &, enum Qt::FillRule) + ??0QGraphicsPixmapItem@@QAE@ABVQPixmap@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 456 NONAME ; QGraphicsPixmapItem::QGraphicsPixmapItem(class QPixmap const &, class QGraphicsItem *, class QGraphicsScene *) + ?removeMapping@QDataWidgetMapper@@QAEXPAVQWidget@@@Z @ 457 NONAME ; void QDataWidgetMapper::removeMapping(class QWidget *) + ?insertItem@QComboBox@@QAEXHABVQIcon@@ABVQString@@ABVQVariant@@@Z @ 458 NONAME ; void QComboBox::insertItem(int, class QIcon const &, class QString const &, class QVariant const &) + ?setRubberBand@QSplitter@@IAEXH@Z @ 459 NONAME ; void QSplitter::setRubberBand(int) + ?setFrame@QComboBox@@QAEX_N@Z @ 460 NONAME ; void QComboBox::setFrame(bool) + ?setLineWidth@QFrame@@QAEXH@Z @ 461 NONAME ; void QFrame::setLineWidth(int) + ?autoScrollMargin@QAbstractItemView@@QBEHXZ @ 462 NONAME ; int QAbstractItemView::autoScrollMargin(void) const + ?tr@QLineControl@@SA?AVQString@@PBD0H@Z @ 463 NONAME ; class QString QLineControl::tr(char const *, char const *, int) + ?selectionChanged@QTreeView@@MAEXABVQItemSelection@@0@Z @ 464 NONAME ; void QTreeView::selectionChanged(class QItemSelection const &, class QItemSelection const &) + ?strikeOut@QFont@@QBE_NXZ @ 465 NONAME ; bool QFont::strikeOut(void) const + ?nlerp@QQuaternion@@SA?AV1@ABV1@0M@Z @ 466 NONAME ; class QQuaternion QQuaternion::nlerp(class QQuaternion const &, class QQuaternion const &, float) + ??0QValidator@@IAE@AAVQValidatorPrivate@@PAVQObject@@@Z @ 467 NONAME ; QValidator::QValidator(class QValidatorPrivate &, class QObject *) + ?isEnabled@QAction@@QBE_NXZ @ 468 NONAME ; bool QAction::isEnabled(void) const + ?save@QImage@@QBE_NPAVQIODevice@@PBDH@Z @ 469 NONAME ; bool QImage::save(class QIODevice *, char const *, int) const + ?focusInEvent@QAbstractButton@@MAEXPAVQFocusEvent@@@Z @ 470 NONAME ; void QAbstractButton::focusInEvent(class QFocusEvent *) + ??_EQAbstractScrollArea@@UAE@I@Z @ 471 NONAME ; QAbstractScrollArea::~QAbstractScrollArea(unsigned int) + ?testSimpleSelector@Parser@QCss@@QAE_NXZ @ 472 NONAME ; bool QCss::Parser::testSimpleSelector(void) + ?setMaximumBlockCount@QTextDocument@@QAEXH@Z @ 473 NONAME ; void QTextDocument::setMaximumBlockCount(int) + ?fade_menu@QApplicationPrivate@@2_NA @ 474 NONAME ; bool QApplicationPrivate::fade_menu + ??0QAbstractItemDelegate@@QAE@PAVQObject@@@Z @ 475 NONAME ; QAbstractItemDelegate::QAbstractItemDelegate(class QObject *) + ?setHorizontalSpacing@QGraphicsGridLayout@@QAEXM@Z @ 476 NONAME ; void QGraphicsGridLayout::setHorizontalSpacing(float) + ?initializeWidgetPaletteHash@QApplicationPrivate@@SAXXZ @ 477 NONAME ; void QApplicationPrivate::initializeWidgetPaletteHash(void) + ?write@QImageWriter@@QAE_NABVQImage@@@Z @ 478 NONAME ; bool QImageWriter::write(class QImage const &) + ?tabifiedDockWidgets@QMainWindow@@QBE?AV?$QList@PAVQDockWidget@@@@PAVQDockWidget@@@Z @ 479 NONAME ; class QList QMainWindow::tabifiedDockWidgets(class QDockWidget *) const + ?qt_metacast@QWizard@@UAEPAXPBD@Z @ 480 NONAME ; void * QWizard::qt_metacast(char const *) + ?getStaticMetaObject@QColumnView@@SAABUQMetaObject@@XZ @ 481 NONAME ; struct QMetaObject const & QColumnView::getStaticMetaObject(void) + ?verticalScrollBar@QAbstractScrollArea@@QBEPAVQScrollBar@@XZ @ 482 NONAME ; class QScrollBar * QAbstractScrollArea::verticalScrollBar(void) const + ?setScreenPos@QGraphicsSceneDragDropEvent@@QAEXABVQPoint@@@Z @ 483 NONAME ; void QGraphicsSceneDragDropEvent::setScreenPos(class QPoint const &) + ??0QPixmapColorizeFilter@@QAE@PAVQObject@@@Z @ 484 NONAME ; QPixmapColorizeFilter::QPixmapColorizeFilter(class QObject *) + ?hasAlphaChannel@QImage@@QBE_NXZ @ 485 NONAME ; bool QImage::hasAlphaChannel(void) const + ?drawBranches@QTreeView@@MBEXPAVQPainter@@ABVQRect@@ABVQModelIndex@@@Z @ 486 NONAME ; void QTreeView::drawBranches(class QPainter *, class QRect const &, class QModelIndex const &) const + ?d_func@QGraphicsWidget@@ABEPBVQGraphicsWidgetPrivate@@XZ @ 487 NONAME ; class QGraphicsWidgetPrivate const * QGraphicsWidget::d_func(void) const + ?mimeTypes@QStandardItemModel@@UBE?AVQStringList@@XZ @ 488 NONAME ; class QStringList QStandardItemModel::mimeTypes(void) const + ?setBlue@QColor@@QAEXH@Z @ 489 NONAME ; void QColor::setBlue(int) + ?visualRect@QListView@@UBE?AVQRect@@ABVQModelIndex@@@Z @ 490 NONAME ; class QRect QListView::visualRect(class QModelIndex const &) const + ?pageBreakPolicy@QTextBlockFormat@@QBE?AV?$QFlags@W4PageBreakFlag@QTextFormat@@@@XZ @ 491 NONAME ; class QFlags QTextBlockFormat::pageBreakPolicy(void) const + ?mimeTypes@QListWidget@@MBE?AVQStringList@@XZ @ 492 NONAME ; class QStringList QListWidget::mimeTypes(void) const + ?information@QMessageBox@@SA?AW4StandardButton@1@PAVQWidget@@ABVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z @ 493 NONAME ; enum QMessageBox::StandardButton QMessageBox::information(class QWidget *, class QString const &, class QString const &, class QFlags, enum QMessageBox::StandardButton) + ?setSelected@QGraphicsItem@@QAEX_N@Z @ 494 NONAME ; void QGraphicsItem::setSelected(bool) + ?matrix@QPainter@@QBEABVQMatrix@@XZ @ 495 NONAME ; class QMatrix const & QPainter::matrix(void) const + ?canRedoChanged@QUndoStack@@IAEX_N@Z @ 496 NONAME ; void QUndoStack::canRedoChanged(bool) + ?setVector@QQuaternion@@QAEXMMM@Z @ 497 NONAME ; void QQuaternion::setVector(float, float, float) + ?serialNumber@QPixmapData@@QBEHXZ @ 498 NONAME ; int QPixmapData::serialNumber(void) const + ?mapFromItem@QGraphicsItem@@QBE?AVQPointF@@PBV1@MM@Z @ 499 NONAME ; class QPointF QGraphicsItem::mapFromItem(class QGraphicsItem const *, float, float) const + ?getInt@QInputDialog@@SAHPAVQWidget@@ABVQString@@1HHHHPA_NV?$QFlags@W4WindowType@Qt@@@@@Z @ 500 NONAME ; int QInputDialog::getInt(class QWidget *, class QString const &, class QString const &, int, int, int, int, bool *, class QFlags) + ??D@YA?AVQLineF@@ABV0@ABVQMatrix@@@Z @ 501 NONAME ; class QLineF operator*(class QLineF const &, class QMatrix const &) + ?tr@QTextDocument@@SA?AVQString@@PBD0H@Z @ 502 NONAME ; class QString QTextDocument::tr(char const *, char const *, int) + ?beginNativePainting@QPaintEngineEx@@UAEXXZ @ 503 NONAME ; void QPaintEngineEx::beginNativePainting(void) + ?fillRect@QPainter@@QAEXABVQRect@@ABVQBrush@@@Z @ 504 NONAME ; void QPainter::fillRect(class QRect const &, class QBrush const &) + ?setPixmap@QLabel@@QAEXABVQPixmap@@@Z @ 505 NONAME ; void QLabel::setPixmap(class QPixmap const &) + ??0QTextListFormat@@IAE@ABVQTextFormat@@@Z @ 506 NONAME ; QTextListFormat::QTextListFormat(class QTextFormat const &) + ?hasTracking@QAbstractSlider@@QBE_NXZ @ 507 NONAME ; bool QAbstractSlider::hasTracking(void) const + ?drawPath@QPaintEngineEx@@UAEXABVQPainterPath@@@Z @ 508 NONAME ; void QPaintEngineEx::drawPath(class QPainterPath const &) + ?itemDoubleClicked@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 509 NONAME ; void QTableWidget::itemDoubleClicked(class QTableWidgetItem *) + ?currentChanged@QListView@@MAEXABVQModelIndex@@0@Z @ 510 NONAME ; void QListView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?getItemPosition@QGridLayout@@QAEXHPAH000@Z @ 511 NONAME ; void QGridLayout::getItemPosition(int, int *, int *, int *, int *) + ?begin@QStrokerOps@@UAEXPAX@Z @ 512 NONAME ; void QStrokerOps::begin(void *) + ?data@QClipboardEvent@@QAEPAVQEventPrivate@@XZ @ 513 NONAME ; class QEventPrivate * QClipboardEvent::data(void) + ?clearEditText@QComboBox@@QAEXXZ @ 514 NONAME ; void QComboBox::clearEditText(void) + ?modelColumn@QListView@@QBEHXZ @ 515 NONAME ; int QListView::modelColumn(void) const + ?staticMetaObject@QWizard@@2UQMetaObject@@B @ 516 NONAME ; struct QMetaObject const QWizard::staticMetaObject + ?saveState@QMainWindow@@QBE?AVQByteArray@@H@Z @ 517 NONAME ; class QByteArray QMainWindow::saveState(int) const + ?sortIndicatorChanged@QHeaderView@@IAEXHW4SortOrder@Qt@@@Z @ 518 NONAME ; void QHeaderView::sortIndicatorChanged(int, enum Qt::SortOrder) + ?overrideCursor@QApplication@@SAPAVQCursor@@XZ @ 519 NONAME ; class QCursor * QApplication::overrideCursor(void) + ?metaObject@QIconEnginePlugin@@UBEPBUQMetaObject@@XZ @ 520 NONAME ; struct QMetaObject const * QIconEnginePlugin::metaObject(void) const + ?setColumnStretchFactor@QGraphicsGridLayout@@QAEXHH@Z @ 521 NONAME ; void QGraphicsGridLayout::setColumnStretchFactor(int, int) + ?copy@QImage@@QBE?AV1@ABVQRect@@@Z @ 522 NONAME ; class QImage QImage::copy(class QRect const &) const + ?setGraphicsEffectSource@QGraphicsEffectPrivate@@QAEXPAVQGraphicsEffectSource@@@Z @ 523 NONAME ; void QGraphicsEffectPrivate::setGraphicsEffectSource(class QGraphicsEffectSource *) + ?active_window@QApplicationPrivate@@2PAVQWidget@@A @ 524 NONAME ; class QWidget * QApplicationPrivate::active_window + ?save@QPixmap@@QBE_NPAVQIODevice@@PBDH@Z @ 525 NONAME ; bool QPixmap::save(class QIODevice *, char const *, int) const + ?setX@QVector3D@@QAEXM@Z @ 526 NONAME ; void QVector3D::setX(float) + ?selectionChanged@QGraphicsScene@@IAEXXZ @ 527 NONAME ; void QGraphicsScene::selectionChanged(void) + ?resizeEvent@QDial@@MAEXPAVQResizeEvent@@@Z @ 528 NONAME ; void QDial::resizeEvent(class QResizeEvent *) + ?addPixmap@QGraphicsScene@@QAEPAVQGraphicsPixmapItem@@ABVQPixmap@@@Z @ 529 NONAME ; class QGraphicsPixmapItem * QGraphicsScene::addPixmap(class QPixmap const &) + ??9QPainterPath@@QBE_NABV0@@Z @ 530 NONAME ; bool QPainterPath::operator!=(class QPainterPath const &) const + ?spec@QColor@@QBE?AW4Spec@1@XZ @ 531 NONAME ; enum QColor::Spec QColor::spec(void) const + ?setWorldMatrixEnabled@QPainter@@QAEX_N@Z @ 532 NONAME ; void QPainter::setWorldMatrixEnabled(bool) + ?internalSetSloppyAction@QMenu@@AAEXXZ @ 533 NONAME ; void QMenu::internalSetSloppyAction(void) + ?layoutBlock@QPlainTextDocumentLayout@@AAEXABVQTextBlock@@@Z @ 534 NONAME ; void QPlainTextDocumentLayout::layoutBlock(class QTextBlock const &) + ?itemAt@QTableWidget@@QBEPAVQTableWidgetItem@@ABVQPoint@@@Z @ 535 NONAME ; class QTableWidgetItem * QTableWidget::itemAt(class QPoint const &) const + ?getStaticMetaObject@QGraphicsTransform@@SAABUQMetaObject@@XZ @ 536 NONAME ; struct QMetaObject const & QGraphicsTransform::getStaticMetaObject(void) + ??1QGraphicsEffectPrivate@@UAE@XZ @ 537 NONAME ; QGraphicsEffectPrivate::~QGraphicsEffectPrivate(void) + ??0QInputContext@@QAE@PAVQObject@@@Z @ 538 NONAME ; QInputContext::QInputContext(class QObject *) + ?dragMoveEvent@QTreeView@@MAEXPAVQDragMoveEvent@@@Z @ 539 NONAME ; void QTreeView::dragMoveEvent(class QDragMoveEvent *) + ?createEditor@QItemEditorFactory@@UBEPAVQWidget@@W4Type@QVariant@@PAV2@@Z @ 540 NONAME ; class QWidget * QItemEditorFactory::createEditor(enum QVariant::Type, class QWidget *) const + ?dotsPerMeterX@QImage@@QBEHXZ @ 541 NONAME ; int QImage::dotsPerMeterX(void) const + ??0QStyleOptionComboBox@@QAE@ABV0@@Z @ 542 NONAME ; QStyleOptionComboBox::QStyleOptionComboBox(class QStyleOptionComboBox const &) + ?setBackground@QWorkspace@@QAEXABVQBrush@@@Z @ 543 NONAME ; void QWorkspace::setBackground(class QBrush const &) + ?pixelSizeChanged@QGraphicsPixelizeEffect@@IAEXH@Z @ 544 NONAME ; void QGraphicsPixelizeEffect::pixelSizeChanged(int) + ?cursorForPosition@QTextEdit@@QBE?AVQTextCursor@@ABVQPoint@@@Z @ 545 NONAME ; class QTextCursor QTextEdit::cursorForPosition(class QPoint const &) const + ??0QQuaternion@@QAE@XZ @ 546 NONAME ; QQuaternion::QQuaternion(void) + ?modificationChanged@QPlainTextEdit@@IAEX_N@Z @ 547 NONAME ; void QPlainTextEdit::modificationChanged(bool) + ?sizeHint@QMdiSubWindow@@UBE?AVQSize@@XZ @ 548 NONAME ; class QSize QMdiSubWindow::sizeHint(void) const + ?setDefault@QPushButton@@QAEX_N@Z @ 549 NONAME ; void QPushButton::setDefault(bool) + ?setNoReplayFor@QMenu@@QAEXPAVQWidget@@@Z @ 550 NONAME ; void QMenu::setNoReplayFor(class QWidget *) + ?mousePressEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 551 NONAME ; void QGraphicsProxyWidget::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?format@QAbstractTextDocumentLayout@@IAE?AVQTextCharFormat@@H@Z @ 552 NONAME ; class QTextCharFormat QAbstractTextDocumentLayout::format(int) + ?trUtf8@QButtonGroup@@SA?AVQString@@PBD0H@Z @ 553 NONAME ; class QString QButtonGroup::trUtf8(char const *, char const *, int) + ?qt_metacall@QDockWidgetLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 554 NONAME ; int QDockWidgetLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?offset@QImage@@QBE?AVQPoint@@XZ @ 555 NONAME ; class QPoint QImage::offset(void) const + ?metaObject@QMenu@@UBEPBUQMetaObject@@XZ @ 556 NONAME ; struct QMetaObject const * QMenu::metaObject(void) const + ?qt_scaleForTransform@@YA_NABVQTransform@@PAM@Z @ 557 NONAME ; bool qt_scaleForTransform(class QTransform const &, float *) + ??0QLineEdit@@QAE@PAVQWidget@@@Z @ 558 NONAME ; QLineEdit::QLineEdit(class QWidget *) + ?text@QAction@@QBE?AVQString@@XZ @ 559 NONAME ; class QString QAction::text(void) const + ?setMovable@QTabWidget@@QAEX_N@Z @ 560 NONAME ; void QTabWidget::setMovable(bool) + ?orientation@QDataWidgetMapper@@QBE?AW4Orientation@Qt@@XZ @ 561 NONAME ; enum Qt::Orientation QDataWidgetMapper::orientation(void) const + ??_EQPaintEngineExReplayer@@UAE@I@Z @ 562 NONAME ; QPaintEngineExReplayer::~QPaintEngineExReplayer(unsigned int) + ??BQCursor@@QBE?AVQVariant@@XZ @ 563 NONAME ; QCursor::operator class QVariant(void) const + ?setLineEdit@QComboBox@@QAEXPAVQLineEdit@@@Z @ 564 NONAME ; void QComboBox::setLineEdit(class QLineEdit *) + ?setOverrideCursor@QApplication@@SAXABVQCursor@@@Z @ 565 NONAME ; void QApplication::setOverrideCursor(class QCursor const &) + ?model@QDataWidgetMapper@@QBEPAVQAbstractItemModel@@XZ @ 566 NONAME ; class QAbstractItemModel * QDataWidgetMapper::model(void) const + ??4QBrush@@QAEAAV0@ABV0@@Z @ 567 NONAME ; class QBrush & QBrush::operator=(class QBrush const &) + ?boundingRect@QGraphicsPixmapItem@@UBE?AVQRectF@@XZ @ 568 NONAME ; class QRectF QGraphicsPixmapItem::boundingRect(void) const + ?accepted@QDialog@@IAEXXZ @ 569 NONAME ; void QDialog::accepted(void) + ?trUtf8@QHBoxLayout@@SA?AVQString@@PBD0@Z @ 570 NONAME ; class QString QHBoxLayout::trUtf8(char const *, char const *) + ?drawRoundRect@QPainter@@QAEXABVQRectF@@HH@Z @ 571 NONAME ; void QPainter::drawRoundRect(class QRectF const &, int, int) + ??1QUndoStack@@UAE@XZ @ 572 NONAME ; QUndoStack::~QUndoStack(void) + ??6@YAAAVQDataStream@@AAV0@ABVQSizePolicy@@@Z @ 573 NONAME ; class QDataStream & operator<<(class QDataStream &, class QSizePolicy const &) + ?trUtf8@QStylePlugin@@SA?AVQString@@PBD0H@Z @ 574 NONAME ; class QString QStylePlugin::trUtf8(char const *, char const *, int) + ?showEvent@QMdiSubWindow@@MAEXPAVQShowEvent@@@Z @ 575 NONAME ; void QMdiSubWindow::showEvent(class QShowEvent *) + ?setPageSize@QTextDocument@@QAEXABVQSizeF@@@Z @ 576 NONAME ; void QTextDocument::setPageSize(class QSizeF const &) + ?selectAll@QTextControl@@QAEXXZ @ 577 NONAME ; void QTextControl::selectAll(void) + ?rotate@QMatrix4x4@@QAEAAV1@ABVQQuaternion@@@Z @ 578 NONAME ; class QMatrix4x4 & QMatrix4x4::rotate(class QQuaternion const &) + ?setFont@QStandardItem@@QAEXABVQFont@@@Z @ 579 NONAME ; void QStandardItem::setFont(class QFont const &) + ?checkOverflow@QLCDNumber@@QBE_NN@Z @ 580 NONAME ; bool QLCDNumber::checkOverflow(double) const + ?dropMimeData@QTreeWidget@@MAE_NPAVQTreeWidgetItem@@HPBVQMimeData@@W4DropAction@Qt@@@Z @ 581 NONAME ; bool QTreeWidget::dropMimeData(class QTreeWidgetItem *, int, class QMimeData const *, enum Qt::DropAction) + ?trUtf8@QStylePlugin@@SA?AVQString@@PBD0@Z @ 582 NONAME ; class QString QStylePlugin::trUtf8(char const *, char const *) + ?setViewTransformEnabled@QPainter@@QAEX_N@Z @ 583 NONAME ; void QPainter::setViewTransformEnabled(bool) + ??0QIcon@@QAE@ABVQPixmap@@@Z @ 584 NONAME ; QIcon::QIcon(class QPixmap const &) + ?requestUpdate@QPlainTextDocumentLayout@@QAEXXZ @ 585 NONAME ; void QPlainTextDocumentLayout::requestUpdate(void) + ?height@QFontMetrics@@QBEHXZ @ 586 NONAME ; int QFontMetrics::height(void) const + ?closestLegalPosition@QSplitter@@IAEHHH@Z @ 587 NONAME ; int QSplitter::closestLegalPosition(int, int) + ?testFunction@Parser@QCss@@QAE_NXZ @ 588 NONAME ; bool QCss::Parser::testFunction(void) + ?moveTo@QPainterPath@@QAEXMM@Z @ 589 NONAME ; void QPainterPath::moveTo(float, float) + ?font@QFontDatabase@@QBE?AVQFont@@ABVQString@@0H@Z @ 590 NONAME ; class QFont QFontDatabase::font(class QString const &, class QString const &, int) const + ?fillRule@QPainterPath@@QBE?AW4FillRule@Qt@@XZ @ 591 NONAME ; enum Qt::FillRule QPainterPath::fillRule(void) const + ?event@QRubberBand@@MAE_NPAVQEvent@@@Z @ 592 NONAME ; bool QRubberBand::event(class QEvent *) + ?setWinId@QWidgetPrivate@@QAEXPAVCCoeControl@@@Z @ 593 NONAME ; void QWidgetPrivate::setWinId(class CCoeControl *) + ?setSpacing@QListView@@QAEXH@Z @ 594 NONAME ; void QListView::setSpacing(int) + ?mouseReleaseEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 595 NONAME ; void QGraphicsTextItem::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?trUtf8@QDateEdit@@SA?AVQString@@PBD0@Z @ 596 NONAME ; class QString QDateEdit::trUtf8(char const *, char const *) + ?text@QTreeWidgetItem@@QBE?AVQString@@H@Z @ 597 NONAME ; class QString QTreeWidgetItem::text(int) const + ?setPosition@QTextFrameFormat@@QAEXW4Position@1@@Z @ 598 NONAME ; void QTextFrameFormat::setPosition(enum QTextFrameFormat::Position) + ??_EQPlainTextEdit@@UAE@I@Z @ 599 NONAME ; QPlainTextEdit::~QPlainTextEdit(unsigned int) + ?tr@QHBoxLayout@@SA?AVQString@@PBD0H@Z @ 600 NONAME ; class QString QHBoxLayout::tr(char const *, char const *, int) + ?getHsv@QColor@@QBEXPAH000@Z @ 601 NONAME ; void QColor::getHsv(int *, int *, int *, int *) const + ??8QItemSelectionRange@@QBE_NABV0@@Z @ 602 NONAME ; bool QItemSelectionRange::operator==(class QItemSelectionRange const &) const + ?translationList@QGraphicsItemAnimation@@QBE?AV?$QList@U?$QPair@MVQPointF@@@@@@XZ @ 603 NONAME ; class QList > QGraphicsItemAnimation::translationList(void) const + ?undoTextChanged@QUndoGroup@@IAEXABVQString@@@Z @ 604 NONAME ; void QUndoGroup::undoTextChanged(class QString const &) + ?addMenu@QMenu@@QAEPAV1@ABVQIcon@@ABVQString@@@Z @ 605 NONAME ; class QMenu * QMenu::addMenu(class QIcon const &, class QString const &) + ??1QCheckBox@@UAE@XZ @ 606 NONAME ; QCheckBox::~QCheckBox(void) + ?unsetUrlHandler@QDesktopServices@@SAXABVQString@@@Z @ 607 NONAME ; void QDesktopServices::unsetUrlHandler(class QString const &) + ?unsetHotSpot@QGesture@@QAEXXZ @ 608 NONAME ; void QGesture::unsetHotSpot(void) + ?drawPoints@QPainter@@QAEXABVQPolygonF@@@Z @ 609 NONAME ; void QPainter::drawPoints(class QPolygonF const &) + ?setModel@QTableWidget@@EAEXPAVQAbstractItemModel@@@Z @ 610 NONAME ; void QTableWidget::setModel(class QAbstractItemModel *) + ?parseNextMedium@Parser@QCss@@QAE_NPAVQStringList@@@Z @ 611 NONAME ; bool QCss::Parser::parseNextMedium(class QStringList *) + ?addEllipse@QPainterPath@@QAEXMMMM@Z @ 612 NONAME ; void QPainterPath::addEllipse(float, float, float, float) + ??D@YA?AVQPainterPath@@ABV0@ABVQTransform@@@Z @ 613 NONAME ; class QPainterPath operator*(class QPainterPath const &, class QTransform const &) + ?setTabToolTip@QTabBar@@QAEXHABVQString@@@Z @ 614 NONAME ; void QTabBar::setTabToolTip(int, class QString const &) + ??0QStyleOptionProgressBar@@QAE@XZ @ 615 NONAME ; QStyleOptionProgressBar::QStyleOptionProgressBar(void) + ?staticMetaObject@QPaintBufferResource@@2UQMetaObject@@B @ 616 NONAME ; struct QMetaObject const QPaintBufferResource::staticMetaObject + ?buddy@QLabel@@QBEPAVQWidget@@XZ @ 617 NONAME ; class QWidget * QLabel::buddy(void) const + ?testClass@Parser@QCss@@QAE_NXZ @ 618 NONAME ; bool QCss::Parser::testClass(void) + ?updatePasswordEchoEditing@QLineControl@@QAEX_N@Z @ 619 NONAME ; void QLineControl::updatePasswordEchoEditing(bool) + ?textEdited@QLineControl@@IAEXABVQString@@@Z @ 620 NONAME ; void QLineControl::textEdited(class QString const &) + ?refresh@QSplitter@@QAEXXZ @ 621 NONAME ; void QSplitter::refresh(void) + ?setBackgroundMode@QPainter@@QAEXW4BGMode@Qt@@@Z @ 622 NONAME ; void QPainter::setBackgroundMode(enum Qt::BGMode) + ?mouseReleaseEvent@QSplitterHandle@@MAEXPAVQMouseEvent@@@Z @ 623 NONAME ; void QSplitterHandle::mouseReleaseEvent(class QMouseEvent *) + ??0QStyleOptionTabV3@@QAE@ABVQStyleOptionTabV2@@@Z @ 624 NONAME ; QStyleOptionTabV3::QStyleOptionTabV3(class QStyleOptionTabV2 const &) + ?setMaximumHeight@QWidget@@QAEXH@Z @ 625 NONAME ; void QWidget::setMaximumHeight(int) + ?setActiveWindow@QGraphicsScene@@QAEXPAVQGraphicsWidget@@@Z @ 626 NONAME ; void QGraphicsScene::setActiveWindow(class QGraphicsWidget *) + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPointF@@W4ItemSelectionMode@Qt@@W4SortOrder@5@ABVQTransform@@@Z @ 627 NONAME ; class QList QGraphicsScene::items(class QPointF const &, enum Qt::ItemSelectionMode, enum Qt::SortOrder, class QTransform const &) const + ?height@QItemSelectionRange@@QBEHXZ @ 628 NONAME ; int QItemSelectionRange::height(void) const + ??0QImageReader@@QAE@PAVQIODevice@@ABVQByteArray@@@Z @ 629 NONAME ; QImageReader::QImageReader(class QIODevice *, class QByteArray const &) + ?setCurrentRow@QListWidget@@QAEXHV?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 630 NONAME ; void QListWidget::setCurrentRow(int, class QFlags) + ?trUtf8@QWorkspace@@SA?AVQString@@PBD0H@Z @ 631 NONAME ; class QString QWorkspace::trUtf8(char const *, char const *, int) + ?maximum@QSpinBox@@QBEHXZ @ 632 NONAME ; int QSpinBox::maximum(void) const + ?d_func@QLCDNumber@@ABEPBVQLCDNumberPrivate@@XZ @ 633 NONAME ; class QLCDNumberPrivate const * QLCDNumber::d_func(void) const + ?tr@QDoubleSpinBox@@SA?AVQString@@PBD0H@Z @ 634 NONAME ; class QString QDoubleSpinBox::tr(char const *, char const *, int) + ?jumpToImage@QImageReader@@QAE_NH@Z @ 635 NONAME ; bool QImageReader::jumpToImage(int) + ?scalar@QQuaternion@@QBEMXZ @ 636 NONAME ; float QQuaternion::scalar(void) const + ?getStaticMetaObject@QTimeEdit@@SAABUQMetaObject@@XZ @ 637 NONAME ; struct QMetaObject const & QTimeEdit::getStaticMetaObject(void) + ??BQPalette@@QBE?AVQVariant@@XZ @ 638 NONAME ; QPalette::operator class QVariant(void) const + ?getStaticMetaObject@QTreeView@@SAABUQMetaObject@@XZ @ 639 NONAME ; struct QMetaObject const & QTreeView::getStaticMetaObject(void) + ?setStretchLastSection@QHeaderView@@QAEX_N@Z @ 640 NONAME ; void QHeaderView::setStretchLastSection(bool) + ?map@QTransform@@QBE?AVQPainterPath@@ABV2@@Z @ 641 NONAME ; class QPainterPath QTransform::map(class QPainterPath const &) const + ?currentIndex@QToolBox@@QBEHXZ @ 642 NONAME ; int QToolBox::currentIndex(void) const + ?setUnderlineStyle@QTextCharFormat@@QAEXW4UnderlineStyle@1@@Z @ 643 NONAME ; void QTextCharFormat::setUnderlineStyle(enum QTextCharFormat::UnderlineStyle) + ??0QTableWidgetItem@@QAE@ABV0@@Z @ 644 NONAME ; QTableWidgetItem::QTableWidgetItem(class QTableWidgetItem const &) + ?setText@QTreeWidgetItem@@QAEXHABVQString@@@Z @ 645 NONAME ; void QTreeWidgetItem::setText(int, class QString const &) + ?removeItem@QGraphicsLinearLayout@@QAEXPAVQGraphicsLayoutItem@@@Z @ 646 NONAME ; void QGraphicsLinearLayout::removeItem(class QGraphicsLayoutItem *) + ?headerData@QDirModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 647 NONAME ; class QVariant QDirModel::headerData(int, enum Qt::Orientation, int) const + ?tr@QLineEdit@@SA?AVQString@@PBD0@Z @ 648 NONAME ; class QString QLineEdit::tr(char const *, char const *) + ?globalY@QWheelEvent@@QBEHXZ @ 649 NONAME ; int QWheelEvent::globalY(void) const + ??1QClipboard@@EAE@XZ @ 650 NONAME ; QClipboard::~QClipboard(void) + ??0QTextLayout@@QAE@XZ @ 651 NONAME ; QTextLayout::QTextLayout(void) + ?keyPressEvent@QTabBar@@MAEXPAVQKeyEvent@@@Z @ 652 NONAME ; void QTabBar::keyPressEvent(class QKeyEvent *) + ?colorProperty@QTextFormat@@QBE?AVQColor@@H@Z @ 653 NONAME ; class QColor QTextFormat::colorProperty(int) const + ?addLayout@QBoxLayout@@QAEXPAVQLayout@@H@Z @ 654 NONAME ; void QBoxLayout::addLayout(class QLayout *, int) + ?hovered@QActionGroup@@IAEXPAVQAction@@@Z @ 655 NONAME ; void QActionGroup::hovered(class QAction *) + ?stack@QUndoView@@QBEPAVQUndoStack@@XZ @ 656 NONAME ; class QUndoStack * QUndoView::stack(void) const + ?squareToQuad@QTransform@@SA_NABVQPolygonF@@AAV1@@Z @ 657 NONAME ; bool QTransform::squareToQuad(class QPolygonF const &, class QTransform &) + ?controlPointRect@QPainterPath@@QBE?AVQRectF@@XZ @ 658 NONAME ; class QRectF QPainterPath::controlPointRect(void) const + ?language@QCoeFepInputContext@@UAE?AVQString@@XZ @ 659 NONAME ; class QString QCoeFepInputContext::language(void) + ?horizontalScrollbarAction@QTableView@@MAEXH@Z @ 660 NONAME ; void QTableView::horizontalScrollbarAction(int) + ?qt_metacall@QGraphicsView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 661 NONAME ; int QGraphicsView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?itemPrototype@QStandardItemModel@@QBEPBVQStandardItem@@XZ @ 662 NONAME ; class QStandardItem const * QStandardItemModel::itemPrototype(void) const + ?shortcut@QAbstractButton@@QBE?AVQKeySequence@@XZ @ 663 NONAME ; class QKeySequence QAbstractButton::shortcut(void) const + ?sizeHint@QMessageBox@@UBE?AVQSize@@XZ @ 664 NONAME ; class QSize QMessageBox::sizeHint(void) const + ?joinPreviousEditBlock@QTextCursor@@QAEXXZ @ 665 NONAME ; void QTextCursor::joinPreviousEditBlock(void) + ?setRightPadding@QTextTableCellFormat@@QAEXM@Z @ 666 NONAME ; void QTextTableCellFormat::setRightPadding(float) + ??_EQGraphicsRectItem@@UAE@I@Z @ 667 NONAME ; QGraphicsRectItem::~QGraphicsRectItem(unsigned int) + ?qtVectorPathForPath@@YAABVQVectorPath@@ABVQPainterPath@@@Z @ 668 NONAME ; class QVectorPath const & qtVectorPathForPath(class QPainterPath const &) + ??4QStyleOptionProgressBarV2@@QAEAAV0@ABVQStyleOptionProgressBar@@@Z @ 669 NONAME ; class QStyleOptionProgressBarV2 & QStyleOptionProgressBarV2::operator=(class QStyleOptionProgressBar const &) + ?rowSpacing@QGraphicsGridLayout@@QBEMH@Z @ 670 NONAME ; float QGraphicsGridLayout::rowSpacing(int) const + ?d_func@QWorkspace@@AAEPAVQWorkspacePrivate@@XZ @ 671 NONAME ; class QWorkspacePrivate * QWorkspace::d_func(void) + ?translate@QPolygonF@@QAEXABVQPointF@@@Z @ 672 NONAME ; void QPolygonF::translate(class QPointF const &) + ?translated@QPolygonF@@QBE?AV1@ABVQPointF@@@Z @ 673 NONAME ; class QPolygonF QPolygonF::translated(class QPointF const &) const + ?setPositionForIndex@QListView@@IAEXABVQPoint@@ABVQModelIndex@@@Z @ 674 NONAME ; void QListView::setPositionForIndex(class QPoint const &, class QModelIndex const &) + ?smallDecimalPoint@QLCDNumber@@QBE_NXZ @ 675 NONAME ; bool QLCDNumber::smallDecimalPoint(void) const + ?getStaticMetaObject@QAction@@SAABUQMetaObject@@XZ @ 676 NONAME ; struct QMetaObject const & QAction::getStaticMetaObject(void) + ?description@QImageWriter@@QBE?AVQString@@XZ @ 677 NONAME ; class QString QImageWriter::description(void) const + ??1QStyleOptionToolBoxV2@@QAE@XZ @ 678 NONAME ; QStyleOptionToolBoxV2::~QStyleOptionToolBoxV2(void) + ??_EQMdiSubWindow@@UAE@I@Z @ 679 NONAME ; QMdiSubWindow::~QMdiSubWindow(unsigned int) + ?setAccelerated@QAbstractSpinBox@@QAEX_N@Z @ 680 NONAME ; void QAbstractSpinBox::setAccelerated(bool) + ??1QGesture@@UAE@XZ @ 681 NONAME ; QGesture::~QGesture(void) + ?rehighlight@QSyntaxHighlighter@@QAEXXZ @ 682 NONAME ; void QSyntaxHighlighter::rehighlight(void) + ?d_func@QComboBox@@ABEPBVQComboBoxPrivate@@XZ @ 683 NONAME ; class QComboBoxPrivate const * QComboBox::d_func(void) const + ?clearUndo@QLineControl@@QAEXXZ @ 684 NONAME ; void QLineControl::clearUndo(void) + ?setNameFilters@QFileDialog@@QAEXABVQStringList@@@Z @ 685 NONAME ; void QFileDialog::setNameFilters(class QStringList const &) + ?fixup@QAbstractSpinBox@@UBEXAAVQString@@@Z @ 686 NONAME ; void QAbstractSpinBox::fixup(class QString &) const + ?minimum@QProgressBar@@QBEHXZ @ 687 NONAME ; int QProgressBar::minimum(void) const + ?focusInEvent@QGraphicsItem@@MAEXPAVQFocusEvent@@@Z @ 688 NONAME ; void QGraphicsItem::focusInEvent(class QFocusEvent *) + ?removePage@QWizard@@QAEXH@Z @ 689 NONAME ; void QWizard::removePage(int) + ?stepUp@QAbstractSpinBox@@QAEXXZ @ 690 NONAME ; void QAbstractSpinBox::stepUp(void) + ?currentIndex@QStackedWidget@@QBEHXZ @ 691 NONAME ; int QStackedWidget::currentIndex(void) const + ?scrollToItem@QTableWidget@@QAEXPBVQTableWidgetItem@@W4ScrollHint@QAbstractItemView@@@Z @ 692 NONAME ; void QTableWidget::scrollToItem(class QTableWidgetItem const *, enum QAbstractItemView::ScrollHint) + ??0QGraphicsLinearLayout@@QAE@PAVQGraphicsLayoutItem@@@Z @ 693 NONAME ; QGraphicsLinearLayout::QGraphicsLinearLayout(class QGraphicsLayoutItem *) + ?setTitle@QGroupBox@@QAEXABVQString@@@Z @ 694 NONAME ; void QGroupBox::setTitle(class QString const &) + ?paint@QGraphicsTextItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 695 NONAME ; void QGraphicsTextItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?hoverEnterEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 696 NONAME ; void QGraphicsProxyWidget::hoverEnterEvent(class QGraphicsSceneHoverEvent *) + ?pixelSize@QFontInfo@@QBEHXZ @ 697 NONAME ; int QFontInfo::pixelSize(void) const + ?visualItemRect@QListWidget@@QBE?AVQRect@@PBVQListWidgetItem@@@Z @ 698 NONAME ; class QRect QListWidget::visualItemRect(class QListWidgetItem const *) const + ?undoLimit@QUndoStack@@QBEHXZ @ 699 NONAME ; int QUndoStack::undoLimit(void) const + ?setSuffix@QDoubleSpinBox@@QAEXABVQString@@@Z @ 700 NONAME ; void QDoubleSpinBox::setSuffix(class QString const &) + ?fontStyleHint@QTextCharFormat@@QBE?AW4StyleHint@QFont@@XZ @ 701 NONAME ; enum QFont::StyleHint QTextCharFormat::fontStyleHint(void) const + ?trUtf8@QDockWidget@@SA?AVQString@@PBD0@Z @ 702 NONAME ; class QString QDockWidget::trUtf8(char const *, char const *) + ?tr@QWidgetAction@@SA?AVQString@@PBD0@Z @ 703 NONAME ; class QString QWidgetAction::tr(char const *, char const *) + ?resolveFont@QGraphicsItemPrivate@@UAEXI@Z @ 704 NONAME ; void QGraphicsItemPrivate::resolveFont(unsigned int) + ?getStaticMetaObject@QStackedWidget@@SAABUQMetaObject@@XZ @ 705 NONAME ; struct QMetaObject const & QStackedWidget::getStaticMetaObject(void) + ??_EQValidator@@UAE@I@Z @ 706 NONAME ; QValidator::~QValidator(unsigned int) + ?changeEvent@QGraphicsWidget@@MAEXPAVQEvent@@@Z @ 707 NONAME ; void QGraphicsWidget::changeEvent(class QEvent *) + ?tr@QAbstractItemView@@SA?AVQString@@PBD0@Z @ 708 NONAME ; class QString QAbstractItemView::tr(char const *, char const *) + ??0QStyleOptionFrameV3@@IAE@H@Z @ 709 NONAME ; QStyleOptionFrameV3::QStyleOptionFrameV3(int) + ?messageChanged@QSplashScreen@@IAEXABVQString@@@Z @ 710 NONAME ; void QSplashScreen::messageChanged(class QString const &) + ?rootPathChanged@QFileSystemModel@@IAEXABVQString@@@Z @ 711 NONAME ; void QFileSystemModel::rootPathChanged(class QString const &) + ?getStaticMetaObject@QPixmapDropShadowFilter@@SAABUQMetaObject@@XZ @ 712 NONAME ; struct QMetaObject const & QPixmapDropShadowFilter::getStaticMetaObject(void) + ?visibilityRequest@QTextControl@@IAEXABVQRectF@@@Z @ 713 NONAME ; void QTextControl::visibilityRequest(class QRectF const &) + ?qt_metacall@QPushButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 714 NONAME ; int QPushButton::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isOverlapped@QWidgetPrivate@@QBE_NABVQRect@@@Z @ 715 NONAME ; bool QWidgetPrivate::isOverlapped(class QRect const &) const + ?trUtf8@QHeaderView@@SA?AVQString@@PBD0H@Z @ 716 NONAME ; class QString QHeaderView::trUtf8(char const *, char const *, int) + ??1QWidget@@UAE@XZ @ 717 NONAME ; QWidget::~QWidget(void) + ?valueF@QColor@@QBEMXZ @ 718 NONAME ; float QColor::valueF(void) const + ??0QGraphicsItem@@QAE@PAV0@PAVQGraphicsScene@@@Z @ 719 NONAME ; QGraphicsItem::QGraphicsItem(class QGraphicsItem *, class QGraphicsScene *) + ?setOption@QImageIOHandler@@UAEXW4ImageOption@1@ABVQVariant@@@Z @ 720 NONAME ; void QImageIOHandler::setOption(enum QImageIOHandler::ImageOption, class QVariant const &) + ?mouseMoveEvent@QLineEdit@@MAEXPAVQMouseEvent@@@Z @ 721 NONAME ; void QLineEdit::mouseMoveEvent(class QMouseEvent *) + ?drawArc@QPainter@@QAEXHHHHHH@Z @ 722 NONAME ; void QPainter::drawArc(int, int, int, int, int, int) + ?setInvertedControls@QAbstractSlider@@QAEX_N@Z @ 723 NONAME ; void QAbstractSlider::setInvertedControls(bool) + ?q_func@QLayoutPrivate@@ABEPBVQLayout@@XZ @ 724 NONAME ; class QLayout const * QLayoutPrivate::q_func(void) const + ?d_func@QSortFilterProxyModel@@AAEPAVQSortFilterProxyModelPrivate@@XZ @ 725 NONAME ; class QSortFilterProxyModelPrivate * QSortFilterProxyModel::d_func(void) + ?separate@QLineControl@@AAEXXZ @ 726 NONAME ; void QLineControl::separate(void) + ?createDatabase@QFontDatabase@@CAXXZ @ 727 NONAME ; void QFontDatabase::createDatabase(void) + ?wheelEvent@QAbstractSlider@@MAEXPAVQWheelEvent@@@Z @ 728 NONAME ; void QAbstractSlider::wheelEvent(class QWheelEvent *) + ?tabsClosable@QTabBar@@QBE_NXZ @ 729 NONAME ; bool QTabBar::tabsClosable(void) const + ?loopCount@QImageReader@@QBEHXZ @ 730 NONAME ; int QImageReader::loopCount(void) const + ?staticMetaObject@QDrag@@2UQMetaObject@@B @ 731 NONAME ; struct QMetaObject const QDrag::staticMetaObject + ?parameterSplitLeft@QBezier@@QAEXMPAV1@@Z @ 732 NONAME ; void QBezier::parameterSplitLeft(float, class QBezier *) + ?qt_metacall@QComboBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 733 NONAME ; int QComboBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ??EQTreeWidgetItemIterator@@QAEAAV0@XZ @ 734 NONAME ; class QTreeWidgetItemIterator & QTreeWidgetItemIterator::operator++(void) + ?move@QRubberBand@@QAEXHH@Z @ 735 NONAME ; void QRubberBand::move(int, int) + ??0QTabletEvent@@QAE@W4Type@QEvent@@ABVQPoint@@1ABVQPointF@@HHMHHMMHV?$QFlags@W4KeyboardModifier@Qt@@@@_J@Z @ 736 NONAME ; QTabletEvent::QTabletEvent(enum QEvent::Type, class QPoint const &, class QPoint const &, class QPointF const &, int, int, float, int, int, float, float, int, class QFlags, long long) + ?setTransform@QBrush@@QAEXABVQTransform@@@Z @ 737 NONAME ; void QBrush::setTransform(class QTransform const &) + ??Fiterator@QTextBlock@@QAE?AV01@H@Z @ 738 NONAME ; class QTextBlock::iterator QTextBlock::iterator::operator--(int) + ?setToolButtonStyle@QToolButton@@QAEXW4ToolButtonStyle@Qt@@@Z @ 739 NONAME ; void QToolButton::setToolButtonStyle(enum Qt::ToolButtonStyle) + ?setCurrentPage@QCalendarWidget@@QAEXHH@Z @ 740 NONAME ; void QCalendarWidget::setCurrentPage(int, int) + ?mimeData@QDrag@@QBEPAVQMimeData@@XZ @ 741 NONAME ; class QMimeData * QDrag::mimeData(void) const + ?registerDropSite@QWidgetPrivate@@QAEX_N@Z @ 742 NONAME ; void QWidgetPrivate::registerDropSite(bool) + ?metaObject@QShortcut@@UBEPBUQMetaObject@@XZ @ 743 NONAME ; struct QMetaObject const * QShortcut::metaObject(void) const + ?format@QDropEvent@@UBEPBDH@Z @ 744 NONAME ; char const * QDropEvent::format(int) const + ??0QStyleOptionTabBarBase@@IAE@H@Z @ 745 NONAME ; QStyleOptionTabBarBase::QStyleOptionTabBarBase(int) + ?sizeHint@QGraphicsGridLayout@@UBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 746 NONAME ; class QSizeF QGraphicsGridLayout::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ??_EQDragLeaveEvent@@UAE@I@Z @ 747 NONAME ; QDragLeaveEvent::~QDragLeaveEvent(unsigned int) + ?toLast@QDataWidgetMapper@@QAEXXZ @ 748 NONAME ; void QDataWidgetMapper::toLast(void) + ??0QStyleOptionFocusRect@@QAE@XZ @ 749 NONAME ; QStyleOptionFocusRect::QStyleOptionFocusRect(void) + ?setActiveAction@QMenu@@QAEXPAVQAction@@@Z @ 750 NONAME ; void QMenu::setActiveAction(class QAction *) + ?d_func@QGraphicsView@@ABEPBVQGraphicsViewPrivate@@XZ @ 751 NONAME ; class QGraphicsViewPrivate const * QGraphicsView::d_func(void) const + ?drawContents@QTextControl@@QAEXPAVQPainter@@ABVQRectF@@PAVQWidget@@@Z @ 752 NONAME ; void QTextControl::drawContents(class QPainter *, class QRectF const &, class QWidget *) + ?cellPadding@QTextTableFormat@@QBEMXZ @ 753 NONAME ; float QTextTableFormat::cellPadding(void) const + ?trUtf8@QGraphicsScene@@SA?AVQString@@PBD0H@Z @ 754 NONAME ; class QString QGraphicsScene::trUtf8(char const *, char const *, int) + ?setTouchPointStates@QTouchEvent@@QAEXV?$QFlags@W4TouchPointState@Qt@@@@@Z @ 755 NONAME ; void QTouchEvent::setTouchPointStates(class QFlags) + ??_EQPaintEvent@@UAE@I@Z @ 756 NONAME ; QPaintEvent::~QPaintEvent(unsigned int) + ?screenPos@QGraphicsSceneHelpEvent@@QBE?AVQPoint@@XZ @ 757 NONAME ; class QPoint QGraphicsSceneHelpEvent::screenPos(void) const + ?subTitleFormat@QWizard@@QBE?AW4TextFormat@Qt@@XZ @ 758 NONAME ; enum Qt::TextFormat QWizard::subTitleFormat(void) const + ?clear@QLabel@@QAEXXZ @ 759 NONAME ; void QLabel::clear(void) + ?flags@QStandardItemModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 760 NONAME ; class QFlags QStandardItemModel::flags(class QModelIndex const &) const + ?inputMethodHints@QGraphicsItem@@QBE?AV?$QFlags@W4InputMethodHint@Qt@@@@XZ @ 761 NONAME ; class QFlags QGraphicsItem::inputMethodHints(void) const + ?hue@QColor@@QBEHXZ @ 762 NONAME ; int QColor::hue(void) const + ?tr@QFrame@@SA?AVQString@@PBD0@Z @ 763 NONAME ; class QString QFrame::tr(char const *, char const *) + ?grabShortcut@QGraphicsWidget@@QAEHABVQKeySequence@@W4ShortcutContext@Qt@@@Z @ 764 NONAME ; int QGraphicsWidget::grabShortcut(class QKeySequence const &, enum Qt::ShortcutContext) + ??0QLabel@@QAE@ABVQString@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 765 NONAME ; QLabel::QLabel(class QString const &, class QWidget *, class QFlags) + ?yellowF@QColor@@QBEMXZ @ 766 NONAME ; float QColor::yellowF(void) const + ?setStickyFocus@QGraphicsScene@@QAEX_N@Z @ 767 NONAME ; void QGraphicsScene::setStickyFocus(bool) + ?isUndoAvailable@QLineControl@@QBE_NXZ @ 768 NONAME ; bool QLineControl::isUndoAvailable(void) const + ??1QTouchEvent@@UAE@XZ @ 769 NONAME ; QTouchEvent::~QTouchEvent(void) + ?itemPressed@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 770 NONAME ; void QTreeWidget::itemPressed(class QTreeWidgetItem *, int) + ?textAlignment@QTableWidgetItem@@QBEHXZ @ 771 NONAME ; int QTableWidgetItem::textAlignment(void) const + ??0QItemDelegate@@QAE@PAVQObject@@@Z @ 772 NONAME ; QItemDelegate::QItemDelegate(class QObject *) + ?qt_metacast@QPinchGesture@@UAEPAXPBD@Z @ 773 NONAME ; void * QPinchGesture::qt_metacast(char const *) + ?accessibleDescription@QStandardItem@@QBE?AVQString@@XZ @ 774 NONAME ; class QString QStandardItem::accessibleDescription(void) const + ?toPlainText@QPlainTextEdit@@QBE?AVQString@@XZ @ 775 NONAME ; class QString QPlainTextEdit::toPlainText(void) const + ?pos@QGraphicsSceneDragDropEvent@@QBE?AVQPointF@@XZ @ 776 NONAME ; class QPointF QGraphicsSceneDragDropEvent::pos(void) const + ?qt_metacall@QScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 777 NONAME ; int QScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setIndex@QUndoStack@@QAEXH@Z @ 778 NONAME ; void QUndoStack::setIndex(int) + ??0QConicalGradient@@QAE@XZ @ 779 NONAME ; QConicalGradient::QConicalGradient(void) + ??4QMatrix@@QAEAAV0@ABV0@@Z @ 780 NONAME ; class QMatrix & QMatrix::operator=(class QMatrix const &) + ?isCopyOf@QFont@@QBE_NABV1@@Z @ 781 NONAME ; bool QFont::isCopyOf(class QFont const &) const + ?regExp@QRegExpValidator@@QBEABVQRegExp@@XZ @ 782 NONAME ; class QRegExp const & QRegExpValidator::regExp(void) const + ?setShape@QTabBar@@QAEXW4Shape@1@@Z @ 783 NONAME ; void QTabBar::setShape(enum QTabBar::Shape) + ?push@QUndoStack@@QAEXPAVQUndoCommand@@@Z @ 784 NONAME ; void QUndoStack::push(class QUndoCommand *) + ?staticMetaObject@QGraphicsWidget@@2UQMetaObject@@B @ 785 NONAME ; struct QMetaObject const QGraphicsWidget::staticMetaObject + ?quadToSquare@QTransform@@SA_NABVQPolygonF@@AAV1@@Z @ 786 NONAME ; bool QTransform::quadToSquare(class QPolygonF const &, class QTransform &) + ?tr@QStringListModel@@SA?AVQString@@PBD0H@Z @ 787 NONAME ; class QString QStringListModel::tr(char const *, char const *, int) + ?tr@QDial@@SA?AVQString@@PBD0@Z @ 788 NONAME ; class QString QDial::tr(char const *, char const *) + ?excludeUserInputEvents@QEventDispatcherS60@@QAE_NXZ @ 789 NONAME ; bool QEventDispatcherS60::excludeUserInputEvents(void) + ?setWhatsThis@QListWidgetItem@@QAEXABVQString@@@Z @ 790 NONAME ; void QListWidgetItem::setWhatsThis(class QString const &) + ?setLayoutItemMargins@QWidgetPrivate@@QAEXW4SubElement@QStyle@@PBVQStyleOption@@@Z @ 791 NONAME ; void QWidgetPrivate::setLayoutItemMargins(enum QStyle::SubElement, class QStyleOption const *) + ?qt_metacast@QGraphicsSystemPlugin@@UAEPAXPBD@Z @ 792 NONAME ; void * QGraphicsSystemPlugin::qt_metacast(char const *) + ?getStaticMetaObject@QLCDNumber@@SAABUQMetaObject@@XZ @ 793 NONAME ; struct QMetaObject const & QLCDNumber::getStaticMetaObject(void) + ?trUtf8@QDateTimeEdit@@SA?AVQString@@PBD0H@Z @ 794 NONAME ; class QString QDateTimeEdit::trUtf8(char const *, char const *, int) + ?tabChangesFocus@QPlainTextEdit@@QBE_NXZ @ 795 NONAME ; bool QPlainTextEdit::tabChangesFocus(void) const + ?scrollToTop@QAbstractItemView@@QAEXXZ @ 796 NONAME ; void QAbstractItemView::scrollToTop(void) + ?detach@QPalette@@AAEXXZ @ 797 NONAME ; void QPalette::detach(void) + ?action@QActionEvent@@QBEPAVQAction@@XZ @ 798 NONAME ; class QAction * QActionEvent::action(void) const + ?event@QClipboard@@MAE_NPAVQEvent@@@Z @ 799 NONAME ; bool QClipboard::event(class QEvent *) + ?setSelectionBehavior@QAbstractItemView@@QAEXW4SelectionBehavior@1@@Z @ 800 NONAME ; void QAbstractItemView::setSelectionBehavior(enum QAbstractItemView::SelectionBehavior) + ?staticMetaObject@QMenu@@2UQMetaObject@@B @ 801 NONAME ; struct QMetaObject const QMenu::staticMetaObject + ?qt_metacall@QProgressDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 802 NONAME ; int QProgressDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ?toVector4D@QQuaternion@@QBE?AVQVector4D@@XZ @ 803 NONAME ; class QVector4D QQuaternion::toVector4D(void) const + ?tr@QGraphicsAnchor@@SA?AVQString@@PBD0@Z @ 804 NONAME ; class QString QGraphicsAnchor::tr(char const *, char const *) + ?insertTopLevelItems@QTreeWidget@@QAEXHABV?$QList@PAVQTreeWidgetItem@@@@@Z @ 805 NONAME ; void QTreeWidget::insertTopLevelItems(int, class QList const &) + ?updateGeometries@QTreeView@@MAEXXZ @ 806 NONAME ; void QTreeView::updateGeometries(void) + ?setOptions@QColorDialog@@QAEXV?$QFlags@W4ColorDialogOption@QColorDialog@@@@@Z @ 807 NONAME ; void QColorDialog::setOptions(class QFlags) + ?qt_find_ellipse_coords@@YAXABVQRectF@@MMPAVQPointF@@1@Z @ 808 NONAME ; void qt_find_ellipse_coords(class QRectF const &, float, float, class QPointF *, class QPointF *) + ?anchor@QGraphicsAnchorLayout@@QAEPAVQGraphicsAnchor@@PAVQGraphicsLayoutItem@@W4AnchorPoint@Qt@@01@Z @ 809 NONAME ; class QGraphicsAnchor * QGraphicsAnchorLayout::anchor(class QGraphicsLayoutItem *, enum Qt::AnchorPoint, class QGraphicsLayoutItem *, enum Qt::AnchorPoint) + ?mapSelectionToSource@QAbstractProxyModel@@UBE?AVQItemSelection@@ABV2@@Z @ 810 NONAME ; class QItemSelection QAbstractProxyModel::mapSelectionToSource(class QItemSelection const &) const + ?doubleValueChanged@QInputDialog@@IAEXN@Z @ 811 NONAME ; void QInputDialog::doubleValueChanged(double) + ?start@QDrag@@QAE?AW4DropAction@Qt@@V?$QFlags@W4DropAction@Qt@@@@@Z @ 812 NONAME ; enum Qt::DropAction QDrag::start(class QFlags) + ?nativeWindowDeco@QDockWidgetLayout@@QBE_NXZ @ 813 NONAME ; bool QDockWidgetLayout::nativeWindowDeco(void) const + ?itemTextRect@QStyle@@UBE?AVQRect@@ABVQFontMetrics@@ABV2@H_NABVQString@@@Z @ 814 NONAME ; class QRect QStyle::itemTextRect(class QFontMetrics const &, class QRect const &, int, bool, class QString const &) const + ?_q_deleteSelected@QLineControl@@AAEXXZ @ 815 NONAME ; void QLineControl::_q_deleteSelected(void) + ?notchTarget@QDial@@QBEMXZ @ 816 NONAME ; float QDial::notchTarget(void) const + ?replace@QPixmapCache@@SA_NABVKey@1@ABVQPixmap@@@Z @ 817 NONAME ; bool QPixmapCache::replace(class QPixmapCache::Key const &, class QPixmap const &) + ?init@QLineControl@@AAEXABVQString@@@Z @ 818 NONAME ; void QLineControl::init(class QString const &) + ?qt_metacast@QTextControl@@UAEPAXPBD@Z @ 819 NONAME ; void * QTextControl::qt_metacast(char const *) + ?insertRow@QFormLayout@@QAEXHPAVQWidget@@0@Z @ 820 NONAME ; void QFormLayout::insertRow(int, class QWidget *, class QWidget *) + ?mergeCurrentCharFormat@QTextEdit@@QAEXABVQTextCharFormat@@@Z @ 821 NONAME ; void QTextEdit::mergeCurrentCharFormat(class QTextCharFormat const &) + ??_EQImageIOHandler@@UAE@I@Z @ 822 NONAME ; QImageIOHandler::~QImageIOHandler(unsigned int) + ?doubleMinimum@QInputDialog@@QBENXZ @ 823 NONAME ; double QInputDialog::doubleMinimum(void) const + ?qt_defaultDpiX@@YAHXZ @ 824 NONAME ; int qt_defaultDpiX(void) + ?event@QMessageBox@@MAE_NPAVQEvent@@@Z @ 825 NONAME ; bool QMessageBox::event(class QEvent *) + ?getStaticMetaObject@QListView@@SAABUQMetaObject@@XZ @ 826 NONAME ; struct QMetaObject const & QListView::getStaticMetaObject(void) + ?derivedAt@QBezier@@QBE?AVQPointF@@M@Z @ 827 NONAME ; class QPointF QBezier::derivedAt(float) const + ?size@QImage@@QBE?AVQSize@@XZ @ 828 NONAME ; class QSize QImage::size(void) const + ?staticMetaObject@QWizardPage@@2UQMetaObject@@B @ 829 NONAME ; struct QMetaObject const QWizardPage::staticMetaObject + ?dropEvent@QTreeWidget@@MAEXPAVQDropEvent@@@Z @ 830 NONAME ; void QTreeWidget::dropEvent(class QDropEvent *) + ?graphicsItem@QGraphicsEffectSource@@QBEPBVQGraphicsItem@@XZ @ 831 NONAME ; class QGraphicsItem const * QGraphicsEffectSource::graphicsItem(void) const + ?setSpecialValueText@QAbstractSpinBox@@QAEXABVQString@@@Z @ 832 NONAME ; void QAbstractSpinBox::setSpecialValueText(class QString const &) + ??4QPainterPath@@QAEAAV0@ABV0@@Z @ 833 NONAME ; class QPainterPath & QPainterPath::operator=(class QPainterPath const &) + ?trUtf8@QSound@@SA?AVQString@@PBD0H@Z @ 834 NONAME ; class QString QSound::trUtf8(char const *, char const *, int) + ?shear@QTransform@@QAEAAV1@MM@Z @ 835 NONAME ; class QTransform & QTransform::shear(float, float) + ?mapFromItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@MMMM@Z @ 836 NONAME ; class QPolygonF QGraphicsItem::mapFromItem(class QGraphicsItem const *, float, float, float, float) const + ?sizeFromContent@QDockWidgetLayout@@QBE?AVQSize@@ABV2@_N@Z @ 837 NONAME ; class QSize QDockWidgetLayout::sizeFromContent(class QSize const &, bool) const + ?render@QGraphicsScene@@QAEXPAVQPainter@@ABVQRectF@@1W4AspectRatioMode@Qt@@@Z @ 838 NONAME ; void QGraphicsScene::render(class QPainter *, class QRectF const &, class QRectF const &, enum Qt::AspectRatioMode) + ??_EQGraphicsPixmapItem@@UAE@I@Z @ 839 NONAME ; QGraphicsPixmapItem::~QGraphicsPixmapItem(unsigned int) + ??1QLineControl@@UAE@XZ @ 840 NONAME ; QLineControl::~QLineControl(void) + ?metaObject@QActionGroup@@UBEPBUQMetaObject@@XZ @ 841 NONAME ; struct QMetaObject const * QActionGroup::metaObject(void) const + ?maxInstances@QWidgetPrivate@@2HA @ 842 NONAME ; int QWidgetPrivate::maxInstances + ??0QUndoCommand@@QAE@ABVQString@@PAV0@@Z @ 843 NONAME ; QUndoCommand::QUndoCommand(class QString const &, class QUndoCommand *) + ?tr@QSlider@@SA?AVQString@@PBD0H@Z @ 844 NONAME ; class QString QSlider::tr(char const *, char const *, int) + ??_EQAbstractButton@@UAE@I@Z @ 845 NONAME ; QAbstractButton::~QAbstractButton(unsigned int) + ?setShape@QCursor@@QAEXW4CursorShape@Qt@@@Z @ 846 NONAME ; void QCursor::setShape(enum Qt::CursorShape) + ?d_func@QGraphicsRectItem@@ABEPBVQGraphicsRectItemPrivate@@XZ @ 847 NONAME ; class QGraphicsRectItemPrivate const * QGraphicsRectItem::d_func(void) const + ?addItem@QComboBox@@QAEXABVQString@@ABVQVariant@@@Z @ 848 NONAME ; void QComboBox::addItem(class QString const &, class QVariant const &) + ?setUserState@QTextBlock@@QAEXH@Z @ 849 NONAME ; void QTextBlock::setUserState(int) + ?map@QMatrix@@QBE?AVQPolygon@@ABV2@@Z @ 850 NONAME ; class QPolygon QMatrix::map(class QPolygon const &) const + ?cacheKey@QPalette@@QBE_JXZ @ 851 NONAME ; long long QPalette::cacheKey(void) const + ?update@QLayout@@QAEXXZ @ 852 NONAME ; void QLayout::update(void) + ?getStaticMetaObject@QGraphicsSystemPlugin@@SAABUQMetaObject@@XZ @ 853 NONAME ; struct QMetaObject const & QGraphicsSystemPlugin::getStaticMetaObject(void) + ?count@QKeyEvent@@QBEHXZ @ 854 NONAME ; int QKeyEvent::count(void) const + ?setSceneRect@TouchPoint@QTouchEvent@@QAEXABVQRectF@@@Z @ 855 NONAME ; void QTouchEvent::TouchPoint::setSceneRect(class QRectF const &) + ?mergeWith@QUndoCommand@@UAE_NPBV1@@Z @ 856 NONAME ; bool QUndoCommand::mergeWith(class QUndoCommand const *) + ?next@Parser@QCss@@QAE?AW4TokenType@2@XZ @ 857 NONAME ; enum QCss::TokenType QCss::Parser::next(void) + ?tr@QFontComboBox@@SA?AVQString@@PBD0@Z @ 858 NONAME ; class QString QFontComboBox::tr(char const *, char const *) + ?fromImage@QBitmap@@SA?AV1@ABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 859 NONAME ; class QBitmap QBitmap::fromImage(class QImage const &, class QFlags) + ?numScreens@QDesktopWidget@@QBEHXZ @ 860 NONAME ; int QDesktopWidget::numScreens(void) const + ?parsePseudoPage@Parser@QCss@@QAE_NPAVQString@@@Z @ 861 NONAME ; bool QCss::Parser::parsePseudoPage(class QString *) + ?pixmap@QDrag@@QBE?AVQPixmap@@XZ @ 862 NONAME ; class QPixmap QDrag::pixmap(void) const + ?drawFocus@QItemDelegate@@MBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQRect@@@Z @ 863 NONAME ; void QItemDelegate::drawFocus(class QPainter *, class QStyleOptionViewItem const &, class QRect const &) const + ?d_func@QFontComboBox@@ABEPBVQFontComboBoxPrivate@@XZ @ 864 NONAME ; class QFontComboBoxPrivate const * QFontComboBox::d_func(void) const + ?d_func@QGesture@@ABEPBVQGesturePrivate@@XZ @ 865 NONAME ; class QGesturePrivate const * QGesture::d_func(void) const + ?textPosition@QTextInlineObject@@QBEHXZ @ 866 NONAME ; int QTextInlineObject::textPosition(void) const + ?m11@QTransform@@QBEMXZ @ 867 NONAME ; float QTransform::m11(void) const + ?sceneRect@QGraphicsScene@@QBE?AVQRectF@@XZ @ 868 NONAME ; class QRectF QGraphicsScene::sceneRect(void) const + ?setButtonDownScreenPos@QGraphicsSceneMouseEvent@@QAEXW4MouseButton@Qt@@ABVQPoint@@@Z @ 869 NONAME ; void QGraphicsSceneMouseEvent::setButtonDownScreenPos(enum Qt::MouseButton, class QPoint const &) + ?tabs@QTextOption@@QBE?AV?$QList@UTab@QTextOption@@@@XZ @ 870 NONAME ; class QList QTextOption::tabs(void) const + ?mapSelectionFromSource@QSortFilterProxyModel@@UBE?AVQItemSelection@@ABV2@@Z @ 871 NONAME ; class QItemSelection QSortFilterProxyModel::mapSelectionFromSource(class QItemSelection const &) const + ?getStaticMetaObject@QInputContextPlugin@@SAABUQMetaObject@@XZ @ 872 NONAME ; struct QMetaObject const & QInputContextPlugin::getStaticMetaObject(void) + ?lessThan@QSortFilterProxyModel@@MBE_NABVQModelIndex@@0@Z @ 873 NONAME ; bool QSortFilterProxyModel::lessThan(class QModelIndex const &, class QModelIndex const &) const + ?setCurrentItem@QTableWidget@@QAEXPAVQTableWidgetItem@@@Z @ 874 NONAME ; void QTableWidget::setCurrentItem(class QTableWidgetItem *) + ?qt_metacast@QStandardItemModel@@UAEPAXPBD@Z @ 875 NONAME ; void * QStandardItemModel::qt_metacast(char const *) + ??0QKeyEventTransition@@QAE@PAVQState@@@Z @ 876 NONAME ; QKeyEventTransition::QKeyEventTransition(class QState *) + ?setActive@QWidgetResizeHandler@@QAEX_N@Z @ 877 NONAME ; void QWidgetResizeHandler::setActive(bool) + ?harfbuzzFace@QFontEngine@@QBEPAUHB_FaceRec_@@XZ @ 878 NONAME ; struct HB_FaceRec_ * QFontEngine::harfbuzzFace(void) const + ??1QGraphicsOpacityEffect@@UAE@XZ @ 879 NONAME ; QGraphicsOpacityEffect::~QGraphicsOpacityEffect(void) + ?dragLeaveEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 880 NONAME ; void QGraphicsItem::dragLeaveEvent(class QGraphicsSceneDragDropEvent *) + ??H@YA?AVQTransform@@ABV0@M@Z @ 881 NONAME ; class QTransform operator+(class QTransform const &, float) + ?setAutoScrollMargin@QAbstractItemView@@QAEXH@Z @ 882 NONAME ; void QAbstractItemView::setAutoScrollMargin(int) + ?zoomOut@QTextEdit@@QAEXH@Z @ 883 NONAME ; void QTextEdit::zoomOut(int) + ?mouseReleaseEvent@QAbstractSpinBox@@MAEXPAVQMouseEvent@@@Z @ 884 NONAME ; void QAbstractSpinBox::mouseReleaseEvent(class QMouseEvent *) + ?stackingMode@QStackedLayout@@QBE?AW4StackingMode@1@XZ @ 885 NONAME ; enum QStackedLayout::StackingMode QStackedLayout::stackingMode(void) const + ?metaObject@QCommandLinkButton@@UBEPBUQMetaObject@@XZ @ 886 NONAME ; struct QMetaObject const * QCommandLinkButton::metaObject(void) const + ?staticMetaObject@QStringListModel@@2UQMetaObject@@B @ 887 NONAME ; struct QMetaObject const QStringListModel::staticMetaObject + ?maximumBlockCount@QPlainTextEdit@@QBEHXZ @ 888 NONAME ; int QPlainTextEdit::maximumBlockCount(void) const + ?drawDisplay@QItemDelegate@@MBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQRect@@ABVQString@@@Z @ 889 NONAME ; void QItemDelegate::drawDisplay(class QPainter *, class QStyleOptionViewItem const &, class QRect const &, class QString const &) const + ?setModifiers@QGraphicsSceneWheelEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 890 NONAME ; void QGraphicsSceneWheelEvent::setModifiers(class QFlags) + ?save@QPicture@@QAE_NPAVQIODevice@@PBD@Z @ 891 NONAME ; bool QPicture::save(class QIODevice *, char const *) + ?angleAtPercent@QPainterPath@@QBEMM@Z @ 892 NONAME ; float QPainterPath::angleAtPercent(float) const + ?setWindowTitle_helper@QWidgetPrivate@@QAEXABVQString@@@Z @ 893 NONAME ; void QWidgetPrivate::setWindowTitle_helper(class QString const &) + ??0QShortcutEvent@@QAE@ABVQKeySequence@@H_N@Z @ 894 NONAME ; QShortcutEvent::QShortcutEvent(class QKeySequence const &, int, bool) + ?mapRectToItem@QGraphicsItem@@QBE?AVQRectF@@PBV1@MMMM@Z @ 895 NONAME ; class QRectF QGraphicsItem::mapRectToItem(class QGraphicsItem const *, float, float, float, float) const + ?basicSelectorMatches@StyleSelector@QCss@@AAE_NABUBasicSelector@2@TNodePtr@12@@Z @ 896 NONAME ; bool QCss::StyleSelector::basicSelectorMatches(struct QCss::BasicSelector const &, union QCss::StyleSelector::NodePtr) + ?setSizeProtection@QWidgetResizeHandler@@QAEX_N@Z @ 897 NONAME ; void QWidgetResizeHandler::setSizeProtection(bool) + ?editTriggers@QAbstractItemView@@QBE?AV?$QFlags@W4EditTrigger@QAbstractItemView@@@@XZ @ 898 NONAME ; class QFlags QAbstractItemView::editTriggers(void) const + ?setTabChangesFocus@QTextEdit@@QAEX_N@Z @ 899 NONAME ; void QTextEdit::setTabChangesFocus(bool) + ?buttonClicked@QMessageBox@@IAEXPAVQAbstractButton@@@Z @ 900 NONAME ; void QMessageBox::buttonClicked(class QAbstractButton *) + ?mapper@QWidgetPrivate@@2PAV?$QHash@PAVCCoeControl@@PAVQWidget@@@@A @ 901 NONAME ; class QHash * QWidgetPrivate::mapper + ?clear@QSortFilterProxyModel@@QAEXXZ @ 902 NONAME ; void QSortFilterProxyModel::clear(void) + ??D@YA?AVQTransform@@ABV0@M@Z @ 903 NONAME ; class QTransform operator*(class QTransform const &, float) + ?setTristate@QStandardItem@@QAEX_N@Z @ 904 NONAME ; void QStandardItem::setTristate(bool) + ?setFilterWildcard@QSortFilterProxyModel@@QAEXABVQString@@@Z @ 905 NONAME ; void QSortFilterProxyModel::setFilterWildcard(class QString const &) + ?fromRgb@QColor@@SA?AV1@HHHH@Z @ 906 NONAME ; class QColor QColor::fromRgb(int, int, int, int) + ?setText@QGraphicsSimpleTextItem@@QAEXABVQString@@@Z @ 907 NONAME ; void QGraphicsSimpleTextItem::setText(class QString const &) + ?focusNextPrevChild@QTextBrowser@@MAE_N_N@Z @ 908 NONAME ; bool QTextBrowser::focusNextPrevChild(bool) + ?cursorToX@QTextLine@@QBEMHW4Edge@1@@Z @ 909 NONAME ; float QTextLine::cursorToX(int, enum QTextLine::Edge) const + ?setConfirmOverwrite@QFileDialog@@QAEX_N@Z @ 910 NONAME ; void QFileDialog::setConfirmOverwrite(bool) + ?reset@QAbstractItemView@@UAEXXZ @ 911 NONAME ; void QAbstractItemView::reset(void) + ?next@QTextBlock@@QBE?AV1@XZ @ 912 NONAME ; class QTextBlock QTextBlock::next(void) const + ?mouseMoveEvent@QTextBrowser@@MAEXPAVQMouseEvent@@@Z @ 913 NONAME ; void QTextBrowser::mouseMoveEvent(class QMouseEvent *) + ?doMove@QWidgetResizeHandler@@QAEXXZ @ 914 NONAME ; void QWidgetResizeHandler::doMove(void) + ?invertedAppearance@QAbstractSlider@@QBE_NXZ @ 915 NONAME ; bool QAbstractSlider::invertedAppearance(void) const + ?updateIsTranslucent@QWidgetPrivate@@QAEXXZ @ 916 NONAME ; void QWidgetPrivate::updateIsTranslucent(void) + ??0QTableWidgetItem@@QAE@H@Z @ 917 NONAME ; QTableWidgetItem::QTableWidgetItem(int) + ?append@QTextEdit@@QAEXABVQString@@@Z @ 918 NONAME ; void QTextEdit::append(class QString const &) + ?setHidden@QWidget@@QAEX_N@Z @ 919 NONAME ; void QWidget::setHidden(bool) + ?actionEvent@QMenuBar@@MAEXPAVQActionEvent@@@Z @ 920 NONAME ; void QMenuBar::actionEvent(class QActionEvent *) + ??_EQIconEngine@@UAE@I@Z @ 921 NONAME ; QIconEngine::~QIconEngine(unsigned int) + ?tr@QDialog@@SA?AVQString@@PBD0H@Z @ 922 NONAME ; class QString QDialog::tr(char const *, char const *, int) + ?sortItems@QTableWidget@@QAEXHW4SortOrder@Qt@@@Z @ 923 NONAME ; void QTableWidget::sortItems(int, enum Qt::SortOrder) + ?setCurveThreshold@QPainterPathStroker@@QAEXM@Z @ 924 NONAME ; void QPainterPathStroker::setCurveThreshold(float) + ??_EQPicture@@UAE@I@Z @ 925 NONAME ; QPicture::~QPicture(unsigned int) + ?setTextWidth@QTextControl@@QAEXM@Z @ 926 NONAME ; void QTextControl::setTextWidth(float) + ?acceptProposedAction@QDropEvent@@QAEXXZ @ 927 NONAME ; void QDropEvent::acceptProposedAction(void) + ?borderStyle@QTextFrameFormat@@QBE?AW4BorderStyle@1@XZ @ 928 NONAME ; enum QTextFrameFormat::BorderStyle QTextFrameFormat::borderStyle(void) const + ?trUtf8@QErrorMessage@@SA?AVQString@@PBD0@Z @ 929 NONAME ; class QString QErrorMessage::trUtf8(char const *, char const *) + ?showText@QToolTip@@SAXABVQPoint@@ABVQString@@PAVQWidget@@@Z @ 930 NONAME ; void QToolTip::showText(class QPoint const &, class QString const &, class QWidget *) + ?d_func@QGraphicsSceneEvent@@IAEPAVQGraphicsSceneEventPrivate@@XZ @ 931 NONAME ; class QGraphicsSceneEventPrivate * QGraphicsSceneEvent::d_func(void) + ?setInputMethodHints@QWidget@@QAEXV?$QFlags@W4InputMethodHint@Qt@@@@@Z @ 932 NONAME ; void QWidget::setInputMethodHints(class QFlags) + ?keyReleaseEvent@QGraphicsItem@@MAEXPAVQKeyEvent@@@Z @ 933 NONAME ; void QGraphicsItem::keyReleaseEvent(class QKeyEvent *) + ?inputMethodEvent@QGraphicsView@@MAEXPAVQInputMethodEvent@@@Z @ 934 NONAME ; void QGraphicsView::inputMethodEvent(class QInputMethodEvent *) + ??0QCursor@@QAE@XZ @ 935 NONAME ; QCursor::QCursor(void) + ??0QHBoxLayout@@QAE@XZ @ 936 NONAME ; QHBoxLayout::QHBoxLayout(void) + ??1QS60MainDocument@@UAE@XZ @ 937 NONAME ; QS60MainDocument::~QS60MainDocument(void) + ?wrapMode@QTextOption@@QBE?AW4WrapMode@1@XZ @ 938 NONAME ; enum QTextOption::WrapMode QTextOption::wrapMode(void) const + ?tr@QMovie@@SA?AVQString@@PBD0@Z @ 939 NONAME ; class QString QMovie::tr(char const *, char const *) + ?qt_metacall@QButtonGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 940 NONAME ; int QButtonGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QAction@@SA?AVQString@@PBD0@Z @ 941 NONAME ; class QString QAction::tr(char const *, char const *) + ?staticMetaObject@QTableWidget@@2UQMetaObject@@B @ 942 NONAME ; struct QMetaObject const QTableWidget::staticMetaObject + ?insertSeparator@QToolBar@@QAEPAVQAction@@PAV2@@Z @ 943 NONAME ; class QAction * QToolBar::insertSeparator(class QAction *) + ?hasAutoScroll@QAbstractItemView@@QBE_NXZ @ 944 NONAME ; bool QAbstractItemView::hasAutoScroll(void) const + ?setReadOnly@QAbstractSpinBox@@QAEX_N@Z @ 945 NONAME ; void QAbstractSpinBox::setReadOnly(bool) + ?setLayout@QGraphicsWidget@@QAEXPAVQGraphicsLayout@@@Z @ 946 NONAME ; void QGraphicsWidget::setLayout(class QGraphicsLayout *) + ?setFlags@QTextLayout@@QAEXH@Z @ 947 NONAME ; void QTextLayout::setFlags(int) + ?d_func@QPaintEngine@@ABEPBVQPaintEnginePrivate@@XZ @ 948 NONAME ; class QPaintEnginePrivate const * QPaintEngine::d_func(void) const + ??0QStandardItemModel@@IAE@AAVQStandardItemModelPrivate@@PAVQObject@@@Z @ 949 NONAME ; QStandardItemModel::QStandardItemModel(class QStandardItemModelPrivate &, class QObject *) + ?loadResource@QTextControl@@UAE?AVQVariant@@HABVQUrl@@@Z @ 950 NONAME ; class QVariant QTextControl::loadResource(int, class QUrl const &) + ??0QGraphicsEffectPrivate@@QAE@XZ @ 951 NONAME ; QGraphicsEffectPrivate::QGraphicsEffectPrivate(void) + ?key@QShortcut@@QBE?AVQKeySequence@@XZ @ 952 NONAME ; class QKeySequence QShortcut::key(void) const + ?trUtf8@QTextEdit@@SA?AVQString@@PBD0H@Z @ 953 NONAME ; class QString QTextEdit::trUtf8(char const *, char const *, int) + ?setColumnCount@QTableWidget@@QAEXH@Z @ 954 NONAME ; void QTableWidget::setColumnCount(int) + ??XQVector3D@@QAEAAV0@M@Z @ 955 NONAME ; class QVector3D & QVector3D::operator*=(float) + ?trUtf8@QToolBox@@SA?AVQString@@PBD0H@Z @ 956 NONAME ; class QString QToolBox::trUtf8(char const *, char const *, int) + ?rotate@QPainter@@QAEXM@Z @ 957 NONAME ; void QPainter::rotate(float) + ?qt_metacast@QWidget@@UAEPAXPBD@Z @ 958 NONAME ; void * QWidget::qt_metacast(char const *) + ?qt_metacall@QUndoView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 959 NONAME ; int QUndoView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?overlinePos@QFontMetrics@@QBEHXZ @ 960 NONAME ; int QFontMetrics::overlinePos(void) const + ?modifiers@QKeyEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 961 NONAME ; class QFlags QKeyEvent::modifiers(void) const + ?blurRadius@QPixmapDropShadowFilter@@QBEHXZ @ 962 NONAME ; int QPixmapDropShadowFilter::blurRadius(void) const + ?trUtf8@QButtonGroup@@SA?AVQString@@PBD0@Z @ 963 NONAME ; class QString QButtonGroup::trUtf8(char const *, char const *) + ?staticMetaObject@QWidget@@2UQMetaObject@@B @ 964 NONAME ; struct QMetaObject const QWidget::staticMetaObject + ?mapToScene@QGraphicsView@@QBE?AVQPointF@@ABVQPoint@@@Z @ 965 NONAME ; class QPointF QGraphicsView::mapToScene(class QPoint const &) const + ?d_func@QFileIconProvider@@AAEPAVQFileIconProviderPrivate@@XZ @ 966 NONAME ; class QFileIconProviderPrivate * QFileIconProvider::d_func(void) + ?layoutDirection@QTextFormat@@QBE?AW4LayoutDirection@Qt@@XZ @ 967 NONAME ; enum Qt::LayoutDirection QTextFormat::layoutDirection(void) const + ??0QStackedLayout@@QAE@PAVQLayout@@@Z @ 968 NONAME ; QStackedLayout::QStackedLayout(class QLayout *) + ?viewOptions@QListView@@MBE?AVQStyleOptionViewItem@@XZ @ 969 NONAME ; class QStyleOptionViewItem QListView::viewOptions(void) const + ?pos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 970 NONAME ; class QPointF QTouchEvent::TouchPoint::pos(void) const + ?trUtf8@QDateTimeEdit@@SA?AVQString@@PBD0@Z @ 971 NONAME ; class QString QDateTimeEdit::trUtf8(char const *, char const *) + ?singleStep@QSpinBox@@QBEHXZ @ 972 NONAME ; int QSpinBox::singleStep(void) const + ?resizeRowToContents@QTableView@@QAEXH@Z @ 973 NONAME ; void QTableView::resizeRowToContents(int) + ?alignment@QGroupBox@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 974 NONAME ; class QFlags QGroupBox::alignment(void) const + ?addEllipse@QPainterPath@@QAEXABVQRectF@@@Z @ 975 NONAME ; void QPainterPath::addEllipse(class QRectF const &) + ?event@QMenuBar@@MAE_NPAVQEvent@@@Z @ 976 NONAME ; bool QMenuBar::event(class QEvent *) + ?changeEvent@QColorDialog@@MAEXPAVQEvent@@@Z @ 977 NONAME ; void QColorDialog::changeEvent(class QEvent *) + ?setMimeData@QClipboard@@QAEXPAVQMimeData@@W4Mode@1@@Z @ 978 NONAME ; void QClipboard::setMimeData(class QMimeData *, enum QClipboard::Mode) + ?focusNextPrevChild@QTextEdit@@MAE_N_N@Z @ 979 NONAME ; bool QTextEdit::focusNextPrevChild(bool) + ?setTristate@QCheckBox@@QAEX_N@Z @ 980 NONAME ; void QCheckBox::setTristate(bool) + ?createList@QTextCursor@@QAEPAVQTextList@@ABVQTextListFormat@@@Z @ 981 NONAME ; class QTextList * QTextCursor::createList(class QTextListFormat const &) + ?visibleChanged@QGraphicsObject@@IAEXXZ @ 982 NONAME ; void QGraphicsObject::visibleChanged(void) + ?cut@QPlainTextEdit@@QAEXXZ @ 983 NONAME ; void QPlainTextEdit::cut(void) + ??0QAbstractGraphicsShapeItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 984 NONAME ; QAbstractGraphicsShapeItem::QAbstractGraphicsShapeItem(class QGraphicsItem *, class QGraphicsScene *) + ?d_func@QGraphicsLineItem@@AAEPAVQGraphicsLineItemPrivate@@XZ @ 985 NONAME ; class QGraphicsLineItemPrivate * QGraphicsLineItem::d_func(void) + ?setWindowFilePath@QWidget@@QAEXABVQString@@@Z @ 986 NONAME ; void QWidget::setWindowFilePath(class QString const &) + ?atBlockStart@QTextCursor@@QBE_NXZ @ 987 NONAME ; bool QTextCursor::atBlockStart(void) const + ?expandsOnDoubleClick@QTreeView@@QBE_NXZ @ 988 NONAME ; bool QTreeView::expandsOnDoubleClick(void) const + ?timerEvent@QMdiArea@@MAEXPAVQTimerEvent@@@Z @ 989 NONAME ; void QMdiArea::timerEvent(class QTimerEvent *) + ?getStaticMetaObject@QSplashScreen@@SAABUQMetaObject@@XZ @ 990 NONAME ; struct QMetaObject const & QSplashScreen::getStaticMetaObject(void) + ?moveEvent@QRubberBand@@MAEXPAVQMoveEvent@@@Z @ 991 NONAME ; void QRubberBand::moveEvent(class QMoveEvent *) + ?d_func@QGraphicsPolygonItem@@AAEPAVQGraphicsPolygonItemPrivate@@XZ @ 992 NONAME ; class QGraphicsPolygonItemPrivate * QGraphicsPolygonItem::d_func(void) + ?mouse_double_click_time@QApplicationPrivate@@2HA @ 993 NONAME ; int QApplicationPrivate::mouse_double_click_time + ?mousePressEvent@QScrollBar@@MAEXPAVQMouseEvent@@@Z @ 994 NONAME ; void QScrollBar::mousePressEvent(class QMouseEvent *) + ?metaObject@QSwipeGesture@@UBEPBUQMetaObject@@XZ @ 995 NONAME ; struct QMetaObject const * QSwipeGesture::metaObject(void) const + ?y@QHelpEvent@@QBEHXZ @ 996 NONAME ; int QHelpEvent::y(void) const + ?modifier_buttons@QApplicationPrivate@@2V?$QFlags@W4KeyboardModifier@Qt@@@@A @ 997 NONAME ; class QFlags QApplicationPrivate::modifier_buttons + ?removeInputEventsForWidget@QEventDispatcherS60@@AAEXPAVQObject@@@Z @ 998 NONAME ; void QEventDispatcherS60::removeInputEventsForWidget(class QObject *) + ?hovered@QMenu@@IAEXPAVQAction@@@Z @ 999 NONAME ; void QMenu::hovered(class QAction *) + ?find@QTextDocument@@QBE?AVQTextCursor@@ABVQString@@HV?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 1000 NONAME ; class QTextCursor QTextDocument::find(class QString const &, int, class QFlags) const + ?eventFilter@QScrollArea@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 1001 NONAME ; bool QScrollArea::eventFilter(class QObject *, class QEvent *) + ?trUtf8@QDateEdit@@SA?AVQString@@PBD0H@Z @ 1002 NONAME ; class QString QDateEdit::trUtf8(char const *, char const *, int) + ?instance@QColormap@@SA?AV1@H@Z @ 1003 NONAME ; class QColormap QColormap::instance(int) + ?isActiveWindow@QWidget@@QBE_NXZ @ 1004 NONAME ; bool QWidget::isActiveWindow(void) const + ?focusWidget@QWidget@@QBEPAV1@XZ @ 1005 NONAME ; class QWidget * QWidget::focusWidget(void) const + ?scroll@QWindowSurface@@UAE_NABVQRegion@@HH@Z @ 1006 NONAME ; bool QWindowSurface::scroll(class QRegion const &, int, int) + ?d_func@QMenu@@ABEPBVQMenuPrivate@@XZ @ 1007 NONAME ; class QMenuPrivate const * QMenu::d_func(void) const + ?fieldGrowthPolicy@QFormLayout@@QBE?AW4FieldGrowthPolicy@1@XZ @ 1008 NONAME ; enum QFormLayout::FieldGrowthPolicy QFormLayout::fieldGrowthPolicy(void) const + ?setNotchTarget@QDial@@QAEXN@Z @ 1009 NONAME ; void QDial::setNotchTarget(double) + ?setMovable@QTabBar@@QAEX_N@Z @ 1010 NONAME ; void QTabBar::setMovable(bool) + ?buttonText@QMessageBox@@QBE?AVQString@@H@Z @ 1011 NONAME ; class QString QMessageBox::buttonText(int) const + ?dropEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 1012 NONAME ; void QGraphicsProxyWidget::dropEvent(class QGraphicsSceneDragDropEvent *) + ?setOption@QInputDialog@@QAEXW4InputDialogOption@1@_N@Z @ 1013 NONAME ; void QInputDialog::setOption(enum QInputDialog::InputDialogOption, bool) + ?sizeHint@QDateTimeEdit@@UBE?AVQSize@@XZ @ 1014 NONAME ; class QSize QDateTimeEdit::sizeHint(void) const + ?fetchMore@QProxyModel@@UAEXABVQModelIndex@@@Z @ 1015 NONAME ; void QProxyModel::fetchMore(class QModelIndex const &) + ?depth@QColormap@@QBEHXZ @ 1016 NONAME ; int QColormap::depth(void) const + ?removeRows@QStandardItemModel@@UAE_NHHABVQModelIndex@@@Z @ 1017 NONAME ; bool QStandardItemModel::removeRows(int, int, class QModelIndex const &) + ?cursorIsFocusIndicator@QTextControl@@QBE_NXZ @ 1018 NONAME ; bool QTextControl::cursorIsFocusIndicator(void) const + ?minimumSizeHint@QMdiArea@@UBE?AVQSize@@XZ @ 1019 NONAME ; class QSize QMdiArea::minimumSizeHint(void) const + ?revision@QTextBlock@@QBEHXZ @ 1020 NONAME ; int QTextBlock::revision(void) const + ?clearMaximumTime@QDateTimeEdit@@QAEXXZ @ 1021 NONAME ; void QDateTimeEdit::clearMaximumTime(void) + ?getDouble@QInputDialog@@SANPAVQWidget@@ABVQString@@1NNNHPA_NV?$QFlags@W4WindowType@Qt@@@@@Z @ 1022 NONAME ; double QInputDialog::getDouble(class QWidget *, class QString const &, class QString const &, double, double, double, int, bool *, class QFlags) + ?metaObject@QDockWidget@@UBEPBUQMetaObject@@XZ @ 1023 NONAME ; struct QMetaObject const * QDockWidget::metaObject(void) const + ?setName@QTextImageFormat@@QAEXABVQString@@@Z @ 1024 NONAME ; void QTextImageFormat::setName(class QString const &) + ?tr@QGraphicsColorizeEffect@@SA?AVQString@@PBD0@Z @ 1025 NONAME ; class QString QGraphicsColorizeEffect::tr(char const *, char const *) + ?setTimeRange@QDateTimeEdit@@QAEXABVQTime@@0@Z @ 1026 NONAME ; void QDateTimeEdit::setTimeRange(class QTime const &, class QTime const &) + ?qt_metacast@QLayout@@UAEPAXPBD@Z @ 1027 NONAME ; void * QLayout::qt_metacast(char const *) + ?setCurrentCharFormat@QPlainTextEdit@@QAEXABVQTextCharFormat@@@Z @ 1028 NONAME ; void QPlainTextEdit::setCurrentCharFormat(class QTextCharFormat const &) + ?mouseReleaseEvent@QToolButton@@MAEXPAVQMouseEvent@@@Z @ 1029 NONAME ; void QToolButton::mouseReleaseEvent(class QMouseEvent *) + ?tr@QComboBox@@SA?AVQString@@PBD0H@Z @ 1030 NONAME ; class QString QComboBox::tr(char const *, char const *, int) + ?setModel@QCompleter@@QAEXPAVQAbstractItemModel@@@Z @ 1031 NONAME ; void QCompleter::setModel(class QAbstractItemModel *) + ?accept@QDragMoveEvent@@QAEXABVQRect@@@Z @ 1032 NONAME ; void QDragMoveEvent::accept(class QRect const &) + ?totalOffset@QPanGesture@@QBE?AVQPointF@@XZ @ 1033 NONAME ; class QPointF QPanGesture::totalOffset(void) const + ?trUtf8@QUndoStack@@SA?AVQString@@PBD0H@Z @ 1034 NONAME ; class QString QUndoStack::trUtf8(char const *, char const *, int) + ?d_func@QStyledItemDelegate@@ABEPBVQStyledItemDelegatePrivate@@XZ @ 1035 NONAME ; class QStyledItemDelegatePrivate const * QStyledItemDelegate::d_func(void) const + ?staticMetaObject@QIconEnginePluginV2@@2UQMetaObject@@B @ 1036 NONAME ; struct QMetaObject const QIconEnginePluginV2::staticMetaObject + ?geometriesChanged@QHeaderView@@IAEXXZ @ 1037 NONAME ; void QHeaderView::geometriesChanged(void) + ?rawMode@QFont@@QBE_NXZ @ 1038 NONAME ; bool QFont::rawMode(void) const + ??4QTreeWidgetItemIterator@@QAEAAV0@ABV0@@Z @ 1039 NONAME ; class QTreeWidgetItemIterator & QTreeWidgetItemIterator::operator=(class QTreeWidgetItemIterator const &) + ?whatChanged@QPinchGesture@@QBE?AV?$QFlags@W4WhatChange@QPinchGesture@@@@XZ @ 1040 NONAME ; class QFlags QPinchGesture::whatChanged(void) const + ?actionTriggered@QAbstractSlider@@IAEXH@Z @ 1041 NONAME ; void QAbstractSlider::actionTriggered(int) + ?setDirectory@QFileDialog@@QAEXABVQString@@@Z @ 1042 NONAME ; void QFileDialog::setDirectory(class QString const &) + ??YQVector2D@@QAEAAV0@ABV0@@Z @ 1043 NONAME ; class QVector2D & QVector2D::operator+=(class QVector2D const &) + ?boundingRect@QGraphicsTextItem@@UBE?AVQRectF@@XZ @ 1044 NONAME ; class QRectF QGraphicsTextItem::boundingRect(void) const + ?complete@QLineControl@@QAEXH@Z @ 1045 NONAME ; void QLineControl::complete(int) + ??0QAbstractSlider@@IAE@AAVQAbstractSliderPrivate@@PAVQWidget@@@Z @ 1046 NONAME ; QAbstractSlider::QAbstractSlider(class QAbstractSliderPrivate &, class QWidget *) + ?region@QPaintEvent@@QBEABVQRegion@@XZ @ 1047 NONAME ; class QRegion const & QPaintEvent::region(void) const + ?item@QTableWidget@@QBEPAVQTableWidgetItem@@HH@Z @ 1048 NONAME ; class QTableWidgetItem * QTableWidget::item(int, int) const + ??0QRegion@@QAE@ABV0@@Z @ 1049 NONAME ; QRegion::QRegion(class QRegion const &) + ?doLayout@QItemDelegate@@IBEXABVQStyleOptionViewItem@@PAVQRect@@11_N@Z @ 1050 NONAME ; void QItemDelegate::doLayout(class QStyleOptionViewItem const &, class QRect *, class QRect *, class QRect *, bool) const + ?brightnessChanged@QGraphicsBloomEffect@@IAEXH@Z @ 1051 NONAME ; void QGraphicsBloomEffect::brightnessChanged(int) + ?type@QGraphicsProxyWidget@@UBEHXZ @ 1052 NONAME ; int QGraphicsProxyWidget::type(void) const + ?numBytes@QImage@@QBEHXZ @ 1053 NONAME ; int QImage::numBytes(void) const + ?clear@QMenuBar@@QAEXXZ @ 1054 NONAME ; void QMenuBar::clear(void) + ?staticMetaObject@QAbstractTextDocumentLayout@@2UQMetaObject@@B @ 1055 NONAME ; struct QMetaObject const QAbstractTextDocumentLayout::staticMetaObject + ?staticMetaObject@QDateEdit@@2UQMetaObject@@B @ 1056 NONAME ; struct QMetaObject const QDateEdit::staticMetaObject + ?trUtf8@QBoxLayout@@SA?AVQString@@PBD0@Z @ 1057 NONAME ; class QString QBoxLayout::trUtf8(char const *, char const *) + ?sessionId@QApplication@@QBE?AVQString@@XZ @ 1058 NONAME ; class QString QApplication::sessionId(void) const + ?paintSection@QHeaderView@@MBEXPAVQPainter@@ABVQRect@@H@Z @ 1059 NONAME ; void QHeaderView::paintSection(class QPainter *, class QRect const &, int) const + ?deletePreviousChar@QTextCursor@@QAEXXZ @ 1060 NONAME ; void QTextCursor::deletePreviousChar(void) + ?statusBar@QMainWindow@@QBEPAVQStatusBar@@XZ @ 1061 NONAME ; class QStatusBar * QMainWindow::statusBar(void) const + ?d_func@QSortFilterProxyModel@@ABEPBVQSortFilterProxyModelPrivate@@XZ @ 1062 NONAME ; class QSortFilterProxyModelPrivate const * QSortFilterProxyModel::d_func(void) const + ?inputContext@QWidget@@QAEPAVQInputContext@@XZ @ 1063 NONAME ; class QInputContext * QWidget::inputContext(void) + ?getStaticMetaObject@QSizeGrip@@SAABUQMetaObject@@XZ @ 1064 NONAME ; struct QMetaObject const & QSizeGrip::getStaticMetaObject(void) + ?elementAt@QPainterPath@@QBEABVElement@1@H@Z @ 1065 NONAME ; class QPainterPath::Element const & QPainterPath::elementAt(int) const + ??UQPainterPath@@QBE?AV0@ABV0@@Z @ 1066 NONAME ; class QPainterPath QPainterPath::operator|(class QPainterPath const &) const + ?tr@QMessageBox@@SA?AVQString@@PBD0H@Z @ 1067 NONAME ; class QString QMessageBox::tr(char const *, char const *, int) + ?processEvent@QLineControl@@QAE_NPAVQEvent@@@Z @ 1068 NONAME ; bool QLineControl::processEvent(class QEvent *) + ?d_func@QMdiSubWindow@@AAEPAVQMdiSubWindowPrivate@@XZ @ 1069 NONAME ; class QMdiSubWindowPrivate * QMdiSubWindow::d_func(void) + ?unsetCursor@QWidget@@QAEXXZ @ 1070 NONAME ; void QWidget::unsetCursor(void) + ?shape@QGraphicsSimpleTextItem@@UBE?AVQPainterPath@@XZ @ 1071 NONAME ; class QPainterPath QGraphicsSimpleTextItem::shape(void) const + ?indexBelow@QTreeView@@QBE?AVQModelIndex@@ABV2@@Z @ 1072 NONAME ; class QModelIndex QTreeView::indexBelow(class QModelIndex const &) const + ?qt_metacast@QMdiSubWindow@@UAEPAXPBD@Z @ 1073 NONAME ; void * QMdiSubWindow::qt_metacast(char const *) + ?appendRow@QStandardItemModel@@QAEXPAVQStandardItem@@@Z @ 1074 NONAME ; void QStandardItemModel::appendRow(class QStandardItem *) + ?warning@QMessageBox@@SAHPAVQWidget@@ABVQString@@1111HH@Z @ 1075 NONAME ; int QMessageBox::warning(class QWidget *, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, int, int) + ?setMaximumDateTime@QDateTimeEdit@@QAEXABVQDateTime@@@Z @ 1076 NONAME ; void QDateTimeEdit::setMaximumDateTime(class QDateTime const &) + ?topMargin@QTextBlockFormat@@QBEMXZ @ 1077 NONAME ; float QTextBlockFormat::topMargin(void) const + ?setY@QVector4D@@QAEXM@Z @ 1078 NONAME ; void QVector4D::setY(float) + ?tr@QPaintBufferSignalProxy@@SA?AVQString@@PBD0H@Z @ 1079 NONAME ; class QString QPaintBufferSignalProxy::tr(char const *, char const *, int) + ?invalidate@QSortFilterProxyModel@@QAEXXZ @ 1080 NONAME ; void QSortFilterProxyModel::invalidate(void) + ?createDefaultPixmapData@QGraphicsSystem@@SAPAVQPixmapData@@W4PixelType@2@@Z @ 1081 NONAME ; class QPixmapData * QGraphicsSystem::createDefaultPixmapData(enum QPixmapData::PixelType) + ?setItemData@QStandardItemModel@@UAE_NABVQModelIndex@@ABV?$QMap@HVQVariant@@@@@Z @ 1082 NONAME ; bool QStandardItemModel::setItemData(class QModelIndex const &, class QMap const &) + ?shape@QGraphicsRectItem@@UBE?AVQPainterPath@@XZ @ 1083 NONAME ; class QPainterPath QGraphicsRectItem::shape(void) const + ??0QImageWriter@@QAE@PAVQIODevice@@ABVQByteArray@@@Z @ 1084 NONAME ; QImageWriter::QImageWriter(class QIODevice *, class QByteArray const &) + ??0QLayoutItem@@QAE@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 1085 NONAME ; QLayoutItem::QLayoutItem(class QFlags) + ?setMask@QWidget@@QAEXABVQRegion@@@Z @ 1086 NONAME ; void QWidget::setMask(class QRegion const &) + ?model@QAbstractItemView@@QBEPAVQAbstractItemModel@@XZ @ 1087 NONAME ; class QAbstractItemModel * QAbstractItemView::model(void) const + ?append@QTextControl@@QAEXABVQString@@@Z @ 1088 NONAME ; void QTextControl::append(class QString const &) + ?isAnimated@QTreeView@@QBE_NXZ @ 1089 NONAME ; bool QTreeView::isAnimated(void) const + ?setDocument@QTextEdit@@QAEXPAVQTextDocument@@@Z @ 1090 NONAME ; void QTextEdit::setDocument(class QTextDocument *) + ?isRowHidden@QTreeView@@QBE_NHABVQModelIndex@@@Z @ 1091 NONAME ; bool QTreeView::isRowHidden(int, class QModelIndex const &) const + ?resize@QTextTable@@QAEXHH@Z @ 1092 NONAME ; void QTextTable::resize(int, int) + ?pixelMetric@QProxyStyle@@UBEHW4PixelMetric@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 1093 NONAME ; int QProxyStyle::pixelMetric(enum QStyle::PixelMetric, class QStyleOption const *, class QWidget const *) const + ?metaObject@QGraphicsScene@@UBEPBUQMetaObject@@XZ @ 1094 NONAME ; struct QMetaObject const * QGraphicsScene::metaObject(void) const + ?tr@QWizardPage@@SA?AVQString@@PBD0H@Z @ 1095 NONAME ; class QString QWizardPage::tr(char const *, char const *, int) + ?buttons@QWheelEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 1096 NONAME ; class QFlags QWheelEvent::buttons(void) const + ??1QItemSelection@@QAE@XZ @ 1097 NONAME ; QItemSelection::~QItemSelection(void) + ?resolveLocale@QWidgetPrivate@@QAEXXZ @ 1098 NONAME ; void QWidgetPrivate::resolveLocale(void) + ??YQRegion@@QAEAAV0@ABV0@@Z @ 1099 NONAME ; class QRegion & QRegion::operator+=(class QRegion const &) + ?translate@QPolygonF@@QAEXMM@Z @ 1100 NONAME ; void QPolygonF::translate(float, float) + ?trUtf8@QStackedWidget@@SA?AVQString@@PBD0@Z @ 1101 NONAME ; class QString QStackedWidget::trUtf8(char const *, char const *) + ?mousePressEvent@QWidget@@MAEXPAVQMouseEvent@@@Z @ 1102 NONAME ; void QWidget::mousePressEvent(class QMouseEvent *) + ?showEvent@QAbstractSpinBox@@MAEXPAVQShowEvent@@@Z @ 1103 NONAME ; void QAbstractSpinBox::showEvent(class QShowEvent *) + ?getContentsMargins@QGraphicsLayout@@UBEXPAM000@Z @ 1104 NONAME ; void QGraphicsLayout::getContentsMargins(float *, float *, float *, float *) const + ??1QStyleOptionToolBox@@QAE@XZ @ 1105 NONAME ; QStyleOptionToolBox::~QStyleOptionToolBox(void) + ?insertPlainText@QPlainTextEdit@@QAEXABVQString@@@Z @ 1106 NONAME ; void QPlainTextEdit::insertPlainText(class QString const &) + ?update@QAbstractTextDocumentLayout@@IAEXABVQRectF@@@Z @ 1107 NONAME ; void QAbstractTextDocumentLayout::update(class QRectF const &) + ?minimumSizeHint@QTabWidget@@UBE?AVQSize@@XZ @ 1108 NONAME ; class QSize QTabWidget::minimumSizeHint(void) const + ?getStaticMetaObject@QDoubleSpinBox@@SAABUQMetaObject@@XZ @ 1109 NONAME ; struct QMetaObject const & QDoubleSpinBox::getStaticMetaObject(void) + ?mouseReleaseEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 1110 NONAME ; void QGraphicsProxyWidget::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?addItems@QComboBox@@QAEXABVQStringList@@@Z @ 1111 NONAME ; void QComboBox::addItems(class QStringList const &) + ?toPointF@QVector2D@@QBE?AVQPointF@@XZ @ 1112 NONAME ; class QPointF QVector2D::toPointF(void) const + ?trUtf8@QRegExpValidator@@SA?AVQString@@PBD0@Z @ 1113 NONAME ; class QString QRegExpValidator::trUtf8(char const *, char const *) + ?metaObject@QButtonGroup@@UBEPBUQMetaObject@@XZ @ 1114 NONAME ; struct QMetaObject const * QButtonGroup::metaObject(void) const + ?format@QPictureIO@@QBEPBDXZ @ 1115 NONAME ; char const * QPictureIO::format(void) const + ?globalStrut@QApplication@@SA?AVQSize@@XZ @ 1116 NONAME ; class QSize QApplication::globalStrut(void) + ?lastCursorPosition@QTextFrame@@QBE?AVQTextCursor@@XZ @ 1117 NONAME ; class QTextCursor QTextFrame::lastCursorPosition(void) const + ?qt_metacast@QStylePlugin@@UAEPAXPBD@Z @ 1118 NONAME ; void * QStylePlugin::qt_metacast(char const *) + ?palette@QApplication@@SA?AVQPalette@@PBD@Z @ 1119 NONAME ; class QPalette QApplication::palette(char const *) + ??0QPainterPath@@QAE@XZ @ 1120 NONAME ; QPainterPath::QPainterPath(void) + ?tr@QSyntaxHighlighter@@SA?AVQString@@PBD0@Z @ 1121 NONAME ; class QString QSyntaxHighlighter::tr(char const *, char const *) + ?showEvent@QComboBox@@MAEXPAVQShowEvent@@@Z @ 1122 NONAME ; void QComboBox::showEvent(class QShowEvent *) + ?insertAction@QGraphicsWidget@@QAEXPAVQAction@@0@Z @ 1123 NONAME ; void QGraphicsWidget::insertAction(class QAction *, class QAction *) + ?copy@QPlainTextEdit@@QAEXXZ @ 1124 NONAME ; void QPlainTextEdit::copy(void) + ?addAction@QWidget@@QAEXPAVQAction@@@Z @ 1125 NONAME ; void QWidget::addAction(class QAction *) + ??9Key@QPixmapCache@@QBE_NABV01@@Z @ 1126 NONAME ; bool QPixmapCache::Key::operator!=(class QPixmapCache::Key const &) const + ?trUtf8@QWidgetAction@@SA?AVQString@@PBD0H@Z @ 1127 NONAME ; class QString QWidgetAction::trUtf8(char const *, char const *, int) + ?setShortcutEnabled@QGraphicsWidget@@QAEXH_N@Z @ 1128 NONAME ; void QGraphicsWidget::setShortcutEnabled(int, bool) + ??_EQS60MainAppUi@@UAE@I@Z @ 1129 NONAME ; QS60MainAppUi::~QS60MainAppUi(unsigned int) + ?addImageHook@QImagePixmapCleanupHooks@@QAEXP6AX_J@Z@Z @ 1130 NONAME ; void QImagePixmapCleanupHooks::addImageHook(void (*)(long long)) + ??_EQGraphicsEffectPrivate@@UAE@I@Z @ 1131 NONAME ; QGraphicsEffectPrivate::~QGraphicsEffectPrivate(unsigned int) + ?writingSystems@QFontDatabase@@QBE?AV?$QList@W4WritingSystem@QFontDatabase@@@@ABVQString@@@Z @ 1132 NONAME ; class QList QFontDatabase::writingSystems(class QString const &) const + ?isSolid@QPen@@QBE_NXZ @ 1133 NONAME ; bool QPen::isSolid(void) const + ?event@QSlider@@UAE_NPAVQEvent@@@Z @ 1134 NONAME ; bool QSlider::event(class QEvent *) + ?linkVisited@QPalette@@QBEABVQBrush@@XZ @ 1135 NONAME ; class QBrush const & QPalette::linkVisited(void) const + ??9QFontMetricsF@@QAE_NABV0@@Z @ 1136 NONAME ; bool QFontMetricsF::operator!=(class QFontMetricsF const &) + ??0QPolygonF@@QAE@XZ @ 1137 NONAME ; QPolygonF::QPolygonF(void) + ?parseNextOperator@Parser@QCss@@QAE_NPAUValue@2@@Z @ 1138 NONAME ; bool QCss::Parser::parseNextOperator(struct QCss::Value *) + ?activeModalWidget@QApplication@@SAPAVQWidget@@XZ @ 1139 NONAME ; class QWidget * QApplication::activeModalWidget(void) + ?isOverride@QWindowStateChangeEvent@@QBE_NXZ @ 1140 NONAME ; bool QWindowStateChangeEvent::isOverride(void) const + ??_EQIconEnginePlugin@@UAE@I@Z @ 1141 NONAME ; QIconEnginePlugin::~QIconEnginePlugin(unsigned int) + ?hideSection@QHeaderView@@QAEXH@Z @ 1142 NONAME ; void QHeaderView::hideSection(int) + ?d_func@QUndoGroup@@AAEPAVQUndoGroupPrivate@@XZ @ 1143 NONAME ; class QUndoGroupPrivate * QUndoGroup::d_func(void) + ?metaObject@QStylePlugin@@UBEPBUQMetaObject@@XZ @ 1144 NONAME ; struct QMetaObject const * QStylePlugin::metaObject(void) const + ?finish@QSplashScreen@@QAEXPAVQWidget@@@Z @ 1145 NONAME ; void QSplashScreen::finish(class QWidget *) + ??_EQWhatsThisClickedEvent@@UAE@I@Z @ 1146 NONAME ; QWhatsThisClickedEvent::~QWhatsThisClickedEvent(unsigned int) + ?setColumnCount@QTreeWidget@@QAEXH@Z @ 1147 NONAME ; void QTreeWidget::setColumnCount(int) + ?expandItem@QTreeWidget@@QAEXPBVQTreeWidgetItem@@@Z @ 1148 NONAME ; void QTreeWidget::expandItem(class QTreeWidgetItem const *) + ?setProxyModel@QProxyModel@@IBE?AVQModelIndex@@ABV2@@Z @ 1149 NONAME ; class QModelIndex QProxyModel::setProxyModel(class QModelIndex const &) const + ?fileRenamed@QFileSystemModel@@IAEXABVQString@@00@Z @ 1150 NONAME ; void QFileSystemModel::fileRenamed(class QString const &, class QString const &, class QString const &) + ?drawPolyline@QPainter@@QAEXABVQPolygonF@@@Z @ 1151 NONAME ; void QPainter::drawPolyline(class QPolygonF const &) + ?qt_metacall@QSpinBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1152 NONAME ; int QSpinBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?drawImage@QPainter@@QAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 1153 NONAME ; void QPainter::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags) + ?eventFilter@QWidgetResizeHandler@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 1154 NONAME ; bool QWidgetResizeHandler::eventFilter(class QObject *, class QEvent *) + ?setUndoRedoEnabled@QPlainTextEdit@@QAEX_N@Z @ 1155 NONAME ; void QPlainTextEdit::setUndoRedoEnabled(bool) + ?qt_metacast@QValidator@@UAEPAXPBD@Z @ 1156 NONAME ; void * QValidator::qt_metacast(char const *) + ?mapFromScene@QGraphicsItem@@QBE?AVQPainterPath@@ABV2@@Z @ 1157 NONAME ; class QPainterPath QGraphicsItem::mapFromScene(class QPainterPath const &) const + ?setExtension@QGraphicsPolygonItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 1158 NONAME ; void QGraphicsPolygonItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?event@QFrame@@MAE_NPAVQEvent@@@Z @ 1159 NONAME ; bool QFrame::event(class QEvent *) + ?addChildLayoutItem@QGraphicsLayout@@IAEXPAVQGraphicsLayoutItem@@@Z @ 1160 NONAME ; void QGraphicsLayout::addChildLayoutItem(class QGraphicsLayoutItem *) + ?worldMatrix@QPainter@@QBEABVQMatrix@@XZ @ 1161 NONAME ; class QMatrix const & QPainter::worldMatrix(void) const + ?revert@QDataWidgetMapper@@QAEXXZ @ 1162 NONAME ; void QDataWidgetMapper::revert(void) + ?qt_metacall@QScrollBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1163 NONAME ; int QScrollBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mapFromItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@ABV2@@Z @ 1164 NONAME ; class QPolygonF QGraphicsItem::mapFromItem(class QGraphicsItem const *, class QPolygonF const &) const + ?setCaseSensitivity@QCompleter@@QAEXW4CaseSensitivity@Qt@@@Z @ 1165 NONAME ; void QCompleter::setCaseSensitivity(enum Qt::CaseSensitivity) + ??0QIcon@@QAE@XZ @ 1166 NONAME ; QIcon::QIcon(void) + ?qt_metacall@QMovie@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1167 NONAME ; int QMovie::qt_metacall(enum QMetaObject::Call, int, void * *) + ?instance@QPaintBufferSignalProxy@@SAPAV1@XZ @ 1168 NONAME ; class QPaintBufferSignalProxy * QPaintBufferSignalProxy::instance(void) + ??0QVector4D@@QAE@XZ @ 1169 NONAME ; QVector4D::QVector4D(void) + ?headerData@QStandardItemModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 1170 NONAME ; class QVariant QStandardItemModel::headerData(int, enum Qt::Orientation, int) const + ?backgroundColor@QTableWidgetItem@@QBE?AVQColor@@XZ @ 1171 NONAME ; class QColor QTableWidgetItem::backgroundColor(void) const + ?allowsInteraction@QSessionManager@@QAE_NXZ @ 1172 NONAME ; bool QSessionManager::allowsInteraction(void) + ??8iterator@QTextBlock@@QBE_NABV01@@Z @ 1173 NONAME ; bool QTextBlock::iterator::operator==(class QTextBlock::iterator const &) const + ?trUtf8@QTextBrowser@@SA?AVQString@@PBD0H@Z @ 1174 NONAME ; class QString QTextBrowser::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@QDial@@SAABUQMetaObject@@XZ @ 1175 NONAME ; struct QMetaObject const & QDial::getStaticMetaObject(void) + ??4QStyleOptionToolBar@@QAEAAV0@ABV0@@Z @ 1176 NONAME ; class QStyleOptionToolBar & QStyleOptionToolBar::operator=(class QStyleOptionToolBar const &) + ?setWidth@QPainterPathStroker@@QAEXM@Z @ 1177 NONAME ; void QPainterPathStroker::setWidth(float) + ?trUtf8@QValidator@@SA?AVQString@@PBD0@Z @ 1178 NONAME ; class QString QValidator::trUtf8(char const *, char const *) + ?backgroundRole@QWidget@@QBE?AW4ColorRole@QPalette@@XZ @ 1179 NONAME ; enum QPalette::ColorRole QWidget::backgroundRole(void) const + ?trUtf8@QSplashScreen@@SA?AVQString@@PBD0H@Z @ 1180 NONAME ; class QString QSplashScreen::trUtf8(char const *, char const *, int) + ?palette@QApplication@@SA?AVQPalette@@XZ @ 1181 NONAME ; class QPalette QApplication::palette(void) + ?tr@QMainWindow@@SA?AVQString@@PBD0H@Z @ 1182 NONAME ; class QString QMainWindow::tr(char const *, char const *, int) + ?qt_tab_all_widgets@@3_NA @ 1183 NONAME ; bool qt_tab_all_widgets + ?trUtf8@QGraphicsObject@@SA?AVQString@@PBD0@Z @ 1184 NONAME ; class QString QGraphicsObject::trUtf8(char const *, char const *) + ?supportedDropActions@QTableWidget@@MBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 1185 NONAME ; class QFlags QTableWidget::supportedDropActions(void) const + ?setWordSpacing@QFont@@QAEXM@Z @ 1186 NONAME ; void QFont::setWordSpacing(float) + ?setWindowTitle@QWidget@@QAEXABVQString@@@Z @ 1187 NONAME ; void QWidget::setWindowTitle(class QString const &) + ?question@QMessageBox@@SAHPAVQWidget@@ABVQString@@1W4StandardButton@1@2@Z @ 1188 NONAME ; int QMessageBox::question(class QWidget *, class QString const &, class QString const &, enum QMessageBox::StandardButton, enum QMessageBox::StandardButton) + ?qt_metacast@QGuiPlatformPlugin@@UAEPAXPBD@Z @ 1189 NONAME ; void * QGuiPlatformPlugin::qt_metacast(char const *) + ?childFrames@QTextFrame@@QBE?AV?$QList@PAVQTextFrame@@@@XZ @ 1190 NONAME ; class QList QTextFrame::childFrames(void) const + ?setPen@QPainter@@QAEXW4PenStyle@Qt@@@Z @ 1191 NONAME ; void QPainter::setPen(enum Qt::PenStyle) + ?getStaticMetaObject@QToolBar@@SAABUQMetaObject@@XZ @ 1192 NONAME ; struct QMetaObject const & QToolBar::getStaticMetaObject(void) + ?setRightMargin@QTextFrameFormat@@QAEXM@Z @ 1193 NONAME ; void QTextFrameFormat::setRightMargin(float) + ?style@QFontInfo@@QBE?AW4Style@QFont@@XZ @ 1194 NONAME ; enum QFont::Style QFontInfo::style(void) const + ?dragLeaveEvent@QPlainTextEdit@@MAEXPAVQDragLeaveEvent@@@Z @ 1195 NONAME ; void QPlainTextEdit::dragLeaveEvent(class QDragLeaveEvent *) + ?invalidate@QGraphicsLinearLayout@@UAEXXZ @ 1196 NONAME ; void QGraphicsLinearLayout::invalidate(void) + ?canInsertFromMimeData@QPlainTextEdit@@MBE_NPBVQMimeData@@@Z @ 1197 NONAME ; bool QPlainTextEdit::canInsertFromMimeData(class QMimeData const *) const + ??0QHBoxLayout@@QAE@PAVQWidget@@@Z @ 1198 NONAME ; QHBoxLayout::QHBoxLayout(class QWidget *) + ?setWindow@QPainter@@QAEXABVQRect@@@Z @ 1199 NONAME ; void QPainter::setWindow(class QRect const &) + ??1QImageReader@@QAE@XZ @ 1200 NONAME ; QImageReader::~QImageReader(void) + ?darker@QColor@@QBE?AV1@H@Z @ 1201 NONAME ; class QColor QColor::darker(int) const + ?currentChanged@QTabWidget@@IAEXH@Z @ 1202 NONAME ; void QTabWidget::currentChanged(int) + ??0QStandardItem@@QAE@HH@Z @ 1203 NONAME ; QStandardItem::QStandardItem(int, int) + ?staticMetaObject@QFormLayout@@2UQMetaObject@@B @ 1204 NONAME ; struct QMetaObject const QFormLayout::staticMetaObject + ??0QAbstractProxyModel@@IAE@AAVQAbstractProxyModelPrivate@@PAVQObject@@@Z @ 1205 NONAME ; QAbstractProxyModel::QAbstractProxyModel(class QAbstractProxyModelPrivate &, class QObject *) + ?trUtf8@QPinchGesture@@SA?AVQString@@PBD0@Z @ 1206 NONAME ; class QString QPinchGesture::trUtf8(char const *, char const *) + ?oldPos@QHoverEvent@@QBEABVQPoint@@XZ @ 1207 NONAME ; class QPoint const & QHoverEvent::oldPos(void) const + ?blockWidth@QPlainTextDocumentLayout@@AAEMABVQTextBlock@@@Z @ 1208 NONAME ; float QPlainTextDocumentLayout::blockWidth(class QTextBlock const &) + ?polygonFlags@QVectorPath@@SAIW4PolygonDrawMode@QPaintEngine@@@Z @ 1209 NONAME ; unsigned int QVectorPath::polygonFlags(enum QPaintEngine::PolygonDrawMode) + ?focusInEvent@QComboBox@@MAEXPAVQFocusEvent@@@Z @ 1210 NONAME ; void QComboBox::focusInEvent(class QFocusEvent *) + ?mergeBlockFormat@QTextCursor@@QAEXABVQTextBlockFormat@@@Z @ 1211 NONAME ; void QTextCursor::mergeBlockFormat(class QTextBlockFormat const &) + ?mapFromScene@QGraphicsItem@@QBE?AVQPointF@@ABV2@@Z @ 1212 NONAME ; class QPointF QGraphicsItem::mapFromScene(class QPointF const &) const + ?submit@QDataWidgetMapper@@QAE_NXZ @ 1213 NONAME ; bool QDataWidgetMapper::submit(void) + ?setFileName@QPictureIO@@QAEXABVQString@@@Z @ 1214 NONAME ; void QPictureIO::setFileName(class QString const &) + ?setSizeHint@QStandardItem@@QAEXABVQSize@@@Z @ 1215 NONAME ; void QStandardItem::setSizeHint(class QSize const &) + ?dragLeaveEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 1216 NONAME ; void QGraphicsTextItem::dragLeaveEvent(class QGraphicsSceneDragDropEvent *) + ?currentSectionIndex@QDateTimeEdit@@QBEHXZ @ 1217 NONAME ; int QDateTimeEdit::currentSectionIndex(void) const + ?fillRect@QPainter@@QAEXHHHHABVQColor@@@Z @ 1218 NONAME ; void QPainter::fillRect(int, int, int, int, class QColor const &) + ?setLineWrapColumnOrWidth@QTextEdit@@QAEXH@Z @ 1219 NONAME ; void QTextEdit::setLineWrapColumnOrWidth(int) + ??0QTreeWidgetItem@@QAE@H@Z @ 1220 NONAME ; QTreeWidgetItem::QTreeWidgetItem(int) + ?lastWindowClosed@QApplication@@IAEXXZ @ 1221 NONAME ; void QApplication::lastWindowClosed(void) + ?textChanged@QPlainTextEdit@@IAEXXZ @ 1222 NONAME ; void QPlainTextEdit::textChanged(void) + ??6@YAAAVQDataStream@@AAV0@ABVQIcon@@@Z @ 1223 NONAME ; class QDataStream & operator<<(class QDataStream &, class QIcon const &) + ?orientation@QSplitterHandle@@QBE?AW4Orientation@Qt@@XZ @ 1224 NONAME ; enum Qt::Orientation QSplitterHandle::orientation(void) const + ??1QItemDelegate@@UAE@XZ @ 1225 NONAME ; QItemDelegate::~QItemDelegate(void) + ?rightColumn@QTableWidgetSelectionRange@@QBEHXZ @ 1226 NONAME ; int QTableWidgetSelectionRange::rightColumn(void) const + ??8QGradient@@QBE_NABV0@@Z @ 1227 NONAME ; bool QGradient::operator==(class QGradient const &) const + ?staticMetaObject@QRadioButton@@2UQMetaObject@@B @ 1228 NONAME ; struct QMetaObject const QRadioButton::staticMetaObject + ?resizeEvent@QMessageBox@@MAEXPAVQResizeEvent@@@Z @ 1229 NONAME ; void QMessageBox::resizeEvent(class QResizeEvent *) + ?setUnderline@QFont@@QAEX_N@Z @ 1230 NONAME ; void QFont::setUnderline(bool) + ?setText@QTextEdit@@QAEXABVQString@@@Z @ 1231 NONAME ; void QTextEdit::setText(class QString const &) + ?setSelection@QTableView@@MAEXABVQRect@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 1232 NONAME ; void QTableView::setSelection(class QRect const &, class QFlags) + ?windowActivated@QWorkspace@@IAEXPAVQWidget@@@Z @ 1233 NONAME ; void QWorkspace::windowActivated(class QWidget *) + ?alignment@QAbstractSpinBox@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 1234 NONAME ; class QFlags QAbstractSpinBox::alignment(void) const + ?endNativePainting@QPainter@@QAEXXZ @ 1235 NONAME ; void QPainter::endNativePainting(void) + ?qt_metacall@QGraphicsTextItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1236 NONAME ; int QGraphicsTextItem::qt_metacall(enum QMetaObject::Call, int, void * *) + ?pathFromIndex@QCompleter@@UBE?AVQString@@ABVQModelIndex@@@Z @ 1237 NONAME ; class QString QCompleter::pathFromIndex(class QModelIndex const &) const + ?d_func@QLayout@@ABEPBVQLayoutPrivate@@XZ @ 1238 NONAME ; class QLayoutPrivate const * QLayout::d_func(void) const + ?setFontPointSize@QTextEdit@@QAEXM@Z @ 1239 NONAME ; void QTextEdit::setFontPointSize(float) + ?rect@QWidget@@QBE?AVQRect@@XZ @ 1240 NONAME ; class QRect QWidget::rect(void) const + ?qt_metacast@QGridLayout@@UAEPAXPBD@Z @ 1241 NONAME ; void * QGridLayout::qt_metacast(char const *) + ?qt_metacall@QGraphicsScale@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1242 NONAME ; int QGraphicsScale::qt_metacall(enum QMetaObject::Call, int, void * *) + ??4QTreeWidgetItem@@QAEAAV0@ABV0@@Z @ 1243 NONAME ; class QTreeWidgetItem & QTreeWidgetItem::operator=(class QTreeWidgetItem const &) + ?isAreaAllowed@QDockWidget@@QBE_NW4DockWidgetArea@Qt@@@Z @ 1244 NONAME ; bool QDockWidget::isAreaAllowed(enum Qt::DockWidgetArea) const + ?clear@QClipboard@@QAEXW4Mode@1@@Z @ 1245 NONAME ; void QClipboard::clear(enum QClipboard::Mode) + ?focusInEvent@QLineEdit@@MAEXPAVQFocusEvent@@@Z @ 1246 NONAME ; void QLineEdit::focusInEvent(class QFocusEvent *) + ?ownedByLayout@QGraphicsLayoutItem@@QBE_NXZ @ 1247 NONAME ; bool QGraphicsLayoutItem::ownedByLayout(void) const + ?defaultAction@QToolButton@@QBEPAVQAction@@XZ @ 1248 NONAME ; class QAction * QToolButton::defaultAction(void) const + ?getStaticMetaObject@QGroupBox@@SAABUQMetaObject@@XZ @ 1249 NONAME ; struct QMetaObject const & QGroupBox::getStaticMetaObject(void) + ?textStart@QTextLine@@QBEHXZ @ 1250 NONAME ; int QTextLine::textStart(void) const + ?linkHovered@QGraphicsTextItem@@IAEXABVQString@@@Z @ 1251 NONAME ; void QGraphicsTextItem::linkHovered(class QString const &) + ?arrangeIcons@QWorkspace@@QAEXXZ @ 1252 NONAME ; void QWorkspace::arrangeIcons(void) + ?removeChild@QTreeWidgetItem@@QAEXPAV1@@Z @ 1253 NONAME ; void QTreeWidgetItem::removeChild(class QTreeWidgetItem *) + ?closePersistentEditor@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 1254 NONAME ; void QListWidget::closePersistentEditor(class QListWidgetItem *) + ?x@QTabletEvent@@QBEHXZ @ 1255 NONAME ; int QTabletEvent::x(void) const + ?qt_metacall@QTableView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1256 NONAME ; int QTableView::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EQGraphicsTextItem@@UAE@I@Z @ 1257 NONAME ; QGraphicsTextItem::~QGraphicsTextItem(unsigned int) + ?setFont@QLineControl@@QAEXABVQFont@@@Z @ 1258 NONAME ; void QLineControl::setFont(class QFont const &) + ?showEvent@QToolBox@@MAEXPAVQShowEvent@@@Z @ 1259 NONAME ; void QToolBox::showEvent(class QShowEvent *) + ?setPaused@QMovie@@QAEX_N@Z @ 1260 NONAME ; void QMovie::setPaused(bool) + ?getStaticMetaObject@QTextDocument@@SAABUQMetaObject@@XZ @ 1261 NONAME ; struct QMetaObject const & QTextDocument::getStaticMetaObject(void) + ?close@QWidget@@QAE_NXZ @ 1262 NONAME ; bool QWidget::close(void) + ??4QStyleOption@@QAEAAV0@ABV0@@Z @ 1263 NONAME ; class QStyleOption & QStyleOption::operator=(class QStyleOption const &) + ?echoMode@QLineEdit@@QBE?AW4EchoMode@1@XZ @ 1264 NONAME ; enum QLineEdit::EchoMode QLineEdit::echoMode(void) const + ?isSeparator@QMainWindow@@QBE_NABVQPoint@@@Z @ 1265 NONAME ; bool QMainWindow::isSeparator(class QPoint const &) const + ?show@QGraphicsItem@@QAEXXZ @ 1266 NONAME ; void QGraphicsItem::show(void) + ?type@QGraphicsWidget@@UBEHXZ @ 1267 NONAME ; int QGraphicsWidget::type(void) const + ??MQStandardItem@@UBE_NABV0@@Z @ 1268 NONAME ; bool QStandardItem::operator<(class QStandardItem const &) const + ?toPlainText@QTextControl@@QBE?AVQString@@XZ @ 1269 NONAME ; class QString QTextControl::toPlainText(void) const + ?glyphCount@QFontEngine@@UBEHXZ @ 1270 NONAME ; int QFontEngine::glyphCount(void) const + ?pos@QGraphicsSceneHoverEvent@@QBE?AVQPointF@@XZ @ 1271 NONAME ; class QPointF QGraphicsSceneHoverEvent::pos(void) const + ?app_pal@QApplicationPrivate@@2PAVQPalette@@A @ 1272 NONAME ; class QPalette * QApplicationPrivate::app_pal + ?addWidget@QToolBar@@QAEPAVQAction@@PAVQWidget@@@Z @ 1273 NONAME ; class QAction * QToolBar::addWidget(class QWidget *) + ?columnResized@QTreeView@@IAEXHHH@Z @ 1274 NONAME ; void QTreeView::columnResized(int, int, int) + ?next@QWizard@@QAEXXZ @ 1275 NONAME ; void QWizard::next(void) + ?highlightedText@QPalette@@QBEABVQBrush@@XZ @ 1276 NONAME ; class QBrush const & QPalette::highlightedText(void) const + ?grabMouseEvent@QGraphicsWidget@@MAEXPAVQEvent@@@Z @ 1277 NONAME ; void QGraphicsWidget::grabMouseEvent(class QEvent *) + ?drawEllipse@QPaintEngineEx@@UAEXABVQRectF@@@Z @ 1278 NONAME ; void QPaintEngineEx::drawEllipse(class QRectF const &) + ?tr@QS60Style@@SA?AVQString@@PBD0@Z @ 1279 NONAME ; class QString QS60Style::tr(char const *, char const *) + ?mouseReleaseEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 1280 NONAME ; void QGraphicsScene::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ??9QRegion@@QBE_NABV0@@Z @ 1281 NONAME ; bool QRegion::operator!=(class QRegion const &) const + ?availableGlyphs@QTextEngine@@QBE?AUQGlyphLayout@@PBUQScriptItem@@@Z @ 1282 NONAME ; struct QGlyphLayout QTextEngine::availableGlyphs(struct QScriptItem const *) const + ?foreground@QTextFormat@@QBE?AVQBrush@@XZ @ 1283 NONAME ; class QBrush QTextFormat::foreground(void) const + ?clone@QTableWidgetItem@@UBEPAV1@XZ @ 1284 NONAME ; class QTableWidgetItem * QTableWidgetItem::clone(void) const + ?setRgb@QColor@@QAEXI@Z @ 1285 NONAME ; void QColor::setRgb(unsigned int) + ?blockFormatIndex@QTextBlock@@QBEHXZ @ 1286 NONAME ; int QTextBlock::blockFormatIndex(void) const + ?visualRect@QColumnView@@UBE?AVQRect@@ABVQModelIndex@@@Z @ 1287 NONAME ; class QRect QColumnView::visualRect(class QModelIndex const &) const + ?acceptTouchEvents@QGraphicsItem@@QBE_NXZ @ 1288 NONAME ; bool QGraphicsItem::acceptTouchEvents(void) const + ??0QRubberBand@@QAE@W4Shape@0@PAVQWidget@@@Z @ 1289 NONAME ; QRubberBand::QRubberBand(enum QRubberBand::Shape, class QWidget *) + ?graphicsEffect@QWidget@@QBEPAVQGraphicsEffect@@XZ @ 1290 NONAME ; class QGraphicsEffect * QWidget::graphicsEffect(void) const + ?closePopup@QApplicationPrivate@@QAEXPAVQWidget@@@Z @ 1291 NONAME ; void QApplicationPrivate::closePopup(class QWidget *) + ??PQTextCursor@@QBE_NABV0@@Z @ 1292 NONAME ; bool QTextCursor::operator>=(class QTextCursor const &) const + ?palette@QGuiPlatformPlugin@@UAE?AVQPalette@@XZ @ 1293 NONAME ; class QPalette QGuiPlatformPlugin::palette(void) + ?itemAt@QGraphicsAnchorLayout@@UBEPAVQGraphicsLayoutItem@@H@Z @ 1294 NONAME ; class QGraphicsLayoutItem * QGraphicsAnchorLayout::itemAt(int) const + ?outputFormats@QPictureIO@@SA?AV?$QList@VQByteArray@@@@XZ @ 1295 NONAME ; class QList QPictureIO::outputFormats(void) + ?isItemSelected@QTableWidget@@QBE_NPBVQTableWidgetItem@@@Z @ 1296 NONAME ; bool QTableWidget::isItemSelected(class QTableWidgetItem const *) const + ?focusWidget@QGraphicsWidget@@QBEPAV1@XZ @ 1297 NONAME ; class QGraphicsWidget * QGraphicsWidget::focusWidget(void) const + ?isTextVisible@QProgressBar@@QBE_NXZ @ 1298 NONAME ; bool QProgressBar::isTextVisible(void) const + ?minimumSize@QGraphicsLayoutItem@@QBE?AVQSizeF@@XZ @ 1299 NONAME ; class QSizeF QGraphicsLayoutItem::minimumSize(void) const + ?tr@QStylePlugin@@SA?AVQString@@PBD0@Z @ 1300 NONAME ; class QString QStylePlugin::tr(char const *, char const *) + ?setGeometry@QGraphicsLayoutItem@@UAEXABVQRectF@@@Z @ 1301 NONAME ; void QGraphicsLayoutItem::setGeometry(class QRectF const &) + ?leading@QFontMetrics@@QBEHXZ @ 1302 NONAME ; int QFontMetrics::leading(void) const + ?metaObject@QAbstractScrollArea@@UBEPBUQMetaObject@@XZ @ 1303 NONAME ; struct QMetaObject const * QAbstractScrollArea::metaObject(void) const + ?wordWrap@QTableView@@QBE_NXZ @ 1304 NONAME ; bool QTableView::wordWrap(void) const + ?setFontUnderline@QTextCharFormat@@QAEX_N@Z @ 1305 NONAME ; void QTextCharFormat::setFontUnderline(bool) + ??0QTextFormat@@QAE@XZ @ 1306 NONAME ; QTextFormat::QTextFormat(void) + ??0QStyleOptionTabBarBaseV2@@QAE@ABVQStyleOptionTabBarBase@@@Z @ 1307 NONAME ; QStyleOptionTabBarBaseV2::QStyleOptionTabBarBaseV2(class QStyleOptionTabBarBase const &) + ?extraData@QWidgetPrivate@@QBEPAUQWExtra@@XZ @ 1308 NONAME ; struct QWExtra * QWidgetPrivate::extraData(void) const + ?trUtf8@QDirModel@@SA?AVQString@@PBD0H@Z @ 1309 NONAME ; class QString QDirModel::trUtf8(char const *, char const *, int) + ?setHeight@QTextFrameFormat@@QAEXM@Z @ 1310 NONAME ; void QTextFrameFormat::setHeight(float) + ?view@QComboBox@@QBEPAVQAbstractItemView@@XZ @ 1311 NONAME ; class QAbstractItemView * QComboBox::view(void) const + ?sizeHint@QTreeWidgetItem@@QBE?AVQSize@@H@Z @ 1312 NONAME ; class QSize QTreeWidgetItem::sizeHint(int) const + ??0QLinearGradient@@QAE@XZ @ 1313 NONAME ; QLinearGradient::QLinearGradient(void) + ?keyboardTracking@QAbstractSpinBox@@QBE_NXZ @ 1314 NONAME ; bool QAbstractSpinBox::keyboardTracking(void) const + ?tr@QGraphicsWidget@@SA?AVQString@@PBD0@Z @ 1315 NONAME ; class QString QGraphicsWidget::tr(char const *, char const *) + ??1QProxyStyle@@UAE@XZ @ 1316 NONAME ; QProxyStyle::~QProxyStyle(void) + ?fileDialogSetNameFilters@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@ABVQStringList@@@Z @ 1317 NONAME ; void QGuiPlatformPlugin::fileDialogSetNameFilters(class QFileDialog *, class QStringList const &) + ?setTransformOriginPoint@QGraphicsItem@@QAEXABVQPointF@@@Z @ 1318 NONAME ; void QGraphicsItem::setTransformOriginPoint(class QPointF const &) + ?setSystemRect@QPaintEngine@@QAEXABVQRect@@@Z @ 1319 NONAME ; void QPaintEngine::setSystemRect(class QRect const &) + ?match@QSortFilterProxyModel@@UBE?AV?$QList@VQModelIndex@@@@ABVQModelIndex@@HABVQVariant@@HV?$QFlags@W4MatchFlag@Qt@@@@@Z @ 1320 NONAME ; class QList QSortFilterProxyModel::match(class QModelIndex const &, int, class QVariant const &, int, class QFlags) const + ?interpretText@QAbstractSpinBox@@QAEXXZ @ 1321 NONAME ; void QAbstractSpinBox::interpretText(void) + ?insertSeparator@QMenu@@QAEPAVQAction@@PAV2@@Z @ 1322 NONAME ; class QAction * QMenu::insertSeparator(class QAction *) + ?setField@QWizardPage@@IAEXABVQString@@ABVQVariant@@@Z @ 1323 NONAME ; void QWizardPage::setField(class QString const &, class QVariant const &) + ??0QVector4D@@AAE@MMMMH@Z @ 1324 NONAME ; QVector4D::QVector4D(float, float, float, float, int) + ?setSpread@QGradient@@QAEXW4Spread@1@@Z @ 1325 NONAME ; void QGradient::setSpread(enum QGradient::Spread) + ?changeEvent@QMenu@@MAEXPAVQEvent@@@Z @ 1326 NONAME ; void QMenu::changeEvent(class QEvent *) + ?alpha@QColor@@QBEHXZ @ 1327 NONAME ; int QColor::alpha(void) const + ?setKeypadNavigationEnabled@QApplication@@SAX_N@Z @ 1328 NONAME ; void QApplication::setKeypadNavigationEnabled(bool) + ?fontMetrics@QApplication@@SA?AVQFontMetrics@@XZ @ 1329 NONAME ; class QFontMetrics QApplication::fontMetrics(void) + ?fontFilters@QFontComboBox@@QBE?AV?$QFlags@W4FontFilter@QFontComboBox@@@@XZ @ 1330 NONAME ; class QFlags QFontComboBox::fontFilters(void) const + ?sizeHint@QSpacerItem@@UBE?AVQSize@@XZ @ 1331 NONAME ; class QSize QSpacerItem::sizeHint(void) const + ?getStaticMetaObject@QStandardItemModel@@SAABUQMetaObject@@XZ @ 1332 NONAME ; struct QMetaObject const & QStandardItemModel::getStaticMetaObject(void) + ?expanded@QTreeView@@IAEXABVQModelIndex@@@Z @ 1333 NONAME ; void QTreeView::expanded(class QModelIndex const &) + ?setGeometry@QGraphicsWidget@@UAEXABVQRectF@@@Z @ 1334 NONAME ; void QGraphicsWidget::setGeometry(class QRectF const &) + ?drawContents@QSplashScreen@@MAEXPAVQPainter@@@Z @ 1335 NONAME ; void QSplashScreen::drawContents(class QPainter *) + ??0QStyleOptionSlider@@QAE@ABV0@@Z @ 1336 NONAME ; QStyleOptionSlider::QStyleOptionSlider(class QStyleOptionSlider const &) + ??0QTabBar@@QAE@PAVQWidget@@@Z @ 1337 NONAME ; QTabBar::QTabBar(class QWidget *) + ?tr@QTextControl@@SA?AVQString@@PBD0H@Z @ 1338 NONAME ; class QString QTextControl::tr(char const *, char const *, int) + ?tr@QMessageBox@@SA?AVQString@@PBD0@Z @ 1339 NONAME ; class QString QMessageBox::tr(char const *, char const *) + ?setWordWrapMode@QTextEdit@@QAEXW4WrapMode@QTextOption@@@Z @ 1340 NONAME ; void QTextEdit::setWordWrapMode(enum QTextOption::WrapMode) + ??0QTextDocument@@QAE@ABVQString@@PAVQObject@@@Z @ 1341 NONAME ; QTextDocument::QTextDocument(class QString const &, class QObject *) + ?loadResource@QPlainTextEdit@@UAE?AVQVariant@@HABVQUrl@@@Z @ 1342 NONAME ; class QVariant QPlainTextEdit::loadResource(int, class QUrl const &) + ?desktopSettingsAware@QApplication@@SA_NXZ @ 1343 NONAME ; bool QApplication::desktopSettingsAware(void) + ?trUtf8@QToolBar@@SA?AVQString@@PBD0H@Z @ 1344 NONAME ; class QString QToolBar::trUtf8(char const *, char const *, int) + ?isValid@QTextImageFormat@@QBE_NXZ @ 1345 NONAME ; bool QTextImageFormat::isValid(void) const + ?qt_metacast@QTextBrowser@@UAEPAXPBD@Z @ 1346 NONAME ; void * QTextBrowser::qt_metacast(char const *) + ?isGridVisible@QCalendarWidget@@QBE_NXZ @ 1347 NONAME ; bool QCalendarWidget::isGridVisible(void) const + ?setItemToolTip@QToolBox@@QAEXHABVQString@@@Z @ 1348 NONAME ; void QToolBox::setItemToolTip(int, class QString const &) + ??_4QRegion@@QAEAAV0@ABVQRect@@@Z @ 1349 NONAME ; class QRegion & QRegion::operator&=(class QRect const &) + ?updateSceneRect@QGraphicsView@@QAEXABVQRectF@@@Z @ 1350 NONAME ; void QGraphicsView::updateSceneRect(class QRectF const &) + ?yTilt@QTabletEvent@@QBEHXZ @ 1351 NONAME ; int QTabletEvent::yTilt(void) const + ?hiResGlobalY@QTabletEvent@@QBEMXZ @ 1352 NONAME ; float QTabletEvent::hiResGlobalY(void) const + ??_EQGraphicsLayout@@UAE@I@Z @ 1353 NONAME ; QGraphicsLayout::~QGraphicsLayout(unsigned int) + ?setSelectionRectVisible@QListView@@QAEX_N@Z @ 1354 NONAME ; void QListView::setSelectionRectVisible(bool) + ?setElideMode@QTabBar@@QAEXW4TextElideMode@Qt@@@Z @ 1355 NONAME ; void QTabBar::setElideMode(enum Qt::TextElideMode) + ?styleSheet@QApplicationPrivate@@2VQString@@A @ 1356 NONAME ; class QString QApplicationPrivate::styleSheet + ?formatIndex@QTextObject@@QBEHXZ @ 1357 NONAME ; int QTextObject::formatIndex(void) const + ??BQKeySequence@@QBEHXZ @ 1358 NONAME ; QKeySequence::operator int(void) const + ?setFont@QGraphicsScene@@QAEXABVQFont@@@Z @ 1359 NONAME ; void QGraphicsScene::setFont(class QFont const &) + ?enterEvent@QWidget@@MAEXPAVQEvent@@@Z @ 1360 NONAME ; void QWidget::enterEvent(class QEvent *) + ?insertRow@QFormLayout@@QAEXHABVQString@@PAVQWidget@@@Z @ 1361 NONAME ; void QFormLayout::insertRow(int, class QString const &, class QWidget *) + ?event@QCalendarWidget@@MAE_NPAVQEvent@@@Z @ 1362 NONAME ; bool QCalendarWidget::event(class QEvent *) + ?getStaticMetaObject@QSplitterHandle@@SAABUQMetaObject@@XZ @ 1363 NONAME ; struct QMetaObject const & QSplitterHandle::getStaticMetaObject(void) + ??RQMatrix4x4@@QBEABMHH@Z @ 1364 NONAME ; float const & QMatrix4x4::operator()(int, int) const + ?addLine@QGraphicsScene@@QAEPAVQGraphicsLineItem@@MMMMABVQPen@@@Z @ 1365 NONAME ; class QGraphicsLineItem * QGraphicsScene::addLine(float, float, float, float, class QPen const &) + ??1QPicture@@UAE@XZ @ 1366 NONAME ; QPicture::~QPicture(void) + ??0QGraphicsEllipseItem@@QAE@MMMMPAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 1367 NONAME ; QGraphicsEllipseItem::QGraphicsEllipseItem(float, float, float, float, class QGraphicsItem *, class QGraphicsScene *) + ?updateTouchPointsForWidget@QApplicationPrivate@@SAXPAVQWidget@@PAVQTouchEvent@@@Z @ 1368 NONAME ; void QApplicationPrivate::updateTouchPointsForWidget(class QWidget *, class QTouchEvent *) + ??0QAction@@QAE@PAVQObject@@@Z @ 1369 NONAME ; QAction::QAction(class QObject *) + ?subtracted@QPainterPath@@QBE?AV1@ABV1@@Z @ 1370 NONAME ; class QPainterPath QPainterPath::subtracted(class QPainterPath const &) const + ?qt_metacall@QDateTimeEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1371 NONAME ; int QDateTimeEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?clear@QBitmap@@QAEXXZ @ 1372 NONAME ; void QBitmap::clear(void) + ?selectedText@QTextCursor@@QBE?AVQString@@XZ @ 1373 NONAME ; class QString QTextCursor::selectedText(void) const + ?cyanF@QColor@@QBEMXZ @ 1374 NONAME ; float QColor::cyanF(void) const + ?tabStop@QTextOption@@QBEMXZ @ 1375 NONAME ; float QTextOption::tabStop(void) const + ?tabShape@QMainWindow@@QBE?AW4TabShape@QTabWidget@@XZ @ 1376 NONAME ; enum QTabWidget::TabShape QMainWindow::tabShape(void) const + ?setStrokeWidth@QStroker@@QAEXM@Z @ 1377 NONAME ; void QStroker::setStrokeWidth(float) + ?d_func@QGraphicsSceneMouseEvent@@ABEPBVQGraphicsSceneMouseEventPrivate@@XZ @ 1378 NONAME ; class QGraphicsSceneMouseEventPrivate const * QGraphicsSceneMouseEvent::d_func(void) const + ?end@QPainter@@QAE_NXZ @ 1379 NONAME ; bool QPainter::end(void) + ?gamma@QPictureIO@@QBEMXZ @ 1380 NONAME ; float QPictureIO::gamma(void) const + ?tableFormat@QTextFormatCollection@@QBE?AVQTextTableFormat@@H@Z @ 1381 NONAME ; class QTextTableFormat QTextFormatCollection::tableFormat(int) const + ?clipRect@QImageReader@@QBE?AVQRect@@XZ @ 1382 NONAME ; class QRect QImageReader::clipRect(void) const + ?addRoundedRect@QPainterPath@@QAEXABVQRectF@@MMW4SizeMode@Qt@@@Z @ 1383 NONAME ; void QPainterPath::addRoundedRect(class QRectF const &, float, float, enum Qt::SizeMode) + ??1QGraphicsDropShadowEffect@@UAE@XZ @ 1384 NONAME ; QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect(void) + ?setLocale@QValidator@@QAEXABVQLocale@@@Z @ 1385 NONAME ; void QValidator::setLocale(class QLocale const &) + ??Eiterator@QTextFrame@@QAE?AV01@H@Z @ 1386 NONAME ; class QTextFrame::iterator QTextFrame::iterator::operator++(int) + ?timerEvent@QTextControl@@MAEXPAVQTimerEvent@@@Z @ 1387 NONAME ; void QTextControl::timerEvent(class QTimerEvent *) + ?setTextWidth@QGraphicsTextItem@@QAEXM@Z @ 1388 NONAME ; void QGraphicsTextItem::setTextWidth(float) + ??_EQWheelEvent@@UAE@I@Z @ 1389 NONAME ; QWheelEvent::~QWheelEvent(unsigned int) + ?setTableCellColumnSpan@QTextCharFormat@@QAEXH@Z @ 1390 NONAME ; void QTextCharFormat::setTableCellColumnSpan(int) + ?boundingBox@QTextEngine@@QBE?AUglyph_metrics_t@@HH@Z @ 1391 NONAME ; struct glyph_metrics_t QTextEngine::boundingBox(int, int) const + ?setPriority@QAction@@QAEXW4Priority@1@@Z @ 1392 NONAME ; void QAction::setPriority(enum QAction::Priority) + ?d_func@QGraphicsAnchor@@AAEPAVQGraphicsAnchorPrivate@@XZ @ 1393 NONAME ; class QGraphicsAnchorPrivate * QGraphicsAnchor::d_func(void) + ?transform@QPainter@@QBEABVQTransform@@XZ @ 1394 NONAME ; class QTransform const & QPainter::transform(void) const + ?columns@QTextTableFormat@@QBEHXZ @ 1395 NONAME ; int QTextTableFormat::columns(void) const + ??0QBrush@@QAE@W4GlobalColor@Qt@@W4BrushStyle@2@@Z @ 1396 NONAME ; QBrush::QBrush(enum Qt::GlobalColor, enum Qt::BrushStyle) + ?metaObject@QStringListModel@@UBEPBUQMetaObject@@XZ @ 1397 NONAME ; struct QMetaObject const * QStringListModel::metaObject(void) const + ?invalidate@QGridLayout@@UAEXXZ @ 1398 NONAME ; void QGridLayout::invalidate(void) + ?sizeHint@QSizeGrip@@UBE?AVQSize@@XZ @ 1399 NONAME ; class QSize QSizeGrip::sizeHint(void) const + ?setValidator@QLineControl@@QAEXPBVQValidator@@@Z @ 1400 NONAME ; void QLineControl::setValidator(class QValidator const *) + ?setSceneRect@QGraphicsScene@@QAEXMMMM@Z @ 1401 NONAME ; void QGraphicsScene::setSceneRect(float, float, float, float) + ?fromHtml@QTextDocumentFragment@@SA?AV1@ABVQString@@PBVQTextDocument@@@Z @ 1402 NONAME ; class QTextDocumentFragment QTextDocumentFragment::fromHtml(class QString const &, class QTextDocument const *) + ?tr@QUndoStack@@SA?AVQString@@PBD0@Z @ 1403 NONAME ; class QString QUndoStack::tr(char const *, char const *) + ?setStaticContentsSupport@QWindowSurface@@IAEX_N@Z @ 1404 NONAME ; void QWindowSurface::setStaticContentsSupport(bool) + ?inputMethodQueryHelper@QGraphicsItemPrivate@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 1405 NONAME ; class QVariant QGraphicsItemPrivate::inputMethodQueryHelper(enum Qt::InputMethodQuery) const + ?topPadding@QTextTableCellFormat@@QBEMXZ @ 1406 NONAME ; float QTextTableCellFormat::topPadding(void) const + ?parse@Parser@QCss@@QAE_NPAUStyleSheet@2@W4CaseSensitivity@Qt@@@Z @ 1407 NONAME ; bool QCss::Parser::parse(struct QCss::StyleSheet *, enum Qt::CaseSensitivity) + ?maybeTopData@QWidgetPrivate@@QBEPAUQTLWExtra@@XZ @ 1408 NONAME ; struct QTLWExtra * QWidgetPrivate::maybeTopData(void) const + ?sceneEvent@QGraphicsItem@@MAE_NPAVQEvent@@@Z @ 1409 NONAME ; bool QGraphicsItem::sceneEvent(class QEvent *) + ?x@QQuaternion@@QBEMXZ @ 1410 NONAME ; float QQuaternion::x(void) const + ?setPalette@QGraphicsWidget@@QAEXABVQPalette@@@Z @ 1411 NONAME ; void QGraphicsWidget::setPalette(class QPalette const &) + ??1QDockWidget@@UAE@XZ @ 1412 NONAME ; QDockWidget::~QDockWidget(void) + ?setAccessibleDescription@QStandardItem@@QAEXABVQString@@@Z @ 1413 NONAME ; void QStandardItem::setAccessibleDescription(class QString const &) + ?bottomMargin@QTextBlockFormat@@QBEMXZ @ 1414 NONAME ; float QTextBlockFormat::bottomMargin(void) const + ?windowFlags@QWidget@@QBE?AV?$QFlags@W4WindowType@Qt@@@@XZ @ 1415 NONAME ; class QFlags QWidget::windowFlags(void) const + ?textInteractionFlags@QTextEdit@@QBE?AV?$QFlags@W4TextInteractionFlag@Qt@@@@XZ @ 1416 NONAME ; class QFlags QTextEdit::textInteractionFlags(void) const + ?setActionGroup@QAction@@QAEXPAVQActionGroup@@@Z @ 1417 NONAME ; void QAction::setActionGroup(class QActionGroup *) + ?create@QImageData@@SAPAU1@ABVQSize@@W4Format@QImage@@H@Z @ 1418 NONAME ; struct QImageData * QImageData::create(class QSize const &, enum QImage::Format, int) + ?setMatrix@QMatrix@@QAEXMMMMMM@Z @ 1419 NONAME ; void QMatrix::setMatrix(float, float, float, float, float, float) + ??0QMessageBox@@QAE@W4Icon@0@ABVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 1420 NONAME ; QMessageBox::QMessageBox(enum QMessageBox::Icon, class QString const &, class QString const &, class QFlags, class QWidget *, class QFlags) + ?flags@QProxyModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 1421 NONAME ; class QFlags QProxyModel::flags(class QModelIndex const &) const + ??0QFontComboBox@@QAE@PAVQWidget@@@Z @ 1422 NONAME ; QFontComboBox::QFontComboBox(class QWidget *) + ?polish@QWindowsStyle@@UAEXPAVQWidget@@@Z @ 1423 NONAME ; void QWindowsStyle::polish(class QWidget *) + ?setStops@QGradient@@QAEXABV?$QVector@U?$QPair@MVQColor@@@@@@@Z @ 1424 NONAME ; void QGradient::setStops(class QVector > const &) + ??0QIcon@@QAE@PAVQIconEngine@@@Z @ 1425 NONAME ; QIcon::QIcon(class QIconEngine *) + ?getStaticMetaObject@QWizardPage@@SAABUQMetaObject@@XZ @ 1426 NONAME ; struct QMetaObject const & QWizardPage::getStaticMetaObject(void) + ?qt_metacast@QApplication@@UAEPAXPBD@Z @ 1427 NONAME ; void * QApplication::qt_metacast(char const *) + ?setTextInteractionFlags@QPlainTextEdit@@QAEXV?$QFlags@W4TextInteractionFlag@Qt@@@@@Z @ 1428 NONAME ; void QPlainTextEdit::setTextInteractionFlags(class QFlags) + ?setButtonSymbols@QAbstractSpinBox@@QAEXW4ButtonSymbols@1@@Z @ 1429 NONAME ; void QAbstractSpinBox::setButtonSymbols(enum QAbstractSpinBox::ButtonSymbols) + ?hide@QWidget@@QAEXXZ @ 1430 NONAME ; void QWidget::hide(void) + ?replayClipOperations@QPaintEngineExPrivate@@QAEXXZ @ 1431 NONAME ; void QPaintEngineExPrivate::replayClipOperations(void) + ?setOffset@QHeaderView@@QAEXH@Z @ 1432 NONAME ; void QHeaderView::setOffset(int) + ?verticalAlignment@QTextCharFormat@@QBE?AW4VerticalAlignment@1@XZ @ 1433 NONAME ; enum QTextCharFormat::VerticalAlignment QTextCharFormat::verticalAlignment(void) const + ?device@QTabletEvent@@QBE?AW4TabletDevice@1@XZ @ 1434 NONAME ; enum QTabletEvent::TabletDevice QTabletEvent::device(void) const + ??0QPushButton@@QAE@ABVQString@@PAVQWidget@@@Z @ 1435 NONAME ; QPushButton::QPushButton(class QString const &, class QWidget *) + ?tr@QMenu@@SA?AVQString@@PBD0@Z @ 1436 NONAME ; class QString QMenu::tr(char const *, char const *) + ?qt_metacall@QTextBrowser@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1437 NONAME ; int QTextBrowser::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fixup@QLineControl@@QAE_NXZ @ 1438 NONAME ; bool QLineControl::fixup(void) + ??_EQGraphicsProxyWidget@@UAE@I@Z @ 1439 NONAME ; QGraphicsProxyWidget::~QGraphicsProxyWidget(unsigned int) + ?link@QPalette@@QBEABVQBrush@@XZ @ 1440 NONAME ; class QBrush const & QPalette::link(void) const + ?trUtf8@QGraphicsItemAnimation@@SA?AVQString@@PBD0H@Z @ 1441 NONAME ; class QString QGraphicsItemAnimation::trUtf8(char const *, char const *, int) + ?tr@QHeaderView@@SA?AVQString@@PBD0H@Z @ 1442 NONAME ; class QString QHeaderView::tr(char const *, char const *, int) + ?horizontalHeaderItem@QTableWidget@@QBEPAVQTableWidgetItem@@H@Z @ 1443 NONAME ; class QTableWidgetItem * QTableWidget::horizontalHeaderItem(int) const + ?cancelButtonText@QInputDialog@@QBE?AVQString@@XZ @ 1444 NONAME ; class QString QInputDialog::cancelButtonText(void) const + ?redo@QTextDocument@@QAEXPAVQTextCursor@@@Z @ 1445 NONAME ; void QTextDocument::redo(class QTextCursor *) + ?editingFinished@QLineControl@@IAEXXZ @ 1446 NONAME ; void QLineControl::editingFinished(void) + ?d_func@QGraphicsPixmapItem@@AAEPAVQGraphicsPixmapItemPrivate@@XZ @ 1447 NONAME ; class QGraphicsPixmapItemPrivate * QGraphicsPixmapItem::d_func(void) + ?backspace@QLineControl@@QAEXXZ @ 1448 NONAME ; void QLineControl::backspace(void) + ?focusProxy@QWidget@@QBEPAV1@XZ @ 1449 NONAME ; class QWidget * QWidget::focusProxy(void) const + ?closestLegalPosition@QSplitterHandle@@IAEHH@Z @ 1450 NONAME ; int QSplitterHandle::closestLegalPosition(int) + ?setExtension@QGraphicsEllipseItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 1451 NONAME ; void QGraphicsEllipseItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?tr@QGraphicsBloomEffect@@SA?AVQString@@PBD0H@Z @ 1452 NONAME ; class QString QGraphicsBloomEffect::tr(char const *, char const *, int) + ?docHandle@QTextObject@@QBEPAVQTextDocumentPrivate@@XZ @ 1453 NONAME ; class QTextDocumentPrivate * QTextObject::docHandle(void) const + ??0QTextControl@@QAE@ABVQString@@PAVQObject@@@Z @ 1454 NONAME ; QTextControl::QTextControl(class QString const &, class QObject *) + ?blockBoundingRect@QPlainTextDocumentLayout@@UBE?AVQRectF@@ABVQTextBlock@@@Z @ 1455 NONAME ; class QRectF QPlainTextDocumentLayout::blockBoundingRect(class QTextBlock const &) const + ?remove@QFileSystemModel@@QBE_NABVQModelIndex@@@Z @ 1456 NONAME ; bool QFileSystemModel::remove(class QModelIndex const &) const + ?qt_metacast@QDoubleSpinBox@@UAEPAXPBD@Z @ 1457 NONAME ; void * QDoubleSpinBox::qt_metacast(char const *) + ??_EQItemEditorFactory@@UAE@I@Z @ 1458 NONAME ; QItemEditorFactory::~QItemEditorFactory(unsigned int) + ?isFloating@QToolBar@@QBE_NXZ @ 1459 NONAME ; bool QToolBar::isFloating(void) const + ?text@QUndoStack@@QBE?AVQString@@H@Z @ 1460 NONAME ; class QString QUndoStack::text(int) const + ?staticMetaObject@QCheckBox@@2UQMetaObject@@B @ 1461 NONAME ; struct QMetaObject const QCheckBox::staticMetaObject + ?d_func@QTextBlockGroup@@AAEPAVQTextBlockGroupPrivate@@XZ @ 1462 NONAME ; class QTextBlockGroupPrivate * QTextBlockGroup::d_func(void) + ?setWidget@QFocusFrame@@QAEXPAVQWidget@@@Z @ 1463 NONAME ; void QFocusFrame::setWidget(class QWidget *) + ?setNotation@QDoubleValidator@@QAEXW4Notation@1@@Z @ 1464 NONAME ; void QDoubleValidator::setNotation(enum QDoubleValidator::Notation) + ?rowResized@QTableView@@IAEXHHH@Z @ 1465 NONAME ; void QTableView::rowResized(int, int, int) + ?toFillPolygons@QPainterPath@@QBE?AV?$QList@VQPolygonF@@@@ABVQMatrix@@@Z @ 1466 NONAME ; class QList QPainterPath::toFillPolygons(class QMatrix const &) const + ?drawTiledPixmap@QPaintEngineEx@@UAEXABVQRectF@@ABVQPixmap@@ABVQPointF@@@Z @ 1467 NONAME ; void QPaintEngineEx::drawTiledPixmap(class QRectF const &, class QPixmap const &, class QPointF const &) + ?insertFromMimeData@QTextControl@@UAEXPBVQMimeData@@@Z @ 1468 NONAME ; void QTextControl::insertFromMimeData(class QMimeData const *) + ?setDefaultPositioning@QGridLayout@@QAEXHW4Orientation@Qt@@@Z @ 1469 NONAME ; void QGridLayout::setDefaultPositioning(int, enum Qt::Orientation) + ?mouseReleaseEvent@QPlainTextEdit@@MAEXPAVQMouseEvent@@@Z @ 1470 NONAME ; void QPlainTextEdit::mouseReleaseEvent(class QMouseEvent *) + ?setFormat@QImageIOHandler@@QAEXABVQByteArray@@@Z @ 1471 NONAME ; void QImageIOHandler::setFormat(class QByteArray const &) + ??0QGraphicsObject@@IAE@AAVQGraphicsItemPrivate@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 1472 NONAME ; QGraphicsObject::QGraphicsObject(class QGraphicsItemPrivate &, class QGraphicsItem *, class QGraphicsScene *) + ?trUtf8@QDoubleSpinBox@@SA?AVQString@@PBD0@Z @ 1473 NONAME ; class QString QDoubleSpinBox::trUtf8(char const *, char const *) + ?isObscuredBy@QGraphicsEllipseItem@@UBE_NPBVQGraphicsItem@@@Z @ 1474 NONAME ; bool QGraphicsEllipseItem::isObscuredBy(class QGraphicsItem const *) const + ?hasClipOperations@QPaintEngineExPrivate@@QBE_NXZ @ 1475 NONAME ; bool QPaintEngineExPrivate::hasClipOperations(void) const + ??1QStyleOptionViewItemV4@@QAE@XZ @ 1476 NONAME ; QStyleOptionViewItemV4::~QStyleOptionViewItemV4(void) + ?drawControl@QWindowsStyle@@UBEXW4ControlElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 1477 NONAME ; void QWindowsStyle::drawControl(enum QStyle::ControlElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?display@QLCDNumber@@QAEXH@Z @ 1478 NONAME ; void QLCDNumber::display(int) + ?accept@QFileDialog@@MAEXXZ @ 1479 NONAME ; void QFileDialog::accept(void) + ?isSessionRestored@QApplication@@QBE_NXZ @ 1480 NONAME ; bool QApplication::isSessionRestored(void) const + ?d_func@QWizard@@ABEPBVQWizardPrivate@@XZ @ 1481 NONAME ; class QWizardPrivate const * QWizard::d_func(void) const + ??4QTextCharFormat@@QAEAAV0@ABV0@@Z @ 1482 NONAME ; class QTextCharFormat & QTextCharFormat::operator=(class QTextCharFormat const &) + ??8Key@QPixmapCache@@QBE_NABV01@@Z @ 1483 NONAME ; bool QPixmapCache::Key::operator==(class QPixmapCache::Key const &) const + ?find@QTextControl@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 1484 NONAME ; bool QTextControl::find(class QString const &, class QFlags) + ?completer@QLineControl@@QBEPAVQCompleter@@XZ @ 1485 NONAME ; class QCompleter * QLineControl::completer(void) const + ?toPlainText@QTextDocumentFragment@@QBE?AVQString@@XZ @ 1486 NONAME ; class QString QTextDocumentFragment::toPlainText(void) const + ?event@QTabWidget@@MAE_NPAVQEvent@@@Z @ 1487 NONAME ; bool QTabWidget::event(class QEvent *) + ?normalized@QQuaternion@@QBE?AV1@XZ @ 1488 NONAME ; class QQuaternion QQuaternion::normalized(void) const + ?rowCount@QTableWidget@@QBEHXZ @ 1489 NONAME ; int QTableWidget::rowCount(void) const + ?insertPlainText@QTextEdit@@QAEXABVQString@@@Z @ 1490 NONAME ; void QTextEdit::insertPlainText(class QString const &) + ?fileDialogDirectory@QGuiPlatformPlugin@@UBE?AVQString@@PBVQFileDialog@@@Z @ 1491 NONAME ; class QString QGuiPlatformPlugin::fileDialogDirectory(class QFileDialog const *) const + ?sizeHint@QDial@@UBE?AVQSize@@XZ @ 1492 NONAME ; class QSize QDial::sizeHint(void) const + ?setCompletionRole@QCompleter@@QAEXH@Z @ 1493 NONAME ; void QCompleter::setCompletionRole(int) + ?mapRect@QMatrix4x4@@QBE?AVQRect@@ABV2@@Z @ 1494 NONAME ; class QRect QMatrix4x4::mapRect(class QRect const &) const + ?currentChanged@QFileDialog@@IAEXABVQString@@@Z @ 1495 NONAME ; void QFileDialog::currentChanged(class QString const &) + ?setContentsMargins@QWidget@@QAEXHHHH@Z @ 1496 NONAME ; void QWidget::setContentsMargins(int, int, int, int) + ?defaultFont@QTextFormatCollection@@QBE?AVQFont@@XZ @ 1497 NONAME ; class QFont QTextFormatCollection::defaultFont(void) const + ?d_func@QAbstractProxyModel@@ABEPBVQAbstractProxyModelPrivate@@XZ @ 1498 NONAME ; class QAbstractProxyModelPrivate const * QAbstractProxyModel::d_func(void) const + ?sectionPressed@QHeaderView@@IAEXH@Z @ 1499 NONAME ; void QHeaderView::sectionPressed(int) + ?redo@QUndoGroup@@QAEXXZ @ 1500 NONAME ; void QUndoGroup::redo(void) + ?blockCountChanged@QPlainTextEdit@@IAEXH@Z @ 1501 NONAME ; void QPlainTextEdit::blockCountChanged(int) + ?supportedImageFormats@QImageReader@@SA?AV?$QList@VQByteArray@@@@XZ @ 1502 NONAME ; class QList QImageReader::supportedImageFormats(void) + ?flags@QPaintEngineEx@@UBEIXZ @ 1503 NONAME ; unsigned int QPaintEngineEx::flags(void) const + ??0QStyleHintReturnMask@@QAE@XZ @ 1504 NONAME ; QStyleHintReturnMask::QStyleHintReturnMask(void) + ?subElementRect@QS60Style@@UBE?AVQRect@@W4SubElement@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 1505 NONAME ; class QRect QS60Style::subElementRect(enum QStyle::SubElement, class QStyleOption const *, class QWidget const *) const + ?modificationChanged@QTextControl@@IAEX_N@Z @ 1506 NONAME ; void QTextControl::modificationChanged(bool) + ??_EQFileOpenEvent@@UAE@I@Z @ 1507 NONAME ; QFileOpenEvent::~QFileOpenEvent(unsigned int) + ??IQRegion@@QBE?BV0@ABVQRect@@@Z @ 1508 NONAME ; class QRegion const QRegion::operator&(class QRect const &) const + ??1Key@QPixmapCache@@QAE@XZ @ 1509 NONAME ; QPixmapCache::Key::~Key(void) + ?metaObject@QPinchGesture@@UBEPBUQMetaObject@@XZ @ 1510 NONAME ; struct QMetaObject const * QPinchGesture::metaObject(void) const + ?drawPixmap@QPainter@@QAEXABVQPointF@@ABVQPixmap@@@Z @ 1511 NONAME ; void QPainter::drawPixmap(class QPointF const &, class QPixmap const &) + ?tr@QSpinBox@@SA?AVQString@@PBD0@Z @ 1512 NONAME ; class QString QSpinBox::tr(char const *, char const *) + ?movableChanged@QToolBar@@IAEX_N@Z @ 1513 NONAME ; void QToolBar::movableChanged(bool) + ?rows@QTextTable@@QBEHXZ @ 1514 NONAME ; int QTextTable::rows(void) const + ?setBackground@QMdiArea@@QAEXABVQBrush@@@Z @ 1515 NONAME ; void QMdiArea::setBackground(class QBrush const &) + ?setFirstDayOfWeek@QCalendarWidget@@QAEXW4DayOfWeek@Qt@@@Z @ 1516 NONAME ; void QCalendarWidget::setFirstDayOfWeek(enum Qt::DayOfWeek) + ?wheelEvent@QTextEdit@@MAEXPAVQWheelEvent@@@Z @ 1517 NONAME ; void QTextEdit::wheelEvent(class QWheelEvent *) + ?foregroundBrush@QGraphicsScene@@QBE?AVQBrush@@XZ @ 1518 NONAME ; class QBrush QGraphicsScene::foregroundBrush(void) const + ??0QVector4D@@QAE@ABVQVector3D@@M@Z @ 1519 NONAME ; QVector4D::QVector4D(class QVector3D const &, float) + ?foreground@QStandardItem@@QBE?AVQBrush@@XZ @ 1520 NONAME ; class QBrush QStandardItem::foreground(void) const + ?trUtf8@QLineControl@@SA?AVQString@@PBD0H@Z @ 1521 NONAME ; class QString QLineControl::trUtf8(char const *, char const *, int) + ?offsetChanged@QGraphicsDropShadowEffect@@IAEXABVQPointF@@@Z @ 1522 NONAME ; void QGraphicsDropShadowEffect::offsetChanged(class QPointF const &) + ?mouseMoveEvent@QSplitterHandle@@MAEXPAVQMouseEvent@@@Z @ 1523 NONAME ; void QSplitterHandle::mouseMoveEvent(class QMouseEvent *) + ?iconSize@QTabBar@@QBE?AVQSize@@XZ @ 1524 NONAME ; class QSize QTabBar::iconSize(void) const + ?metaObject@QWizard@@UBEPBUQMetaObject@@XZ @ 1525 NONAME ; struct QMetaObject const * QWizard::metaObject(void) const + ?sizeHint@QCommandLinkButton@@MBE?AVQSize@@XZ @ 1526 NONAME ; class QSize QCommandLinkButton::sizeHint(void) const + ?setCheckable@QAbstractButton@@QAEX_N@Z @ 1527 NONAME ; void QAbstractButton::setCheckable(bool) + ?setFileName@QMovie@@QAEXABVQString@@@Z @ 1528 NONAME ; void QMovie::setFileName(class QString const &) + ?activated@QCompleter@@IAEXABVQString@@@Z @ 1529 NONAME ; void QCompleter::activated(class QString const &) + ??0QBitmap@@QAE@HH@Z @ 1530 NONAME ; QBitmap::QBitmap(int, int) + ?grabWidget@QPixmap@@SA?AV1@PAVQWidget@@ABVQRect@@@Z @ 1531 NONAME ; class QPixmap QPixmap::grabWidget(class QWidget *, class QRect const &) + ?trUtf8@QComboBox@@SA?AVQString@@PBD0@Z @ 1532 NONAME ; class QString QComboBox::trUtf8(char const *, char const *) + ??0QMatrix@@QAE@W4Initialization@Qt@@@Z @ 1533 NONAME ; QMatrix::QMatrix(enum Qt::Initialization) + ?setData@QListWidgetItem@@UAEXHABVQVariant@@@Z @ 1534 NONAME ; void QListWidgetItem::setData(int, class QVariant const &) + ?count@QKeySequence@@QBEIXZ @ 1535 NONAME ; unsigned int QKeySequence::count(void) const + ?begin@QPainter@@QAE_NPAVQPaintDevice@@@Z @ 1536 NONAME ; bool QPainter::begin(class QPaintDevice *) + ?horizontalStretch@QSizePolicy@@QBEHXZ @ 1537 NONAME ; int QSizePolicy::horizontalStretch(void) const + ?parsePrio@Parser@QCss@@QAE_NPAUDeclaration@2@@Z @ 1538 NONAME ; bool QCss::Parser::parsePrio(struct QCss::Declaration *) + ?detach@QBrush@@AAEXW4BrushStyle@Qt@@@Z @ 1539 NONAME ; void QBrush::detach(enum Qt::BrushStyle) + ?trUtf8@QTextFrame@@SA?AVQString@@PBD0H@Z @ 1540 NONAME ; class QString QTextFrame::trUtf8(char const *, char const *, int) + ?mapRectFromParent@QGraphicsItem@@QBE?AVQRectF@@MMMM@Z @ 1541 NONAME ; class QRectF QGraphicsItem::mapRectFromParent(float, float, float, float) const + ?alignmentRect@QLayout@@IBE?AVQRect@@ABV2@@Z @ 1542 NONAME ; class QRect QLayout::alignmentRect(class QRect const &) const + ?visualPos@QStyle@@SA?AVQPoint@@W4LayoutDirection@Qt@@ABVQRect@@ABV2@@Z @ 1543 NONAME ; class QPoint QStyle::visualPos(enum Qt::LayoutDirection, class QRect const &, class QPoint const &) + ?setHidden@QTreeWidgetItem@@QAEX_N@Z @ 1544 NONAME ; void QTreeWidgetItem::setHidden(bool) + ?eventFilter@QGraphicsScene@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 1545 NONAME ; bool QGraphicsScene::eventFilter(class QObject *, class QEvent *) + ?isValidInput@QLineControl@@ABE_NVQChar@@0@Z @ 1546 NONAME ; bool QLineControl::isValidInput(class QChar, class QChar) const + ?d_func@QSlider@@ABEPBVQSliderPrivate@@XZ @ 1547 NONAME ; class QSliderPrivate const * QSlider::d_func(void) const + ?propertyChange@QGraphicsWidget@@MAE?AVQVariant@@ABVQString@@ABV2@@Z @ 1548 NONAME ; class QVariant QGraphicsWidget::propertyChange(class QString const &, class QVariant const &) + ?moveRect@QWidgetPrivate@@QAEXABVQRect@@HH@Z @ 1549 NONAME ; void QWidgetPrivate::moveRect(class QRect const &, int, int) + ??_EQPaintEngineEx@@UAE@I@Z @ 1550 NONAME ; QPaintEngineEx::~QPaintEngineEx(unsigned int) + ?getFont@QFontDialog@@SA?AVQFont@@PA_NABV2@PAVQWidget@@@Z @ 1551 NONAME ; class QFont QFontDialog::getFont(bool *, class QFont const &, class QWidget *) + ??0QTextBlockFormat@@IAE@ABVQTextFormat@@@Z @ 1552 NONAME ; QTextBlockFormat::QTextBlockFormat(class QTextFormat const &) + ??1QCompleter@@UAE@XZ @ 1553 NONAME ; QCompleter::~QCompleter(void) + ?appendRows@QStandardItem@@QAEXABV?$QList@PAVQStandardItem@@@@@Z @ 1554 NONAME ; void QStandardItem::appendRows(class QList const &) + ??6@YAAAVQDataStream@@AAV0@ABVQMatrix@@@Z @ 1555 NONAME ; class QDataStream & operator<<(class QDataStream &, class QMatrix const &) + ?setHeaderHidden@QTreeView@@QAEX_N@Z @ 1556 NONAME ; void QTreeView::setHeaderHidden(bool) + ?engineForScript@QFontPrivate@@QBEPAVQFontEngine@@H@Z @ 1557 NONAME ; class QFontEngine * QFontPrivate::engineForScript(int) const + ?fileDialogSetFilter@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@@Z @ 1558 NONAME ; void QGuiPlatformPlugin::fileDialogSetFilter(class QFileDialog *) + ?rowCount@QFileSystemModel@@UBEHABVQModelIndex@@@Z @ 1559 NONAME ; int QFileSystemModel::rowCount(class QModelIndex const &) const + ?globalX@QTabletEvent@@QBEHXZ @ 1560 NONAME ; int QTabletEvent::globalX(void) const + ?cleanupMultitouch_sys@QApplicationPrivate@@QAEXXZ @ 1561 NONAME ; void QApplicationPrivate::cleanupMultitouch_sys(void) + ?setCursor@QGraphicsItem@@QAEXABVQCursor@@@Z @ 1562 NONAME ; void QGraphicsItem::setCursor(class QCursor const &) + ??9QImage@@QBE_NABV0@@Z @ 1563 NONAME ; bool QImage::operator!=(class QImage const &) const + ?hoverEnterEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 1564 NONAME ; void QGraphicsItem::hoverEnterEvent(class QGraphicsSceneHoverEvent *) + ?isRedoAvailable@QTextDocument@@QBE_NXZ @ 1565 NONAME ; bool QTextDocument::isRedoAvailable(void) const + ?showEvent@QGraphicsWidget@@MAEXPAVQShowEvent@@@Z @ 1566 NONAME ; void QGraphicsWidget::showEvent(class QShowEvent *) + ??1QStandardItemModel@@UAE@XZ @ 1567 NONAME ; QStandardItemModel::~QStandardItemModel(void) + ?d_func@QDesktopWidget@@AAEPAVQDesktopWidgetPrivate@@XZ @ 1568 NONAME ; class QDesktopWidgetPrivate * QDesktopWidget::d_func(void) + ??0QTextCursor@@QAE@PAVQTextFrame@@@Z @ 1569 NONAME ; QTextCursor::QTextCursor(class QTextFrame *) + ?addAction@QToolBar@@QAEPAVQAction@@ABVQIcon@@ABVQString@@PBVQObject@@PBD@Z @ 1570 NONAME ; class QAction * QToolBar::addAction(class QIcon const &, class QString const &, class QObject const *, char const *) + ?setPixmap@QSplashScreen@@QAEXABVQPixmap@@@Z @ 1571 NONAME ; void QSplashScreen::setPixmap(class QPixmap const &) + ?inputMethodEvent@QComboBox@@MAEXPAVQInputMethodEvent@@@Z @ 1572 NONAME ; void QComboBox::inputMethodEvent(class QInputMethodEvent *) + ?initFrom@QStyleOption@@QAEXPBVQWidget@@@Z @ 1573 NONAME ; void QStyleOption::initFrom(class QWidget const *) + ?setItem@QStandardItemModel@@QAEXHPAVQStandardItem@@@Z @ 1574 NONAME ; void QStandardItemModel::setItem(int, class QStandardItem *) + ?mouseDoubleClickEvent@QTreeView@@MAEXPAVQMouseEvent@@@Z @ 1575 NONAME ; void QTreeView::mouseDoubleClickEvent(class QMouseEvent *) + ??0QGraphicsColorizeEffect@@QAE@PAVQObject@@@Z @ 1576 NONAME ; QGraphicsColorizeEffect::QGraphicsColorizeEffect(class QObject *) + ??0QRegion@@QAE@HHHHW4RegionType@0@@Z @ 1577 NONAME ; QRegion::QRegion(int, int, int, int, enum QRegion::RegionType) + ?separatorsCollapsible@QMenu@@QBE_NXZ @ 1578 NONAME ; bool QMenu::separatorsCollapsible(void) const + ?hidden_focus_widget@QApplicationPrivate@@2PAVQWidget@@A @ 1579 NONAME ; class QWidget * QApplicationPrivate::hidden_focus_widget + ??_EQAction@@UAE@I@Z @ 1580 NONAME ; QAction::~QAction(unsigned int) + ??0QTextDocumentWriter@@QAE@ABVQString@@ABVQByteArray@@@Z @ 1581 NONAME ; QTextDocumentWriter::QTextDocumentWriter(class QString const &, class QByteArray const &) + ?isUndoRedoEnabled@QTextEdit@@QBE_NXZ @ 1582 NONAME ; bool QTextEdit::isUndoRedoEnabled(void) const + ?currentFont@QFontComboBox@@QBE?AVQFont@@XZ @ 1583 NONAME ; class QFont QFontComboBox::currentFont(void) const + ?setWeekdayTextFormat@QCalendarWidget@@QAEXW4DayOfWeek@Qt@@ABVQTextCharFormat@@@Z @ 1584 NONAME ; void QCalendarWidget::setWeekdayTextFormat(enum Qt::DayOfWeek, class QTextCharFormat const &) + ?horizontalScrollbarAction@QAbstractItemView@@MAEXH@Z @ 1585 NONAME ; void QAbstractItemView::horizontalScrollbarAction(int) + ?checkedId@QButtonGroup@@QBEHXZ @ 1586 NONAME ; int QButtonGroup::checkedId(void) const + ?minimumSizeHint@QLineEdit@@UBE?AVQSize@@XZ @ 1587 NONAME ; class QSize QLineEdit::minimumSizeHint(void) const + ?drawPoints@QPaintEngine@@UAEXPBVQPoint@@H@Z @ 1588 NONAME ; void QPaintEngine::drawPoints(class QPoint const *, int) + ?brush@QPaintEngineState@@QBE?AVQBrush@@XZ @ 1589 NONAME ; class QBrush QPaintEngineState::brush(void) const + ?trUtf8@QGesture@@SA?AVQString@@PBD0@Z @ 1590 NONAME ; class QString QGesture::trUtf8(char const *, char const *) + ?takeAt@QBoxLayout@@UAEPAVQLayoutItem@@H@Z @ 1591 NONAME ; class QLayoutItem * QBoxLayout::takeAt(int) + ?qt_metacall@QMenuBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1592 NONAME ; int QMenuBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setFinalStop@QLinearGradient@@QAEXABVQPointF@@@Z @ 1593 NONAME ; void QLinearGradient::setFinalStop(class QPointF const &) + ?cornerWidget@QMenuBar@@QBEPAVQWidget@@W4Corner@Qt@@@Z @ 1594 NONAME ; class QWidget * QMenuBar::cornerWidget(enum Qt::Corner) const + ?sort@QStringListModel@@UAEXHW4SortOrder@Qt@@@Z @ 1595 NONAME ; void QStringListModel::sort(int, enum Qt::SortOrder) + ?setDate@QDateTimeEdit@@QAEXABVQDate@@@Z @ 1596 NONAME ; void QDateTimeEdit::setDate(class QDate const &) + ?columnResized@QTableView@@IAEXHHH@Z @ 1597 NONAME ; void QTableView::columnResized(int, int, int) + ?staticMetaObject@QStandardItemModel@@2UQMetaObject@@B @ 1598 NONAME ; struct QMetaObject const QStandardItemModel::staticMetaObject + ??_EQInputMethodEvent@@UAE@I@Z @ 1599 NONAME ; QInputMethodEvent::~QInputMethodEvent(unsigned int) + ?setOptions@QFontDialog@@QAEXV?$QFlags@W4FontDialogOption@QFontDialog@@@@@Z @ 1600 NONAME ; void QFontDialog::setOptions(class QFlags) + ?checkState@QTreeWidgetItem@@QBE?AW4CheckState@Qt@@H@Z @ 1601 NONAME ; enum Qt::CheckState QTreeWidgetItem::checkState(int) const + ?widget@QScrollArea@@QBEPAVQWidget@@XZ @ 1602 NONAME ; class QWidget * QScrollArea::widget(void) const + ?trUtf8@QTabBar@@SA?AVQString@@PBD0H@Z @ 1603 NONAME ; class QString QTabBar::trUtf8(char const *, char const *, int) + ?setElementPositionAt@QPainterPath@@QAEXHMM@Z @ 1604 NONAME ; void QPainterPath::setElementPositionAt(int, float, float) + ?closeActiveWindow@QWorkspace@@QAEXXZ @ 1605 NONAME ; void QWorkspace::closeActiveWindow(void) + ?style@QGraphicsWidget@@QBEPAVQStyle@@XZ @ 1606 NONAME ; class QStyle * QGraphicsWidget::style(void) const + ??0QIntValidator@@QAE@HHPAVQObject@@@Z @ 1607 NONAME ; QIntValidator::QIntValidator(int, int, class QObject *) + ?d_func@QTextFrame@@ABEPBVQTextFramePrivate@@XZ @ 1608 NONAME ; class QTextFramePrivate const * QTextFrame::d_func(void) const + ?y@QWidget@@QBEHXZ @ 1609 NONAME ; int QWidget::y(void) const + ?setFlow@QListView@@QAEXW4Flow@1@@Z @ 1610 NONAME ; void QListView::setFlow(enum QListView::Flow) + ?isReadOnly@QDirModel@@QBE_NXZ @ 1611 NONAME ; bool QDirModel::isReadOnly(void) const + ?lexemUntil@Parser@QCss@@QAE?AVQString@@W4TokenType@2@@Z @ 1612 NONAME ; class QString QCss::Parser::lexemUntil(enum QCss::TokenType) + ??1QTextObjectInterface@@UAE@XZ @ 1613 NONAME ; QTextObjectInterface::~QTextObjectInterface(void) + ?setButtons@QGraphicsSceneMouseEvent@@QAEXV?$QFlags@W4MouseButton@Qt@@@@@Z @ 1614 NONAME ; void QGraphicsSceneMouseEvent::setButtons(class QFlags) + ?dispatchEnterLeave@QApplicationPrivate@@SAXPAVQWidget@@0@Z @ 1615 NONAME ; void QApplicationPrivate::dispatchEnterLeave(class QWidget *, class QWidget *) + ?stickyFocus@QGraphicsScene@@QBE_NXZ @ 1616 NONAME ; bool QGraphicsScene::stickyFocus(void) const + ?qt_metacast@QAction@@UAEPAXPBD@Z @ 1617 NONAME ; void * QAction::qt_metacast(char const *) + ?d_func@QPanGesture@@ABEPBVQPanGesturePrivate@@XZ @ 1618 NONAME ; class QPanGesturePrivate const * QPanGesture::d_func(void) const + ?setPath@QGraphicsPathItem@@QAEXABVQPainterPath@@@Z @ 1619 NONAME ; void QGraphicsPathItem::setPath(class QPainterPath const &) + ?setColor@QGraphicsDropShadowEffect@@QAEXABVQColor@@@Z @ 1620 NONAME ; void QGraphicsDropShadowEffect::setColor(class QColor const &) + ?sort@QSortFilterProxyModel@@UAEXHW4SortOrder@Qt@@@Z @ 1621 NONAME ; void QSortFilterProxyModel::sort(int, enum Qt::SortOrder) + ?offset@QGraphicsPixmapItem@@QBE?AVQPointF@@XZ @ 1622 NONAME ; class QPointF QGraphicsPixmapItem::offset(void) const + ?availableGeometry@QDesktopWidget@@QBE?BVQRect@@ABVQPoint@@@Z @ 1623 NONAME ; class QRect const QDesktopWidget::availableGeometry(class QPoint const &) const + ?setExtraSelections@QPlainTextEdit@@QAEXABV?$QList@UExtraSelection@QTextEdit@@@@@Z @ 1624 NONAME ; void QPlainTextEdit::setExtraSelections(class QList const &) + ?setColumnHidden@QTreeView@@QAEXH_N@Z @ 1625 NONAME ; void QTreeView::setColumnHidden(int, bool) + ?timeLine@QGraphicsItemAnimation@@QBEPAVQTimeLine@@XZ @ 1626 NONAME ; class QTimeLine * QGraphicsItemAnimation::timeLine(void) const + ?sizeFromContents@QS60Style@@UBE?AVQSize@@W4ContentsType@QStyle@@PBVQStyleOption@@ABV2@PBVQWidget@@@Z @ 1627 NONAME ; class QSize QS60Style::sizeFromContents(enum QStyle::ContentsType, class QStyleOption const *, class QSize const &, class QWidget const *) const + ?tAtLength@QBezier@@QBEMM@Z @ 1628 NONAME ; float QBezier::tAtLength(float) const + ?isAncestorOf@QGraphicsItem@@QBE_NPBV1@@Z @ 1629 NONAME ; bool QGraphicsItem::isAncestorOf(class QGraphicsItem const *) const + ?redo@QUndoStack@@QAEXXZ @ 1630 NONAME ; void QUndoStack::redo(void) + ?setDirty@QPaintEngine@@QAEXV?$QFlags@W4DirtyFlag@QPaintEngine@@@@@Z @ 1631 NONAME ; void QPaintEngine::setDirty(class QFlags) + ?state@QPaintEngineEx@@QAEPAVQPainterState@@XZ @ 1632 NONAME ; class QPainterState * QPaintEngineEx::state(void) + ??0QPixmap@@QAE@HH@Z @ 1633 NONAME ; QPixmap::QPixmap(int, int) + ?split@QBezier@@QBEXPAV1@0@Z @ 1634 NONAME ; void QBezier::split(class QBezier *, class QBezier *) const + ?sortOrder@QListWidget@@ABE?AW4SortOrder@Qt@@XZ @ 1635 NONAME ; enum Qt::SortOrder QListWidget::sortOrder(void) const + ?tr@QClipboard@@SA?AVQString@@PBD0@Z @ 1636 NONAME ; class QString QClipboard::tr(char const *, char const *) + ??1QStylePlugin@@UAE@XZ @ 1637 NONAME ; QStylePlugin::~QStylePlugin(void) + ?trUtf8@QProxyStyle@@SA?AVQString@@PBD0@Z @ 1638 NONAME ; class QString QProxyStyle::trUtf8(char const *, char const *) + ?angleChanged@QGraphicsRotation@@IAEXXZ @ 1639 NONAME ; void QGraphicsRotation::angleChanged(void) + ?horizontalOffset@QTableView@@MBEHXZ @ 1640 NONAME ; int QTableView::horizontalOffset(void) const + ?subWindowActivated@QMdiArea@@IAEXPAVQMdiSubWindow@@@Z @ 1641 NONAME ; void QMdiArea::subWindowActivated(class QMdiSubWindow *) + ??0QGraphicsGrayscaleEffect@@QAE@PAVQObject@@@Z @ 1642 NONAME ; QGraphicsGrayscaleEffect::QGraphicsGrayscaleEffect(class QObject *) + ?tr@QItemDelegate@@SA?AVQString@@PBD0H@Z @ 1643 NONAME ; class QString QItemDelegate::tr(char const *, char const *, int) + ?isObscuredBy@QGraphicsPolygonItem@@UBE_NPBVQGraphicsItem@@@Z @ 1644 NONAME ; bool QGraphicsPolygonItem::isObscuredBy(class QGraphicsItem const *) const + ?anchorClicked@QTextBrowser@@IAEXABVQUrl@@@Z @ 1645 NONAME ; void QTextBrowser::anchorClicked(class QUrl const &) + ?childEvent@QMdiSubWindow@@MAEXPAVQChildEvent@@@Z @ 1646 NONAME ; void QMdiSubWindow::childEvent(class QChildEvent *) + ?enterEvent@QMenu@@MAEXPAVQEvent@@@Z @ 1647 NONAME ; void QMenu::enterEvent(class QEvent *) + ?ensureInputCapabilitiesChanged@QCoeFepInputContext@@AAEXXZ @ 1648 NONAME ; void QCoeFepInputContext::ensureInputCapabilitiesChanged(void) + ?tr@QSwipeGesture@@SA?AVQString@@PBD0@Z @ 1649 NONAME ; class QString QSwipeGesture::tr(char const *, char const *) + ?d_func@QGraphicsPixelizeEffect@@AAEPAVQGraphicsPixelizeEffectPrivate@@XZ @ 1650 NONAME ; class QGraphicsPixelizeEffectPrivate * QGraphicsPixelizeEffect::d_func(void) + ?completer@QComboBox@@QBEPAVQCompleter@@XZ @ 1651 NONAME ; class QCompleter * QComboBox::completer(void) const + ?testOption@QMdiSubWindow@@QBE_NW4SubWindowOption@1@@Z @ 1652 NONAME ; bool QMdiSubWindow::testOption(enum QMdiSubWindow::SubWindowOption) const + ?mapRectToScene@QGraphicsItem@@QBE?AVQRectF@@ABV2@@Z @ 1653 NONAME ; class QRectF QGraphicsItem::mapRectToScene(class QRectF const &) const + ?hasWindingFill@QVectorPath@@QBE_NXZ @ 1654 NONAME ; bool QVectorPath::hasWindingFill(void) const + ?staticMetaObject@QProgressDialog@@2UQMetaObject@@B @ 1655 NONAME ; struct QMetaObject const QProgressDialog::staticMetaObject + ?iconText@QAction@@QBE?AVQString@@XZ @ 1656 NONAME ; class QString QAction::iconText(void) const + ?qt_metacall@QClipboard@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1657 NONAME ; int QClipboard::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QMenu@@QAE@ABVQString@@PAVQWidget@@@Z @ 1658 NONAME ; QMenu::QMenu(class QString const &, class QWidget *) + ??0QStyleOptionMenuItem@@QAE@XZ @ 1659 NONAME ; QStyleOptionMenuItem::QStyleOptionMenuItem(void) + ?write@QTableWidgetItem@@UBEXAAVQDataStream@@@Z @ 1660 NONAME ; void QTableWidgetItem::write(class QDataStream &) const + ??D@YA?AVQPoint@@ABV0@ABVQTransform@@@Z @ 1661 NONAME ; class QPoint operator*(class QPoint const &, class QTransform const &) + ?verticalScrollbarAction@QTableView@@MAEXH@Z @ 1662 NONAME ; void QTableView::verticalScrollbarAction(int) + ?mergeCurrentCharFormat@QPlainTextEdit@@QAEXABVQTextCharFormat@@@Z @ 1663 NONAME ; void QPlainTextEdit::mergeCurrentCharFormat(class QTextCharFormat const &) + ??0QTreeWidgetItemIterator@@QAE@PAVQTreeWidget@@V?$QFlags@W4IteratorFlag@QTreeWidgetItemIterator@@@@@Z @ 1664 NONAME ; QTreeWidgetItemIterator::QTreeWidgetItemIterator(class QTreeWidget *, class QFlags) + ?mousePressEvent@QTreeView@@MAEXPAVQMouseEvent@@@Z @ 1665 NONAME ; void QTreeView::mousePressEvent(class QMouseEvent *) + ?rootFrame@QTextDocument@@QBEPAVQTextFrame@@XZ @ 1666 NONAME ; class QTextFrame * QTextDocument::rootFrame(void) const + ?trUtf8@QAbstractItemDelegate@@SA?AVQString@@PBD0H@Z @ 1667 NONAME ; class QString QAbstractItemDelegate::trUtf8(char const *, char const *, int) + ??0QTextDocumentFragment@@QAE@ABV0@@Z @ 1668 NONAME ; QTextDocumentFragment::QTextDocumentFragment(class QTextDocumentFragment const &) + ?setButtonDownPos@QGraphicsSceneMouseEvent@@QAEXW4MouseButton@Qt@@ABVQPointF@@@Z @ 1669 NONAME ; void QGraphicsSceneMouseEvent::setButtonDownPos(enum Qt::MouseButton, class QPointF const &) + ?event@QCommandLinkButton@@MAE_NPAVQEvent@@@Z @ 1670 NONAME ; bool QCommandLinkButton::event(class QEvent *) + ?trUtf8@QFontDialog@@SA?AVQString@@PBD0@Z @ 1671 NONAME ; class QString QFontDialog::trUtf8(char const *, char const *) + ?tr@QButtonGroup@@SA?AVQString@@PBD0@Z @ 1672 NONAME ; class QString QButtonGroup::tr(char const *, char const *) + ?setAlignment@QGraphicsLinearLayout@@QAEXPAVQGraphicsLayoutItem@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 1673 NONAME ; void QGraphicsLinearLayout::setAlignment(class QGraphicsLayoutItem *, class QFlags) + ?supportsThreadedFontRendering@QFontDatabase@@SA_NXZ @ 1674 NONAME ; bool QFontDatabase::supportsThreadedFontRendering(void) + ?setWorldMatrix@QPainter@@QAEXABVQMatrix@@_N@Z @ 1675 NONAME ; void QPainter::setWorldMatrix(class QMatrix const &, bool) + ?mouseMoveEvent@QDial@@MAEXPAVQMouseEvent@@@Z @ 1676 NONAME ; void QDial::mouseMoveEvent(class QMouseEvent *) + ?invalidate@QGraphicsLayout@@UAEXXZ @ 1677 NONAME ; void QGraphicsLayout::invalidate(void) + ??0QAction@@QAE@ABVQIcon@@ABVQString@@PAVQObject@@@Z @ 1678 NONAME ; QAction::QAction(class QIcon const &, class QString const &, class QObject *) + ?geometry@QWindowSurface@@QBE?AVQRect@@XZ @ 1679 NONAME ; class QRect QWindowSurface::geometry(void) const + ?metaObject@QIntValidator@@UBEPBUQMetaObject@@XZ @ 1680 NONAME ; struct QMetaObject const * QIntValidator::metaObject(void) const + ?createStandardContextMenu@QTextEdit@@QAEPAVQMenu@@XZ @ 1681 NONAME ; class QMenu * QTextEdit::createStandardContextMenu(void) + ?create_sys@QWidgetPrivate@@QAEXPAVCCoeControl@@_N1@Z @ 1682 NONAME ; void QWidgetPrivate::create_sys(class CCoeControl *, bool, bool) + ?insertColumns@QStandardItem@@QAEXHH@Z @ 1683 NONAME ; void QStandardItem::insertColumns(int, int) + ?qSmartMaxSize@@YA?AVQSize@@PBVQWidget@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 1684 NONAME ; class QSize qSmartMaxSize(class QWidget const *, class QFlags) + ??0QGraphicsEllipseItem@@QAE@ABVQRectF@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 1685 NONAME ; QGraphicsEllipseItem::QGraphicsEllipseItem(class QRectF const &, class QGraphicsItem *, class QGraphicsScene *) + ?themeName@QIcon@@SA?AVQString@@XZ @ 1686 NONAME ; class QString QIcon::themeName(void) + ?copy@QLineEdit@@QBEXXZ @ 1687 NONAME ; void QLineEdit::copy(void) const + ?setWordWrap@QTreeView@@QAEX_N@Z @ 1688 NONAME ; void QTreeView::setWordWrap(bool) + ?setCheckState@QListWidgetItem@@QAEXW4CheckState@Qt@@@Z @ 1689 NONAME ; void QListWidgetItem::setCheckState(enum Qt::CheckState) + ?resolveSymlinks@QDirModel@@QBE_NXZ @ 1690 NONAME ; bool QDirModel::resolveSymlinks(void) const + ?width@QTextLine@@QBEMXZ @ 1691 NONAME ; float QTextLine::width(void) const + ?detach_helper@QPicture@@AAEXXZ @ 1692 NONAME ; void QPicture::detach_helper(void) + ??6@YAAAVQDataStream@@AAV0@ABVQPixmap@@@Z @ 1693 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPixmap const &) + ?setWindowIcon_helper@QWidgetPrivate@@QAEXXZ @ 1694 NONAME ; void QWidgetPrivate::setWindowIcon_helper(void) + ?getStaticMetaObject@QListWidget@@SAABUQMetaObject@@XZ @ 1695 NONAME ; struct QMetaObject const & QListWidget::getStaticMetaObject(void) + ?userState@QTextBlock@@QBEHXZ @ 1696 NONAME ; int QTextBlock::userState(void) const + ?qt_metacast@QTextTable@@UAEPAXPBD@Z @ 1697 NONAME ; void * QTextTable::qt_metacast(char const *) + ?isModified@QLineEdit@@QBE_NXZ @ 1698 NONAME ; bool QLineEdit::isModified(void) const + ?setText@QStandardItem@@QAEXABVQString@@@Z @ 1699 NONAME ; void QStandardItem::setText(class QString const &) + ??6@YAAAVQDataStream@@AAV0@ABVQMatrix4x4@@@Z @ 1700 NONAME ; class QDataStream & operator<<(class QDataStream &, class QMatrix4x4 const &) + ?isTableFormat@QTextFormat@@QBE_NXZ @ 1701 NONAME ; bool QTextFormat::isTableFormat(void) const + ?getStaticMetaObject@QPanGesture@@SAABUQMetaObject@@XZ @ 1702 NONAME ; struct QMetaObject const & QPanGesture::getStaticMetaObject(void) + ?currentTable@QTextCursor@@QBEPAVQTextTable@@XZ @ 1703 NONAME ; class QTextTable * QTextCursor::currentTable(void) const + ??1QPixmapDropShadowFilter@@UAE@XZ @ 1704 NONAME ; QPixmapDropShadowFilter::~QPixmapDropShadowFilter(void) + ?setHsv@QColor@@QAEXHHHH@Z @ 1705 NONAME ; void QColor::setHsv(int, int, int, int) + ?setSelected@QListWidgetItem@@QAEX_N@Z @ 1706 NONAME ; void QListWidgetItem::setSelected(bool) + ?pixelMetric@QS60Style@@UBEHW4PixelMetric@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 1707 NONAME ; int QS60Style::pixelMetric(enum QStyle::PixelMetric, class QStyleOption const *, class QWidget const *) const + ?geometry@QSpacerItem@@UBE?AVQRect@@XZ @ 1708 NONAME ; class QRect QSpacerItem::geometry(void) const + ?columnSpan@QTextTableCell@@QBEHXZ @ 1709 NONAME ; int QTextTableCell::columnSpan(void) const + ?metaObject@QTextBrowser@@UBEPBUQMetaObject@@XZ @ 1710 NONAME ; struct QMetaObject const * QTextBrowser::metaObject(void) const + ?boundingRect@QFontMetrics@@QBE?AVQRect@@ABV2@HABVQString@@HPAH@Z @ 1711 NONAME ; class QRect QFontMetrics::boundingRect(class QRect const &, int, class QString const &, int, int *) const + ??9QGradient@@QBE_NABV0@@Z @ 1712 NONAME ; bool QGradient::operator!=(class QGradient const &) const + ?position@QTextLine@@QBE?AVQPointF@@XZ @ 1713 NONAME ; class QPointF QTextLine::position(void) const + ?trUtf8@QSound@@SA?AVQString@@PBD0@Z @ 1714 NONAME ; class QString QSound::trUtf8(char const *, char const *) + ?drawPolyline@QPainter@@QAEXPBVQPointF@@H@Z @ 1715 NONAME ; void QPainter::drawPolyline(class QPointF const *, int) + ?setCursor_sys@QWidgetPrivate@@QAEXABVQCursor@@@Z @ 1716 NONAME ; void QWidgetPrivate::setCursor_sys(class QCursor const &) + ?tr@QSessionManager@@SA?AVQString@@PBD0H@Z @ 1717 NONAME ; class QString QSessionManager::tr(char const *, char const *, int) + ?setEditText@QComboBox@@QAEXABVQString@@@Z @ 1718 NONAME ; void QComboBox::setEditText(class QString const &) + ?navigationMode@QApplicationPrivate@@2W4NavigationMode@Qt@@A @ 1719 NONAME ; enum Qt::NavigationMode QApplicationPrivate::navigationMode + ??_EQTextBrowser@@UAE@I@Z @ 1720 NONAME ; QTextBrowser::~QTextBrowser(unsigned int) + ?d_func@QGraphicsBlurEffect@@AAEPAVQGraphicsBlurEffectPrivate@@XZ @ 1721 NONAME ; class QGraphicsBlurEffectPrivate * QGraphicsBlurEffect::d_func(void) + ?getOpaqueChildren@QWidgetPrivate@@QBEABVQRegion@@XZ @ 1722 NONAME ; class QRegion const & QWidgetPrivate::getOpaqueChildren(void) const + ?trUtf8@QWidgetAction@@SA?AVQString@@PBD0@Z @ 1723 NONAME ; class QString QWidgetAction::trUtf8(char const *, char const *) + ?end@QLineControl@@QBEHXZ @ 1724 NONAME ; int QLineControl::end(void) const + ?addToGroup@QGraphicsItemGroup@@QAEXPAVQGraphicsItem@@@Z @ 1725 NONAME ; void QGraphicsItemGroup::addToGroup(class QGraphicsItem *) + ?d_func@QSwipeGesture@@ABEPBVQSwipeGesturePrivate@@XZ @ 1726 NONAME ; class QSwipeGesturePrivate const * QSwipeGesture::d_func(void) const + ?setNumColumns@QTextLine@@QAEXH@Z @ 1727 NONAME ; void QTextLine::setNumColumns(int) + ?indexes@QItemSelection@@QBE?AV?$QList@VQModelIndex@@@@XZ @ 1728 NONAME ; class QList QItemSelection::indexes(void) const + ?atBlockEnd@QTextCursor@@QBE_NXZ @ 1729 NONAME ; bool QTextCursor::atBlockEnd(void) const + ?effectiveOpacity@QGraphicsItemPrivate@@QBEMXZ @ 1730 NONAME ; float QGraphicsItemPrivate::effectiveOpacity(void) const + ?pixelMetric@QCommonStyle@@UBEHW4PixelMetric@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 1731 NONAME ; int QCommonStyle::pixelMetric(enum QStyle::PixelMetric, class QStyleOption const *, class QWidget const *) const + ?stop@QSound@@QAEXXZ @ 1732 NONAME ; void QSound::stop(void) + ?description@QInputContextFactory@@SA?AVQString@@ABV2@@Z @ 1733 NONAME ; class QString QInputContextFactory::description(class QString const &) + ?insertItem@QGraphicsLinearLayout@@QAEXHPAVQGraphicsLayoutItem@@@Z @ 1734 NONAME ; void QGraphicsLinearLayout::insertItem(int, class QGraphicsLayoutItem *) + ??0QKeySequence@@QAE@ABVQString@@@Z @ 1735 NONAME ; QKeySequence::QKeySequence(class QString const &) + ??0QTextImageFormat@@IAE@ABVQTextFormat@@@Z @ 1736 NONAME ; QTextImageFormat::QTextImageFormat(class QTextFormat const &) + ?setVerticalHeaderLabels@QStandardItemModel@@QAEXABVQStringList@@@Z @ 1737 NONAME ; void QStandardItemModel::setVerticalHeaderLabels(class QStringList const &) + ??_EQSortFilterProxyModel@@UAE@I@Z @ 1738 NONAME ; QSortFilterProxyModel::~QSortFilterProxyModel(unsigned int) + ?paintEvent@QWorkspace@@MAEXPAVQPaintEvent@@@Z @ 1739 NONAME ; void QWorkspace::paintEvent(class QPaintEvent *) + ??0QPaintEngineEx@@IAE@AAVQPaintEngineExPrivate@@@Z @ 1740 NONAME ; QPaintEngineEx::QPaintEngineEx(class QPaintEngineExPrivate &) + ?setDescription@QPictureIO@@QAEXABVQString@@@Z @ 1741 NONAME ; void QPictureIO::setDescription(class QString const &) + ?clone@QTreeWidgetItem@@UBEPAV1@XZ @ 1742 NONAME ; class QTreeWidgetItem * QTreeWidgetItem::clone(void) const + ?qt_metacall@QGroupBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1743 NONAME ; int QGroupBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?headerTextFormat@QCalendarWidget@@QBE?AVQTextCharFormat@@XZ @ 1744 NONAME ; class QTextCharFormat QCalendarWidget::headerTextFormat(void) const + ?opaqueResize@QSplitter@@QBE_NXZ @ 1745 NONAME ; bool QSplitter::opaqueResize(void) const + ?setClickable@QHeaderView@@QAEX_N@Z @ 1746 NONAME ; void QHeaderView::setClickable(bool) + ?mapToScene@QGraphicsItem@@QBE?AVQPointF@@MM@Z @ 1747 NONAME ; class QPointF QGraphicsItem::mapToScene(float, float) const + ?sizeHintForIndex@QAbstractItemView@@QBE?AVQSize@@ABVQModelIndex@@@Z @ 1748 NONAME ; class QSize QAbstractItemView::sizeHintForIndex(class QModelIndex const &) const + ?setTabStop@QTextOption@@QAEXM@Z @ 1749 NONAME ; void QTextOption::setTabStop(float) + ?textFromDateTime@QDateTimeEdit@@MBE?AVQString@@ABVQDateTime@@@Z @ 1750 NONAME ; class QString QDateTimeEdit::textFromDateTime(class QDateTime const &) const + ?setText@QListWidgetItem@@QAEXABVQString@@@Z @ 1751 NONAME ; void QListWidgetItem::setText(class QString const &) + ?setCommitString@QInputMethodEvent@@QAEXABVQString@@HH@Z @ 1752 NONAME ; void QInputMethodEvent::setCommitString(class QString const &, int, int) + ?qt_qscrollbarStyleOption@@YA?AVQStyleOptionSlider@@PAVQScrollBar@@@Z @ 1753 NONAME ; class QStyleOptionSlider qt_qscrollbarStyleOption(class QScrollBar *) + ?isEmpty@QWidgetItem@@UBE_NXZ @ 1754 NONAME ; bool QWidgetItem::isEmpty(void) const + ?brush@QPalette@@QBEABVQBrush@@W4ColorGroup@1@W4ColorRole@1@@Z @ 1755 NONAME ; class QBrush const & QPalette::brush(enum QPalette::ColorGroup, enum QPalette::ColorRole) const + ?setRevision@QTextBlock@@QAEXH@Z @ 1756 NONAME ; void QTextBlock::setRevision(int) + ?detailedText@QMessageBox@@QBE?AVQString@@XZ @ 1757 NONAME ; class QString QMessageBox::detailedText(void) const + ?toPoint@QVector4D@@QBE?AVQPoint@@XZ @ 1758 NONAME ; class QPoint QVector4D::toPoint(void) const + ?contentsRect@QGraphicsLayoutItem@@QBE?AVQRectF@@XZ @ 1759 NONAME ; class QRectF QGraphicsLayoutItem::contentsRect(void) const + ??0QWidgetAction@@QAE@PAVQObject@@@Z @ 1760 NONAME ; QWidgetAction::QWidgetAction(class QObject *) + ?extension@QGraphicsPathItem@@MBE?AVQVariant@@ABV2@@Z @ 1761 NONAME ; class QVariant QGraphicsPathItem::extension(class QVariant const &) const + ?minimumTitleWidth@QDockWidgetLayout@@QBEHXZ @ 1762 NONAME ; int QDockWidgetLayout::minimumTitleWidth(void) const + ?m31@QTransform@@QBEMXZ @ 1763 NONAME ; float QTransform::m31(void) const + ?lengthSquared@QVector2D@@QBEMXZ @ 1764 NONAME ; float QVector2D::lengthSquared(void) const + ??0QVector3D@@QAE@ABVQVector2D@@@Z @ 1765 NONAME ; QVector3D::QVector3D(class QVector2D const &) + ?before@QActionEvent@@QBEPAVQAction@@XZ @ 1766 NONAME ; class QAction * QActionEvent::before(void) const + ??0QGraphicsSceneContextMenuEvent@@QAE@W4Type@QEvent@@@Z @ 1767 NONAME ; QGraphicsSceneContextMenuEvent::QGraphicsSceneContextMenuEvent(enum QEvent::Type) + ?updateRequest@QTextControl@@IAEXABVQRectF@@@Z @ 1768 NONAME ; void QTextControl::updateRequest(class QRectF const &) + ?setSelectionModel@QTreeWidget@@UAEXPAVQItemSelectionModel@@@Z @ 1769 NONAME ; void QTreeWidget::setSelectionModel(class QItemSelectionModel *) + ?minimumSizeHint@QInputDialog@@UBE?AVQSize@@XZ @ 1770 NONAME ; class QSize QInputDialog::minimumSizeHint(void) const + ??4QIcon@@QAEAAV0@ABV0@@Z @ 1771 NONAME ; class QIcon & QIcon::operator=(class QIcon const &) + ??0QGraphicsLayoutItem@@IAE@AAVQGraphicsLayoutItemPrivate@@@Z @ 1772 NONAME ; QGraphicsLayoutItem::QGraphicsLayoutItem(class QGraphicsLayoutItemPrivate &) + ?fill@QPixmap@@QAEXABVQColor@@@Z @ 1773 NONAME ; void QPixmap::fill(class QColor const &) + ?qDrawWinButton@@YAXPAVQPainter@@ABVQRect@@ABVQPalette@@_NPBVQBrush@@@Z @ 1774 NONAME ; void qDrawWinButton(class QPainter *, class QRect const &, class QPalette const &, bool, class QBrush const *) + ?joinStyle@QPen@@QBE?AW4PenJoinStyle@Qt@@XZ @ 1775 NONAME ; enum Qt::PenJoinStyle QPen::joinStyle(void) const + ?trUtf8@QLayout@@SA?AVQString@@PBD0@Z @ 1776 NONAME ; class QString QLayout::trUtf8(char const *, char const *) + ?uniformRowHeights@QTreeView@@QBE_NXZ @ 1777 NONAME ; bool QTreeView::uniformRowHeights(void) const + ?itemIndexMethod@QGraphicsScene@@QBE?AW4ItemIndexMethod@1@XZ @ 1778 NONAME ; enum QGraphicsScene::ItemIndexMethod QGraphicsScene::itemIndexMethod(void) const + ??YQRegion@@QAEAAV0@ABVQRect@@@Z @ 1779 NONAME ; class QRegion & QRegion::operator+=(class QRect const &) + ?destroyItemGroup@QGraphicsScene@@QAEXPAVQGraphicsItemGroup@@@Z @ 1780 NONAME ; void QGraphicsScene::destroyItemGroup(class QGraphicsItemGroup *) + ??5@YAAAVQDataStream@@AAV0@AAVQTextFormat@@@Z @ 1781 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTextFormat &) + ??_EQDoubleValidator@@UAE@I@Z @ 1782 NONAME ; QDoubleValidator::~QDoubleValidator(unsigned int) + ?supportsOption@QImageIOHandler@@UBE_NW4ImageOption@1@@Z @ 1783 NONAME ; bool QImageIOHandler::supportsOption(enum QImageIOHandler::ImageOption) const + ?show_recursive@QWidgetPrivate@@QAEXXZ @ 1784 NONAME ; void QWidgetPrivate::show_recursive(void) + ?backgroundVisible@QPlainTextEdit@@QBE_NXZ @ 1785 NONAME ; bool QPlainTextEdit::backgroundVisible(void) const + ?sizeHint@QLabel@@UBE?AVQSize@@XZ @ 1786 NONAME ; class QSize QLabel::sizeHint(void) const + ?getStaticMetaObject@QMenu@@SAABUQMetaObject@@XZ @ 1787 NONAME ; struct QMetaObject const & QMenu::getStaticMetaObject(void) + ?staticMetaObject@QDirModel@@2UQMetaObject@@B @ 1788 NONAME ; struct QMetaObject const QDirModel::staticMetaObject + ??BQVector3D@@QBE?AVQVariant@@XZ @ 1789 NONAME ; QVector3D::operator class QVariant(void) const + ?d_func@QPainter@@ABEPBVQPainterPrivate@@XZ @ 1790 NONAME ; class QPainterPrivate const * QPainter::d_func(void) const + ?currentIndex@QCompleter@@QBE?AVQModelIndex@@XZ @ 1791 NONAME ; class QModelIndex QCompleter::currentIndex(void) const + ?setGraphicsItem@QGraphicsLayoutItem@@IAEXPAVQGraphicsItem@@@Z @ 1792 NONAME ; void QGraphicsLayoutItem::setGraphicsItem(class QGraphicsItem *) + ?setBorderBrush@QTextFrameFormat@@QAEXABVQBrush@@@Z @ 1793 NONAME ; void QTextFrameFormat::setBorderBrush(class QBrush const &) + ?isMovable@QTabBar@@QBE_NXZ @ 1794 NONAME ; bool QTabBar::isMovable(void) const + ?columnCount@QStandardItemModel@@UBEHABVQModelIndex@@@Z @ 1795 NONAME ; int QStandardItemModel::columnCount(class QModelIndex const &) const + ?rotate@QMatrix4x4@@QAEAAV1@MMMM@Z @ 1796 NONAME ; class QMatrix4x4 & QMatrix4x4::rotate(float, float, float, float) + ?alignment@QTextTableFormat@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 1797 NONAME ; class QFlags QTextTableFormat::alignment(void) const + ?copy@QRegion@@ABE?AV1@XZ @ 1798 NONAME ; class QRegion QRegion::copy(void) const + ?height@QLineControl@@QBEHXZ @ 1799 NONAME ; int QLineControl::height(void) const + ?data_ptr@QPixmap@@QAEAAV?$QExplicitlySharedDataPointer@VQPixmapData@@@@XZ @ 1800 NONAME ; class QExplicitlySharedDataPointer & QPixmap::data_ptr(void) + ?valueFromText@QSpinBox@@MBEHABVQString@@@Z @ 1801 NONAME ; int QSpinBox::valueFromText(class QString const &) const + ?completionCount@QCompleter@@QBEHXZ @ 1802 NONAME ; int QCompleter::completionCount(void) const + ??_EQBoxLayout@@UAE@I@Z @ 1803 NONAME ; QBoxLayout::~QBoxLayout(unsigned int) + ?normalized@QVector4D@@QBE?AV1@XZ @ 1804 NONAME ; class QVector4D QVector4D::normalized(void) const + ?glyphCache@QFontEngine@@QBEPAVQFontEngineGlyphCache@@W4Type@2@ABVQTransform@@@Z @ 1805 NONAME ; class QFontEngineGlyphCache * QFontEngine::glyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &) const + ?getStaticMetaObject@QActionGroup@@SAABUQMetaObject@@XZ @ 1806 NONAME ; struct QMetaObject const & QActionGroup::getStaticMetaObject(void) + ??9QItemSelectionRange@@QBE_NABV0@@Z @ 1807 NONAME ; bool QItemSelectionRange::operator!=(class QItemSelectionRange const &) const + ?visualRegionForSelection@QHeaderView@@MBE?AVQRegion@@ABVQItemSelection@@@Z @ 1808 NONAME ; class QRegion QHeaderView::visualRegionForSelection(class QItemSelection const &) const + ??1QLinearGradient@@QAE@XZ @ 1809 NONAME ; QLinearGradient::~QLinearGradient(void) + ?navigationMode@QApplication@@SA?AW4NavigationMode@Qt@@XZ @ 1810 NONAME ; enum Qt::NavigationMode QApplication::navigationMode(void) + ?takeRow@QStandardItem@@QAE?AV?$QList@PAVQStandardItem@@@@H@Z @ 1811 NONAME ; class QList QStandardItem::takeRow(int) + ?setLayoutData@QTextFrame@@QAEXPAVQTextFrameLayoutData@@@Z @ 1812 NONAME ; void QTextFrame::setLayoutData(class QTextFrameLayoutData *) + ?textKeys@QImage@@QBE?AVQStringList@@XZ @ 1813 NONAME ; class QStringList QImage::textKeys(void) const + ?height@QPixmap@@QBEHXZ @ 1814 NONAME ; int QPixmap::height(void) const + ?setPreeditArea@QLineControl@@QAEXHABVQString@@@Z @ 1815 NONAME ; void QLineControl::setPreeditArea(int, class QString const &) + ?trUtf8@QCompleter@@SA?AVQString@@PBD0@Z @ 1816 NONAME ; class QString QCompleter::trUtf8(char const *, char const *) + ?mouseReleaseEvent@QLabel@@MAEXPAVQMouseEvent@@@Z @ 1817 NONAME ; void QLabel::mouseReleaseEvent(class QMouseEvent *) + ?toggle@QAction@@QAEXXZ @ 1818 NONAME ; void QAction::toggle(void) + ?setItemDelegateForColumn@QAbstractItemView@@QAEXHPAVQAbstractItemDelegate@@@Z @ 1819 NONAME ; void QAbstractItemView::setItemDelegateForColumn(int, class QAbstractItemDelegate *) + ?createMaskFromColor@QPixmap@@QBE?AVQBitmap@@ABVQColor@@@Z @ 1820 NONAME ; class QBitmap QPixmap::createMaskFromColor(class QColor const &) const + ?columnStretchFactor@QGraphicsGridLayout@@QBEHH@Z @ 1821 NONAME ; int QGraphicsGridLayout::columnStretchFactor(int) const + ?isIdentity@QTransform@@QBE_NXZ @ 1822 NONAME ; bool QTransform::isIdentity(void) const + ?drawPie@QPainter@@QAEXHHHHHH@Z @ 1823 NONAME ; void QPainter::drawPie(int, int, int, int, int, int) + ?cubicTo@QStrokerOps@@QAEXMMMMMM@Z @ 1824 NONAME ; void QStrokerOps::cubicTo(float, float, float, float, float, float) + ?setFocalPoint@QRadialGradient@@QAEXMM@Z @ 1825 NONAME ; void QRadialGradient::setFocalPoint(float, float) + ?type@QGraphicsEllipseItem@@UBEHXZ @ 1826 NONAME ; int QGraphicsEllipseItem::type(void) const + ?insertItem@QListWidget@@QAEXHABVQString@@@Z @ 1827 NONAME ; void QListWidget::insertItem(int, class QString const &) + ?directory@QFileDialog@@QBE?AVQDir@@XZ @ 1828 NONAME ; class QDir QFileDialog::directory(void) const + ?d_func@QTextObject@@AAEPAVQTextObjectPrivate@@XZ @ 1829 NONAME ; class QTextObjectPrivate * QTextObject::d_func(void) + ??0QGraphicsEffect@@QAE@PAVQObject@@@Z @ 1830 NONAME ; QGraphicsEffect::QGraphicsEffect(class QObject *) + ?inverted@QMatrix@@QBE?AV1@PA_N@Z @ 1831 NONAME ; class QMatrix QMatrix::inverted(bool *) const + ?replacementStart@QInputMethodEvent@@QBEHXZ @ 1832 NONAME ; int QInputMethodEvent::replacementStart(void) const + ?keyPressEvent@QComboBox@@MAEXPAVQKeyEvent@@@Z @ 1833 NONAME ; void QComboBox::keyPressEvent(class QKeyEvent *) + ?fontKerning@QTextCharFormat@@QBE_NXZ @ 1834 NONAME ; bool QTextCharFormat::fontKerning(void) const + ?setDefaultFont@QTextFormatCollection@@QAEXABVQFont@@@Z @ 1835 NONAME ; void QTextFormatCollection::setDefaultFont(class QFont const &) + ??8QFontMetrics@@QBE_NABV0@@Z @ 1836 NONAME ; bool QFontMetrics::operator==(class QFontMetrics const &) const + ??0QGestureRecognizer@@QAE@XZ @ 1837 NONAME ; QGestureRecognizer::QGestureRecognizer(void) + ?setText@QLabel@@QAEXABVQString@@@Z @ 1838 NONAME ; void QLabel::setText(class QString const &) + ?scroll@QGraphicsItem@@QAEXMMABVQRectF@@@Z @ 1839 NONAME ; void QGraphicsItem::scroll(float, float, class QRectF const &) + ?resize@QRasterPixmapData@@UAEXHH@Z @ 1840 NONAME ; void QRasterPixmapData::resize(int, int) + ?warning@QMessageBox@@SA?AW4StandardButton@1@PAVQWidget@@ABVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z @ 1841 NONAME ; enum QMessageBox::StandardButton QMessageBox::warning(class QWidget *, class QString const &, class QString const &, class QFlags, enum QMessageBox::StandardButton) + ?d_func@QStatusBar@@AAEPAVQStatusBarPrivate@@XZ @ 1842 NONAME ; class QStatusBarPrivate * QStatusBar::d_func(void) + ?drawPolygon@QPainter@@QAEXPBVQPointF@@HW4FillRule@Qt@@@Z @ 1843 NONAME ; void QPainter::drawPolygon(class QPointF const *, int, enum Qt::FillRule) + ?passwordEchoEditing@QLineControl@@QBE_NXZ @ 1844 NONAME ; bool QLineControl::passwordEchoEditing(void) const + ?setWindowIcon@QApplication@@SAXABVQIcon@@@Z @ 1845 NONAME ; void QApplication::setWindowIcon(class QIcon const &) + ?saveInputEvent@QEventDispatcherS60@@QAEXPAVQSymbianControl@@PAVQWidget@@PAVQInputEvent@@@Z @ 1846 NONAME ; void QEventDispatcherS60::saveInputEvent(class QSymbianControl *, class QWidget *, class QInputEvent *) + ?setImage@QClipboard@@QAEXABVQImage@@W4Mode@1@@Z @ 1847 NONAME ; void QClipboard::setImage(class QImage const &, enum QClipboard::Mode) + ?metaObject@QFileDialog@@UBEPBUQMetaObject@@XZ @ 1848 NONAME ; struct QMetaObject const * QFileDialog::metaObject(void) const + ??_EQBitmap@@UAE@I@Z @ 1849 NONAME ; QBitmap::~QBitmap(unsigned int) + ?d_func@QAction@@AAEPAVQActionPrivate@@XZ @ 1850 NONAME ; class QActionPrivate * QAction::d_func(void) + ?textBeforeSelection@QLineControl@@QBE?AVQString@@XZ @ 1851 NONAME ; class QString QLineControl::textBeforeSelection(void) const + ??_EQTabBar@@UAE@I@Z @ 1852 NONAME ; QTabBar::~QTabBar(unsigned int) + ?qt_metacall@QGraphicsObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1853 NONAME ; int QGraphicsObject::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setStartPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 1854 NONAME ; void QTouchEvent::TouchPoint::setStartPos(class QPointF const &) + ?drawPrimitive@QProxyStyle@@UBEXW4PrimitiveElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 1855 NONAME ; void QProxyStyle::drawPrimitive(enum QStyle::PrimitiveElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?hitTest@QTextControl@@UBEHABVQPointF@@W4HitTestAccuracy@Qt@@@Z @ 1856 NONAME ; int QTextControl::hitTest(class QPointF const &, enum Qt::HitTestAccuracy) const + ?toolTip@QWidget@@QBE?AVQString@@XZ @ 1857 NONAME ; class QString QWidget::toolTip(void) const + ?buffer@QWindowSurface@@UAEPAVQImage@@PBVQWidget@@@Z @ 1858 NONAME ; class QImage * QWindowSurface::buffer(class QWidget const *) + ?setEmptyCachedClipPathRecursively@QGraphicsItemPrivate@@QAEXABVQRectF@@@Z @ 1859 NONAME ; void QGraphicsItemPrivate::setEmptyCachedClipPathRecursively(class QRectF const &) + ?setModel@QComboBox@@QAEXPAVQAbstractItemModel@@@Z @ 1860 NONAME ; void QComboBox::setModel(class QAbstractItemModel *) + ?d_func@QGraphicsSceneHelpEvent@@AAEPAVQGraphicsSceneHelpEventPrivate@@XZ @ 1861 NONAME ; class QGraphicsSceneHelpEventPrivate * QGraphicsSceneHelpEvent::d_func(void) + ?rootIndex@QAbstractItemView@@QBE?AVQModelIndex@@XZ @ 1862 NONAME ; class QModelIndex QAbstractItemView::rootIndex(void) const + ?drawPixmap@QPainter@@QAEXABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 1863 NONAME ; void QPainter::drawPixmap(class QPointF const &, class QPixmap const &, class QRectF const &) + ?focusInEvent@QAbstractSpinBox@@MAEXPAVQFocusEvent@@@Z @ 1864 NONAME ; void QAbstractSpinBox::focusInEvent(class QFocusEvent *) + ?parseClass@Parser@QCss@@QAE_NPAVQString@@@Z @ 1865 NONAME ; bool QCss::Parser::parseClass(class QString *) + ?mouseReleaseEvent@QMenuBar@@MAEXPAVQMouseEvent@@@Z @ 1866 NONAME ; void QMenuBar::mouseReleaseEvent(class QMouseEvent *) + ?elidedText@QTextEngine@@QBE?AVQString@@W4TextElideMode@Qt@@ABUQFixed@@H@Z @ 1867 NONAME ; class QString QTextEngine::elidedText(enum Qt::TextElideMode, struct QFixed const &, int) const + ??1QImage@@UAE@XZ @ 1868 NONAME ; QImage::~QImage(void) + ?tr@QPixmapConvolutionFilter@@SA?AVQString@@PBD0@Z @ 1869 NONAME ; class QString QPixmapConvolutionFilter::tr(char const *, char const *) + ?setTextCursor@QTextControl@@QAEXABVQTextCursor@@@Z @ 1870 NONAME ; void QTextControl::setTextCursor(class QTextCursor const &) + ?mouseReleaseEvent@QTabBar@@MAEXPAVQMouseEvent@@@Z @ 1871 NONAME ; void QTabBar::mouseReleaseEvent(class QMouseEvent *) + ?d_func@QGraphicsSceneContextMenuEvent@@AAEPAVQGraphicsSceneContextMenuEventPrivate@@XZ @ 1872 NONAME ; class QGraphicsSceneContextMenuEventPrivate * QGraphicsSceneContextMenuEvent::d_func(void) + ?setSizeGripEnabled@QStatusBar@@QAEX_N@Z @ 1873 NONAME ; void QStatusBar::setSizeGripEnabled(bool) + ??4QStyleOptionSizeGrip@@QAEAAV0@ABV0@@Z @ 1874 NONAME ; class QStyleOptionSizeGrip & QStyleOptionSizeGrip::operator=(class QStyleOptionSizeGrip const &) + ?rootDirectory@QFileSystemModel@@QBE?AVQDir@@XZ @ 1875 NONAME ; class QDir QFileSystemModel::rootDirectory(void) const + ?mimeTypes@QFileSystemModel@@UBE?AVQStringList@@XZ @ 1876 NONAME ; class QStringList QFileSystemModel::mimeTypes(void) const + ?syncX@QApplication@@SAXXZ @ 1877 NONAME ; void QApplication::syncX(void) + ?maxWidth@QFontMetricsF@@QBEMXZ @ 1878 NONAME ; float QFontMetricsF::maxWidth(void) const + ?drawWidget@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQRegion@@ABVQPoint@@HPAVQPainter@@PAVQWidgetBackingStore@@@Z @ 1879 NONAME ; void QWidgetPrivate::drawWidget(class QPaintDevice *, class QRegion const &, class QPoint const &, int, class QPainter *, class QWidgetBackingStore *) + ?currentCompletion@QCompleter@@QBE?AVQString@@XZ @ 1880 NONAME ; class QString QCompleter::currentCompletion(void) const + ?inverted@QMatrix4x4@@QBE?AV1@PA_N@Z @ 1881 NONAME ; class QMatrix4x4 QMatrix4x4::inverted(bool *) const + ?qt_metacall@QGesture@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1882 NONAME ; int QGesture::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setPreferredSize@QGraphicsLayoutItem@@QAEXMM@Z @ 1883 NONAME ; void QGraphicsLayoutItem::setPreferredSize(float, float) + ?giveFocusAccordingToFocusPolicy@QApplicationPrivate@@CAXPAVQWidget@@W4FocusPolicy@Qt@@W4FocusReason@4@@Z @ 1884 NONAME ; void QApplicationPrivate::giveFocusAccordingToFocusPolicy(class QWidget *, enum Qt::FocusPolicy, enum Qt::FocusReason) + ?showEvent@QMessageBox@@MAEXPAVQShowEvent@@@Z @ 1885 NONAME ; void QMessageBox::showEvent(class QShowEvent *) + ?trUtf8@QFontComboBox@@SA?AVQString@@PBD0@Z @ 1886 NONAME ; class QString QFontComboBox::trUtf8(char const *, char const *) + ?getText@QInputDialog@@SA?AVQString@@PAVQWidget@@ABV2@1W4EchoMode@QLineEdit@@1PA_NV?$QFlags@W4WindowType@Qt@@@@@Z @ 1887 NONAME ; class QString QInputDialog::getText(class QWidget *, class QString const &, class QString const &, enum QLineEdit::EchoMode, class QString const &, bool *, class QFlags) + ?isButtonDown@QWidgetResizeHandler@@QBE_NXZ @ 1888 NONAME ; bool QWidgetResizeHandler::isButtonDown(void) const + ?d_func@QColorDialog@@AAEPAVQColorDialogPrivate@@XZ @ 1889 NONAME ; class QColorDialogPrivate * QColorDialog::d_func(void) + ??0QStyleOptionFocusRect@@QAE@ABV0@@Z @ 1890 NONAME ; QStyleOptionFocusRect::QStyleOptionFocusRect(class QStyleOptionFocusRect const &) + ?d_func@QPixmapConvolutionFilter@@ABEPBVQPixmapConvolutionFilterPrivate@@XZ @ 1891 NONAME ; class QPixmapConvolutionFilterPrivate const * QPixmapConvolutionFilter::d_func(void) const + ?d_func@QGraphicsScale@@AAEPAVQGraphicsScalePrivate@@XZ @ 1892 NONAME ; class QGraphicsScalePrivate * QGraphicsScale::d_func(void) + ?setTabIcon@QTabWidget@@QAEXHABVQIcon@@@Z @ 1893 NONAME ; void QTabWidget::setTabIcon(int, class QIcon const &) + ??0QStyleOptionProgressBarV2@@QAE@ABV0@@Z @ 1894 NONAME ; QStyleOptionProgressBarV2::QStyleOptionProgressBarV2(class QStyleOptionProgressBarV2 const &) + ?detach@QPicture@@QAEXXZ @ 1895 NONAME ; void QPicture::detach(void) + ??0QMdiArea@@QAE@PAVQWidget@@@Z @ 1896 NONAME ; QMdiArea::QMdiArea(class QWidget *) + ?accept@QDialog@@UAEXXZ @ 1897 NONAME ; void QDialog::accept(void) + ?text@QClipboard@@QBE?AVQString@@AAV2@W4Mode@1@@Z @ 1898 NONAME ; class QString QClipboard::text(class QString &, enum QClipboard::Mode) const + ??0QStackedLayout@@QAE@PAVQWidget@@@Z @ 1899 NONAME ; QStackedLayout::QStackedLayout(class QWidget *) + ?widgetInNavigationDirection@QWidgetPrivate@@SAPAVQWidget@@W4Direction@1@@Z @ 1900 NONAME ; class QWidget * QWidgetPrivate::widgetInNavigationDirection(enum QWidgetPrivate::Direction) + ??0QTextOption@@QAE@ABV0@@Z @ 1901 NONAME ; QTextOption::QTextOption(class QTextOption const &) + ?setResizeGripsVisible@QColumnView@@QAEX_N@Z @ 1902 NONAME ; void QColumnView::setResizeGripsVisible(bool) + ??_EQApplication@@UAE@I@Z @ 1903 NONAME ; QApplication::~QApplication(unsigned int) + ?staticMetaObject@QImageIOPlugin@@2UQMetaObject@@B @ 1904 NONAME ; struct QMetaObject const QImageIOPlugin::staticMetaObject + ?staticMetaObject@QColumnView@@2UQMetaObject@@B @ 1905 NONAME ; struct QMetaObject const QColumnView::staticMetaObject + ?getFont@QFontDialog@@SA?AVQFont@@PA_NABV2@PAVQWidget@@ABVQString@@@Z @ 1906 NONAME ; class QFont QFontDialog::getFont(bool *, class QFont const &, class QWidget *, class QString const &) + ?setAutoSipEnabled@QApplication@@QAEX_N@Z @ 1907 NONAME ; void QApplication::setAutoSipEnabled(bool) + ?tr@QAbstractButton@@SA?AVQString@@PBD0@Z @ 1908 NONAME ; class QString QAbstractButton::tr(char const *, char const *) + ?joinStyle@QPainterPathStroker@@QBE?AW4PenJoinStyle@Qt@@XZ @ 1909 NONAME ; enum Qt::PenJoinStyle QPainterPathStroker::joinStyle(void) const + ?mimeTypes@QTreeWidget@@MBE?AVQStringList@@XZ @ 1910 NONAME ; class QStringList QTreeWidget::mimeTypes(void) const + ?keyPressEvent@QAbstractButton@@MAEXPAVQKeyEvent@@@Z @ 1911 NONAME ; void QAbstractButton::keyPressEvent(class QKeyEvent *) + ?initialize@QHeaderView@@IAEXXZ @ 1912 NONAME ; void QHeaderView::initialize(void) + ?y@QGraphicsItem@@QBEMXZ @ 1913 NONAME ; float QGraphicsItem::y(void) const + ??0QPlainTextEdit@@IAE@AAVQPlainTextEditPrivate@@PAVQWidget@@@Z @ 1914 NONAME ; QPlainTextEdit::QPlainTextEdit(class QPlainTextEditPrivate &, class QWidget *) + ??0QDateEdit@@QAE@ABVQDate@@PAVQWidget@@@Z @ 1915 NONAME ; QDateEdit::QDateEdit(class QDate const &, class QWidget *) + ?setCalendarPopup@QDateTimeEdit@@QAEX_N@Z @ 1916 NONAME ; void QDateTimeEdit::setCalendarPopup(bool) + ?cursorWordForward@QLineEdit@@QAEX_N@Z @ 1917 NONAME ; void QLineEdit::cursorWordForward(bool) + ??0iterator@QTextBlock@@QAE@ABV01@@Z @ 1918 NONAME ; QTextBlock::iterator::iterator(class QTextBlock::iterator const &) + ?itemChange@QGraphicsItem@@MAE?AVQVariant@@W4GraphicsItemChange@1@ABV2@@Z @ 1919 NONAME ; class QVariant QGraphicsItem::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ?d_func@QPixmapBlurFilter@@AAEPAVQPixmapBlurFilterPrivate@@XZ @ 1920 NONAME ; class QPixmapBlurFilterPrivate * QPixmapBlurFilter::d_func(void) + ?inputContext@QApplicationPrivate@@2PAVQInputContext@@A @ 1921 NONAME ; class QInputContext * QApplicationPrivate::inputContext + ?bottom@QIntValidator@@QBEHXZ @ 1922 NONAME ; int QIntValidator::bottom(void) const + ?setLastScenePos@QGraphicsSceneMouseEvent@@QAEXABVQPointF@@@Z @ 1923 NONAME ; void QGraphicsSceneMouseEvent::setLastScenePos(class QPointF const &) + ?currentChanged@QTreeView@@MAEXABVQModelIndex@@0@Z @ 1924 NONAME ; void QTreeView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?setCurrentItem@QTableWidget@@QAEXPAVQTableWidgetItem@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 1925 NONAME ; void QTableWidget::setCurrentItem(class QTableWidgetItem *, class QFlags) + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@MMMMW4ItemSelectionMode@Qt@@@Z @ 1926 NONAME ; class QList QGraphicsScene::items(float, float, float, float, enum Qt::ItemSelectionMode) const + ?d_func@QCommonStyle@@ABEPBVQCommonStylePrivate@@XZ @ 1927 NONAME ; class QCommonStylePrivate const * QCommonStyle::d_func(void) const + ?undo@QLineEdit@@QAEXXZ @ 1928 NONAME ; void QLineEdit::undo(void) + ?setAnchorHref@QTextCharFormat@@QAEXABVQString@@@Z @ 1929 NONAME ; void QTextCharFormat::setAnchorHref(class QString const &) + ?length@QTextBlock@@QBEHXZ @ 1930 NONAME ; int QTextBlock::length(void) const + ?setCurrentIndex@QToolBox@@QAEXH@Z @ 1931 NONAME ; void QToolBox::setCurrentIndex(int) + ??0QItemEditorFactory@@QAE@XZ @ 1932 NONAME ; QItemEditorFactory::QItemEditorFactory(void) + ?qt_metacall@QImageIOPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1933 NONAME ; int QImageIOPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setColumnWidthConstraints@QTextTableFormat@@QAEXABV?$QVector@VQTextLength@@@@@Z @ 1934 NONAME ; void QTextTableFormat::setColumnWidthConstraints(class QVector const &) + ?d_func@QGraphicsSceneMouseEvent@@AAEPAVQGraphicsSceneMouseEventPrivate@@XZ @ 1935 NONAME ; class QGraphicsSceneMouseEventPrivate * QGraphicsSceneMouseEvent::d_func(void) + ?transform@QGraphicsView@@QBE?AVQTransform@@XZ @ 1936 NONAME ; class QTransform QGraphicsView::transform(void) const + ?actionAt@QMenuBar@@QBEPAVQAction@@ABVQPoint@@@Z @ 1937 NONAME ; class QAction * QMenuBar::actionAt(class QPoint const &) const + ?globalX@QMouseEvent@@QBEHXZ @ 1938 NONAME ; int QMouseEvent::globalX(void) const + ?keyReleaseEvent@QComboBox@@MAEXPAVQKeyEvent@@@Z @ 1939 NONAME ; void QComboBox::keyReleaseEvent(class QKeyEvent *) + ??4iterator@QTextFrame@@QAEAAV01@ABV01@@Z @ 1940 NONAME ; class QTextFrame::iterator & QTextFrame::iterator::operator=(class QTextFrame::iterator const &) + ?isPanel@QGraphicsItem@@QBE_NXZ @ 1941 NONAME ; bool QGraphicsItem::isPanel(void) const + ??0Key@QPixmapCache@@QAE@ABV01@@Z @ 1942 NONAME ; QPixmapCache::Key::Key(class QPixmapCache::Key const &) + ?restoreGeometry@QWidget@@QAE_NABVQByteArray@@@Z @ 1943 NONAME ; bool QWidget::restoreGeometry(class QByteArray const &) + ??1QMenu@@UAE@XZ @ 1944 NONAME ; QMenu::~QMenu(void) + ?setFormat@QImageWriter@@QAEXABVQByteArray@@@Z @ 1945 NONAME ; void QImageWriter::setFormat(class QByteArray const &) + ??0QInputMethodEvent@@QAE@ABV0@@Z @ 1946 NONAME ; QInputMethodEvent::QInputMethodEvent(class QInputMethodEvent const &) + ??BQImage@@QBE?AVQVariant@@XZ @ 1947 NONAME ; QImage::operator class QVariant(void) const + ?setMovie@QLabel@@QAEXPAVQMovie@@@Z @ 1948 NONAME ; void QLabel::setMovie(class QMovie *) + ?setFocusWidget@QInputContext@@UAEXPAVQWidget@@@Z @ 1949 NONAME ; void QInputContext::setFocusWidget(class QWidget *) + ?invalidate@QGraphicsGridLayout@@UAEXXZ @ 1950 NONAME ; void QGraphicsGridLayout::invalidate(void) + ?tr@QAbstractSlider@@SA?AVQString@@PBD0H@Z @ 1951 NONAME ; class QString QAbstractSlider::tr(char const *, char const *, int) + ?valueChanged@QSpinBox@@IAEXH@Z @ 1952 NONAME ; void QSpinBox::valueChanged(int) + ?updateGeometry@QGraphicsLayoutItem@@UAEXXZ @ 1953 NONAME ; void QGraphicsLayoutItem::updateGeometry(void) + ?adjustPosition@QDialog@@IAEXPAVQWidget@@@Z @ 1954 NONAME ; void QDialog::adjustPosition(class QWidget *) + ?shared_empty@QRegion@@0UQRegionData@1@A @ 1955 NONAME ; struct QRegion::QRegionData QRegion::shared_empty + ?qt_metacast@QComboBox@@UAEPAXPBD@Z @ 1956 NONAME ; void * QComboBox::qt_metacast(char const *) + ?hasSelectedText@QLineEdit@@QBE_NXZ @ 1957 NONAME ; bool QLineEdit::hasSelectedText(void) const + ?duplicatesEnabled@QComboBox@@QBE_NXZ @ 1958 NONAME ; bool QComboBox::duplicatesEnabled(void) const + ?changeEvent@QLineEdit@@MAEXPAVQEvent@@@Z @ 1959 NONAME ; void QLineEdit::changeEvent(class QEvent *) + ?setDateRange@QCalendarWidget@@QAEXABVQDate@@0@Z @ 1960 NONAME ; void QCalendarWidget::setDateRange(class QDate const &, class QDate const &) + ?itemAt@QGridLayout@@UBEPAVQLayoutItem@@H@Z @ 1961 NONAME ; class QLayoutItem * QGridLayout::itemAt(int) const + ?inputMethodEvent@QLineEdit@@MAEXPAVQInputMethodEvent@@@Z @ 1962 NONAME ; void QLineEdit::inputMethodEvent(class QInputMethodEvent *) + ?data@QPicture@@QBEPBDXZ @ 1963 NONAME ; char const * QPicture::data(void) const + ?data@QTreeWidgetItem@@UBE?AVQVariant@@HH@Z @ 1964 NONAME ; class QVariant QTreeWidgetItem::data(int, int) const + ?setLastPos@QGraphicsSceneMouseEvent@@QAEXABVQPointF@@@Z @ 1965 NONAME ; void QGraphicsSceneMouseEvent::setLastPos(class QPointF const &) + ?setAutoRepeat@QAction@@QAEX_N@Z @ 1966 NONAME ; void QAction::setAutoRepeat(bool) + ?setCmyk@QColor@@QAEXHHHHH@Z @ 1967 NONAME ; void QColor::setCmyk(int, int, int, int, int) + ?kerning@QFont@@QBE_NXZ @ 1968 NONAME ; bool QFont::kerning(void) const + ?columnCount@QTreeWidget@@QBEHXZ @ 1969 NONAME ; int QTreeWidget::columnCount(void) const + ?alignment@QTextOption@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 1970 NONAME ; class QFlags QTextOption::alignment(void) const + ?drawPolyline@QPainter@@QAEXABVQPolygon@@@Z @ 1971 NONAME ; void QPainter::drawPolyline(class QPolygon const &) + ?isSliderDown@QAbstractSlider@@QBE_NXZ @ 1972 NONAME ; bool QAbstractSlider::isSliderDown(void) const + ?isEmpty@QLayout@@UBE_NXZ @ 1973 NONAME ; bool QLayout::isEmpty(void) const + ?bezierOnInterval@QBezier@@QBE?AV1@MM@Z @ 1974 NONAME ; class QBezier QBezier::bezierOnInterval(float, float) const + ?setPosition@QTextCursor@@QAEXHW4MoveMode@1@@Z @ 1975 NONAME ; void QTextCursor::setPosition(int, enum QTextCursor::MoveMode) + ?qt_metacast@QSplitter@@UAEPAXPBD@Z @ 1976 NONAME ; void * QSplitter::qt_metacast(char const *) + ?buttonClicked@QButtonGroup@@IAEXH@Z @ 1977 NONAME ; void QButtonGroup::buttonClicked(int) + ?rowCount@QStandardItem@@QBEHXZ @ 1978 NONAME ; int QStandardItem::rowCount(void) const + ?dragMoveEvent@QPlainTextEdit@@MAEXPAVQDragMoveEvent@@@Z @ 1979 NONAME ; void QPlainTextEdit::dragMoveEvent(class QDragMoveEvent *) + ?locale@QWidget@@QBE?AVQLocale@@XZ @ 1980 NONAME ; class QLocale QWidget::locale(void) const + ?orientation@QWheelEvent@@QBE?AW4Orientation@Qt@@XZ @ 1981 NONAME ; enum Qt::Orientation QWheelEvent::orientation(void) const + ?midlight@QPalette@@QBEABVQBrush@@XZ @ 1982 NONAME ; class QBrush const & QPalette::midlight(void) const + ?style@QWidget@@QBEPAVQStyle@@XZ @ 1983 NONAME ; class QStyle * QWidget::style(void) const + ?items@QTableWidget@@IBE?AV?$QList@PAVQTableWidgetItem@@@@PBVQMimeData@@@Z @ 1984 NONAME ; class QList QTableWidget::items(class QMimeData const *) const + ?setRange@QSpinBox@@QAEXHH@Z @ 1985 NONAME ; void QSpinBox::setRange(int, int) + ??0QListView@@IAE@AAVQListViewPrivate@@PAVQWidget@@@Z @ 1986 NONAME ; QListView::QListView(class QListViewPrivate &, class QWidget *) + ?toPointF@QVector4D@@QBE?AVQPointF@@XZ @ 1987 NONAME ; class QPointF QVector4D::toPointF(void) const + ?getStaticMetaObject@QGraphicsItemAnimation@@SAABUQMetaObject@@XZ @ 1988 NONAME ; struct QMetaObject const & QGraphicsItemAnimation::getStaticMetaObject(void) + ?redF@QColor@@QBEMXZ @ 1989 NONAME ; float QColor::redF(void) const + ?file@QFileOpenEvent@@QBE?AVQString@@XZ @ 1990 NONAME ; class QString QFileOpenEvent::file(void) const + ?testPage@Parser@QCss@@QAE_NXZ @ 1991 NONAME ; bool QCss::Parser::testPage(void) + ??1QS60Style@@UAE@XZ @ 1992 NONAME ; QS60Style::~QS60Style(void) + ?trUtf8@QSlider@@SA?AVQString@@PBD0@Z @ 1993 NONAME ; class QString QSlider::trUtf8(char const *, char const *) + ?testExpr@Parser@QCss@@QAE_NXZ @ 1994 NONAME ; bool QCss::Parser::testExpr(void) + ?show@QWidget@@QAEXXZ @ 1995 NONAME ; void QWidget::show(void) + ??0QPaintEngine@@IAE@AAVQPaintEnginePrivate@@V?$QFlags@W4PaintEngineFeature@QPaintEngine@@@@@Z @ 1996 NONAME ; QPaintEngine::QPaintEngine(class QPaintEnginePrivate &, class QFlags) + ?wheelEvent@QGraphicsView@@MAEXPAVQWheelEvent@@@Z @ 1997 NONAME ; void QGraphicsView::wheelEvent(class QWheelEvent *) + ?setAlignment@QTextOption@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 1998 NONAME ; void QTextOption::setAlignment(class QFlags) + ??4QFontMetricsF@@QAEAAV0@ABV0@@Z @ 1999 NONAME ; class QFontMetricsF & QFontMetricsF::operator=(class QFontMetricsF const &) + ??1QPainterState@@UAE@XZ @ 2000 NONAME ; QPainterState::~QPainterState(void) + ?metaObject@QGraphicsWidget@@UBEPBUQMetaObject@@XZ @ 2001 NONAME ; struct QMetaObject const * QGraphicsWidget::metaObject(void) const + ??4QImage@@QAEAAV0@ABV0@@Z @ 2002 NONAME ; class QImage & QImage::operator=(class QImage const &) + ?setWindowState@QWidget@@QAEXV?$QFlags@W4WindowState@Qt@@@@@Z @ 2003 NONAME ; void QWidget::setWindowState(class QFlags) + ??_EQAbstractItemView@@UAE@I@Z @ 2004 NONAME ; QAbstractItemView::~QAbstractItemView(unsigned int) + ??0QQuaternion@@QAE@ABVQVector4D@@@Z @ 2005 NONAME ; QQuaternion::QQuaternion(class QVector4D const &) + ?setFontCapitalization@QTextCharFormat@@QAEXW4Capitalization@QFont@@@Z @ 2006 NONAME ; void QTextCharFormat::setFontCapitalization(enum QFont::Capitalization) + ?encodeString@QKeySequence@@CA?AVQString@@H@Z @ 2007 NONAME ; class QString QKeySequence::encodeString(int) + ?init@QWidgetPrivate@@QAEXPAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 2008 NONAME ; void QWidgetPrivate::init(class QWidget *, class QFlags) + ?setSizeHint@QTableWidgetItem@@QAEXABVQSize@@@Z @ 2009 NONAME ; void QTableWidgetItem::setSizeHint(class QSize const &) + ?childrenCheckState@QTreeWidgetItem@@ABE?AVQVariant@@H@Z @ 2010 NONAME ; class QVariant QTreeWidgetItem::childrenCheckState(int) const + ?textEchoMode@QInputDialog@@QBE?AW4EchoMode@QLineEdit@@XZ @ 2011 NONAME ; enum QLineEdit::EchoMode QInputDialog::textEchoMode(void) const + ?setStyle@QWidget@@QAEXPAVQStyle@@@Z @ 2012 NONAME ; void QWidget::setStyle(class QStyle *) + ??1QPixmapColorizeFilter@@UAE@XZ @ 2013 NONAME ; QPixmapColorizeFilter::~QPixmapColorizeFilter(void) + ?startScreenPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 2014 NONAME ; class QPointF QTouchEvent::TouchPoint::startScreenPos(void) const + ?clear@QComboBox@@QAEXXZ @ 2015 NONAME ; void QComboBox::clear(void) + ?mapVector@QMatrix4x4@@QBE?AVQVector3D@@ABV2@@Z @ 2016 NONAME ; class QVector3D QMatrix4x4::mapVector(class QVector3D const &) const + ?getOpenFileNames@QFileDialog@@SA?AVQStringList@@PAVQWidget@@ABVQString@@11PAV4@V?$QFlags@W4Option@QFileDialog@@@@@Z @ 2017 NONAME ; class QStringList QFileDialog::getOpenFileNames(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?qt_filedialog_save_filename_hook@@3P6A?AVQString@@PAVQWidget@@ABV1@11PAV1@V?$QFlags@W4Option@QFileDialog@@@@@ZA @ 2018 NONAME ; class QString (*qt_filedialog_save_filename_hook)(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?getStaticMetaObject@QTextObject@@SAABUQMetaObject@@XZ @ 2019 NONAME ; struct QMetaObject const & QTextObject::getStaticMetaObject(void) + ?ortho@QMatrix4x4@@QAEAAV1@MMMMMM@Z @ 2020 NONAME ; class QMatrix4x4 & QMatrix4x4::ortho(float, float, float, float, float, float) + ?textAlignment@QStandardItem@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 2021 NONAME ; class QFlags QStandardItem::textAlignment(void) const + ?source@QGraphicsEffect@@QBEPAVQGraphicsEffectSource@@XZ @ 2022 NONAME ; class QGraphicsEffectSource * QGraphicsEffect::source(void) const + ??0QBitmap@@QAE@XZ @ 2023 NONAME ; QBitmap::QBitmap(void) + ??1QPaintBuffer@@UAE@XZ @ 2024 NONAME ; QPaintBuffer::~QPaintBuffer(void) + ?setRightMargin@QTextBlockFormat@@QAEXM@Z @ 2025 NONAME ; void QTextBlockFormat::setRightMargin(float) + ?horizontalHeader@QTableView@@QBEPAVQHeaderView@@XZ @ 2026 NONAME ; class QHeaderView * QTableView::horizontalHeader(void) const + ?setTabText@QTabWidget@@QAEXHABVQString@@@Z @ 2027 NONAME ; void QTabWidget::setTabText(int, class QString const &) + ?intMinimum@QInputDialog@@QBEHXZ @ 2028 NONAME ; int QInputDialog::intMinimum(void) const + ?setPosAt@QGraphicsItemAnimation@@QAEXMABVQPointF@@@Z @ 2029 NONAME ; void QGraphicsItemAnimation::setPosAt(float, class QPointF const &) + ?invalidateGraphicsEffectsRecursively@QGraphicsItemPrivate@@QAEXXZ @ 2030 NONAME ; void QGraphicsItemPrivate::invalidateGraphicsEffectsRecursively(void) + ?setProxyModel@QFileDialog@@QAEXPAVQAbstractProxyModel@@@Z @ 2031 NONAME ; void QFileDialog::setProxyModel(class QAbstractProxyModel *) + ?tr@QIntValidator@@SA?AVQString@@PBD0@Z @ 2032 NONAME ; class QString QIntValidator::tr(char const *, char const *) + ?setDevice@QImageWriter@@QAEXPAVQIODevice@@@Z @ 2033 NONAME ; void QImageWriter::setDevice(class QIODevice *) + ?addMenu@QMenuBar@@QAEPAVQMenu@@ABVQString@@@Z @ 2034 NONAME ; class QMenu * QMenuBar::addMenu(class QString const &) + ?clearMapping@QDataWidgetMapper@@QAEXXZ @ 2035 NONAME ; void QDataWidgetMapper::clearMapping(void) + ?selectAll@QAbstractItemView@@UAEXXZ @ 2036 NONAME ; void QAbstractItemView::selectAll(void) + ?wrapAround@QCompleter@@QBE_NXZ @ 2037 NONAME ; bool QCompleter::wrapAround(void) const + ?resizeRowsToContents@QTableView@@QAEXXZ @ 2038 NONAME ; void QTableView::resizeRowsToContents(void) + ?orientation@QSplitter@@QBE?AW4Orientation@Qt@@XZ @ 2039 NONAME ; enum Qt::Orientation QSplitter::orientation(void) const + ?trUtf8@QProgressBar@@SA?AVQString@@PBD0@Z @ 2040 NONAME ; class QString QProgressBar::trUtf8(char const *, char const *) + ?top@QDoubleValidator@@QBENXZ @ 2041 NONAME ; double QDoubleValidator::top(void) const + ?setDelta@QGraphicsSceneWheelEvent@@QAEXH@Z @ 2042 NONAME ; void QGraphicsSceneWheelEvent::setDelta(int) + ?setShearAt@QGraphicsItemAnimation@@QAEXMMM@Z @ 2043 NONAME ; void QGraphicsItemAnimation::setShearAt(float, float, float) + ?metaObject@QGridLayout@@UBEPBUQMetaObject@@XZ @ 2044 NONAME ; struct QMetaObject const * QGridLayout::metaObject(void) const + ??MQListWidgetItem@@UBE_NABV0@@Z @ 2045 NONAME ; bool QListWidgetItem::operator<(class QListWidgetItem const &) const + ?staticMetaObject@QWidgetResizeHandler@@2UQMetaObject@@B @ 2046 NONAME ; struct QMetaObject const QWidgetResizeHandler::staticMetaObject + ??_EQCompleter@@UAE@I@Z @ 2047 NONAME ; QCompleter::~QCompleter(unsigned int) + ??0QAbstractScrollArea@@QAE@PAVQWidget@@@Z @ 2048 NONAME ; QAbstractScrollArea::QAbstractScrollArea(class QWidget *) + ?metaObject@QLineControl@@UBEPBUQMetaObject@@XZ @ 2049 NONAME ; struct QMetaObject const * QLineControl::metaObject(void) const + ?scroll_sys@QWidgetPrivate@@QAEXHH@Z @ 2050 NONAME ; void QWidgetPrivate::scroll_sys(int, int) + ?markContentsDirty@QTextDocument@@QAEXHH@Z @ 2051 NONAME ; void QTextDocument::markContentsDirty(int, int) + ??1QAbstractSlider@@UAE@XZ @ 2052 NONAME ; QAbstractSlider::~QAbstractSlider(void) + ?tr@QAbstractItemDelegate@@SA?AVQString@@PBD0H@Z @ 2053 NONAME ; class QString QAbstractItemDelegate::tr(char const *, char const *, int) + ?initFrom@QPainter@@QAEXPBVQWidget@@@Z @ 2054 NONAME ; void QPainter::initFrom(class QWidget const *) + ?generatedIconPixmap@QCommonStyle@@UBE?AVQPixmap@@W4Mode@QIcon@@ABV2@PBVQStyleOption@@@Z @ 2055 NONAME ; class QPixmap QCommonStyle::generatedIconPixmap(enum QIcon::Mode, class QPixmap const &, class QStyleOption const *) const + ?codecForHtml@Qt@@YAPAVQTextCodec@@ABVQByteArray@@@Z @ 2056 NONAME ; class QTextCodec * Qt::codecForHtml(class QByteArray const &) + ?setOffset@QGraphicsDropShadowEffect@@QAEXMM@Z @ 2057 NONAME ; void QGraphicsDropShadowEffect::setOffset(float, float) + ?isMaximized@QWidget@@QBE_NXZ @ 2058 NONAME ; bool QWidget::isMaximized(void) const + ?setScalar@QQuaternion@@QAEXM@Z @ 2059 NONAME ; void QQuaternion::setScalar(float) + ?setActiveWindow@QWorkspace@@QAEXPAVQWidget@@@Z @ 2060 NONAME ; void QWorkspace::setActiveWindow(class QWidget *) + ?blockBoundingRect@QPlainTextEdit@@IBE?AVQRectF@@ABVQTextBlock@@@Z @ 2061 NONAME ; class QRectF QPlainTextEdit::blockBoundingRect(class QTextBlock const &) const + ?insertActions@QWidget@@QAEXPAVQAction@@V?$QList@PAVQAction@@@@@Z @ 2062 NONAME ; void QWidget::insertActions(class QAction *, class QList) + ?polish@QWindowsStyle@@UAEXAAVQPalette@@@Z @ 2063 NONAME ; void QWindowsStyle::polish(class QPalette &) + ?setMaximumWidth@QGraphicsLayoutItem@@QAEXM@Z @ 2064 NONAME ; void QGraphicsLayoutItem::setMaximumWidth(float) + ?setPos@QCursor@@SAXABVQPoint@@@Z @ 2065 NONAME ; void QCursor::setPos(class QPoint const &) + ?inputMethodQuery@QTextControl@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 2066 NONAME ; class QVariant QTextControl::inputMethodQuery(enum Qt::InputMethodQuery) const + ?height@QWidget@@QBEHXZ @ 2067 NONAME ; int QWidget::height(void) const + ?drawRect@QPainter@@QAEXHHHH@Z @ 2068 NONAME ; void QPainter::drawRect(int, int, int, int) + ?mapToItem@QGraphicsItem@@QBE?AVQPointF@@PBV1@MM@Z @ 2069 NONAME ; class QPointF QGraphicsItem::mapToItem(class QGraphicsItem const *, float, float) const + ?tr@QHBoxLayout@@SA?AVQString@@PBD0@Z @ 2070 NONAME ; class QString QHBoxLayout::tr(char const *, char const *) + ?metaObject@QClipboard@@UBEPBUQMetaObject@@XZ @ 2071 NONAME ; struct QMetaObject const * QClipboard::metaObject(void) const + ?staticMetaObject@QLayout@@2UQMetaObject@@B @ 2072 NONAME ; struct QMetaObject const QLayout::staticMetaObject + ?exec@QMenu@@QAEPAVQAction@@ABVQPoint@@PAV2@@Z @ 2073 NONAME ; class QAction * QMenu::exec(class QPoint const &, class QAction *) + ?sortItems@QTreeWidget@@QAEXHW4SortOrder@Qt@@@Z @ 2074 NONAME ; void QTreeWidget::sortItems(int, enum Qt::SortOrder) + ?removeApplicationFont@QFontDatabase@@SA_NH@Z @ 2075 NONAME ; bool QFontDatabase::removeApplicationFont(int) + ?d_func@QProxyModel@@AAEPAVQProxyModelPrivate@@XZ @ 2076 NONAME ; class QProxyModelPrivate * QProxyModel::d_func(void) + ?d_func@QAbstractGraphicsShapeItem@@ABEPBVQAbstractGraphicsShapeItemPrivate@@XZ @ 2077 NONAME ; class QAbstractGraphicsShapeItemPrivate const * QAbstractGraphicsShapeItem::d_func(void) const + ?grabWidget@QPixmap@@SA?AV1@PAVQWidget@@HHHH@Z @ 2078 NONAME ; class QPixmap QPixmap::grabWidget(class QWidget *, int, int, int, int) + ?drawLines@QPainter@@QAEXPBVQLineF@@H@Z @ 2079 NONAME ; void QPainter::drawLines(class QLineF const *, int) + ?unpolish@QProxyStyle@@UAEXPAVQApplication@@@Z @ 2080 NONAME ; void QProxyStyle::unpolish(class QApplication *) + ?pointAtPercent@QPainterPath@@QBE?AVQPointF@@M@Z @ 2081 NONAME ; class QPointF QPainterPath::pointAtPercent(float) const + ?italic@QFontDatabase@@QBE_NABVQString@@0@Z @ 2082 NONAME ; bool QFontDatabase::italic(class QString const &, class QString const &) const + ?data@QMatrix4x4@@QBEPBMXZ @ 2083 NONAME ; float const * QMatrix4x4::data(void) const + ?drawPoints@QPaintEngineEx@@UAEXPBVQPoint@@H@Z @ 2084 NONAME ; void QPaintEngineEx::drawPoints(class QPoint const *, int) + ?value@QDoubleSpinBox@@QBENXZ @ 2085 NONAME ; double QDoubleSpinBox::value(void) const + ?setTextWidth@QTextDocument@@QAEXM@Z @ 2086 NONAME ; void QTextDocument::setTextWidth(float) + ?hitButton@QRadioButton@@MBE_NABVQPoint@@@Z @ 2087 NONAME ; bool QRadioButton::hitButton(class QPoint const &) const + ?drawImage@QPainter@@QAEXABVQPoint@@ABVQImage@@ABVQRect@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 2088 NONAME ; void QPainter::drawImage(class QPoint const &, class QImage const &, class QRect const &, class QFlags) + ??1QLabel@@UAE@XZ @ 2089 NONAME ; QLabel::~QLabel(void) + ?setWidget@QTouchEvent@@QAEXPAVQWidget@@@Z @ 2090 NONAME ; void QTouchEvent::setWidget(class QWidget *) + ?isRightToLeft@QApplication@@SA_NXZ @ 2091 NONAME ; bool QApplication::isRightToLeft(void) + ?sys_pal@QApplicationPrivate@@2PAVQPalette@@A @ 2092 NONAME ; class QPalette * QApplicationPrivate::sys_pal + ?sortChildren@QTreeWidgetItem@@AAEXHW4SortOrder@Qt@@_N@Z @ 2093 NONAME ; void QTreeWidgetItem::sortChildren(int, enum Qt::SortOrder, bool) + ??1QTextFrameLayoutData@@UAE@XZ @ 2094 NONAME ; QTextFrameLayoutData::~QTextFrameLayoutData(void) + ?setCheckState@QTreeWidgetItem@@QAEXHW4CheckState@Qt@@@Z @ 2095 NONAME ; void QTreeWidgetItem::setCheckState(int, enum Qt::CheckState) + ?qt_metacall@QFocusFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2096 NONAME ; int QFocusFrame::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QLayoutItem@@UAE@XZ @ 2097 NONAME ; QLayoutItem::~QLayoutItem(void) + ??0QStyleOptionTabV2@@QAE@ABVQStyleOptionTab@@@Z @ 2098 NONAME ; QStyleOptionTabV2::QStyleOptionTabV2(class QStyleOptionTab const &) + ?trUtf8@QGraphicsSystemPlugin@@SA?AVQString@@PBD0H@Z @ 2099 NONAME ; class QString QGraphicsSystemPlugin::trUtf8(char const *, char const *, int) + ?hotSpot@QGesture@@QBE?AVQPointF@@XZ @ 2100 NONAME ; class QPointF QGesture::hotSpot(void) const + ?eventFilter@QCalendarWidget@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 2101 NONAME ; bool QCalendarWidget::eventFilter(class QObject *, class QEvent *) + ?symbianEventFilter@QApplication@@UAE_NPBVQSymbianEvent@@@Z @ 2102 NONAME ; bool QApplication::symbianEventFilter(class QSymbianEvent const *) + ?setNotchesVisible@QDial@@QAEX_N@Z @ 2103 NONAME ; void QDial::setNotchesVisible(bool) + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRect@@W4ItemSelectionMode@Qt@@@Z @ 2104 NONAME ; class QList QGraphicsView::items(class QRect const &, enum Qt::ItemSelectionMode) const + ?setRenderHints@QGraphicsView@@QAEXV?$QFlags@W4RenderHint@QPainter@@@@@Z @ 2105 NONAME ; void QGraphicsView::setRenderHints(class QFlags) + ??0QTreeWidgetItem@@QAE@ABV0@@Z @ 2106 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidgetItem const &) + ??_5QRegion@@QAEAAV0@ABV0@@Z @ 2107 NONAME ; class QRegion & QRegion::operator|=(class QRegion const &) + ?minimumSize@QWidgetItemV2@@UBE?AVQSize@@XZ @ 2108 NONAME ; class QSize QWidgetItemV2::minimumSize(void) const + ?qt_metacall@QCommandLinkButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2109 NONAME ; int QCommandLinkButton::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QGraphicsSceneHelpEvent@@UAE@XZ @ 2110 NONAME ; QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent(void) + ?offset@QHeaderView@@QBEHXZ @ 2111 NONAME ; int QHeaderView::offset(void) const + ?cursorRect@QTextControl@@QBE?AVQRectF@@XZ @ 2112 NONAME ; class QRectF QTextControl::cursorRect(void) const + ?qt_metacall@QBoxLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2113 NONAME ; int QBoxLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?flags@QStringListModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 2114 NONAME ; class QFlags QStringListModel::flags(class QModelIndex const &) const + ?tr@QWorkspace@@SA?AVQString@@PBD0@Z @ 2115 NONAME ; class QString QWorkspace::tr(char const *, char const *) + ??0QColor@@QAE@PBD@Z @ 2116 NONAME ; QColor::QColor(char const *) + ?fillRect@QPainter@@QAEXHHHHABVQBrush@@@Z @ 2117 NONAME ; void QPainter::fillRect(int, int, int, int, class QBrush const &) + ?unsetLayoutDirection@QWidget@@QAEXXZ @ 2118 NONAME ; void QWidget::unsetLayoutDirection(void) + ?slerp@QQuaternion@@SA?AV1@ABV1@0M@Z @ 2119 NONAME ; class QQuaternion QQuaternion::slerp(class QQuaternion const &, class QQuaternion const &, float) + ?widgetRemoved@QStackedLayout@@IAEXH@Z @ 2120 NONAME ; void QStackedLayout::widgetRemoved(int) + ?isFlat@QGroupBox@@QBE_NXZ @ 2121 NONAME ; bool QGroupBox::isFlat(void) const + ?stringProperty@QTextFormat@@QBE?AVQString@@H@Z @ 2122 NONAME ; class QString QTextFormat::stringProperty(int) const + ?qt_metacast@QPlainTextEdit@@UAEPAXPBD@Z @ 2123 NONAME ; void * QPlainTextEdit::qt_metacast(char const *) + ?intersects@QItemSelectionRange@@QBE_NABV1@@Z @ 2124 NONAME ; bool QItemSelectionRange::intersects(class QItemSelectionRange const &) const + ?clearSelection@QTextCursor@@QAEXXZ @ 2125 NONAME ; void QTextCursor::clearSelection(void) + ?trUtf8@QFrame@@SA?AVQString@@PBD0H@Z @ 2126 NONAME ; class QString QFrame::trUtf8(char const *, char const *, int) + ?undo@QTextEdit@@QAEXXZ @ 2127 NONAME ; void QTextEdit::undo(void) + ?addItem@QStackedLayout@@UAEXPAVQLayoutItem@@@Z @ 2128 NONAME ; void QStackedLayout::addItem(class QLayoutItem *) + ?lineCount@QTextBlock@@QBEHXZ @ 2129 NONAME ; int QTextBlock::lineCount(void) const + ?ensureWidgetVisible@QScrollArea@@QAEXPAVQWidget@@HH@Z @ 2130 NONAME ; void QScrollArea::ensureWidgetVisible(class QWidget *, int, int) + ?tr@QWorkspace@@SA?AVQString@@PBD0H@Z @ 2131 NONAME ; class QString QWorkspace::tr(char const *, char const *, int) + ?translate@QPainter@@QAEXABVQPoint@@@Z @ 2132 NONAME ; void QPainter::translate(class QPoint const &) + ?tr@QStackedLayout@@SA?AVQString@@PBD0@Z @ 2133 NONAME ; class QString QStackedLayout::tr(char const *, char const *) + ?dragLeaveEvent@QWidget@@MAEXPAVQDragLeaveEvent@@@Z @ 2134 NONAME ; void QWidget::dragLeaveEvent(class QDragLeaveEvent *) + ?trUtf8@QGraphicsGrayscaleEffect@@SA?AVQString@@PBD0@Z @ 2135 NONAME ; class QString QGraphicsGrayscaleEffect::trUtf8(char const *, char const *) + ?format@QTextObject@@QBE?AVQTextFormat@@XZ @ 2136 NONAME ; class QTextFormat QTextObject::format(void) const + ?addAction@QActionGroup@@QAEPAVQAction@@ABVQIcon@@ABVQString@@@Z @ 2137 NONAME ; class QAction * QActionGroup::addAction(class QIcon const &, class QString const &) + ?update@QGraphicsEffect@@QAEXXZ @ 2138 NONAME ; void QGraphicsEffect::update(void) + ?indexes@QItemSelectionRange@@QBE?AV?$QList@VQModelIndex@@@@XZ @ 2139 NONAME ; class QList QItemSelectionRange::indexes(void) const + ?width@QPixmap@@QBEHXZ @ 2140 NONAME ; int QPixmap::width(void) const + ?resetMatrix@QGraphicsItem@@QAEXXZ @ 2141 NONAME ; void QGraphicsItem::resetMatrix(void) + ?drawTextItem@QPaintEngine@@UAEXABVQPointF@@ABVQTextItem@@@Z @ 2142 NONAME ; void QPaintEngine::drawTextItem(class QPointF const &, class QTextItem const &) + ?type@QTextFormat@@QBEHXZ @ 2143 NONAME ; int QTextFormat::type(void) const + ?setGraphicsEffect@QGraphicsItem@@QAEXPAVQGraphicsEffect@@@Z @ 2144 NONAME ; void QGraphicsItem::setGraphicsEffect(class QGraphicsEffect *) + ?drawText@QPainter@@QAEXHHHHHABVQString@@PAVQRect@@@Z @ 2145 NONAME ; void QPainter::drawText(int, int, int, int, int, class QString const &, class QRect *) + ?qt_metacall@QSound@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2146 NONAME ; int QSound::qt_metacall(enum QMetaObject::Call, int, void * *) + ?paintEvent@QHeaderView@@MAEXPAVQPaintEvent@@@Z @ 2147 NONAME ; void QHeaderView::paintEvent(class QPaintEvent *) + ??0QPen@@QAE@W4PenStyle@Qt@@@Z @ 2148 NONAME ; QPen::QPen(enum Qt::PenStyle) + ?d_func@QAbstractSlider@@AAEPAVQAbstractSliderPrivate@@XZ @ 2149 NONAME ; class QAbstractSliderPrivate * QAbstractSlider::d_func(void) + ?scenePos@QGraphicsItem@@QBE?AVQPointF@@XZ @ 2150 NONAME ; class QPointF QGraphicsItem::scenePos(void) const + ?minimumDateTime@QDateTimeEdit@@QBE?AVQDateTime@@XZ @ 2151 NONAME ; class QDateTime QDateTimeEdit::minimumDateTime(void) const + ??1QWidgetPrivate@@UAE@XZ @ 2152 NONAME ; QWidgetPrivate::~QWidgetPrivate(void) + ?itemDoubleClicked@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 2153 NONAME ; void QListWidget::itemDoubleClicked(class QListWidgetItem *) + ?setDropEnabled@QStandardItem@@QAEX_N@Z @ 2154 NONAME ; void QStandardItem::setDropEnabled(bool) + ?qt_metacall@QInputContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2155 NONAME ; int QInputContext::qt_metacall(enum QMetaObject::Call, int, void * *) + ?timeChanged@QDateTimeEdit@@IAEXABVQTime@@@Z @ 2156 NONAME ; void QDateTimeEdit::timeChanged(class QTime const &) + ?timerEvent@QFileSystemModel@@MAEXPAVQTimerEvent@@@Z @ 2157 NONAME ; void QFileSystemModel::timerEvent(class QTimerEvent *) + ?setCurrentIndex@QAbstractItemView@@QAEXABVQModelIndex@@@Z @ 2158 NONAME ; void QAbstractItemView::setCurrentIndex(class QModelIndex const &) + ??0QStandardItem@@IAE@AAVQStandardItemPrivate@@@Z @ 2159 NONAME ; QStandardItem::QStandardItem(class QStandardItemPrivate &) + ?select@QItemSelection@@QAEXABVQModelIndex@@0@Z @ 2160 NONAME ; void QItemSelection::select(class QModelIndex const &, class QModelIndex const &) + ?insertBlock@QTextCursor@@QAEXXZ @ 2161 NONAME ; void QTextCursor::insertBlock(void) + ?currentItemChanged@QTableWidget@@IAEXPAVQTableWidgetItem@@0@Z @ 2162 NONAME ; void QTableWidget::currentItemChanged(class QTableWidgetItem *, class QTableWidgetItem *) + ?create@QInputContextFactory@@SAPAVQInputContext@@ABVQString@@PAVQObject@@@Z @ 2163 NONAME ; class QInputContext * QInputContextFactory::create(class QString const &, class QObject *) + ?linkHovered@QLabel@@IAEXABVQString@@@Z @ 2164 NONAME ; void QLabel::linkHovered(class QString const &) + ?isCornerButtonEnabled@QTableView@@QBE_NXZ @ 2165 NONAME ; bool QTableView::isCornerButtonEnabled(void) const + ?setFilterRegExp@QSortFilterProxyModel@@QAEXABVQRegExp@@@Z @ 2166 NONAME ; void QSortFilterProxyModel::setFilterRegExp(class QRegExp const &) + ?qt_metacall@QCoeFepInputContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2167 NONAME ; int QCoeFepInputContext::qt_metacall(enum QMetaObject::Call, int, void * *) + ?combinedMatrix@QPainter@@QBE?AVQMatrix@@XZ @ 2168 NONAME ; class QMatrix QPainter::combinedMatrix(void) const + ?d_func@QTextEdit@@AAEPAVQTextEditPrivate@@XZ @ 2169 NONAME ; class QTextEditPrivate * QTextEdit::d_func(void) + ?qDrawBorderPixmap@@YAXPAVQPainter@@ABVQRect@@ABVQMargins@@ABVQPixmap@@12ABUQTileRules@@V?$QFlags@W4DrawingHint@QDrawBorderPixmap@@@@@Z @ 2170 NONAME ; void qDrawBorderPixmap(class QPainter *, class QRect const &, class QMargins const &, class QPixmap const &, class QRect const &, class QMargins const &, struct QTileRules const &, class QFlags) + ?setSubmitPolicy@QDataWidgetMapper@@QAEXW4SubmitPolicy@1@@Z @ 2171 NONAME ; void QDataWidgetMapper::setSubmitPolicy(enum QDataWidgetMapper::SubmitPolicy) + ?qt_metacall@QWindowsStyle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2172 NONAME ; int QWindowsStyle::qt_metacall(enum QMetaObject::Call, int, void * *) + ?key@QShortcutEvent@@QBEABVQKeySequence@@XZ @ 2173 NONAME ; class QKeySequence const & QShortcutEvent::key(void) const + ?intValueSelected@QInputDialog@@IAEXH@Z @ 2174 NONAME ; void QInputDialog::intValueSelected(int) + ?doubleProperty@QTextFormat@@QBEMH@Z @ 2175 NONAME ; float QTextFormat::doubleProperty(int) const + ?dragLeaveEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 2176 NONAME ; void QGraphicsScene::dragLeaveEvent(class QGraphicsSceneDragDropEvent *) + ?removeItemWidget@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 2177 NONAME ; void QListWidget::removeItemWidget(class QListWidgetItem *) + ?addWidget@QLayout@@QAEXPAVQWidget@@@Z @ 2178 NONAME ; void QLayout::addWidget(class QWidget *) + ?standardButton@QDialogButtonBox@@QBE?AW4StandardButton@1@PAVQAbstractButton@@@Z @ 2179 NONAME ; enum QDialogButtonBox::StandardButton QDialogButtonBox::standardButton(class QAbstractButton *) const + ?normalize@QVector4D@@QAEXXZ @ 2180 NONAME ; void QVector4D::normalize(void) + ?renderFlags@QTextItem@@QBE?AV?$QFlags@W4RenderFlag@QTextItem@@@@XZ @ 2181 NONAME ; class QFlags QTextItem::renderFlags(void) const + ?qt_metacall@QGraphicsAnchor@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2182 NONAME ; int QGraphicsAnchor::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QFileDialog@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 2183 NONAME ; QFileDialog::QFileDialog(class QWidget *, class QFlags) + ?trUtf8@QSplitterHandle@@SA?AVQString@@PBD0@Z @ 2184 NONAME ; class QString QSplitterHandle::trUtf8(char const *, char const *) + ?setStartAngle@QGraphicsEllipseItem@@QAEXH@Z @ 2185 NONAME ; void QGraphicsEllipseItem::setStartAngle(int) + ?qt_metacast@QSessionManager@@UAEPAXPBD@Z @ 2186 NONAME ; void * QSessionManager::qt_metacast(char const *) + ?end@QLineEdit@@QAEX_N@Z @ 2187 NONAME ; void QLineEdit::end(bool) + ?currentRow@QCompleter@@QBEHXZ @ 2188 NONAME ; int QCompleter::currentRow(void) const + ?setPopup@QCompleter@@QAEXPAVQAbstractItemView@@@Z @ 2189 NONAME ; void QCompleter::setPopup(class QAbstractItemView *) + ?qRed@@YAHI@Z @ 2190 NONAME ; int qRed(unsigned int) + ?drawChord@QPainter@@QAEXABVQRectF@@HH@Z @ 2191 NONAME ; void QPainter::drawChord(class QRectF const &, int, int) + ?oldSize@QResizeEvent@@QBEABVQSize@@XZ @ 2192 NONAME ; class QSize const & QResizeEvent::oldSize(void) const + ?lineWrapMode@QTextEdit@@QBE?AW4LineWrapMode@1@XZ @ 2193 NONAME ; enum QTextEdit::LineWrapMode QTextEdit::lineWrapMode(void) const + ??BQQuaternion@@QBE?AVQVariant@@XZ @ 2194 NONAME ; QQuaternion::operator class QVariant(void) const + ?timerEvent@QTreeView@@MAEXPAVQTimerEvent@@@Z @ 2195 NONAME ; void QTreeView::timerEvent(class QTimerEvent *) + ?horizontalShearAt@QGraphicsItemAnimation@@QBEMM@Z @ 2196 NONAME ; float QGraphicsItemAnimation::horizontalShearAt(float) const + ?tr@QDockWidget@@SA?AVQString@@PBD0@Z @ 2197 NONAME ; class QString QDockWidget::tr(char const *, char const *) + ?autoRepeat@QShortcut@@QBE_NXZ @ 2198 NONAME ; bool QShortcut::autoRepeat(void) const + ?d_func@QButtonGroup@@ABEPBVQButtonGroupPrivate@@XZ @ 2199 NONAME ; class QButtonGroupPrivate const * QButtonGroup::d_func(void) const + ?resizeSections@QHeaderView@@QAEXW4ResizeMode@1@@Z @ 2200 NONAME ; void QHeaderView::resizeSections(enum QHeaderView::ResizeMode) + ?isObscured@QGraphicsItem@@QBE_NMMMM@Z @ 2201 NONAME ; bool QGraphicsItem::isObscured(float, float, float, float) const + ??_EQGraphicsObject@@UAE@I@Z @ 2202 NONAME ; QGraphicsObject::~QGraphicsObject(unsigned int) + ??1QDockWidgetLayout@@UAE@XZ @ 2203 NONAME ; QDockWidgetLayout::~QDockWidgetLayout(void) + ?setFont@QGraphicsTextItem@@QAEXABVQFont@@@Z @ 2204 NONAME ; void QGraphicsTextItem::setFont(class QFont const &) + ??D@YA?AVQRegion@@ABV0@ABVQTransform@@@Z @ 2205 NONAME ; class QRegion operator*(class QRegion const &, class QTransform const &) + ?staticMetaObject@QFontDialog@@2UQMetaObject@@B @ 2206 NONAME ; struct QMetaObject const QFontDialog::staticMetaObject + ?setTabPosition@QTabWidget@@QAEXW4TabPosition@1@@Z @ 2207 NONAME ; void QTabWidget::setTabPosition(enum QTabWidget::TabPosition) + ?trUtf8@QMdiSubWindow@@SA?AVQString@@PBD0H@Z @ 2208 NONAME ; class QString QMdiSubWindow::trUtf8(char const *, char const *, int) + ?paintDevice@QAbstractTextDocumentLayout@@QBEPAVQPaintDevice@@XZ @ 2209 NONAME ; class QPaintDevice * QAbstractTextDocumentLayout::paintDevice(void) const + ?tr@QTextList@@SA?AVQString@@PBD0H@Z @ 2210 NONAME ; class QString QTextList::tr(char const *, char const *, int) + ?state@QMovie@@QBE?AW4MovieState@1@XZ @ 2211 NONAME ; enum QMovie::MovieState QMovie::state(void) const + ?sceneEvent@QGraphicsTextItem@@MAE_NPAVQEvent@@@Z @ 2212 NONAME ; bool QGraphicsTextItem::sceneEvent(class QEvent *) + ?hiResGlobalPos@QTabletEvent@@QBEABVQPointF@@XZ @ 2213 NONAME ; class QPointF const & QTabletEvent::hiResGlobalPos(void) const + ?drawEllipse@QPainter@@QAEXHHHH@Z @ 2214 NONAME ; void QPainter::drawEllipse(int, int, int, int) + ?trUtf8@QGraphicsTransform@@SA?AVQString@@PBD0@Z @ 2215 NONAME ; class QString QGraphicsTransform::trUtf8(char const *, char const *) + ?d_func@QGraphicsSimpleTextItem@@AAEPAVQGraphicsSimpleTextItemPrivate@@XZ @ 2216 NONAME ; class QGraphicsSimpleTextItemPrivate * QGraphicsSimpleTextItem::d_func(void) + ?isFirstItemColumnSpanned@QTreeWidget@@QBE_NPBVQTreeWidgetItem@@@Z @ 2217 NONAME ; bool QTreeWidget::isFirstItemColumnSpanned(class QTreeWidgetItem const *) const + ?d_func@QClipboard@@ABEPBVQClipboardPrivate@@XZ @ 2218 NONAME ; class QClipboardPrivate const * QClipboard::d_func(void) const + ?combineOpacityFromParent@QGraphicsItemPrivate@@QBEMM@Z @ 2219 NONAME ; float QGraphicsItemPrivate::combineOpacityFromParent(float) const + ?qt_metacast@QDial@@UAEPAXPBD@Z @ 2220 NONAME ; void * QDial::qt_metacast(char const *) + ?setStandardColor@QColorDialog@@SAXHI@Z @ 2221 NONAME ; void QColorDialog::setStandardColor(int, unsigned int) + ?isImageFormat@QTextFormat@@QBE_NXZ @ 2222 NONAME ; bool QTextFormat::isImageFormat(void) const + ?d_func@QAbstractItemView@@AAEPAVQAbstractItemViewPrivate@@XZ @ 2223 NONAME ; class QAbstractItemViewPrivate * QAbstractItemView::d_func(void) + ?lexem@Parser@QCss@@QBE?AVQString@@XZ @ 2224 NONAME ; class QString QCss::Parser::lexem(void) const + ?insertColumn@QStandardItem@@QAEXHABV?$QList@PAVQStandardItem@@@@@Z @ 2225 NONAME ; void QStandardItem::insertColumn(int, class QList const &) + ?isItemSelected@QTreeWidget@@QBE_NPBVQTreeWidgetItem@@@Z @ 2226 NONAME ; bool QTreeWidget::isItemSelected(class QTreeWidgetItem const *) const + ?dropEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 2227 NONAME ; void QGraphicsItem::dropEvent(class QGraphicsSceneDragDropEvent *) + ?text@QGraphicsSimpleTextItem@@QBE?AVQString@@XZ @ 2228 NONAME ; class QString QGraphicsSimpleTextItem::text(void) const + ?isSizeGripEnabled@QStatusBar@@QBE_NXZ @ 2229 NONAME ; bool QStatusBar::isSizeGripEnabled(void) const + ?closeEvent@QProgressDialog@@MAEXPAVQCloseEvent@@@Z @ 2230 NONAME ; void QProgressDialog::closeEvent(class QCloseEvent *) + ?dx@QMatrix@@QBEMXZ @ 2231 NONAME ; float QMatrix::dx(void) const + ?numColors@QImage@@QBEHXZ @ 2232 NONAME ; int QImage::numColors(void) const + ?wheelEvent@QComboBox@@MAEXPAVQWheelEvent@@@Z @ 2233 NONAME ; void QComboBox::wheelEvent(class QWheelEvent *) + ?takeColumn@QStandardItemModel@@QAE?AV?$QList@PAVQStandardItem@@@@H@Z @ 2234 NONAME ; class QList QStandardItemModel::takeColumn(int) + ?tangentialPressure@QTabletEvent@@QBEMXZ @ 2235 NONAME ; float QTabletEvent::tangentialPressure(void) const + ?setElideMode@QTabWidget@@QAEXW4TextElideMode@Qt@@@Z @ 2236 NONAME ; void QTabWidget::setElideMode(enum Qt::TextElideMode) + ?trUtf8@QDesktopWidget@@SA?AVQString@@PBD0H@Z @ 2237 NONAME ; class QString QDesktopWidget::trUtf8(char const *, char const *, int) + ??0QPaintEngineState@@QAE@ABV0@@Z @ 2238 NONAME ; QPaintEngineState::QPaintEngineState(class QPaintEngineState const &) + ?widget@QGraphicsEffectSource@@QBEPBVQWidget@@XZ @ 2239 NONAME ; class QWidget const * QGraphicsEffectSource::widget(void) const + ?textColor@QTreeWidgetItem@@QBE?AVQColor@@H@Z @ 2240 NONAME ; class QColor QTreeWidgetItem::textColor(int) const + ?showEvent@QWorkspace@@MAEXPAVQShowEvent@@@Z @ 2241 NONAME ; void QWorkspace::showEvent(class QShowEvent *) + ?scroll@QPixmap@@QAEXHHABVQRect@@PAVQRegion@@@Z @ 2242 NONAME ; void QPixmap::scroll(int, int, class QRect const &, class QRegion *) + ?focusOutEvent@QPushButton@@MAEXPAVQFocusEvent@@@Z @ 2243 NONAME ; void QPushButton::focusOutEvent(class QFocusEvent *) + ?redo@QUndoCommand@@UAEXXZ @ 2244 NONAME ; void QUndoCommand::redo(void) + ??0QWhatsThis@@AAE@XZ @ 2245 NONAME ; QWhatsThis::QWhatsThis(void) + ?setCalendarWidget@QDateTimeEdit@@QAEXPAVQCalendarWidget@@@Z @ 2246 NONAME ; void QDateTimeEdit::setCalendarWidget(class QCalendarWidget *) + ?minimumWidth@QWidget@@QBEHXZ @ 2247 NONAME ; int QWidget::minimumWidth(void) const + ?tr@QWizard@@SA?AVQString@@PBD0H@Z @ 2248 NONAME ; class QString QWizard::tr(char const *, char const *, int) + ?trUtf8@QFormLayout@@SA?AVQString@@PBD0@Z @ 2249 NONAME ; class QString QFormLayout::trUtf8(char const *, char const *) + ??0QAbstractScrollArea@@IAE@AAVQAbstractScrollAreaPrivate@@PAVQWidget@@@Z @ 2250 NONAME ; QAbstractScrollArea::QAbstractScrollArea(class QAbstractScrollAreaPrivate &, class QWidget *) + ?tr@QPixmapFilter@@SA?AVQString@@PBD0@Z @ 2251 NONAME ; class QString QPixmapFilter::tr(char const *, char const *) + ?tr@QGraphicsItemAnimation@@SA?AVQString@@PBD0H@Z @ 2252 NONAME ; class QString QGraphicsItemAnimation::tr(char const *, char const *, int) + ?contextMenuEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneContextMenuEvent@@@Z @ 2253 NONAME ; void QGraphicsItem::contextMenuEvent(class QGraphicsSceneContextMenuEvent *) + ?ensureCursorVisible@QTextControl@@UAEXXZ @ 2254 NONAME ; void QTextControl::ensureCursorVisible(void) + ?d_func@QFormLayout@@ABEPBVQFormLayoutPrivate@@XZ @ 2255 NONAME ; class QFormLayoutPrivate const * QFormLayout::d_func(void) const + ?cornerWidget@QAbstractScrollArea@@QBEPAVQWidget@@XZ @ 2256 NONAME ; class QWidget * QAbstractScrollArea::cornerWidget(void) const + ?isReadOnly@QLineEdit@@QBE_NXZ @ 2257 NONAME ; bool QLineEdit::isReadOnly(void) const + ?intValue@QLCDNumber@@QBEHXZ @ 2258 NONAME ; int QLCDNumber::intValue(void) const + ??0QVector4D@@QAE@ABVQVector2D@@@Z @ 2259 NONAME ; QVector4D::QVector4D(class QVector2D const &) + ?tabRemoved@QTabWidget@@MAEXH@Z @ 2260 NONAME ; void QTabWidget::tabRemoved(int) + ?polish@QProxyStyle@@UAEXAAVQPalette@@@Z @ 2261 NONAME ; void QProxyStyle::polish(class QPalette &) + ?leaveEvent@QWidget@@MAEXPAVQEvent@@@Z @ 2262 NONAME ; void QWidget::leaveEvent(class QEvent *) + ?setEditable@QComboBox@@QAEX_N@Z @ 2263 NONAME ; void QComboBox::setEditable(bool) + ?setIntRange@QInputDialog@@QAEXHH@Z @ 2264 NONAME ; void QInputDialog::setIntRange(int, int) + ?setWordWrap@QLabel@@QAEX_N@Z @ 2265 NONAME ; void QLabel::setWordWrap(bool) + ?findBlockByLineNumber@QTextDocument@@QBE?AVQTextBlock@@H@Z @ 2266 NONAME ; class QTextBlock QTextDocument::findBlockByLineNumber(int) const + ??ZQQuaternion@@QAEAAV0@ABV0@@Z @ 2267 NONAME ; class QQuaternion & QQuaternion::operator-=(class QQuaternion const &) + ?sync@QPaintEngineEx@@UAEXXZ @ 2268 NONAME ; void QPaintEngineEx::sync(void) + ?supportsOption@QImageWriter@@QBE_NW4ImageOption@QImageIOHandler@@@Z @ 2269 NONAME ; bool QImageWriter::supportsOption(enum QImageIOHandler::ImageOption) const + ??_EQListWidget@@UAE@I@Z @ 2270 NONAME ; QListWidget::~QListWidget(unsigned int) + ??_EQColorDialog@@UAE@I@Z @ 2271 NONAME ; QColorDialog::~QColorDialog(unsigned int) + ?wheelEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneWheelEvent@@@Z @ 2272 NONAME ; void QGraphicsItem::wheelEvent(class QGraphicsSceneWheelEvent *) + ?deleteChar@QTextCursor@@QAEXXZ @ 2273 NONAME ; void QTextCursor::deleteChar(void) + ?isBrushSet@QPalette@@QBE_NW4ColorGroup@1@W4ColorRole@1@@Z @ 2274 NONAME ; bool QPalette::isBrushSet(enum QPalette::ColorGroup, enum QPalette::ColorRole) const + ?fromCmykF@QColor@@SA?AV1@MMMMM@Z @ 2275 NONAME ; class QColor QColor::fromCmykF(float, float, float, float, float) + ?mapFromItem@QGraphicsItem@@QBE?AVQPointF@@PBV1@ABV2@@Z @ 2276 NONAME ; class QPointF QGraphicsItem::mapFromItem(class QGraphicsItem const *, class QPointF const &) const + ?tr@QAbstractProxyModel@@SA?AVQString@@PBD0@Z @ 2277 NONAME ; class QString QAbstractProxyModel::tr(char const *, char const *) + ?showGrid@QTableView@@QBE_NXZ @ 2278 NONAME ; bool QTableView::showGrid(void) const + ?labelForField@QFormLayout@@QBEPAVQWidget@@PAV2@@Z @ 2279 NONAME ; class QWidget * QFormLayout::labelForField(class QWidget *) const + ?setData@QDirModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 2280 NONAME ; bool QDirModel::setData(class QModelIndex const &, class QVariant const &, int) + ??6@YA?AVQDebug@@V0@ABVQStyleOption@@@Z @ 2281 NONAME ; class QDebug operator<<(class QDebug, class QStyleOption const &) + ?createEditor@QStyledItemDelegate@@UBEPAVQWidget@@PAV2@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 2282 NONAME ; class QWidget * QStyledItemDelegate::createEditor(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?setGlyphCache@QFontEngine@@QAEXPAXPAVQFontEngineGlyphCache@@@Z @ 2283 NONAME ; void QFontEngine::setGlyphCache(void *, class QFontEngineGlyphCache *) + ?decimals@QDoubleSpinBox@@QBEHXZ @ 2284 NONAME ; int QDoubleSpinBox::decimals(void) const + ??_EQGraphicsSceneHoverEvent@@UAE@I@Z @ 2285 NONAME ; QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent(unsigned int) + ?staticMetaObject@QTextFrame@@2UQMetaObject@@B @ 2286 NONAME ; struct QMetaObject const QTextFrame::staticMetaObject + ?emitChanged@QClipboard@@AAEXW4Mode@1@@Z @ 2287 NONAME ; void QClipboard::emitChanged(enum QClipboard::Mode) + ?metaObject@QVBoxLayout@@UBEPBUQMetaObject@@XZ @ 2288 NONAME ; struct QMetaObject const * QVBoxLayout::metaObject(void) const + ?setAnimated@QMainWindow@@QAEX_N@Z @ 2289 NONAME ; void QMainWindow::setAnimated(bool) + ?paste@QLineControl@@QAEXXZ @ 2290 NONAME ; void QLineControl::paste(void) + ?buttons@QGraphicsSceneWheelEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 2291 NONAME ; class QFlags QGraphicsSceneWheelEvent::buttons(void) const + ?z@QQuaternion@@QBEMXZ @ 2292 NONAME ; float QQuaternion::z(void) const + ?styleHint@QProxyStyle@@UBEHW4StyleHint@QStyle@@PBVQStyleOption@@PBVQWidget@@PAVQStyleHintReturn@@@Z @ 2293 NONAME ; int QProxyStyle::styleHint(enum QStyle::StyleHint, class QStyleOption const *, class QWidget const *, class QStyleHintReturn *) const + ?tr@QDrag@@SA?AVQString@@PBD0@Z @ 2294 NONAME ; class QString QDrag::tr(char const *, char const *) + ?standardIcon@QMessageBox@@SA?AVQPixmap@@W4Icon@1@@Z @ 2295 NONAME ; class QPixmap QMessageBox::standardIcon(enum QMessageBox::Icon) + ?qt_metacast@QSortFilterProxyModel@@UAEPAXPBD@Z @ 2296 NONAME ; void * QSortFilterProxyModel::qt_metacast(char const *) + ?reason@QContextMenuEvent@@QBE?AW4Reason@1@XZ @ 2297 NONAME ; enum QContextMenuEvent::Reason QContextMenuEvent::reason(void) const + ??0QWorkspace@@QAE@PAVQWidget@@@Z @ 2298 NONAME ; QWorkspace::QWorkspace(class QWidget *) + ?sorting@QDirModel@@QBE?AV?$QFlags@W4SortFlag@QDir@@@@XZ @ 2299 NONAME ; class QFlags QDirModel::sorting(void) const + ?clear@QGraphicsItemAnimation@@QAEXXZ @ 2300 NONAME ; void QGraphicsItemAnimation::clear(void) + ?hslSaturation@QColor@@QBEHXZ @ 2301 NONAME ; int QColor::hslSaturation(void) const + ?count@QHeaderView@@QBEHXZ @ 2302 NONAME ; int QHeaderView::count(void) const + ?widgetAt@QApplication@@SAPAVQWidget@@ABVQPoint@@@Z @ 2303 NONAME ; class QWidget * QApplication::widgetAt(class QPoint const &) + ??0QRasterWindowSurface@@QAE@PAVQWidget@@@Z @ 2304 NONAME ; QRasterWindowSurface::QRasterWindowSurface(class QWidget *) + ?setMenuWidget@QMainWindow@@QAEXPAVQWidget@@@Z @ 2305 NONAME ; void QMainWindow::setMenuWidget(class QWidget *) + ?setCurrentIndex@QItemSelectionModel@@QAEXABVQModelIndex@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 2306 NONAME ; void QItemSelectionModel::setCurrentIndex(class QModelIndex const &, class QFlags) + ?grabShortcut@QWidget@@QAEHABVQKeySequence@@W4ShortcutContext@Qt@@@Z @ 2307 NONAME ; int QWidget::grabShortcut(class QKeySequence const &, enum Qt::ShortcutContext) + ?UpdateFepInlineTextL@QCoeFepInputContext@@UAEXABVTDesC16@@H@Z @ 2308 NONAME ; void QCoeFepInputContext::UpdateFepInlineTextL(class TDesC16 const &, int) + ?draw@QPixmapDropShadowFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 2309 NONAME ; void QPixmapDropShadowFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?mouseMoveEvent@QMdiSubWindow@@MAEXPAVQMouseEvent@@@Z @ 2310 NONAME ; void QMdiSubWindow::mouseMoveEvent(class QMouseEvent *) + ?hoverMoveEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 2311 NONAME ; void QGraphicsItem::hoverMoveEvent(class QGraphicsSceneHoverEvent *) + ?keyPressEvent@QGraphicsTextItem@@MAEXPAVQKeyEvent@@@Z @ 2312 NONAME ; void QGraphicsTextItem::keyPressEvent(class QKeyEvent *) + ?cellChanged@QTableWidget@@IAEXHH@Z @ 2313 NONAME ; void QTableWidget::cellChanged(int, int) + ?closeEvent@QMdiSubWindow@@MAEXPAVQCloseEvent@@@Z @ 2314 NONAME ; void QMdiSubWindow::closeEvent(class QCloseEvent *) + ?dragEnabled@QLineEdit@@QBE_NXZ @ 2315 NONAME ; bool QLineEdit::dragEnabled(void) const + ??0QSpinBox@@QAE@PAVQWidget@@@Z @ 2316 NONAME ; QSpinBox::QSpinBox(class QWidget *) + ?provides@QMimeSource@@UBE_NPBD@Z @ 2317 NONAME ; bool QMimeSource::provides(char const *) const + ?setStrikeOut@QFont@@QAEX_N@Z @ 2318 NONAME ; void QFont::setStrikeOut(bool) + ?keyPressEvent@QDateTimeEdit@@MAEXPAVQKeyEvent@@@Z @ 2319 NONAME ; void QDateTimeEdit::keyPressEvent(class QKeyEvent *) + ??_EQVBoxLayout@@UAE@I@Z @ 2320 NONAME ; QVBoxLayout::~QVBoxLayout(unsigned int) + ?right@QItemSelectionRange@@QBEHXZ @ 2321 NONAME ; int QItemSelectionRange::right(void) const + ??6@YA?AVQDebug@@V0@ABVQPolygonF@@@Z @ 2322 NONAME ; class QDebug operator<<(class QDebug, class QPolygonF const &) + ?isCharFormat@QTextFormat@@QBE_NXZ @ 2323 NONAME ; bool QTextFormat::isCharFormat(void) const + ??6@YA?AVQDebug@@V0@ABVQFont@@@Z @ 2324 NONAME ; class QDebug operator<<(class QDebug, class QFont const &) + ?setColumnSpacing@QGraphicsGridLayout@@QAEXHM@Z @ 2325 NONAME ; void QGraphicsGridLayout::setColumnSpacing(int, float) + ?setRowAlignment@QGraphicsGridLayout@@QAEXHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 2326 NONAME ; void QGraphicsGridLayout::setRowAlignment(int, class QFlags) + ?setEscapeButton@QMessageBox@@QAEXPAVQAbstractButton@@@Z @ 2327 NONAME ; void QMessageBox::setEscapeButton(class QAbstractButton *) + ?editTextChanged@QComboBox@@IAEXABVQString@@@Z @ 2328 NONAME ; void QComboBox::editTextChanged(class QString const &) + ?xHeight@QFontMetricsF@@QBEMXZ @ 2329 NONAME ; float QFontMetricsF::xHeight(void) const + ?transformations@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsTransform@@@@XZ @ 2330 NONAME ; class QList QGraphicsItem::transformations(void) const + ?setSingleStep@QAbstractSlider@@QAEXH@Z @ 2331 NONAME ; void QAbstractSlider::setSingleStep(int) + ??_EQStackedLayout@@UAE@I@Z @ 2332 NONAME ; QStackedLayout::~QStackedLayout(unsigned int) + ?moveCursor@QTextControl@@QAEXW4MoveOperation@QTextCursor@@W4MoveMode@3@@Z @ 2333 NONAME ; void QTextControl::moveCursor(enum QTextCursor::MoveOperation, enum QTextCursor::MoveMode) + ?isTopLevel@QWidget@@QBE_NXZ @ 2334 NONAME ; bool QWidget::isTopLevel(void) const + ?qt_metacast@QPixmapFilter@@UAEPAXPBD@Z @ 2335 NONAME ; void * QPixmapFilter::qt_metacast(char const *) + ?buttonPressed@QButtonGroup@@IAEXH@Z @ 2336 NONAME ; void QButtonGroup::buttonPressed(int) + ?mimeData@QStandardItemModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 2337 NONAME ; class QMimeData * QStandardItemModel::mimeData(class QList const &) const + ?tabIcon@QTabWidget@@QBE?AVQIcon@@H@Z @ 2338 NONAME ; class QIcon QTabWidget::tabIcon(int) const + ??_EQProxyModel@@UAE@I@Z @ 2339 NONAME ; QProxyModel::~QProxyModel(unsigned int) + ?widgetEvent@QGraphicsLayout@@UAEXPAVQEvent@@@Z @ 2340 NONAME ; void QGraphicsLayout::widgetEvent(class QEvent *) + ?isMovingEnabled@QWidgetResizeHandler@@QBE_NXZ @ 2341 NONAME ; bool QWidgetResizeHandler::isMovingEnabled(void) const + ??_EQGraphicsSystemPlugin@@UAE@I@Z @ 2342 NONAME ; QGraphicsSystemPlugin::~QGraphicsSystemPlugin(unsigned int) + ?metaObject@QSplitterHandle@@UBEPBUQMetaObject@@XZ @ 2343 NONAME ; struct QMetaObject const * QSplitterHandle::metaObject(void) const + ?intersects@QRegion@@QBE_NABVQRect@@@Z @ 2344 NONAME ; bool QRegion::intersects(class QRect const &) const + ?d_func@QPixmapDropShadowFilter@@AAEPAVQPixmapDropShadowFilterPrivate@@XZ @ 2345 NONAME ; class QPixmapDropShadowFilterPrivate * QPixmapDropShadowFilter::d_func(void) + ?spacerItemFactoryMethod@QLayoutPrivate@@2P6APAVQSpacerItem@@PBVQLayout@@HHW4Policy@QSizePolicy@@1@ZA @ 2346 NONAME ; class QSpacerItem * (*QLayoutPrivate::spacerItemFactoryMethod)(class QLayout const *, int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ?isObscuredBy@QGraphicsItemGroup@@UBE_NPBVQGraphicsItem@@@Z @ 2347 NONAME ; bool QGraphicsItemGroup::isObscuredBy(class QGraphicsItem const *) const + ?setRedF@QColor@@QAEXM@Z @ 2348 NONAME ; void QColor::setRedF(float) + ?attributes@QInputMethodEvent@@QBEABV?$QList@VAttribute@QInputMethodEvent@@@@XZ @ 2349 NONAME ; class QList const & QInputMethodEvent::attributes(void) const + ?toVector4D@QVector2D@@QBE?AVQVector4D@@XZ @ 2350 NONAME ; class QVector4D QVector2D::toVector4D(void) const + ?setLastScaleFactor@QPinchGesture@@QAEXM@Z @ 2351 NONAME ; void QPinchGesture::setLastScaleFactor(float) + ?currentPage@QWizard@@QBEPAVQWizardPage@@XZ @ 2352 NONAME ; class QWizardPage * QWizard::currentPage(void) const + ?boundingRect@QPicture@@QBE?AVQRect@@XZ @ 2353 NONAME ; class QRect QPicture::boundingRect(void) const + ?tessellateConvex@QTessellator@@QAEXPBVQPointF@@H@Z @ 2354 NONAME ; void QTessellator::tessellateConvex(class QPointF const *, int) + ?styleOption@QGraphicsEffectSource@@QBEPBVQStyleOption@@XZ @ 2355 NONAME ; class QStyleOption const * QGraphicsEffectSource::styleOption(void) const + ?resetMatrix@QGraphicsView@@QAEXXZ @ 2356 NONAME ; void QGraphicsView::resetMatrix(void) + ?isHidden@QTreeWidgetItem@@QBE_NXZ @ 2357 NONAME ; bool QTreeWidgetItem::isHidden(void) const + ?boundingRect@QGraphicsLineItem@@UBE?AVQRectF@@XZ @ 2358 NONAME ; class QRectF QGraphicsLineItem::boundingRect(void) const + ?qt_metacast@QCompleter@@UAEPAXPBD@Z @ 2359 NONAME ; void * QCompleter::qt_metacast(char const *) + ??0QListView@@QAE@PAVQWidget@@@Z @ 2360 NONAME ; QListView::QListView(class QWidget *) + ?clearMaximumDateTime@QDateTimeEdit@@QAEXXZ @ 2361 NONAME ; void QDateTimeEdit::clearMaximumDateTime(void) + ?trUtf8@QTextControl@@SA?AVQString@@PBD0H@Z @ 2362 NONAME ; class QString QTextControl::trUtf8(char const *, char const *, int) + ?toolTip@QGraphicsItem@@QBE?AVQString@@XZ @ 2363 NONAME ; class QString QGraphicsItem::toolTip(void) const + ?modificationChanged@QTextDocument@@IAEX_N@Z @ 2364 NONAME ; void QTextDocument::modificationChanged(bool) + ?setLastScenePos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 2365 NONAME ; void QTouchEvent::TouchPoint::setLastScenePos(class QPointF const &) + ?setCosmetic@QPen@@QAEX_N@Z @ 2366 NONAME ; void QPen::setCosmetic(bool) + ?setBorder@QTextFrameFormat@@QAEXM@Z @ 2367 NONAME ; void QTextFrameFormat::setBorder(float) + ?pixmap@QClipboard@@QBE?AVQPixmap@@W4Mode@1@@Z @ 2368 NONAME ; class QPixmap QClipboard::pixmap(enum QClipboard::Mode) const + ?visualRow@QTableWidget@@QBEHH@Z @ 2369 NONAME ; int QTableWidget::visualRow(int) const + ?drawRoundedRect@QPainter@@QAEXABVQRect@@MMW4SizeMode@Qt@@@Z @ 2370 NONAME ; void QPainter::drawRoundedRect(class QRect const &, float, float, enum Qt::SizeMode) + ?showEvent@QWidget@@MAEXPAVQShowEvent@@@Z @ 2371 NONAME ; void QWidget::showEvent(class QShowEvent *) + ??0QCommonStyle@@IAE@AAVQCommonStylePrivate@@@Z @ 2372 NONAME ; QCommonStyle::QCommonStyle(class QCommonStylePrivate &) + ?hideColumn@QTreeView@@QAEXH@Z @ 2373 NONAME ; void QTreeView::hideColumn(int) + ?eventFilter@QFocusFrame@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 2374 NONAME ; bool QFocusFrame::eventFilter(class QObject *, class QEvent *) + ??0QPushButton@@QAE@PAVQWidget@@@Z @ 2375 NONAME ; QPushButton::QPushButton(class QWidget *) + ?setAlphaF@QColor@@QAEXM@Z @ 2376 NONAME ; void QColor::setAlphaF(float) + ??0QFontDialog@@QAE@ABVQFont@@PAVQWidget@@@Z @ 2377 NONAME ; QFontDialog::QFontDialog(class QFont const &, class QWidget *) + ?openPopup@QApplicationPrivate@@QAEXPAVQWidget@@@Z @ 2378 NONAME ; void QApplicationPrivate::openPopup(class QWidget *) + ?showColumn@QTableView@@QAEXH@Z @ 2379 NONAME ; void QTableView::showColumn(int) + ?blockFormat@QTextFormatCollection@@QBE?AVQTextBlockFormat@@H@Z @ 2380 NONAME ; class QTextBlockFormat QTextFormatCollection::blockFormat(int) const + ?addAnchors@QGraphicsAnchorLayout@@QAEXPAVQGraphicsLayoutItem@@0V?$QFlags@W4Orientation@Qt@@@@@Z @ 2381 NONAME ; void QGraphicsAnchorLayout::addAnchors(class QGraphicsLayoutItem *, class QGraphicsLayoutItem *, class QFlags) + ?self@QApplicationPrivate@@0PAV1@A @ 2382 NONAME ; class QApplicationPrivate * QApplicationPrivate::self + ?addPixmap@QIconEngine@@UAEXABVQPixmap@@W4Mode@QIcon@@W4State@4@@Z @ 2383 NONAME ; void QIconEngine::addPixmap(class QPixmap const &, enum QIcon::Mode, enum QIcon::State) + ?getStaticMetaObject@QItemDelegate@@SAABUQMetaObject@@XZ @ 2384 NONAME ; struct QMetaObject const & QItemDelegate::getStaticMetaObject(void) + ?leftBearing@QFontMetrics@@QBEHVQChar@@@Z @ 2385 NONAME ; int QFontMetrics::leftBearing(class QChar) const + ?tr@QEventDispatcherS60@@SA?AVQString@@PBD0@Z @ 2386 NONAME ; class QString QEventDispatcherS60::tr(char const *, char const *) + ?setHtml@QGraphicsTextItem@@QAEXABVQString@@@Z @ 2387 NONAME ; void QGraphicsTextItem::setHtml(class QString const &) + ?setWidget@QMdiSubWindow@@QAEXPAVQWidget@@@Z @ 2388 NONAME ; void QMdiSubWindow::setWidget(class QWidget *) + ?qt_metacall@QFontComboBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2389 NONAME ; int QFontComboBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QSyntaxHighlighter@@SAABUQMetaObject@@XZ @ 2390 NONAME ; struct QMetaObject const & QSyntaxHighlighter::getStaticMetaObject(void) + ?setSizeHint@QTreeWidgetItem@@QAEXHABVQSize@@@Z @ 2391 NONAME ; void QTreeWidgetItem::setSizeHint(int, class QSize const &) + ??_EQTableWidget@@UAE@I@Z @ 2392 NONAME ; QTableWidget::~QTableWidget(unsigned int) + ?leaveAfterRelease@QApplicationPrivate@@2V?$QPointer@VQWidget@@@@A @ 2393 NONAME ; class QPointer QApplicationPrivate::leaveAfterRelease + ?cursorPositionChanged@QTextEdit@@IAEXXZ @ 2394 NONAME ; void QTextEdit::cursorPositionChanged(void) + ?width@QWidget@@QBEHXZ @ 2395 NONAME ; int QWidget::width(void) const + ?property@QTextFormat@@QBE?AVQVariant@@H@Z @ 2396 NONAME ; class QVariant QTextFormat::property(int) const + ?scroll@QWidget@@QAEXHHABVQRect@@@Z @ 2397 NONAME ; void QWidget::scroll(int, int, class QRect const &) + ?select@QItemSelectionModel@@UAEXABVQItemSelection@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 2398 NONAME ; void QItemSelectionModel::select(class QItemSelection const &, class QFlags) + ?qt_metacast@QGraphicsScene@@UAEPAXPBD@Z @ 2399 NONAME ; void * QGraphicsScene::qt_metacast(char const *) + ?drawRects@QPainter@@QAEXABV?$QVector@VQRect@@@@@Z @ 2400 NONAME ; void QPainter::drawRects(class QVector const &) + ?updated@QMovie@@IAEXABVQRect@@@Z @ 2401 NONAME ; void QMovie::updated(class QRect const &) + ?setConstraints_sys@QWidgetPrivate@@QAEXXZ @ 2402 NONAME ; void QWidgetPrivate::setConstraints_sys(void) + ?drawRow@QTreeView@@MBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 2403 NONAME ; void QTreeView::drawRow(class QPainter *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?addRoundRect@QPainterPath@@QAEXMMMMHH@Z @ 2404 NONAME ; void QPainterPath::addRoundRect(float, float, float, float, int, int) + ?setLabelText@QInputDialog@@QAEXABVQString@@@Z @ 2405 NONAME ; void QInputDialog::setLabelText(class QString const &) + ?fontMetrics@QWidget@@QBE?AVQFontMetrics@@XZ @ 2406 NONAME ; class QFontMetrics QWidget::fontMetrics(void) const + ?sizeHintForColumn@QTableView@@MBEHH@Z @ 2407 NONAME ; int QTableView::sizeHintForColumn(int) const + ??_EQGraphicsScene@@UAE@I@Z @ 2408 NONAME ; QGraphicsScene::~QGraphicsScene(unsigned int) + ?pixmap@QWizardPage@@QBE?AVQPixmap@@W4WizardPixmap@QWizard@@@Z @ 2409 NONAME ; class QPixmap QWizardPage::pixmap(enum QWizard::WizardPixmap) const + ?paint@QIcon@@QBEXPAVQPainter@@ABVQRect@@V?$QFlags@W4AlignmentFlag@Qt@@@@W4Mode@1@W4State@1@@Z @ 2410 NONAME ; void QIcon::paint(class QPainter *, class QRect const &, class QFlags, enum QIcon::Mode, enum QIcon::State) const + ?data@QStringListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 2411 NONAME ; class QVariant QStringListModel::data(class QModelIndex const &, int) const + ?key@QKeyEvent@@QBEHXZ @ 2412 NONAME ; int QKeyEvent::key(void) const + ?qt_metacall@QAbstractItemView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2413 NONAME ; int QAbstractItemView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?firstBlock@QTextDocument@@QBE?AVQTextBlock@@XZ @ 2414 NONAME ; class QTextBlock QTextDocument::firstBlock(void) const + ??1QContextMenuEvent@@UAE@XZ @ 2415 NONAME ; QContextMenuEvent::~QContextMenuEvent(void) + ?parseSimpleSelector@Parser@QCss@@QAE_NPAUBasicSelector@2@@Z @ 2416 NONAME ; bool QCss::Parser::parseSimpleSelector(struct QCss::BasicSelector *) + ?trUtf8@QColorDialog@@SA?AVQString@@PBD0@Z @ 2417 NONAME ; class QString QColorDialog::trUtf8(char const *, char const *) + ?setFloating@QDockWidget@@QAEX_N@Z @ 2418 NONAME ; void QDockWidget::setFloating(bool) + ?notchesVisible@QDial@@QBE_NXZ @ 2419 NONAME ; bool QDial::notchesVisible(void) const + ?minimumSizeHint@QSplitter@@UBE?AVQSize@@XZ @ 2420 NONAME ; class QSize QSplitter::minimumSizeHint(void) const + ?topLevelItem@QGraphicsItem@@QBEPAV1@XZ @ 2421 NONAME ; class QGraphicsItem * QGraphicsItem::topLevelItem(void) const + ?text@QImage@@QBE?AVQString@@ABVQImageTextKeyLang@@@Z @ 2422 NONAME ; class QString QImage::text(class QImageTextKeyLang const &) const + ?polish@QS60Style@@UAEXPAVQApplication@@@Z @ 2423 NONAME ; void QS60Style::polish(class QApplication *) + ?angle@QGraphicsRotation@@QBEMXZ @ 2424 NONAME ; float QGraphicsRotation::angle(void) const + ?lineTo@QStrokerOps@@QAEXMM@Z @ 2425 NONAME ; void QStrokerOps::lineTo(float, float) + ?selectedText@QLineControl@@QBE?AVQString@@XZ @ 2426 NONAME ; class QString QLineControl::selectedText(void) const + ??0QSyntaxHighlighter@@QAE@PAVQTextEdit@@@Z @ 2427 NONAME ; QSyntaxHighlighter::QSyntaxHighlighter(class QTextEdit *) + ?wrapping@QAbstractSpinBox@@QBE_NXZ @ 2428 NONAME ; bool QAbstractSpinBox::wrapping(void) const + ?setHeaderData@QStandardItemModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 2429 NONAME ; bool QStandardItemModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ?hide@QGraphicsItem@@QAEXXZ @ 2430 NONAME ; void QGraphicsItem::hide(void) + ?metaObject@QProxyModel@@UBEPBUQMetaObject@@XZ @ 2431 NONAME ; struct QMetaObject const * QProxyModel::metaObject(void) const + ?resolvePalette@QGraphicsItemPrivate@@UAEXI@Z @ 2432 NONAME ; void QGraphicsItemPrivate::resolvePalette(unsigned int) + ?activePopupWidget@QApplication@@SAPAVQWidget@@XZ @ 2433 NONAME ; class QWidget * QApplication::activePopupWidget(void) + ?trUtf8@QPlainTextDocumentLayout@@SA?AVQString@@PBD0H@Z @ 2434 NONAME ; class QString QPlainTextDocumentLayout::trUtf8(char const *, char const *, int) + ?sizeHint@QFormLayout@@UBE?AVQSize@@XZ @ 2435 NONAME ; class QSize QFormLayout::sizeHint(void) const + ?mousePressEvent@QGroupBox@@MAEXPAVQMouseEvent@@@Z @ 2436 NONAME ; void QGroupBox::mousePressEvent(class QMouseEvent *) + ?d_func@QPixmapConvolutionFilter@@AAEPAVQPixmapConvolutionFilterPrivate@@XZ @ 2437 NONAME ; class QPixmapConvolutionFilterPrivate * QPixmapConvolutionFilter::d_func(void) + ?addTab@QTabWidget@@QAEHPAVQWidget@@ABVQString@@@Z @ 2438 NONAME ; int QTabWidget::addTab(class QWidget *, class QString const &) + ?hide_sys@QWidgetPrivate@@QAEXXZ @ 2439 NONAME ; void QWidgetPrivate::hide_sys(void) + ?expandingDirections@QSpacerItem@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 2440 NONAME ; class QFlags QSpacerItem::expandingDirections(void) const + ??_EQUndoGroup@@UAE@I@Z @ 2441 NONAME ; QUndoGroup::~QUndoGroup(unsigned int) + ?preferredWidth@QGraphicsLayoutItem@@QBEMXZ @ 2442 NONAME ; float QGraphicsLayoutItem::preferredWidth(void) const + ??0QGraphicsView@@QAE@PAVQWidget@@@Z @ 2443 NONAME ; QGraphicsView::QGraphicsView(class QWidget *) + ??0QStyleOptionFrameV3@@QAE@ABV0@@Z @ 2444 NONAME ; QStyleOptionFrameV3::QStyleOptionFrameV3(class QStyleOptionFrameV3 const &) + ??_EQProxyStyle@@UAE@I@Z @ 2445 NONAME ; QProxyStyle::~QProxyStyle(unsigned int) + ?tabMoved@QTabBar@@IAEXHH@Z @ 2446 NONAME ; void QTabBar::tabMoved(int, int) + ?aboutToDestroy@QPaintBufferSignalProxy@@IAEXPBVQPaintBufferPrivate@@@Z @ 2447 NONAME ; void QPaintBufferSignalProxy::aboutToDestroy(class QPaintBufferPrivate const *) + ?setMaximumSize@QWidget@@QAEXABVQSize@@@Z @ 2448 NONAME ; void QWidget::setMaximumSize(class QSize const &) + ??1QGraphicsSceneHoverEvent@@UAE@XZ @ 2449 NONAME ; QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent(void) + ??0QPixmapBlurFilter@@QAE@PAVQObject@@@Z @ 2450 NONAME ; QPixmapBlurFilter::QPixmapBlurFilter(class QObject *) + ?currentColorGroup@QPalette@@QBE?AW4ColorGroup@1@XZ @ 2451 NONAME ; enum QPalette::ColorGroup QPalette::currentColorGroup(void) const + ?tr@QGraphicsColorizeEffect@@SA?AVQString@@PBD0H@Z @ 2452 NONAME ; class QString QGraphicsColorizeEffect::tr(char const *, char const *, int) + ?sizeHint@QColumnView@@UBE?AVQSize@@XZ @ 2453 NONAME ; class QSize QColumnView::sizeHint(void) const + ?removeItem@QToolBox@@QAEXH@Z @ 2454 NONAME ; void QToolBox::removeItem(int) + ?selectionChanged@QClipboard@@IAEXXZ @ 2455 NONAME ; void QClipboard::selectionChanged(void) + ??5@YAAAVQDataStream@@AAV0@AAVQSizePolicy@@@Z @ 2456 NONAME ; class QDataStream & operator>>(class QDataStream &, class QSizePolicy &) + ?setBrush@QPainter@@QAEXABVQBrush@@@Z @ 2457 NONAME ; void QPainter::setBrush(class QBrush const &) + ?setSelected@QTableWidgetItem@@QAEX_N@Z @ 2458 NONAME ; void QTableWidgetItem::setSelected(bool) + ?event@QCheckBox@@MAE_NPAVQEvent@@@Z @ 2459 NONAME ; bool QCheckBox::event(class QEvent *) + ?itemClicked@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 2460 NONAME ; void QTableWidget::itemClicked(class QTableWidgetItem *) + ?originCorner@QGridLayout@@QBE?AW4Corner@Qt@@XZ @ 2461 NONAME ; enum Qt::Corner QGridLayout::originCorner(void) const + ??0QVector2D@@QAE@ABVQPointF@@@Z @ 2462 NONAME ; QVector2D::QVector2D(class QPointF const &) + ?standardButton@QMessageBox@@QBE?AW4StandardButton@1@PAVQAbstractButton@@@Z @ 2463 NONAME ; enum QMessageBox::StandardButton QMessageBox::standardButton(class QAbstractButton *) const + ?render@QWidget@@QAEXPAVQPainter@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@@Z @ 2464 NONAME ; void QWidget::render(class QPainter *, class QPoint const &, class QRegion const &, class QFlags) + ??4QStyleOptionFrameV2@@QAEAAV0@ABVQStyleOptionFrame@@@Z @ 2465 NONAME ; class QStyleOptionFrameV2 & QStyleOptionFrameV2::operator=(class QStyleOptionFrame const &) + ?staticMetaObject@QColorDialog@@2UQMetaObject@@B @ 2466 NONAME ; struct QMetaObject const QColorDialog::staticMetaObject + ??4QStyleOptionTabV3@@QAEAAV0@ABV0@@Z @ 2467 NONAME ; class QStyleOptionTabV3 & QStyleOptionTabV3::operator=(class QStyleOptionTabV3 const &) + ?mousePressEvent@QAbstractButton@@MAEXPAVQMouseEvent@@@Z @ 2468 NONAME ; void QAbstractButton::mousePressEvent(class QMouseEvent *) + ?drawArc@QPainter@@QAEXABVQRectF@@HH@Z @ 2469 NONAME ; void QPainter::drawArc(class QRectF const &, int, int) + ?setColumnMinimumWidth@QGridLayout@@QAEXHH@Z @ 2470 NONAME ; void QGridLayout::setColumnMinimumWidth(int, int) + ?miterLimit@QPainterPathStroker@@QBEMXZ @ 2471 NONAME ; float QPainterPathStroker::miterLimit(void) const + ?tr@QGraphicsSystemPlugin@@SA?AVQString@@PBD0H@Z @ 2472 NONAME ; class QString QGraphicsSystemPlugin::tr(char const *, char const *, int) + ?windowIconText@QWidget@@QBE?AVQString@@XZ @ 2473 NONAME ; class QString QWidget::windowIconText(void) const + ?dark@QPalette@@QBEABVQBrush@@XZ @ 2474 NONAME ; class QBrush const & QPalette::dark(void) const + ?qt_widget_private@@YAPAVQWidgetPrivate@@PAVQWidget@@@Z @ 2475 NONAME ; class QWidgetPrivate * qt_widget_private(class QWidget *) + ?lineTo@QPainterPath@@QAEXABVQPointF@@@Z @ 2476 NONAME ; void QPainterPath::lineTo(class QPointF const &) + ?parseAttrib@Parser@QCss@@QAE_NPAUAttributeSelector@2@@Z @ 2477 NONAME ; bool QCss::Parser::parseAttrib(struct QCss::AttributeSelector *) + ?buttons@QDialogButtonBox@@QBE?AV?$QList@PAVQAbstractButton@@@@XZ @ 2478 NONAME ; class QList QDialogButtonBox::buttons(void) const + ?drawPrimitive@QCommonStyle@@UBEXW4PrimitiveElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 2479 NONAME ; void QCommonStyle::drawPrimitive(enum QStyle::PrimitiveElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?textOutline@QTextCharFormat@@QBE?AVQPen@@XZ @ 2480 NONAME ; class QPen QTextCharFormat::textOutline(void) const + ?tr@QLineEdit@@SA?AVQString@@PBD0H@Z @ 2481 NONAME ; class QString QLineEdit::tr(char const *, char const *, int) + ?stringList@QStringListModel@@QBE?AVQStringList@@XZ @ 2482 NONAME ; class QStringList QStringListModel::stringList(void) const + ?moveEvent@QMdiSubWindow@@MAEXPAVQMoveEvent@@@Z @ 2483 NONAME ; void QMdiSubWindow::moveEvent(class QMoveEvent *) + ?mapToWS@QWidgetPrivate@@QBE?AVQRect@@ABV2@@Z @ 2484 NONAME ; class QRect QWidgetPrivate::mapToWS(class QRect const &) const + ?fontItalic@QTextCharFormat@@QBE_NXZ @ 2485 NONAME ; bool QTextCharFormat::fontItalic(void) const + ??0QSessionManager@@AAE@PAVQApplication@@AAVQString@@1@Z @ 2486 NONAME ; QSessionManager::QSessionManager(class QApplication *, class QString &, class QString &) + ?tr@QSplitter@@SA?AVQString@@PBD0H@Z @ 2487 NONAME ; class QString QSplitter::tr(char const *, char const *, int) + ?formAlignment@QFormLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 2488 NONAME ; class QFlags QFormLayout::formAlignment(void) const + ?qDrawShadeLine@@YAXPAVQPainter@@ABVQPoint@@1ABVQPalette@@_NHH@Z @ 2489 NONAME ; void qDrawShadeLine(class QPainter *, class QPoint const &, class QPoint const &, class QPalette const &, bool, int, int) + ?itemForRole@QDockWidgetLayout@@QBEPAVQLayoutItem@@W4Role@1@@Z @ 2490 NONAME ; class QLayoutItem * QDockWidgetLayout::itemForRole(enum QDockWidgetLayout::Role) const + ??0QRadialGradient@@QAE@ABVQPointF@@M0@Z @ 2491 NONAME ; QRadialGradient::QRadialGradient(class QPointF const &, float, class QPointF const &) + ?currentCharFormat@QTextControl@@QBE?AVQTextCharFormat@@XZ @ 2492 NONAME ; class QTextCharFormat QTextControl::currentCharFormat(void) const + ??0QListWidgetItem@@QAE@ABVQIcon@@ABVQString@@PAVQListWidget@@H@Z @ 2493 NONAME ; QListWidgetItem::QListWidgetItem(class QIcon const &, class QString const &, class QListWidget *, int) + ?setActiveWindow@QApplication@@SAXPAVQWidget@@@Z @ 2494 NONAME ; void QApplication::setActiveWindow(class QWidget *) + ?dateTextFormat@QCalendarWidget@@QBE?AV?$QMap@VQDate@@VQTextCharFormat@@@@XZ @ 2495 NONAME ; class QMap QCalendarWidget::dateTextFormat(void) const + ?beginLayout@QTextLayout@@QAEXXZ @ 2496 NONAME ; void QTextLayout::beginLayout(void) + ?setPreviewWidget@QColumnView@@QAEXPAVQWidget@@@Z @ 2497 NONAME ; void QColumnView::setPreviewWidget(class QWidget *) + ?d_func@QWizardPage@@AAEPAVQWizardPagePrivate@@XZ @ 2498 NONAME ; class QWizardPagePrivate * QWizardPage::d_func(void) + ?hasChildren@QSortFilterProxyModel@@UBE_NABVQModelIndex@@@Z @ 2499 NONAME ; bool QSortFilterProxyModel::hasChildren(class QModelIndex const &) const + ?setFinalStop@QLinearGradient@@QAEXMM@Z @ 2500 NONAME ; void QLinearGradient::setFinalStop(float, float) + ?setKey@QKeySequence@@AAEXHH@Z @ 2501 NONAME ; void QKeySequence::setKey(int, int) + ?nativeParentWidget@QWidget@@QBEPAV1@XZ @ 2502 NONAME ; class QWidget * QWidget::nativeParentWidget(void) const + ?dropEvent@QTextEdit@@MAEXPAVQDropEvent@@@Z @ 2503 NONAME ; void QTextEdit::dropEvent(class QDropEvent *) + ?d_func@QStackedWidget@@AAEPAVQStackedWidgetPrivate@@XZ @ 2504 NONAME ; class QStackedWidgetPrivate * QStackedWidget::d_func(void) + ?exactMatch@QFontInfo@@QBE_NXZ @ 2505 NONAME ; bool QFontInfo::exactMatch(void) const + ?drawDecoration@QItemDelegate@@MBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQRect@@ABVQPixmap@@@Z @ 2506 NONAME ; void QItemDelegate::drawDecoration(class QPainter *, class QStyleOptionViewItem const &, class QRect const &, class QPixmap const &) const + ?autoDestruct@QPaintEngine@@ABE_NXZ @ 2507 NONAME ; bool QPaintEngine::autoDestruct(void) const + ?getStaticMetaObject@QWindowsStyle@@SAABUQMetaObject@@XZ @ 2508 NONAME ; struct QMetaObject const & QWindowsStyle::getStaticMetaObject(void) + ??0QPen@@QAE@ABV0@@Z @ 2509 NONAME ; QPen::QPen(class QPen const &) + ?tr@QUndoStack@@SA?AVQString@@PBD0H@Z @ 2510 NONAME ; class QString QUndoStack::tr(char const *, char const *, int) + ?setDoubleRange@QInputDialog@@QAEXNN@Z @ 2511 NONAME ; void QInputDialog::setDoubleRange(double, double) + ?setVisible@QAction@@QAEX_N@Z @ 2512 NONAME ; void QAction::setVisible(bool) + ?scenePos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@XZ @ 2513 NONAME ; class QPointF QGraphicsSceneMouseEvent::scenePos(void) const + ?testSelector@Parser@QCss@@QAE_NXZ @ 2514 NONAME ; bool QCss::Parser::testSelector(void) + ?graphicsProxyWidget@QWidget@@QBEPAVQGraphicsProxyWidget@@XZ @ 2515 NONAME ; class QGraphicsProxyWidget * QWidget::graphicsProxyWidget(void) const + ?setDocumentMode@QMdiArea@@QAEX_N@Z @ 2516 NONAME ; void QMdiArea::setDocumentMode(bool) + ?createWidget@QWidgetAction@@MAEPAVQWidget@@PAV2@@Z @ 2517 NONAME ; class QWidget * QWidgetAction::createWidget(class QWidget *) + ??0QItemSelectionModel@@QAE@PAVQAbstractItemModel@@PAVQObject@@@Z @ 2518 NONAME ; QItemSelectionModel::QItemSelectionModel(class QAbstractItemModel *, class QObject *) + ?trUtf8@QLCDNumber@@SA?AVQString@@PBD0@Z @ 2519 NONAME ; class QString QLCDNumber::trUtf8(char const *, char const *) + ?qt_metacall@QErrorMessage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2520 NONAME ; int QErrorMessage::qt_metacall(enum QMetaObject::Call, int, void * *) + ?ungrabKeyboardEvent@QGraphicsWidget@@MAEXPAVQEvent@@@Z @ 2521 NONAME ; void QGraphicsWidget::ungrabKeyboardEvent(class QEvent *) + ?isColumnHidden@QTreeView@@QBE_NH@Z @ 2522 NONAME ; bool QTreeView::isColumnHidden(int) const + ?iconProvider@QDirModel@@QBEPAVQFileIconProvider@@XZ @ 2523 NONAME ; class QFileIconProvider * QDirModel::iconProvider(void) const + ?statusTip@QWidget@@QBE?AVQString@@XZ @ 2524 NONAME ; class QString QWidget::statusTip(void) const + ?getRgb@QColor@@QBEXPAH000@Z @ 2525 NONAME ; void QColor::getRgb(int *, int *, int *, int *) const + ?setColor@QPixmapColorizeFilter@@QAEXABVQColor@@@Z @ 2526 NONAME ; void QPixmapColorizeFilter::setColor(class QColor const &) + ?isSortCacheEnabled@QGraphicsScene@@QBE_NXZ @ 2527 NONAME ; bool QGraphicsScene::isSortCacheEnabled(void) const + ?rectForIndex@QListView@@IBE?AVQRect@@ABVQModelIndex@@@Z @ 2528 NONAME ; class QRect QListView::rectForIndex(class QModelIndex const &) const + ??0QContextMenuEvent@@QAE@W4Reason@0@ABVQPoint@@1@Z @ 2529 NONAME ; QContextMenuEvent::QContextMenuEvent(enum QContextMenuEvent::Reason, class QPoint const &, class QPoint const &) + ?d_func@QDialogButtonBox@@AAEPAVQDialogButtonBoxPrivate@@XZ @ 2530 NONAME ; class QDialogButtonBoxPrivate * QDialogButtonBox::d_func(void) + ?setStatusTip@QWidget@@QAEXABVQString@@@Z @ 2531 NONAME ; void QWidget::setStatusTip(class QString const &) + ??0QIcon@@QAE@ABV0@@Z @ 2532 NONAME ; QIcon::QIcon(class QIcon const &) + ?metaObject@QDesktopWidget@@UBEPBUQMetaObject@@XZ @ 2533 NONAME ; struct QMetaObject const * QDesktopWidget::metaObject(void) const + ??0QScrollArea@@QAE@PAVQWidget@@@Z @ 2534 NONAME ; QScrollArea::QScrollArea(class QWidget *) + ?metaObject@QWidget@@UBEPBUQMetaObject@@XZ @ 2535 NONAME ; struct QMetaObject const * QWidget::metaObject(void) const + ?text@QImage@@QBE?AVQString@@ABV2@@Z @ 2536 NONAME ; class QString QImage::text(class QString const &) const + ?showMessage@QSplashScreen@@QAEXABVQString@@HABVQColor@@@Z @ 2537 NONAME ; void QSplashScreen::showMessage(class QString const &, int, class QColor const &) + ?setActiveSubWindow@QMdiArea@@QAEXPAVQMdiSubWindow@@@Z @ 2538 NONAME ; void QMdiArea::setActiveSubWindow(class QMdiSubWindow *) + ?metaObject@QCoeFepInputContext@@UBEPBUQMetaObject@@XZ @ 2539 NONAME ; struct QMetaObject const * QCoeFepInputContext::metaObject(void) const + ?showEvent@QGraphicsProxyWidget@@MAEXPAVQShowEvent@@@Z @ 2540 NONAME ; void QGraphicsProxyWidget::showEvent(class QShowEvent *) + ?bitmap@QCursor@@QBEPBVQBitmap@@XZ @ 2541 NONAME ; class QBitmap const * QCursor::bitmap(void) const + ?trUtf8@QMenuBar@@SA?AVQString@@PBD0H@Z @ 2542 NONAME ; class QString QMenuBar::trUtf8(char const *, char const *, int) + ?rect@QPaintEvent@@QBEABVQRect@@XZ @ 2543 NONAME ; class QRect const & QPaintEvent::rect(void) const + ??1QFileSystemModel@@UAE@XZ @ 2544 NONAME ; QFileSystemModel::~QFileSystemModel(void) + ?childEvent@QLayout@@MAEXPAVQChildEvent@@@Z @ 2545 NONAME ; void QLayout::childEvent(class QChildEvent *) + ??Fiterator@QTextFrame@@QAE?AV01@H@Z @ 2546 NONAME ; class QTextFrame::iterator QTextFrame::iterator::operator--(int) + ??0QStyleOptionTabBarBaseV2@@IAE@H@Z @ 2547 NONAME ; QStyleOptionTabBarBaseV2::QStyleOptionTabBarBaseV2(int) + ?tr@QTextTable@@SA?AVQString@@PBD0@Z @ 2548 NONAME ; class QString QTextTable::tr(char const *, char const *) + ?childEvent@QGroupBox@@MAEXPAVQChildEvent@@@Z @ 2549 NONAME ; void QGroupBox::childEvent(class QChildEvent *) + ??1QFontPrivate@@QAE@XZ @ 2550 NONAME ; QFontPrivate::~QFontPrivate(void) + ?setSelectionArea@QGraphicsScene@@QAEXABVQPainterPath@@W4ItemSelectionMode@Qt@@ABVQTransform@@@Z @ 2551 NONAME ; void QGraphicsScene::setSelectionArea(class QPainterPath const &, enum Qt::ItemSelectionMode, class QTransform const &) + ?metaObject@QGraphicsTextItem@@UBEPBUQMetaObject@@XZ @ 2552 NONAME ; struct QMetaObject const * QGraphicsTextItem::metaObject(void) const + ?indexAt@QListView@@UBE?AVQModelIndex@@ABVQPoint@@@Z @ 2553 NONAME ; class QModelIndex QListView::indexAt(class QPoint const &) const + ?children@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 2554 NONAME ; class QList QGraphicsItem::children(void) const + ?touchPointStates@QTouchEvent@@QBE?AV?$QFlags@W4TouchPointState@Qt@@@@XZ @ 2555 NONAME ; class QFlags QTouchEvent::touchPointStates(void) const + ?setOrigin@QGraphicsScale@@QAEXABVQVector3D@@@Z @ 2556 NONAME ; void QGraphicsScale::setOrigin(class QVector3D const &) + ?setOption@QWizard@@QAEXW4WizardOption@1@_N@Z @ 2557 NONAME ; void QWizard::setOption(enum QWizard::WizardOption, bool) + ?cut@QTextControl@@QAEXXZ @ 2558 NONAME ; void QTextControl::cut(void) + ?mapFromScene@QGraphicsItem@@QBE?AVQPolygonF@@MMMM@Z @ 2559 NONAME ; class QPolygonF QGraphicsItem::mapFromScene(float, float, float, float) const + ??0QTableWidgetSelectionRange@@QAE@XZ @ 2560 NONAME ; QTableWidgetSelectionRange::QTableWidgetSelectionRange(void) + ?tr@QAbstractSpinBox@@SA?AVQString@@PBD0@Z @ 2561 NONAME ; class QString QAbstractSpinBox::tr(char const *, char const *) + ?testOption@QMdiArea@@QBE_NW4AreaOption@1@@Z @ 2562 NONAME ; bool QMdiArea::testOption(enum QMdiArea::AreaOption) const + ?clear@QPlainTextEdit@@QAEXXZ @ 2563 NONAME ; void QPlainTextEdit::clear(void) + ?trUtf8@QApplication@@SA?AVQString@@PBD0@Z @ 2564 NONAME ; class QString QApplication::trUtf8(char const *, char const *) + ?populate@QTextureGlyphCache@@QAEXABVQTextItemInt@@ABV?$QVarLengthArray@I$0BAA@@@ABV?$QVarLengthArray@UQFixedPoint@@$0BAA@@@@Z @ 2565 NONAME ; void QTextureGlyphCache::populate(class QTextItemInt const &, class QVarLengthArray const &, class QVarLengthArray const &) + ?toString@QFont@@QBE?AVQString@@XZ @ 2566 NONAME ; class QString QFont::toString(void) const + ?insertWidget@QStackedWidget@@QAEHHPAVQWidget@@@Z @ 2567 NONAME ; int QStackedWidget::insertWidget(int, class QWidget *) + ?takeVerticalHeaderItem@QStandardItemModel@@QAEPAVQStandardItem@@H@Z @ 2568 NONAME ; class QStandardItem * QStandardItemModel::takeVerticalHeaderItem(int) + ?strokePath@QStrokerOps@@QAEXABVQPainterPath@@PAXABVQTransform@@@Z @ 2569 NONAME ; void QStrokerOps::strokePath(class QPainterPath const &, void *, class QTransform const &) + ?mouseMoveEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 2570 NONAME ; void QGraphicsProxyWidget::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?removePixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 2571 NONAME ; void QImagePixmapCleanupHooks::removePixmapDestructionHook(void (*)(class QPixmap *)) + ?keyPressEvent@QPlainTextEdit@@MAEXPAVQKeyEvent@@@Z @ 2572 NONAME ; void QPlainTextEdit::keyPressEvent(class QKeyEvent *) + ??0QBitmap@@QAE@ABVQSize@@@Z @ 2573 NONAME ; QBitmap::QBitmap(class QSize const &) + ?updateScene@QGraphicsView@@QAEXABV?$QList@VQRectF@@@@@Z @ 2574 NONAME ; void QGraphicsView::updateScene(class QList const &) + ?setData@QProxyModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 2575 NONAME ; bool QProxyModel::setData(class QModelIndex const &, class QVariant const &, int) + ?toNativeType@QPixmapData@@UAEPAXW4NativeType@1@@Z @ 2576 NONAME ; void * QPixmapData::toNativeType(enum QPixmapData::NativeType) + ?newPos@QGraphicsSceneMoveEvent@@QBE?AVQPointF@@XZ @ 2577 NONAME ; class QPointF QGraphicsSceneMoveEvent::newPos(void) const + ?contextMenuEvent@QAbstractScrollArea@@MAEXPAVQContextMenuEvent@@@Z @ 2578 NONAME ; void QAbstractScrollArea::contextMenuEvent(class QContextMenuEvent *) + ?instanceCounter@QWidgetPrivate@@2HA @ 2579 NONAME ; int QWidgetPrivate::instanceCounter + ?setNumDigits@QLCDNumber@@QAEXH@Z @ 2580 NONAME ; void QLCDNumber::setNumDigits(int) + ??XQMatrix@@QAEAAV0@ABV0@@Z @ 2581 NONAME ; class QMatrix & QMatrix::operator*=(class QMatrix const &) + ?metaObject@QTextEdit@@UBEPBUQMetaObject@@XZ @ 2582 NONAME ; struct QMetaObject const * QTextEdit::metaObject(void) const + ??1QImageData@@QAE@XZ @ 2583 NONAME ; QImageData::~QImageData(void) + ?app_style@QApplicationPrivate@@2PAVQStyle@@A @ 2584 NONAME ; class QStyle * QApplicationPrivate::app_style + ?supportedDropActions@QProxyModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 2585 NONAME ; class QFlags QProxyModel::supportedDropActions(void) const + ?selectionCommand@QAbstractItemView@@MBE?AV?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@ABVQModelIndex@@PBVQEvent@@@Z @ 2586 NONAME ; class QFlags QAbstractItemView::selectionCommand(class QModelIndex const &, class QEvent const *) const + ?delta@QGraphicsSceneWheelEvent@@QBEHXZ @ 2587 NONAME ; int QGraphicsSceneWheelEvent::delta(void) const + ??0QFontPrivate@@QAE@ABV0@@Z @ 2588 NONAME ; QFontPrivate::QFontPrivate(class QFontPrivate const &) + ?tr@QUndoGroup@@SA?AVQString@@PBD0@Z @ 2589 NONAME ; class QString QUndoGroup::tr(char const *, char const *) + ?fileInfo@QFileSystemModel@@QBE?AVQFileInfo@@ABVQModelIndex@@@Z @ 2590 NONAME ; class QFileInfo QFileSystemModel::fileInfo(class QModelIndex const &) const + ?done@QFontDialog@@MAEXH@Z @ 2591 NONAME ; void QFontDialog::done(int) + ?timerEvent@QTableView@@MAEXPAVQTimerEvent@@@Z @ 2592 NONAME ; void QTableView::timerEvent(class QTimerEvent *) + ?clear@QLineControl@@QAEXXZ @ 2593 NONAME ; void QLineControl::clear(void) + ?metaObject@QInputContextPlugin@@UBEPBUQMetaObject@@XZ @ 2594 NONAME ; struct QMetaObject const * QInputContextPlugin::metaObject(void) const + ?height@QTextImageFormat@@QBEMXZ @ 2595 NONAME ; float QTextImageFormat::height(void) const + ?sizeHint@QMenuBar@@UBE?AVQSize@@XZ @ 2596 NONAME ; class QSize QMenuBar::sizeHint(void) const + ?rawMode@QFontInfo@@QBE_NXZ @ 2597 NONAME ; bool QFontInfo::rawMode(void) const + ?critical@QMessageBox@@SAHPAVQWidget@@ABVQString@@1W4StandardButton@1@2@Z @ 2598 NONAME ; int QMessageBox::critical(class QWidget *, class QString const &, class QString const &, enum QMessageBox::StandardButton, enum QMessageBox::StandardButton) + ?physicalDpiY@QPaintDevice@@QBEHXZ @ 2599 NONAME ; int QPaintDevice::physicalDpiY(void) const + ?trUtf8@QAbstractProxyModel@@SA?AVQString@@PBD0@Z @ 2600 NONAME ; class QString QAbstractProxyModel::trUtf8(char const *, char const *) + ?d_func@QToolButton@@AAEPAVQToolButtonPrivate@@XZ @ 2601 NONAME ; class QToolButtonPrivate * QToolButton::d_func(void) + ?opaqueArea@QGraphicsEllipseItem@@UBE?AVQPainterPath@@XZ @ 2602 NONAME ; class QPainterPath QGraphicsEllipseItem::opaqueArea(void) const + ?hitTestComplexControl@QCommonStyle@@UBE?AW4SubControl@QStyle@@W4ComplexControl@3@PBVQStyleOptionComplex@@ABVQPoint@@PBVQWidget@@@Z @ 2603 NONAME ; enum QStyle::SubControl QCommonStyle::hitTestComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPoint const &, class QWidget const *) const + ??0QGraphicsBloomEffect@@QAE@PAVQObject@@@Z @ 2604 NONAME ; QGraphicsBloomEffect::QGraphicsBloomEffect(class QObject *) + ?alternateBase@QPalette@@QBEABVQBrush@@XZ @ 2605 NONAME ; class QBrush const & QPalette::alternateBase(void) const + ?qt_metacast@QColumnView@@UAEPAXPBD@Z @ 2606 NONAME ; void * QColumnView::qt_metacast(char const *) + ??_0QQuaternion@@QAEAAV0@M@Z @ 2607 NONAME ; class QQuaternion & QQuaternion::operator/=(float) + ?showEvent@QPlainTextEdit@@MAEXPAVQShowEvent@@@Z @ 2608 NONAME ; void QPlainTextEdit::showEvent(class QShowEvent *) + ?isMovable@QTabWidget@@QBE_NXZ @ 2609 NONAME ; bool QTabWidget::isMovable(void) const + ?setIcon@QTableWidgetItem@@QAEXABVQIcon@@@Z @ 2610 NONAME ; void QTableWidgetItem::setIcon(class QIcon const &) + ?doResize@QWidgetResizeHandler@@QAEXXZ @ 2611 NONAME ; void QWidgetResizeHandler::doResize(void) + ??1QWidgetAction@@UAE@XZ @ 2612 NONAME ; QWidgetAction::~QWidgetAction(void) + ?paintingActive@QPaintDevice@@QBE_NXZ @ 2613 NONAME ; bool QPaintDevice::paintingActive(void) const + ?options@QFileDialog@@QBE?AV?$QFlags@W4Option@QFileDialog@@@@XZ @ 2614 NONAME ; class QFlags QFileDialog::options(void) const + ?dataChanged@QHeaderView@@MAEXABVQModelIndex@@0@Z @ 2615 NONAME ; void QHeaderView::dataChanged(class QModelIndex const &, class QModelIndex const &) + ?hideText@QWhatsThis@@SAXXZ @ 2616 NONAME ; void QWhatsThis::hideText(void) + ?getStaticMetaObject@QGraphicsGrayscaleEffect@@SAABUQMetaObject@@XZ @ 2617 NONAME ; struct QMetaObject const & QGraphicsGrayscaleEffect::getStaticMetaObject(void) + ?construct@QApplicationPrivate@@QAEXXZ @ 2618 NONAME ; void QApplicationPrivate::construct(void) + ?mouseReleaseEvent@QSizeGrip@@MAEXPAVQMouseEvent@@@Z @ 2619 NONAME ; void QSizeGrip::mouseReleaseEvent(class QMouseEvent *) + ?currentIndex@QTabBar@@QBEHXZ @ 2620 NONAME ; int QTabBar::currentIndex(void) const + ??0QFontInfo@@QAE@ABV0@@Z @ 2621 NONAME ; QFontInfo::QFontInfo(class QFontInfo const &) + ?setArrowType@QToolButton@@QAEXW4ArrowType@Qt@@@Z @ 2622 NONAME ; void QToolButton::setArrowType(enum Qt::ArrowType) + ?setTextAlignment@QTableWidgetItem@@QAEXH@Z @ 2623 NONAME ; void QTableWidgetItem::setTextAlignment(int) + ?setScreenPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 2624 NONAME ; void QTouchEvent::TouchPoint::setScreenPos(class QPointF const &) + ?finalStop@QLinearGradient@@QBE?AVQPointF@@XZ @ 2625 NONAME ; class QPointF QLinearGradient::finalStop(void) const + ?setDragEnabled@QAbstractItemView@@QAEX_N@Z @ 2626 NONAME ; void QAbstractItemView::setDragEnabled(bool) + ?timerEvent@QMenuBar@@MAEXPAVQTimerEvent@@@Z @ 2627 NONAME ; void QMenuBar::timerEvent(class QTimerEvent *) + ?getStaticMetaObject@QDrag@@SAABUQMetaObject@@XZ @ 2628 NONAME ; struct QMetaObject const & QDrag::getStaticMetaObject(void) + ?setFiltersChildEvents@QGraphicsItem@@QAEX_N@Z @ 2629 NONAME ; void QGraphicsItem::setFiltersChildEvents(bool) + ?trUtf8@QAbstractItemView@@SA?AVQString@@PBD0@Z @ 2630 NONAME ; class QString QAbstractItemView::trUtf8(char const *, char const *) + ?isChecked@QGroupBox@@QBE_NXZ @ 2631 NONAME ; bool QGroupBox::isChecked(void) const + ?type@QApplication@@SA?AW4Type@1@XZ @ 2632 NONAME ; enum QApplication::Type QApplication::type(void) + ?setClean@QUndoStack@@QAEXXZ @ 2633 NONAME ; void QUndoStack::setClean(void) + ?staticMetaObject@QGradient@@2UQMetaObject@@B @ 2634 NONAME ; struct QMetaObject const QGradient::staticMetaObject + ?trUtf8@QSwipeGesture@@SA?AVQString@@PBD0@Z @ 2635 NONAME ; class QString QSwipeGesture::trUtf8(char const *, char const *) + ?metaObject@QDateEdit@@UBEPBUQMetaObject@@XZ @ 2636 NONAME ; struct QMetaObject const * QDateEdit::metaObject(void) const + ?symbol@Parser@QCss@@QBEABUSymbol@2@XZ @ 2637 NONAME ; struct QCss::Symbol const & QCss::Parser::symbol(void) const + ?tr@QStyledItemDelegate@@SA?AVQString@@PBD0@Z @ 2638 NONAME ; class QString QStyledItemDelegate::tr(char const *, char const *) + ?setMinimumSize_helper@QWidgetPrivate@@QAE_NAAH0@Z @ 2639 NONAME ; bool QWidgetPrivate::setMinimumSize_helper(int &, int &) + ?maximumSize@QDockWidgetLayout@@UBE?AVQSize@@XZ @ 2640 NONAME ; class QSize QDockWidgetLayout::maximumSize(void) const + ??4QPaintBuffer@@QAEAAV0@ABV0@@Z @ 2641 NONAME ; class QPaintBuffer & QPaintBuffer::operator=(class QPaintBuffer const &) + ?buttonPressed@QButtonGroup@@IAEXPAVQAbstractButton@@@Z @ 2642 NONAME ; void QButtonGroup::buttonPressed(class QAbstractButton *) + ?menuWidget@QMainWindow@@QBEPAVQWidget@@XZ @ 2643 NONAME ; class QWidget * QMainWindow::menuWidget(void) const + ?d_func@QTextEdit@@ABEPBVQTextEditPrivate@@XZ @ 2644 NONAME ; class QTextEditPrivate const * QTextEdit::d_func(void) const + ??0QResizeEvent@@QAE@ABVQSize@@0@Z @ 2645 NONAME ; QResizeEvent::QResizeEvent(class QSize const &, class QSize const &) + ?drawRects@QPainter@@QAEXPBVQRect@@H@Z @ 2646 NONAME ; void QPainter::drawRects(class QRect const *, int) + ?totalRotationAngle@QPinchGesture@@QBEMXZ @ 2647 NONAME ; float QPinchGesture::totalRotationAngle(void) const + ?addButton@QButtonGroup@@QAEXPAVQAbstractButton@@@Z @ 2648 NONAME ; void QButtonGroup::addButton(class QAbstractButton *) + ?drawImage@QPaintEngine@@UAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 2649 NONAME ; void QPaintEngine::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags) + ?addWidget@QStackedWidget@@QAEHPAVQWidget@@@Z @ 2650 NONAME ; int QStackedWidget::addWidget(class QWidget *) + ?combineTransformFromParent@QGraphicsItemPrivate@@QBEXPAVQTransform@@PBV2@@Z @ 2651 NONAME ; void QGraphicsItemPrivate::combineTransformFromParent(class QTransform *, class QTransform const *) const + ?normalized@QVector3D@@QBE?AV1@XZ @ 2652 NONAME ; class QVector3D QVector3D::normalized(void) const + ??_EQMainWindow@@UAE@I@Z @ 2653 NONAME ; QMainWindow::~QMainWindow(unsigned int) + ?styleSheet@QApplication@@QBE?AVQString@@XZ @ 2654 NONAME ; class QString QApplication::styleSheet(void) const + ?setColumnAlignment@QGraphicsGridLayout@@QAEXHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 2655 NONAME ; void QGraphicsGridLayout::setColumnAlignment(int, class QFlags) + ?modifiers@QGraphicsSceneHoverEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 2656 NONAME ; class QFlags QGraphicsSceneHoverEvent::modifiers(void) const + ?setPen@QAbstractGraphicsShapeItem@@QAEXABVQPen@@@Z @ 2657 NONAME ; void QAbstractGraphicsShapeItem::setPen(class QPen const &) + ??0QTextList@@QAE@PAVQTextDocument@@@Z @ 2658 NONAME ; QTextList::QTextList(class QTextDocument *) + ?drawLine@QPainter@@QAEXABVQLine@@@Z @ 2659 NONAME ; void QPainter::drawLine(class QLine const &) + ?panelModality@QGraphicsItem@@QBE?AW4PanelModality@1@XZ @ 2660 NONAME ; enum QGraphicsItem::PanelModality QGraphicsItem::panelModality(void) const + ?heightForWidth@QWidgetItem@@UBEHH@Z @ 2661 NONAME ; int QWidgetItem::heightForWidth(int) const + ?qt_metacast@QS60Style@@UAEPAXPBD@Z @ 2662 NONAME ; void * QS60Style::qt_metacast(char const *) + ?cleanIndex@QUndoStack@@QBEHXZ @ 2663 NONAME ; int QUndoStack::cleanIndex(void) const + ?index@QFileSystemModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 2664 NONAME ; class QModelIndex QFileSystemModel::index(int, int, class QModelIndex const &) const + ??1QStyleOptionFrameV3@@QAE@XZ @ 2665 NONAME ; QStyleOptionFrameV3::~QStyleOptionFrameV3(void) + ??1QGraphicsBloomEffect@@UAE@XZ @ 2666 NONAME ; QGraphicsBloomEffect::~QGraphicsBloomEffect(void) + ??1QAbstractTextDocumentLayout@@UAE@XZ @ 2667 NONAME ; QAbstractTextDocumentLayout::~QAbstractTextDocumentLayout(void) + ?scaled@QPixmap@@QBE?AV1@HHW4AspectRatioMode@Qt@@W4TransformationMode@3@@Z @ 2668 NONAME ; class QPixmap QPixmap::scaled(int, int, enum Qt::AspectRatioMode, enum Qt::TransformationMode) const + ??_EQGraphicsTransform@@UAE@I@Z @ 2669 NONAME ; QGraphicsTransform::~QGraphicsTransform(unsigned int) + ?tr@QAbstractScrollArea@@SA?AVQString@@PBD0@Z @ 2670 NONAME ; class QString QAbstractScrollArea::tr(char const *, char const *) + ?clickedButton@QMessageBox@@QBEPAVQAbstractButton@@XZ @ 2671 NONAME ; class QAbstractButton * QMessageBox::clickedButton(void) const + ?setClipPath@QPainter@@QAEXABVQPainterPath@@W4ClipOperation@Qt@@@Z @ 2672 NONAME ; void QPainter::setClipPath(class QPainterPath const &, enum Qt::ClipOperation) + ?qt_metacall@QStringListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2673 NONAME ; int QStringListModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?hasPendingEvents@QEventDispatcherS60@@UAE_NXZ @ 2674 NONAME ; bool QEventDispatcherS60::hasPendingEvents(void) + ?addAction@QMenuBar@@QAEPAVQAction@@ABVQString@@@Z @ 2675 NONAME ; class QAction * QMenuBar::addAction(class QString const &) + ?undo@QTextDocument@@QAEXXZ @ 2676 NONAME ; void QTextDocument::undo(void) + ?tr@QTableWidget@@SA?AVQString@@PBD0H@Z @ 2677 NONAME ; class QString QTableWidget::tr(char const *, char const *, int) + ?widgetEvent@QLayout@@IAEXPAVQEvent@@@Z @ 2678 NONAME ; void QLayout::widgetEvent(class QEvent *) + ?setRowHeight@QTableView@@QAEXHH@Z @ 2679 NONAME ; void QTableView::setRowHeight(int, int) + ?setRect@QGraphicsEllipseItem@@QAEXABVQRectF@@@Z @ 2680 NONAME ; void QGraphicsEllipseItem::setRect(class QRectF const &) + ?isBlockFormat@QTextFormat@@QBE_NXZ @ 2681 NONAME ; bool QTextFormat::isBlockFormat(void) const + ??0QColormap@@QAE@ABV0@@Z @ 2682 NONAME ; QColormap::QColormap(class QColormap const &) + ?rightPadding@QTextTableCellFormat@@QBEMXZ @ 2683 NONAME ; float QTextTableCellFormat::rightPadding(void) const + ?staticMetaObject@QGraphicsBloomEffect@@2UQMetaObject@@B @ 2684 NONAME ; struct QMetaObject const QGraphicsBloomEffect::staticMetaObject + ?leading@QFontMetricsF@@QBEMXZ @ 2685 NONAME ; float QFontMetricsF::leading(void) const + ?beginNativePainting@QPainter@@QAEXXZ @ 2686 NONAME ; void QPainter::beginNativePainting(void) + ?addChildWidget@QLayout@@IAEXPAVQWidget@@@Z @ 2687 NONAME ; void QLayout::addChildWidget(class QWidget *) + ?setVisible@QColorDialog@@UAEX_N@Z @ 2688 NONAME ; void QColorDialog::setVisible(bool) + ?selectedColumns@QItemSelectionModel@@QBE?AV?$QList@VQModelIndex@@@@H@Z @ 2689 NONAME ; class QList QItemSelectionModel::selectedColumns(int) const + ?mouseMoveEvent@QRadioButton@@MAEXPAVQMouseEvent@@@Z @ 2690 NONAME ; void QRadioButton::mouseMoveEvent(class QMouseEvent *) + ?hasStaticContents@QWindowSurface@@IBE_NXZ @ 2691 NONAME ; bool QWindowSurface::hasStaticContents(void) const + ?sizeHint@QGraphicsView@@UBE?AVQSize@@XZ @ 2692 NONAME ; class QSize QGraphicsView::sizeHint(void) const + ?hiddenSectionCount@QHeaderView@@QBEHXZ @ 2693 NONAME ; int QHeaderView::hiddenSectionCount(void) const + ?getStaticMetaObject@QTabWidget@@SAABUQMetaObject@@XZ @ 2694 NONAME ; struct QMetaObject const & QTabWidget::getStaticMetaObject(void) + ?fade_tooltip@QApplicationPrivate@@2_NA @ 2695 NONAME ; bool QApplicationPrivate::fade_tooltip + ?tr@QStackedLayout@@SA?AVQString@@PBD0H@Z @ 2696 NONAME ; class QString QStackedLayout::tr(char const *, char const *, int) + ?redo@QLineEdit@@QAEXXZ @ 2697 NONAME ; void QLineEdit::redo(void) + ?deviceTransform@QPainter@@QBEABVQTransform@@XZ @ 2698 NONAME ; class QTransform const & QPainter::deviceTransform(void) const + ?checkStateSet@QAbstractButton@@MAEXXZ @ 2699 NONAME ; void QAbstractButton::checkStateSet(void) + ?removeRows@QSortFilterProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 2700 NONAME ; bool QSortFilterProxyModel::removeRows(int, int, class QModelIndex const &) + ??0iterator@QTextBlock@@QAE@XZ @ 2701 NONAME ; QTextBlock::iterator::iterator(void) + ?staticMetaObject@QGraphicsItemAnimation@@2UQMetaObject@@B @ 2702 NONAME ; struct QMetaObject const QGraphicsItemAnimation::staticMetaObject + ?setSourceModel@QAbstractProxyModel@@UAEXPAVQAbstractItemModel@@@Z @ 2703 NONAME ; void QAbstractProxyModel::setSourceModel(class QAbstractItemModel *) + ??0QTextImageFormat@@QAE@XZ @ 2704 NONAME ; QTextImageFormat::QTextImageFormat(void) + ?toHtml@QTextDocumentFragment@@QBE?AVQString@@XZ @ 2705 NONAME ; class QString QTextDocumentFragment::toHtml(void) const + ?removeButton@QMessageBox@@QAEXPAVQAbstractButton@@@Z @ 2706 NONAME ; void QMessageBox::removeButton(class QAbstractButton *) + ?setWhatsThis@QTableWidgetItem@@QAEXABVQString@@@Z @ 2707 NONAME ; void QTableWidgetItem::setWhatsThis(class QString const &) + ?inputMethodQuery@QLineEdit@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 2708 NONAME ; class QVariant QLineEdit::inputMethodQuery(enum Qt::InputMethodQuery) const + ?slopeAtPercent@QPainterPath@@QBEMM@Z @ 2709 NONAME ; float QPainterPath::slopeAtPercent(float) const + ?font@QTableWidgetItem@@QBE?AVQFont@@XZ @ 2710 NONAME ; class QFont QTableWidgetItem::font(void) const + ?staticMetaObject@QInputDialog@@2UQMetaObject@@B @ 2711 NONAME ; struct QMetaObject const QInputDialog::staticMetaObject + ?statusTip@QListWidgetItem@@QBE?AVQString@@XZ @ 2712 NONAME ; class QString QListWidgetItem::statusTip(void) const + ?mouseReleaseEvent@QAbstractScrollArea@@MAEXPAVQMouseEvent@@@Z @ 2713 NONAME ; void QAbstractScrollArea::mouseReleaseEvent(class QMouseEvent *) + ?mapFromParent@QGraphicsItem@@QBE?AVQPointF@@MM@Z @ 2714 NONAME ; class QPointF QGraphicsItem::mapFromParent(float, float) const + ?initStyleOption@QRadioButton@@IBEXPAVQStyleOptionButton@@@Z @ 2715 NONAME ; void QRadioButton::initStyleOption(class QStyleOptionButton *) const + ?fileDialogDelete@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@@Z @ 2716 NONAME ; void QGuiPlatformPlugin::fileDialogDelete(class QFileDialog *) + ?joinForJoinMode@QStroker@@KA?AW4PenJoinStyle@Qt@@W4LineJoinMode@1@@Z @ 2717 NONAME ; enum Qt::PenJoinStyle QStroker::joinForJoinMode(enum QStroker::LineJoinMode) + ?paintEngine@QWidget@@UBEPAVQPaintEngine@@XZ @ 2718 NONAME ; class QPaintEngine * QWidget::paintEngine(void) const + ??9QMatrix@@QBE_NABV0@@Z @ 2719 NONAME ; bool QMatrix::operator!=(class QMatrix const &) const + ?tr@QInputContext@@SA?AVQString@@PBD0@Z @ 2720 NONAME ; class QString QInputContext::tr(char const *, char const *) + ?setFocusPolicy@QGraphicsWidget@@QAEXW4FocusPolicy@Qt@@@Z @ 2721 NONAME ; void QGraphicsWidget::setFocusPolicy(enum Qt::FocusPolicy) + ?qt_metacall@QAbstractScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2722 NONAME ; int QAbstractScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *) + ?type@QGradient@@QBE?AW4Type@1@XZ @ 2723 NONAME ; enum QGradient::Type QGradient::type(void) const + ??0QVector4D@@QAE@MMMM@Z @ 2724 NONAME ; QVector4D::QVector4D(float, float, float, float) + ?setFirstItemColumnSpanned@QTreeWidget@@QAEXPBVQTreeWidgetItem@@_N@Z @ 2725 NONAME ; void QTreeWidget::setFirstItemColumnSpanned(class QTreeWidgetItem const *, bool) + ?group@QGraphicsItem@@QBEPAVQGraphicsItemGroup@@XZ @ 2726 NONAME ; class QGraphicsItemGroup * QGraphicsItem::group(void) const + ?isMovable@QToolBar@@QBE_NXZ @ 2727 NONAME ; bool QToolBar::isMovable(void) const + ?completionModel@QCompleter@@QBEPAVQAbstractItemModel@@XZ @ 2728 NONAME ; class QAbstractItemModel * QCompleter::completionModel(void) const + ??_EQGraphicsSceneMoveEvent@@UAE@I@Z @ 2729 NONAME ; QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent(unsigned int) + ?mapRectFromItem@QGraphicsItem@@QBE?AVQRectF@@PBV1@ABV2@@Z @ 2730 NONAME ; class QRectF QGraphicsItem::mapRectFromItem(class QGraphicsItem const *, class QRectF const &) const + ?setMargin@QLabel@@QAEXH@Z @ 2731 NONAME ; void QLabel::setMargin(int) + ?data_ptr@QPicture@@QAEAAV?$QExplicitlySharedDataPointer@VQPicturePrivate@@@@XZ @ 2732 NONAME ; class QExplicitlySharedDataPointer & QPicture::data_ptr(void) + ?closeAllWindows@QApplication@@SAXXZ @ 2733 NONAME ; void QApplication::closeAllWindows(void) + ?setMimeData@QDrag@@QAEXPAVQMimeData@@@Z @ 2734 NONAME ; void QDrag::setMimeData(class QMimeData *) + ?trUtf8@QGraphicsGrayscaleEffect@@SA?AVQString@@PBD0H@Z @ 2735 NONAME ; class QString QGraphicsGrayscaleEffect::trUtf8(char const *, char const *, int) + ?trUtf8@QStringListModel@@SA?AVQString@@PBD0H@Z @ 2736 NONAME ; class QString QStringListModel::trUtf8(char const *, char const *, int) + ?trUtf8@QEventDispatcherS60@@SA?AVQString@@PBD0@Z @ 2737 NONAME ; class QString QEventDispatcherS60::trUtf8(char const *, char const *) + ??0QMdiSubWindow@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 2738 NONAME ; QMdiSubWindow::QMdiSubWindow(class QWidget *, class QFlags) + ?heightForWidth@QLayoutItem@@UBEHH@Z @ 2739 NONAME ; int QLayoutItem::heightForWidth(int) const + ?backwardHistoryCount@QTextBrowser@@QBEHXZ @ 2740 NONAME ; int QTextBrowser::backwardHistoryCount(void) const + ?dateEditAcceptDelay@QCalendarWidget@@QBEHXZ @ 2741 NONAME ; int QCalendarWidget::dateEditAcceptDelay(void) const + ?staticMetaObject@QTreeView@@2UQMetaObject@@B @ 2742 NONAME ; struct QMetaObject const QTreeView::staticMetaObject + ?mouseReleaseEvent@QHeaderView@@MAEXPAVQMouseEvent@@@Z @ 2743 NONAME ; void QHeaderView::mouseReleaseEvent(class QMouseEvent *) + ?tr@QProgressBar@@SA?AVQString@@PBD0@Z @ 2744 NONAME ; class QString QProgressBar::tr(char const *, char const *) + ?device@QImageReader@@QBEPAVQIODevice@@XZ @ 2745 NONAME ; class QIODevice * QImageReader::device(void) const + ??0QTreeWidgetItem@@QAE@PAV0@H@Z @ 2746 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidgetItem *, int) + ??5@YAAAVQDataStream@@AAV0@AAVQColor@@@Z @ 2747 NONAME ; class QDataStream & operator>>(class QDataStream &, class QColor &) + ?qt_metacall@QStackedLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2748 NONAME ; int QStackedLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?filter@QFileSystemModel@@QBE?AV?$QFlags@W4Filter@QDir@@@@XZ @ 2749 NONAME ; class QFlags QFileSystemModel::filter(void) const + ??_EQCommandLinkButton@@UAE@I@Z @ 2750 NONAME ; QCommandLinkButton::~QCommandLinkButton(unsigned int) + ?d_func@QGraphicsRotation@@ABEPBVQGraphicsRotationPrivate@@XZ @ 2751 NONAME ; class QGraphicsRotationPrivate const * QGraphicsRotation::d_func(void) const + ?d_func@QCheckBox@@AAEPAVQCheckBoxPrivate@@XZ @ 2752 NONAME ; class QCheckBoxPrivate * QCheckBox::d_func(void) + ?d_func@QGridLayout@@AAEPAVQGridLayoutPrivate@@XZ @ 2753 NONAME ; class QGridLayoutPrivate * QGridLayout::d_func(void) + ?aboutQt@QApplication@@SAXXZ @ 2754 NONAME ; void QApplication::aboutQt(void) + ?selectedTableCells@QTextCursor@@QBEXPAH000@Z @ 2755 NONAME ; void QTextCursor::selectedTableCells(int *, int *, int *, int *) const + ?testAndParseUri@Parser@QCss@@QAE_NPAVQString@@@Z @ 2756 NONAME ; bool QCss::Parser::testAndParseUri(class QString *) + ?paintEvent@QListView@@MAEXPAVQPaintEvent@@@Z @ 2757 NONAME ; void QListView::paintEvent(class QPaintEvent *) + ??_EQFileSystemModel@@UAE@I@Z @ 2758 NONAME ; QFileSystemModel::~QFileSystemModel(unsigned int) + ?setGeometry@QWindowSurface@@UAEXABVQRect@@@Z @ 2759 NONAME ; void QWindowSurface::setGeometry(class QRect const &) + ?setFontStyleStrategy@QTextCharFormat@@QAEXW4StyleStrategy@QFont@@@Z @ 2760 NONAME ; void QTextCharFormat::setFontStyleStrategy(enum QFont::StyleStrategy) + ?prefix@QDoubleSpinBox@@QBE?AVQString@@XZ @ 2761 NONAME ; class QString QDoubleSpinBox::prefix(void) const + ?inFont@QFontMetrics@@QBE_NVQChar@@@Z @ 2762 NONAME ; bool QFontMetrics::inFont(class QChar) const + ?addLine@QGraphicsScene@@QAEPAVQGraphicsLineItem@@ABVQLineF@@ABVQPen@@@Z @ 2763 NONAME ; class QGraphicsLineItem * QGraphicsScene::addLine(class QLineF const &, class QPen const &) + ??6@YA?AVQDebug@@V0@ABVQItemSelectionRange@@@Z @ 2764 NONAME ; class QDebug operator<<(class QDebug, class QItemSelectionRange const &) + ?getFont@QFontDialog@@SA?AVQFont@@PA_NABV2@PAVQWidget@@ABVQString@@V?$QFlags@W4FontDialogOption@QFontDialog@@@@@Z @ 2765 NONAME ; class QFont QFontDialog::getFont(bool *, class QFont const &, class QWidget *, class QString const &, class QFlags) + ?windowFlags@QGraphicsWidget@@QBE?AV?$QFlags@W4WindowType@Qt@@@@XZ @ 2766 NONAME ; class QFlags QGraphicsWidget::windowFlags(void) const + ?setTextOutline@QTextCharFormat@@QAEXABVQPen@@@Z @ 2767 NONAME ; void QTextCharFormat::setTextOutline(class QPen const &) + ?setFixedHeight@QWidget@@QAEXH@Z @ 2768 NONAME ; void QWidget::setFixedHeight(int) + ?invalidateCachedClipPath@QGraphicsItemPrivate@@QAEXXZ @ 2769 NONAME ; void QGraphicsItemPrivate::invalidateCachedClipPath(void) + ??6@YA?AVQDebug@@V0@ABVQTransform@@@Z @ 2770 NONAME ; class QDebug operator<<(class QDebug, class QTransform const &) + ??_EQGraphicsEllipseItem@@UAE@I@Z @ 2771 NONAME ; QGraphicsEllipseItem::~QGraphicsEllipseItem(unsigned int) + ?setCancelButtonText@QInputDialog@@QAEXABVQString@@@Z @ 2772 NONAME ; void QInputDialog::setCancelButtonText(class QString const &) + ??0QStyleOptionProgressBarV2@@QAE@ABVQStyleOptionProgressBar@@@Z @ 2773 NONAME ; QStyleOptionProgressBarV2::QStyleOptionProgressBarV2(class QStyleOptionProgressBar const &) + ??_EQTextControl@@UAE@I@Z @ 2774 NONAME ; QTextControl::~QTextControl(unsigned int) + ?setPosition@QTextLayout@@QAEXABVQPointF@@@Z @ 2775 NONAME ; void QTextLayout::setPosition(class QPointF const &) + ?keyBindings@QKeySequence@@SA?AV?$QList@VQKeySequence@@@@W4StandardKey@1@@Z @ 2776 NONAME ; class QList QKeySequence::keyBindings(enum QKeySequence::StandardKey) + ?resetLabelAlignment@QFormLayout@@AAEXXZ @ 2777 NONAME ; void QFormLayout::resetLabelAlignment(void) + ?buttonRole@QMessageBox@@QBE?AW4ButtonRole@1@PAVQAbstractButton@@@Z @ 2778 NONAME ; enum QMessageBox::ButtonRole QMessageBox::buttonRole(class QAbstractButton *) const + ?imageCount@QImageIOHandler@@UBEHXZ @ 2779 NONAME ; int QImageIOHandler::imageCount(void) const + ?event@QAbstractItemView@@MAE_NPAVQEvent@@@Z @ 2780 NONAME ; bool QAbstractItemView::event(class QEvent *) + ?boundingRect@QPainter@@QAE?AVQRectF@@ABV2@HABVQString@@@Z @ 2781 NONAME ; class QRectF QPainter::boundingRect(class QRectF const &, int, class QString const &) + ?stops@QGradient@@QBE?AV?$QVector@U?$QPair@MVQColor@@@@@@XZ @ 2782 NONAME ; class QVector > QGradient::stops(void) const + ?qt_metacast@QHBoxLayout@@UAEPAXPBD@Z @ 2783 NONAME ; void * QHBoxLayout::qt_metacast(char const *) + ?createAction@QWhatsThis@@SAPAVQAction@@PAVQObject@@@Z @ 2784 NONAME ; class QAction * QWhatsThis::createAction(class QObject *) + ?setWhatsThis@QAction@@QAEXABVQString@@@Z @ 2785 NONAME ; void QAction::setWhatsThis(class QString const &) + ?setFrameShadow@QFrame@@QAEXW4Shadow@1@@Z @ 2786 NONAME ; void QFrame::setFrameShadow(enum QFrame::Shadow) + ?priv@QPlainTextDocumentLayout@@ABEPAVQPlainTextDocumentLayoutPrivate@@XZ @ 2787 NONAME ; class QPlainTextDocumentLayoutPrivate * QPlainTextDocumentLayout::priv(void) const + ?d_func@QDesktopWidget@@ABEPBVQDesktopWidgetPrivate@@XZ @ 2788 NONAME ; class QDesktopWidgetPrivate const * QDesktopWidget::d_func(void) const + ??0QHoverEvent@@QAE@W4Type@QEvent@@ABVQPoint@@1@Z @ 2789 NONAME ; QHoverEvent::QHoverEvent(enum QEvent::Type, class QPoint const &, class QPoint const &) + ?sizeHintForRow@QAbstractItemView@@UBEHH@Z @ 2790 NONAME ; int QAbstractItemView::sizeHintForRow(int) const + ?d_func@QGraphicsDropShadowEffect@@ABEPBVQGraphicsDropShadowEffectPrivate@@XZ @ 2791 NONAME ; class QGraphicsDropShadowEffectPrivate const * QGraphicsDropShadowEffect::d_func(void) const + ?alignment@QScrollArea@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 2792 NONAME ; class QFlags QScrollArea::alignment(void) const + ?mkdir@QFileSystemModel@@QAE?AVQModelIndex@@ABV2@ABVQString@@@Z @ 2793 NONAME ; class QModelIndex QFileSystemModel::mkdir(class QModelIndex const &, class QString const &) + ?update@QWidget@@QAEXABVQRegion@@@Z @ 2794 NONAME ; void QWidget::update(class QRegion const &) + ??9QFontMetrics@@QAE_NABV0@@Z @ 2795 NONAME ; bool QFontMetrics::operator!=(class QFontMetrics const &) + ?font@QTextEngine@@QBE?AVQFont@@ABUQScriptItem@@@Z @ 2796 NONAME ; class QFont QTextEngine::font(struct QScriptItem const &) const + ?focusInEvent@QGraphicsTextItem@@MAEXPAVQFocusEvent@@@Z @ 2797 NONAME ; void QGraphicsTextItem::focusInEvent(class QFocusEvent *) + ?transformed@QPixmap@@QBE?AV1@ABVQMatrix@@W4TransformationMode@Qt@@@Z @ 2798 NONAME ; class QPixmap QPixmap::transformed(class QMatrix const &, enum Qt::TransformationMode) const + ?mapRectToItem@QGraphicsItem@@QBE?AVQRectF@@PBV1@ABV2@@Z @ 2799 NONAME ; class QRectF QGraphicsItem::mapRectToItem(class QGraphicsItem const *, class QRectF const &) const + ??4QTextFormatCollection@@QAEAAV0@ABV0@@Z @ 2800 NONAME ; class QTextFormatCollection & QTextFormatCollection::operator=(class QTextFormatCollection const &) + ?setDecMode@QLCDNumber@@QAEXXZ @ 2801 NONAME ; void QLCDNumber::setDecMode(void) + ?setSelected@QTreeWidgetItem@@QAEX_N@Z @ 2802 NONAME ; void QTreeWidgetItem::setSelected(bool) + ??_EQGraphicsGrayscaleEffect@@UAE@I@Z @ 2803 NONAME ; QGraphicsGrayscaleEffect::~QGraphicsGrayscaleEffect(unsigned int) + ?setTransformations@QGraphicsItem@@QAEXABV?$QList@PAVQGraphicsTransform@@@@@Z @ 2804 NONAME ; void QGraphicsItem::setTransformations(class QList const &) + ?associatedWidgets@QAction@@QBE?AV?$QList@PAVQWidget@@@@XZ @ 2805 NONAME ; class QList QAction::associatedWidgets(void) const + ??0QTransform@@QAE@W4Initialization@Qt@@@Z @ 2806 NONAME ; QTransform::QTransform(enum Qt::Initialization) + ?setWordWrap@QTableView@@QAEX_N@Z @ 2807 NONAME ; void QTableView::setWordWrap(bool) + ?intersected@QPolygon@@QBE?AV1@ABV1@@Z @ 2808 NONAME ; class QPolygon QPolygon::intersected(class QPolygon const &) const + ??0QStyleOptionTabV2@@IAE@H@Z @ 2809 NONAME ; QStyleOptionTabV2::QStyleOptionTabV2(int) + ?setOptimizationFlags@QGraphicsView@@QAEXV?$QFlags@W4OptimizationFlag@QGraphicsView@@@@@Z @ 2810 NONAME ; void QGraphicsView::setOptimizationFlags(class QFlags) + ?contextMenuEvent@QMainWindow@@MAEXPAVQContextMenuEvent@@@Z @ 2811 NONAME ; void QMainWindow::contextMenuEvent(class QContextMenuEvent *) + ?m22@QTransform@@QBEMXZ @ 2812 NONAME ; float QTransform::m22(void) const + ?cursor@QLineControl@@QBEHXZ @ 2813 NONAME ; int QLineControl::cursor(void) const + ?flags@QTextOption@@QBE?AV?$QFlags@W4Flag@QTextOption@@@@XZ @ 2814 NONAME ; class QFlags QTextOption::flags(void) const + ?edit@QAbstractItemView@@MAE_NABVQModelIndex@@W4EditTrigger@1@PAVQEvent@@@Z @ 2815 NONAME ; bool QAbstractItemView::edit(class QModelIndex const &, enum QAbstractItemView::EditTrigger, class QEvent *) + ?setDashPattern@QPainterPathStroker@@QAEXABV?$QVector@M@@@Z @ 2816 NONAME ; void QPainterPathStroker::setDashPattern(class QVector const &) + ?intersected@QPainterPath@@QBE?AV1@ABV1@@Z @ 2817 NONAME ; class QPainterPath QPainterPath::intersected(class QPainterPath const &) const + ?isClean@QUndoStack@@QBE_NXZ @ 2818 NONAME ; bool QUndoStack::isClean(void) const + ??_EQKeyEventTransition@@UAE@I@Z @ 2819 NONAME ; QKeyEventTransition::~QKeyEventTransition(unsigned int) + ?wizard@QWizardPage@@IBEPAVQWizard@@XZ @ 2820 NONAME ; class QWizard * QWizardPage::wizard(void) const + ?setLayoutDirection@QTextFormat@@QAEXW4LayoutDirection@Qt@@@Z @ 2821 NONAME ; void QTextFormat::setLayoutDirection(enum Qt::LayoutDirection) + ?createStandardContextMenu@QLineEdit@@QAEPAVQMenu@@XZ @ 2822 NONAME ; class QMenu * QLineEdit::createStandardContextMenu(void) + ?trUtf8@QLayout@@SA?AVQString@@PBD0H@Z @ 2823 NONAME ; class QString QLayout::trUtf8(char const *, char const *, int) + ?toPolygon@QBezier@@QBE?AVQPolygonF@@XZ @ 2824 NONAME ; class QPolygonF QBezier::toPolygon(void) const + ?clearMessage@QSplashScreen@@QAEXXZ @ 2825 NONAME ; void QSplashScreen::clearMessage(void) + ?closePersistentEditor@QAbstractItemView@@QAEXABVQModelIndex@@@Z @ 2826 NONAME ; void QAbstractItemView::closePersistentEditor(class QModelIndex const &) + ?useDesignMetrics@QTextDocument@@QBE_NXZ @ 2827 NONAME ; bool QTextDocument::useDesignMetrics(void) const + ?type@QGraphicsItemGroup@@UBEHXZ @ 2828 NONAME ; int QGraphicsItemGroup::type(void) const + ?trUtf8@QGraphicsOpacityEffect@@SA?AVQString@@PBD0H@Z @ 2829 NONAME ; class QString QGraphicsOpacityEffect::trUtf8(char const *, char const *, int) + ??0QBrush@@QAE@ABVQPixmap@@@Z @ 2830 NONAME ; QBrush::QBrush(class QPixmap const &) + ?tr@QPlainTextDocumentLayout@@SA?AVQString@@PBD0H@Z @ 2831 NONAME ; class QString QPlainTextDocumentLayout::tr(char const *, char const *, int) + ?tileSubWindows@QMdiArea@@QAEXXZ @ 2832 NONAME ; void QMdiArea::tileSubWindows(void) + ?d_func@QMessageBox@@ABEPBVQMessageBoxPrivate@@XZ @ 2833 NONAME ; class QMessageBoxPrivate const * QMessageBox::d_func(void) const + ?focalPoint@QRadialGradient@@QBE?AVQPointF@@XZ @ 2834 NONAME ; class QPointF QRadialGradient::focalPoint(void) const + ?selectedItems@QListWidget@@QBE?AV?$QList@PAVQListWidgetItem@@@@XZ @ 2835 NONAME ; class QList QListWidget::selectedItems(void) const + ?bidiReorder@QTextEngine@@SAXHPBEPAH@Z @ 2836 NONAME ; void QTextEngine::bidiReorder(int, unsigned char const *, int *) + ?sizeFromContents@QCommonStyle@@UBE?AVQSize@@W4ContentsType@QStyle@@PBVQStyleOption@@ABV2@PBVQWidget@@@Z @ 2837 NONAME ; class QSize QCommonStyle::sizeFromContents(enum QStyle::ContentsType, class QStyleOption const *, class QSize const &, class QWidget const *) const + ?isBackwardAvailable@QTextBrowser@@QBE_NXZ @ 2838 NONAME ; bool QTextBrowser::isBackwardAvailable(void) const + ??1QTextCursor@@QAE@XZ @ 2839 NONAME ; QTextCursor::~QTextCursor(void) + ?setItem@QTableWidget@@QAEXHHPAVQTableWidgetItem@@@Z @ 2840 NONAME ; void QTableWidget::setItem(int, int, class QTableWidgetItem *) + ??0QSpacerItem@@QAE@HHW4Policy@QSizePolicy@@0@Z @ 2841 NONAME ; QSpacerItem::QSpacerItem(int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ?keyReleaseEvent@QGraphicsProxyWidget@@MAEXPAVQKeyEvent@@@Z @ 2842 NONAME ; void QGraphicsProxyWidget::keyReleaseEvent(class QKeyEvent *) + ?mapFromScene@QGraphicsItem@@QBE?AVQPointF@@MM@Z @ 2843 NONAME ; class QPointF QGraphicsItem::mapFromScene(float, float) const + ?setRowCount@QStandardItemModel@@QAEXH@Z @ 2844 NONAME ; void QStandardItemModel::setRowCount(int) + ?lastPosition@QTextTableCell@@QBEHXZ @ 2845 NONAME ; int QTextTableCell::lastPosition(void) const + ?getStaticMetaObject@QDesktopWidget@@SAABUQMetaObject@@XZ @ 2846 NONAME ; struct QMetaObject const & QDesktopWidget::getStaticMetaObject(void) + ?preeditAreaText@QTextLayout@@QBE?AVQString@@XZ @ 2847 NONAME ; class QString QTextLayout::preeditAreaText(void) const + ??1QAbstractItemView@@UAE@XZ @ 2848 NONAME ; QAbstractItemView::~QAbstractItemView(void) + ?parentWidget@QShortcut@@QBEPAVQWidget@@XZ @ 2849 NONAME ; class QWidget * QShortcut::parentWidget(void) const + ?smallCapsFont@QFontPrivate@@QBE?AVQFont@@XZ @ 2850 NONAME ; class QFont QFontPrivate::smallCapsFont(void) const + ?qt_metacast@QScrollBar@@UAEPAXPBD@Z @ 2851 NONAME ; void * QScrollBar::qt_metacast(char const *) + ?removeFromIndex@QGraphicsItem@@IAEXXZ @ 2852 NONAME ; void QGraphicsItem::removeFromIndex(void) + ?drawRects@QPainter@@QAEXPBVQRectF@@H@Z @ 2853 NONAME ; void QPainter::drawRects(class QRectF const *, int) + ?setResolveSymlinks@QFileSystemModel@@QAEX_N@Z @ 2854 NONAME ; void QFileSystemModel::setResolveSymlinks(bool) + ??5@YAAAVQDataStream@@AAV0@AAVQTreeWidgetItem@@@Z @ 2855 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTreeWidgetItem &) + ?qt_metacast@QToolBar@@UAEPAXPBD@Z @ 2856 NONAME ; void * QToolBar::qt_metacast(char const *) + ?setFileMode@QFileDialog@@QAEXW4FileMode@1@@Z @ 2857 NONAME ; void QFileDialog::setFileMode(enum QFileDialog::FileMode) + ?executePixmapDestructionHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 2858 NONAME ; void QImagePixmapCleanupHooks::executePixmapDestructionHooks(class QPixmap *) + ?blockBoundingGeometry@QPlainTextEdit@@IBE?AVQRectF@@ABVQTextBlock@@@Z @ 2859 NONAME ; class QRectF QPlainTextEdit::blockBoundingGeometry(class QTextBlock const &) const + ??0QColor@@QAE@ABVQString@@@Z @ 2860 NONAME ; QColor::QColor(class QString const &) + ?focusNextPrevChild_helper@QApplicationPrivate@@SAPAVQWidget@@PAV2@_N@Z @ 2861 NONAME ; class QWidget * QApplicationPrivate::focusNextPrevChild_helper(class QWidget *, bool) + ?selectionChanged@QLineControl@@IAEXXZ @ 2862 NONAME ; void QLineControl::selectionChanged(void) + ?metaObject@QTextDocument@@UBEPBUQMetaObject@@XZ @ 2863 NONAME ; struct QMetaObject const * QTextDocument::metaObject(void) const + ?finished@QDialog@@IAEXH@Z @ 2864 NONAME ; void QDialog::finished(int) + ?styleSheet@QWidget@@QBE?AVQString@@XZ @ 2865 NONAME ; class QString QWidget::styleSheet(void) const + ?trUtf8@QGraphicsOpacityEffect@@SA?AVQString@@PBD0@Z @ 2866 NONAME ; class QString QGraphicsOpacityEffect::trUtf8(char const *, char const *) + ??0QStyleOptionTabBarBase@@QAE@ABV0@@Z @ 2867 NONAME ; QStyleOptionTabBarBase::QStyleOptionTabBarBase(class QStyleOptionTabBarBase const &) + ?isModified@QTextDocument@@QBE_NXZ @ 2868 NONAME ; bool QTextDocument::isModified(void) const + ?setDocumentMode@QMainWindow@@QAEX_N@Z @ 2869 NONAME ; void QMainWindow::setDocumentMode(bool) + ?itemChanged@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 2870 NONAME ; void QTableWidget::itemChanged(class QTableWidgetItem *) + ?tr@QTextFrame@@SA?AVQString@@PBD0@Z @ 2871 NONAME ; class QString QTextFrame::tr(char const *, char const *) + ?topMargin@QTextFrameFormat@@QBEMXZ @ 2872 NONAME ; float QTextFrameFormat::topMargin(void) const + ?qt_qsliderStyleOption@@YA?AVQStyleOptionSlider@@PAVQSlider@@@Z @ 2873 NONAME ; class QStyleOptionSlider qt_qsliderStyleOption(class QSlider *) + ?isClipEnabled@QPaintEngineState@@QBE_NXZ @ 2874 NONAME ; bool QPaintEngineState::isClipEnabled(void) const + ?setBackground@QTextFormat@@QAEXABVQBrush@@@Z @ 2875 NONAME ; void QTextFormat::setBackground(class QBrush const &) + ?weekdayTextFormat@QCalendarWidget@@QBE?AVQTextCharFormat@@W4DayOfWeek@Qt@@@Z @ 2876 NONAME ; class QTextCharFormat QCalendarWidget::weekdayTextFormat(enum Qt::DayOfWeek) const + ?setRedirected@QPainter@@SAXPBVQPaintDevice@@PAV2@ABVQPoint@@@Z @ 2877 NONAME ; void QPainter::setRedirected(class QPaintDevice const *, class QPaintDevice *, class QPoint const &) + ?setUpLayout@QTabWidget@@AAEX_N@Z @ 2878 NONAME ; void QTabWidget::setUpLayout(bool) + ?setReadOnly@QDirModel@@QAEX_N@Z @ 2879 NONAME ; void QDirModel::setReadOnly(bool) + ?qt_metacast@QPaintBufferResource@@UAEPAXPBD@Z @ 2880 NONAME ; void * QPaintBufferResource::qt_metacast(char const *) + ?getContentsMargins@QWidget@@QBEXPAH000@Z @ 2881 NONAME ; void QWidget::getContentsMargins(int *, int *, int *, int *) const + ?size@QFontMetrics@@QBE?AVQSize@@HABVQString@@HPAH@Z @ 2882 NONAME ; class QSize QFontMetrics::size(int, class QString const &, int, int *) const + ?selectedNameFilter@QFileDialog@@QBE?AVQString@@XZ @ 2883 NONAME ; class QString QFileDialog::selectedNameFilter(void) const + ?mousePressEvent@QTabBar@@MAEXPAVQMouseEvent@@@Z @ 2884 NONAME ; void QTabBar::mousePressEvent(class QMouseEvent *) + ?grabMouse@QWidget@@QAEXABVQCursor@@@Z @ 2885 NONAME ; void QWidget::grabMouse(class QCursor const &) + ?getStaticMetaObject@QMessageBox@@SAABUQMetaObject@@XZ @ 2886 NONAME ; struct QMetaObject const & QMessageBox::getStaticMetaObject(void) + ?reparentFocusWidgets@QWidgetPrivate@@QAEXPAVQWidget@@@Z @ 2887 NONAME ; void QWidgetPrivate::reparentFocusWidgets(class QWidget *) + ?mimeData@QFileSystemModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 2888 NONAME ; class QMimeData * QFileSystemModel::mimeData(class QList const &) const + ?mapToParent@QGraphicsItem@@QBE?AVQPointF@@MM@Z @ 2889 NONAME ; class QPointF QGraphicsItem::mapToParent(float, float) const + ?internalWinId@QWidget@@QBEPAVCCoeControl@@XZ @ 2890 NONAME ; class CCoeControl * QWidget::internalWinId(void) const + ?intersected@QPolygonF@@QBE?AV1@ABV1@@Z @ 2891 NONAME ; class QPolygonF QPolygonF::intersected(class QPolygonF const &) const + ??0QTextCursor@@QAE@PAVQTextDocument@@@Z @ 2892 NONAME ; QTextCursor::QTextCursor(class QTextDocument *) + ?count@QFormLayout@@UBEHXZ @ 2893 NONAME ; int QFormLayout::count(void) const + ?columnPreferredWidth@QGraphicsGridLayout@@QBEMH@Z @ 2894 NONAME ; float QGraphicsGridLayout::columnPreferredWidth(int) const + ?globalX@QHelpEvent@@QBEHXZ @ 2895 NONAME ; int QHelpEvent::globalX(void) const + ??_EQMoveEvent@@UAE@I@Z @ 2896 NONAME ; QMoveEvent::~QMoveEvent(unsigned int) + ?wordWrapMode@QPlainTextEdit@@QBE?AW4WrapMode@QTextOption@@XZ @ 2897 NONAME ; enum QTextOption::WrapMode QPlainTextEdit::wordWrapMode(void) const + ?setPos@QGraphicsItem@@QAEXMM@Z @ 2898 NONAME ; void QGraphicsItem::setPos(float, float) + ?subtractedInverted@QPainterPath@@QBE?AV1@ABV1@@Z @ 2899 NONAME ; class QPainterPath QPainterPath::subtractedInverted(class QPainterPath const &) const + ?metaObject@QTextControl@@UBEPBUQMetaObject@@XZ @ 2900 NONAME ; struct QMetaObject const * QTextControl::metaObject(void) const + ?isTearOffEnabled@QMenu@@QBE_NXZ @ 2901 NONAME ; bool QMenu::isTearOffEnabled(void) const + ?d_func@QPixmapFilter@@ABEPBVQPixmapFilterPrivate@@XZ @ 2902 NONAME ; class QPixmapFilterPrivate const * QPixmapFilter::d_func(void) const + ?changeEvent@QAbstractSlider@@MAEXPAVQEvent@@@Z @ 2903 NONAME ; void QAbstractSlider::changeEvent(class QEvent *) + ?paintEngine@QPainter@@QBEPAVQPaintEngine@@XZ @ 2904 NONAME ; class QPaintEngine * QPainter::paintEngine(void) const + ?addRoundRect@QPainterPath@@QAEXABVQRectF@@HH@Z @ 2905 NONAME ; void QPainterPath::addRoundRect(class QRectF const &, int, int) + ?descent@QTextInlineObject@@QBEMXZ @ 2906 NONAME ; float QTextInlineObject::descent(void) const + ?setClipping@QPainter@@QAEX_N@Z @ 2907 NONAME ; void QPainter::setClipping(bool) + ?setShortcut@QAbstractButton@@QAEXABVQKeySequence@@@Z @ 2908 NONAME ; void QAbstractButton::setShortcut(class QKeySequence const &) + ?redo@QTextEdit@@QAEXXZ @ 2909 NONAME ; void QTextEdit::redo(void) + ?d_func@QAbstractButton@@ABEPBVQAbstractButtonPrivate@@XZ @ 2910 NONAME ; class QAbstractButtonPrivate const * QAbstractButton::d_func(void) const + ?staticMetaObject@QAction@@2UQMetaObject@@B @ 2911 NONAME ; struct QMetaObject const QAction::staticMetaObject + ?qt_metacast@QFormLayout@@UAEPAXPBD@Z @ 2912 NONAME ; void * QFormLayout::qt_metacast(char const *) + ??1QTimeEdit@@UAE@XZ @ 2913 NONAME ; QTimeEdit::~QTimeEdit(void) + ?paletteChange@QWidget@@MAEXABVQPalette@@@Z @ 2914 NONAME ; void QWidget::paletteChange(class QPalette const &) + ?getStaticMetaObject@QStylePlugin@@SAABUQMetaObject@@XZ @ 2915 NONAME ; struct QMetaObject const & QStylePlugin::getStaticMetaObject(void) + ?takeVerticalHeaderItem@QTableWidget@@QAEPAVQTableWidgetItem@@H@Z @ 2916 NONAME ; class QTableWidgetItem * QTableWidget::takeVerticalHeaderItem(int) + ?quality@QImageReader@@QBEHXZ @ 2917 NONAME ; int QImageReader::quality(void) const + ?qt_metacall@QSortFilterProxyModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2918 NONAME ; int QSortFilterProxyModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?focusInEvent@QMdiSubWindow@@MAEXPAVQFocusEvent@@@Z @ 2919 NONAME ; void QMdiSubWindow::focusInEvent(class QFocusEvent *) + ?underlineColor@QTextCharFormat@@QBE?AVQColor@@XZ @ 2920 NONAME ; class QColor QTextCharFormat::underlineColor(void) const + ?contains@QRegion@@QBE_NABVQPoint@@@Z @ 2921 NONAME ; bool QRegion::contains(class QPoint const &) const + ?setItem@QFormLayout@@QAEXHW4ItemRole@1@PAVQLayoutItem@@@Z @ 2922 NONAME ; void QFormLayout::setItem(int, enum QFormLayout::ItemRole, class QLayoutItem *) + ?setModel@QDataWidgetMapper@@QAEXPAVQAbstractItemModel@@@Z @ 2923 NONAME ; void QDataWidgetMapper::setModel(class QAbstractItemModel *) + ?setColumnPreferredWidth@QGraphicsGridLayout@@QAEXHM@Z @ 2924 NONAME ; void QGraphicsGridLayout::setColumnPreferredWidth(int, float) + ?grabKeyboard@QGraphicsItem@@QAEXXZ @ 2925 NONAME ; void QGraphicsItem::grabKeyboard(void) + ?ensureSceneTransformRecursive@QGraphicsItemPrivate@@QAEXPAPAVQGraphicsItem@@@Z @ 2926 NONAME ; void QGraphicsItemPrivate::ensureSceneTransformRecursive(class QGraphicsItem * *) + ?shortcut@QAction@@QBE?AVQKeySequence@@XZ @ 2927 NONAME ; class QKeySequence QAction::shortcut(void) const + ?toSubpathPolygons@QPainterPath@@QBE?AV?$QList@VQPolygonF@@@@ABVQTransform@@@Z @ 2928 NONAME ; class QList QPainterPath::toSubpathPolygons(class QTransform const &) const + ?rows@QPixmapConvolutionFilter@@ABEHXZ @ 2929 NONAME ; int QPixmapConvolutionFilter::rows(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQVector2D@@@Z @ 2930 NONAME ; class QDataStream & operator>>(class QDataStream &, class QVector2D &) + ?setX@QQuaternion@@QAEXM@Z @ 2931 NONAME ; void QQuaternion::setX(float) + ?drawTextItem@QPainter@@QAEXHHABVQTextItem@@@Z @ 2932 NONAME ; void QPainter::drawTextItem(int, int, class QTextItem const &) + ?scenePos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 2933 NONAME ; class QPointF QTouchEvent::TouchPoint::scenePos(void) const + ?tr@QErrorMessage@@SA?AVQString@@PBD0H@Z @ 2934 NONAME ; class QString QErrorMessage::tr(char const *, char const *, int) + ?drawEllipse@QPaintEngine@@UAEXABVQRect@@@Z @ 2935 NONAME ; void QPaintEngine::drawEllipse(class QRect const &) + ?determinant@QTransform@@QBEMXZ @ 2936 NONAME ; float QTransform::determinant(void) const + ?commitData@QAbstractItemView@@MAEXPAVQWidget@@@Z @ 2937 NONAME ; void QAbstractItemView::commitData(class QWidget *) + ?setHeaderItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@@Z @ 2938 NONAME ; void QTreeWidget::setHeaderItem(class QTreeWidgetItem *) + ??_EQGesture@@UAE@I@Z @ 2939 NONAME ; QGesture::~QGesture(unsigned int) + ?scroll@QPixmap@@QAEXHHHHHHPAVQRegion@@@Z @ 2940 NONAME ; void QPixmap::scroll(int, int, int, int, int, int, class QRegion *) + ?parseHexColor@Parser@QCss@@QAE_NPAVQColor@@@Z @ 2941 NONAME ; bool QCss::Parser::parseHexColor(class QColor *) + ??1QTextDocumentFragment@@QAE@XZ @ 2942 NONAME ; QTextDocumentFragment::~QTextDocumentFragment(void) + ?setInsertPolicy@QComboBox@@QAEXW4InsertPolicy@1@@Z @ 2943 NONAME ; void QComboBox::setInsertPolicy(enum QComboBox::InsertPolicy) + ?setHorizontalSpacing@QGridLayout@@QAEXH@Z @ 2944 NONAME ; void QGridLayout::setHorizontalSpacing(int) + ?setPixelSize@QGraphicsPixelizeEffect@@QAEXH@Z @ 2945 NONAME ; void QGraphicsPixelizeEffect::setPixelSize(int) + ?tr@QImageIOPlugin@@SA?AVQString@@PBD0@Z @ 2946 NONAME ; class QString QImageIOPlugin::tr(char const *, char const *) + ?setStyle@QApplication@@SAPAVQStyle@@ABVQString@@@Z @ 2947 NONAME ; class QStyle * QApplication::setStyle(class QString const &) + ??0QDrag@@QAE@PAVQWidget@@@Z @ 2948 NONAME ; QDrag::QDrag(class QWidget *) + ?undoText@QUndoStack@@QBE?AVQString@@XZ @ 2949 NONAME ; class QString QUndoStack::undoText(void) const + ?paintEvent@QScrollBar@@MAEXPAVQPaintEvent@@@Z @ 2950 NONAME ; void QScrollBar::paintEvent(class QPaintEvent *) + ?initStyleOption@QLineEdit@@IBEXPAVQStyleOptionFrame@@@Z @ 2951 NONAME ; void QLineEdit::initStyleOption(class QStyleOptionFrame *) const + ?setIconSize@QToolBar@@QAEXABVQSize@@@Z @ 2952 NONAME ; void QToolBar::setIconSize(class QSize const &) + ?isEnabled@QShortcut@@QBE_NXZ @ 2953 NONAME ; bool QShortcut::isEnabled(void) const + ?setSelectionArea@QGraphicsScene@@QAEXABVQPainterPath@@ABVQTransform@@@Z @ 2954 NONAME ; void QGraphicsScene::setSelectionArea(class QPainterPath const &, class QTransform const &) + ?metaObject@QDirModel@@UBEPBUQMetaObject@@XZ @ 2955 NONAME ; struct QMetaObject const * QDirModel::metaObject(void) const + ?elideMode@QTabWidget@@QBE?AW4TextElideMode@Qt@@XZ @ 2956 NONAME ; enum Qt::TextElideMode QTabWidget::elideMode(void) const + ?d_func@QPushButton@@ABEPBVQPushButtonPrivate@@XZ @ 2957 NONAME ; class QPushButtonPrivate const * QPushButton::d_func(void) const + ?minRightBearing@QFontEngine@@UBEMXZ @ 2958 NONAME ; float QFontEngine::minRightBearing(void) const + ?isAmbiguous@QShortcutEvent@@QBE_NXZ @ 2959 NONAME ; bool QShortcutEvent::isAmbiguous(void) const + ?getStaticMetaObject@QAbstractSpinBox@@SAABUQMetaObject@@XZ @ 2960 NONAME ; struct QMetaObject const & QAbstractSpinBox::getStaticMetaObject(void) + ?testPrio@Parser@QCss@@QAE_NXZ @ 2961 NONAME ; bool QCss::Parser::testPrio(void) + ?getStaticMetaObject@QWizard@@SAABUQMetaObject@@XZ @ 2962 NONAME ; struct QMetaObject const & QWizard::getStaticMetaObject(void) + ?exec@QApplication@@SAHXZ @ 2963 NONAME ; int QApplication::exec(void) + ?windowList@QWorkspace@@QBE?AV?$QList@PAVQWidget@@@@W4WindowOrder@1@@Z @ 2964 NONAME ; class QList QWorkspace::windowList(enum QWorkspace::WindowOrder) const + ?setIntMinimum@QInputDialog@@QAEXH@Z @ 2965 NONAME ; void QInputDialog::setIntMinimum(int) + ?trUtf8@QWindowsStyle@@SA?AVQString@@PBD0H@Z @ 2966 NONAME ; class QString QWindowsStyle::trUtf8(char const *, char const *, int) + ?displayTextChanged@QLineControl@@IAEXABVQString@@@Z @ 2967 NONAME ; void QLineControl::displayTextChanged(class QString const &) + ?strikeOutPos@QFontMetrics@@QBEHXZ @ 2968 NONAME ; int QFontMetrics::strikeOutPos(void) const + ?sectionSize@QHeaderView@@QBEHH@Z @ 2969 NONAME ; int QHeaderView::sectionSize(int) const + ?d_func@QSound@@ABEPBVQSoundPrivate@@XZ @ 2970 NONAME ; class QSoundPrivate const * QSound::d_func(void) const + ?cellRect@QGridLayout@@QBE?AVQRect@@HH@Z @ 2971 NONAME ; class QRect QGridLayout::cellRect(int, int) const + ?sectionSizeHint@QHeaderView@@QBEHH@Z @ 2972 NONAME ; int QHeaderView::sectionSizeHint(int) const + ?internalDrag@QListView@@IAEXV?$QFlags@W4DropAction@Qt@@@@@Z @ 2973 NONAME ; void QListView::internalDrag(class QFlags) + ??8QPalette@@QBE_NABV0@@Z @ 2974 NONAME ; bool QPalette::operator==(class QPalette const &) const + ?initStyleOption@QAbstractSpinBox@@IBEXPAVQStyleOptionSpinBox@@@Z @ 2975 NONAME ; void QAbstractSpinBox::initStyleOption(class QStyleOptionSpinBox *) const + ?nameFilterDisables@QFileSystemModel@@QBE_NXZ @ 2976 NONAME ; bool QFileSystemModel::nameFilterDisables(void) const + ?onTransition@QKeyEventTransition@@MAEXPAVQEvent@@@Z @ 2977 NONAME ; void QKeyEventTransition::onTransition(class QEvent *) + ?size@QImageReader@@QBE?AVQSize@@XZ @ 2978 NONAME ; class QSize QImageReader::size(void) const + ?unite@QRegion@@QBE?AV1@ABVQRect@@@Z @ 2979 NONAME ; class QRegion QRegion::unite(class QRect const &) const + ?strength@QGraphicsBloomEffect@@QBEMXZ @ 2980 NONAME ; float QGraphicsBloomEffect::strength(void) const + ?registerEditor@QItemEditorFactory@@QAEXW4Type@QVariant@@PAVQItemEditorCreatorBase@@@Z @ 2981 NONAME ; void QItemEditorFactory::registerEditor(enum QVariant::Type, class QItemEditorCreatorBase *) + ?count@QListWidget@@QBEHXZ @ 2982 NONAME ; int QListWidget::count(void) const + ?loadFromData@QPixmap@@QAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 2983 NONAME ; bool QPixmap::loadFromData(unsigned char const *, unsigned int, char const *, class QFlags) + ?updateEditorGeometry@QAbstractItemDelegate@@UBEXPAVQWidget@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 2984 NONAME ; void QAbstractItemDelegate::updateEditorGeometry(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?d_func@QFileDialog@@ABEPBVQFileDialogPrivate@@XZ @ 2985 NONAME ; class QFileDialogPrivate const * QFileDialog::d_func(void) const + ??_EQDateEdit@@UAE@I@Z @ 2986 NONAME ; QDateEdit::~QDateEdit(unsigned int) + ?mapToScene@QGraphicsView@@QBE?AVQPolygonF@@HHHH@Z @ 2987 NONAME ; class QPolygonF QGraphicsView::mapToScene(int, int, int, int) const + ?cleanupPage@QWizardPage@@UAEXXZ @ 2988 NONAME ; void QWizardPage::cleanupPage(void) + ?fitInView@QGraphicsView@@QAEXPBVQGraphicsItem@@W4AspectRatioMode@Qt@@@Z @ 2989 NONAME ; void QGraphicsView::fitInView(class QGraphicsItem const *, enum Qt::AspectRatioMode) + ?setOpenExternalLinks@QTextControl@@QAEX_N@Z @ 2990 NONAME ; void QTextControl::setOpenExternalLinks(bool) + ?endLayout@QTextLayout@@QAEXXZ @ 2991 NONAME ; void QTextLayout::endLayout(void) + ?toVector3D@QVector4D@@QBE?AVQVector3D@@XZ @ 2992 NONAME ; class QVector3D QVector4D::toVector3D(void) const + ?setY@QVector2D@@QAEXM@Z @ 2993 NONAME ; void QVector2D::setY(float) + ?itemEntered@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 2994 NONAME ; void QTreeWidget::itemEntered(class QTreeWidgetItem *, int) + ?getStaticMetaObject@QGraphicsRotation@@SAABUQMetaObject@@XZ @ 2995 NONAME ; struct QMetaObject const & QGraphicsRotation::getStaticMetaObject(void) + ?d_func@QMenu@@AAEPAVQMenuPrivate@@XZ @ 2996 NONAME ; class QMenuPrivate * QMenu::d_func(void) + ?windowStateChanged@QMdiSubWindow@@IAEXV?$QFlags@W4WindowState@Qt@@@@0@Z @ 2997 NONAME ; void QMdiSubWindow::windowStateChanged(class QFlags, class QFlags) + ?tr@QCalendarWidget@@SA?AVQString@@PBD0@Z @ 2998 NONAME ; class QString QCalendarWidget::tr(char const *, char const *) + ?devType@QPicture@@UBEHXZ @ 2999 NONAME ; int QPicture::devType(void) const + ?setVisible@QWizard@@UAEX_N@Z @ 3000 NONAME ; void QWizard::setVisible(bool) + ?setPressure@TouchPoint@QTouchEvent@@QAEXM@Z @ 3001 NONAME ; void QTouchEvent::TouchPoint::setPressure(float) + ?dropEvent@QListWidget@@UAEXPAVQDropEvent@@@Z @ 3002 NONAME ; void QListWidget::dropEvent(class QDropEvent *) + ?verticalHeader@QTableView@@QBEPAVQHeaderView@@XZ @ 3003 NONAME ; class QHeaderView * QTableView::verticalHeader(void) const + ?keyPressEvent@QCalendarWidget@@MAEXPAVQKeyEvent@@@Z @ 3004 NONAME ; void QCalendarWidget::keyPressEvent(class QKeyEvent *) + ??0QTimeEdit@@QAE@ABVQTime@@PAVQWidget@@@Z @ 3005 NONAME ; QTimeEdit::QTimeEdit(class QTime const &, class QWidget *) + ??1QBoxLayout@@UAE@XZ @ 3006 NONAME ; QBoxLayout::~QBoxLayout(void) + ?fileSelected@QFileDialog@@IAEXABVQString@@@Z @ 3007 NONAME ; void QFileDialog::fileSelected(class QString const &) + ?setItem@QGraphicsItemAnimation@@QAEXPAVQGraphicsItem@@@Z @ 3008 NONAME ; void QGraphicsItemAnimation::setItem(class QGraphicsItem *) + ?polish@QProxyStyle@@UAEXPAVQApplication@@@Z @ 3009 NONAME ; void QProxyStyle::polish(class QApplication *) + ?trUtf8@QStyledItemDelegate@@SA?AVQString@@PBD0@Z @ 3010 NONAME ; class QString QStyledItemDelegate::trUtf8(char const *, char const *) + ?setRawMode@QFont@@QAEX_N@Z @ 3011 NONAME ; void QFont::setRawMode(bool) + ?d_func@QGraphicsLayoutItem@@AAEPAVQGraphicsLayoutItemPrivate@@XZ @ 3012 NONAME ; class QGraphicsLayoutItemPrivate * QGraphicsLayoutItem::d_func(void) + ?information@QMessageBox@@SAHPAVQWidget@@ABVQString@@1HHH@Z @ 3013 NONAME ; int QMessageBox::information(class QWidget *, class QString const &, class QString const &, int, int, int) + ?shear@QPainter@@QAEXMM@Z @ 3014 NONAME ; void QPainter::shear(float, float) + ?tr@QRegExpValidator@@SA?AVQString@@PBD0H@Z @ 3015 NONAME ; class QString QRegExpValidator::tr(char const *, char const *, int) + ?setActive@QPaintEngine@@QAEX_N@Z @ 3016 NONAME ; void QPaintEngine::setActive(bool) + ?trUtf8@QStandardItemModel@@SA?AVQString@@PBD0@Z @ 3017 NONAME ; class QString QStandardItemModel::trUtf8(char const *, char const *) + ?customCount@QColorDialog@@SAHXZ @ 3018 NONAME ; int QColorDialog::customCount(void) + ?tr@QTextFrame@@SA?AVQString@@PBD0H@Z @ 3019 NONAME ; class QString QTextFrame::tr(char const *, char const *, int) + ?setIcon@QTreeWidgetItem@@QAEXHABVQIcon@@@Z @ 3020 NONAME ; void QTreeWidgetItem::setIcon(int, class QIcon const &) + ?addButton@QMessageBox@@QAEXPAVQAbstractButton@@W4ButtonRole@1@@Z @ 3021 NONAME ; void QMessageBox::addButton(class QAbstractButton *, enum QMessageBox::ButtonRole) + ?scaledToHeight@QPixmap@@QBE?AV1@HW4TransformationMode@Qt@@@Z @ 3022 NONAME ; class QPixmap QPixmap::scaledToHeight(int, enum Qt::TransformationMode) const + ?columnCount@QFileSystemModel@@UBEHABVQModelIndex@@@Z @ 3023 NONAME ; int QFileSystemModel::columnCount(class QModelIndex const &) const + ?state@TouchPoint@QTouchEvent@@QBE?AW4TouchPointState@Qt@@XZ @ 3024 NONAME ; enum Qt::TouchPointState QTouchEvent::TouchPoint::state(void) const + ?joinModeForJoin@QStroker@@KA?AW4LineJoinMode@1@W4PenJoinStyle@Qt@@@Z @ 3025 NONAME ; enum QStroker::LineJoinMode QStroker::joinModeForJoin(enum Qt::PenJoinStyle) + ?fileSystemIcon@QGuiPlatformPlugin@@UAE?AVQIcon@@ABVQFileInfo@@@Z @ 3026 NONAME ; class QIcon QGuiPlatformPlugin::fileSystemIcon(class QFileInfo const &) + ?mapToParent@QGraphicsItem@@QBE?AVQPolygonF@@ABV2@@Z @ 3027 NONAME ; class QPolygonF QGraphicsItem::mapToParent(class QPolygonF const &) const + ?setKeyboardPageStep@QMdiSubWindow@@QAEXH@Z @ 3028 NONAME ; void QMdiSubWindow::setKeyboardPageStep(int) + ??0QStandardItemModel@@QAE@HHPAVQObject@@@Z @ 3029 NONAME ; QStandardItemModel::QStandardItemModel(int, int, class QObject *) + ??1QTextControl@@UAE@XZ @ 3030 NONAME ; QTextControl::~QTextControl(void) + ?setCompletionPrefix@QCompleter@@QAEXABVQString@@@Z @ 3031 NONAME ; void QCompleter::setCompletionPrefix(class QString const &) + ?inheritStyle@QWidgetPrivate@@QAEXXZ @ 3032 NONAME ; void QWidgetPrivate::inheritStyle(void) + ?showToday@QCalendarWidget@@QAEXXZ @ 3033 NONAME ; void QCalendarWidget::showToday(void) + ?renderHints@QPainter@@QBE?AV?$QFlags@W4RenderHint@QPainter@@@@XZ @ 3034 NONAME ; class QFlags QPainter::renderHints(void) const + ?showMenu@QPushButton@@QAEXXZ @ 3035 NONAME ; void QPushButton::showMenu(void) + ?setPointSizeF@QFont@@QAEXM@Z @ 3036 NONAME ; void QFont::setPointSizeF(float) + ?staticMetaObject@QGraphicsRotation@@2UQMetaObject@@B @ 3037 NONAME ; struct QMetaObject const QGraphicsRotation::staticMetaObject + ?getStaticMetaObject@QIconEnginePlugin@@SAABUQMetaObject@@XZ @ 3038 NONAME ; struct QMetaObject const & QIconEnginePlugin::getStaticMetaObject(void) + ?setNavigationMode@QApplicationPrivate@@SAXW4NavigationMode@Qt@@@Z @ 3039 NONAME ; void QApplicationPrivate::setNavigationMode(enum Qt::NavigationMode) + ?hasThemeIcon@QIcon@@SA_NABVQString@@@Z @ 3040 NONAME ; bool QIcon::hasThemeIcon(class QString const &) + ?tryModalHelper@QApplicationPrivate@@SA_NPAVQWidget@@PAPAV2@@Z @ 3041 NONAME ; bool QApplicationPrivate::tryModalHelper(class QWidget *, class QWidget * *) + ?invalidate@QLayoutItem@@UAEXXZ @ 3042 NONAME ; void QLayoutItem::invalidate(void) + ?firstPosition@QTextFrame@@QBEHXZ @ 3043 NONAME ; int QTextFrame::firstPosition(void) const + ?d_func@QItemDelegate@@ABEPBVQItemDelegatePrivate@@XZ @ 3044 NONAME ; class QItemDelegatePrivate const * QItemDelegate::d_func(void) const + ??0QLineControl@@QAE@ABVQString@@@Z @ 3045 NONAME ; QLineControl::QLineControl(class QString const &) + ?trUtf8@QAbstractScrollArea@@SA?AVQString@@PBD0@Z @ 3046 NONAME ; class QString QAbstractScrollArea::trUtf8(char const *, char const *) + ?format@QTextFormatCollection@@QBE?AVQTextFormat@@H@Z @ 3047 NONAME ; class QTextFormat QTextFormatCollection::format(int) const + ?d_func@QStackedLayout@@AAEPAVQStackedLayoutPrivate@@XZ @ 3048 NONAME ; class QStackedLayoutPrivate * QStackedLayout::d_func(void) + ?trUtf8@QIntValidator@@SA?AVQString@@PBD0@Z @ 3049 NONAME ; class QString QIntValidator::trUtf8(char const *, char const *) + ?helpEvent@QAbstractItemDelegate@@QAE_NPAVQHelpEvent@@PAVQAbstractItemView@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 3050 NONAME ; bool QAbstractItemDelegate::helpEvent(class QHelpEvent *, class QAbstractItemView *, class QStyleOptionViewItem const &, class QModelIndex const &) + ?getContentsMargins@QGraphicsLayoutItem@@UBEXPAM000@Z @ 3051 NONAME ; void QGraphicsLayoutItem::getContentsMargins(float *, float *, float *, float *) const + ?buffer@QRasterPixmapData@@UAEPAVQImage@@XZ @ 3052 NONAME ; class QImage * QRasterPixmapData::buffer(void) + ?processEvent@QTextControl@@QAEXPAVQEvent@@ABVQPointF@@PAVQWidget@@@Z @ 3053 NONAME ; void QTextControl::processEvent(class QEvent *, class QPointF const &, class QWidget *) + ?resizeSections@QHeaderView@@IAEXXZ @ 3054 NONAME ; void QHeaderView::resizeSections(void) + ?setVerticalHeader@QTableView@@QAEXPAVQHeaderView@@@Z @ 3055 NONAME ; void QTableView::setVerticalHeader(class QHeaderView *) + ?staticMetaObject@QAbstractScrollArea@@2UQMetaObject@@B @ 3056 NONAME ; struct QMetaObject const QAbstractScrollArea::staticMetaObject + ?matchRule@StyleSelector@QCss@@AAEXTNodePtr@12@ABUStyleRule@2@W4StyleSheetOrigin@2@HPAV?$QMap@IUStyleRule@QCss@@@@@Z @ 3057 NONAME ; void QCss::StyleSelector::matchRule(union QCss::StyleSelector::NodePtr, struct QCss::StyleRule const &, enum QCss::StyleSheetOrigin, int, class QMap *) + ?scrollToItem@QListWidget@@QAEXPBVQListWidgetItem@@W4ScrollHint@QAbstractItemView@@@Z @ 3058 NONAME ; void QListWidget::scrollToItem(class QListWidgetItem const *, enum QAbstractItemView::ScrollHint) + ?lookupElementName@Parser@QCss@@QBE_NXZ @ 3059 NONAME ; bool QCss::Parser::lookupElementName(void) const + ?d_func@QPaintEngine@@AAEPAVQPaintEnginePrivate@@XZ @ 3060 NONAME ; class QPaintEnginePrivate * QPaintEngine::d_func(void) + ?undoAvailable@QTextControl@@IAEX_N@Z @ 3061 NONAME ; void QTextControl::undoAvailable(bool) + ?isHidden@QListWidgetItem@@QBE_NXZ @ 3062 NONAME ; bool QListWidgetItem::isHidden(void) const + ?resizeEvent@QMenuBar@@MAEXPAVQResizeEvent@@@Z @ 3063 NONAME ; void QMenuBar::resizeEvent(class QResizeEvent *) + ?matches@QKeyEvent@@QBE_NW4StandardKey@QKeySequence@@@Z @ 3064 NONAME ; bool QKeyEvent::matches(enum QKeySequence::StandardKey) const + ?rowCount@QStringListModel@@UBEHABVQModelIndex@@@Z @ 3065 NONAME ; int QStringListModel::rowCount(class QModelIndex const &) const + ?trUtf8@QDataWidgetMapper@@SA?AVQString@@PBD0H@Z @ 3066 NONAME ; class QString QDataWidgetMapper::trUtf8(char const *, char const *, int) + ?setColumnMinimumWidth@QGraphicsGridLayout@@QAEXHM@Z @ 3067 NONAME ; void QGraphicsGridLayout::setColumnMinimumWidth(int, float) + ?find@QPlainTextEdit@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 3068 NONAME ; bool QPlainTextEdit::find(class QString const &, class QFlags) + ?isExpanded@QTreeView@@QBE_NABVQModelIndex@@@Z @ 3069 NONAME ; bool QTreeView::isExpanded(class QModelIndex const &) const + ?d_func@QStandardItem@@ABEPBVQStandardItemPrivate@@XZ @ 3070 NONAME ; class QStandardItemPrivate const * QStandardItem::d_func(void) const + ?clicked@QAbstractItemView@@IAEXABVQModelIndex@@@Z @ 3071 NONAME ; void QAbstractItemView::clicked(class QModelIndex const &) + ?m21@QMatrix@@QBEMXZ @ 3072 NONAME ; float QMatrix::m21(void) const + ?indexOf@QStackedWidget@@QBEHPAVQWidget@@@Z @ 3073 NONAME ; int QStackedWidget::indexOf(class QWidget *) const + ?staticMetaObject@QSwipeGesture@@2UQMetaObject@@B @ 3074 NONAME ; struct QMetaObject const QSwipeGesture::staticMetaObject + ?setHorizontalScrollMode@QAbstractItemView@@QAEXW4ScrollMode@1@@Z @ 3075 NONAME ; void QAbstractItemView::setHorizontalScrollMode(enum QAbstractItemView::ScrollMode) + ?drawConvexPolygon@QPainter@@QAEXPBVQPointF@@H@Z @ 3076 NONAME ; void QPainter::drawConvexPolygon(class QPointF const *, int) + ??4QStyleOptionViewItemV2@@QAEAAV0@ABVQStyleOptionViewItem@@@Z @ 3077 NONAME ; class QStyleOptionViewItemV2 & QStyleOptionViewItemV2::operator=(class QStyleOptionViewItem const &) + ?staticMetaObject@QGroupBox@@2UQMetaObject@@B @ 3078 NONAME ; struct QMetaObject const QGroupBox::staticMetaObject + ?opaqueArea@QGraphicsPathItem@@UBE?AVQPainterPath@@XZ @ 3079 NONAME ; class QPainterPath QGraphicsPathItem::opaqueArea(void) const + ?hotSpot@QCursor@@QBE?AVQPoint@@XZ @ 3080 NONAME ; class QPoint QCursor::hotSpot(void) const + ??1QTextEngine@@QAE@XZ @ 3081 NONAME ; QTextEngine::~QTextEngine(void) + ?setVisible@QFileDialog@@UAEX_N@Z @ 3082 NONAME ; void QFileDialog::setVisible(bool) + ?load@QFontDatabase@@CAXPBVQFontPrivate@@H@Z @ 3083 NONAME ; void QFontDatabase::load(class QFontPrivate const *, int) + ?setSerialNumber@QPixmapData@@IAEXH@Z @ 3084 NONAME ; void QPixmapData::setSerialNumber(int) + ?qt_metacast@QSwipeGesture@@UAEPAXPBD@Z @ 3085 NONAME ; void * QSwipeGesture::qt_metacast(char const *) + ??0QTextBlock@@QAE@PAVQTextDocumentPrivate@@H@Z @ 3086 NONAME ; QTextBlock::QTextBlock(class QTextDocumentPrivate *, int) + ??0QPushButton@@QAE@ABVQIcon@@ABVQString@@PAVQWidget@@@Z @ 3087 NONAME ; QPushButton::QPushButton(class QIcon const &, class QString const &, class QWidget *) + ??9iterator@QTextFrame@@QBE_NABV01@@Z @ 3088 NONAME ; bool QTextFrame::iterator::operator!=(class QTextFrame::iterator const &) const + ??1QTableWidgetItem@@UAE@XZ @ 3089 NONAME ; QTableWidgetItem::~QTableWidgetItem(void) + ?columns@QPixmapConvolutionFilter@@ABEHXZ @ 3090 NONAME ; int QPixmapConvolutionFilter::columns(void) const + ?tr@QGraphicsView@@SA?AVQString@@PBD0@Z @ 3091 NONAME ; class QString QGraphicsView::tr(char const *, char const *) + ?isSizeGripEnabled@QDialog@@QBE_NXZ @ 3092 NONAME ; bool QDialog::isSizeGripEnabled(void) const + ?isScalable@QFontDatabase@@QBE_NABVQString@@0@Z @ 3093 NONAME ; bool QFontDatabase::isScalable(class QString const &, class QString const &) const + ?weight@QFontDatabase@@QBEHABVQString@@0@Z @ 3094 NONAME ; int QFontDatabase::weight(class QString const &, class QString const &) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPainterPath@@W4ItemSelectionMode@Qt@@W4SortOrder@5@ABVQTransform@@@Z @ 3095 NONAME ; class QList QGraphicsScene::items(class QPainterPath const &, enum Qt::ItemSelectionMode, enum Qt::SortOrder, class QTransform const &) const + ??_EQGraphicsSceneEvent@@UAE@I@Z @ 3096 NONAME ; QGraphicsSceneEvent::~QGraphicsSceneEvent(unsigned int) + ??BQMatrix4x4@@QBE?AVQVariant@@XZ @ 3097 NONAME ; QMatrix4x4::operator class QVariant(void) const + ?nextCheckState@QToolButton@@MAEXXZ @ 3098 NONAME ; void QToolButton::nextCheckState(void) + ?polish@QCommonStyle@@UAEXPAVQApplication@@@Z @ 3099 NONAME ; void QCommonStyle::polish(class QApplication *) + ?lengthVectorProperty@QTextFormat@@QBE?AV?$QVector@VQTextLength@@@@H@Z @ 3100 NONAME ; class QVector QTextFormat::lengthVectorProperty(int) const + ?getStaticMetaObject@QGraphicsBloomEffect@@SAABUQMetaObject@@XZ @ 3101 NONAME ; struct QMetaObject const & QGraphicsBloomEffect::getStaticMetaObject(void) + ?setMinimumDateTime@QDateTimeEdit@@QAEXABVQDateTime@@@Z @ 3102 NONAME ; void QDateTimeEdit::setMinimumDateTime(class QDateTime const &) + ??1QResizeEvent@@UAE@XZ @ 3103 NONAME ; QResizeEvent::~QResizeEvent(void) + ?boundingRectFor@QPixmapConvolutionFilter@@UBE?AVQRectF@@ABV2@@Z @ 3104 NONAME ; class QRectF QPixmapConvolutionFilter::boundingRectFor(class QRectF const &) const + ?setRange@QDoubleSpinBox@@QAEXNN@Z @ 3105 NONAME ; void QDoubleSpinBox::setRange(double, double) + ?hasChildren@QStandardItemModel@@UBE_NABVQModelIndex@@@Z @ 3106 NONAME ; bool QStandardItemModel::hasChildren(class QModelIndex const &) const + ?staticMetaObject@QGraphicsEffectSource@@2UQMetaObject@@B @ 3107 NONAME ; struct QMetaObject const QGraphicsEffectSource::staticMetaObject + ?background@QTableWidgetItem@@QBE?AVQBrush@@XZ @ 3108 NONAME ; class QBrush QTableWidgetItem::background(void) const + ?keyPressEvent@QTabWidget@@MAEXPAVQKeyEvent@@@Z @ 3109 NONAME ; void QTabWidget::keyPressEvent(class QKeyEvent *) + ?dotProduct@QVector4D@@SAMABV1@0@Z @ 3110 NONAME ; float QVector4D::dotProduct(class QVector4D const &, class QVector4D const &) + ?mouseMoveEvent@QGraphicsView@@MAEXPAVQMouseEvent@@@Z @ 3111 NONAME ; void QGraphicsView::mouseMoveEvent(class QMouseEvent *) + ?metaObject@QWidgetResizeHandler@@UBEPBUQMetaObject@@XZ @ 3112 NONAME ; struct QMetaObject const * QWidgetResizeHandler::metaObject(void) const + ?minimumSize@QWidget@@QBE?AVQSize@@XZ @ 3113 NONAME ; class QSize QWidget::minimumSize(void) const + ?activateSymbianWindow@QWidgetPrivate@@QAEXPAVCCoeControl@@@Z @ 3114 NONAME ; void QWidgetPrivate::activateSymbianWindow(class CCoeControl *) + ?loadFromData@QImage@@QAE_NPBEHPBD@Z @ 3115 NONAME ; bool QImage::loadFromData(unsigned char const *, int, char const *) + ?addItem@QGridLayout@@QAEXPAVQLayoutItem@@HHHHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 3116 NONAME ; void QGridLayout::addItem(class QLayoutItem *, int, int, int, int, class QFlags) + ?d_func@QGraphicsPixelizeEffect@@ABEPBVQGraphicsPixelizeEffectPrivate@@XZ @ 3117 NONAME ; class QGraphicsPixelizeEffectPrivate const * QGraphicsPixelizeEffect::d_func(void) const + ??D@YA?AVQLine@@ABV0@ABVQTransform@@@Z @ 3118 NONAME ; class QLine operator*(class QLine const &, class QTransform const &) + ?boundingRectFor@QPixmapDropShadowFilter@@UBE?AVQRectF@@ABV2@@Z @ 3119 NONAME ; class QRectF QPixmapDropShadowFilter::boundingRectFor(class QRectF const &) const + ?del@QLineEdit@@QAEXXZ @ 3120 NONAME ; void QLineEdit::del(void) + ?topData@QWidgetPrivate@@QBEPAUQTLWExtra@@XZ @ 3121 NONAME ; struct QTLWExtra * QWidgetPrivate::topData(void) const + ?hitButton@QAbstractButton@@MBE_NABVQPoint@@@Z @ 3122 NONAME ; bool QAbstractButton::hitButton(class QPoint const &) const + ?d_func@QS60Style@@AAEPAVQS60StylePrivate@@XZ @ 3123 NONAME ; class QS60StylePrivate * QS60Style::d_func(void) + ?staticMetaObject@QS60Style@@2UQMetaObject@@B @ 3124 NONAME ; struct QMetaObject const QS60Style::staticMetaObject + ?setMinimumTime@QDateTimeEdit@@QAEXABVQTime@@@Z @ 3125 NONAME ; void QDateTimeEdit::setMinimumTime(class QTime const &) + ??1QWindowsStyle@@UAE@XZ @ 3126 NONAME ; QWindowsStyle::~QWindowsStyle(void) + ??1QKeyEvent@@UAE@XZ @ 3127 NONAME ; QKeyEvent::~QKeyEvent(void) + ??6@YA?AVQDebug@@V0@ABVQPolygon@@@Z @ 3128 NONAME ; class QDebug operator<<(class QDebug, class QPolygon const &) + ?createMaskFromColor@QPixmap@@QBE?AVQBitmap@@ABVQColor@@W4MaskMode@Qt@@@Z @ 3129 NONAME ; class QBitmap QPixmap::createMaskFromColor(class QColor const &, enum Qt::MaskMode) const + ?d_func@QGraphicsScale@@ABEPBVQGraphicsScalePrivate@@XZ @ 3130 NONAME ; class QGraphicsScalePrivate const * QGraphicsScale::d_func(void) const + ?rowSpan@QTableView@@QBEHHH@Z @ 3131 NONAME ; int QTableView::rowSpan(int, int) const + ?setBrush@QPalette@@QAEXW4ColorRole@1@ABVQBrush@@@Z @ 3132 NONAME ; void QPalette::setBrush(enum QPalette::ColorRole, class QBrush const &) + ?staticMetaObject@QGraphicsScale@@2UQMetaObject@@B @ 3133 NONAME ; struct QMetaObject const QGraphicsScale::staticMetaObject + ?addText@QPainterPath@@QAEXMMABVQFont@@ABVQString@@@Z @ 3134 NONAME ; void QPainterPath::addText(float, float, class QFont const &, class QString const &) + ?dragLeaveEvent@QTextEdit@@MAEXPAVQDragLeaveEvent@@@Z @ 3135 NONAME ; void QTextEdit::dragLeaveEvent(class QDragLeaveEvent *) + ?setDocumentLayout@QTextDocument@@QAEXPAVQAbstractTextDocumentLayout@@@Z @ 3136 NONAME ; void QTextDocument::setDocumentLayout(class QAbstractTextDocumentLayout *) + ?event@QFileSystemModel@@MAE_NPAVQEvent@@@Z @ 3137 NONAME ; bool QFileSystemModel::event(class QEvent *) + ??0QQuaternion@@QAE@ABV0@@Z @ 3138 NONAME ; QQuaternion::QQuaternion(class QQuaternion const &) + ?setOrientation@QDialogButtonBox@@QAEXW4Orientation@Qt@@@Z @ 3139 NONAME ; void QDialogButtonBox::setOrientation(enum Qt::Orientation) + ?modifiers@QGraphicsSceneMouseEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 3140 NONAME ; class QFlags QGraphicsSceneMouseEvent::modifiers(void) const + ?buttonText@QPalette@@QBEABVQBrush@@XZ @ 3141 NONAME ; class QBrush const & QPalette::buttonText(void) const + ?tr@QColorDialog@@SA?AVQString@@PBD0@Z @ 3142 NONAME ; class QString QColorDialog::tr(char const *, char const *) + ?preferredHeight@QGraphicsLayoutItem@@QBEMXZ @ 3143 NONAME ; float QGraphicsLayoutItem::preferredHeight(void) const + ?hasStaticContentsSupport@QWindowSurface@@QBE_NXZ @ 3144 NONAME ; bool QWindowSurface::hasStaticContentsSupport(void) const + ?tr@QProxyStyle@@SA?AVQString@@PBD0@Z @ 3145 NONAME ; class QString QProxyStyle::tr(char const *, char const *) + ?drawText@QPainter@@QAEXABVQPointF@@ABVQString@@@Z @ 3146 NONAME ; void QPainter::drawText(class QPointF const &, class QString const &) + ?showPreviousMonth@QCalendarWidget@@QAEXXZ @ 3147 NONAME ; void QCalendarWidget::showPreviousMonth(void) + ?update@QWidget@@QAEXXZ @ 3148 NONAME ; void QWidget::update(void) + ?isRowHidden@QListView@@QBE_NH@Z @ 3149 NONAME ; bool QListView::isRowHidden(int) const + ?device@QImageIOHandler@@QBEPAVQIODevice@@XZ @ 3150 NONAME ; class QIODevice * QImageIOHandler::device(void) const + ?setCurrentIndex@QStackedLayout@@QAEXH@Z @ 3151 NONAME ; void QStackedLayout::setCurrentIndex(int) + ?d_func@QWindowsStyle@@AAEPAVQWindowsStylePrivate@@XZ @ 3152 NONAME ; class QWindowsStylePrivate * QWindowsStyle::d_func(void) + ?tr@QGraphicsGrayscaleEffect@@SA?AVQString@@PBD0H@Z @ 3153 NONAME ; class QString QGraphicsGrayscaleEffect::tr(char const *, char const *, int) + ?sidebarUrls@QFileDialog@@QBE?AV?$QList@VQUrl@@@@XZ @ 3154 NONAME ; class QList QFileDialog::sidebarUrls(void) const + ??1QPictureFormatInterface@@UAE@XZ @ 3155 NONAME ; QPictureFormatInterface::~QPictureFormatInterface(void) + ?setLineCount@QTextBlock@@QAEXH@Z @ 3156 NONAME ; void QTextBlock::setLineCount(int) + ?verticalOffset@QTreeView@@MBEHXZ @ 3157 NONAME ; int QTreeView::verticalOffset(void) const + ?invalidateBuffer@QWidgetPrivate@@QAEXABVQRegion@@@Z @ 3158 NONAME ; void QWidgetPrivate::invalidateBuffer(class QRegion const &) + ?setGeometry@QWidget@@QAEXHHHH@Z @ 3159 NONAME ; void QWidget::setGeometry(int, int, int, int) + ?rowViewportPosition@QTableView@@QBEHH@Z @ 3160 NONAME ; int QTableView::rowViewportPosition(int) const + ?headerData@QSortFilterProxyModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 3161 NONAME ; class QVariant QSortFilterProxyModel::headerData(int, enum Qt::Orientation, int) const + ?drawImage@QPainter@@QAEXABVQPointF@@ABVQImage@@ABVQRectF@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 3162 NONAME ; void QPainter::drawImage(class QPointF const &, class QImage const &, class QRectF const &, class QFlags) + ?qt_metacast@QAbstractSlider@@UAEPAXPBD@Z @ 3163 NONAME ; void * QAbstractSlider::qt_metacast(char const *) + ?selection@QItemSelectionModel@@QBE?BVQItemSelection@@XZ @ 3164 NONAME ; class QItemSelection const QItemSelectionModel::selection(void) const + ?getStaticMetaObject@QTextEdit@@SAABUQMetaObject@@XZ @ 3165 NONAME ; struct QMetaObject const & QTextEdit::getStaticMetaObject(void) + ?width@QImage@@QBEHXZ @ 3166 NONAME ; int QImage::width(void) const + ?setExtension@QGraphicsLineItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 3167 NONAME ; void QGraphicsLineItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ??_EQGraphicsItemGroup@@UAE@I@Z @ 3168 NONAME ; QGraphicsItemGroup::~QGraphicsItemGroup(unsigned int) + ?drawLines@QPainter@@QAEXABV?$QVector@VQLine@@@@@Z @ 3169 NONAME ; void QPainter::drawLines(class QVector const &) + ?setData@QPicture@@UAEXPBDI@Z @ 3170 NONAME ; void QPicture::setData(char const *, unsigned int) + ??1QDateTimeEdit@@UAE@XZ @ 3171 NONAME ; QDateTimeEdit::~QDateTimeEdit(void) + ?addBitmapFontToPath@QFontEngine@@QAEXMMABUQGlyphLayout@@PAVQPainterPath@@V?$QFlags@W4RenderFlag@QTextItem@@@@@Z @ 3172 NONAME ; void QFontEngine::addBitmapFontToPath(float, float, struct QGlyphLayout const &, class QPainterPath *, class QFlags) + ?deviceTransform@QGraphicsItem@@QBE?AVQTransform@@ABV2@@Z @ 3173 NONAME ; class QTransform QGraphicsItem::deviceTransform(class QTransform const &) const + ?tr@QFontDialog@@SA?AVQString@@PBD0@Z @ 3174 NONAME ; class QString QFontDialog::tr(char const *, char const *) + ??0QStyleOptionQ3ListViewItem@@QAE@XZ @ 3175 NONAME ; QStyleOptionQ3ListViewItem::QStyleOptionQ3ListViewItem(void) + ?qt_metacall@QPixmapColorizeFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3176 NONAME ; int QPixmapColorizeFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?scrollContentsBy@QPlainTextEdit@@MAEXHH@Z @ 3177 NONAME ; void QPlainTextEdit::scrollContentsBy(int, int) + ?unpolish@QProxyStyle@@UAEXPAVQWidget@@@Z @ 3178 NONAME ; void QProxyStyle::unpolish(class QWidget *) + ?ResourceFileName@QS60MainApplication@@UBE?AV?$TBuf@$0BAA@@@XZ @ 3179 NONAME ; class TBuf<256> QS60MainApplication::ResourceFileName(void) const + ?qt_metacast@QProgressBar@@UAEPAXPBD@Z @ 3180 NONAME ; void * QProgressBar::qt_metacast(char const *) + ?refresh@QDirModel@@QAEXABVQModelIndex@@@Z @ 3181 NONAME ; void QDirModel::refresh(class QModelIndex const &) + ?rowCount@QSortFilterProxyModel@@UBEHABVQModelIndex@@@Z @ 3182 NONAME ; int QSortFilterProxyModel::rowCount(class QModelIndex const &) const + ??_EQGraphicsWidget@@UAE@I@Z @ 3183 NONAME ; QGraphicsWidget::~QGraphicsWidget(unsigned int) + ?sizeAdjustPolicy@QComboBox@@QBE?AW4SizeAdjustPolicy@1@XZ @ 3184 NONAME ; enum QComboBox::SizeAdjustPolicy QComboBox::sizeAdjustPolicy(void) const + ?createObjectIndex@QTextFormatCollection@@QAEHABVQTextFormat@@@Z @ 3185 NONAME ; int QTextFormatCollection::createObjectIndex(class QTextFormat const &) + ?animate_toolbox@QApplicationPrivate@@2_NA @ 3186 NONAME ; bool QApplicationPrivate::animate_toolbox + ?currentFontChanged@QFontComboBox@@IAEXABVQFont@@@Z @ 3187 NONAME ; void QFontComboBox::currentFontChanged(class QFont const &) + ?distanceToPlane@QVector3D@@QBEMABV1@00@Z @ 3188 NONAME ; float QVector3D::distanceToPlane(class QVector3D const &, class QVector3D const &, class QVector3D const &) const + ?setSelection@QLineControl@@QAEXHH@Z @ 3189 NONAME ; void QLineControl::setSelection(int, int) + ?metaObject@QStatusBar@@UBEPBUQMetaObject@@XZ @ 3190 NONAME ; struct QMetaObject const * QStatusBar::metaObject(void) const + ?standardIconImplementation@QWindowsStyle@@IBE?AVQIcon@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 3191 NONAME ; class QIcon QWindowsStyle::standardIconImplementation(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ??_EQSwipeGesture@@UAE@I@Z @ 3192 NONAME ; QSwipeGesture::~QSwipeGesture(unsigned int) + ??0QDragMoveEvent@@QAE@ABV0@@Z @ 3193 NONAME ; QDragMoveEvent::QDragMoveEvent(class QDragMoveEvent const &) + ?qDrawShadeLine@@YAXPAVQPainter@@HHHHABVQPalette@@_NHH@Z @ 3194 NONAME ; void qDrawShadeLine(class QPainter *, int, int, int, int, class QPalette const &, bool, int, int) + ?metric@QImage@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 3195 NONAME ; int QImage::metric(enum QPaintDevice::PaintDeviceMetric) const + ?d_func@QGraphicsEllipseItem@@AAEPAVQGraphicsEllipseItemPrivate@@XZ @ 3196 NONAME ; class QGraphicsEllipseItemPrivate * QGraphicsEllipseItem::d_func(void) + ?combineTransformToParent@QGraphicsItemPrivate@@QBEXPAVQTransform@@PBV2@@Z @ 3197 NONAME ; void QGraphicsItemPrivate::combineTransformToParent(class QTransform *, class QTransform const *) const + ?pos@QDropEvent@@QBEABVQPoint@@XZ @ 3198 NONAME ; class QPoint const & QDropEvent::pos(void) const + ?textCursor@QGraphicsTextItem@@QBE?AVQTextCursor@@XZ @ 3199 NONAME ; class QTextCursor QGraphicsTextItem::textCursor(void) const + ?setupViewport@QGraphicsView@@IAEXPAVQWidget@@@Z @ 3200 NONAME ; void QGraphicsView::setupViewport(class QWidget *) + ??0QKeySequence@@QAE@XZ @ 3201 NONAME ; QKeySequence::QKeySequence(void) + ?qt_metacall@QCalendarWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3202 NONAME ; int QCalendarWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?keyPressEvent@QAbstractSpinBox@@MAEXPAVQKeyEvent@@@Z @ 3203 NONAME ; void QAbstractSpinBox::keyPressEvent(class QKeyEvent *) + ?windowTitle@QGraphicsWidget@@QBE?AVQString@@XZ @ 3204 NONAME ; class QString QGraphicsWidget::windowTitle(void) const + ?setAllowedAreas@QToolBar@@QAEXV?$QFlags@W4ToolBarArea@Qt@@@@@Z @ 3205 NONAME ; void QToolBar::setAllowedAreas(class QFlags) + ?count@QTextList@@QBEHXZ @ 3206 NONAME ; int QTextList::count(void) const + ?insertSubstitution@QFont@@SAXABVQString@@0@Z @ 3207 NONAME ; void QFont::insertSubstitution(class QString const &, class QString const &) + ?setLastScreenPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 3208 NONAME ; void QTouchEvent::TouchPoint::setLastScreenPos(class QPointF const &) + ??0QPaintEvent@@QAE@ABVQRect@@@Z @ 3209 NONAME ; QPaintEvent::QPaintEvent(class QRect const &) + ?map@QTransform@@QBE?AVQPoint@@ABV2@@Z @ 3210 NONAME ; class QPoint QTransform::map(class QPoint const &) const + ?systemClip@QPaintEngine@@QBE?AVQRegion@@XZ @ 3211 NONAME ; class QRegion QPaintEngine::systemClip(void) const + ?qt_metacast@QDialog@@UAEPAXPBD@Z @ 3212 NONAME ; void * QDialog::qt_metacast(char const *) + ?style@QGraphicsScene@@QBEPAVQStyle@@XZ @ 3213 NONAME ; class QStyle * QGraphicsScene::style(void) const + ?metaObject@QFormLayout@@UBEPBUQMetaObject@@XZ @ 3214 NONAME ; struct QMetaObject const * QFormLayout::metaObject(void) const + ?brush@QPen@@QBE?AVQBrush@@XZ @ 3215 NONAME ; class QBrush QPen::brush(void) const + ?createWinId@QWidgetPrivate@@QAEXPAVCCoeControl@@@Z @ 3216 NONAME ; void QWidgetPrivate::createWinId(class CCoeControl *) + ?hasChildren@QStandardItem@@QBE_NXZ @ 3217 NONAME ; bool QStandardItem::hasChildren(void) const + ?addEllipse@QGraphicsScene@@QAEPAVQGraphicsEllipseItem@@MMMMABVQPen@@ABVQBrush@@@Z @ 3218 NONAME ; class QGraphicsEllipseItem * QGraphicsScene::addEllipse(float, float, float, float, class QPen const &, class QBrush const &) + ?setBorderStyle@QTextFrameFormat@@QAEXW4BorderStyle@1@@Z @ 3219 NONAME ; void QTextFrameFormat::setBorderStyle(enum QTextFrameFormat::BorderStyle) + ?hasHeightForWidth@QBoxLayout@@UBE_NXZ @ 3220 NONAME ; bool QBoxLayout::hasHeightForWidth(void) const + ?screenCount@QDesktopWidget@@QBEHXZ @ 3221 NONAME ; int QDesktopWidget::screenCount(void) const + ?bottomMargin@QTextFrameFormat@@QBEMXZ @ 3222 NONAME ; float QTextFrameFormat::bottomMargin(void) const + ?setShortcutAutoRepeat@QGraphicsWidget@@QAEXH_N@Z @ 3223 NONAME ; void QGraphicsWidget::setShortcutAutoRepeat(int, bool) + ?setRowHidden@QTableView@@QAEXH_N@Z @ 3224 NONAME ; void QTableView::setRowHidden(int, bool) + ?emitCursorPositionChanged@QLineControl@@AAEXXZ @ 3225 NONAME ; void QLineControl::emitCursorPositionChanged(void) + ?splitterMoved@QSplitter@@IAEXHH@Z @ 3226 NONAME ; void QSplitter::splitterMoved(int, int) + ?qt_metacall@QWorkspace@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3227 NONAME ; int QWorkspace::qt_metacall(enum QMetaObject::Call, int, void * *) + ?alphaF@QColor@@QBEMXZ @ 3228 NONAME ; float QColor::alphaF(void) const + ?trUtf8@QDesktopWidget@@SA?AVQString@@PBD0@Z @ 3229 NONAME ; class QString QDesktopWidget::trUtf8(char const *, char const *) + ?tr@QWizard@@SA?AVQString@@PBD0@Z @ 3230 NONAME ; class QString QWizard::tr(char const *, char const *) + ??D@YA?AVQLineF@@ABV0@ABVQTransform@@@Z @ 3231 NONAME ; class QLineF operator*(class QLineF const &, class QTransform const &) + ?findFont@QFontDatabase@@CAPAVQFontEngine@@HPBVQFontPrivate@@ABUQFontDef@@@Z @ 3232 NONAME ; class QFontEngine * QFontDatabase::findFont(int, class QFontPrivate const *, struct QFontDef const &) + ?selectionEnd@QLineControl@@QBEHXZ @ 3233 NONAME ; int QLineControl::selectionEnd(void) const + ?topLevelWidgets@QApplication@@SA?AV?$QList@PAVQWidget@@@@XZ @ 3234 NONAME ; class QList QApplication::topLevelWidgets(void) + ?setItalic@QFont@@QAEX_N@Z @ 3235 NONAME ; void QFont::setItalic(bool) + ?map@QTransform@@QBE?AVQRegion@@ABV2@@Z @ 3236 NONAME ; class QRegion QTransform::map(class QRegion const &) const + ?lastScreenPos@QGraphicsSceneMouseEvent@@QBE?AVQPoint@@XZ @ 3237 NONAME ; class QPoint QGraphicsSceneMouseEvent::lastScreenPos(void) const + ?depth@QPixmap@@QBEHXZ @ 3238 NONAME ; int QPixmap::depth(void) const + ?trUtf8@QMenuBar@@SA?AVQString@@PBD0@Z @ 3239 NONAME ; class QString QMenuBar::trUtf8(char const *, char const *) + ?fillRect@QPainter@@QAEXABVQRectF@@ABVQColor@@@Z @ 3240 NONAME ; void QPainter::fillRect(class QRectF const &, class QColor const &) + ?setRowCount@QStandardItem@@QAEXH@Z @ 3241 NONAME ; void QStandardItem::setRowCount(int) + ?lineAt@QTextLayout@@QBE?AVQTextLine@@H@Z @ 3242 NONAME ; class QTextLine QTextLayout::lineAt(int) const + ?scenePos@QGraphicsSceneContextMenuEvent@@QBE?AVQPointF@@XZ @ 3243 NONAME ; class QPointF QGraphicsSceneContextMenuEvent::scenePos(void) const + ?isValid@QTextCharFormat@@QBE_NXZ @ 3244 NONAME ; bool QTextCharFormat::isValid(void) const + ?write@QTextDocumentWriter@@QAE_NABVQTextDocumentFragment@@@Z @ 3245 NONAME ; bool QTextDocumentWriter::write(class QTextDocumentFragment const &) + ?cursorForward@QLineEdit@@QAEX_NH@Z @ 3246 NONAME ; void QLineEdit::cursorForward(bool, int) + ?d_func@QCheckBox@@ABEPBVQCheckBoxPrivate@@XZ @ 3247 NONAME ; class QCheckBoxPrivate const * QCheckBox::d_func(void) const + ??1QSplitterHandle@@UAE@XZ @ 3248 NONAME ; QSplitterHandle::~QSplitterHandle(void) + ?d_func@QValidator@@AAEPAVQValidatorPrivate@@XZ @ 3249 NONAME ; class QValidatorPrivate * QValidator::d_func(void) + ?cancel@QProgressDialog@@QAEXXZ @ 3250 NONAME ; void QProgressDialog::cancel(void) + ?row@QTableWidget@@QBEHPBVQTableWidgetItem@@@Z @ 3251 NONAME ; int QTableWidget::row(class QTableWidgetItem const *) const + ?qt_metacall@QTextBlockGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3252 NONAME ; int QTextBlockGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ?pos@QMoveEvent@@QBEABVQPoint@@XZ @ 3253 NONAME ; class QPoint const & QMoveEvent::pos(void) const + ?setPalette@QApplication@@SAXABVQPalette@@PBD@Z @ 3254 NONAME ; void QApplication::setPalette(class QPalette const &, char const *) + ?trUtf8@QTimeEdit@@SA?AVQString@@PBD0H@Z @ 3255 NONAME ; class QString QTimeEdit::trUtf8(char const *, char const *, int) + ??4QTextCursor@@QAEAAV0@ABV0@@Z @ 3256 NONAME ; class QTextCursor & QTextCursor::operator=(class QTextCursor const &) + ?takeHorizontalHeaderItem@QTableWidget@@QAEPAVQTableWidgetItem@@H@Z @ 3257 NONAME ; class QTableWidgetItem * QTableWidget::takeHorizontalHeaderItem(int) + ?sizeHint@QProgressBar@@UBE?AVQSize@@XZ @ 3258 NONAME ; class QSize QProgressBar::sizeHint(void) const + ?d_func@QFontDialog@@ABEPBVQFontDialogPrivate@@XZ @ 3259 NONAME ; class QFontDialogPrivate const * QFontDialog::d_func(void) const + ??_EQMessageBox@@UAE@I@Z @ 3260 NONAME ; QMessageBox::~QMessageBox(unsigned int) + ?qt_metacast@QFileSystemModel@@UAEPAXPBD@Z @ 3261 NONAME ; void * QFileSystemModel::qt_metacast(char const *) + ??1QTreeView@@UAE@XZ @ 3262 NONAME ; QTreeView::~QTreeView(void) + ??HQPainterPath@@QBE?AV0@ABV0@@Z @ 3263 NONAME ; class QPainterPath QPainterPath::operator+(class QPainterPath const &) const + ?transform@QGraphicsItem@@QBE?AVQTransform@@XZ @ 3264 NONAME ; class QTransform QGraphicsItem::transform(void) const + ?trUtf8@QPixmapFilter@@SA?AVQString@@PBD0@Z @ 3265 NONAME ; class QString QPixmapFilter::trUtf8(char const *, char const *) + ?sizeHint@QGraphicsProxyWidget@@MBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 3266 NONAME ; class QSizeF QGraphicsProxyWidget::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?setItemPrototype@QStandardItemModel@@QAEXPBVQStandardItem@@@Z @ 3267 NONAME ; void QStandardItemModel::setItemPrototype(class QStandardItem const *) + ??0QTextDocumentFragment@@QAE@ABVQTextCursor@@@Z @ 3268 NONAME ; QTextDocumentFragment::QTextDocumentFragment(class QTextCursor const &) + ??0QFrame@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 3269 NONAME ; QFrame::QFrame(class QWidget *, class QFlags) + ?setPixmap@QWizardPage@@QAEXW4WizardPixmap@QWizard@@ABVQPixmap@@@Z @ 3270 NONAME ; void QWizardPage::setPixmap(enum QWizard::WizardPixmap, class QPixmap const &) + ?subWidgetRect@QGraphicsProxyWidget@@QBE?AVQRectF@@PBVQWidget@@@Z @ 3271 NONAME ; class QRectF QGraphicsProxyWidget::subWidgetRect(class QWidget const *) const + ?dashOffset@QPen@@QBEMXZ @ 3272 NONAME ; float QPen::dashOffset(void) const + ?tr@QGraphicsOpacityEffect@@SA?AVQString@@PBD0@Z @ 3273 NONAME ; class QString QGraphicsOpacityEffect::tr(char const *, char const *) + ??0QVector2D@@AAE@MMH@Z @ 3274 NONAME ; QVector2D::QVector2D(float, float, int) + ?setOrientation@QGraphicsSceneWheelEvent@@QAEXW4Orientation@Qt@@@Z @ 3275 NONAME ; void QGraphicsSceneWheelEvent::setOrientation(enum Qt::Orientation) + ?dragLeaveEvent@QAbstractItemView@@MAEXPAVQDragLeaveEvent@@@Z @ 3276 NONAME ; void QAbstractItemView::dragLeaveEvent(class QDragLeaveEvent *) + ?setDocumentMargin@QTextDocument@@QAEXM@Z @ 3277 NONAME ; void QTextDocument::setDocumentMargin(float) + ?drawPoint@QPainter@@QAEXHH@Z @ 3278 NONAME ; void QPainter::drawPoint(int, int) + ?background@QTextFormat@@QBE?AVQBrush@@XZ @ 3279 NONAME ; class QBrush QTextFormat::background(void) const + ?setModel@QAbstractItemView@@UAEXPAVQAbstractItemModel@@@Z @ 3280 NONAME ; void QAbstractItemView::setModel(class QAbstractItemModel *) + ?drawBackground@QGraphicsScene@@MAEXPAVQPainter@@ABVQRectF@@@Z @ 3281 NONAME ; void QGraphicsScene::drawBackground(class QPainter *, class QRectF const &) + ?itemAt@QGraphicsScene@@QBEPAVQGraphicsItem@@ABVQPointF@@@Z @ 3282 NONAME ; class QGraphicsItem * QGraphicsScene::itemAt(class QPointF const &) const + ?copyAvailable@QPlainTextEdit@@IAEX_N@Z @ 3283 NONAME ; void QPlainTextEdit::copyAvailable(bool) + ?setCleanIcon@QUndoView@@QAEXABVQIcon@@@Z @ 3284 NONAME ; void QUndoView::setCleanIcon(class QIcon const &) + ?play@QSound@@SAXABVQString@@@Z @ 3285 NONAME ; void QSound::play(class QString const &) + ?staticMetaObject@QWorkspace@@2UQMetaObject@@B @ 3286 NONAME ; struct QMetaObject const QWorkspace::staticMetaObject + ?notation@QDoubleValidator@@QBE?AW4Notation@1@XZ @ 3287 NONAME ; enum QDoubleValidator::Notation QDoubleValidator::notation(void) const + ?maximumTime@QDateTimeEdit@@QBE?AVQTime@@XZ @ 3288 NONAME ; class QTime QDateTimeEdit::maximumTime(void) const + ?drawControl@QS60Style@@UBEXW4ControlElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 3289 NONAME ; void QS60Style::drawControl(enum QStyle::ControlElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ??_EQCoeFepInputContext@@UAE@I@Z @ 3290 NONAME ; QCoeFepInputContext::~QCoeFepInputContext(unsigned int) + ?setAttribute@QWidget@@QAEXW4WidgetAttribute@Qt@@_N@Z @ 3291 NONAME ; void QWidget::setAttribute(enum Qt::WidgetAttribute, bool) + ??1QImageIOPlugin@@UAE@XZ @ 3292 NONAME ; QImageIOPlugin::~QImageIOPlugin(void) + ??1QTessellator@@UAE@XZ @ 3293 NONAME ; QTessellator::~QTessellator(void) + ??_EQDropEvent@@UAE@I@Z @ 3294 NONAME ; QDropEvent::~QDropEvent(unsigned int) + ?getStaticMetaObject@QButtonGroup@@SAABUQMetaObject@@XZ @ 3295 NONAME ; struct QMetaObject const & QButtonGroup::getStaticMetaObject(void) + ?contains@QGraphicsLineItem@@UBE_NABVQPointF@@@Z @ 3296 NONAME ; bool QGraphicsLineItem::contains(class QPointF const &) const + ?setItemsExpandable@QTreeView@@QAEX_N@Z @ 3297 NONAME ; void QTreeView::setItemsExpandable(bool) + ??0QDialog@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 3298 NONAME ; QDialog::QDialog(class QWidget *, class QFlags) + ??BQRegion@@QBE?AVQVariant@@XZ @ 3299 NONAME ; QRegion::operator class QVariant(void) const + ?d_func@QRasterWindowSurface@@AAEPAVQRasterWindowSurfacePrivate@@XZ @ 3300 NONAME ; class QRasterWindowSurfacePrivate * QRasterWindowSurface::d_func(void) + ??0QStyleOptionTab@@IAE@H@Z @ 3301 NONAME ; QStyleOptionTab::QStyleOptionTab(int) + ?trUtf8@QTreeView@@SA?AVQString@@PBD0H@Z @ 3302 NONAME ; class QString QTreeView::trUtf8(char const *, char const *, int) + ??0QGraphicsItemPrivate@@QAE@XZ @ 3303 NONAME ; QGraphicsItemPrivate::QGraphicsItemPrivate(void) + ?tr@QWidget@@SA?AVQString@@PBD0H@Z @ 3304 NONAME ; class QString QWidget::tr(char const *, char const *, int) + ?tr@QApplication@@SA?AVQString@@PBD0@Z @ 3305 NONAME ; class QString QApplication::tr(char const *, char const *) + ?mapToPolygon@QMatrix@@QBE?AVQPolygon@@ABVQRect@@@Z @ 3306 NONAME ; class QPolygon QMatrix::mapToPolygon(class QRect const &) const + ?copy@QPixmap@@QBE?AV1@ABVQRect@@@Z @ 3307 NONAME ; class QPixmap QPixmap::copy(class QRect const &) const + ?d_func@QDrag@@ABEPBVQDragPrivate@@XZ @ 3308 NONAME ; class QDragPrivate const * QDrag::d_func(void) const + ?staticMetaObject@QMouseEventTransition@@2UQMetaObject@@B @ 3309 NONAME ; struct QMetaObject const QMouseEventTransition::staticMetaObject + ?setCurrentRow@QCompleter@@QAE_NH@Z @ 3310 NONAME ; bool QCompleter::setCurrentRow(int) + ?accessibleText@QStandardItem@@QBE?AVQString@@XZ @ 3311 NONAME ; class QString QStandardItem::accessibleText(void) const + ?event@QLCDNumber@@MAE_NPAVQEvent@@@Z @ 3312 NONAME ; bool QLCDNumber::event(class QEvent *) + ?qt_metacall@QGraphicsItemAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3313 NONAME ; int QGraphicsItemAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?boundingRect@QPaintBuffer@@QBE?AVQRectF@@XZ @ 3314 NONAME ; class QRectF QPaintBuffer::boundingRect(void) const + ?setFormat@QProgressBar@@QAEXABVQString@@@Z @ 3315 NONAME ; void QProgressBar::setFormat(class QString const &) + ?setAlignment@QLayoutItem@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 3316 NONAME ; void QLayoutItem::setAlignment(class QFlags) + ??4QTextDocumentFragment@@QAEAAV0@ABV0@@Z @ 3317 NONAME ; class QTextDocumentFragment & QTextDocumentFragment::operator=(class QTextDocumentFragment const &) + ?tr@QGraphicsRotation@@SA?AVQString@@PBD0@Z @ 3318 NONAME ; class QString QGraphicsRotation::tr(char const *, char const *) + ?column@QTableWidgetItem@@QBEHXZ @ 3319 NONAME ; int QTableWidgetItem::column(void) const + ?end@QStrokerOps@@UAEXXZ @ 3320 NONAME ; void QStrokerOps::end(void) + ??0QTransform@@QAE@ABV0@@Z @ 3321 NONAME ; QTransform::QTransform(class QTransform const &) + ?buddy@QSortFilterProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 3322 NONAME ; class QModelIndex QSortFilterProxyModel::buddy(class QModelIndex const &) const + ?layoutMode@QListView@@QBE?AW4LayoutMode@1@XZ @ 3323 NONAME ; enum QListView::LayoutMode QListView::layoutMode(void) const + ?globalY@QContextMenuEvent@@QBEHXZ @ 3324 NONAME ; int QContextMenuEvent::globalY(void) const + ?fontCapitalization@QTextCharFormat@@QBE?AW4Capitalization@QFont@@XZ @ 3325 NONAME ; enum QFont::Capitalization QTextCharFormat::fontCapitalization(void) const + ?setWindowIcon@QWidget@@QAEXABVQIcon@@@Z @ 3326 NONAME ; void QWidget::setWindowIcon(class QIcon const &) + ?insertText@QTextCursor@@QAEXABVQString@@@Z @ 3327 NONAME ; void QTextCursor::insertText(class QString const &) + ?d_func@QGraphicsSceneHelpEvent@@ABEPBVQGraphicsSceneHelpEventPrivate@@XZ @ 3328 NONAME ; class QGraphicsSceneHelpEventPrivate const * QGraphicsSceneHelpEvent::d_func(void) const + ?sendEvent@QGraphicsScene@@QAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 3329 NONAME ; bool QGraphicsScene::sendEvent(class QGraphicsItem *, class QEvent *) + ?setIODevice@QPictureIO@@QAEXPAVQIODevice@@@Z @ 3330 NONAME ; void QPictureIO::setIODevice(class QIODevice *) + ?decodeString@QKeySequence@@CAHABVQString@@@Z @ 3331 NONAME ; int QKeySequence::decodeString(class QString const &) + ?directoryEntered@QFileDialog@@IAEXABVQString@@@Z @ 3332 NONAME ; void QFileDialog::directoryEntered(class QString const &) + ?minimumContentsLength@QComboBox@@QBEHXZ @ 3333 NONAME ; int QComboBox::minimumContentsLength(void) const + ??0QStyleOptionFrameV2@@QAE@ABV0@@Z @ 3334 NONAME ; QStyleOptionFrameV2::QStyleOptionFrameV2(class QStyleOptionFrameV2 const &) + ?qt_filedialog_existing_directory_hook@@3P6A?AVQString@@PAVQWidget@@ABV1@1V?$QFlags@W4Option@QFileDialog@@@@@ZA @ 3335 NONAME ; class QString (*qt_filedialog_existing_directory_hook)(class QWidget *, class QString const &, class QString const &, class QFlags) + ??_EQGraphicsView@@UAE@I@Z @ 3336 NONAME ; QGraphicsView::~QGraphicsView(unsigned int) + ??0QStyleOptionViewItemV4@@QAE@XZ @ 3337 NONAME ; QStyleOptionViewItemV4::QStyleOptionViewItemV4(void) + ??0QAbstractButton@@IAE@AAVQAbstractButtonPrivate@@PAVQWidget@@@Z @ 3338 NONAME ; QAbstractButton::QAbstractButton(class QAbstractButtonPrivate &, class QWidget *) + ?addButton@QDialogButtonBox@@QAEPAVQPushButton@@ABVQString@@W4ButtonRole@1@@Z @ 3339 NONAME ; class QPushButton * QDialogButtonBox::addButton(class QString const &, enum QDialogButtonBox::ButtonRole) + ??_EQPixmap@@UAE@I@Z @ 3340 NONAME ; QPixmap::~QPixmap(unsigned int) + ?insertMenu@QMenu@@QAEPAVQAction@@PAV2@PAV1@@Z @ 3341 NONAME ; class QAction * QMenu::insertMenu(class QAction *, class QMenu *) + ?visualIndex@QTableView@@ABEHABVQModelIndex@@@Z @ 3342 NONAME ; int QTableView::visualIndex(class QModelIndex const &) const + ?isSortingEnabled@QTreeView@@QBE_NXZ @ 3343 NONAME ; bool QTreeView::isSortingEnabled(void) const + ?data@QDirModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 3344 NONAME ; class QVariant QDirModel::data(class QModelIndex const &, int) const + ?tr@QGraphicsObject@@SA?AVQString@@PBD0H@Z @ 3345 NONAME ; class QString QGraphicsObject::tr(char const *, char const *, int) + ?drawConvexPolygon@QPainter@@QAEXABVQPolygon@@@Z @ 3346 NONAME ; void QPainter::drawConvexPolygon(class QPolygon const &) + ?quadTo@QPainterPath@@QAEXABVQPointF@@0@Z @ 3347 NONAME ; void QPainterPath::quadTo(class QPointF const &, class QPointF const &) + ??0QPicture@@QAE@H@Z @ 3348 NONAME ; QPicture::QPicture(int) + ??1QHoverEvent@@UAE@XZ @ 3349 NONAME ; QHoverEvent::~QHoverEvent(void) + ?setScenePos@QGraphicsSceneContextMenuEvent@@QAEXABVQPointF@@@Z @ 3350 NONAME ; void QGraphicsSceneContextMenuEvent::setScenePos(class QPointF const &) + ??0QTextLine@@QAE@XZ @ 3351 NONAME ; QTextLine::QTextLine(void) + ?event@QGraphicsProxyWidget@@MAE_NPAVQEvent@@@Z @ 3352 NONAME ; bool QGraphicsProxyWidget::event(class QEvent *) + ?elideMode@QTabBar@@QBE?AW4TextElideMode@Qt@@XZ @ 3353 NONAME ; enum Qt::TextElideMode QTabBar::elideMode(void) const + ?d_func@QTabWidget@@AAEPAVQTabWidgetPrivate@@XZ @ 3354 NONAME ; class QTabWidgetPrivate * QTabWidget::d_func(void) + ?trUtf8@QStyle@@SA?AVQString@@PBD0@Z @ 3355 NONAME ; class QString QStyle::trUtf8(char const *, char const *) + ?verticalShearAt@QGraphicsItemAnimation@@QBEMM@Z @ 3356 NONAME ; float QGraphicsItemAnimation::verticalShearAt(float) const + ?insertFromMimeData@QTextEdit@@MAEXPBVQMimeData@@@Z @ 3357 NONAME ; void QTextEdit::insertFromMimeData(class QMimeData const *) + ?tr@QIconEnginePlugin@@SA?AVQString@@PBD0@Z @ 3358 NONAME ; class QString QIconEnginePlugin::tr(char const *, char const *) + ?setVerticalSpacing@QGridLayout@@QAEXH@Z @ 3359 NONAME ; void QGridLayout::setVerticalSpacing(int) + ??1QToolBar@@UAE@XZ @ 3360 NONAME ; QToolBar::~QToolBar(void) + ?d_func@QGraphicsSceneEvent@@IBEPBVQGraphicsSceneEventPrivate@@XZ @ 3361 NONAME ; class QGraphicsSceneEventPrivate const * QGraphicsSceneEvent::d_func(void) const + ?descent@QFontMetrics@@QBEHXZ @ 3362 NONAME ; int QFontMetrics::descent(void) const + ?numFrames@QPaintBuffer@@QBEHXZ @ 3363 NONAME ; int QPaintBuffer::numFrames(void) const + ?setObjectFormat@QTextFormatCollection@@QAEXHABVQTextFormat@@@Z @ 3364 NONAME ; void QTextFormatCollection::setObjectFormat(int, class QTextFormat const &) + ?setExtension@QGraphicsSimpleTextItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 3365 NONAME ; void QGraphicsSimpleTextItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?palette@QGraphicsWidget@@QBE?AVQPalette@@XZ @ 3366 NONAME ; class QPalette QGraphicsWidget::palette(void) const + ?pixmap@QGraphicsEffectSource@@QBE?AVQPixmap@@W4CoordinateSystem@Qt@@PAVQPoint@@@Z @ 3367 NONAME ; class QPixmap QGraphicsEffectSource::pixmap(enum Qt::CoordinateSystem, class QPoint *) const + ?setColor@QPen@@QAEXABVQColor@@@Z @ 3368 NONAME ; void QPen::setColor(class QColor const &) + ?pen@QPaintEngineState@@QBE?AVQPen@@XZ @ 3369 NONAME ; class QPen QPaintEngineState::pen(void) const + ?fileName@QSound@@QBE?AVQString@@XZ @ 3370 NONAME ; class QString QSound::fileName(void) const + ?appendHtml@QTextControl@@QAEXABVQString@@@Z @ 3371 NONAME ; void QTextControl::appendHtml(class QString const &) + ?rect@QImage@@QBE?AVQRect@@XZ @ 3372 NONAME ; class QRect QImage::rect(void) const + ?value@QProgressDialog@@QBEHXZ @ 3373 NONAME ; int QProgressDialog::value(void) const + ?boundingRect@QGraphicsSimpleTextItem@@UBE?AVQRectF@@XZ @ 3374 NONAME ; class QRectF QGraphicsSimpleTextItem::boundingRect(void) const + ??1QRasterPixmapData@@UAE@XZ @ 3375 NONAME ; QRasterPixmapData::~QRasterPixmapData(void) + ?trUtf8@QPixmapFilter@@SA?AVQString@@PBD0H@Z @ 3376 NONAME ; class QString QPixmapFilter::trUtf8(char const *, char const *, int) + ?metaObject@QColumnView@@UBEPBUQMetaObject@@XZ @ 3377 NONAME ; struct QMetaObject const * QColumnView::metaObject(void) const + ?mousePressEvent@QMdiSubWindow@@MAEXPAVQMouseEvent@@@Z @ 3378 NONAME ; void QMdiSubWindow::mousePressEvent(class QMouseEvent *) + ?fillRect@QPainter@@QAEXABVQRectF@@W4GlobalColor@Qt@@@Z @ 3379 NONAME ; void QPainter::fillRect(class QRectF const &, enum Qt::GlobalColor) + ?setToolTip@QTextCharFormat@@QAEXABVQString@@@Z @ 3380 NONAME ; void QTextCharFormat::setToolTip(class QString const &) + ??0QVBoxLayout@@QAE@XZ @ 3381 NONAME ; QVBoxLayout::QVBoxLayout(void) + ?staticMetaObject@QRegExpValidator@@2UQMetaObject@@B @ 3382 NONAME ; struct QMetaObject const QRegExpValidator::staticMetaObject + ?shear@QGraphicsView@@QAEXMM@Z @ 3383 NONAME ; void QGraphicsView::shear(float, float) + ?qt_metacall@QStyle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3384 NONAME ; int QStyle::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QApplication@@UAE@XZ @ 3385 NONAME ; QApplication::~QApplication(void) + ?setBaseSize@QWidget@@QAEXABVQSize@@@Z @ 3386 NONAME ; void QWidget::setBaseSize(class QSize const &) + ?trUtf8@QGraphicsBloomEffect@@SA?AVQString@@PBD0@Z @ 3387 NONAME ; class QString QGraphicsBloomEffect::trUtf8(char const *, char const *) + ?setWindowFilePath_helper@QWidgetPrivate@@QAEXABVQString@@@Z @ 3388 NONAME ; void QWidgetPrivate::setWindowFilePath_helper(class QString const &) + ?setSourceModel@QSortFilterProxyModel@@UAEXPAVQAbstractItemModel@@@Z @ 3389 NONAME ; void QSortFilterProxyModel::setSourceModel(class QAbstractItemModel *) + ?removeStack@QUndoGroup@@QAEXPAVQUndoStack@@@Z @ 3390 NONAME ; void QUndoGroup::removeStack(class QUndoStack *) + ?internalSetText@QLineControl@@AAEXABVQString@@H_N@Z @ 3391 NONAME ; void QLineControl::internalSetText(class QString const &, int, bool) + ?nativeWindowDeco@QDockWidgetLayout@@QBE_N_N@Z @ 3392 NONAME ; bool QDockWidgetLayout::nativeWindowDeco(bool) const + ?qt_metacall@QGraphicsDropShadowEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3393 NONAME ; int QGraphicsDropShadowEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setCurrentItem@QListWidget@@QAEXPAVQListWidgetItem@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 3394 NONAME ; void QListWidget::setCurrentItem(class QListWidgetItem *, class QFlags) + ??0QDial@@QAE@PAVQWidget@@@Z @ 3395 NONAME ; QDial::QDial(class QWidget *) + ?alert@QApplication@@SAXPAVQWidget@@H@Z @ 3396 NONAME ; void QApplication::alert(class QWidget *, int) + ?setLocale@QWidget@@QAEXABVQLocale@@@Z @ 3397 NONAME ; void QWidget::setLocale(class QLocale const &) + ?data_ptr@QKeySequence@@QAEAAPAVQKeySequencePrivate@@XZ @ 3398 NONAME ; class QKeySequencePrivate * & QKeySequence::data_ptr(void) + ?resolvePalette@QWidgetPrivate@@QAEXXZ @ 3399 NONAME ; void QWidgetPrivate::resolvePalette(void) + ?canUndo@QUndoGroup@@QBE_NXZ @ 3400 NONAME ; bool QUndoGroup::canUndo(void) const + ??0QMessageBox@@QAE@PAVQWidget@@@Z @ 3401 NONAME ; QMessageBox::QMessageBox(class QWidget *) + ?minimumSizeHint@QLabel@@UBE?AVQSize@@XZ @ 3402 NONAME ; class QSize QLabel::minimumSizeHint(void) const + ??0QGraphicsTextItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 3403 NONAME ; QGraphicsTextItem::QGraphicsTextItem(class QGraphicsItem *, class QGraphicsScene *) + ?qt_metacall@QLineControl@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3404 NONAME ; int QLineControl::qt_metacall(enum QMetaObject::Call, int, void * *) + ?changeEvent@QLabel@@MAEXPAVQEvent@@@Z @ 3405 NONAME ; void QLabel::changeEvent(class QEvent *) + ?insertAction@QWidget@@QAEXPAVQAction@@0@Z @ 3406 NONAME ; void QWidget::insertAction(class QAction *, class QAction *) + ?qt_metacast@QLineEdit@@UAEPAXPBD@Z @ 3407 NONAME ; void * QLineEdit::qt_metacast(char const *) + ??_0QTransform@@QAEAAV0@M@Z @ 3408 NONAME ; class QTransform & QTransform::operator/=(float) + ?staticMetaObject@QLineControl@@2UQMetaObject@@B @ 3409 NONAME ; struct QMetaObject const QLineControl::staticMetaObject + ?viewportEvent@QGraphicsView@@MAE_NPAVQEvent@@@Z @ 3410 NONAME ; bool QGraphicsView::viewportEvent(class QEvent *) + ?styleProperty@QS60Style@@QBE?AVQVariant@@PBD@Z @ 3411 NONAME ; class QVariant QS60Style::styleProperty(char const *) const + ?setStackingMode@QStackedLayout@@QAEXW4StackingMode@1@@Z @ 3412 NONAME ; void QStackedLayout::setStackingMode(enum QStackedLayout::StackingMode) + ?event@QScrollBar@@UAE_NPAVQEvent@@@Z @ 3413 NONAME ; bool QScrollBar::event(class QEvent *) + ?metaObject@QPushButton@@UBEPBUQMetaObject@@XZ @ 3414 NONAME ; struct QMetaObject const * QPushButton::metaObject(void) const + ?sizeHint@QLCDNumber@@UBE?AVQSize@@XZ @ 3415 NONAME ; class QSize QLCDNumber::sizeHint(void) const + ??0QStyleOptionRubberBand@@QAE@ABV0@@Z @ 3416 NONAME ; QStyleOptionRubberBand::QStyleOptionRubberBand(class QStyleOptionRubberBand const &) + ??IQRegion@@QBE?BV0@ABV0@@Z @ 3417 NONAME ; class QRegion const QRegion::operator&(class QRegion const &) const + ?getStaticMetaObject@QDockWidgetLayout@@SAABUQMetaObject@@XZ @ 3418 NONAME ; struct QMetaObject const & QDockWidgetLayout::getStaticMetaObject(void) + ?trUtf8@QLineEdit@@SA?AVQString@@PBD0@Z @ 3419 NONAME ; class QString QLineEdit::trUtf8(char const *, char const *) + ?setCurrentItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@@Z @ 3420 NONAME ; void QTreeWidget::setCurrentItem(class QTreeWidgetItem *) + ?addMenu@QMenuBar@@QAEPAVQAction@@PAVQMenu@@@Z @ 3421 NONAME ; class QAction * QMenuBar::addMenu(class QMenu *) + ??1QPixmapBlurFilter@@UAE@XZ @ 3422 NONAME ; QPixmapBlurFilter::~QPixmapBlurFilter(void) + ?setSizeIncrement@QWidget@@QAEXHH@Z @ 3423 NONAME ; void QWidget::setSizeIncrement(int, int) + ?contains@QGraphicsSimpleTextItem@@UBE_NABVQPointF@@@Z @ 3424 NONAME ; bool QGraphicsSimpleTextItem::contains(class QPointF const &) const + ??_EQWidgetItem@@UAE@I@Z @ 3425 NONAME ; QWidgetItem::~QWidgetItem(unsigned int) + ?dotsPerMeterY@QImage@@QBEHXZ @ 3426 NONAME ; int QImage::dotsPerMeterY(void) const + ?contains@QPainterPath@@QBE_NABVQRectF@@@Z @ 3427 NONAME ; bool QPainterPath::contains(class QRectF const &) const + ?setFrameShape@QFrame@@QAEXW4Shape@1@@Z @ 3428 NONAME ; void QFrame::setFrameShape(enum QFrame::Shape) + ??0QListWidgetItem@@QAE@ABV0@@Z @ 3429 NONAME ; QListWidgetItem::QListWidgetItem(class QListWidgetItem const &) + ?map@QMatrix4x4@@QBE?AVQPointF@@ABV2@@Z @ 3430 NONAME ; class QPointF QMatrix4x4::map(class QPointF const &) const + ??0QFontMetricsF@@QAE@ABVQFont@@PAVQPaintDevice@@@Z @ 3431 NONAME ; QFontMetricsF::QFontMetricsF(class QFont const &, class QPaintDevice *) + ?setVisible@QWidget@@UAEX_N@Z @ 3432 NONAME ; void QWidget::setVisible(bool) + ?quitOnLastWindowClosed@QApplicationPrivate@@2_NA @ 3433 NONAME ; bool QApplicationPrivate::quitOnLastWindowClosed + ?rowsInserted@QColumnView@@MAEXABVQModelIndex@@HH@Z @ 3434 NONAME ; void QColumnView::rowsInserted(class QModelIndex const &, int, int) + ?qt_metacast@QCoeFepInputContext@@UAEPAXPBD@Z @ 3435 NONAME ; void * QCoeFepInputContext::qt_metacast(char const *) + ?map@QMatrix@@QBE?AVQPoint@@ABV2@@Z @ 3436 NONAME ; class QPoint QMatrix::map(class QPoint const &) const + ?MopSupplyObject@QCoeFepInputContext@@UAE?AVPtr@TTypeUid@@V3@@Z @ 3437 NONAME ; class TTypeUid::Ptr QCoeFepInputContext::MopSupplyObject(class TTypeUid) + ?styleName@QGuiPlatformPlugin@@UAE?AVQString@@XZ @ 3438 NONAME ; class QString QGuiPlatformPlugin::styleName(void) + ?rowsInserted@QAbstractItemView@@MAEXABVQModelIndex@@HH@Z @ 3439 NONAME ; void QAbstractItemView::rowsInserted(class QModelIndex const &, int, int) + ?setBlurHint@QGraphicsBloomEffect@@QAEXW4RenderHint@Qt@@@Z @ 3440 NONAME ; void QGraphicsBloomEffect::setBlurHint(enum Qt::RenderHint) + ?gradient@QBrush@@QBEPBVQGradient@@XZ @ 3441 NONAME ; class QGradient const * QBrush::gradient(void) const + ?hasFocus@QWidget@@QBE_NXZ @ 3442 NONAME ; bool QWidget::hasFocus(void) const + ??0Symbol@QCss@@QAE@XZ @ 3443 NONAME ; QCss::Symbol::Symbol(void) + ?fontWeight@QTextEdit@@QBEHXZ @ 3444 NONAME ; int QTextEdit::fontWeight(void) const + ?tr@QGraphicsScene@@SA?AVQString@@PBD0@Z @ 3445 NONAME ; class QString QGraphicsScene::tr(char const *, char const *) + ?sizeHint@QHeaderView@@UBE?AVQSize@@XZ @ 3446 NONAME ; class QSize QHeaderView::sizeHint(void) const + ?addAction@QMenu@@QAEPAVQAction@@ABVQIcon@@ABVQString@@PBVQObject@@PBDABVQKeySequence@@@Z @ 3447 NONAME ; class QAction * QMenu::addAction(class QIcon const &, class QString const &, class QObject const *, char const *, class QKeySequence const &) + ?setHorizontalHeaderLabels@QStandardItemModel@@QAEXABVQStringList@@@Z @ 3448 NONAME ; void QStandardItemModel::setHorizontalHeaderLabels(class QStringList const &) + ?palette@QToolTip@@SA?AVQPalette@@XZ @ 3449 NONAME ; class QPalette QToolTip::palette(void) + ?mimeTypes@QSortFilterProxyModel@@UBE?AVQStringList@@XZ @ 3450 NONAME ; class QStringList QSortFilterProxyModel::mimeTypes(void) const + ?setRgb@QColor@@QAEXHHHH@Z @ 3451 NONAME ; void QColor::setRgb(int, int, int, int) + ??ZQMatrix4x4@@QAEAAV0@ABV0@@Z @ 3452 NONAME ; class QMatrix4x4 & QMatrix4x4::operator-=(class QMatrix4x4 const &) + ?wheelEvent@QDateTimeEdit@@MAEXPAVQWheelEvent@@@Z @ 3453 NONAME ; void QDateTimeEdit::wheelEvent(class QWheelEvent *) + ?staticMetaObject@QMenuBar@@2UQMetaObject@@B @ 3454 NONAME ; struct QMetaObject const QMenuBar::staticMetaObject + ?stepEnabled@QDateTimeEdit@@MBE?AV?$QFlags@W4StepEnabledFlag@QAbstractSpinBox@@@@XZ @ 3455 NONAME ; class QFlags QDateTimeEdit::stepEnabled(void) const + ?isCollapsible@QSplitter@@QBE_NH@Z @ 3456 NONAME ; bool QSplitter::isCollapsible(int) const + ?dump@QGraphicsLinearLayout@@QBEXH@Z @ 3457 NONAME ; void QGraphicsLinearLayout::dump(int) const + ??1QUndoView@@UAE@XZ @ 3458 NONAME ; QUndoView::~QUndoView(void) + ?map@QTransform@@QBE?AVQPointF@@ABV2@@Z @ 3459 NONAME ; class QPointF QTransform::map(class QPointF const &) const + ?addActions@QGraphicsWidget@@QAEXV?$QList@PAVQAction@@@@@Z @ 3460 NONAME ; void QGraphicsWidget::addActions(class QList) + ?parseNextFunction@Parser@QCss@@QAE_NPAVQString@@0@Z @ 3461 NONAME ; bool QCss::Parser::parseNextFunction(class QString *, class QString *) + ?reset@QItemSelectionModel@@UAEXXZ @ 3462 NONAME ; void QItemSelectionModel::reset(void) + ?header@QTreeView@@QBEPAVQHeaderView@@XZ @ 3463 NONAME ; class QHeaderView * QTreeView::header(void) const + ?scrollToAnchor@QTextEdit@@QAEXABVQString@@@Z @ 3464 NONAME ; void QTextEdit::scrollToAnchor(class QString const &) + ??_EQGraphicsSystem@@UAE@I@Z @ 3465 NONAME ; QGraphicsSystem::~QGraphicsSystem(unsigned int) + ?metaObject@QGraphicsPixelizeEffect@@UBEPBUQMetaObject@@XZ @ 3466 NONAME ; struct QMetaObject const * QGraphicsPixelizeEffect::metaObject(void) const + ?setWrapping@QDial@@QAEX_N@Z @ 3467 NONAME ; void QDial::setWrapping(bool) + ?setActive@QGraphicsItem@@QAEX_N@Z @ 3468 NONAME ; void QGraphicsItem::setActive(bool) + ?wordWrap@QLabel@@QBE_NXZ @ 3469 NONAME ; bool QLabel::wordWrap(void) const + ?parent@QProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 3470 NONAME ; class QModelIndex QProxyModel::parent(class QModelIndex const &) const + ?length@QVector3D@@QBEMXZ @ 3471 NONAME ; float QVector3D::length(void) const + ?invalidateGraphicsEffectsRecursively@QWidgetPrivate@@QAEXXZ @ 3472 NONAME ; void QWidgetPrivate::invalidateGraphicsEffectsRecursively(void) + ?minimumSizeHint@QTabBar@@UBE?AVQSize@@XZ @ 3473 NONAME ; class QSize QTabBar::minimumSizeHint(void) const + ??4QStyleOptionTabBarBaseV2@@QAEAAV0@ABVQStyleOptionTabBarBase@@@Z @ 3474 NONAME ; class QStyleOptionTabBarBaseV2 & QStyleOptionTabBarBaseV2::operator=(class QStyleOptionTabBarBase const &) + ?trUtf8@QBoxLayout@@SA?AVQString@@PBD0H@Z @ 3475 NONAME ; class QString QBoxLayout::trUtf8(char const *, char const *, int) + ?setHorizontalHeaderLabels@QTableWidget@@QAEXABVQStringList@@@Z @ 3476 NONAME ; void QTableWidget::setHorizontalHeaderLabels(class QStringList const &) + ?hasHeightForWidth@QGridLayout@@UBE_NXZ @ 3477 NONAME ; bool QGridLayout::hasHeightForWidth(void) const + ?setLazyChildCount@QDirModel@@QAEX_N@Z @ 3478 NONAME ; void QDirModel::setLazyChildCount(bool) + ?onTransition@QMouseEventTransition@@MAEXPAVQEvent@@@Z @ 3479 NONAME ; void QMouseEventTransition::onTransition(class QEvent *) + ?qt_metacast@QCommandLinkButton@@UAEPAXPBD@Z @ 3480 NONAME ; void * QCommandLinkButton::qt_metacast(char const *) + ?setFocus@QGraphicsItem@@QAEXW4FocusReason@Qt@@@Z @ 3481 NONAME ; void QGraphicsItem::setFocus(enum Qt::FocusReason) + ?setVector@QQuaternion@@QAEXABVQVector3D@@@Z @ 3482 NONAME ; void QQuaternion::setVector(class QVector3D const &) + ?blockNumber@QTextCursor@@QBEHXZ @ 3483 NONAME ; int QTextCursor::blockNumber(void) const + ?setAnchorNames@QTextCharFormat@@QAEXABVQStringList@@@Z @ 3484 NONAME ; void QTextCharFormat::setAnchorNames(class QStringList const &) + ??1QWidgetResizeHandler@@UAE@XZ @ 3485 NONAME ; QWidgetResizeHandler::~QWidgetResizeHandler(void) + ?transposed@QMatrix4x4@@QBE?AV1@XZ @ 3486 NONAME ; class QMatrix4x4 QMatrix4x4::transposed(void) const + ?qt_metacall@QMouseEventTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3487 NONAME ; int QMouseEventTransition::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mapToScene@QGraphicsItem@@QBE?AVQPointF@@ABV2@@Z @ 3488 NONAME ; class QPointF QGraphicsItem::mapToScene(class QPointF const &) const + ?setFocus_sys@QWidgetPrivate@@QAEXXZ @ 3489 NONAME ; void QWidgetPrivate::setFocus_sys(void) + ?sendEvent@QInputContext@@QAEXABVQInputMethodEvent@@@Z @ 3490 NONAME ; void QInputContext::sendEvent(class QInputMethodEvent const &) + ?fixup@QValidator@@UBEXAAVQString@@@Z @ 3491 NONAME ; void QValidator::fixup(class QString &) const + ?dataChanged@QTreeView@@UAEXABVQModelIndex@@0@Z @ 3492 NONAME ; void QTreeView::dataChanged(class QModelIndex const &, class QModelIndex const &) + ?q_func@QGraphicsItemPrivate@@ABEPBVQGraphicsItem@@XZ @ 3493 NONAME ; class QGraphicsItem const * QGraphicsItemPrivate::q_func(void) const + ?itemAt@QTableWidget@@QBEPAVQTableWidgetItem@@HH@Z @ 3494 NONAME ; class QTableWidgetItem * QTableWidget::itemAt(int, int) const + ?reset@QGraphicsItemAnimation@@QAEXXZ @ 3495 NONAME ; void QGraphicsItemAnimation::reset(void) + ?initStyleOption@QPushButton@@IBEXPAVQStyleOptionButton@@@Z @ 3496 NONAME ; void QPushButton::initStyleOption(class QStyleOptionButton *) const + ?docLayout@QTextEngine@@QBEPAVQAbstractTextDocumentLayout@@XZ @ 3497 NONAME ; class QAbstractTextDocumentLayout * QTextEngine::docLayout(void) const + ?mapFromScene@QGraphicsItem@@QBE?AVQPolygonF@@ABVQRectF@@@Z @ 3498 NONAME ; class QPolygonF QGraphicsItem::mapFromScene(class QRectF const &) const + ??_EQLayoutItem@@UAE@I@Z @ 3499 NONAME ; QLayoutItem::~QLayoutItem(unsigned int) + ?itemDelegate@QAbstractItemView@@QBEPAVQAbstractItemDelegate@@XZ @ 3500 NONAME ; class QAbstractItemDelegate * QAbstractItemView::itemDelegate(void) const + ??0QRadialGradient@@QAE@ABVQPointF@@M@Z @ 3501 NONAME ; QRadialGradient::QRadialGradient(class QPointF const &, float) + ??1QLineEdit@@UAE@XZ @ 3502 NONAME ; QLineEdit::~QLineEdit(void) + ??0QVector4D@@QAE@ABVQVector2D@@MM@Z @ 3503 NONAME ; QVector4D::QVector4D(class QVector2D const &, float, float) + ?setLabelAlignment@QFormLayout@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 3504 NONAME ; void QFormLayout::setLabelAlignment(class QFlags) + ?mapFromGlobal@QWidget@@QBE?AVQPoint@@ABV2@@Z @ 3505 NONAME ; class QPoint QWidget::mapFromGlobal(class QPoint const &) const + ?styles@QFontDatabase@@QBE?AVQStringList@@ABVQString@@@Z @ 3506 NONAME ; class QStringList QFontDatabase::styles(class QString const &) const + ?aboutToShow@QMenu@@IAEXXZ @ 3507 NONAME ; void QMenu::aboutToShow(void) + ?boundingRect@QGraphicsPolygonItem@@UBE?AVQRectF@@XZ @ 3508 NONAME ; class QRectF QGraphicsPolygonItem::boundingRect(void) const + ??XQTransform@@QAEAAV0@ABV0@@Z @ 3509 NONAME ; class QTransform & QTransform::operator*=(class QTransform const &) + ?backwardAvailable@QTextBrowser@@IAEX_N@Z @ 3510 NONAME ; void QTextBrowser::backwardAvailable(bool) + ?setCurrentWidget@QStackedLayout@@QAEXPAVQWidget@@@Z @ 3511 NONAME ; void QStackedLayout::setCurrentWidget(class QWidget *) + ?hasClipping@QItemDelegate@@QBE_NXZ @ 3512 NONAME ; bool QItemDelegate::hasClipping(void) const + ?setObjectType@QTextFormat@@QAEXH@Z @ 3513 NONAME ; void QTextFormat::setObjectType(int) + ?miterLimit@QPen@@QBEMXZ @ 3514 NONAME ; float QPen::miterLimit(void) const + ?d_func@QErrorMessage@@ABEPBVQErrorMessagePrivate@@XZ @ 3515 NONAME ; class QErrorMessagePrivate const * QErrorMessage::d_func(void) const + ?setSizePolicy@QWidget@@QAEXVQSizePolicy@@@Z @ 3516 NONAME ; void QWidget::setSizePolicy(class QSizePolicy) + ?intersect@QItemSelectionRange@@QBE?AV1@ABV1@@Z @ 3517 NONAME ; class QItemSelectionRange QItemSelectionRange::intersect(class QItemSelectionRange const &) const + ?answerRect@QDragMoveEvent@@QBE?AVQRect@@XZ @ 3518 NONAME ; class QRect QDragMoveEvent::answerRect(void) const + ??_0QVector4D@@QAEAAV0@M@Z @ 3519 NONAME ; class QVector4D & QVector4D::operator/=(float) + ?setRange@QProgressDialog@@QAEXHH@Z @ 3520 NONAME ; void QProgressDialog::setRange(int, int) + ?dropIndicatorPosition@QAbstractItemView@@IBE?AW4DropIndicatorPosition@1@XZ @ 3521 NONAME ; enum QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition(void) const + ?id@QShortcut@@QBEHXZ @ 3522 NONAME ; int QShortcut::id(void) const + ?tightBoundingBox@QTextEngine@@QBE?AUglyph_metrics_t@@HH@Z @ 3523 NONAME ; struct glyph_metrics_t QTextEngine::tightBoundingBox(int, int) const + ??_EQUndoView@@UAE@I@Z @ 3524 NONAME ; QUndoView::~QUndoView(unsigned int) + ?visualIndex@QHeaderView@@QBEHH@Z @ 3525 NONAME ; int QHeaderView::visualIndex(int) const + ?setFrameStyle@QFrame@@QAEXH@Z @ 3526 NONAME ; void QFrame::setFrameStyle(int) + ?actionGeometry@QMenu@@QBE?AVQRect@@PAVQAction@@@Z @ 3527 NONAME ; class QRect QMenu::actionGeometry(class QAction *) const + ?data@QStandardItemModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 3528 NONAME ; class QVariant QStandardItemModel::data(class QModelIndex const &, int) const + ?screenGeometry@QDesktopWidget@@QBE?BVQRect@@ABVQPoint@@@Z @ 3529 NONAME ; class QRect const QDesktopWidget::screenGeometry(class QPoint const &) const + ?parseNextSelector@Parser@QCss@@QAE_NPAUSelector@2@@Z @ 3530 NONAME ; bool QCss::Parser::parseNextSelector(struct QCss::Selector *) + ??_4QPainterPath@@QAEAAV0@ABV0@@Z @ 3531 NONAME ; class QPainterPath & QPainterPath::operator&=(class QPainterPath const &) + ?nextId@QWizard@@UBEHXZ @ 3532 NONAME ; int QWizard::nextId(void) const + ?maybeBackingStore@QWidgetPrivate@@QBEPAVQWidgetBackingStore@@XZ @ 3533 NONAME ; class QWidgetBackingStore * QWidgetPrivate::maybeBackingStore(void) const + ?drawChord@QPainter@@QAEXABVQRect@@HH@Z @ 3534 NONAME ; void QPainter::drawChord(class QRect const &, int, int) + ??0QStandardItemModel@@QAE@PAVQObject@@@Z @ 3535 NONAME ; QStandardItemModel::QStandardItemModel(class QObject *) + ?titleFormat@QWizard@@QBE?AW4TextFormat@Qt@@XZ @ 3536 NONAME ; enum Qt::TextFormat QWizard::titleFormat(void) const + ?trUtf8@QTextTable@@SA?AVQString@@PBD0H@Z @ 3537 NONAME ; class QString QTextTable::trUtf8(char const *, char const *, int) + ?setZ@QVector3D@@QAEXM@Z @ 3538 NONAME ; void QVector3D::setZ(float) + ?paintEvent@QProgressBar@@MAEXPAVQPaintEvent@@@Z @ 3539 NONAME ; void QProgressBar::paintEvent(class QPaintEvent *) + ?polygon@QGraphicsPolygonItem@@QBE?AVQPolygonF@@XZ @ 3540 NONAME ; class QPolygonF QGraphicsPolygonItem::polygon(void) const + ?paintEvent@QTextBrowser@@MAEXPAVQPaintEvent@@@Z @ 3541 NONAME ; void QTextBrowser::paintEvent(class QPaintEvent *) + ?showEvent@QTabBar@@MAEXPAVQShowEvent@@@Z @ 3542 NONAME ; void QTabBar::showEvent(class QShowEvent *) + ?count@QComboBox@@QBEHXZ @ 3543 NONAME ; int QComboBox::count(void) const + ?isEmpty@QMenu@@QBE_NXZ @ 3544 NONAME ; bool QMenu::isEmpty(void) const + ?qt_metacast@QWidgetAction@@UAEPAXPBD@Z @ 3545 NONAME ; void * QWidgetAction::qt_metacast(char const *) + ?tr@QPixmapColorizeFilter@@SA?AVQString@@PBD0@Z @ 3546 NONAME ; class QString QPixmapColorizeFilter::tr(char const *, char const *) + ?d_func@QProxyStyle@@ABEPBVQProxyStylePrivate@@XZ @ 3547 NONAME ; class QProxyStylePrivate const * QProxyStyle::d_func(void) const + ??1QDragEnterEvent@@UAE@XZ @ 3548 NONAME ; QDragEnterEvent::~QDragEnterEvent(void) + ??0QTransform@@QAE@XZ @ 3549 NONAME ; QTransform::QTransform(void) + ?pointSizeF@QFont@@QBEMXZ @ 3550 NONAME ; float QFont::pointSizeF(void) const + ?completer@QLineEdit@@QBEPAVQCompleter@@XZ @ 3551 NONAME ; class QCompleter * QLineEdit::completer(void) const + ?findBufferChanged@QClipboard@@IAEXXZ @ 3552 NONAME ; void QClipboard::findBufferChanged(void) + ?ensureData_helper@QPainterPath@@AAEXXZ @ 3553 NONAME ; void QPainterPath::ensureData_helper(void) + ?dragLeaveEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 3554 NONAME ; void QGraphicsProxyWidget::dragLeaveEvent(class QGraphicsSceneDragDropEvent *) + ?setWindowFlags@QWidget@@QAEXV?$QFlags@W4WindowType@Qt@@@@@Z @ 3555 NONAME ; void QWidget::setWindowFlags(class QFlags) + ?normalized@QVector2D@@QBE?AV1@XZ @ 3556 NONAME ; class QVector2D QVector2D::normalized(void) const + ?setOldSize@QGraphicsSceneResizeEvent@@QAEXABVQSizeF@@@Z @ 3557 NONAME ; void QGraphicsSceneResizeEvent::setOldSize(class QSizeF const &) + ?undoTextChanged@QUndoStack@@IAEXABVQString@@@Z @ 3558 NONAME ; void QUndoStack::undoTextChanged(class QString const &) + ??0QApplication@@QAE@AAHPAPAD_NH@Z @ 3559 NONAME ; QApplication::QApplication(int &, char * *, bool, int) + ?qt_metacast@QScrollArea@@UAEPAXPBD@Z @ 3560 NONAME ; void * QScrollArea::qt_metacast(char const *) + ??_EQDataWidgetMapper@@UAE@I@Z @ 3561 NONAME ; QDataWidgetMapper::~QDataWidgetMapper(unsigned int) + ?width@QFontMetricsF@@QBEMABVQString@@@Z @ 3562 NONAME ; float QFontMetricsF::width(class QString const &) const + ?overlinePos@QFontMetricsF@@QBEMXZ @ 3563 NONAME ; float QFontMetricsF::overlinePos(void) const + ?buttonText@QWizardPage@@QBE?AVQString@@W4WizardButton@QWizard@@@Z @ 3564 NONAME ; class QString QWizardPage::buttonText(enum QWizard::WizardButton) const + ?redo@QLineControl@@QAEXXZ @ 3565 NONAME ; void QLineControl::redo(void) + ?focusOutEvent@QLabel@@MAEXPAVQFocusEvent@@@Z @ 3566 NONAME ; void QLabel::focusOutEvent(class QFocusEvent *) + ??1QStyleHintReturnMask@@QAE@XZ @ 3567 NONAME ; QStyleHintReturnMask::~QStyleHintReturnMask(void) + ?setDashOffset@QPen@@QAEXM@Z @ 3568 NONAME ; void QPen::setDashOffset(float) + ?setClipping@QItemDelegate@@QAEX_N@Z @ 3569 NONAME ; void QItemDelegate::setClipping(bool) + ?itemDelegate@QComboBox@@QBEPAVQAbstractItemDelegate@@XZ @ 3570 NONAME ; class QAbstractItemDelegate * QComboBox::itemDelegate(void) const + ?tr@QStringListModel@@SA?AVQString@@PBD0@Z @ 3571 NONAME ; class QString QStringListModel::tr(char const *, char const *) + ?trUtf8@QToolBox@@SA?AVQString@@PBD0@Z @ 3572 NONAME ; class QString QToolBox::trUtf8(char const *, char const *) + ?drawPoints@QPaintEngine@@UAEXPBVQPointF@@H@Z @ 3573 NONAME ; void QPaintEngine::drawPoints(class QPointF const *, int) + ?event@QSplitter@@MAE_NPAVQEvent@@@Z @ 3574 NONAME ; bool QSplitter::event(class QEvent *) + ?columnMoved@QTableView@@IAEXHHH@Z @ 3575 NONAME ; void QTableView::columnMoved(int, int, int) + ??0QTextBlockFormat@@QAE@XZ @ 3576 NONAME ; QTextBlockFormat::QTextBlockFormat(void) + ?highlightSections@QHeaderView@@QBE_NXZ @ 3577 NONAME ; bool QHeaderView::highlightSections(void) const + ?isClippedAway@QGraphicsItemPrivate@@QBE_NXZ @ 3578 NONAME ; bool QGraphicsItemPrivate::isClippedAway(void) const + ??_EQInputDialog@@UAE@I@Z @ 3579 NONAME ; QInputDialog::~QInputDialog(unsigned int) + ??0QClipboard@@AAE@PAVQObject@@@Z @ 3580 NONAME ; QClipboard::QClipboard(class QObject *) + ?tr@QPictureFormatPlugin@@SA?AVQString@@PBD0H@Z @ 3581 NONAME ; class QString QPictureFormatPlugin::tr(char const *, char const *, int) + ?qt_pixmap_cleanup_hook@@3P6AXH@ZA @ 3582 NONAME ; void (*qt_pixmap_cleanup_hook)(int) + ?isWidget@QGraphicsItem@@QBE_NXZ @ 3583 NONAME ; bool QGraphicsItem::isWidget(void) const + ?setUniformRowHeights@QTreeView@@QAEX_N@Z @ 3584 NONAME ; void QTreeView::setUniformRowHeights(bool) + ??MQImageTextKeyLang@@QBE_NABV0@@Z @ 3585 NONAME ; bool QImageTextKeyLang::operator<(class QImageTextKeyLang const &) const + ?paste@QLineEdit@@QAEXXZ @ 3586 NONAME ; void QLineEdit::paste(void) + ?identifierName@QCoeFepInputContext@@UAE?AVQString@@XZ @ 3587 NONAME ; class QString QCoeFepInputContext::identifierName(void) + ??_EQMouseEvent@@UAE@I@Z @ 3588 NONAME ; QMouseEvent::~QMouseEvent(unsigned int) + ?setForegroundBrush@QGraphicsView@@QAEXABVQBrush@@@Z @ 3589 NONAME ; void QGraphicsView::setForegroundBrush(class QBrush const &) + ?setDocumentMode@QTabWidget@@QAEX_N@Z @ 3590 NONAME ; void QTabWidget::setDocumentMode(bool) + ?itemSelectionChanged@QListWidget@@IAEXXZ @ 3591 NONAME ; void QListWidget::itemSelectionChanged(void) + ??0QPaintEvent@@QAE@ABVQRegion@@@Z @ 3592 NONAME ; QPaintEvent::QPaintEvent(class QRegion const &) + ?keyReleaseEvent@QAbstractButton@@MAEXPAVQKeyEvent@@@Z @ 3593 NONAME ; void QAbstractButton::keyReleaseEvent(class QKeyEvent *) + ?warning@QMessageBox@@SAHPAVQWidget@@ABVQString@@1HHH@Z @ 3594 NONAME ; int QMessageBox::warning(class QWidget *, class QString const &, class QString const &, int, int, int) + ?united@QPainterPath@@QBE?AV1@ABV1@@Z @ 3595 NONAME ; class QPainterPath QPainterPath::united(class QPainterPath const &) const + ?setGeometry@QRubberBand@@QAEXABVQRect@@@Z @ 3596 NONAME ; void QRubberBand::setGeometry(class QRect const &) + ?data@QListWidgetItem@@UBE?AVQVariant@@H@Z @ 3597 NONAME ; class QVariant QListWidgetItem::data(int) const + ?metaObject@QEventDispatcherS60@@UBEPBUQMetaObject@@XZ @ 3598 NONAME ; struct QMetaObject const * QEventDispatcherS60::metaObject(void) const + ?setIntStep@QInputDialog@@QAEXH@Z @ 3599 NONAME ; void QInputDialog::setIntStep(int) + ?modifiersMask@QKeyEventTransition@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 3600 NONAME ; class QFlags QKeyEventTransition::modifiersMask(void) const + ?metaObject@QSessionManager@@UBEPBUQMetaObject@@XZ @ 3601 NONAME ; struct QMetaObject const * QSessionManager::metaObject(void) const + ??0QGraphicsItem@@IAE@AAVQGraphicsItemPrivate@@PAV0@PAVQGraphicsScene@@@Z @ 3602 NONAME ; QGraphicsItem::QGraphicsItem(class QGraphicsItemPrivate &, class QGraphicsItem *, class QGraphicsScene *) + ?insertPermanentWidget@QStatusBar@@QAEHHPAVQWidget@@H@Z @ 3603 NONAME ; int QStatusBar::insertPermanentWidget(int, class QWidget *, int) + ?jumpToNextImage@QImageReader@@QAE_NXZ @ 3604 NONAME ; bool QImageReader::jumpToNextImage(void) + ?indexOfChild@QTreeWidgetItem@@QBEHPAV1@@Z @ 3605 NONAME ; int QTreeWidgetItem::indexOfChild(class QTreeWidgetItem *) const + ?beforeAnimationStep@QGraphicsItemAnimation@@MAEXM@Z @ 3606 NONAME ; void QGraphicsItemAnimation::beforeAnimationStep(float) + ?drawPath@QPainter@@QAEXABVQPainterPath@@@Z @ 3607 NONAME ; void QPainter::drawPath(class QPainterPath const &) + ?setViewMode@QMdiArea@@QAEXW4ViewMode@1@@Z @ 3608 NONAME ; void QMdiArea::setViewMode(enum QMdiArea::ViewMode) + ??0QGridLayout@@QAE@XZ @ 3609 NONAME ; QGridLayout::QGridLayout(void) + ??0QGraphicsPolygonItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 3610 NONAME ; QGraphicsPolygonItem::QGraphicsPolygonItem(class QGraphicsItem *, class QGraphicsScene *) + ??6@YAAAVQDataStream@@AAV0@ABVQTextLength@@@Z @ 3611 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTextLength const &) + ?isSmoothlyScalable@QFontDatabase@@QBE_NABVQString@@0@Z @ 3612 NONAME ; bool QFontDatabase::isSmoothlyScalable(class QString const &, class QString const &) const + ?group@QAbstractButton@@QBEPAVQButtonGroup@@XZ @ 3613 NONAME ; class QButtonGroup * QAbstractButton::group(void) const + ??4QTextFragment@@QAEAAV0@ABV0@@Z @ 3614 NONAME ; class QTextFragment & QTextFragment::operator=(class QTextFragment const &) + ?metaObject@QRegExpValidator@@UBEPBUQMetaObject@@XZ @ 3615 NONAME ; struct QMetaObject const * QRegExpValidator::metaObject(void) const + ??0QSplashScreen@@QAE@PAVQWidget@@ABVQPixmap@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 3616 NONAME ; QSplashScreen::QSplashScreen(class QWidget *, class QPixmap const &, class QFlags) + ?setLine@QGraphicsLineItem@@QAEXABVQLineF@@@Z @ 3617 NONAME ; void QGraphicsLineItem::setLine(class QLineF const &) + ?d_func@QS60Style@@ABEPBVQS60StylePrivate@@XZ @ 3618 NONAME ; class QS60StylePrivate const * QS60Style::d_func(void) const + ?path@QGraphicsPathItem@@QBE?AVQPainterPath@@XZ @ 3619 NONAME ; class QPainterPath QGraphicsPathItem::path(void) const + ?setVerticalScrollBarPolicy@QAbstractScrollArea@@QAEXW4ScrollBarPolicy@Qt@@@Z @ 3620 NONAME ; void QAbstractScrollArea::setVerticalScrollBarPolicy(enum Qt::ScrollBarPolicy) + ?closeEvent@QWidget@@MAEXPAVQCloseEvent@@@Z @ 3621 NONAME ; void QWidget::closeEvent(class QCloseEvent *) + ?copyAvailable@QTextControl@@IAEX_N@Z @ 3622 NONAME ; void QTextControl::copyAvailable(bool) + ?setOriginCorner@QGridLayout@@QAEXW4Corner@Qt@@@Z @ 3623 NONAME ; void QGridLayout::setOriginCorner(enum Qt::Corner) + ?d_func@QLayout@@AAEPAVQLayoutPrivate@@XZ @ 3624 NONAME ; class QLayoutPrivate * QLayout::d_func(void) + ?position@QTextFragment@@QBEHXZ @ 3625 NONAME ; int QTextFragment::position(void) const + ?indexAdditionalFormats@QTextEngine@@QAEXXZ @ 3626 NONAME ; void QTextEngine::indexAdditionalFormats(void) + ?testOption@QInputDialog@@QBE_NW4InputDialogOption@1@@Z @ 3627 NONAME ; bool QInputDialog::testOption(enum QInputDialog::InputDialogOption) const + ?mouseButtons@QDropEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 3628 NONAME ; class QFlags QDropEvent::mouseButtons(void) const + ?removeColumns@QStandardItemModel@@UAE_NHHABVQModelIndex@@@Z @ 3629 NONAME ; bool QStandardItemModel::removeColumns(int, int, class QModelIndex const &) + ??4QStyleOptionHeader@@QAEAAV0@ABV0@@Z @ 3630 NONAME ; class QStyleOptionHeader & QStyleOptionHeader::operator=(class QStyleOptionHeader const &) + ?addRow@QFormLayout@@QAEXPAVQWidget@@PAVQLayout@@@Z @ 3631 NONAME ; void QFormLayout::addRow(class QWidget *, class QLayout *) + ?documentLayout@QTextDocument@@QBEPAVQAbstractTextDocumentLayout@@XZ @ 3632 NONAME ; class QAbstractTextDocumentLayout * QTextDocument::documentLayout(void) const + ??1QGraphicsAnchor@@UAE@XZ @ 3633 NONAME ; QGraphicsAnchor::~QGraphicsAnchor(void) + ?resolveDepth@QGraphicsItemPrivate@@QAEXXZ @ 3634 NONAME ; void QGraphicsItemPrivate::resolveDepth(void) + ?setEscapeButton@QMessageBox@@QAEXW4StandardButton@1@@Z @ 3635 NONAME ; void QMessageBox::setEscapeButton(enum QMessageBox::StandardButton) + ?setTextEchoMode@QInputDialog@@QAEXW4EchoMode@QLineEdit@@@Z @ 3636 NONAME ; void QInputDialog::setTextEchoMode(enum QLineEdit::EchoMode) + ?trUtf8@QPixmapDropShadowFilter@@SA?AVQString@@PBD0H@Z @ 3637 NONAME ; class QString QPixmapDropShadowFilter::trUtf8(char const *, char const *, int) + ?setNameFilterDetailsVisible@QFileDialog@@QAEX_N@Z @ 3638 NONAME ; void QFileDialog::setNameFilterDetailsVisible(bool) + ?rangeChanged@QAbstractSlider@@IAEXHH@Z @ 3639 NONAME ; void QAbstractSlider::rangeChanged(int, int) + ?tabToolTip@QTabBar@@QBE?AVQString@@H@Z @ 3640 NONAME ; class QString QTabBar::tabToolTip(int) const + ?getStaticMetaObject@QHBoxLayout@@SAABUQMetaObject@@XZ @ 3641 NONAME ; struct QMetaObject const & QHBoxLayout::getStaticMetaObject(void) + ?filterEvent@QInputContext@@UAE_NPBVQEvent@@@Z @ 3642 NONAME ; bool QInputContext::filterEvent(class QEvent const *) + ??_EQInputContextFactoryInterface@@UAE@I@Z @ 3643 NONAME ; QInputContextFactoryInterface::~QInputContextFactoryInterface(unsigned int) + ?textAlignment@QListWidgetItem@@QBEHXZ @ 3644 NONAME ; int QListWidgetItem::textAlignment(void) const + ?setCustomColor@QColorDialog@@SAXHI@Z @ 3645 NONAME ; void QColorDialog::setCustomColor(int, unsigned int) + ?changeEvent@QTabWidget@@MAEXPAVQEvent@@@Z @ 3646 NONAME ; void QTabWidget::changeEvent(class QEvent *) + ?translated@QPainterPath@@QBE?AV1@ABVQPointF@@@Z @ 3647 NONAME ; class QPainterPath QPainterPath::translated(class QPointF const &) const + ?deviceMatrix@QPainter@@QBEABVQMatrix@@XZ @ 3648 NONAME ; class QMatrix const & QPainter::deviceMatrix(void) const + ?maxVisibleItems@QCompleter@@QBEHXZ @ 3649 NONAME ; int QCompleter::maxVisibleItems(void) const + ??_EQLabel@@UAE@I@Z @ 3650 NONAME ; QLabel::~QLabel(unsigned int) + ?currentCharFormatChanged@QTextControl@@IAEXABVQTextCharFormat@@@Z @ 3651 NONAME ; void QTextControl::currentCharFormatChanged(class QTextCharFormat const &) + ?setAutoCompletion@QComboBox@@QAEX_N@Z @ 3652 NONAME ; void QComboBox::setAutoCompletion(bool) + ?currentItem@QTreeWidget@@QBEPAVQTreeWidgetItem@@XZ @ 3653 NONAME ; class QTreeWidgetItem * QTreeWidget::currentItem(void) const + ?setEditorData@QStyledItemDelegate@@UBEXPAVQWidget@@ABVQModelIndex@@@Z @ 3654 NONAME ; void QStyledItemDelegate::setEditorData(class QWidget *, class QModelIndex const &) const + ?normal@QVector3D@@SA?AV1@ABV1@00@Z @ 3655 NONAME ; class QVector3D QVector3D::normal(class QVector3D const &, class QVector3D const &, class QVector3D const &) + ??6@YAAAVQDataStream@@AAV0@ABVQVector4D@@@Z @ 3656 NONAME ; class QDataStream & operator<<(class QDataStream &, class QVector4D const &) + ?tr@QGuiPlatformPlugin@@SA?AVQString@@PBD0H@Z @ 3657 NONAME ; class QString QGuiPlatformPlugin::tr(char const *, char const *, int) + ?opacity@QGraphicsOpacityEffect@@QBEMXZ @ 3658 NONAME ; float QGraphicsOpacityEffect::opacity(void) const + ?d_func@QRubberBand@@AAEPAVQRubberBandPrivate@@XZ @ 3659 NONAME ; class QRubberBandPrivate * QRubberBand::d_func(void) + ?bits@QImage@@QBEPBEXZ @ 3660 NONAME ; unsigned char const * QImage::bits(void) const + ?d_func@QSessionManager@@ABEPBVQSessionManagerPrivate@@XZ @ 3661 NONAME ; class QSessionManagerPrivate const * QSessionManager::d_func(void) const + ?addSeparator@QMenuBar@@QAEPAVQAction@@XZ @ 3662 NONAME ; class QAction * QMenuBar::addSeparator(void) + ?mouseMoveEvent@QWidget@@MAEXPAVQMouseEvent@@@Z @ 3663 NONAME ; void QWidget::mouseMoveEvent(class QMouseEvent *) + ?verticalHeaderFormat@QCalendarWidget@@QBE?AW4VerticalHeaderFormat@1@XZ @ 3664 NONAME ; enum QCalendarWidget::VerticalHeaderFormat QCalendarWidget::verticalHeaderFormat(void) const + ?additionalFormats@QTextLayout@@QBE?AV?$QList@UFormatRange@QTextLayout@@@@XZ @ 3665 NONAME ; class QList QTextLayout::additionalFormats(void) const + ?tr@QGraphicsOpacityEffect@@SA?AVQString@@PBD0H@Z @ 3666 NONAME ; class QString QGraphicsOpacityEffect::tr(char const *, char const *, int) + ?setEnabled_helper@QWidgetPrivate@@QAEX_N@Z @ 3667 NONAME ; void QWidgetPrivate::setEnabled_helper(bool) + ??4QStandardItem@@IAEAAV0@ABV0@@Z @ 3668 NONAME ; class QStandardItem & QStandardItem::operator=(class QStandardItem const &) + ?y@QContextMenuEvent@@QBEHXZ @ 3669 NONAME ; int QContextMenuEvent::y(void) const + ?showMessage@QErrorMessage@@QAEXABVQString@@@Z @ 3670 NONAME ; void QErrorMessage::showMessage(class QString const &) + ?setWritingSystem@QFontComboBox@@QAEXW4WritingSystem@QFontDatabase@@@Z @ 3671 NONAME ; void QFontComboBox::setWritingSystem(enum QFontDatabase::WritingSystem) + ?top@QIntValidator@@QBEHXZ @ 3672 NONAME ; int QIntValidator::top(void) const + ?d_func@QGestureEvent@@ABEPBVQGestureEventPrivate@@XZ @ 3673 NONAME ; class QGestureEventPrivate const * QGestureEvent::d_func(void) const + ?size@QPixmap@@QBE?AVQSize@@XZ @ 3674 NONAME ; class QSize QPixmap::size(void) const + ?paintEvent@QStatusBar@@MAEXPAVQPaintEvent@@@Z @ 3675 NONAME ; void QStatusBar::paintEvent(class QPaintEvent *) + ??0QPalette@@QAE@ABVQColor@@0@Z @ 3676 NONAME ; QPalette::QPalette(class QColor const &, class QColor const &) + ?windowType@QGraphicsWidget@@QBE?AW4WindowType@Qt@@XZ @ 3677 NONAME ; enum Qt::WindowType QGraphicsWidget::windowType(void) const + ?setFrame@QLineEdit@@QAEX_N@Z @ 3678 NONAME ; void QLineEdit::setFrame(bool) + ?focusOutEvent@QMenuBar@@MAEXPAVQFocusEvent@@@Z @ 3679 NONAME ; void QMenuBar::focusOutEvent(class QFocusEvent *) + ?detach@QIcon@@QAEXXZ @ 3680 NONAME ; void QIcon::detach(void) + ?count@QTabWidget@@QBEHXZ @ 3681 NONAME ; int QTabWidget::count(void) const + ?sizeHint@QAbstractScrollArea@@UBE?AVQSize@@XZ @ 3682 NONAME ; class QSize QAbstractScrollArea::sizeHint(void) const + ??_EQStrokerOps@@UAE@I@Z @ 3683 NONAME ; QStrokerOps::~QStrokerOps(unsigned int) + ?columnWidthConstraints@QTextTableFormat@@QBE?AV?$QVector@VQTextLength@@@@XZ @ 3684 NONAME ; class QVector QTextTableFormat::columnWidthConstraints(void) const + ?textInteractionFlags@QGraphicsTextItem@@QBE?AV?$QFlags@W4TextInteractionFlag@Qt@@@@XZ @ 3685 NONAME ; class QFlags QGraphicsTextItem::textInteractionFlags(void) const + ??0QTreeWidgetItem@@QAE@PAVQTreeWidget@@PAV0@H@Z @ 3686 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidget *, class QTreeWidgetItem *, int) + ??5@YAAAVQDataStream@@AAV0@AAVQBrush@@@Z @ 3687 NONAME ; class QDataStream & operator>>(class QDataStream &, class QBrush &) + ??XQMatrix4x4@@QAEAAV0@ABV0@@Z @ 3688 NONAME ; class QMatrix4x4 & QMatrix4x4::operator*=(class QMatrix4x4 const &) + ??0QMovie@@QAE@ABVQString@@ABVQByteArray@@PAVQObject@@@Z @ 3689 NONAME ; QMovie::QMovie(class QString const &, class QByteArray const &, class QObject *) + ?d_func@QGraphicsProxyWidget@@ABEPBVQGraphicsProxyWidgetPrivate@@XZ @ 3690 NONAME ; class QGraphicsProxyWidgetPrivate const * QGraphicsProxyWidget::d_func(void) const + ?trueMatrix@QPixmap@@SA?AVQMatrix@@ABV2@HH@Z @ 3691 NONAME ; class QMatrix QPixmap::trueMatrix(class QMatrix const &, int, int) + ??0QPixmap@@QAE@PAVQPixmapData@@@Z @ 3692 NONAME ; QPixmap::QPixmap(class QPixmapData *) + ?setDefaultAlignment@QHeaderView@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 3693 NONAME ; void QHeaderView::setDefaultAlignment(class QFlags) + ?d_func@QGraphicsSimpleTextItem@@ABEPBVQGraphicsSimpleTextItemPrivate@@XZ @ 3694 NONAME ; class QGraphicsSimpleTextItemPrivate const * QGraphicsSimpleTextItem::d_func(void) const + ??1QTextEdit@@UAE@XZ @ 3695 NONAME ; QTextEdit::~QTextEdit(void) + ?permissions@QFileSystemModel@@QBE?AV?$QFlags@W4Permission@QFile@@@@ABVQModelIndex@@@Z @ 3696 NONAME ; class QFlags QFileSystemModel::permissions(class QModelIndex const &) const + ?rect@QWindowSurface@@QBE?AVQRect@@PBVQWidget@@@Z @ 3697 NONAME ; class QRect QWindowSurface::rect(class QWidget const *) const + ?textValueSelected@QInputDialog@@IAEXABVQString@@@Z @ 3698 NONAME ; void QInputDialog::textValueSelected(class QString const &) + ?qt_metacall@QMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3699 NONAME ; int QMainWindow::qt_metacall(enum QMetaObject::Call, int, void * *) + ?modifiersMask@QMouseEventTransition@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 3700 NONAME ; class QFlags QMouseEventTransition::modifiersMask(void) const + ?trUtf8@QFileDialog@@SA?AVQString@@PBD0@Z @ 3701 NONAME ; class QString QFileDialog::trUtf8(char const *, char const *) + ??0QGraphicsRectItem@@QAE@MMMMPAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 3702 NONAME ; QGraphicsRectItem::QGraphicsRectItem(float, float, float, float, class QGraphicsItem *, class QGraphicsScene *) + ?alignment@QGraphicsLinearLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@PAVQGraphicsLayoutItem@@@Z @ 3703 NONAME ; class QFlags QGraphicsLinearLayout::alignment(class QGraphicsLayoutItem *) const + ?verticalSpacing@QFormLayout@@QBEHXZ @ 3704 NONAME ; int QFormLayout::verticalSpacing(void) const + ??ZQTreeWidgetItemIterator@@QAEAAV0@H@Z @ 3705 NONAME ; class QTreeWidgetItemIterator & QTreeWidgetItemIterator::operator-=(int) + ?setStretchFactor@QBoxLayout@@QAE_NPAVQLayout@@H@Z @ 3706 NONAME ; bool QBoxLayout::setStretchFactor(class QLayout *, int) + ?tr@QMdiSubWindow@@SA?AVQString@@PBD0@Z @ 3707 NONAME ; class QString QMdiSubWindow::tr(char const *, char const *) + ?qt_metacast@QAbstractScrollArea@@UAEPAXPBD@Z @ 3708 NONAME ; void * QAbstractScrollArea::qt_metacast(char const *) + ?drawLine@QPainter@@QAEXABVQPointF@@0@Z @ 3709 NONAME ; void QPainter::drawLine(class QPointF const &, class QPointF const &) + ?scroll@QRasterWindowSurface@@UAE_NABVQRegion@@HH@Z @ 3710 NONAME ; bool QRasterWindowSurface::scroll(class QRegion const &, int, int) + ?key@QIconEngineV2@@UBE?AVQString@@XZ @ 3711 NONAME ; class QString QIconEngineV2::key(void) const + ?drawItemPixmap@QProxyStyle@@UBEXPAVQPainter@@ABVQRect@@HABVQPixmap@@@Z @ 3712 NONAME ; void QProxyStyle::drawItemPixmap(class QPainter *, class QRect const &, int, class QPixmap const &) const + ?drawControl@QProxyStyle@@UBEXW4ControlElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 3713 NONAME ; void QProxyStyle::drawControl(enum QStyle::ControlElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?pos@QWheelEvent@@QBEABVQPoint@@XZ @ 3714 NONAME ; class QPoint const & QWheelEvent::pos(void) const + ?viewportEvent@QAbstractItemView@@MAE_NPAVQEvent@@@Z @ 3715 NONAME ; bool QAbstractItemView::viewportEvent(class QEvent *) + ?trUtf8@QTableWidget@@SA?AVQString@@PBD0H@Z @ 3716 NONAME ; class QString QTableWidget::trUtf8(char const *, char const *, int) + ?setMiterLimit@QStroker@@QAEXM@Z @ 3717 NONAME ; void QStroker::setMiterLimit(float) + ?setLineWrapMode@QPlainTextEdit@@QAEXW4LineWrapMode@1@@Z @ 3718 NONAME ; void QPlainTextEdit::setLineWrapMode(enum QPlainTextEdit::LineWrapMode) + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 3719 NONAME ; class QList QGraphicsScene::items(void) const + ?tightBoundingBox@QFontEngine@@QAE?AUglyph_metrics_t@@ABUQGlyphLayout@@@Z @ 3720 NONAME ; struct glyph_metrics_t QFontEngine::tightBoundingBox(struct QGlyphLayout const &) + ?setXScale@QGraphicsScale@@QAEXM@Z @ 3721 NONAME ; void QGraphicsScale::setXScale(float) + ??6@YAAAVQDataStream@@AAV0@ABVQRegion@@@Z @ 3722 NONAME ; class QDataStream & operator<<(class QDataStream &, class QRegion const &) + ?setMaximumDate@QCalendarWidget@@QAEXABVQDate@@@Z @ 3723 NONAME ; void QCalendarWidget::setMaximumDate(class QDate const &) + ?qt_metacast@QWizardPage@@UAEPAXPBD@Z @ 3724 NONAME ; void * QWizardPage::qt_metacast(char const *) + ?setScaleAt@QGraphicsItemAnimation@@QAEXMMM@Z @ 3725 NONAME ; void QGraphicsItemAnimation::setScaleAt(float, float, float) + ?unsetLayoutDirection@QGraphicsWidget@@QAEXXZ @ 3726 NONAME ; void QGraphicsWidget::unsetLayoutDirection(void) + ?tr@QDockWidgetLayout@@SA?AVQString@@PBD0@Z @ 3727 NONAME ; class QString QDockWidgetLayout::tr(char const *, char const *) + ?clone@QTextDocument@@QBEPAV1@PAVQObject@@@Z @ 3728 NONAME ; class QTextDocument * QTextDocument::clone(class QObject *) const + ?height@QFontMetricsF@@QBEMXZ @ 3729 NONAME ; float QFontMetricsF::height(void) const + ?appendRow@QStandardItem@@QAEXPAV1@@Z @ 3730 NONAME ; void QStandardItem::appendRow(class QStandardItem *) + ?drawEllipse@QPainter@@QAEXABVQPointF@@MM@Z @ 3731 NONAME ; void QPainter::drawEllipse(class QPointF const &, float, float) + ?alignment@QTextEdit@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 3732 NONAME ; class QFlags QTextEdit::alignment(void) const + ?currentBlockUserData@QSyntaxHighlighter@@IBEPAVQTextBlockUserData@@XZ @ 3733 NONAME ; class QTextBlockUserData * QSyntaxHighlighter::currentBlockUserData(void) const + ?translate@QMatrix4x4@@QAEAAV1@MM@Z @ 3734 NONAME ; class QMatrix4x4 & QMatrix4x4::translate(float, float) + ?metaObject@QTabBar@@UBEPBUQMetaObject@@XZ @ 3735 NONAME ; struct QMetaObject const * QTabBar::metaObject(void) const + ?focusInEvent@QGraphicsView@@MAEXPAVQFocusEvent@@@Z @ 3736 NONAME ; void QGraphicsView::focusInEvent(class QFocusEvent *) + ?createExtendedMouseEvent@QMouseEvent@@SAPAV1@W4Type@QEvent@@ABVQPointF@@ABVQPoint@@W4MouseButton@Qt@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 3737 NONAME ; class QMouseEvent * QMouseEvent::createExtendedMouseEvent(enum QEvent::Type, class QPointF const &, class QPoint const &, enum Qt::MouseButton, class QFlags, class QFlags) + ?keyPressEvent@QLineEdit@@MAEXPAVQKeyEvent@@@Z @ 3738 NONAME ; void QLineEdit::keyPressEvent(class QKeyEvent *) + ??1QStyleOptionMenuItem@@QAE@XZ @ 3739 NONAME ; QStyleOptionMenuItem::~QStyleOptionMenuItem(void) + ?qt_pixmap_id@@YA_JABVQPixmap@@@Z @ 3740 NONAME ; long long qt_pixmap_id(class QPixmap const &) + ?keypadNavigationEnabled@QApplication@@SA_NXZ @ 3741 NONAME ; bool QApplication::keypadNavigationEnabled(void) + ?editorDestroyed@QAbstractItemView@@MAEXPAVQObject@@@Z @ 3742 NONAME ; void QAbstractItemView::editorDestroyed(class QObject *) + ??0QTableWidgetSelectionRange@@QAE@HHHH@Z @ 3743 NONAME ; QTableWidgetSelectionRange::QTableWidgetSelectionRange(int, int, int, int) + ??0QTextLayout@@QAE@ABVQString@@@Z @ 3744 NONAME ; QTextLayout::QTextLayout(class QString const &) + ?clear@QDateTimeEdit@@UAEXXZ @ 3745 NONAME ; void QDateTimeEdit::clear(void) + ??0QStyleOptionProgressBar@@QAE@ABV0@@Z @ 3746 NONAME ; QStyleOptionProgressBar::QStyleOptionProgressBar(class QStyleOptionProgressBar const &) + ?tr@QGraphicsEffect@@SA?AVQString@@PBD0@Z @ 3747 NONAME ; class QString QGraphicsEffect::tr(char const *, char const *) + ?allWidgets@QApplication@@SA?AV?$QList@PAVQWidget@@@@XZ @ 3748 NONAME ; class QList QApplication::allWidgets(void) + ?staticMetaObject@QDockWidget@@2UQMetaObject@@B @ 3749 NONAME ; struct QMetaObject const QDockWidget::staticMetaObject + ??0QGraphicsSimpleTextItem@@QAE@ABVQString@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 3750 NONAME ; QGraphicsSimpleTextItem::QGraphicsSimpleTextItem(class QString const &, class QGraphicsItem *, class QGraphicsScene *) + ?event@QStackedWidget@@MAE_NPAVQEvent@@@Z @ 3751 NONAME ; bool QStackedWidget::event(class QEvent *) + ??0iterator@QTextFrame@@QAE@ABV01@@Z @ 3752 NONAME ; QTextFrame::iterator::iterator(class QTextFrame::iterator const &) + ?getStaticMetaObject@QTextList@@SAABUQMetaObject@@XZ @ 3753 NONAME ; struct QMetaObject const & QTextList::getStaticMetaObject(void) + ?setAlignment@QGraphicsView@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 3754 NONAME ; void QGraphicsView::setAlignment(class QFlags) + ?drawLines@QPaintEngineEx@@UAEXPBVQLineF@@H@Z @ 3755 NONAME ; void QPaintEngineEx::drawLines(class QLineF const *, int) + ?valueChanged@QDoubleSpinBox@@IAEXABVQString@@@Z @ 3756 NONAME ; void QDoubleSpinBox::valueChanged(class QString const &) + ?rotate@QMatrix@@QAEAAV1@M@Z @ 3757 NONAME ; class QMatrix & QMatrix::rotate(float) + ?showNextYear@QCalendarWidget@@QAEXXZ @ 3758 NONAME ; void QCalendarWidget::showNextYear(void) + ?trUtf8@QInputContext@@SA?AVQString@@PBD0@Z @ 3759 NONAME ; class QString QInputContext::trUtf8(char const *, char const *) + ?textFormat@QLabel@@QBE?AW4TextFormat@Qt@@XZ @ 3760 NONAME ; enum Qt::TextFormat QLabel::textFormat(void) const + ?indexFromItem@QTreeWidget@@IBE?AVQModelIndex@@PAVQTreeWidgetItem@@H@Z @ 3761 NONAME ; class QModelIndex QTreeWidget::indexFromItem(class QTreeWidgetItem *, int) const + ?staticMetaObject@QSound@@2UQMetaObject@@B @ 3762 NONAME ; struct QMetaObject const QSound::staticMetaObject + ?setLayoutDirection@QPainter@@QAEXW4LayoutDirection@Qt@@@Z @ 3763 NONAME ; void QPainter::setLayoutDirection(enum Qt::LayoutDirection) + ?trUtf8@QFocusFrame@@SA?AVQString@@PBD0H@Z @ 3764 NONAME ; class QString QFocusFrame::trUtf8(char const *, char const *, int) + ?tr@QFormLayout@@SA?AVQString@@PBD0@Z @ 3765 NONAME ; class QString QFormLayout::tr(char const *, char const *) + ?staticMetaObject@QMessageBox@@2UQMetaObject@@B @ 3766 NONAME ; struct QMetaObject const QMessageBox::staticMetaObject + ?ownsClipboard@QClipboard@@QBE_NXZ @ 3767 NONAME ; bool QClipboard::ownsClipboard(void) const + ?find@QTextEdit@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 3768 NONAME ; bool QTextEdit::find(class QString const &, class QFlags) + ?isItemHidden@QTreeWidget@@QBE_NPBVQTreeWidgetItem@@@Z @ 3769 NONAME ; bool QTreeWidget::isItemHidden(class QTreeWidgetItem const *) const + ?statusTip@QStandardItem@@QBE?AVQString@@XZ @ 3770 NONAME ; class QString QStandardItem::statusTip(void) const + ?d_func@QStackedWidget@@ABEPBVQStackedWidgetPrivate@@XZ @ 3771 NONAME ; class QStackedWidgetPrivate const * QStackedWidget::d_func(void) const + ?setPrefix@QSpinBox@@QAEXABVQString@@@Z @ 3772 NONAME ; void QSpinBox::setPrefix(class QString const &) + ?getStaticMetaObject@QDockWidget@@SAABUQMetaObject@@XZ @ 3773 NONAME ; struct QMetaObject const & QDockWidget::getStaticMetaObject(void) + ??1QAbstractUndoItem@@UAE@XZ @ 3774 NONAME ; QAbstractUndoItem::~QAbstractUndoItem(void) + ?data_ptr@QImage@@QAEAAPAUQImageData@@XZ @ 3775 NONAME ; struct QImageData * & QImage::data_ptr(void) + ?matchesFlags@QTreeWidgetItemIterator@@ABE_NPBVQTreeWidgetItem@@@Z @ 3776 NONAME ; bool QTreeWidgetItemIterator::matchesFlags(class QTreeWidgetItem const *) const + ?heightForWidth@QWidget@@UBEHH@Z @ 3777 NONAME ; int QWidget::heightForWidth(int) const + ?createMaskFromColor@QImage@@QBE?AV1@IW4MaskMode@Qt@@@Z @ 3778 NONAME ; class QImage QImage::createMaskFromColor(unsigned int, enum Qt::MaskMode) const + ?path@QMouseEventTransition@@QBE?AVQPainterPath@@XZ @ 3779 NONAME ; class QPainterPath QMouseEventTransition::path(void) const + ?validate@QRegExpValidator@@UBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 3780 NONAME ; enum QValidator::State QRegExpValidator::validate(class QString &, int &) const + ?shear@QGraphicsItem@@QAEXMM@Z @ 3781 NONAME ; void QGraphicsItem::shear(float, float) + ?foregroundBrush@QGraphicsView@@QBE?AVQBrush@@XZ @ 3782 NONAME ; class QBrush QGraphicsView::foregroundBrush(void) const + ?proposedAction@QDropEvent@@QBE?AW4DropAction@Qt@@XZ @ 3783 NONAME ; enum Qt::DropAction QDropEvent::proposedAction(void) const + ?hitButton@QToolButton@@MBE_NABVQPoint@@@Z @ 3784 NONAME ; bool QToolButton::hitButton(class QPoint const &) const + ?textFormat@QMessageBox@@QBE?AW4TextFormat@Qt@@XZ @ 3785 NONAME ; enum Qt::TextFormat QMessageBox::textFormat(void) const + ?polishEvent@QGraphicsWidget@@MAEXXZ @ 3786 NONAME ; void QGraphicsWidget::polishEvent(void) + ?testTerm@Parser@QCss@@QAE_NXZ @ 3787 NONAME ; bool QCss::Parser::testTerm(void) + ?d_func@QToolBox@@AAEPAVQToolBoxPrivate@@XZ @ 3788 NONAME ; class QToolBoxPrivate * QToolBox::d_func(void) + ?isDir@QDirModel@@QBE_NABVQModelIndex@@@Z @ 3789 NONAME ; bool QDirModel::isDir(class QModelIndex const &) const + ??0QStyleOptionTabBarBaseV2@@QAE@ABV0@@Z @ 3790 NONAME ; QStyleOptionTabBarBaseV2::QStyleOptionTabBarBaseV2(class QStyleOptionTabBarBaseV2 const &) + ?qt_metacall@QItemSelectionModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3791 NONAME ; int QItemSelectionModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?maxVisibleItems@QComboBox@@QBEHXZ @ 3792 NONAME ; int QComboBox::maxVisibleItems(void) const + ?isDetached@QKeySequence@@QBE_NXZ @ 3793 NONAME ; bool QKeySequence::isDetached(void) const + ?d_func@QGraphicsScene@@AAEPAVQGraphicsScenePrivate@@XZ @ 3794 NONAME ; class QGraphicsScenePrivate * QGraphicsScene::d_func(void) + ?encodedData@QDropEvent@@UBE?AVQByteArray@@PBD@Z @ 3795 NONAME ; class QByteArray QDropEvent::encodedData(char const *) const + ??0QBrush@@QAE@W4BrushStyle@Qt@@@Z @ 3796 NONAME ; QBrush::QBrush(enum Qt::BrushStyle) + ??0QGraphicsView@@QAE@PAVQGraphicsScene@@PAVQWidget@@@Z @ 3797 NONAME ; QGraphicsView::QGraphicsView(class QGraphicsScene *, class QWidget *) + ?createEventDispatcher@QApplicationPrivate@@UAEXXZ @ 3798 NONAME ; void QApplicationPrivate::createEventDispatcher(void) + ??0QUndoView@@QAE@PAVQUndoStack@@PAVQWidget@@@Z @ 3799 NONAME ; QUndoView::QUndoView(class QUndoStack *, class QWidget *) + ?redoAvailable@QPlainTextEdit@@IAEX_N@Z @ 3800 NONAME ; void QPlainTextEdit::redoAvailable(bool) + ?commonAncestorItem@QGraphicsItem@@QBEPAV1@PBV1@@Z @ 3801 NONAME ; class QGraphicsItem * QGraphicsItem::commonAncestorItem(class QGraphicsItem const *) const + ?tr@QDirModel@@SA?AVQString@@PBD0@Z @ 3802 NONAME ; class QString QDirModel::tr(char const *, char const *) + ?lightness@QColor@@QBEHXZ @ 3803 NONAME ; int QColor::lightness(void) const + ?arrowType@QToolButton@@QBE?AW4ArrowType@Qt@@XZ @ 3804 NONAME ; enum Qt::ArrowType QToolButton::arrowType(void) const + ?tr@QTextBlockGroup@@SA?AVQString@@PBD0@Z @ 3805 NONAME ; class QString QTextBlockGroup::tr(char const *, char const *) + ?rgba@QColor@@QBEIXZ @ 3806 NONAME ; unsigned int QColor::rgba(void) const + ?paste@QTextEdit@@QAEXXZ @ 3807 NONAME ; void QTextEdit::paste(void) + ?load@QPixmap@@QAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 3808 NONAME ; bool QPixmap::load(class QString const &, char const *, class QFlags) + ??0QStyleOptionToolBar@@IAE@H@Z @ 3809 NONAME ; QStyleOptionToolBar::QStyleOptionToolBar(int) + ?setForegroundRole@QWidget@@QAEXW4ColorRole@QPalette@@@Z @ 3810 NONAME ; void QWidget::setForegroundRole(enum QPalette::ColorRole) + ?applyHints@QCoeFepInputContext@@AAEXV?$QFlags@W4InputMethodHint@Qt@@@@@Z @ 3811 NONAME ; void QCoeFepInputContext::applyHints(class QFlags) + ?visualAlignment@QStyle@@SA?AV?$QFlags@W4AlignmentFlag@Qt@@@@W4LayoutDirection@Qt@@V2@@Z @ 3812 NONAME ; class QFlags QStyle::visualAlignment(enum Qt::LayoutDirection, class QFlags) + ?scrollContentsBy@QScrollArea@@MAEXHH@Z @ 3813 NONAME ; void QScrollArea::scrollContentsBy(int, int) + ?itemsExpandable@QTreeView@@QBE_NXZ @ 3814 NONAME ; bool QTreeView::itemsExpandable(void) const + ?trUtf8@QLCDNumber@@SA?AVQString@@PBD0H@Z @ 3815 NONAME ; class QString QLCDNumber::trUtf8(char const *, char const *, int) + ?qt_defaultDpi@@YAHXZ @ 3816 NONAME ; int qt_defaultDpi(void) + ?minimumSizeHint@QMenuBar@@UBE?AVQSize@@XZ @ 3817 NONAME ; class QSize QMenuBar::minimumSizeHint(void) const + ?cursorRect@QPlainTextEdit@@QBE?AVQRect@@XZ @ 3818 NONAME ; class QRect QPlainTextEdit::cursorRect(void) const + ?paint@QGraphicsItemGroup@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 3819 NONAME ; void QGraphicsItemGroup::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?setTabOrder@QWidget@@SAXPAV1@0@Z @ 3820 NONAME ; void QWidget::setTabOrder(class QWidget *, class QWidget *) + ?grabGesture@QWidget@@QAEXW4GestureType@Qt@@W4GestureContext@3@@Z @ 3821 NONAME ; void QWidget::grabGesture(enum Qt::GestureType, enum Qt::GestureContext) + ??0QGraphicsRectItem@@QAE@ABVQRectF@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 3822 NONAME ; QGraphicsRectItem::QGraphicsRectItem(class QRectF const &, class QGraphicsItem *, class QGraphicsScene *) + ??0QStyleOptionTabV2@@QAE@XZ @ 3823 NONAME ; QStyleOptionTabV2::QStyleOptionTabV2(void) + ?clearString@QLineControl@@ABE?AVQString@@II@Z @ 3824 NONAME ; class QString QLineControl::clearString(unsigned int, unsigned int) const + ?setVerticalAlignment@QTextCharFormat@@QAEXW4VerticalAlignment@1@@Z @ 3825 NONAME ; void QTextCharFormat::setVerticalAlignment(enum QTextCharFormat::VerticalAlignment) + ??0QStyleOptionTitleBar@@IAE@H@Z @ 3826 NONAME ; QStyleOptionTitleBar::QStyleOptionTitleBar(int) + ?paintEvent@QMdiSubWindow@@MAEXPAVQPaintEvent@@@Z @ 3827 NONAME ; void QMdiSubWindow::paintEvent(class QPaintEvent *) + ?setSortRole@QSortFilterProxyModel@@QAEXH@Z @ 3828 NONAME ; void QSortFilterProxyModel::setSortRole(int) + ?d_func@QPixmapDropShadowFilter@@ABEPBVQPixmapDropShadowFilterPrivate@@XZ @ 3829 NONAME ; class QPixmapDropShadowFilterPrivate const * QPixmapDropShadowFilter::d_func(void) const + ?minimumWidth@QTextLayout@@QBEMXZ @ 3830 NONAME ; float QTextLayout::minimumWidth(void) const + ?nextCheckState@QAbstractButton@@MAEXXZ @ 3831 NONAME ; void QAbstractButton::nextCheckState(void) + ?forward@QTextBrowser@@UAEXXZ @ 3832 NONAME ; void QTextBrowser::forward(void) + ?adjoint@QTransform@@QBE?AV1@XZ @ 3833 NONAME ; class QTransform QTransform::adjoint(void) const + ?addToolBarBreak@QMainWindow@@QAEXW4ToolBarArea@Qt@@@Z @ 3834 NONAME ; void QMainWindow::addToolBarBreak(enum Qt::ToolBarArea) + ??0QLayout@@QAE@PAVQWidget@@@Z @ 3835 NONAME ; QLayout::QLayout(class QWidget *) + ?addButton@QDialogButtonBox@@QAEPAVQPushButton@@W4StandardButton@1@@Z @ 3836 NONAME ; class QPushButton * QDialogButtonBox::addButton(enum QDialogButtonBox::StandardButton) + ??0QItemSelectionRange@@QAE@ABV0@@Z @ 3837 NONAME ; QItemSelectionRange::QItemSelectionRange(class QItemSelectionRange const &) + ?takeItem@QTableWidget@@QAEPAVQTableWidgetItem@@HH@Z @ 3838 NONAME ; class QTableWidgetItem * QTableWidget::takeItem(int, int) + ??0QTextLayout@@QAE@ABVQTextBlock@@@Z @ 3839 NONAME ; QTextLayout::QTextLayout(class QTextBlock const &) + ??1QCursor@@QAE@XZ @ 3840 NONAME ; QCursor::~QCursor(void) + ?setFlat@QGroupBox@@QAEX_N@Z @ 3841 NONAME ; void QGroupBox::setFlat(bool) + ?setStatusTip@QTableWidgetItem@@QAEXABVQString@@@Z @ 3842 NONAME ; void QTableWidgetItem::setStatusTip(class QString const &) + ?moveCursor@QHeaderView@@MAE?AVQModelIndex@@W4CursorAction@QAbstractItemView@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 3843 NONAME ; class QModelIndex QHeaderView::moveCursor(enum QAbstractItemView::CursorAction, class QFlags) + ?enterEvent@QToolButton@@MAEXPAVQEvent@@@Z @ 3844 NONAME ; void QToolButton::enterEvent(class QEvent *) + ?grabMouse@QGraphicsItem@@QAEXXZ @ 3845 NONAME ; void QGraphicsItem::grabMouse(void) + ??0QPixmap@@QAE@ABV0@@Z @ 3846 NONAME ; QPixmap::QPixmap(class QPixmap const &) + ?spacing@QListView@@QBEHXZ @ 3847 NONAME ; int QListView::spacing(void) const + ?batchSize@QListView@@QBEHXZ @ 3848 NONAME ; int QListView::batchSize(void) const + ?detach@QPen@@AAEXXZ @ 3849 NONAME ; void QPen::detach(void) + ?isTableCellFormat@QTextFormat@@QBE_NXZ @ 3850 NONAME ; bool QTextFormat::isTableCellFormat(void) const + ?setRootPath@QFileSystemModel@@QAE?AVQModelIndex@@ABVQString@@@Z @ 3851 NONAME ; class QModelIndex QFileSystemModel::setRootPath(class QString const &) + ?hideEvent@QWidget@@MAEXPAVQHideEvent@@@Z @ 3852 NONAME ; void QWidget::hideEvent(class QHideEvent *) + ?itemTransform@QGraphicsItem@@QBE?AVQTransform@@PBV1@PA_N@Z @ 3853 NONAME ; class QTransform QGraphicsItem::itemTransform(class QGraphicsItem const *, bool *) const + ??0QColor@@QAE@W4Spec@0@@Z @ 3854 NONAME ; QColor::QColor(enum QColor::Spec) + ?d_func@QTextTable@@ABEPBVQTextTablePrivate@@XZ @ 3855 NONAME ; class QTextTablePrivate const * QTextTable::d_func(void) const + ?styleHint@QFontInfo@@QBE?AW4StyleHint@QFont@@XZ @ 3856 NONAME ; enum QFont::StyleHint QFontInfo::styleHint(void) const + ?map@QMatrix@@QBE?AVQLine@@ABV2@@Z @ 3857 NONAME ; class QLine QMatrix::map(class QLine const &) const + ?metaObject@QAbstractSlider@@UBEPBUQMetaObject@@XZ @ 3858 NONAME ; struct QMetaObject const * QAbstractSlider::metaObject(void) const + ?qt_metacast@QTabBar@@UAEPAXPBD@Z @ 3859 NONAME ; void * QTabBar::qt_metacast(char const *) + ?layoutDirection@QPainter@@QBE?AW4LayoutDirection@Qt@@XZ @ 3860 NONAME ; enum Qt::LayoutDirection QPainter::layoutDirection(void) const + ?setData@QFileSystemModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 3861 NONAME ; bool QFileSystemModel::setData(class QModelIndex const &, class QVariant const &, int) + ?firstLineNumber@QTextBlock@@QBEHXZ @ 3862 NONAME ; int QTextBlock::firstLineNumber(void) const + ??1QSpinBox@@UAE@XZ @ 3863 NONAME ; QSpinBox::~QSpinBox(void) + ?paintEvent@QTextEdit@@MAEXPAVQPaintEvent@@@Z @ 3864 NONAME ; void QTextEdit::paintEvent(class QPaintEvent *) + ?sortChildren@QTreeWidgetItem@@QAEXHW4SortOrder@Qt@@@Z @ 3865 NONAME ; void QTreeWidgetItem::sortChildren(int, enum Qt::SortOrder) + ?isHeaderHidden@QTreeView@@QBE_NXZ @ 3866 NONAME ; bool QTreeView::isHeaderHidden(void) const + ?grabWidget@QWindowSurface@@UBE?AVQPixmap@@PBVQWidget@@ABVQRect@@@Z @ 3867 NONAME ; class QPixmap QWindowSurface::grabWidget(class QWidget const *, class QRect const &) const + ??1QProgressBar@@UAE@XZ @ 3868 NONAME ; QProgressBar::~QProgressBar(void) + ?qt_metacall@QTableWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3869 NONAME ; int QTableWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setDocumentMode@QTabBar@@QAEX_N@Z @ 3870 NONAME ; void QTabBar::setDocumentMode(bool) + ?parentChanged@QGraphicsObject@@IAEXXZ @ 3871 NONAME ; void QGraphicsObject::parentChanged(void) + ?dynamicSortFilter@QSortFilterProxyModel@@QBE_NXZ @ 3872 NONAME ; bool QSortFilterProxyModel::dynamicSortFilter(void) const + ?setSuffix@QSpinBox@@QAEXABVQString@@@Z @ 3873 NONAME ; void QSpinBox::setSuffix(class QString const &) + ?qt_metacast@QItemSelectionModel@@UAEPAXPBD@Z @ 3874 NONAME ; void * QItemSelectionModel::qt_metacast(char const *) + ?currentRowChanged@QListWidget@@IAEXH@Z @ 3875 NONAME ; void QListWidget::currentRowChanged(int) + ?d_func@QWizard@@AAEPAVQWizardPrivate@@XZ @ 3876 NONAME ; class QWizardPrivate * QWizard::d_func(void) + ?scrollBarsEnabled@QWorkspace@@QBE_NXZ @ 3877 NONAME ; bool QWorkspace::scrollBarsEnabled(void) const + ?trUtf8@QDialog@@SA?AVQString@@PBD0@Z @ 3878 NONAME ; class QString QDialog::trUtf8(char const *, char const *) + ?staticMetaObject@QPanGesture@@2UQMetaObject@@B @ 3879 NONAME ; struct QMetaObject const QPanGesture::staticMetaObject + ?getStaticMetaObject@QShortcut@@SAABUQMetaObject@@XZ @ 3880 NONAME ; struct QMetaObject const & QShortcut::getStaticMetaObject(void) + ?yellow@QColor@@QBEHXZ @ 3881 NONAME ; int QColor::yellow(void) const + ?unsetCursor@QGraphicsItem@@QAEXXZ @ 3882 NONAME ; void QGraphicsItem::unsetCursor(void) + ??1QTextDocument@@UAE@XZ @ 3883 NONAME ; QTextDocument::~QTextDocument(void) + ?d_func@QGraphicsPixmapItem@@ABEPBVQGraphicsPixmapItemPrivate@@XZ @ 3884 NONAME ; class QGraphicsPixmapItemPrivate const * QGraphicsPixmapItem::d_func(void) const + ?dateTimeChanged@QDateTimeEdit@@IAEXABVQDateTime@@@Z @ 3885 NONAME ; void QDateTimeEdit::dateTimeChanged(class QDateTime const &) + ?insertStretch@QGraphicsLinearLayout@@QAEXHH@Z @ 3886 NONAME ; void QGraphicsLinearLayout::insertStretch(int, int) + ?setData@QStandardItem@@UAEXABVQVariant@@H@Z @ 3887 NONAME ; void QStandardItem::setData(class QVariant const &, int) + ?hslHueF@QColor@@QBEMXZ @ 3888 NONAME ; float QColor::hslHueF(void) const + ?fontInfo@QWidget@@QBE?AVQFontInfo@@XZ @ 3889 NONAME ; class QFontInfo QWidget::fontInfo(void) const + ??4QFontInfo@@QAEAAV0@ABV0@@Z @ 3890 NONAME ; class QFontInfo & QFontInfo::operator=(class QFontInfo const &) + ?y@QVector2D@@QBEMXZ @ 3891 NONAME ; float QVector2D::y(void) const + ?blockRemoved@QTextBlockGroup@@MAEXABVQTextBlock@@@Z @ 3892 NONAME ; void QTextBlockGroup::blockRemoved(class QTextBlock const &) + ?metaInformation@QTextDocument@@QBE?AVQString@@W4MetaInformation@1@@Z @ 3893 NONAME ; class QString QTextDocument::metaInformation(enum QTextDocument::MetaInformation) const + ??0QImageData@@QAE@XZ @ 3894 NONAME ; QImageData::QImageData(void) + ?d_func@QFocusFrame@@AAEPAVQFocusFramePrivate@@XZ @ 3895 NONAME ; class QFocusFramePrivate * QFocusFrame::d_func(void) + ?selectionMode@QCalendarWidget@@QBE?AW4SelectionMode@1@XZ @ 3896 NONAME ; enum QCalendarWidget::SelectionMode QCalendarWidget::selectionMode(void) const + ?m13@QTransform@@QBEMXZ @ 3897 NONAME ; float QTransform::m13(void) const + ??0QFrame@@IAE@AAVQFramePrivate@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 3898 NONAME ; QFrame::QFrame(class QFramePrivate &, class QWidget *, class QFlags) + ?done@QInputDialog@@UAEXH@Z @ 3899 NONAME ; void QInputDialog::done(int) + ??0QVector2D@@QAE@ABVQPoint@@@Z @ 3900 NONAME ; QVector2D::QVector2D(class QPoint const &) + ?trUtf8@QTreeWidget@@SA?AVQString@@PBD0@Z @ 3901 NONAME ; class QString QTreeWidget::trUtf8(char const *, char const *) + ?tr@QMenu@@SA?AVQString@@PBD0H@Z @ 3902 NONAME ; class QString QMenu::tr(char const *, char const *, int) + ?setFontWeight@QTextCharFormat@@QAEXH@Z @ 3903 NONAME ; void QTextCharFormat::setFontWeight(int) + ?d_func@QListWidget@@ABEPBVQListWidgetPrivate@@XZ @ 3904 NONAME ; class QListWidgetPrivate const * QListWidget::d_func(void) const + ??0QStyleOptionQ3ListViewItem@@QAE@ABV0@@Z @ 3905 NONAME ; QStyleOptionQ3ListViewItem::QStyleOptionQ3ListViewItem(class QStyleOptionQ3ListViewItem const &) + ?setRowPreferredHeight@QGraphicsGridLayout@@QAEXHM@Z @ 3906 NONAME ; void QGraphicsGridLayout::setRowPreferredHeight(int, float) + ?insertTab@QTabWidget@@QAEHHPAVQWidget@@ABVQString@@@Z @ 3907 NONAME ; int QTabWidget::insertTab(int, class QWidget *, class QString const &) + ?findItems@QStandardItemModel@@QBE?AV?$QList@PAVQStandardItem@@@@ABVQString@@V?$QFlags@W4MatchFlag@Qt@@@@H@Z @ 3908 NONAME ; class QList QStandardItemModel::findItems(class QString const &, class QFlags, int) const + ?setSortingEnabled@QTableWidget@@QAEX_N@Z @ 3909 NONAME ; void QTableWidget::setSortingEnabled(bool) + ?isValid@QTextTableFormat@@QBE_NXZ @ 3910 NONAME ; bool QTextTableFormat::isValid(void) const + ?effectiveOpacity@QGraphicsItem@@QBEMXZ @ 3911 NONAME ; float QGraphicsItem::effectiveOpacity(void) const + ?changeEvent@QErrorMessage@@MAEXPAVQEvent@@@Z @ 3912 NONAME ; void QErrorMessage::changeEvent(class QEvent *) + ??0QStyleOptionGroupBox@@QAE@ABV0@@Z @ 3913 NONAME ; QStyleOptionGroupBox::QStyleOptionGroupBox(class QStyleOptionGroupBox const &) + ?setConvolutionKernel@QPixmapConvolutionFilter@@QAEXPBMHH@Z @ 3914 NONAME ; void QPixmapConvolutionFilter::setConvolutionKernel(float const *, int, int) + ?animate_menu@QApplicationPrivate@@2_NA @ 3915 NONAME ; bool QApplicationPrivate::animate_menu + ?eventTest@QMouseEventTransition@@MAE_NPAVQEvent@@@Z @ 3916 NONAME ; bool QMouseEventTransition::eventTest(class QEvent *) + ??1QGraphicsPixelizeEffect@@UAE@XZ @ 3917 NONAME ; QGraphicsPixelizeEffect::~QGraphicsPixelizeEffect(void) + ?staticMetaObject@QTabWidget@@2UQMetaObject@@B @ 3918 NONAME ; struct QMetaObject const QTabWidget::staticMetaObject + ?id@QUndoCommand@@UBEHXZ @ 3919 NONAME ; int QUndoCommand::id(void) const + ?contextMenuEvent@QLabel@@MAEXPAVQContextMenuEvent@@@Z @ 3920 NONAME ; void QLabel::contextMenuEvent(class QContextMenuEvent *) + ?autoExpandDelay@QTreeView@@QBEHXZ @ 3921 NONAME ; int QTreeView::autoExpandDelay(void) const + ?currentIndexChanged@QComboBox@@IAEXABVQString@@@Z @ 3922 NONAME ; void QComboBox::currentIndexChanged(class QString const &) + ?fillRule@QGraphicsPolygonItem@@QBE?AW4FillRule@Qt@@XZ @ 3923 NONAME ; enum Qt::FillRule QGraphicsPolygonItem::fillRule(void) const + ?setBrush@QPen@@QAEXABVQBrush@@@Z @ 3924 NONAME ; void QPen::setBrush(class QBrush const &) + ?isValid@QTextLine@@QBE_NXZ @ 3925 NONAME ; bool QTextLine::isValid(void) const + ?metaObject@QGraphicsDropShadowEffect@@UBEPBUQMetaObject@@XZ @ 3926 NONAME ; struct QMetaObject const * QGraphicsDropShadowEffect::metaObject(void) const + ?opacity@QGraphicsItem@@QBEMXZ @ 3927 NONAME ; float QGraphicsItem::opacity(void) const + ?addChild@QTreeWidgetItem@@QAEXPAV1@@Z @ 3928 NONAME ; void QTreeWidgetItem::addChild(class QTreeWidgetItem *) + ?setMinimumDate@QCalendarWidget@@QAEXABVQDate@@@Z @ 3929 NONAME ; void QCalendarWidget::setMinimumDate(class QDate const &) + ?setText@QAction@@QAEXABVQString@@@Z @ 3930 NONAME ; void QAction::setText(class QString const &) + ?d_func@QItemSelectionModel@@AAEPAVQItemSelectionModelPrivate@@XZ @ 3931 NONAME ; class QItemSelectionModelPrivate * QItemSelectionModel::d_func(void) + ?qt_metacall@QSessionManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3932 NONAME ; int QSessionManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ?boundingRect@QGraphicsEllipseItem@@UBE?AVQRectF@@XZ @ 3933 NONAME ; class QRectF QGraphicsEllipseItem::boundingRect(void) const + ?staticMetaObject@QGraphicsDropShadowEffect@@2UQMetaObject@@B @ 3934 NONAME ; struct QMetaObject const QGraphicsDropShadowEffect::staticMetaObject + ?setPixmap@QDrag@@QAEXABVQPixmap@@@Z @ 3935 NONAME ; void QDrag::setPixmap(class QPixmap const &) + ??0QRadialGradient@@QAE@MMMMM@Z @ 3936 NONAME ; QRadialGradient::QRadialGradient(float, float, float, float, float) + ?isObscured@QGraphicsItem@@QBE_NXZ @ 3937 NONAME ; bool QGraphicsItem::isObscured(void) const + ??0QTextInlineObject@@QAE@XZ @ 3938 NONAME ; QTextInlineObject::QTextInlineObject(void) + ?cascadingSectionResizes@QHeaderView@@QBE_NXZ @ 3939 NONAME ; bool QHeaderView::cascadingSectionResizes(void) const + ?setModelData@QAbstractItemDelegate@@UBEXPAVQWidget@@PAVQAbstractItemModel@@ABVQModelIndex@@@Z @ 3940 NONAME ; void QAbstractItemDelegate::setModelData(class QWidget *, class QAbstractItemModel *, class QModelIndex const &) const + ?sceneRectChanged@QGraphicsScene@@IAEXABVQRectF@@@Z @ 3941 NONAME ; void QGraphicsScene::sceneRectChanged(class QRectF const &) + ?mouseReleaseEvent@QMdiSubWindow@@MAEXPAVQMouseEvent@@@Z @ 3942 NONAME ; void QMdiSubWindow::mouseReleaseEvent(class QMouseEvent *) + ??4QStyleOptionViewItemV3@@QAEAAV0@ABV0@@Z @ 3943 NONAME ; class QStyleOptionViewItemV3 & QStyleOptionViewItemV3::operator=(class QStyleOptionViewItemV3 const &) + ?dragEnterEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 3944 NONAME ; void QGraphicsItem::dragEnterEvent(class QGraphicsSceneDragDropEvent *) + ?tr@QScrollBar@@SA?AVQString@@PBD0@Z @ 3945 NONAME ; class QString QScrollBar::tr(char const *, char const *) + ?mapRectFromScene@QGraphicsItem@@QBE?AVQRectF@@MMMM@Z @ 3946 NONAME ; class QRectF QGraphicsItem::mapRectFromScene(float, float, float, float) const + ?getStaticMetaObject@QErrorMessage@@SAABUQMetaObject@@XZ @ 3947 NONAME ; struct QMetaObject const & QErrorMessage::getStaticMetaObject(void) + ?trUtf8@QKeyEventTransition@@SA?AVQString@@PBD0H@Z @ 3948 NONAME ; class QString QKeyEventTransition::trUtf8(char const *, char const *, int) + ?d_func@QSlider@@AAEPAVQSliderPrivate@@XZ @ 3949 NONAME ; class QSliderPrivate * QSlider::d_func(void) + ?metaObject@QScrollBar@@UBEPBUQMetaObject@@XZ @ 3950 NONAME ; struct QMetaObject const * QScrollBar::metaObject(void) const + ?setIntMaximum@QInputDialog@@QAEXH@Z @ 3951 NONAME ; void QInputDialog::setIntMaximum(int) + ?addAction@QToolBar@@QAEPAVQAction@@ABVQString@@@Z @ 3952 NONAME ; class QAction * QToolBar::addAction(class QString const &) + ?d_func@QToolBar@@AAEPAVQToolBarPrivate@@XZ @ 3953 NONAME ; class QToolBarPrivate * QToolBar::d_func(void) + ?trUtf8@QWidget@@SA?AVQString@@PBD0@Z @ 3954 NONAME ; class QString QWidget::trUtf8(char const *, char const *) + ?grabGesture@QGraphicsObject@@QAEXW4GestureType@Qt@@W4GestureContext@3@@Z @ 3955 NONAME ; void QGraphicsObject::grabGesture(enum Qt::GestureType, enum Qt::GestureContext) + ?button@QMouseEvent@@QBE?AW4MouseButton@Qt@@XZ @ 3956 NONAME ; enum Qt::MouseButton QMouseEvent::button(void) const + ?setItemHidden@QTreeWidget@@QAEXPBVQTreeWidgetItem@@_N@Z @ 3957 NONAME ; void QTreeWidget::setItemHidden(class QTreeWidgetItem const *, bool) + ?selectorMatches@StyleSelector@QCss@@AAE_NABUSelector@2@TNodePtr@12@@Z @ 3958 NONAME ; bool QCss::StyleSelector::selectorMatches(struct QCss::Selector const &, union QCss::StyleSelector::NodePtr) + ?setNavigationMode@QApplication@@SAXW4NavigationMode@Qt@@@Z @ 3959 NONAME ; void QApplication::setNavigationMode(enum Qt::NavigationMode) + ?setCubicToHook@QStrokerOps@@QAEXP6AXMMMMMMPAX@Z@Z @ 3960 NONAME ; void QStrokerOps::setCubicToHook(void (*)(float, float, float, float, float, float, void *)) + ?lengthSquared@QVector4D@@QBEMXZ @ 3961 NONAME ; float QVector4D::lengthSquared(void) const + ?setCenterPoint@QPinchGesture@@QAEXABVQPointF@@@Z @ 3962 NONAME ; void QPinchGesture::setCenterPoint(class QPointF const &) + ?d_func@QFrame@@AAEPAVQFramePrivate@@XZ @ 3963 NONAME ; class QFramePrivate * QFrame::d_func(void) + ??9iterator@QTextBlock@@QBE_NABV01@@Z @ 3964 NONAME ; bool QTextBlock::iterator::operator!=(class QTextBlock::iterator const &) const + ?strikeOut@QFontInfo@@QBE_NXZ @ 3965 NONAME ; bool QFontInfo::strikeOut(void) const + ?setTickPosition@QSlider@@QAEXW4TickPosition@1@@Z @ 3966 NONAME ; void QSlider::setTickPosition(enum QSlider::TickPosition) + ?setClipRect@QImageReader@@QAEXABVQRect@@@Z @ 3967 NONAME ; void QImageReader::setClipRect(class QRect const &) + ?magentaF@QColor@@QBEMXZ @ 3968 NONAME ; float QColor::magentaF(void) const + ?lastNormalizedPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 3969 NONAME ; class QPointF QTouchEvent::TouchPoint::lastNormalizedPos(void) const + ?setMaximumTime@QDateTimeEdit@@QAEXABVQTime@@@Z @ 3970 NONAME ; void QDateTimeEdit::setMaximumTime(class QTime const &) + ?minimumSizeHint@QCommandLinkButton@@MBE?AVQSize@@XZ @ 3971 NONAME ; class QSize QCommandLinkButton::minimumSizeHint(void) const + ?qt_metacall@QListWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3972 NONAME ; int QListWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fill@QImage@@QAEXI@Z @ 3973 NONAME ; void QImage::fill(unsigned int) + ?topLevelAt@QApplication@@SAPAVQWidget@@ABVQPoint@@@Z @ 3974 NONAME ; class QWidget * QApplication::topLevelAt(class QPoint const &) + ?setExtension@QGraphicsPathItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 3975 NONAME ; void QGraphicsPathItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?redoAvailable@QTextDocument@@IAEX_N@Z @ 3976 NONAME ; void QTextDocument::redoAvailable(bool) + ?testAttribute@QGraphicsWidget@@QBE_NW4WidgetAttribute@Qt@@@Z @ 3977 NONAME ; bool QGraphicsWidget::testAttribute(enum Qt::WidgetAttribute) const + ?setRects@QRegion@@QAEXPBVQRect@@H@Z @ 3978 NONAME ; void QRegion::setRects(class QRect const *, int) + ??0QItemSelectionRange@@QAE@XZ @ 3979 NONAME ; QItemSelectionRange::QItemSelectionRange(void) + ?getStaticMetaObject@QDateTimeEdit@@SAABUQMetaObject@@XZ @ 3980 NONAME ; struct QMetaObject const & QDateTimeEdit::getStaticMetaObject(void) + ??YQPainterPath@@QAEAAV0@ABV0@@Z @ 3981 NONAME ; class QPainterPath & QPainterPath::operator+=(class QPainterPath const &) + ?setCapStyle@QPen@@QAEXW4PenCapStyle@Qt@@@Z @ 3982 NONAME ; void QPen::setCapStyle(enum Qt::PenCapStyle) + ?cascadeSubWindows@QMdiArea@@QAEXXZ @ 3983 NONAME ; void QMdiArea::cascadeSubWindows(void) + ?getStaticMetaObject@QStringListModel@@SAABUQMetaObject@@XZ @ 3984 NONAME ; struct QMetaObject const & QStringListModel::getStaticMetaObject(void) + ?toolTip@QTreeWidgetItem@@QBE?AVQString@@H@Z @ 3985 NONAME ; class QString QTreeWidgetItem::toolTip(int) const + ??6@YAAAVQDataStream@@AAV0@ABVQTreeWidgetItem@@@Z @ 3986 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTreeWidgetItem const &) + ?setResizeMode@QHeaderView@@QAEXW4ResizeMode@1@@Z @ 3987 NONAME ; void QHeaderView::setResizeMode(enum QHeaderView::ResizeMode) + ?cursorRect@QTextControl@@QBE?AVQRectF@@ABVQTextCursor@@@Z @ 3988 NONAME ; class QRectF QTextControl::cursorRect(class QTextCursor const &) const + ?drawItems@QGraphicsView@@MAEXPAVQPainter@@HQAPAVQGraphicsItem@@QBVQStyleOptionGraphicsItem@@@Z @ 3989 NONAME ; void QGraphicsView::drawItems(class QPainter *, int, class QGraphicsItem * * const, class QStyleOptionGraphicsItem const * const) + ?activateChildLayoutsRecursively@QWidgetPrivate@@QAEXXZ @ 3990 NONAME ; void QWidgetPrivate::activateChildLayoutsRecursively(void) + ?tr@QGraphicsBloomEffect@@SA?AVQString@@PBD0@Z @ 3991 NONAME ; class QString QGraphicsBloomEffect::tr(char const *, char const *) + ?mimeData@QClipboard@@QBEPBVQMimeData@@W4Mode@1@@Z @ 3992 NONAME ; class QMimeData const * QClipboard::mimeData(enum QClipboard::Mode) const + ?createWinId@QWidget@@QAEXXZ @ 3993 NONAME ; void QWidget::createWinId(void) + ?closeActiveSubWindow@QMdiArea@@QAEXXZ @ 3994 NONAME ; void QMdiArea::closeActiveSubWindow(void) + ?widgetRemoved@QStackedWidget@@IAEXH@Z @ 3995 NONAME ; void QStackedWidget::widgetRemoved(int) + ?takeWidget@QScrollArea@@QAEPAVQWidget@@XZ @ 3996 NONAME ; class QWidget * QScrollArea::takeWidget(void) + ?isDateEditEnabled@QCalendarWidget@@QBE_NXZ @ 3997 NONAME ; bool QCalendarWidget::isDateEditEnabled(void) const + ?qt_metacast@QMdiArea@@UAEPAXPBD@Z @ 3998 NONAME ; void * QMdiArea::qt_metacast(char const *) + ?setDefaultSectionSize@QHeaderView@@QAEXH@Z @ 3999 NONAME ; void QHeaderView::setDefaultSectionSize(int) + ?resetCachedContent@QGraphicsView@@QAEXXZ @ 4000 NONAME ; void QGraphicsView::resetCachedContent(void) + ?close_helper@QWidgetPrivate@@QAE_NW4CloseMode@1@@Z @ 4001 NONAME ; bool QWidgetPrivate::close_helper(enum QWidgetPrivate::CloseMode) + ?setRotationAngle@QPinchGesture@@QAEXM@Z @ 4002 NONAME ; void QPinchGesture::setRotationAngle(float) + ?boolProperty@QTextFormat@@QBE_NH@Z @ 4003 NONAME ; bool QTextFormat::boolProperty(int) const + ??0QGraphicsLayout@@IAE@AAVQGraphicsLayoutPrivate@@PAVQGraphicsLayoutItem@@@Z @ 4004 NONAME ; QGraphicsLayout::QGraphicsLayout(class QGraphicsLayoutPrivate &, class QGraphicsLayoutItem *) + ??0QComboBox@@QAE@PAVQWidget@@@Z @ 4005 NONAME ; QComboBox::QComboBox(class QWidget *) + ?fileIcon@QDirModel@@QBE?AVQIcon@@ABVQModelIndex@@@Z @ 4006 NONAME ; class QIcon QDirModel::fileIcon(class QModelIndex const &) const + ?boundingRegionGranularity@QGraphicsItem@@QBEMXZ @ 4007 NONAME ; float QGraphicsItem::boundingRegionGranularity(void) const + ?HandleWsEventL@QS60MainAppUi@@MAEXABVTWsEvent@@PAVCCoeControl@@@Z @ 4008 NONAME ; void QS60MainAppUi::HandleWsEventL(class TWsEvent const &, class CCoeControl *) + ?trUtf8@QS60Style@@SA?AVQString@@PBD0H@Z @ 4009 NONAME ; class QString QS60Style::trUtf8(char const *, char const *, int) + ?setViewMode@QListView@@QAEXW4ViewMode@1@@Z @ 4010 NONAME ; void QListView::setViewMode(enum QListView::ViewMode) + ?setLayoutItemMargins@QWidgetPrivate@@QAEXHHHH@Z @ 4011 NONAME ; void QWidgetPrivate::setLayoutItemMargins(int, int, int, int) + ??0QApplication@@IAE@AAHPAPADW4Type@0@@Z @ 4012 NONAME ; QApplication::QApplication(int &, char * *, enum QApplication::Type) + ?value@QTextLength@@QBEMM@Z @ 4013 NONAME ; float QTextLength::value(float) const + ?qt_metacall@QTabWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4014 NONAME ; int QTabWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tForY@QBezier@@QBEMMMM@Z @ 4015 NONAME ; float QBezier::tForY(float, float, float) const + ?paint@QGraphicsLineItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4016 NONAME ; void QGraphicsLineItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ??5@YAAAVQDataStream@@AAV0@AAVQTransform@@@Z @ 4017 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTransform &) + ?setDoubleValue@QInputDialog@@QAEXN@Z @ 4018 NONAME ; void QInputDialog::setDoubleValue(double) + ?symbianFilterEvent@QInputContext@@UAE_NPAVQWidget@@PBVQSymbianEvent@@@Z @ 4019 NONAME ; bool QInputContext::symbianFilterEvent(class QWidget *, class QSymbianEvent const *) + ??0QPalette@@QAE@ABVQColor@@000000@Z @ 4020 NONAME ; QPalette::QPalette(class QColor const &, class QColor const &, class QColor const &, class QColor const &, class QColor const &, class QColor const &, class QColor const &) + ?restoreState@QMainWindow@@QAE_NABVQByteArray@@H@Z @ 4021 NONAME ; bool QMainWindow::restoreState(class QByteArray const &, int) + ?pageStep@QAbstractSlider@@QBEHXZ @ 4022 NONAME ; int QAbstractSlider::pageStep(void) const + ?d_func@QPlainTextEdit@@AAEPAVQPlainTextEditPrivate@@XZ @ 4023 NONAME ; class QPlainTextEditPrivate * QPlainTextEdit::d_func(void) + ?updateEditorData@QAbstractItemView@@MAEXXZ @ 4024 NONAME ; void QAbstractItemView::updateEditorData(void) + ?isDetached@QPen@@QAE_NXZ @ 4025 NONAME ; bool QPen::isDetached(void) + ??_EQHeaderView@@UAE@I@Z @ 4026 NONAME ; QHeaderView::~QHeaderView(unsigned int) + ?paintCell@QCalendarWidget@@MBEXPAVQPainter@@ABVQRect@@ABVQDate@@@Z @ 4027 NONAME ; void QCalendarWidget::paintCell(class QPainter *, class QRect const &, class QDate const &) const + ?trUtf8@QGuiPlatformPlugin@@SA?AVQString@@PBD0H@Z @ 4028 NONAME ; class QString QGuiPlatformPlugin::trUtf8(char const *, char const *, int) + ??0QPictureIO@@QAE@ABVQString@@PBD@Z @ 4029 NONAME ; QPictureIO::QPictureIO(class QString const &, char const *) + ?autoSipEnabled@QApplicationPrivate@@2_NA @ 4030 NONAME ; bool QApplicationPrivate::autoSipEnabled + ?setAutoRepeat@QAbstractButton@@QAEX_N@Z @ 4031 NONAME ; void QAbstractButton::setAutoRepeat(bool) + ??Eiterator@QTextBlock@@QAEAAV01@XZ @ 4032 NONAME ; class QTextBlock::iterator & QTextBlock::iterator::operator++(void) + ?itemAt@QFormLayout@@UBEPAVQLayoutItem@@H@Z @ 4033 NONAME ; class QLayoutItem * QFormLayout::itemAt(int) const + ?fitInView@QGraphicsView@@QAEXMMMMW4AspectRatioMode@Qt@@@Z @ 4034 NONAME ; void QGraphicsView::fitInView(float, float, float, float, enum Qt::AspectRatioMode) + ?check@QItemDelegate@@IBE?AVQRect@@ABVQStyleOptionViewItem@@ABV2@ABVQVariant@@@Z @ 4035 NONAME ; class QRect QItemDelegate::check(class QStyleOptionViewItem const &, class QRect const &, class QVariant const &) const + ?drawImage@QPainter@@QAEXABVQPointF@@ABVQImage@@@Z @ 4036 NONAME ; void QPainter::drawImage(class QPointF const &, class QImage const &) + ?metaObject@QItemDelegate@@UBEPBUQMetaObject@@XZ @ 4037 NONAME ; struct QMetaObject const * QItemDelegate::metaObject(void) const + ?clone@QListWidgetItem@@UBEPAV1@XZ @ 4038 NONAME ; class QListWidgetItem * QListWidgetItem::clone(void) const + ?qt_metacall@QStackedWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4039 NONAME ; int QStackedWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?end@QTextTableCell@@QBE?AViterator@QTextFrame@@XZ @ 4040 NONAME ; class QTextFrame::iterator QTextTableCell::end(void) const + ?fileDialogSelectedNameFilter@QGuiPlatformPlugin@@UBE?AVQString@@PBVQFileDialog@@@Z @ 4041 NONAME ; class QString QGuiPlatformPlugin::fileDialogSelectedNameFilter(class QFileDialog const *) const + ?itemAt@QGraphicsGridLayout@@QBEPAVQGraphicsLayoutItem@@HH@Z @ 4042 NONAME ; class QGraphicsLayoutItem * QGraphicsGridLayout::itemAt(int, int) const + ?d_func@QMenuBar@@ABEPBVQMenuBarPrivate@@XZ @ 4043 NONAME ; class QMenuBarPrivate const * QMenuBar::d_func(void) const + ?tr@QDateTimeEdit@@SA?AVQString@@PBD0H@Z @ 4044 NONAME ; class QString QDateTimeEdit::tr(char const *, char const *, int) + ?screenPos@QGraphicsSceneHoverEvent@@QBE?AVQPoint@@XZ @ 4045 NONAME ; class QPoint QGraphicsSceneHoverEvent::screenPos(void) const + ?availableGeometry@QDesktopWidget@@QBE?BVQRect@@PBVQWidget@@@Z @ 4046 NONAME ; class QRect const QDesktopWidget::availableGeometry(class QWidget const *) const + ?setFilterRegExp@QSortFilterProxyModel@@QAEXABVQString@@@Z @ 4047 NONAME ; void QSortFilterProxyModel::setFilterRegExp(class QString const &) + ?fetchMore@QSortFilterProxyModel@@UAEXABVQModelIndex@@@Z @ 4048 NONAME ; void QSortFilterProxyModel::fetchMore(class QModelIndex const &) + ??UQRegion@@QBE?BV0@ABV0@@Z @ 4049 NONAME ; class QRegion const QRegion::operator|(class QRegion const &) const + ?isItemExpanded@QTreeWidget@@QBE_NPBVQTreeWidgetItem@@@Z @ 4050 NONAME ; bool QTreeWidget::isItemExpanded(class QTreeWidgetItem const *) const + ?setFont@QPainter@@QAEXABVQFont@@@Z @ 4051 NONAME ; void QPainter::setFont(class QFont const &) + ?metaObject@QScrollArea@@UBEPBUQMetaObject@@XZ @ 4052 NONAME ; struct QMetaObject const * QScrollArea::metaObject(void) const + ?filter@QFileDialog@@QBE?AV?$QFlags@W4Filter@QDir@@@@XZ @ 4053 NONAME ; class QFlags QFileDialog::filter(void) const + ?qt_metacast@QStatusBar@@UAEPAXPBD@Z @ 4054 NONAME ; void * QStatusBar::qt_metacast(char const *) + ??_EQDesktopWidget@@UAE@I@Z @ 4055 NONAME ; QDesktopWidget::~QDesktopWidget(unsigned int) + ?supportsExtension@QGraphicsPixmapItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 4056 NONAME ; bool QGraphicsPixmapItem::supportsExtension(enum QGraphicsItem::Extension) const + ?emitMoveTo@QStrokerOps@@IAEXMM@Z @ 4057 NONAME ; void QStrokerOps::emitMoveTo(float, float) + ?invalidate@QTextEngine@@QAEXXZ @ 4058 NONAME ; void QTextEngine::invalidate(void) + ??0QGuiPlatformPlugin@@QAE@PAVQObject@@@Z @ 4059 NONAME ; QGuiPlatformPlugin::QGuiPlatformPlugin(class QObject *) + ?trUtf8@QS60Style@@SA?AVQString@@PBD0@Z @ 4060 NONAME ; class QString QS60Style::trUtf8(char const *, char const *) + ?testRuleset@Parser@QCss@@QAE_NXZ @ 4061 NONAME ; bool QCss::Parser::testRuleset(void) + ?screenGeometry@QDesktopWidget@@QBE?BVQRect@@H@Z @ 4062 NONAME ; class QRect const QDesktopWidget::screenGeometry(int) const + ?source@QGraphicsSceneDragDropEvent@@QBEPAVQWidget@@XZ @ 4063 NONAME ; class QWidget * QGraphicsSceneDragDropEvent::source(void) const + ?bold@QFont@@QBE_NXZ @ 4064 NONAME ; bool QFont::bold(void) const + ?resizeEvent@QColumnView@@MAEXPAVQResizeEvent@@@Z @ 4065 NONAME ; void QColumnView::resizeEvent(class QResizeEvent *) + ?setVerticalHeaderItem@QStandardItemModel@@QAEXHPAVQStandardItem@@@Z @ 4066 NONAME ; void QStandardItemModel::setVerticalHeaderItem(int, class QStandardItem *) + ?qt_metacast@QCommonStyle@@UAEPAXPBD@Z @ 4067 NONAME ; void * QCommonStyle::qt_metacast(char const *) + ?d_func@QCommonStyle@@AAEPAVQCommonStylePrivate@@XZ @ 4068 NONAME ; class QCommonStylePrivate * QCommonStyle::d_func(void) + ?setCompression@QImageWriter@@QAEXH@Z @ 4069 NONAME ; void QImageWriter::setCompression(int) + ?insertColumns@QSortFilterProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 4070 NONAME ; bool QSortFilterProxyModel::insertColumns(int, int, class QModelIndex const &) + ?overrideWindowFlags@QWidget@@QAEXV?$QFlags@W4WindowType@Qt@@@@@Z @ 4071 NONAME ; void QWidget::overrideWindowFlags(class QFlags) + ?expireGlyphCache@QFontEngine@@AAEXXZ @ 4072 NONAME ; void QFontEngine::expireGlyphCache(void) + ?addWidget@QBoxLayout@@QAEXPAVQWidget@@HV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 4073 NONAME ; void QBoxLayout::addWidget(class QWidget *, int, class QFlags) + ?textCursor@QTextControl@@QBE?AVQTextCursor@@XZ @ 4074 NONAME ; class QTextCursor QTextControl::textCursor(void) const + ?instance@QImagePixmapCleanupHooks@@SAPAV1@XZ @ 4075 NONAME ; class QImagePixmapCleanupHooks * QImagePixmapCleanupHooks::instance(void) + ?inputFormats@QPictureIO@@SA?AV?$QList@VQByteArray@@@@XZ @ 4076 NONAME ; class QList QPictureIO::inputFormats(void) + ?isExclusive@QActionGroup@@QBE_NXZ @ 4077 NONAME ; bool QActionGroup::isExclusive(void) const + ?grabWindow@QPixmap@@SA?AV1@PAVCCoeControl@@HHHH@Z @ 4078 NONAME ; class QPixmap QPixmap::grabWindow(class CCoeControl *, int, int, int, int) + ?create@QWidget@@IAEXPAVCCoeControl@@_N1@Z @ 4079 NONAME ; void QWidget::create(class CCoeControl *, bool, bool) + ?updateCell@QCalendarWidget@@IAEXABVQDate@@@Z @ 4080 NONAME ; void QCalendarWidget::updateCell(class QDate const &) + ?activeGestures@QGestureEvent@@QBE?AV?$QList@PAVQGesture@@@@XZ @ 4081 NONAME ; class QList QGestureEvent::activeGestures(void) const + ??0QGraphicsLineItem@@QAE@ABVQLineF@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 4082 NONAME ; QGraphicsLineItem::QGraphicsLineItem(class QLineF const &, class QGraphicsItem *, class QGraphicsScene *) + ?setCurrentBlockState@QSyntaxHighlighter@@IAEXH@Z @ 4083 NONAME ; void QSyntaxHighlighter::setCurrentBlockState(int) + ??0QStyleOptionGroupBox@@IAE@H@Z @ 4084 NONAME ; QStyleOptionGroupBox::QStyleOptionGroupBox(int) + ??0QStyleOptionFrame@@QAE@ABV0@@Z @ 4085 NONAME ; QStyleOptionFrame::QStyleOptionFrame(class QStyleOptionFrame const &) + ?sceneRect@QGraphicsView@@QBE?AVQRectF@@XZ @ 4086 NONAME ; class QRectF QGraphicsView::sceneRect(void) const + ?minimumSizeHint@QSlider@@UBE?AVQSize@@XZ @ 4087 NONAME ; class QSize QSlider::minimumSizeHint(void) const + ??0QStatusTipEvent@@QAE@ABVQString@@@Z @ 4088 NONAME ; QStatusTipEvent::QStatusTipEvent(class QString const &) + ?qt_metacast@QGraphicsItemAnimation@@UAEPAXPBD@Z @ 4089 NONAME ; void * QGraphicsItemAnimation::qt_metacast(char const *) + ?visualIndex@QListView@@ABEHABVQModelIndex@@@Z @ 4090 NONAME ; int QListView::visualIndex(class QModelIndex const &) const + ?isValid@QTextFrameFormat@@QBE_NXZ @ 4091 NONAME ; bool QTextFrameFormat::isValid(void) const + ?tabBar@QTabWidget@@IBEPAVQTabBar@@XZ @ 4092 NONAME ; class QTabBar * QTabWidget::tabBar(void) const + ?insertTable@QTextCursor@@QAEPAVQTextTable@@HHABVQTextTableFormat@@@Z @ 4093 NONAME ; class QTextTable * QTextCursor::insertTable(int, int, class QTextTableFormat const &) + ?start@QLinearGradient@@QBE?AVQPointF@@XZ @ 4094 NONAME ; class QPointF QLinearGradient::start(void) const + ?repeatAction@QAbstractSlider@@IBE?AW4SliderAction@1@XZ @ 4095 NONAME ; enum QAbstractSlider::SliderAction QAbstractSlider::repeatAction(void) const + ??0QStyleOption@@QAE@ABV0@@Z @ 4096 NONAME ; QStyleOption::QStyleOption(class QStyleOption const &) + ?columnWidths@QColumnView@@QBE?AV?$QList@H@@XZ @ 4097 NONAME ; class QList QColumnView::columnWidths(void) const + ?scale@QPainter@@QAEXMM@Z @ 4098 NONAME ; void QPainter::scale(float, float) + ?setShortcut@QAction@@QAEXABVQKeySequence@@@Z @ 4099 NONAME ; void QAction::setShortcut(class QKeySequence const &) + ?draw@QGraphicsBloomEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 4100 NONAME ; void QGraphicsBloomEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?setGeometry@QWidget@@QAEXABVQRect@@@Z @ 4101 NONAME ; void QWidget::setGeometry(class QRect const &) + ?clear@QMenu@@QAEXXZ @ 4102 NONAME ; void QMenu::clear(void) + ?mouseDoubleClickEvent@QAbstractScrollArea@@MAEXPAVQMouseEvent@@@Z @ 4103 NONAME ; void QAbstractScrollArea::mouseDoubleClickEvent(class QMouseEvent *) + ?device@QMovie@@QBEPAVQIODevice@@XZ @ 4104 NONAME ; class QIODevice * QMovie::device(void) const + ?triggered@QMenu@@IAEXPAVQAction@@@Z @ 4105 NONAME ; void QMenu::triggered(class QAction *) + ?widget@QTouchEvent@@QBEPAVQWidget@@XZ @ 4106 NONAME ; class QWidget * QTouchEvent::widget(void) const + ?allowedAreasChanged@QDockWidget@@IAEXV?$QFlags@W4DockWidgetArea@Qt@@@@@Z @ 4107 NONAME ; void QDockWidget::allowedAreasChanged(class QFlags) + ?dragEnterEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 4108 NONAME ; void QGraphicsScene::dragEnterEvent(class QGraphicsSceneDragDropEvent *) + ?draw@QTextLine@@QBEXPAVQPainter@@ABVQPointF@@PBUFormatRange@QTextLayout@@@Z @ 4109 NONAME ; void QTextLine::draw(class QPainter *, class QPointF const &, struct QTextLayout::FormatRange const *) const + ?type@QSymbianEvent@@QBE?AW4Type@1@XZ @ 4110 NONAME ; enum QSymbianEvent::Type QSymbianEvent::type(void) const + ?boundingRectFor@QGraphicsBloomEffect@@UBE?AVQRectF@@ABV2@@Z @ 4111 NONAME ; class QRectF QGraphicsBloomEffect::boundingRectFor(class QRectF const &) const + ?setDockOptions@QMainWindow@@QAEXV?$QFlags@W4DockOption@QMainWindow@@@@@Z @ 4112 NONAME ; void QMainWindow::setDockOptions(class QFlags) + ?canUndoChanged@QUndoGroup@@IAEX_N@Z @ 4113 NONAME ; void QUndoGroup::canUndoChanged(bool) + ?d_func@QMdiArea@@AAEPAVQMdiAreaPrivate@@XZ @ 4114 NONAME ; class QMdiAreaPrivate * QMdiArea::d_func(void) + ?currentItemChanged@QListWidget@@IAEXPAVQListWidgetItem@@0@Z @ 4115 NONAME ; void QListWidget::currentItemChanged(class QListWidgetItem *, class QListWidgetItem *) + ?mergeBlockCharFormat@QTextCursor@@QAEXABVQTextCharFormat@@@Z @ 4116 NONAME ; void QTextCursor::mergeBlockCharFormat(class QTextCharFormat const &) + ??1QStyleOptionButton@@QAE@XZ @ 4117 NONAME ; QStyleOptionButton::~QStyleOptionButton(void) + ??BQKeySequence@@QBE?AVQVariant@@XZ @ 4118 NONAME ; QKeySequence::operator class QVariant(void) const + ?buttons@QMessageBox@@QBE?AV?$QList@PAVQAbstractButton@@@@XZ @ 4119 NONAME ; class QList QMessageBox::buttons(void) const + ?trUtf8@QSyntaxHighlighter@@SA?AVQString@@PBD0@Z @ 4120 NONAME ; class QString QSyntaxHighlighter::trUtf8(char const *, char const *) + ?animate_ui@QApplicationPrivate@@2_NA @ 4121 NONAME ; bool QApplicationPrivate::animate_ui + ?rotate@QMatrix4x4@@QAEAAV1@MABVQVector3D@@@Z @ 4122 NONAME ; class QMatrix4x4 & QMatrix4x4::rotate(float, class QVector3D const &) + ?paint@QGraphicsEllipseItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4123 NONAME ; void QGraphicsEllipseItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ??6@YA?AVQDebug@@V0@ABVQPen@@@Z @ 4124 NONAME ; class QDebug operator<<(class QDebug, class QPen const &) + ?data@QGraphicsItem@@QBE?AVQVariant@@H@Z @ 4125 NONAME ; class QVariant QGraphicsItem::data(int) const + ?leaveModal@QApplicationPrivate@@SAXPAVQWidget@@@Z @ 4126 NONAME ; void QApplicationPrivate::leaveModal(class QWidget *) + ??1QAbstractProxyModel@@UAE@XZ @ 4127 NONAME ; QAbstractProxyModel::~QAbstractProxyModel(void) + ?rootModelIndex@QComboBox@@QBE?AVQModelIndex@@XZ @ 4128 NONAME ; class QModelIndex QComboBox::rootModelIndex(void) const + ?contains@QItemSelection@@QBE_NABVQModelIndex@@@Z @ 4129 NONAME ; bool QItemSelection::contains(class QModelIndex const &) const + ?maximumDate@QDateTimeEdit@@QBE?AVQDate@@XZ @ 4130 NONAME ; class QDate QDateTimeEdit::maximumDate(void) const + ?paintEvent@QPushButton@@MAEXPAVQPaintEvent@@@Z @ 4131 NONAME ; void QPushButton::paintEvent(class QPaintEvent *) + ?setMaximumSize@QGraphicsLayoutItem@@QAEXABVQSizeF@@@Z @ 4132 NONAME ; void QGraphicsLayoutItem::setMaximumSize(class QSizeF const &) + ?trUtf8@QGraphicsView@@SA?AVQString@@PBD0@Z @ 4133 NONAME ; class QString QGraphicsView::trUtf8(char const *, char const *) + ?arcTo@QPainterPath@@QAEXMMMMMM@Z @ 4134 NONAME ; void QPainterPath::arcTo(float, float, float, float, float, float) + ?currentIdChanged@QWizard@@IAEXH@Z @ 4135 NONAME ; void QWizard::currentIdChanged(int) + ?displayedSections@QDateTimeEdit@@QBE?AV?$QFlags@W4Section@QDateTimeEdit@@@@XZ @ 4136 NONAME ; class QFlags QDateTimeEdit::displayedSections(void) const + ?removeColumns@QStandardItem@@QAEXHH@Z @ 4137 NONAME ; void QStandardItem::removeColumns(int, int) + ?maximum@QDoubleSpinBox@@QBENXZ @ 4138 NONAME ; double QDoubleSpinBox::maximum(void) const + ?update@QGraphicsScene@@QAEXABVQRectF@@@Z @ 4139 NONAME ; void QGraphicsScene::update(class QRectF const &) + ?staticMetaObject@QDockWidgetLayout@@2UQMetaObject@@B @ 4140 NONAME ; struct QMetaObject const QDockWidgetLayout::staticMetaObject + ?setShortcuts@QAction@@QAEXABV?$QList@VQKeySequence@@@@@Z @ 4141 NONAME ; void QAction::setShortcuts(class QList const &) + ??0QImageWriter@@QAE@XZ @ 4142 NONAME ; QImageWriter::QImageWriter(void) + ?setTextCursor@QTextEdit@@QAEXABVQTextCursor@@@Z @ 4143 NONAME ; void QTextEdit::setTextCursor(class QTextCursor const &) + ?mouseMoveEvent@QTreeView@@MAEXPAVQMouseEvent@@@Z @ 4144 NONAME ; void QTreeView::mouseMoveEvent(class QMouseEvent *) + ?defaultButton@QMessageBox@@QBEPAVQPushButton@@XZ @ 4145 NONAME ; class QPushButton * QMessageBox::defaultButton(void) const + ?setVisible@QMenuBar@@UAEX_N@Z @ 4146 NONAME ; void QMenuBar::setVisible(bool) + ?preeditAreaPosition@QTextLayout@@QBEHXZ @ 4147 NONAME ; int QTextLayout::preeditAreaPosition(void) const + ?scenePos@QGraphicsSceneHoverEvent@@QBE?AVQPointF@@XZ @ 4148 NONAME ; class QPointF QGraphicsSceneHoverEvent::scenePos(void) const + ?boundingRectFor@QPixmapFilter@@UBE?AVQRectF@@ABV2@@Z @ 4149 NONAME ; class QRectF QPixmapFilter::boundingRectFor(class QRectF const &) const + ?painter@QPaintEngine@@QBEPAVQPainter@@XZ @ 4150 NONAME ; class QPainter * QPaintEngine::painter(void) const + ?init@QPixmap@@AAEXHHH@Z @ 4151 NONAME ; void QPixmap::init(int, int, int) + ??1QAction@@UAE@XZ @ 4152 NONAME ; QAction::~QAction(void) + ??_EQAbstractTextDocumentLayout@@UAE@I@Z @ 4153 NONAME ; QAbstractTextDocumentLayout::~QAbstractTextDocumentLayout(unsigned int) + ??D@YA?AVQPointF@@ABV0@ABVQTransform@@@Z @ 4154 NONAME ; class QPointF operator*(class QPointF const &, class QTransform const &) + ?focusOutEvent@QAbstractSpinBox@@MAEXPAVQFocusEvent@@@Z @ 4155 NONAME ; void QAbstractSpinBox::focusOutEvent(class QFocusEvent *) + ?d_func@QCalendarWidget@@AAEPAVQCalendarWidgetPrivate@@XZ @ 4156 NONAME ; class QCalendarWidgetPrivate * QCalendarWidget::d_func(void) + ?setLastScreenPos@QGraphicsSceneMouseEvent@@QAEXABVQPoint@@@Z @ 4157 NONAME ; void QGraphicsSceneMouseEvent::setLastScreenPos(class QPoint const &) + ?isUndoRedoEnabled@QPlainTextEdit@@QBE_NXZ @ 4158 NONAME ; bool QPlainTextEdit::isUndoRedoEnabled(void) const + ?clicked@QGroupBox@@IAEX_N@Z @ 4159 NONAME ; void QGroupBox::clicked(bool) + ?setKeyboardSingleStep@QMdiSubWindow@@QAEXH@Z @ 4160 NONAME ; void QMdiSubWindow::setKeyboardSingleStep(int) + ?brightness@QGraphicsBloomEffect@@QBEHXZ @ 4161 NONAME ; int QGraphicsBloomEffect::brightness(void) const + ??_EQDragMoveEvent@@UAE@I@Z @ 4162 NONAME ; QDragMoveEvent::~QDragMoveEvent(unsigned int) + ?isItemSelected@QListWidget@@QBE_NPBVQListWidgetItem@@@Z @ 4163 NONAME ; bool QListWidget::isItemSelected(class QListWidgetItem const *) const + ?d_func@QGraphicsBlurEffect@@ABEPBVQGraphicsBlurEffectPrivate@@XZ @ 4164 NONAME ; class QGraphicsBlurEffectPrivate const * QGraphicsBlurEffect::d_func(void) const + ?mousePressEvent@QDial@@MAEXPAVQMouseEvent@@@Z @ 4165 NONAME ; void QDial::mousePressEvent(class QMouseEvent *) + ?setText@QImageWriter@@QAEXABVQString@@0@Z @ 4166 NONAME ; void QImageWriter::setText(class QString const &, class QString const &) + ?initStyleOption@QGraphicsWidget@@MBEXPAVQStyleOption@@@Z @ 4167 NONAME ; void QGraphicsWidget::initStyleOption(class QStyleOption *) const + ?getStaticMetaObject@QPaintBufferResource@@SAABUQMetaObject@@XZ @ 4168 NONAME ; struct QMetaObject const & QPaintBufferResource::getStaticMetaObject(void) + ??0QTextFormat@@QAE@H@Z @ 4169 NONAME ; QTextFormat::QTextFormat(int) + ?clipOperation@QPaintEngineState@@QBE?AW4ClipOperation@Qt@@XZ @ 4170 NONAME ; enum Qt::ClipOperation QPaintEngineState::clipOperation(void) const + ?contains@QGraphicsPolygonItem@@UBE_NABVQPointF@@@Z @ 4171 NONAME ; bool QGraphicsPolygonItem::contains(class QPointF const &) const + ?sizePolicy@QGraphicsAnchor@@QBE?AW4Policy@QSizePolicy@@XZ @ 4172 NONAME ; enum QSizePolicy::Policy QGraphicsAnchor::sizePolicy(void) const + ?setHtml@QTextDocument@@QAEXABVQString@@@Z @ 4173 NONAME ; void QTextDocument::setHtml(class QString const &) + ?q_func@QPaintEngineExPrivate@@ABEPBVQPaintEngineEx@@XZ @ 4174 NONAME ; class QPaintEngineEx const * QPaintEngineExPrivate::q_func(void) const + ?setSharedPainter@QWidgetPrivate@@QAEXPAVQPainter@@@Z @ 4175 NONAME ; void QWidgetPrivate::setSharedPainter(class QPainter *) + ?det@QTransform@@QBEMXZ @ 4176 NONAME ; float QTransform::det(void) const + ?doImageIO@QImageData@@QBE_NPBVQImage@@PAVQImageWriter@@H@Z @ 4177 NONAME ; bool QImageData::doImageIO(class QImage const *, class QImageWriter *, int) const + ??0QGraphicsSceneHoverEvent@@QAE@W4Type@QEvent@@@Z @ 4178 NONAME ; QGraphicsSceneHoverEvent::QGraphicsSceneHoverEvent(enum QEvent::Type) + ?setPixmap@QWizard@@QAEXW4WizardPixmap@1@ABVQPixmap@@@Z @ 4179 NONAME ; void QWizard::setPixmap(enum QWizard::WizardPixmap, class QPixmap const &) + ?focusOutEvent@QGraphicsProxyWidget@@MAEXPAVQFocusEvent@@@Z @ 4180 NONAME ; void QGraphicsProxyWidget::focusOutEvent(class QFocusEvent *) + ?findClosestTouchPointId@QApplicationPrivate@@QAEHABVQPointF@@@Z @ 4181 NONAME ; int QApplicationPrivate::findClosestTouchPointId(class QPointF const &) + ?staticMetaObject@QRubberBand@@2UQMetaObject@@B @ 4182 NONAME ; struct QMetaObject const QRubberBand::staticMetaObject + ?restore@QPainter@@QAEXXZ @ 4183 NONAME ; void QPainter::restore(void) + ?fillRect@QPainter@@QAEXABVQRect@@W4GlobalColor@Qt@@@Z @ 4184 NONAME ; void QPainter::fillRect(class QRect const &, enum Qt::GlobalColor) + ?extraSelections@QPlainTextEdit@@QBE?AV?$QList@UExtraSelection@QTextEdit@@@@XZ @ 4185 NONAME ; class QList QPlainTextEdit::extraSelections(void) const + ??0QPaintEngineEx@@QAE@XZ @ 4186 NONAME ; QPaintEngineEx::QPaintEngineEx(void) + ?focusOutEvent@QGraphicsItem@@MAEXPAVQFocusEvent@@@Z @ 4187 NONAME ; void QGraphicsItem::focusOutEvent(class QFocusEvent *) + ?mapToScene@QGraphicsItem@@QBE?AVQPolygonF@@MMMM@Z @ 4188 NONAME ; class QPolygonF QGraphicsItem::mapToScene(float, float, float, float) const + ?trUtf8@QLabel@@SA?AVQString@@PBD0H@Z @ 4189 NONAME ; class QString QLabel::trUtf8(char const *, char const *, int) + ?setChild@QStandardItem@@QAEXHHPAV1@@Z @ 4190 NONAME ; void QStandardItem::setChild(int, int, class QStandardItem *) + ?toolButtonStyle@QToolButton@@QBE?AW4ToolButtonStyle@Qt@@XZ @ 4191 NONAME ; enum Qt::ToolButtonStyle QToolButton::toolButtonStyle(void) const + ?systemIconThemeName@QGuiPlatformPlugin@@UAE?AVQString@@XZ @ 4192 NONAME ; class QString QGuiPlatformPlugin::systemIconThemeName(void) + ?items@QTreeWidget@@IBE?AV?$QList@PAVQTreeWidgetItem@@@@PBVQMimeData@@@Z @ 4193 NONAME ; class QList QTreeWidget::items(class QMimeData const *) const + ?filterSelected@QFileDialog@@IAEXABVQString@@@Z @ 4194 NONAME ; void QFileDialog::filterSelected(class QString const &) + ?jumpToNextFrame@QMovie@@QAE_NXZ @ 4195 NONAME ; bool QMovie::jumpToNextFrame(void) + ??1QStackedLayout@@UAE@XZ @ 4196 NONAME ; QStackedLayout::~QStackedLayout(void) + ??_EQStackedWidget@@UAE@I@Z @ 4197 NONAME ; QStackedWidget::~QStackedWidget(unsigned int) + ??_EQLineControl@@UAE@I@Z @ 4198 NONAME ; QLineControl::~QLineControl(unsigned int) + ??4QFontMetricsF@@QAEAAV0@ABVQFontMetrics@@@Z @ 4199 NONAME ; class QFontMetricsF & QFontMetricsF::operator=(class QFontMetrics const &) + ?bold@QFontDatabase@@QBE_NABVQString@@0@Z @ 4200 NONAME ; bool QFontDatabase::bold(class QString const &, class QString const &) const + ?mousePressEvent@QGraphicsView@@MAEXPAVQMouseEvent@@@Z @ 4201 NONAME ; void QGraphicsView::mousePressEvent(class QMouseEvent *) + ??0QStyleOptionViewItem@@IAE@H@Z @ 4202 NONAME ; QStyleOptionViewItem::QStyleOptionViewItem(int) + ?detach_helper@QPainterPath@@AAEXXZ @ 4203 NONAME ; void QPainterPath::detach_helper(void) + ?getStaticMetaObject@QPinchGesture@@SAABUQMetaObject@@XZ @ 4204 NONAME ; struct QMetaObject const & QPinchGesture::getStaticMetaObject(void) + ?childAt@QWidget@@QBEPAV1@ABVQPoint@@@Z @ 4205 NONAME ; class QWidget * QWidget::childAt(class QPoint const &) const + ?clearFocus@QGraphicsScene@@QAEXXZ @ 4206 NONAME ; void QGraphicsScene::clearFocus(void) + ?map@QTransform@@QBE?AVQPolygon@@ABV2@@Z @ 4207 NONAME ; class QPolygon QTransform::map(class QPolygon const &) const + ?qt_metacast@QGraphicsTransform@@UAEPAXPBD@Z @ 4208 NONAME ; void * QGraphicsTransform::qt_metacast(char const *) + ?font@QApplication@@SA?AVQFont@@XZ @ 4209 NONAME ; class QFont QApplication::font(void) + ?fillRect@QPainter@@QAEXABVQRectF@@ABVQBrush@@@Z @ 4210 NONAME ; void QPainter::fillRect(class QRectF const &, class QBrush const &) + ?setDisabled@QTreeWidgetItem@@QAEX_N@Z @ 4211 NONAME ; void QTreeWidgetItem::setDisabled(bool) + ??0QStyleOptionTabV3@@QAE@ABVQStyleOptionTab@@@Z @ 4212 NONAME ; QStyleOptionTabV3::QStyleOptionTabV3(class QStyleOptionTab const &) + ?jumpToFrame@QMovie@@QAE_NH@Z @ 4213 NONAME ; bool QMovie::jumpToFrame(int) + ?mouseDoubleClickEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4214 NONAME ; void QGraphicsItem::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?strokePolygon@QStrokerOps@@QAEXPBVQPointF@@H_NPAXABVQTransform@@@Z @ 4215 NONAME ; void QStrokerOps::strokePolygon(class QPointF const *, int, bool, void *, class QTransform const &) + ?proxyModel@QFileDialog@@QBEPAVQAbstractProxyModel@@XZ @ 4216 NONAME ; class QAbstractProxyModel * QFileDialog::proxyModel(void) const + ?staticMetaObject@QTextObject@@2UQMetaObject@@B @ 4217 NONAME ; struct QMetaObject const QTextObject::staticMetaObject + ?passwordCharacter@QLineControl@@QBE?AVQChar@@XZ @ 4218 NONAME ; class QChar QLineControl::passwordCharacter(void) const + ?sliderReleased@QAbstractSlider@@IAEXXZ @ 4219 NONAME ; void QAbstractSlider::sliderReleased(void) + ?metaObject@QDial@@UBEPBUQMetaObject@@XZ @ 4220 NONAME ; struct QMetaObject const * QDial::metaObject(void) const + ??4QTextTableCell@@QAEAAV0@ABV0@@Z @ 4221 NONAME ; class QTextTableCell & QTextTableCell::operator=(class QTextTableCell const &) + ?keyPressEvent@QGraphicsProxyWidget@@MAEXPAVQKeyEvent@@@Z @ 4222 NONAME ; void QGraphicsProxyWidget::keyPressEvent(class QKeyEvent *) + ??1QEventDispatcherS60@@UAE@XZ @ 4223 NONAME ; QEventDispatcherS60::~QEventDispatcherS60(void) + ?setShortcutContext@QAction@@QAEXW4ShortcutContext@Qt@@@Z @ 4224 NONAME ; void QAction::setShortcutContext(enum Qt::ShortcutContext) + ?contextMenuEvent@QMdiSubWindow@@MAEXPAVQContextMenuEvent@@@Z @ 4225 NONAME ; void QMdiSubWindow::contextMenuEvent(class QContextMenuEvent *) + ?getStaticMetaObject@QGraphicsAnchor@@SAABUQMetaObject@@XZ @ 4226 NONAME ; struct QMetaObject const & QGraphicsAnchor::getStaticMetaObject(void) + ?trUtf8@QGraphicsEffectSource@@SA?AVQString@@PBD0@Z @ 4227 NONAME ; class QString QGraphicsEffectSource::trUtf8(char const *, char const *) + ?setComboBoxEditable@QInputDialog@@QAEX_N@Z @ 4228 NONAME ; void QInputDialog::setComboBoxEditable(bool) + ??0QPainterState@@QAE@XZ @ 4229 NONAME ; QPainterState::QPainterState(void) + ?fontOverline@QTextCharFormat@@QBE_NXZ @ 4230 NONAME ; bool QTextCharFormat::fontOverline(void) const + ?sizeHint@QWizard@@UBE?AVQSize@@XZ @ 4231 NONAME ; class QSize QWizard::sizeHint(void) const + ?qt_metacast@QFocusFrame@@UAEPAXPBD@Z @ 4232 NONAME ; void * QFocusFrame::qt_metacast(char const *) + ?fontChange@QWidget@@MAEXABVQFont@@@Z @ 4233 NONAME ; void QWidget::fontChange(class QFont const &) + ?ungrabMouseEvent@QGraphicsWidget@@MAEXPAVQEvent@@@Z @ 4234 NONAME ; void QGraphicsWidget::ungrabMouseEvent(class QEvent *) + ??0QGraphicsEffectSource@@IAE@AAVQGraphicsEffectSourcePrivate@@PAVQObject@@@Z @ 4235 NONAME ; QGraphicsEffectSource::QGraphicsEffectSource(class QGraphicsEffectSourcePrivate &, class QObject *) + ?childrenRegion@QWidget@@QBE?AVQRegion@@XZ @ 4236 NONAME ; class QRegion QWidget::childrenRegion(void) const + ?item@QTextList@@QBE?AVQTextBlock@@H@Z @ 4237 NONAME ; class QTextBlock QTextList::item(int) const + ?setDateTimeRange@QDateTimeEdit@@QAEXABVQDateTime@@0@Z @ 4238 NONAME ; void QDateTimeEdit::setDateTimeRange(class QDateTime const &, class QDateTime const &) + ?oldSize@QGraphicsSceneResizeEvent@@QBE?AVQSizeF@@XZ @ 4239 NONAME ; class QSizeF QGraphicsSceneResizeEvent::oldSize(void) const + ?qt_metacall@QPixmapBlurFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4240 NONAME ; int QPixmapBlurFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?iconSize@QMainWindow@@QBE?AVQSize@@XZ @ 4241 NONAME ; class QSize QMainWindow::iconSize(void) const + ?validate@QDoubleSpinBox@@UBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 4242 NONAME ; enum QValidator::State QDoubleSpinBox::validate(class QString &, int &) const + ?draw@QPlainTextDocumentLayout@@UAEXPAVQPainter@@ABUPaintContext@QAbstractTextDocumentLayout@@@Z @ 4243 NONAME ; void QPlainTextDocumentLayout::draw(class QPainter *, struct QAbstractTextDocumentLayout::PaintContext const &) + ?font@QWidget@@QBEABVQFont@@XZ @ 4244 NONAME ; class QFont const & QWidget::font(void) const + ?focusOutEvent@QGraphicsTextItem@@MAEXPAVQFocusEvent@@@Z @ 4245 NONAME ; void QGraphicsTextItem::focusOutEvent(class QFocusEvent *) + ?qt_metacast@QActionGroup@@UAEPAXPBD@Z @ 4246 NONAME ; void * QActionGroup::qt_metacast(char const *) + ?inputMethodQuery@QTextEdit@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 4247 NONAME ; class QVariant QTextEdit::inputMethodQuery(enum Qt::InputMethodQuery) const + ?paint@QGraphicsRectItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4248 NONAME ; void QGraphicsRectItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?getStaticMetaObject@QCoeFepInputContext@@SAABUQMetaObject@@XZ @ 4249 NONAME ; struct QMetaObject const & QCoeFepInputContext::getStaticMetaObject(void) + ?d_func@QStyle@@AAEPAVQStylePrivate@@XZ @ 4250 NONAME ; class QStylePrivate * QStyle::d_func(void) + ?hasAlphaChannel@QRasterPixmapData@@UBE_NXZ @ 4251 NONAME ; bool QRasterPixmapData::hasAlphaChannel(void) const + ??1QAbstractScrollArea@@UAE@XZ @ 4252 NONAME ; QAbstractScrollArea::~QAbstractScrollArea(void) + ??9QMatrix4x4@@QBE_NABV0@@Z @ 4253 NONAME ; bool QMatrix4x4::operator!=(class QMatrix4x4 const &) const + ?qt_metacall@QInputContextPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4254 NONAME ; int QInputContextPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?documentMode@QTabWidget@@QBE_NXZ @ 4255 NONAME ; bool QTabWidget::documentMode(void) const + ?qt_metacall@QPanGesture@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4256 NONAME ; int QPanGesture::qt_metacall(enum QMetaObject::Call, int, void * *) + ?index@QDirModel@@QBE?AVQModelIndex@@ABVQString@@H@Z @ 4257 NONAME ; class QModelIndex QDirModel::index(class QString const &, int) const + ?bottomRow@QTableWidgetSelectionRange@@QBEHXZ @ 4258 NONAME ; int QTableWidgetSelectionRange::bottomRow(void) const + ?qt_metacast@QMessageBox@@UAEPAXPBD@Z @ 4259 NONAME ; void * QMessageBox::qt_metacast(char const *) + ?d_func@QHeaderView@@ABEPBVQHeaderViewPrivate@@XZ @ 4260 NONAME ; class QHeaderViewPrivate const * QHeaderView::d_func(void) const + ?geometry@QLayout@@UBE?AVQRect@@XZ @ 4261 NONAME ; class QRect QLayout::geometry(void) const + ?trUtf8@QCompleter@@SA?AVQString@@PBD0H@Z @ 4262 NONAME ; class QString QCompleter::trUtf8(char const *, char const *, int) + ?fromHsvF@QColor@@SA?AV1@MMMM@Z @ 4263 NONAME ; class QColor QColor::fromHsvF(float, float, float, float) + ??1QFormLayout@@UAE@XZ @ 4264 NONAME ; QFormLayout::~QFormLayout(void) + ?read@QListWidgetItem@@UAEXAAVQDataStream@@@Z @ 4265 NONAME ; void QListWidgetItem::read(class QDataStream &) + ?focus_widget@QApplicationPrivate@@2PAVQWidget@@A @ 4266 NONAME ; class QWidget * QApplicationPrivate::focus_widget + ?buttons@QButtonGroup@@QBE?AV?$QList@PAVQAbstractButton@@@@XZ @ 4267 NONAME ; class QList QButtonGroup::buttons(void) const + ?setDocument@QPlainTextEdit@@QAEXPAVQTextDocument@@@Z @ 4268 NONAME ; void QPlainTextEdit::setDocument(class QTextDocument *) + ?isAnimated@QMainWindow@@QBE_NXZ @ 4269 NONAME ; bool QMainWindow::isAnimated(void) const + ??1QPinchGesture@@UAE@XZ @ 4270 NONAME ; QPinchGesture::~QPinchGesture(void) + ?index@QUndoStack@@QBEHXZ @ 4271 NONAME ; int QUndoStack::index(void) const + ?width@QTextEngine@@QBE?AUQFixed@@HH@Z @ 4272 NONAME ; struct QFixed QTextEngine::width(int, int) const + ?trUtf8@QIconEnginePluginV2@@SA?AVQString@@PBD0H@Z @ 4273 NONAME ; class QString QIconEnginePluginV2::trUtf8(char const *, char const *, int) + ?home@QLineControl@@QAEX_N@Z @ 4274 NONAME ; void QLineControl::home(bool) + ??_EQDirModel@@UAE@I@Z @ 4275 NONAME ; QDirModel::~QDirModel(unsigned int) + ?trUtf8@QPaintBufferSignalProxy@@SA?AVQString@@PBD0@Z @ 4276 NONAME ; class QString QPaintBufferSignalProxy::trUtf8(char const *, char const *) + ?isNull@QTextCursor@@QBE_NXZ @ 4277 NONAME ; bool QTextCursor::isNull(void) const + ?selectionRect@QTextControl@@QBE?AVQRectF@@ABVQTextCursor@@@Z @ 4278 NONAME ; class QRectF QTextControl::selectionRect(class QTextCursor const &) const + ?hoverMoveEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 4279 NONAME ; void QGraphicsTextItem::hoverMoveEvent(class QGraphicsSceneHoverEvent *) + ??0QGraphicsSceneDragDropEvent@@QAE@W4Type@QEvent@@@Z @ 4280 NONAME ; QGraphicsSceneDragDropEvent::QGraphicsSceneDragDropEvent(enum QEvent::Type) + ??1QPaintEngineExPrivate@@UAE@XZ @ 4281 NONAME ; QPaintEngineExPrivate::~QPaintEngineExPrivate(void) + ?qt_metacall@QRubberBand@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4282 NONAME ; int QRubberBand::qt_metacall(enum QMetaObject::Call, int, void * *) + ?showChildren@QWidgetPrivate@@QAEX_N@Z @ 4283 NONAME ; void QWidgetPrivate::showChildren(bool) + ?setTabShape@QMdiArea@@QAEXW4TabShape@QTabWidget@@@Z @ 4284 NONAME ; void QMdiArea::setTabShape(enum QTabWidget::TabShape) + ?left@QItemSelectionRange@@QBEHXZ @ 4285 NONAME ; int QItemSelectionRange::left(void) const + ??1QGraphicsAnchorLayout@@UAE@XZ @ 4286 NONAME ; QGraphicsAnchorLayout::~QGraphicsAnchorLayout(void) + ?setFontStyleHint@QTextCharFormat@@QAEXW4StyleHint@QFont@@W4StyleStrategy@3@@Z @ 4287 NONAME ; void QTextCharFormat::setFontStyleHint(enum QFont::StyleHint, enum QFont::StyleStrategy) + ?focusNextPrevChild@QPlainTextEdit@@MAE_N_N@Z @ 4288 NONAME ; bool QPlainTextEdit::focusNextPrevChild(bool) + ?size@QGraphicsWidget@@QBE?AVQSizeF@@XZ @ 4289 NONAME ; class QSizeF QGraphicsWidget::size(void) const + ?setAlignment@QLayout@@QAE_NPAVQWidget@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 4290 NONAME ; bool QLayout::setAlignment(class QWidget *, class QFlags) + ?insertItems@QComboBox@@QAEXHABVQStringList@@@Z @ 4291 NONAME ; void QComboBox::insertItems(int, class QStringList const &) + ?handle@QWidget@@QBEKXZ @ 4292 NONAME ; unsigned long QWidget::handle(void) const + ??1QTreeWidgetItemIterator@@QAE@XZ @ 4293 NONAME ; QTreeWidgetItemIterator::~QTreeWidgetItemIterator(void) + ??_EQGraphicsEffect@@UAE@I@Z @ 4294 NONAME ; QGraphicsEffect::~QGraphicsEffect(unsigned int) + ?paintEngine@QPaintBuffer@@UBEPAVQPaintEngine@@XZ @ 4295 NONAME ; class QPaintEngine * QPaintBuffer::paintEngine(void) const + ?isAreaAllowed@QToolBar@@QBE_NW4ToolBarArea@Qt@@@Z @ 4296 NONAME ; bool QToolBar::isAreaAllowed(enum Qt::ToolBarArea) const + ?fontWeight@QTextCharFormat@@QBEHXZ @ 4297 NONAME ; int QTextCharFormat::fontWeight(void) const + ?staticMetaObject@QTextList@@2UQMetaObject@@B @ 4298 NONAME ; struct QMetaObject const QTextList::staticMetaObject + ?setBlurRadius@QPixmapDropShadowFilter@@QAEXH@Z @ 4299 NONAME ; void QPixmapDropShadowFilter::setBlurRadius(int) + ?GetEditorContentForFep@QCoeFepInputContext@@UBEXAAVTDes16@@HH@Z @ 4300 NONAME ; void QCoeFepInputContext::GetEditorContentForFep(class TDes16 &, int, int) const + ?trUtf8@QGraphicsWidget@@SA?AVQString@@PBD0H@Z @ 4301 NONAME ; class QString QGraphicsWidget::trUtf8(char const *, char const *, int) + ?extraItemCache@QGraphicsItemPrivate@@QBEPAVQGraphicsItemCache@@XZ @ 4302 NONAME ; class QGraphicsItemCache * QGraphicsItemPrivate::extraItemCache(void) const + ?metaObject@QTableWidget@@UBEPBUQMetaObject@@XZ @ 4303 NONAME ; struct QMetaObject const * QTableWidget::metaObject(void) const + ?setItemText@QToolBox@@QAEXHABVQString@@@Z @ 4304 NONAME ; void QToolBox::setItemText(int, class QString const &) + ?setCascadingSectionResizes@QHeaderView@@QAEX_N@Z @ 4305 NONAME ; void QHeaderView::setCascadingSectionResizes(bool) + ?d_func@QAbstractGraphicsShapeItem@@AAEPAVQAbstractGraphicsShapeItemPrivate@@XZ @ 4306 NONAME ; class QAbstractGraphicsShapeItemPrivate * QAbstractGraphicsShapeItem::d_func(void) + ?href@QWhatsThisClickedEvent@@QBE?AVQString@@XZ @ 4307 NONAME ; class QString QWhatsThisClickedEvent::href(void) const + ?addItem@QGraphicsLinearLayout@@QAEXPAVQGraphicsLayoutItem@@@Z @ 4308 NONAME ; void QGraphicsLinearLayout::addItem(class QGraphicsLayoutItem *) + ?verticalPolicy@QSizePolicy@@QBE?AW4Policy@1@XZ @ 4309 NONAME ; enum QSizePolicy::Policy QSizePolicy::verticalPolicy(void) const + ?italic@QFontInfo@@QBE_NXZ @ 4310 NONAME ; bool QFontInfo::italic(void) const + ?isForwardAvailable@QTextBrowser@@QBE_NXZ @ 4311 NONAME ; bool QTextBrowser::isForwardAvailable(void) const + ?changeEvent@QMdiSubWindow@@MAEXPAVQEvent@@@Z @ 4312 NONAME ; void QMdiSubWindow::changeEvent(class QEvent *) + ??0QBrush@@QAE@ABVQImage@@@Z @ 4313 NONAME ; QBrush::QBrush(class QImage const &) + ?d_func@QDialogButtonBox@@ABEPBVQDialogButtonBoxPrivate@@XZ @ 4314 NONAME ; class QDialogButtonBoxPrivate const * QDialogButtonBox::d_func(void) const + ?ungrabMouseEvent@QGraphicsProxyWidget@@MAEXPAVQEvent@@@Z @ 4315 NONAME ; void QGraphicsProxyWidget::ungrabMouseEvent(class QEvent *) + ?sizeFromContents@QProxyStyle@@UBE?AVQSize@@W4ContentsType@QStyle@@PBVQStyleOption@@ABV2@PBVQWidget@@@Z @ 4316 NONAME ; class QSize QProxyStyle::sizeFromContents(enum QStyle::ContentsType, class QStyleOption const *, class QSize const &, class QWidget const *) const + ?resizeColumnToContents@QTreeView@@QAEXH@Z @ 4317 NONAME ; void QTreeView::resizeColumnToContents(int) + ?addButton@QMessageBox@@QAEPAVQPushButton@@ABVQString@@W4ButtonRole@1@@Z @ 4318 NONAME ; class QPushButton * QMessageBox::addButton(class QString const &, enum QMessageBox::ButtonRole) + ?drawEllipse@QPainter@@QAEXABVQRectF@@@Z @ 4319 NONAME ; void QPainter::drawEllipse(class QRectF const &) + ?drawImage@QPaintEngineEx@@UAEXABVQPointF@@ABVQImage@@@Z @ 4320 NONAME ; void QPaintEngineEx::drawImage(class QPointF const &, class QImage const &) + ?hasAcceptableInput@QLineControl@@ABE_NABVQString@@@Z @ 4321 NONAME ; bool QLineControl::hasAcceptableInput(class QString const &) const + ??0QStyleOptionFrame@@QAE@XZ @ 4322 NONAME ; QStyleOptionFrame::QStyleOptionFrame(void) + ?setViewport@QAbstractScrollArea@@QAEXPAVQWidget@@@Z @ 4323 NONAME ; void QAbstractScrollArea::setViewport(class QWidget *) + ?drawInlineObject@QAbstractTextDocumentLayout@@MAEXPAVQPainter@@ABVQRectF@@VQTextInlineObject@@HABVQTextFormat@@@Z @ 4324 NONAME ; void QAbstractTextDocumentLayout::drawInlineObject(class QPainter *, class QRectF const &, class QTextInlineObject, int, class QTextFormat const &) + ??0QTextTableFormat@@IAE@ABVQTextFormat@@@Z @ 4325 NONAME ; QTextTableFormat::QTextTableFormat(class QTextFormat const &) + ??_EQDoubleSpinBox@@UAE@I@Z @ 4326 NONAME ; QDoubleSpinBox::~QDoubleSpinBox(unsigned int) + ?scaledToHeight@QImage@@QBE?AV1@HW4TransformationMode@Qt@@@Z @ 4327 NONAME ; class QImage QImage::scaledToHeight(int, enum Qt::TransformationMode) const + ?blockFormat@QTextBlock@@QBE?AVQTextBlockFormat@@XZ @ 4328 NONAME ; class QTextBlockFormat QTextBlock::blockFormat(void) const + ?underlinePos@QFontMetricsF@@QBEMXZ @ 4329 NONAME ; float QFontMetricsF::underlinePos(void) const + ?staticMetaObject@QGraphicsAnchor@@2UQMetaObject@@B @ 4330 NONAME ; struct QMetaObject const QGraphicsAnchor::staticMetaObject + ?d_func@QStackedLayout@@ABEPBVQStackedLayoutPrivate@@XZ @ 4331 NONAME ; class QStackedLayoutPrivate const * QStackedLayout::d_func(void) const + ?setSystemClip@QPaintEngine@@QAEXABVQRegion@@@Z @ 4332 NONAME ; void QPaintEngine::setSystemClip(class QRegion const &) + ?tr@QStackedWidget@@SA?AVQString@@PBD0@Z @ 4333 NONAME ; class QString QStackedWidget::tr(char const *, char const *) + ?focusOutEvent@QGraphicsWidget@@MAEXPAVQFocusEvent@@@Z @ 4334 NONAME ; void QGraphicsWidget::focusOutEvent(class QFocusEvent *) + ?done@QFileDialog@@MAEXH@Z @ 4335 NONAME ; void QFileDialog::done(int) + ?drawEllipse@QPainter@@QAEXABVQRect@@@Z @ 4336 NONAME ; void QPainter::drawEllipse(class QRect const &) + ?loadFromData@QImage@@QAE_NABVQByteArray@@PBD@Z @ 4337 NONAME ; bool QImage::loadFromData(class QByteArray const &, char const *) + ?trUtf8@QMainWindow@@SA?AVQString@@PBD0@Z @ 4338 NONAME ; class QString QMainWindow::trUtf8(char const *, char const *) + ?setFileName@QImageWriter@@QAEXABVQString@@@Z @ 4339 NONAME ; void QImageWriter::setFileName(class QString const &) + ?lazyChildCount@QDirModel@@QBE_NXZ @ 4340 NONAME ; bool QDirModel::lazyChildCount(void) const + ?scaledClipRect@QImageReader@@QBE?AVQRect@@XZ @ 4341 NONAME ; class QRect QImageReader::scaledClipRect(void) const + ?qt_metacast@QGraphicsObject@@UAEPAXPBD@Z @ 4342 NONAME ; void * QGraphicsObject::qt_metacast(char const *) + ?setUpdatesEnabled@QWidget@@QAEX_N@Z @ 4343 NONAME ; void QWidget::setUpdatesEnabled(bool) + ??0QPolygon@@QAE@H@Z @ 4344 NONAME ; QPolygon::QPolygon(int) + ?shape@QTabBar@@QBE?AW4Shape@1@XZ @ 4345 NONAME ; enum QTabBar::Shape QTabBar::shape(void) const + ?tr@QListView@@SA?AVQString@@PBD0H@Z @ 4346 NONAME ; class QString QListView::tr(char const *, char const *, int) + ?resetTransform@QPainter@@QAEXXZ @ 4347 NONAME ; void QPainter::resetTransform(void) + ?anchorAtCursor@QTextControl@@QBE?AVQString@@XZ @ 4348 NONAME ; class QString QTextControl::anchorAtCursor(void) const + ?symbianHandleCommand@QApplicationPrivate@@QAEHH@Z @ 4349 NONAME ; int QApplicationPrivate::symbianHandleCommand(int) + ?saveState@QFileDialog@@QBE?AVQByteArray@@XZ @ 4350 NONAME ; class QByteArray QFileDialog::saveState(void) const + ?usesScrollButtons@QTabBar@@QBE_NXZ @ 4351 NONAME ; bool QTabBar::usesScrollButtons(void) const + ?sizeHint@QDockWidgetLayout@@UBE?AVQSize@@XZ @ 4352 NONAME ; class QSize QDockWidgetLayout::sizeHint(void) const + ?drawPolygon@QPainter@@QAEXABVQPolygon@@W4FillRule@Qt@@@Z @ 4353 NONAME ; void QPainter::drawPolygon(class QPolygon const &, enum Qt::FillRule) + ?naturalTextWidth@QLineControl@@QBEMXZ @ 4354 NONAME ; float QLineControl::naturalTextWidth(void) const + ?clip@QPaintEngineEx@@UAEXABVQPainterPath@@W4ClipOperation@Qt@@@Z @ 4355 NONAME ; void QPaintEngineEx::clip(class QPainterPath const &, enum Qt::ClipOperation) + ?setContentsMargins@QGraphicsLayout@@QAEXMMMM@Z @ 4356 NONAME ; void QGraphicsLayout::setContentsMargins(float, float, float, float) + ?filterRole@QSortFilterProxyModel@@QBEHXZ @ 4357 NONAME ; int QSortFilterProxyModel::filterRole(void) const + ?hideEvent@QSizeGrip@@MAEXPAVQHideEvent@@@Z @ 4358 NONAME ; void QSizeGrip::hideEvent(class QHideEvent *) + ?staticMetaObject@QCalendarWidget@@2UQMetaObject@@B @ 4359 NONAME ; struct QMetaObject const QCalendarWidget::staticMetaObject + ?tr@QWidgetAction@@SA?AVQString@@PBD0H@Z @ 4360 NONAME ; class QString QWidgetAction::tr(char const *, char const *, int) + ?initializePage@QWizard@@MAEXH@Z @ 4361 NONAME ; void QWizard::initializePage(int) + ?d_func@QButtonGroup@@AAEPAVQButtonGroupPrivate@@XZ @ 4362 NONAME ; class QButtonGroupPrivate * QButtonGroup::d_func(void) + ?parentWidget@QGraphicsItem@@QBEPAVQGraphicsWidget@@XZ @ 4363 NONAME ; class QGraphicsWidget * QGraphicsItem::parentWidget(void) const + ?paintEvent@QFocusFrame@@MAEXPAVQPaintEvent@@@Z @ 4364 NONAME ; void QFocusFrame::paintEvent(class QPaintEvent *) + ?trUtf8@QDockWidget@@SA?AVQString@@PBD0H@Z @ 4365 NONAME ; class QString QDockWidget::trUtf8(char const *, char const *, int) + ?minimumHeight@QGraphicsLayoutItem@@QBEMXZ @ 4366 NONAME ; float QGraphicsLayoutItem::minimumHeight(void) const + ?sectionsAboutToBeRemoved@QHeaderView@@IAEXABVQModelIndex@@HH@Z @ 4367 NONAME ; void QHeaderView::sectionsAboutToBeRemoved(class QModelIndex const &, int, int) + ?focusOutEvent@QTextBrowser@@MAEXPAVQFocusEvent@@@Z @ 4368 NONAME ; void QTextBrowser::focusOutEvent(class QFocusEvent *) + ?textKeys@QImageReader@@QBE?AVQStringList@@XZ @ 4369 NONAME ; class QStringList QImageReader::textKeys(void) const + ??_EQLCDNumber@@UAE@I@Z @ 4370 NONAME ; QLCDNumber::~QLCDNumber(unsigned int) + ?clipToEffectiveMask@QWidgetPrivate@@QBEXAAVQRegion@@@Z @ 4371 NONAME ; void QWidgetPrivate::clipToEffectiveMask(class QRegion &) const + ?heightForWidth@QCommandLinkButton@@MBEHH@Z @ 4372 NONAME ; int QCommandLinkButton::heightForWidth(int) const + ?event@QMainWindow@@MAE_NPAVQEvent@@@Z @ 4373 NONAME ; bool QMainWindow::event(class QEvent *) + ?event@QAbstractButton@@MAE_NPAVQEvent@@@Z @ 4374 NONAME ; bool QAbstractButton::event(class QEvent *) + ??0QBrush@@QAE@ABVQColor@@W4BrushStyle@Qt@@@Z @ 4375 NONAME ; QBrush::QBrush(class QColor const &, enum Qt::BrushStyle) + ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@IABVQTransform@@@Z @ 4376 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int, class QTransform const &) + ?isModified@QLineControl@@QBE_NXZ @ 4377 NONAME ; bool QLineControl::isModified(void) const + ?index@QStandardItem@@QBE?AVQModelIndex@@XZ @ 4378 NONAME ; class QModelIndex QStandardItem::index(void) const + ?y@QWheelEvent@@QBEHXZ @ 4379 NONAME ; int QWheelEvent::y(void) const + ?event@QMenu@@MAE_NPAVQEvent@@@Z @ 4380 NONAME ; bool QMenu::event(class QEvent *) + ?setExtraHeight@QWidgetResizeHandler@@QAEXH@Z @ 4381 NONAME ; void QWidgetResizeHandler::setExtraHeight(int) + ?okButtonText@QInputDialog@@QBE?AVQString@@XZ @ 4382 NONAME ; class QString QInputDialog::okButtonText(void) const + ?trUtf8@QTextControl@@SA?AVQString@@PBD0@Z @ 4383 NONAME ; class QString QTextControl::trUtf8(char const *, char const *) + ?mouseReleaseEvent@QDial@@MAEXPAVQMouseEvent@@@Z @ 4384 NONAME ; void QDial::mouseReleaseEvent(class QMouseEvent *) + ??1QGraphicsItemGroup@@UAE@XZ @ 4385 NONAME ; QGraphicsItemGroup::~QGraphicsItemGroup(void) + ?visibleRegion@QWidget@@QBE?AVQRegion@@XZ @ 4386 NONAME ; class QRegion QWidget::visibleRegion(void) const + ?setValidator@QComboBox@@QAEXPBVQValidator@@@Z @ 4387 NONAME ; void QComboBox::setValidator(class QValidator const *) + ?setGridSize@QListView@@QAEXABVQSize@@@Z @ 4388 NONAME ; void QListView::setGridSize(class QSize const &) + ?getStaticMetaObject@QSpinBox@@SAABUQMetaObject@@XZ @ 4389 NONAME ; struct QMetaObject const & QSpinBox::getStaticMetaObject(void) + ?insertRow@QFormLayout@@QAEXHPAVQLayout@@@Z @ 4390 NONAME ; void QFormLayout::insertRow(int, class QLayout *) + ?dragMoveEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 4391 NONAME ; void QGraphicsProxyWidget::dragMoveEvent(class QGraphicsSceneDragDropEvent *) + ?undo@QTextDocument@@QAEXPAVQTextCursor@@@Z @ 4392 NONAME ; void QTextDocument::undo(class QTextCursor *) + ?color@QPixmapColorizeFilter@@QBE?AVQColor@@XZ @ 4393 NONAME ; class QColor QPixmapColorizeFilter::color(void) const + ?staticMetaObject@QGraphicsObject@@2UQMetaObject@@B @ 4394 NONAME ; struct QMetaObject const QGraphicsObject::staticMetaObject + ?getLayoutPosition@QFormLayout@@QBEXPAVQLayout@@PAHPAW4ItemRole@1@@Z @ 4395 NONAME ; void QFormLayout::getLayoutPosition(class QLayout *, int *, enum QFormLayout::ItemRole *) const + ?deviceRect@QGraphicsEffectSource@@QBE?AVQRect@@XZ @ 4396 NONAME ; class QRect QGraphicsEffectSource::deviceRect(void) const + ?doItemsLayout@QAbstractItemView@@UAEXXZ @ 4397 NONAME ; void QAbstractItemView::doItemsLayout(void) + ??_EQStatusTipEvent@@UAE@I@Z @ 4398 NONAME ; QStatusTipEvent::~QStatusTipEvent(unsigned int) + ?tr@QSplashScreen@@SA?AVQString@@PBD0H@Z @ 4399 NONAME ; class QString QSplashScreen::tr(char const *, char const *, int) + ?flow@QListView@@QBE?AW4Flow@1@XZ @ 4400 NONAME ; enum QListView::Flow QListView::flow(void) const + ?isCheckable@QGroupBox@@QBE_NXZ @ 4401 NONAME ; bool QGroupBox::isCheckable(void) const + ?qt_metacast@QGraphicsTextItem@@UAEPAXPBD@Z @ 4402 NONAME ; void * QGraphicsTextItem::qt_metacast(char const *) + ?mouseMoveEvent@QMenu@@MAEXPAVQMouseEvent@@@Z @ 4403 NONAME ; void QMenu::mouseMoveEvent(class QMouseEvent *) + ?qt_metacall@QDockWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4404 NONAME ; int QDockWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?verticalHeaderItem@QTableWidget@@QBEPAVQTableWidgetItem@@H@Z @ 4405 NONAME ; class QTableWidgetItem * QTableWidget::verticalHeaderItem(int) const + ?getStaticMetaObject@QProgressBar@@SAABUQMetaObject@@XZ @ 4406 NONAME ; struct QMetaObject const & QProgressBar::getStaticMetaObject(void) + ?staticMetaObject@QGraphicsTextItem@@2UQMetaObject@@B @ 4407 NONAME ; struct QMetaObject const QGraphicsTextItem::staticMetaObject + ?rowHeight@QTreeView@@IBEHABVQModelIndex@@@Z @ 4408 NONAME ; int QTreeView::rowHeight(class QModelIndex const &) const + ?font@QTextEngine@@QBE?AVQFont@@XZ @ 4409 NONAME ; class QFont QTextEngine::font(void) const + ?wheelEvent@QMenu@@MAEXPAVQWheelEvent@@@Z @ 4410 NONAME ; void QMenu::wheelEvent(class QWheelEvent *) + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRectF@@W4ItemSelectionMode@Qt@@W4SortOrder@5@ABVQTransform@@@Z @ 4411 NONAME ; class QList QGraphicsScene::items(class QRectF const &, enum Qt::ItemSelectionMode, enum Qt::SortOrder, class QTransform const &) const + ?expandingDirections@QLayout@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 4412 NONAME ; class QFlags QLayout::expandingDirections(void) const + ?staticMetaObject@QFontDatabase@@2UQMetaObject@@B @ 4413 NONAME ; struct QMetaObject const QFontDatabase::staticMetaObject + ?startDrag@QAbstractItemView@@MAEXV?$QFlags@W4DropAction@Qt@@@@@Z @ 4414 NONAME ; void QAbstractItemView::startDrag(class QFlags) + ?inputMethodEvent@QAbstractItemView@@MAEXPAVQInputMethodEvent@@@Z @ 4415 NONAME ; void QAbstractItemView::inputMethodEvent(class QInputMethodEvent *) + ?boundingRect@QFontMetricsF@@QBE?AVQRectF@@ABV2@HABVQString@@HPAH@Z @ 4416 NONAME ; class QRectF QFontMetricsF::boundingRect(class QRectF const &, int, class QString const &, int, int *) const + ??0QStyleOptionSlider@@QAE@XZ @ 4417 NONAME ; QStyleOptionSlider::QStyleOptionSlider(void) + ?itemActivated@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 4418 NONAME ; void QListWidget::itemActivated(class QListWidgetItem *) + ?event@QCompleter@@MAE_NPAVQEvent@@@Z @ 4419 NONAME ; bool QCompleter::event(class QEvent *) + ?united@QPolygonF@@QBE?AV1@ABV1@@Z @ 4420 NONAME ; class QPolygonF QPolygonF::united(class QPolygonF const &) const + ?orientation@QDialog@@QBE?AW4Orientation@Qt@@XZ @ 4421 NONAME ; enum Qt::Orientation QDialog::orientation(void) const + ?setReadOnly@QTextEdit@@QAEX_N@Z @ 4422 NONAME ; void QTextEdit::setReadOnly(bool) + ?setMinimumSize@QWidget@@QAEXHH@Z @ 4423 NONAME ; void QWidget::setMinimumSize(int, int) + ?d_func@QDataWidgetMapper@@AAEPAVQDataWidgetMapperPrivate@@XZ @ 4424 NONAME ; class QDataWidgetMapperPrivate * QDataWidgetMapper::d_func(void) + ??0Parser@QCss@@QAE@XZ @ 4425 NONAME ; QCss::Parser::Parser(void) + ??Fiterator@QTextBlock@@QAEAAV01@XZ @ 4426 NONAME ; class QTextBlock::iterator & QTextBlock::iterator::operator--(void) + ?setDefaultFont@QTextDocument@@QAEXABVQFont@@@Z @ 4427 NONAME ; void QTextDocument::setDefaultFont(class QFont const &) + ?beginNewFrame@QPaintBuffer@@QAEXXZ @ 4428 NONAME ; void QPaintBuffer::beginNewFrame(void) + ?boundingRect@QPainterPath@@QBE?AVQRectF@@XZ @ 4429 NONAME ; class QRectF QPainterPath::boundingRect(void) const + ?eventFilter@QCompleter@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 4430 NONAME ; bool QCompleter::eventFilter(class QObject *, class QEvent *) + ??0QCoeFepInputContext@@QAE@PAVQObject@@@Z @ 4431 NONAME ; QCoeFepInputContext::QCoeFepInputContext(class QObject *) + ?clear@QTextDocument@@UAEXXZ @ 4432 NONAME ; void QTextDocument::clear(void) + ?tr@QKeyEventTransition@@SA?AVQString@@PBD0@Z @ 4433 NONAME ; class QString QKeyEventTransition::tr(char const *, char const *) + ?drawPicture@QPainter@@QAEXABVQPoint@@ABVQPicture@@@Z @ 4434 NONAME ; void QPainter::drawPicture(class QPoint const &, class QPicture const &) + ?shapeLine@QTextEngine@@QAEXABUQScriptLine@@@Z @ 4435 NONAME ; void QTextEngine::shapeLine(struct QScriptLine const &) + ?isValid@QMovie@@QBE_NXZ @ 4436 NONAME ; bool QMovie::isValid(void) const + ?trUtf8@QPaintBufferResource@@SA?AVQString@@PBD0@Z @ 4437 NONAME ; class QString QPaintBufferResource::trUtf8(char const *, char const *) + ?insertRows@QStandardItemModel@@UAE_NHHABVQModelIndex@@@Z @ 4438 NONAME ; bool QStandardItemModel::insertRows(int, int, class QModelIndex const &) + ??0QStyleOptionViewItemV3@@IAE@H@Z @ 4439 NONAME ; QStyleOptionViewItemV3::QStyleOptionViewItemV3(int) + ?state@QGesture@@QBE?AW4GestureState@Qt@@XZ @ 4440 NONAME ; enum Qt::GestureState QGesture::state(void) const + ?insertImage@QTextCursor@@QAEXABVQImage@@ABVQString@@@Z @ 4441 NONAME ; void QTextCursor::insertImage(class QImage const &, class QString const &) + ?target@QDrag@@QBEPAVQWidget@@XZ @ 4442 NONAME ; class QWidget * QDrag::target(void) const + ?itemChanged@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 4443 NONAME ; void QListWidget::itemChanged(class QListWidgetItem *) + ?confirmOverwrite@QFileDialog@@QBE_NXZ @ 4444 NONAME ; bool QFileDialog::confirmOverwrite(void) const + ?isIdentity@QMatrix4x4@@QBE_NXZ @ 4445 NONAME ; bool QMatrix4x4::isIdentity(void) const + ??0QImageIOHandler@@QAE@XZ @ 4446 NONAME ; QImageIOHandler::QImageIOHandler(void) + ?rotate@QGraphicsView@@QAEXM@Z @ 4447 NONAME ; void QGraphicsView::rotate(float) + ?initStyleOption@QStyledItemDelegate@@MBEXPAVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 4448 NONAME ; void QStyledItemDelegate::initStyleOption(class QStyleOptionViewItem *, class QModelIndex const &) const + ?d_func@QMainWindow@@AAEPAVQMainWindowPrivate@@XZ @ 4449 NONAME ; class QMainWindowPrivate * QMainWindow::d_func(void) + ?inWhatsThisMode@QWhatsThis@@SA_NXZ @ 4450 NONAME ; bool QWhatsThis::inWhatsThisMode(void) + ?d_func@QColumnView@@AAEPAVQColumnViewPrivate@@XZ @ 4451 NONAME ; class QColumnViewPrivate * QColumnView::d_func(void) + ??_EQIconEngineFactoryInterface@@UAE@I@Z @ 4452 NONAME ; QIconEngineFactoryInterface::~QIconEngineFactoryInterface(unsigned int) + ?dropEvent@QAbstractScrollArea@@MAEXPAVQDropEvent@@@Z @ 4453 NONAME ; void QAbstractScrollArea::dropEvent(class QDropEvent *) + ?rotationChanged@QGraphicsObject@@IAEXXZ @ 4454 NONAME ; void QGraphicsObject::rotationChanged(void) + ?zoomIn@QTextEdit@@QAEXH@Z @ 4455 NONAME ; void QTextEdit::zoomIn(int) + ?read@QIconEngineV2@@UAE_NAAVQDataStream@@@Z @ 4456 NONAME ; bool QIconEngineV2::read(class QDataStream &) + ?toolBarBreak@QMainWindow@@QBE_NPAVQToolBar@@@Z @ 4457 NONAME ; bool QMainWindow::toolBarBreak(class QToolBar *) const + ?mapRectFromScene@QGraphicsItem@@QBE?AVQRectF@@ABV2@@Z @ 4458 NONAME ; class QRectF QGraphicsItem::mapRectFromScene(class QRectF const &) const + ?drawCursor@QTextLayout@@QBEXPAVQPainter@@ABVQPointF@@H@Z @ 4459 NONAME ; void QTextLayout::drawCursor(class QPainter *, class QPointF const &, int) const + ?trUtf8@QTabWidget@@SA?AVQString@@PBD0@Z @ 4460 NONAME ; class QString QTabWidget::trUtf8(char const *, char const *) + ?viewportEvent@QAbstractScrollArea@@MAE_NPAVQEvent@@@Z @ 4461 NONAME ; bool QAbstractScrollArea::viewportEvent(class QEvent *) + ?scale@QMatrix4x4@@QAEAAV1@MM@Z @ 4462 NONAME ; class QMatrix4x4 & QMatrix4x4::scale(float, float) + ?x@QWidget@@QBEHXZ @ 4463 NONAME ; int QWidget::x(void) const + ?hideColumn@QTableView@@QAEXH@Z @ 4464 NONAME ; void QTableView::hideColumn(int) + ??4QStyleOptionButton@@QAEAAV0@ABV0@@Z @ 4465 NONAME ; class QStyleOptionButton & QStyleOptionButton::operator=(class QStyleOptionButton const &) + ?trUtf8@QProxyModel@@SA?AVQString@@PBD0@Z @ 4466 NONAME ; class QString QProxyModel::trUtf8(char const *, char const *) + ?currentIndex@QComboBox@@QBEHXZ @ 4467 NONAME ; int QComboBox::currentIndex(void) const + ?pt4@QBezier@@QBE?AVQPointF@@XZ @ 4468 NONAME ; class QPointF QBezier::pt4(void) const + ??0QGraphicsSceneHelpEvent@@QAE@W4Type@QEvent@@@Z @ 4469 NONAME ; QGraphicsSceneHelpEvent::QGraphicsSceneHelpEvent(enum QEvent::Type) + ??0QStyleOptionDockWidgetV2@@QAE@XZ @ 4470 NONAME ; QStyleOptionDockWidgetV2::QStyleOptionDockWidgetV2(void) + ?background@QListWidgetItem@@QBE?AVQBrush@@XZ @ 4471 NONAME ; class QBrush QListWidgetItem::background(void) const + ?metaObject@QSortFilterProxyModel@@UBEPBUQMetaObject@@XZ @ 4472 NONAME ; struct QMetaObject const * QSortFilterProxyModel::metaObject(void) const + ?hasChildren@QProxyModel@@UBE_NABVQModelIndex@@@Z @ 4473 NONAME ; bool QProxyModel::hasChildren(class QModelIndex const &) const + ?qt_metacast@QInputContext@@UAEPAXPBD@Z @ 4474 NONAME ; void * QInputContext::qt_metacast(char const *) + ?tr@QGesture@@SA?AVQString@@PBD0@Z @ 4475 NONAME ; class QString QGesture::tr(char const *, char const *) + ?combinedTransform@QPainter@@QBE?AVQTransform@@XZ @ 4476 NONAME ; class QTransform QPainter::combinedTransform(void) const + ?sliderChange@QDial@@MAEXW4SliderChange@QAbstractSlider@@@Z @ 4477 NONAME ; void QDial::sliderChange(enum QAbstractSlider::SliderChange) + ?addEllipse@QGraphicsScene@@QAEPAVQGraphicsEllipseItem@@ABVQRectF@@ABVQPen@@ABVQBrush@@@Z @ 4478 NONAME ; class QGraphicsEllipseItem * QGraphicsScene::addEllipse(class QRectF const &, class QPen const &, class QBrush const &) + ?tr@QFocusFrame@@SA?AVQString@@PBD0H@Z @ 4479 NONAME ; class QString QFocusFrame::tr(char const *, char const *, int) + ?setGeometry@QLayout@@UAEXABVQRect@@@Z @ 4480 NONAME ; void QLayout::setGeometry(class QRect const &) + ??_EQWizard@@UAE@I@Z @ 4481 NONAME ; QWizard::~QWizard(unsigned int) + ?serialNumber@QImage@@QBEHXZ @ 4482 NONAME ; int QImage::serialNumber(void) const + ??8QTextTableCell@@QBE_NABV0@@Z @ 4483 NONAME ; bool QTextTableCell::operator==(class QTextTableCell const &) const + ??0QStyleOptionViewItemV4@@QAE@ABV0@@Z @ 4484 NONAME ; QStyleOptionViewItemV4::QStyleOptionViewItemV4(class QStyleOptionViewItemV4 const &) + ??_EQGroupBox@@UAE@I@Z @ 4485 NONAME ; QGroupBox::~QGroupBox(unsigned int) + ?paste@QTextControl@@QAEXXZ @ 4486 NONAME ; void QTextControl::paste(void) + ?tr@QTabBar@@SA?AVQString@@PBD0H@Z @ 4487 NONAME ; class QString QTabBar::tr(char const *, char const *, int) + ?metaObject@QDrag@@UBEPBUQMetaObject@@XZ @ 4488 NONAME ; struct QMetaObject const * QDrag::metaObject(void) const + ?getStaticMetaObject@QGraphicsBlurEffect@@SAABUQMetaObject@@XZ @ 4489 NONAME ; struct QMetaObject const & QGraphicsBlurEffect::getStaticMetaObject(void) + ?setOkButtonText@QInputDialog@@QAEXABVQString@@@Z @ 4490 NONAME ; void QInputDialog::setOkButtonText(class QString const &) + ?setAngle@QGraphicsRotation@@QAEXM@Z @ 4491 NONAME ; void QGraphicsRotation::setAngle(float) + ?availableGeometry@QDesktopWidget@@QBE?BVQRect@@H@Z @ 4492 NONAME ; class QRect const QDesktopWidget::availableGeometry(int) const + ?mouseButtons@QApplication@@SA?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 4493 NONAME ; class QFlags QApplication::mouseButtons(void) + ?externalLoader@QTextImageHandler@@2P6A?AVQImage@@ABVQString@@0@ZA @ 4494 NONAME ; class QImage (*QTextImageHandler::externalLoader)(class QString const &, class QString const &) + ?sessionKey@QApplication@@QBE?AVQString@@XZ @ 4495 NONAME ; class QString QApplication::sessionKey(void) const + ?qt_metacall@QIntValidator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4496 NONAME ; int QIntValidator::qt_metacall(enum QMetaObject::Call, int, void * *) + ?light@QColor@@QBE?AV1@H@Z @ 4497 NONAME ; class QColor QColor::light(int) const + ?isSeparator@QAction@@QBE_NXZ @ 4498 NONAME ; bool QAction::isSeparator(void) const + ?tr@QKeyEventTransition@@SA?AVQString@@PBD0H@Z @ 4499 NONAME ; class QString QKeyEventTransition::tr(char const *, char const *, int) + ?hoverLeaveEvent@QGraphicsWidget@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 4500 NONAME ; void QGraphicsWidget::hoverLeaveEvent(class QGraphicsSceneHoverEvent *) + ?setTextCursor@QGraphicsTextItem@@QAEXABVQTextCursor@@@Z @ 4501 NONAME ; void QGraphicsTextItem::setTextCursor(class QTextCursor const &) + ?tr@QAbstractItemView@@SA?AVQString@@PBD0H@Z @ 4502 NONAME ; class QString QAbstractItemView::tr(char const *, char const *, int) + ?hideChildren@QWidgetPrivate@@QAEX_N@Z @ 4503 NONAME ; void QWidgetPrivate::hideChildren(bool) + ?alignment@QLabel@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 4504 NONAME ; class QFlags QLabel::alignment(void) const + ?setSpeed@QMovie@@QAEXH@Z @ 4505 NONAME ; void QMovie::setSpeed(int) + ?render@QWidget@@QAEXPAVQPaintDevice@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@@Z @ 4506 NONAME ; void QWidget::render(class QPaintDevice *, class QPoint const &, class QRegion const &, class QFlags) + ??9Tab@QTextOption@@QBE_NABU01@@Z @ 4507 NONAME ; bool QTextOption::Tab::operator!=(struct QTextOption::Tab const &) const + ?getStaticMetaObject@QPalette@@SAABUQMetaObject@@XZ @ 4508 NONAME ; struct QMetaObject const & QPalette::getStaticMetaObject(void) + ?style@QApplication@@SAPAVQStyle@@XZ @ 4509 NONAME ; class QStyle * QApplication::style(void) + ?staticMetaObject@QTableView@@2UQMetaObject@@B @ 4510 NONAME ; struct QMetaObject const QTableView::staticMetaObject + ??1QS60MainApplication@@UAE@XZ @ 4511 NONAME ; QS60MainApplication::~QS60MainApplication(void) + ?text@QKeyEvent@@QBE?AVQString@@XZ @ 4512 NONAME ; class QString QKeyEvent::text(void) const + ?hideOrShow@QStatusBar@@IAEXXZ @ 4513 NONAME ; void QStatusBar::hideOrShow(void) + ?setTextDirection@QProgressBar@@QAEXW4Direction@1@@Z @ 4514 NONAME ; void QProgressBar::setTextDirection(enum QProgressBar::Direction) + ?setDefaultUp@QMenuBar@@QAEX_N@Z @ 4515 NONAME ; void QMenuBar::setDefaultUp(bool) + ?discardUpdateRequest@QGraphicsItemPrivate@@QBE_N_N000@Z @ 4516 NONAME ; bool QGraphicsItemPrivate::discardUpdateRequest(bool, bool, bool, bool) const + ?length@QQuaternion@@QBEMXZ @ 4517 NONAME ; float QQuaternion::length(void) const + ?keyboardGrabber@QWidget@@SAPAV1@XZ @ 4518 NONAME ; class QWidget * QWidget::keyboardGrabber(void) + ??1QPainterReplayer@@UAE@XZ @ 4519 NONAME ; QPainterReplayer::~QPainterReplayer(void) + ?start@QMovie@@QAEXXZ @ 4520 NONAME ; void QMovie::start(void) + ?mapRectToParent@QGraphicsItem@@QBE?AVQRectF@@ABV2@@Z @ 4521 NONAME ; class QRectF QGraphicsItem::mapRectToParent(class QRectF const &) const + ?renderHints@QPaintEngineState@@QBE?AV?$QFlags@W4RenderHint@QPainter@@@@XZ @ 4522 NONAME ; class QFlags QPaintEngineState::renderHints(void) const + ?getCmykF@QColor@@QAEXPAM0000@Z @ 4523 NONAME ; void QColor::getCmykF(float *, float *, float *, float *, float *) + ??0TouchPoint@QTouchEvent@@QAE@ABV01@@Z @ 4524 NONAME ; QTouchEvent::TouchPoint::TouchPoint(class QTouchEvent::TouchPoint const &) + ?columnCount@QTreeWidgetItem@@QBEHXZ @ 4525 NONAME ; int QTreeWidgetItem::columnCount(void) const + ??0QUndoView@@QAE@PAVQWidget@@@Z @ 4526 NONAME ; QUndoView::QUndoView(class QWidget *) + ?setOpacityMask@QGraphicsOpacityEffect@@QAEXABVQBrush@@@Z @ 4527 NONAME ; void QGraphicsOpacityEffect::setOpacityMask(class QBrush const &) + ??1QDialogButtonBox@@UAE@XZ @ 4528 NONAME ; QDialogButtonBox::~QDialogButtonBox(void) + ?trUtf8@QStackedWidget@@SA?AVQString@@PBD0H@Z @ 4529 NONAME ; class QString QStackedWidget::trUtf8(char const *, char const *, int) + ?setBoundingRect@QPaintBuffer@@QAEXABVQRectF@@@Z @ 4530 NONAME ; void QPaintBuffer::setBoundingRect(class QRectF const &) + ?changeEvent@QProgressDialog@@MAEXPAVQEvent@@@Z @ 4531 NONAME ; void QProgressDialog::changeEvent(class QEvent *) + ?setOpenExternalLinks@QTextBrowser@@QAEX_N@Z @ 4532 NONAME ; void QTextBrowser::setOpenExternalLinks(bool) + ?setFocusProxy@QGraphicsItem@@QAEXPAV1@@Z @ 4533 NONAME ; void QGraphicsItem::setFocusProxy(class QGraphicsItem *) + ?setData@QSortFilterProxyModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 4534 NONAME ; bool QSortFilterProxyModel::setData(class QModelIndex const &, class QVariant const &, int) + ?idealWidth@QTextDocument@@QBEMXZ @ 4535 NONAME ; float QTextDocument::idealWidth(void) const + ?fragmentIndex@QTextBlock@@QBEHXZ @ 4536 NONAME ; int QTextBlock::fragmentIndex(void) const + ?insertSeparator@QMenuBar@@QAEPAVQAction@@PAV2@@Z @ 4537 NONAME ; class QAction * QMenuBar::insertSeparator(class QAction *) + ?setProperty@QTextFormat@@QAEXHABV?$QVector@VQTextLength@@@@@Z @ 4538 NONAME ; void QTextFormat::setProperty(int, class QVector const &) + ?paintEvent@QFrame@@MAEXPAVQPaintEvent@@@Z @ 4539 NONAME ; void QFrame::paintEvent(class QPaintEvent *) + ?metaObject@QPlainTextDocumentLayout@@UBEPBUQMetaObject@@XZ @ 4540 NONAME ; struct QMetaObject const * QPlainTextDocumentLayout::metaObject(void) const + ?codec@QTextDocumentWriter@@QBEPAVQTextCodec@@XZ @ 4541 NONAME ; class QTextCodec * QTextDocumentWriter::codec(void) const + ??D@YA?AVQRegion@@ABV0@ABVQMatrix@@@Z @ 4542 NONAME ; class QRegion operator*(class QRegion const &, class QMatrix const &) + ??1QWizardPage@@UAE@XZ @ 4543 NONAME ; QWizardPage::~QWizardPage(void) + ?init@QBrush@@AAEXABVQColor@@W4BrushStyle@Qt@@@Z @ 4544 NONAME ; void QBrush::init(class QColor const &, enum Qt::BrushStyle) + ??0QPen@@QAE@ABVQBrush@@MW4PenStyle@Qt@@W4PenCapStyle@3@W4PenJoinStyle@3@@Z @ 4545 NONAME ; QPen::QPen(class QBrush const &, float, enum Qt::PenStyle, enum Qt::PenCapStyle, enum Qt::PenJoinStyle) + ?pixmap@QIconEngine@@UAE?AVQPixmap@@ABVQSize@@W4Mode@QIcon@@W4State@5@@Z @ 4546 NONAME ; class QPixmap QIconEngine::pixmap(class QSize const &, enum QIcon::Mode, enum QIcon::State) + ?paint@QGraphicsPolygonItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4547 NONAME ; void QGraphicsPolygonItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?eventFilter@QWorkspace@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 4548 NONAME ; bool QWorkspace::eventFilter(class QObject *, class QEvent *) + ?setItemExpanded@QTreeWidget@@QAEXPBVQTreeWidgetItem@@_N@Z @ 4549 NONAME ; void QTreeWidget::setItemExpanded(class QTreeWidgetItem const *, bool) + ?setNameFilter@QFileDialog@@QAEXABVQString@@@Z @ 4550 NONAME ; void QFileDialog::setNameFilter(class QString const &) + ?internalRedo@QLineControl@@AAEXXZ @ 4551 NONAME ; void QLineControl::internalRedo(void) + ?indent@QTextBlockFormat@@QBEHXZ @ 4552 NONAME ; int QTextBlockFormat::indent(void) const + ??1QDropEvent@@UAE@XZ @ 4553 NONAME ; QDropEvent::~QDropEvent(void) + ?qt_set_sequence_auto_mnemonic@@YAX_N@Z @ 4554 NONAME ; void qt_set_sequence_auto_mnemonic(bool) + ?tr@QSortFilterProxyModel@@SA?AVQString@@PBD0@Z @ 4555 NONAME ; class QString QSortFilterProxyModel::tr(char const *, char const *) + ?save@QPixmap@@QBE_NABVQString@@PBDH@Z @ 4556 NONAME ; bool QPixmap::save(class QString const &, char const *, int) const + ?childrenRect@QWidget@@QBE?AVQRect@@XZ @ 4557 NONAME ; class QRect QWidget::childrenRect(void) const + ?setFormat@QPictureIO@@QAEXPBD@Z @ 4558 NONAME ; void QPictureIO::setFormat(char const *) + ?mapToParent@QGraphicsItem@@QBE?AVQPolygonF@@ABVQRectF@@@Z @ 4559 NONAME ; class QPolygonF QGraphicsItem::mapToParent(class QRectF const &) const + ??_EQGraphicsSceneResizeEvent@@UAE@I@Z @ 4560 NONAME ; QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent(unsigned int) + ?option@QImageIOHandler@@UBE?AVQVariant@@W4ImageOption@1@@Z @ 4561 NONAME ; class QVariant QImageIOHandler::option(enum QImageIOHandler::ImageOption) const + ?trUtf8@QSizeGrip@@SA?AVQString@@PBD0H@Z @ 4562 NONAME ; class QString QSizeGrip::trUtf8(char const *, char const *, int) + ?takeAt@QStackedLayout@@UAEPAVQLayoutItem@@H@Z @ 4563 NONAME ; class QLayoutItem * QStackedLayout::takeAt(int) + ?actionChanged@QDrag@@IAEXW4DropAction@Qt@@@Z @ 4564 NONAME ; void QDrag::actionChanged(enum Qt::DropAction) + ??1QMenuBar@@UAE@XZ @ 4565 NONAME ; QMenuBar::~QMenuBar(void) + ?setMinimum@QProgressBar@@QAEXH@Z @ 4566 NONAME ; void QProgressBar::setMinimum(int) + ?qt_metacast@QGesture@@UAEPAXPBD@Z @ 4567 NONAME ; void * QGesture::qt_metacast(char const *) + ?qDrawWinButton@@YAXPAVQPainter@@HHHHABVQPalette@@_NPBVQBrush@@@Z @ 4568 NONAME ; void qDrawWinButton(class QPainter *, int, int, int, int, class QPalette const &, bool, class QBrush const *) + ??D@YA?AVQPoint@@ABV0@ABVQMatrix@@@Z @ 4569 NONAME ; class QPoint operator*(class QPoint const &, class QMatrix const &) + ?clearMinimumTime@QDateTimeEdit@@QAEXXZ @ 4570 NONAME ; void QDateTimeEdit::clearMinimumTime(void) + ?columnMinimumWidth@QGraphicsGridLayout@@QBEMH@Z @ 4571 NONAME ; float QGraphicsGridLayout::columnMinimumWidth(int) const + ?setVerticalPolicy@QSizePolicy@@QAEXW4Policy@1@@Z @ 4572 NONAME ; void QSizePolicy::setVerticalPolicy(enum QSizePolicy::Policy) + ?currentColumn@QTreeWidget@@QBEHXZ @ 4573 NONAME ; int QTreeWidget::currentColumn(void) const + ?keyboardGrabber@QWidgetPrivate@@2PAVQWidget@@A @ 4574 NONAME ; class QWidget * QWidgetPrivate::keyboardGrabber + ?q_func@QGraphicsEffectPrivate@@ABEPBVQGraphicsEffect@@XZ @ 4575 NONAME ; class QGraphicsEffect const * QGraphicsEffectPrivate::q_func(void) const + ?columnCount@QGridLayout@@QBEHXZ @ 4576 NONAME ; int QGridLayout::columnCount(void) const + ?tr@QApplication@@SA?AVQString@@PBD0H@Z @ 4577 NONAME ; class QString QApplication::tr(char const *, char const *, int) + ?staticMetaObject@QTextBlockGroup@@2UQMetaObject@@B @ 4578 NONAME ; struct QMetaObject const QTextBlockGroup::staticMetaObject + ?setMaximum@QSpinBox@@QAEXH@Z @ 4579 NONAME ; void QSpinBox::setMaximum(int) + ??YQTreeWidgetItemIterator@@QAEAAV0@H@Z @ 4580 NONAME ; class QTreeWidgetItemIterator & QTreeWidgetItemIterator::operator+=(int) + ?d_func@QWorkspace@@ABEPBVQWorkspacePrivate@@XZ @ 4581 NONAME ; class QWorkspacePrivate const * QWorkspace::d_func(void) const + ?d_func@QGraphicsEffectSource@@AAEPAVQGraphicsEffectSourcePrivate@@XZ @ 4582 NONAME ; class QGraphicsEffectSourcePrivate * QGraphicsEffectSource::d_func(void) + ?paintEvent@QComboBox@@MAEXPAVQPaintEvent@@@Z @ 4583 NONAME ; void QComboBox::paintEvent(class QPaintEvent *) + ?drawPicture@QPainter@@QAEXABVQPointF@@ABVQPicture@@@Z @ 4584 NONAME ; void QPainter::drawPicture(class QPointF const &, class QPicture const &) + ?tr@QTimeEdit@@SA?AVQString@@PBD0@Z @ 4585 NONAME ; class QString QTimeEdit::tr(char const *, char const *) + ?tr@QTreeView@@SA?AVQString@@PBD0@Z @ 4586 NONAME ; class QString QTreeView::tr(char const *, char const *) + ?vector@QQuaternion@@QBE?AVQVector3D@@XZ @ 4587 NONAME ; class QVector3D QQuaternion::vector(void) const + ?selectedText@QLineEdit@@QBE?AVQString@@XZ @ 4588 NONAME ; class QString QLineEdit::selectedText(void) const + ?currentChanged@QItemSelectionModel@@IAEXABVQModelIndex@@0@Z @ 4589 NONAME ; void QItemSelectionModel::currentChanged(class QModelIndex const &, class QModelIndex const &) + ??_EQCommonStyle@@UAE@I@Z @ 4590 NONAME ; QCommonStyle::~QCommonStyle(unsigned int) + ?backgroundColor@QTreeWidgetItem@@QBE?AVQColor@@H@Z @ 4591 NONAME ; class QColor QTreeWidgetItem::backgroundColor(int) const + ?setExtra@QGraphicsItemPrivate@@QAEXW4Extra@1@ABVQVariant@@@Z @ 4592 NONAME ; void QGraphicsItemPrivate::setExtra(enum QGraphicsItemPrivate::Extra, class QVariant const &) + ?mousePressEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4593 NONAME ; void QGraphicsScene::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?expandAll@QTreeView@@QAEXXZ @ 4594 NONAME ; void QTreeView::expandAll(void) + ?item@QGraphicsItemAnimation@@QBEPAVQGraphicsItem@@XZ @ 4595 NONAME ; class QGraphicsItem * QGraphicsItemAnimation::item(void) const + ??_EQGraphicsEffectSource@@UAE@I@Z @ 4596 NONAME ; QGraphicsEffectSource::~QGraphicsEffectSource(unsigned int) + ?draw@QGraphicsEffectSource@@QAEXPAVQPainter@@@Z @ 4597 NONAME ; void QGraphicsEffectSource::draw(class QPainter *) + ?toVector4D@QVector3D@@QBE?AVQVector4D@@XZ @ 4598 NONAME ; class QVector4D QVector3D::toVector4D(void) const + ?setChild@QStandardItem@@QAEXHPAV1@@Z @ 4599 NONAME ; void QStandardItem::setChild(int, class QStandardItem *) + ?qt_metacall@QToolBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4600 NONAME ; int QToolBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isReadOnly@QLineControl@@QBE_NXZ @ 4601 NONAME ; bool QLineControl::isReadOnly(void) const + ??0QHeaderView@@QAE@W4Orientation@Qt@@PAVQWidget@@@Z @ 4602 NONAME ; QHeaderView::QHeaderView(enum Qt::Orientation, class QWidget *) + ?cursorPositionChanged@QLineEdit@@IAEXHH@Z @ 4603 NONAME ; void QLineEdit::cursorPositionChanged(int, int) + ?setCheckState@QStandardItem@@QAEXW4CheckState@Qt@@@Z @ 4604 NONAME ; void QStandardItem::setCheckState(enum Qt::CheckState) + ??1QAbstractSpinBox@@UAE@XZ @ 4605 NONAME ; QAbstractSpinBox::~QAbstractSpinBox(void) + ?setSystemMenu@QMdiSubWindow@@QAEXPAVQMenu@@@Z @ 4606 NONAME ; void QMdiSubWindow::setSystemMenu(class QMenu *) + ?paintEvent@QGraphicsView@@MAEXPAVQPaintEvent@@@Z @ 4607 NONAME ; void QGraphicsView::paintEvent(class QPaintEvent *) + ?trUtf8@QSplitterHandle@@SA?AVQString@@PBD0H@Z @ 4608 NONAME ; class QString QSplitterHandle::trUtf8(char const *, char const *, int) + ?setIconSize@QMainWindow@@QAEXABVQSize@@@Z @ 4609 NONAME ; void QMainWindow::setIconSize(class QSize const &) + ?flags@QGraphicsItem@@QBE?AV?$QFlags@W4GraphicsItemFlag@QGraphicsItem@@@@XZ @ 4610 NONAME ; class QFlags QGraphicsItem::flags(void) const + ??0QDesktopWidget@@QAE@XZ @ 4611 NONAME ; QDesktopWidget::QDesktopWidget(void) + ?testPseudoPage@Parser@QCss@@QAE_NXZ @ 4612 NONAME ; bool QCss::Parser::testPseudoPage(void) + ??_EQGraphicsPathItem@@UAE@I@Z @ 4613 NONAME ; QGraphicsPathItem::~QGraphicsPathItem(unsigned int) + ?dragMoveEvent@QListView@@MAEXPAVQDragMoveEvent@@@Z @ 4614 NONAME ; void QListView::dragMoveEvent(class QDragMoveEvent *) + ?setOverline@QFont@@QAEX_N@Z @ 4615 NONAME ; void QFont::setOverline(bool) + ?findInMask@QLineControl@@ABEHH_N0VQChar@@@Z @ 4616 NONAME ; int QLineControl::findInMask(int, bool, bool, class QChar) const + ??0QGraphicsSceneEvent@@QAE@W4Type@QEvent@@@Z @ 4617 NONAME ; QGraphicsSceneEvent::QGraphicsSceneEvent(enum QEvent::Type) + ?dropMimeData@QProxyModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 4618 NONAME ; bool QProxyModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?qSmartMinSize@@YA?AVQSize@@ABV1@000ABVQSizePolicy@@@Z @ 4619 NONAME ; class QSize qSmartMinSize(class QSize const &, class QSize const &, class QSize const &, class QSize const &, class QSizePolicy const &) + ?isWindow@QGraphicsItem@@QBE_NXZ @ 4620 NONAME ; bool QGraphicsItem::isWindow(void) const + ?sizeHint@QGraphicsWidget@@MBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 4621 NONAME ; class QSizeF QGraphicsWidget::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?setSpacing@QBoxLayout@@QAEXH@Z @ 4622 NONAME ; void QBoxLayout::setSpacing(int) + ?preferredSize@QGraphicsLayoutItem@@QBE?AVQSizeF@@XZ @ 4623 NONAME ; class QSizeF QGraphicsLayoutItem::preferredSize(void) const + ?firstVisibleBlock@QPlainTextEdit@@IBE?AVQTextBlock@@XZ @ 4624 NONAME ; class QTextBlock QPlainTextEdit::firstVisibleBlock(void) const + ?createdWidgets@QWidgetAction@@IBE?AV?$QList@PAVQWidget@@@@XZ @ 4625 NONAME ; class QList QWidgetAction::createdWidgets(void) const + ?setLayoutDirection@QApplication@@SAXW4LayoutDirection@Qt@@@Z @ 4626 NONAME ; void QApplication::setLayoutDirection(enum Qt::LayoutDirection) + ??1QTextObject@@MAE@XZ @ 4627 NONAME ; QTextObject::~QTextObject(void) + ?backgroundColor@QListWidgetItem@@QBE?AVQColor@@XZ @ 4628 NONAME ; class QColor QListWidgetItem::backgroundColor(void) const + ?isFlat@QPushButton@@QBE_NXZ @ 4629 NONAME ; bool QPushButton::isFlat(void) const + ?polish@QStyle@@UAEXPAVQWidget@@@Z @ 4630 NONAME ; void QStyle::polish(class QWidget *) + ??0QFontInfo@@QAE@ABVQFont@@@Z @ 4631 NONAME ; QFontInfo::QFontInfo(class QFont const &) + ?done@QColorDialog@@MAEXH@Z @ 4632 NONAME ; void QColorDialog::done(int) + ?paintEvent@QLineEdit@@MAEXPAVQPaintEvent@@@Z @ 4633 NONAME ; void QLineEdit::paintEvent(class QPaintEvent *) + ?insertHtml@QTextEdit@@QAEXABVQString@@@Z @ 4634 NONAME ; void QTextEdit::insertHtml(class QString const &) + ?toolTip@QTextCharFormat@@QBE?AVQString@@XZ @ 4635 NONAME ; class QString QTextCharFormat::toolTip(void) const + ?pageIds@QWizard@@QBE?AV?$QList@H@@XZ @ 4636 NONAME ; class QList QWizard::pageIds(void) const + ?color@QPixmapDropShadowFilter@@QBE?AVQColor@@XZ @ 4637 NONAME ; class QColor QPixmapDropShadowFilter::color(void) const + ?sortColumn@QTreeWidget@@QBEHXZ @ 4638 NONAME ; int QTreeWidget::sortColumn(void) const + ??0QTextDocumentWriter@@QAE@PAVQIODevice@@ABVQByteArray@@@Z @ 4639 NONAME ; QTextDocumentWriter::QTextDocumentWriter(class QIODevice *, class QByteArray const &) + ?setForeground@QTableWidgetItem@@QAEXABVQBrush@@@Z @ 4640 NONAME ; void QTableWidgetItem::setForeground(class QBrush const &) + ?toolButtonStyle@QToolBar@@QBE?AW4ToolButtonStyle@Qt@@XZ @ 4641 NONAME ; enum Qt::ToolButtonStyle QToolBar::toolButtonStyle(void) const + ?animate_tooltip@QApplicationPrivate@@2_NA @ 4642 NONAME ; bool QApplicationPrivate::animate_tooltip + ??_EQSplitter@@UAE@I@Z @ 4643 NONAME ; QSplitter::~QSplitter(unsigned int) + ?addRow@QFormLayout@@QAEXPAVQWidget@@0@Z @ 4644 NONAME ; void QFormLayout::addRow(class QWidget *, class QWidget *) + ??1QPalette@@QAE@XZ @ 4645 NONAME ; QPalette::~QPalette(void) + ?changeEvent@QFrame@@MAEXPAVQEvent@@@Z @ 4646 NONAME ; void QFrame::changeEvent(class QEvent *) + ??ZQVector4D@@QAEAAV0@ABV0@@Z @ 4647 NONAME ; class QVector4D & QVector4D::operator-=(class QVector4D const &) + ?width@QPaintDevice@@QBEHXZ @ 4648 NONAME ; int QPaintDevice::width(void) const + ?trUtf8@QPaintBufferResource@@SA?AVQString@@PBD0H@Z @ 4649 NONAME ; class QString QPaintBufferResource::trUtf8(char const *, char const *, int) + ?setAlignment@QTextTableFormat@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 4650 NONAME ; void QTextTableFormat::setAlignment(class QFlags) + ??XQVector4D@@QAEAAV0@ABV0@@Z @ 4651 NONAME ; class QVector4D & QVector4D::operator*=(class QVector4D const &) + ?frameStyle@QFrame@@QBEHXZ @ 4652 NONAME ; int QFrame::frameStyle(void) const + ?size@QResizeEvent@@QBEABVQSize@@XZ @ 4653 NONAME ; class QSize const & QResizeEvent::size(void) const + ??0QTextTableCell@@QAE@XZ @ 4654 NONAME ; QTextTableCell::QTextTableCell(void) + ?isSelectable@QStandardItem@@QBE_NXZ @ 4655 NONAME ; bool QStandardItem::isSelectable(void) const + ?currentPixmap@QMovie@@QBE?AVQPixmap@@XZ @ 4656 NONAME ; class QPixmap QMovie::currentPixmap(void) const + ?effectiveSizeHint@QGraphicsLayoutItem@@QBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 4657 NONAME ; class QSizeF QGraphicsLayoutItem::effectiveSizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?qt_metacast@QTextFrame@@UAEPAXPBD@Z @ 4658 NONAME ; void * QTextFrame::qt_metacast(char const *) + ?polish@QCommonStyle@@UAEXAAVQPalette@@@Z @ 4659 NONAME ; void QCommonStyle::polish(class QPalette &) + ?resolveS60ScanCode@QApplicationPrivate@@SAIHI@Z @ 4660 NONAME ; unsigned int QApplicationPrivate::resolveS60ScanCode(int, unsigned int) + ?setBackground@QStandardItem@@QAEXABVQBrush@@@Z @ 4661 NONAME ; void QStandardItem::setBackground(class QBrush const &) + ?event@QAbstractSlider@@MAE_NPAVQEvent@@@Z @ 4662 NONAME ; bool QAbstractSlider::event(class QEvent *) + ??_EQS60Style@@UAE@I@Z @ 4663 NONAME ; QS60Style::~QS60Style(unsigned int) + ?setModal@QDialog@@QAEX_N@Z @ 4664 NONAME ; void QDialog::setModal(bool) + ??_EQGraphicsBloomEffect@@UAE@I@Z @ 4665 NONAME ; QGraphicsBloomEffect::~QGraphicsBloomEffect(unsigned int) + ?tr@QDoubleSpinBox@@SA?AVQString@@PBD0@Z @ 4666 NONAME ; class QString QDoubleSpinBox::tr(char const *, char const *) + ?isNavigationBarVisible@QCalendarWidget@@QBE_NXZ @ 4667 NONAME ; bool QCalendarWidget::isNavigationBarVisible(void) const + ??0QStatusBar@@QAE@PAVQWidget@@@Z @ 4668 NONAME ; QStatusBar::QStatusBar(class QWidget *) + ?recalcAdvances@QFontEngine@@UBEXPAUQGlyphLayout@@V?$QFlags@W4ShaperFlag@QTextEngine@@@@@Z @ 4669 NONAME ; void QFontEngine::recalcAdvances(struct QGlyphLayout *, class QFlags) const + ?childrenBoundingRect@QGraphicsItem@@QBE?AVQRectF@@XZ @ 4670 NONAME ; class QRectF QGraphicsItem::childrenBoundingRect(void) const + ?d_func@QActionGroup@@ABEPBVQActionGroupPrivate@@XZ @ 4671 NONAME ; class QActionGroupPrivate const * QActionGroup::d_func(void) const + ?staticMetaObject@QIntValidator@@2UQMetaObject@@B @ 4672 NONAME ; struct QMetaObject const QIntValidator::staticMetaObject + ?heightForWidth@QBoxLayout@@UBEHH@Z @ 4673 NONAME ; int QBoxLayout::heightForWidth(int) const + ?specialValueText@QAbstractSpinBox@@QBE?AVQString@@XZ @ 4674 NONAME ; class QString QAbstractSpinBox::specialValueText(void) const + ?showEvent@QGraphicsView@@MAEXPAVQShowEvent@@@Z @ 4675 NONAME ; void QGraphicsView::showEvent(class QShowEvent *) + ?blurRadiusChanged@QGraphicsBloomEffect@@IAEXH@Z @ 4676 NONAME ; void QGraphicsBloomEffect::blurRadiusChanged(int) + ?setAutoCompletionCaseSensitivity@QComboBox@@QAEXW4CaseSensitivity@Qt@@@Z @ 4677 NONAME ; void QComboBox::setAutoCompletionCaseSensitivity(enum Qt::CaseSensitivity) + ?itemDoubleClicked@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 4678 NONAME ; void QTreeWidget::itemDoubleClicked(class QTreeWidgetItem *, int) + ?setFontItalic@QTextEdit@@QAEX_N@Z @ 4679 NONAME ; void QTextEdit::setFontItalic(bool) + ?mouseReleaseEvent@QSlider@@MAEXPAVQMouseEvent@@@Z @ 4680 NONAME ; void QSlider::mouseReleaseEvent(class QMouseEvent *) + ?setShortcuts@QAction@@QAEXW4StandardKey@QKeySequence@@@Z @ 4681 NONAME ; void QAction::setShortcuts(enum QKeySequence::StandardKey) + ?autoSipEnabled@QApplication@@QBE_NXZ @ 4682 NONAME ; bool QApplication::autoSipEnabled(void) const + ?getStaticMetaObject@QProxyStyle@@SAABUQMetaObject@@XZ @ 4683 NONAME ; struct QMetaObject const & QProxyStyle::getStaticMetaObject(void) + ?getStaticMetaObject@QGraphicsWidget@@SAABUQMetaObject@@XZ @ 4684 NONAME ; struct QMetaObject const & QGraphicsWidget::getStaticMetaObject(void) + ?center@QConicalGradient@@QBE?AVQPointF@@XZ @ 4685 NONAME ; class QPointF QConicalGradient::center(void) const + ??0QVector2D@@QAE@ABVQVector3D@@@Z @ 4686 NONAME ; QVector2D::QVector2D(class QVector3D const &) + ??0QItemSelectionModel@@IAE@AAVQItemSelectionModelPrivate@@PAVQAbstractItemModel@@@Z @ 4687 NONAME ; QItemSelectionModel::QItemSelectionModel(class QItemSelectionModelPrivate &, class QAbstractItemModel *) + ?getStaticMetaObject@QFont@@SAABUQMetaObject@@XZ @ 4688 NONAME ; struct QMetaObject const & QFont::getStaticMetaObject(void) + ?metaObject@QTextObject@@UBEPBUQMetaObject@@XZ @ 4689 NONAME ; struct QMetaObject const * QTextObject::metaObject(void) const + ??1QStrokerOps@@UAE@XZ @ 4690 NONAME ; QStrokerOps::~QStrokerOps(void) + ?hasMouseTracking@QWidget@@QBE_NXZ @ 4691 NONAME ; bool QWidget::hasMouseTracking(void) const + ?getStaticMetaObject@QWidgetAction@@SAABUQMetaObject@@XZ @ 4692 NONAME ; struct QMetaObject const & QWidgetAction::getStaticMetaObject(void) + ?height@QPixmapData@@QBEHXZ @ 4693 NONAME ; int QPixmapData::height(void) const + ?findBlockByNumber@QTextDocument@@QBE?AVQTextBlock@@H@Z @ 4694 NONAME ; class QTextBlock QTextDocument::findBlockByNumber(int) const + ?find@QPixmapCache@@SA_NABVKey@1@PAVQPixmap@@@Z @ 4695 NONAME ; bool QPixmapCache::find(class QPixmapCache::Key const &, class QPixmap *) + ?mouseReleaseEvent@QGraphicsView@@MAEXPAVQMouseEvent@@@Z @ 4696 NONAME ; void QGraphicsView::mouseReleaseEvent(class QMouseEvent *) + ?mouseReleaseEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4697 NONAME ; void QGraphicsItem::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ??1QStyleOptionToolButton@@QAE@XZ @ 4698 NONAME ; QStyleOptionToolButton::~QStyleOptionToolButton(void) + ?d_func@QStandardItemModel@@ABEPBVQStandardItemModelPrivate@@XZ @ 4699 NONAME ; class QStandardItemModelPrivate const * QStandardItemModel::d_func(void) const + ?pt2@QBezier@@QBE?AVQPointF@@XZ @ 4700 NONAME ; class QPointF QBezier::pt2(void) const + ?baseSize@QWidget@@QBE?AVQSize@@XZ @ 4701 NONAME ; class QSize QWidget::baseSize(void) const + ?hideTearOffMenu@QMenu@@QAEXXZ @ 4702 NONAME ; void QMenu::hideTearOffMenu(void) + ?minimumHeightForWidth@QLayoutItem@@UBEHH@Z @ 4703 NONAME ; int QLayoutItem::minimumHeightForWidth(int) const + ??0QCompleter@@QAE@PAVQObject@@@Z @ 4704 NONAME ; QCompleter::QCompleter(class QObject *) + ?logicalIndex@QHeaderView@@QBEHH@Z @ 4705 NONAME ; int QHeaderView::logicalIndex(int) const + ?popupMode@QToolButton@@QBE?AW4ToolButtonPopupMode@1@XZ @ 4706 NONAME ; enum QToolButton::ToolButtonPopupMode QToolButton::popupMode(void) const + ?insertColumn@QStandardItemModel@@QAEXHABV?$QList@PAVQStandardItem@@@@@Z @ 4707 NONAME ; void QStandardItemModel::insertColumn(int, class QList const &) + ?userData@QTextBlock@@QBEPAVQTextBlockUserData@@XZ @ 4708 NONAME ; class QTextBlockUserData * QTextBlock::userData(void) const + ?setMovement@QListView@@QAEXW4Movement@1@@Z @ 4709 NONAME ; void QListView::setMovement(enum QListView::Movement) + ?joinStyleMode@QStroker@@QBE?AW4LineJoinMode@1@XZ @ 4710 NONAME ; enum QStroker::LineJoinMode QStroker::joinStyleMode(void) const + ?currentImageRect@QImageReader@@QBE?AVQRect@@XZ @ 4711 NONAME ; class QRect QImageReader::currentImageRect(void) const + ?save@QImage@@QBE_NABVQString@@PBDH@Z @ 4712 NONAME ; bool QImage::save(class QString const &, char const *, int) const + ?trUtf8@QMdiSubWindow@@SA?AVQString@@PBD0@Z @ 4713 NONAME ; class QString QMdiSubWindow::trUtf8(char const *, char const *) + ?picture@QLabel@@QBEPBVQPicture@@XZ @ 4714 NONAME ; class QPicture const * QLabel::picture(void) const + ?ignore@QGestureEvent@@QAEXPAVQGesture@@@Z @ 4715 NONAME ; void QGestureEvent::ignore(class QGesture *) + ?previousBlockState@QSyntaxHighlighter@@IBEHXZ @ 4716 NONAME ; int QSyntaxHighlighter::previousBlockState(void) const + ?canceled@QProgressDialog@@IAEXXZ @ 4717 NONAME ; void QProgressDialog::canceled(void) + ?setCellPadding@QTextTableFormat@@QAEXM@Z @ 4718 NONAME ; void QTextTableFormat::setCellPadding(float) + ??1QDial@@UAE@XZ @ 4719 NONAME ; QDial::~QDial(void) + ?columnCount@QDirModel@@UBEHABVQModelIndex@@@Z @ 4720 NONAME ; int QDirModel::columnCount(class QModelIndex const &) const + ?keyPressEvent@QMenuBar@@MAEXPAVQKeyEvent@@@Z @ 4721 NONAME ; void QMenuBar::keyPressEvent(class QKeyEvent *) + ?reset@QProgressDialog@@QAEXXZ @ 4722 NONAME ; void QProgressDialog::reset(void) + ?cacheKey@QIcon@@QBE_JXZ @ 4723 NONAME ; long long QIcon::cacheKey(void) const + ?setSourceModel@QProxyModel@@IBE?AVQModelIndex@@ABV2@@Z @ 4724 NONAME ; class QModelIndex QProxyModel::setSourceModel(class QModelIndex const &) const + ?getStaticMetaObject@QFontDialog@@SAABUQMetaObject@@XZ @ 4725 NONAME ; struct QMetaObject const & QFontDialog::getStaticMetaObject(void) + ?nextImageDelay@QImageIOHandler@@UBEHXZ @ 4726 NONAME ; int QImageIOHandler::nextImageDelay(void) const + ?setTextVisible@QProgressBar@@QAEX_N@Z @ 4727 NONAME ; void QProgressBar::setTextVisible(bool) + ?combinedLayoutSpacing@QStyle@@QBEHV?$QFlags@W4ControlType@QSizePolicy@@@@0W4Orientation@Qt@@PAVQStyleOption@@PAVQWidget@@@Z @ 4728 NONAME ; int QStyle::combinedLayoutSpacing(class QFlags, class QFlags, enum Qt::Orientation, class QStyleOption *, class QWidget *) const + ?doubleValue@QInputDialog@@QBENXZ @ 4729 NONAME ; double QInputDialog::doubleValue(void) const + ?keyPressEvent@QMessageBox@@MAEXPAVQKeyEvent@@@Z @ 4730 NONAME ; void QMessageBox::keyPressEvent(class QKeyEvent *) + ?drawItems@QGraphicsScene@@MAEXPAVQPainter@@HQAPAVQGraphicsItem@@QBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4731 NONAME ; void QGraphicsScene::drawItems(class QPainter *, int, class QGraphicsItem * * const, class QStyleOptionGraphicsItem const * const, class QWidget *) + ?setSpacing@QLayout@@QAEXH@Z @ 4732 NONAME ; void QLayout::setSpacing(int) + ??5@YAAAVQTextStream@@AAV0@AAVQSplitter@@@Z @ 4733 NONAME ; class QTextStream & operator>>(class QTextStream &, class QSplitter &) + ?d_func@QGraphicsSceneWheelEvent@@ABEPBVQGraphicsSceneWheelEventPrivate@@XZ @ 4734 NONAME ; class QGraphicsSceneWheelEventPrivate const * QGraphicsSceneWheelEvent::d_func(void) const + ?setDescent@QTextInlineObject@@QAEXM@Z @ 4735 NONAME ; void QTextInlineObject::setDescent(float) + ?itemClicked@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 4736 NONAME ; void QTreeWidget::itemClicked(class QTreeWidgetItem *, int) + ?setSidebarUrls@QFileDialog@@QAEXABV?$QList@VQUrl@@@@@Z @ 4737 NONAME ; void QFileDialog::setSidebarUrls(class QList const &) + ?primaryScreen@QDesktopWidget@@QBEHXZ @ 4738 NONAME ; int QDesktopWidget::primaryScreen(void) const + ?itemPixmapRect@QStyle@@UBE?AVQRect@@ABV2@HABVQPixmap@@@Z @ 4739 NONAME ; class QRect QStyle::itemPixmapRect(class QRect const &, int, class QPixmap const &) const + ?type@QGraphicsItem@@UBEHXZ @ 4740 NONAME ; int QGraphicsItem::type(void) const + ?modifiers@QInputEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 4741 NONAME ; class QFlags QInputEvent::modifiers(void) const + ?transformed@QBitmap@@QBE?AV1@ABVQTransform@@@Z @ 4742 NONAME ; class QBitmap QBitmap::transformed(class QTransform const &) const + ?tr@QGraphicsGrayscaleEffect@@SA?AVQString@@PBD0@Z @ 4743 NONAME ; class QString QGraphicsGrayscaleEffect::tr(char const *, char const *) + ?setBlurHint@QGraphicsBlurEffect@@QAEXW4RenderHint@Qt@@@Z @ 4744 NONAME ; void QGraphicsBlurEffect::setBlurHint(enum Qt::RenderHint) + ?event@QDockWidget@@MAE_NPAVQEvent@@@Z @ 4745 NONAME ; bool QDockWidget::event(class QEvent *) + ??_EQStyle@@UAE@I@Z @ 4746 NONAME ; QStyle::~QStyle(unsigned int) + ?addWidget@QGridLayout@@QAEXPAVQWidget@@@Z @ 4747 NONAME ; void QGridLayout::addWidget(class QWidget *) + ?direction@QBoxLayout@@QBE?AW4Direction@1@XZ @ 4748 NONAME ; enum QBoxLayout::Direction QBoxLayout::direction(void) const + ?getStaticMetaObject@QColorDialog@@SAABUQMetaObject@@XZ @ 4749 NONAME ; struct QMetaObject const & QColorDialog::getStaticMetaObject(void) + ?m33@QTransform@@QBEMXZ @ 4750 NONAME ; float QTransform::m33(void) const + ??0QVector4D@@QAE@ABVQPoint@@@Z @ 4751 NONAME ; QVector4D::QVector4D(class QPoint const &) + ??0QTextObject@@IAE@PAVQTextDocument@@@Z @ 4752 NONAME ; QTextObject::QTextObject(class QTextDocument *) + ?dy@QTransform@@QBEMXZ @ 4753 NONAME ; float QTransform::dy(void) const + ??0QItemSelection@@QAE@ABVQModelIndex@@0@Z @ 4754 NONAME ; QItemSelection::QItemSelection(class QModelIndex const &, class QModelIndex const &) + ?removeItem@QComboBox@@QAEXH@Z @ 4755 NONAME ; void QComboBox::removeItem(int) + ??0QApplication@@IAE@AAHPAPAD@Z @ 4756 NONAME ; QApplication::QApplication(int &, char * *) + ?parentObject@QGraphicsItem@@QBEPAVQGraphicsObject@@XZ @ 4757 NONAME ; class QGraphicsObject * QGraphicsItem::parentObject(void) const + ?invalidate@QBoxLayout@@UAEXXZ @ 4758 NONAME ; void QBoxLayout::invalidate(void) + ?createItemGroup@QGraphicsScene@@QAEPAVQGraphicsItemGroup@@ABV?$QList@PAVQGraphicsItem@@@@@Z @ 4759 NONAME ; class QGraphicsItemGroup * QGraphicsScene::createItemGroup(class QList const &) + ??6@YA?AVQDebug@@V0@ABVQKeySequence@@@Z @ 4760 NONAME ; class QDebug operator<<(class QDebug, class QKeySequence const &) + ?d_func@QProgressDialog@@AAEPAVQProgressDialogPrivate@@XZ @ 4761 NONAME ; class QProgressDialogPrivate * QProgressDialog::d_func(void) + ?trUtf8@QFocusFrame@@SA?AVQString@@PBD0@Z @ 4762 NONAME ; class QString QFocusFrame::trUtf8(char const *, char const *) + ?color@QPalette@@QBEABVQColor@@W4ColorGroup@1@W4ColorRole@1@@Z @ 4763 NONAME ; class QColor const & QPalette::color(enum QPalette::ColorGroup, enum QPalette::ColorRole) const + ?setOffsetToLastSection@QHeaderView@@QAEXXZ @ 4764 NONAME ; void QHeaderView::setOffsetToLastSection(void) + ??0QRegion@@QAE@XZ @ 4765 NONAME ; QRegion::QRegion(void) + ?buttonReleased@QButtonGroup@@IAEXH@Z @ 4766 NONAME ; void QButtonGroup::buttonReleased(int) + ?trUtf8@QKeyEventTransition@@SA?AVQString@@PBD0@Z @ 4767 NONAME ; class QString QKeyEventTransition::trUtf8(char const *, char const *) + ?normalMatrix@QMatrix4x4@@QBE?AV?$QGenericMatrix@$02$02M@@XZ @ 4768 NONAME ; class QGenericMatrix<3, 3, float> QMatrix4x4::normalMatrix(void) const + ?appendPlainText@QTextControl@@QAEXABVQString@@@Z @ 4769 NONAME ; void QTextControl::appendPlainText(class QString const &) + ??0QImage@@QAE@XZ @ 4770 NONAME ; QImage::QImage(void) + ?translated@QPolygon@@QBE?AV1@HH@Z @ 4771 NONAME ; class QPolygon QPolygon::translated(int, int) const + ?source@QTextBrowser@@QBE?AVQUrl@@XZ @ 4772 NONAME ; class QUrl QTextBrowser::source(void) const + ?setRowCount@QTableWidget@@QAEXH@Z @ 4773 NONAME ; void QTableWidget::setRowCount(int) + ?setUndoLimit@QUndoStack@@QAEXH@Z @ 4774 NONAME ; void QUndoStack::setUndoLimit(int) + ?z@QVector4D@@QBEMXZ @ 4775 NONAME ; float QVector4D::z(void) const + ?setBackground@QTableWidgetItem@@QAEXABVQBrush@@@Z @ 4776 NONAME ; void QTableWidgetItem::setBackground(class QBrush const &) + ?trUtf8@QUndoGroup@@SA?AVQString@@PBD0H@Z @ 4777 NONAME ; class QString QUndoGroup::trUtf8(char const *, char const *, int) + ?qt_metacast@QDockWidgetLayout@@UAEPAXPBD@Z @ 4778 NONAME ; void * QDockWidgetLayout::qt_metacast(char const *) + ??0QTextBlock@@QAE@ABV0@@Z @ 4779 NONAME ; QTextBlock::QTextBlock(class QTextBlock const &) + ?setLeftMargin@QTextFrameFormat@@QAEXM@Z @ 4780 NONAME ; void QTextFrameFormat::setLeftMargin(float) + ?contextMenuEvent@QWidget@@MAEXPAVQContextMenuEvent@@@Z @ 4781 NONAME ; void QWidget::contextMenuEvent(class QContextMenuEvent *) + ?insertTab@QTabBar@@QAEHHABVQIcon@@ABVQString@@@Z @ 4782 NONAME ; int QTabBar::insertTab(int, class QIcon const &, class QString const &) + ?tr@QListView@@SA?AVQString@@PBD0@Z @ 4783 NONAME ; class QString QListView::tr(char const *, char const *) + ?boundingRectFor@QGraphicsBlurEffect@@UBE?AVQRectF@@ABV2@@Z @ 4784 NONAME ; class QRectF QGraphicsBlurEffect::boundingRectFor(class QRectF const &) const + ?blockCount@QTextDocument@@QBEHXZ @ 4785 NONAME ; int QTextDocument::blockCount(void) const + ?parentFrame@iterator@QTextFrame@@QBEPAV2@XZ @ 4786 NONAME ; class QTextFrame * QTextFrame::iterator::parentFrame(void) const + ?itemAt@QStackedLayout@@UBEPAVQLayoutItem@@H@Z @ 4787 NONAME ; class QLayoutItem * QStackedLayout::itemAt(int) const + ??0QTextDocumentWriter@@QAE@XZ @ 4788 NONAME ; QTextDocumentWriter::QTextDocumentWriter(void) + ?docHandle@QTextDocument@@QBEPAVQTextDocumentPrivate@@XZ @ 4789 NONAME ; class QTextDocumentPrivate * QTextDocument::docHandle(void) const + ??1QPolygonF@@QAE@XZ @ 4790 NONAME ; QPolygonF::~QPolygonF(void) + ?setStartNormalizedPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 4791 NONAME ; void QTouchEvent::TouchPoint::setStartNormalizedPos(class QPointF const &) + ?setDashPattern@QPen@@QAEXABV?$QVector@M@@@Z @ 4792 NONAME ; void QPen::setDashPattern(class QVector const &) + ?naturalTextRect@QTextLine@@QBE?AVQRectF@@XZ @ 4793 NONAME ; class QRectF QTextLine::naturalTextRect(void) const + ??1QStyleOptionComplex@@QAE@XZ @ 4794 NONAME ; QStyleOptionComplex::~QStyleOptionComplex(void) + ?appName@QApplicationPrivate@@UBE?AVQString@@XZ @ 4795 NONAME ; class QString QApplicationPrivate::appName(void) const + ?clear@QStandardItemModel@@QAEXXZ @ 4796 NONAME ; void QStandardItemModel::clear(void) + ?setText@QMessageBox@@QAEXABVQString@@@Z @ 4797 NONAME ; void QMessageBox::setText(class QString const &) + ?qt_metacall@QPixmapDropShadowFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4798 NONAME ; int QPixmapDropShadowFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fontWordSpacing@QTextCharFormat@@QBEMXZ @ 4799 NONAME ; float QTextCharFormat::fontWordSpacing(void) const + ??1QFontInfo@@QAE@XZ @ 4800 NONAME ; QFontInfo::~QFontInfo(void) + ??0QTextControl@@QAE@PAVQObject@@@Z @ 4801 NONAME ; QTextControl::QTextControl(class QObject *) + ?expandingDirections@QBoxLayout@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 4802 NONAME ; class QFlags QBoxLayout::expandingDirections(void) const + ?addAction@QToolBar@@QAEPAVQAction@@ABVQIcon@@ABVQString@@@Z @ 4803 NONAME ; class QAction * QToolBar::addAction(class QIcon const &, class QString const &) + ?translate@QPolygon@@QAEXHH@Z @ 4804 NONAME ; void QPolygon::translate(int, int) + ??0QTextEdit@@QAE@PAVQWidget@@@Z @ 4805 NONAME ; QTextEdit::QTextEdit(class QWidget *) + ?handle@QSplitter@@QBEPAVQSplitterHandle@@H@Z @ 4806 NONAME ; class QSplitterHandle * QSplitter::handle(int) const + ?extractAxisRotation@QMatrix4x4@@QBEXAAMAAVQVector3D@@@Z @ 4807 NONAME ; void QMatrix4x4::extractAxisRotation(float &, class QVector3D &) const + ?docHandle@QTextBlock@@QBEPAVQTextDocumentPrivate@@XZ @ 4808 NONAME ; class QTextDocumentPrivate * QTextBlock::docHandle(void) const + ?d_func@QMdiSubWindow@@ABEPBVQMdiSubWindowPrivate@@XZ @ 4809 NONAME ; class QMdiSubWindowPrivate const * QMdiSubWindow::d_func(void) const + ?setData@QGraphicsItem@@QAEXHABVQVariant@@@Z @ 4810 NONAME ; void QGraphicsItem::setData(int, class QVariant const &) + ?curveThreshold@QStroker@@QBEMXZ @ 4811 NONAME ; float QStroker::curveThreshold(void) const + ?createPopupMenu@QMainWindow@@UAEPAVQMenu@@XZ @ 4812 NONAME ; class QMenu * QMainWindow::createPopupMenu(void) + ?tr@QGraphicsRotation@@SA?AVQString@@PBD0H@Z @ 4813 NONAME ; class QString QGraphicsRotation::tr(char const *, char const *, int) + ?clear@QTextControl@@QAEXXZ @ 4814 NONAME ; void QTextControl::clear(void) + ?tr@QIconEnginePluginV2@@SA?AVQString@@PBD0H@Z @ 4815 NONAME ; class QString QIconEnginePluginV2::tr(char const *, char const *, int) + ?setTextFormat@QMessageBox@@QAEXW4TextFormat@Qt@@@Z @ 4816 NONAME ; void QMessageBox::setTextFormat(enum Qt::TextFormat) + ?intersects@QPainterPath@@QBE_NABVQRectF@@@Z @ 4817 NONAME ; bool QPainterPath::intersects(class QRectF const &) const + ?scrollBarWidgets@QAbstractScrollArea@@QAE?AV?$QList@PAVQWidget@@@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 4818 NONAME ; class QList QAbstractScrollArea::scrollBarWidgets(class QFlags) + ?hoverMoveEvent@QGraphicsWidget@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 4819 NONAME ; void QGraphicsWidget::hoverMoveEvent(class QGraphicsSceneHoverEvent *) + ?dragMoveEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 4820 NONAME ; void QGraphicsTextItem::dragMoveEvent(class QGraphicsSceneDragDropEvent *) + ?critical@QMessageBox@@SA?AW4StandardButton@1@PAVQWidget@@ABVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z @ 4821 NONAME ; enum QMessageBox::StandardButton QMessageBox::critical(class QWidget *, class QString const &, class QString const &, class QFlags, enum QMessageBox::StandardButton) + ?drawRect@QPainter@@QAEXABVQRect@@@Z @ 4822 NONAME ; void QPainter::drawRect(class QRect const &) + ?clipRect@QWidgetPrivate@@QBE?AVQRect@@XZ @ 4823 NONAME ; class QRect QWidgetPrivate::clipRect(void) const + ?toNext@QDataWidgetMapper@@QAEXXZ @ 4824 NONAME ; void QDataWidgetMapper::toNext(void) + ?setDefaultTextColor@QGraphicsTextItem@@QAEXABVQColor@@@Z @ 4825 NONAME ; void QGraphicsTextItem::setDefaultTextColor(class QColor const &) + ?minRightBearing@QFontMetrics@@QBEHXZ @ 4826 NONAME ; int QFontMetrics::minRightBearing(void) const + ?mimeData@QTableWidget@@MBEPAVQMimeData@@V?$QList@PAVQTableWidgetItem@@@@@Z @ 4827 NONAME ; class QMimeData * QTableWidget::mimeData(class QList) const + ?qt_metacast@QDateEdit@@UAEPAXPBD@Z @ 4828 NONAME ; void * QDateEdit::qt_metacast(char const *) + ?setCenter@QConicalGradient@@QAEXMM@Z @ 4829 NONAME ; void QConicalGradient::setCenter(float, float) + ?metaObject@QStackedWidget@@UBEPBUQMetaObject@@XZ @ 4830 NONAME ; struct QMetaObject const * QStackedWidget::metaObject(void) const + ?setColorAt@QGradient@@QAEXMABVQColor@@@Z @ 4831 NONAME ; void QGradient::setColorAt(float, class QColor const &) + ?addTopLevelItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@@Z @ 4832 NONAME ; void QTreeWidget::addTopLevelItem(class QTreeWidgetItem *) + ?splitItem@QTextEngine@@ABEXHH@Z @ 4833 NONAME ; void QTextEngine::splitItem(int, int) const + ?setStandardButtons@QMessageBox@@QAEXV?$QFlags@W4StandardButton@QMessageBox@@@@@Z @ 4834 NONAME ; void QMessageBox::setStandardButtons(class QFlags) + ??0QTextTableCell@@QAE@ABV0@@Z @ 4835 NONAME ; QTextTableCell::QTextTableCell(class QTextTableCell const &) + ?createStandardContextMenu@QTextControl@@QAEPAVQMenu@@ABVQPointF@@PAVQWidget@@@Z @ 4836 NONAME ; class QMenu * QTextControl::createStandardContextMenu(class QPointF const &, class QWidget *) + ?metaObject@QGraphicsGrayscaleEffect@@UBEPBUQMetaObject@@XZ @ 4837 NONAME ; struct QMetaObject const * QGraphicsGrayscaleEffect::metaObject(void) const + ??9QFont@@QBE_NABV0@@Z @ 4838 NONAME ; bool QFont::operator!=(class QFont const &) const + ?yearShown@QCalendarWidget@@QBEHXZ @ 4839 NONAME ; int QCalendarWidget::yearShown(void) const + ?setRowSpacing@QGraphicsGridLayout@@QAEXHM@Z @ 4840 NONAME ; void QGraphicsGridLayout::setRowSpacing(int, float) + ??1QValidator@@UAE@XZ @ 4841 NONAME ; QValidator::~QValidator(void) + ??0QGraphicsSimpleTextItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 4842 NONAME ; QGraphicsSimpleTextItem::QGraphicsSimpleTextItem(class QGraphicsItem *, class QGraphicsScene *) + ?resetMatrix@QPainter@@QAEXXZ @ 4843 NONAME ; void QPainter::resetMatrix(void) + ?setCancelButton@QProgressDialog@@QAEXPAVQPushButton@@@Z @ 4844 NONAME ; void QProgressDialog::setCancelButton(class QPushButton *) + ??_EQResizeEvent@@UAE@I@Z @ 4845 NONAME ; QResizeEvent::~QResizeEvent(unsigned int) + ?trUtf8@QDoubleSpinBox@@SA?AVQString@@PBD0H@Z @ 4846 NONAME ; class QString QDoubleSpinBox::trUtf8(char const *, char const *, int) + ?setDragEnabled@QLineEdit@@QAEX_N@Z @ 4847 NONAME ; void QLineEdit::setDragEnabled(bool) + ?opaqueArea@QGraphicsRectItem@@UBE?AVQPainterPath@@XZ @ 4848 NONAME ; class QPainterPath QGraphicsRectItem::opaqueArea(void) const + ??0QBrush@@QAE@ABVQGradient@@@Z @ 4849 NONAME ; QBrush::QBrush(class QGradient const &) + ?uniformItemSizes@QListView@@QBE_NXZ @ 4850 NONAME ; bool QListView::uniformItemSizes(void) const + ?hasFrame@QAbstractSpinBox@@QBE_NXZ @ 4851 NONAME ; bool QAbstractSpinBox::hasFrame(void) const + ?width@QTextItem@@QBEMXZ @ 4852 NONAME ; float QTextItem::width(void) const + ?sceneEventFilter@QGraphicsItem@@MAE_NPAV1@PAVQEvent@@@Z @ 4853 NONAME ; bool QGraphicsItem::sceneEventFilter(class QGraphicsItem *, class QEvent *) + ?mapFromScene@QGraphicsView@@QBE?AVQPoint@@ABVQPointF@@@Z @ 4854 NONAME ; class QPoint QGraphicsView::mapFromScene(class QPointF const &) const + ?qt_tryModalHelper@@YA_NPAVQWidget@@PAPAV1@@Z @ 4855 NONAME ; bool qt_tryModalHelper(class QWidget *, class QWidget * *) + ?currentColorChanged@QColorDialog@@IAEXABVQColor@@@Z @ 4856 NONAME ; void QColorDialog::currentColorChanged(class QColor const &) + ?load@QPicture@@QAE_NPAVQIODevice@@PBD@Z @ 4857 NONAME ; bool QPicture::load(class QIODevice *, char const *) + ?getStaticMetaObject@QFontComboBox@@SAABUQMetaObject@@XZ @ 4858 NONAME ; struct QMetaObject const & QFontComboBox::getStaticMetaObject(void) + ?columnWidth@QTableView@@QBEHH@Z @ 4859 NONAME ; int QTableView::columnWidth(int) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPainterPath@@W4ItemSelectionMode@Qt@@@Z @ 4860 NONAME ; class QList QGraphicsScene::items(class QPainterPath const &, enum Qt::ItemSelectionMode) const + ?cursorWordBackward@QLineEdit@@QAEX_N@Z @ 4861 NONAME ; void QLineEdit::cursorWordBackward(bool) + ?setHslF@QColor@@QAEXMMMM@Z @ 4862 NONAME ; void QColor::setHslF(float, float, float, float) + ?qGeomCalc@@YAXAAV?$QVector@UQLayoutStruct@@@@HHHHH@Z @ 4863 NONAME ; void qGeomCalc(class QVector &, int, int, int, int, int) + ?pageCountChanged@QAbstractTextDocumentLayout@@IAEXH@Z @ 4864 NONAME ; void QAbstractTextDocumentLayout::pageCountChanged(int) + ??0QDialog@@IAE@AAVQDialogPrivate@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 4865 NONAME ; QDialog::QDialog(class QDialogPrivate &, class QWidget *, class QFlags) + ?addItem@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@HHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 4866 NONAME ; void QGraphicsGridLayout::addItem(class QGraphicsLayoutItem *, int, int, class QFlags) + ?setAcceptMode@QFileDialog@@QAEXW4AcceptMode@1@@Z @ 4867 NONAME ; void QFileDialog::setAcceptMode(enum QFileDialog::AcceptMode) + ?outputFormats@QPicture@@SA?AV?$QList@VQByteArray@@@@XZ @ 4868 NONAME ; class QList QPicture::outputFormats(void) + ?boundingBox@QFontEngine@@UAE?AUglyph_metrics_t@@IABVQTransform@@@Z @ 4869 NONAME ; struct glyph_metrics_t QFontEngine::boundingBox(unsigned int, class QTransform const &) + ?updateSystemBackground@QWidgetPrivate@@QAEXXZ @ 4870 NONAME ; void QWidgetPrivate::updateSystemBackground(void) + ?isNameFilterDetailsVisible@QFileDialog@@QBE_NXZ @ 4871 NONAME ; bool QFileDialog::isNameFilterDetailsVisible(void) const + ??1QStyleOptionDockWidgetV2@@QAE@XZ @ 4872 NONAME ; QStyleOptionDockWidgetV2::~QStyleOptionDockWidgetV2(void) + ?numFormats@QTextFormatCollection@@QBEHXZ @ 4873 NONAME ; int QTextFormatCollection::numFormats(void) const + ?staticMetaObject@QDataWidgetMapper@@2UQMetaObject@@B @ 4874 NONAME ; struct QMetaObject const QDataWidgetMapper::staticMetaObject + ?color@QGraphicsDropShadowEffect@@QBE?AVQColor@@XZ @ 4875 NONAME ; class QColor QGraphicsDropShadowEffect::color(void) const + ?setInputMode@QInputDialog@@QAEXW4InputMode@1@@Z @ 4876 NONAME ; void QInputDialog::setInputMode(enum QInputDialog::InputMode) + ?trUtf8@QScrollArea@@SA?AVQString@@PBD0@Z @ 4877 NONAME ; class QString QScrollArea::trUtf8(char const *, char const *) + ??0QTextFragment@@QAE@PBVQTextDocumentPrivate@@HH@Z @ 4878 NONAME ; QTextFragment::QTextFragment(class QTextDocumentPrivate const *, int, int) + ?staticMetaObject@QSizeGrip@@2UQMetaObject@@B @ 4879 NONAME ; struct QMetaObject const QSizeGrip::staticMetaObject + ?setKey@QKeyEventTransition@@QAEXH@Z @ 4880 NONAME ; void QKeyEventTransition::setKey(int) + ?scaleFactor@QPinchGesture@@QBEMXZ @ 4881 NONAME ; float QPinchGesture::scaleFactor(void) const + ?staticMetaObject@QDoubleValidator@@2UQMetaObject@@B @ 4882 NONAME ; struct QMetaObject const QDoubleValidator::staticMetaObject + ?qt_metacall@QGuiPlatformPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4883 NONAME ; int QGuiPlatformPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?read@QTableWidgetItem@@UAEXAAVQDataStream@@@Z @ 4884 NONAME ; void QTableWidgetItem::read(class QDataStream &) + ?qIsGray@@YA_NI@Z @ 4885 NONAME ; bool qIsGray(unsigned int) + ?setProposedAction@QGraphicsSceneDragDropEvent@@QAEXW4DropAction@Qt@@@Z @ 4886 NONAME ; void QGraphicsSceneDragDropEvent::setProposedAction(enum Qt::DropAction) + ?itemAt@QTreeWidget@@QBEPAVQTreeWidgetItem@@HH@Z @ 4887 NONAME ; class QTreeWidgetItem * QTreeWidget::itemAt(int, int) const + ??_EQAbstractGraphicsShapeItem@@UAE@I@Z @ 4888 NONAME ; QAbstractGraphicsShapeItem::~QAbstractGraphicsShapeItem(unsigned int) + ?harfbuzzFont@QFontEngine@@QBEPAUHB_Font_@@XZ @ 4889 NONAME ; struct HB_Font_ * QFontEngine::harfbuzzFont(void) const + ?getOpenFileName@QFileDialog@@SA?AVQString@@PAVQWidget@@ABV2@11PAV2@V?$QFlags@W4Option@QFileDialog@@@@@Z @ 4890 NONAME ; class QString QFileDialog::getOpenFileName(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?itemDelegate@QAbstractItemView@@QBEPAVQAbstractItemDelegate@@ABVQModelIndex@@@Z @ 4891 NONAME ; class QAbstractItemDelegate * QAbstractItemView::itemDelegate(class QModelIndex const &) const + ?transformed@QPixmap@@QBE?AV1@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 4892 NONAME ; class QPixmap QPixmap::transformed(class QTransform const &, enum Qt::TransformationMode) const + ?mouseMoveEvent@QGroupBox@@MAEXPAVQMouseEvent@@@Z @ 4893 NONAME ; void QGroupBox::mouseMoveEvent(class QMouseEvent *) + ?selectionEnd@QTextCursor@@QBEHXZ @ 4894 NONAME ; int QTextCursor::selectionEnd(void) const + ??_EQLineEdit@@UAE@I@Z @ 4895 NONAME ; QLineEdit::~QLineEdit(unsigned int) + ?pixelIndex@QImage@@QBEHABVQPoint@@@Z @ 4896 NONAME ; int QImage::pixelIndex(class QPoint const &) const + ?d_func@QGraphicsEffectSource@@ABEPBVQGraphicsEffectSourcePrivate@@XZ @ 4897 NONAME ; class QGraphicsEffectSourcePrivate const * QGraphicsEffectSource::d_func(void) const + ?parseMedia@Parser@QCss@@QAE_NPAUMediaRule@2@@Z @ 4898 NONAME ; bool QCss::Parser::parseMedia(struct QCss::MediaRule *) + ?findItem@QTextEngine@@QBEHH@Z @ 4899 NONAME ; int QTextEngine::findItem(int) const + ?strength@QGraphicsColorizeEffect@@QBEMXZ @ 4900 NONAME ; float QGraphicsColorizeEffect::strength(void) const + ?mapFromParent@QGraphicsItem@@QBE?AVQPolygonF@@ABVQRectF@@@Z @ 4901 NONAME ; class QPolygonF QGraphicsItem::mapFromParent(class QRectF const &) const + ?anchorNames@QTextCharFormat@@QBE?AVQStringList@@XZ @ 4902 NONAME ; class QStringList QTextCharFormat::anchorNames(void) const + ?itemActivated@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 4903 NONAME ; void QTableWidget::itemActivated(class QTableWidgetItem *) + ?isValid@QTextBlockFormat@@QBE_NXZ @ 4904 NONAME ; bool QTextBlockFormat::isValid(void) const + ?toBlockFormat@QTextFormat@@QBE?AVQTextBlockFormat@@XZ @ 4905 NONAME ; class QTextBlockFormat QTextFormat::toBlockFormat(void) const + ??8QRegion@@QBE_NABV0@@Z @ 4906 NONAME ; bool QRegion::operator==(class QRegion const &) const + ?nameFilters@QDirModel@@QBE?AVQStringList@@XZ @ 4907 NONAME ; class QStringList QDirModel::nameFilters(void) const + ?mapFromSource@QSortFilterProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 4908 NONAME ; class QModelIndex QSortFilterProxyModel::mapFromSource(class QModelIndex const &) const + ?lighter@QColor@@QBE?AV1@H@Z @ 4909 NONAME ; class QColor QColor::lighter(int) const + ?tableCellRowSpan@QTextCharFormat@@QBEHXZ @ 4910 NONAME ; int QTextCharFormat::tableCellRowSpan(void) const + ?currentFrame@QTextCursor@@QBEPAVQTextFrame@@XZ @ 4911 NONAME ; class QTextFrame * QTextCursor::currentFrame(void) const + ?d_func@QFileSystemModel@@AAEPAVQFileSystemModelPrivate@@XZ @ 4912 NONAME ; class QFileSystemModelPrivate * QFileSystemModel::d_func(void) + ??_EQRubberBand@@UAE@I@Z @ 4913 NONAME ; QRubberBand::~QRubberBand(unsigned int) + ?reexpand@QTreeView@@IAEXXZ @ 4914 NONAME ; void QTreeView::reexpand(void) + ??1QConicalGradient@@QAE@XZ @ 4915 NONAME ; QConicalGradient::~QConicalGradient(void) + ?alterCharForCapitalization@QFontPrivate@@QBEXAAVQChar@@@Z @ 4916 NONAME ; void QFontPrivate::alterCharForCapitalization(class QChar &) const + ?metaObject@QTimeEdit@@UBEPBUQMetaObject@@XZ @ 4917 NONAME ; struct QMetaObject const * QTimeEdit::metaObject(void) const + ??_EQTreeWidgetItem@@UAE@I@Z @ 4918 NONAME ; QTreeWidgetItem::~QTreeWidgetItem(unsigned int) + ?processMouseEvent@QLineControl@@QAEXPAVQMouseEvent@@@Z @ 4919 NONAME ; void QLineControl::processMouseEvent(class QMouseEvent *) + ??1QGraphicsSceneMouseEvent@@UAE@XZ @ 4920 NONAME ; QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent(void) + ?widgetDestroyed@QInputContext@@UAEXPAVQWidget@@@Z @ 4921 NONAME ; void QInputContext::widgetDestroyed(class QWidget *) + ?isDir@QFileSystemModel@@QBE_NABVQModelIndex@@@Z @ 4922 NONAME ; bool QFileSystemModel::isDir(class QModelIndex const &) const + ?backspace@QLineEdit@@QAEXXZ @ 4923 NONAME ; void QLineEdit::backspace(void) + ?iconSize@QToolBar@@QBE?AVQSize@@XZ @ 4924 NONAME ; class QSize QToolBar::iconSize(void) const + ?wheelEvent@QAbstractScrollArea@@MAEXPAVQWheelEvent@@@Z @ 4925 NONAME ; void QAbstractScrollArea::wheelEvent(class QWheelEvent *) + ?layoutDirection@QApplication@@SA?AW4LayoutDirection@Qt@@XZ @ 4926 NONAME ; enum Qt::LayoutDirection QApplication::layoutDirection(void) + ?insertFragment@QTextCursor@@QAEXABVQTextDocumentFragment@@@Z @ 4927 NONAME ; void QTextCursor::insertFragment(class QTextDocumentFragment const &) + ??_EQProgressBar@@UAE@I@Z @ 4928 NONAME ; QProgressBar::~QProgressBar(unsigned int) + ?getStaticMetaObject@QApplication@@SAABUQMetaObject@@XZ @ 4929 NONAME ; struct QMetaObject const & QApplication::getStaticMetaObject(void) + ?setModel@QTreeView@@UAEXPAVQAbstractItemModel@@@Z @ 4930 NONAME ; void QTreeView::setModel(class QAbstractItemModel *) + ?itemPixmapRect@QProxyStyle@@UBE?AVQRect@@ABV2@HABVQPixmap@@@Z @ 4931 NONAME ; class QRect QProxyStyle::itemPixmapRect(class QRect const &, int, class QPixmap const &) const + ??1QSound@@UAE@XZ @ 4932 NONAME ; QSound::~QSound(void) + ?blurHintChanged@QGraphicsBlurEffect@@IAEXW4RenderHint@Qt@@@Z @ 4933 NONAME ; void QGraphicsBlurEffect::blurHintChanged(enum Qt::RenderHint) + ?ascent@QTextLine@@QBEMXZ @ 4934 NONAME ; float QTextLine::ascent(void) const + ??0QContextMenuEvent@@QAE@W4Reason@0@ABVQPoint@@@Z @ 4935 NONAME ; QContextMenuEvent::QContextMenuEvent(enum QContextMenuEvent::Reason, class QPoint const &) + ?viewportEvent@QMdiArea@@MAE_NPAVQEvent@@@Z @ 4936 NONAME ; bool QMdiArea::viewportEvent(class QEvent *) + ?qt_metacast@QLineControl@@UAEPAXPBD@Z @ 4937 NONAME ; void * QLineControl::qt_metacast(char const *) + ?paint@QGraphicsPixmapItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 4938 NONAME ; void QGraphicsPixmapItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?sizeHint@QWidget@@UBE?AVQSize@@XZ @ 4939 NONAME ; class QSize QWidget::sizeHint(void) const + ?setQuality@QImageReader@@QAEXH@Z @ 4940 NONAME ; void QImageReader::setQuality(int) + ?resourceChangeType@QSymbianEvent@@QBEHXZ @ 4941 NONAME ; int QSymbianEvent::resourceChangeType(void) const + ?boundingRect@QFontMetrics@@QBE?AVQRect@@VQChar@@@Z @ 4942 NONAME ; class QRect QFontMetrics::boundingRect(class QChar) const + ?shape@QGraphicsPolygonItem@@UBE?AVQPainterPath@@XZ @ 4943 NONAME ; class QPainterPath QGraphicsPolygonItem::shape(void) const + ?setPreferredWidth@QGraphicsLayoutItem@@QAEXM@Z @ 4944 NONAME ; void QGraphicsLayoutItem::setPreferredWidth(float) + ??1QWizard@@UAE@XZ @ 4945 NONAME ; QWizard::~QWizard(void) + ?singleStep@QAbstractSlider@@QBEHXZ @ 4946 NONAME ; int QAbstractSlider::singleStep(void) const + ?setGamma@QPictureIO@@QAEXM@Z @ 4947 NONAME ; void QPictureIO::setGamma(float) + ?setThemeSearchPaths@QIcon@@SAXABVQStringList@@@Z @ 4948 NONAME ; void QIcon::setThemeSearchPaths(class QStringList const &) + ?appendUndoItem@QTextDocument@@QAEXPAVQAbstractUndoItem@@@Z @ 4949 NONAME ; void QTextDocument::appendUndoItem(class QAbstractUndoItem *) + ?cursor@QWidget@@QBE?AVQCursor@@XZ @ 4950 NONAME ; class QCursor QWidget::cursor(void) const + ?setPreferredSize@QGraphicsLayoutItem@@QAEXABVQSizeF@@@Z @ 4951 NONAME ; void QGraphicsLayoutItem::setPreferredSize(class QSizeF const &) + ?deleteExtra@QWidgetPrivate@@QAEXXZ @ 4952 NONAME ; void QWidgetPrivate::deleteExtra(void) + ?update@QWidget@@QAEXHHHH@Z @ 4953 NONAME ; void QWidget::update(int, int, int, int) + ?emitDataChanged@QStandardItem@@IAEXXZ @ 4954 NONAME ; void QStandardItem::emitDataChanged(void) + ?orientation@QAbstractSlider@@QBE?AW4Orientation@Qt@@XZ @ 4955 NONAME ; enum Qt::Orientation QAbstractSlider::orientation(void) const + ??D@YA?AVQPolygon@@ABV0@ABVQMatrix@@@Z @ 4956 NONAME ; class QPolygon operator*(class QPolygon const &, class QMatrix const &) + ??1QMouseEventTransition@@UAE@XZ @ 4957 NONAME ; QMouseEventTransition::~QMouseEventTransition(void) + ?setNativeMenuBar@QMenuBar@@QAEX_N@Z @ 4958 NONAME ; void QMenuBar::setNativeMenuBar(bool) + ?advanceToEnabledItem@QLineControl@@AAE_NH@Z @ 4959 NONAME ; bool QLineControl::advanceToEnabledItem(int) + ?d_func@QSplashScreen@@AAEPAVQSplashScreenPrivate@@XZ @ 4960 NONAME ; class QSplashScreenPrivate * QSplashScreen::d_func(void) + ?statusTip@QTableWidgetItem@@QBE?AVQString@@XZ @ 4961 NONAME ; class QString QTableWidgetItem::statusTip(void) const + ?size@QPicture@@QBEIXZ @ 4962 NONAME ; unsigned int QPicture::size(void) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRectF@@W4ItemSelectionMode@Qt@@@Z @ 4963 NONAME ; class QList QGraphicsScene::items(class QRectF const &, enum Qt::ItemSelectionMode) const + ?iconSize@QAbstractItemView@@QBE?AVQSize@@XZ @ 4964 NONAME ; class QSize QAbstractItemView::iconSize(void) const + ?tr@QBoxLayout@@SA?AVQString@@PBD0H@Z @ 4965 NONAME ; class QString QBoxLayout::tr(char const *, char const *, int) + ?text@QLineControl@@QBE?AVQString@@XZ @ 4966 NONAME ; class QString QLineControl::text(void) const + ?_q_delayedDestroy@QWidgetPrivate@@QAEXPAVCCoeControl@@@Z @ 4967 NONAME ; void QWidgetPrivate::_q_delayedDestroy(class CCoeControl *) + ?metaObject@QTreeView@@UBEPBUQMetaObject@@XZ @ 4968 NONAME ; struct QMetaObject const * QTreeView::metaObject(void) const + ?widgetItemFactoryMethod@QLayoutPrivate@@2P6APAVQWidgetItem@@PBVQLayout@@PAVQWidget@@@ZA @ 4969 NONAME ; class QWidgetItem * (*QLayoutPrivate::widgetItemFactoryMethod)(class QLayout const *, class QWidget *) + ?focusInEvent@QGraphicsWidget@@MAEXPAVQFocusEvent@@@Z @ 4970 NONAME ; void QGraphicsWidget::focusInEvent(class QFocusEvent *) + ?setRange@QAbstractSlider@@QAEXHH@Z @ 4971 NONAME ; void QAbstractSlider::setRange(int, int) + ?trUtf8@QRegExpValidator@@SA?AVQString@@PBD0H@Z @ 4972 NONAME ; class QString QRegExpValidator::trUtf8(char const *, char const *, int) + ?setMinimum@QAbstractSlider@@QAEXH@Z @ 4973 NONAME ; void QAbstractSlider::setMinimum(int) + ?metaObject@QLayout@@UBEPBUQMetaObject@@XZ @ 4974 NONAME ; struct QMetaObject const * QLayout::metaObject(void) const + ?mousePressEvent@QAbstractSpinBox@@MAEXPAVQMouseEvent@@@Z @ 4975 NONAME ; void QAbstractSpinBox::mousePressEvent(class QMouseEvent *) + ?windowIcon@QApplication@@SA?AVQIcon@@XZ @ 4976 NONAME ; class QIcon QApplication::windowIcon(void) + ?mergeCharFormat@QTextCursor@@QAEXABVQTextCharFormat@@@Z @ 4977 NONAME ; void QTextCursor::mergeCharFormat(class QTextCharFormat const &) + ?isCheckable@QAction@@QBE_NXZ @ 4978 NONAME ; bool QAction::isCheckable(void) const + ?clipPath@QPainter@@QBE?AVQPainterPath@@XZ @ 4979 NONAME ; class QPainterPath QPainter::clipPath(void) const + ?movement@QListView@@QBE?AW4Movement@1@XZ @ 4980 NONAME ; enum QListView::Movement QListView::movement(void) const + ?doubleValueSelected@QInputDialog@@IAEXN@Z @ 4981 NONAME ; void QInputDialog::doubleValueSelected(double) + ??0QGraphicsSystemPlugin@@QAE@PAVQObject@@@Z @ 4982 NONAME ; QGraphicsSystemPlugin::QGraphicsSystemPlugin(class QObject *) + ?setCurrentIndex@QStackedWidget@@QAEXH@Z @ 4983 NONAME ; void QStackedWidget::setCurrentIndex(int) + ??6@YAAAVQDataStream@@AAV0@ABVQImage@@@Z @ 4984 NONAME ; class QDataStream & operator<<(class QDataStream &, class QImage const &) + ??_EQToolButton@@UAE@I@Z @ 4985 NONAME ; QToolButton::~QToolButton(unsigned int) + ?titleArea@QDockWidgetLayout@@QBE?AVQRect@@XZ @ 4986 NONAME ; class QRect QDockWidgetLayout::titleArea(void) const + ?textChanged@QLineControl@@IAEXABVQString@@@Z @ 4987 NONAME ; void QLineControl::textChanged(class QString const &) + ?setHorizontalStepsPerItem@QAbstractItemView@@IAEXH@Z @ 4988 NONAME ; void QAbstractItemView::setHorizontalStepsPerItem(int) + ?setTextureImage@QBrush@@QAEXABVQImage@@@Z @ 4989 NONAME ; void QBrush::setTextureImage(class QImage const &) + ??0QRadioButton@@QAE@ABVQString@@PAVQWidget@@@Z @ 4990 NONAME ; QRadioButton::QRadioButton(class QString const &, class QWidget *) + ?setIndent@QTextListFormat@@QAEXH@Z @ 4991 NONAME ; void QTextListFormat::setIndent(int) + ?getContentsMargins@QLayout@@QBEXPAH000@Z @ 4992 NONAME ; void QLayout::getContentsMargins(int *, int *, int *, int *) const + ?setOffset@QPanGesture@@QAEXABVQPointF@@@Z @ 4993 NONAME ; void QPanGesture::setOffset(class QPointF const &) + ?qt_metacall@QPlainTextDocumentLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4994 NONAME ; int QPlainTextDocumentLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?imageFormat@QImageReader@@SA?AVQByteArray@@ABVQString@@@Z @ 4995 NONAME ; class QByteArray QImageReader::imageFormat(class QString const &) + ?isDisabled@QTreeWidgetItem@@QBE_NXZ @ 4996 NONAME ; bool QTreeWidgetItem::isDisabled(void) const + ??0QImage@@QAE@QBQBD@Z @ 4997 NONAME ; QImage::QImage(char const * const * const) + ?internalDelayedPopup@QMenu@@AAEXXZ @ 4998 NONAME ; void QMenu::internalDelayedPopup(void) + ?tr@QSizeGrip@@SA?AVQString@@PBD0@Z @ 4999 NONAME ; class QString QSizeGrip::tr(char const *, char const *) + ?hideEvent@QTabBar@@MAEXPAVQHideEvent@@@Z @ 5000 NONAME ; void QTabBar::hideEvent(class QHideEvent *) + ??_EQDockWidgetLayout@@UAE@I@Z @ 5001 NONAME ; QDockWidgetLayout::~QDockWidgetLayout(unsigned int) + ?qt_metacast@QProxyStyle@@UAEPAXPBD@Z @ 5002 NONAME ; void * QProxyStyle::qt_metacast(char const *) + ?helpEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneHelpEvent@@@Z @ 5003 NONAME ; void QGraphicsScene::helpEvent(class QGraphicsSceneHelpEvent *) + ?tr@QPaintBufferResource@@SA?AVQString@@PBD0@Z @ 5004 NONAME ; class QString QPaintBufferResource::tr(char const *, char const *) + ?staticMetaObject@QPictureFormatPlugin@@2UQMetaObject@@B @ 5005 NONAME ; struct QMetaObject const QPictureFormatPlugin::staticMetaObject + ?indent@QTextListFormat@@QBEHXZ @ 5006 NONAME ; int QTextListFormat::indent(void) const + ?nativeScanCode@QKeyEvent@@QBEIXZ @ 5007 NONAME ; unsigned int QKeyEvent::nativeScanCode(void) const + ?hiResGlobalX@QTabletEvent@@QBEMXZ @ 5008 NONAME ; float QTabletEvent::hiResGlobalX(void) const + ?parent@QSortFilterProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 5009 NONAME ; class QModelIndex QSortFilterProxyModel::parent(class QModelIndex const &) const + ??_EQImageTextKeyLang@@QAE@I@Z @ 5010 NONAME ; QImageTextKeyLang::~QImageTextKeyLang(unsigned int) + ??_EQFontDialog@@UAE@I@Z @ 5011 NONAME ; QFontDialog::~QFontDialog(unsigned int) + ??_EQDragEnterEvent@@UAE@I@Z @ 5012 NONAME ; QDragEnterEvent::~QDragEnterEvent(unsigned int) + ?qt_metacall@QGraphicsOpacityEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5013 NONAME ; int QGraphicsOpacityEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QPaintBufferSignalProxy@@QAE@XZ @ 5014 NONAME ; QPaintBufferSignalProxy::QPaintBufferSignalProxy(void) + ??1QGraphicsLinearLayout@@UAE@XZ @ 5015 NONAME ; QGraphicsLinearLayout::~QGraphicsLinearLayout(void) + ?d_func@QTreeWidget@@ABEPBVQTreeWidgetPrivate@@XZ @ 5016 NONAME ; class QTreeWidgetPrivate const * QTreeWidget::d_func(void) const + ??0QStyleOptionFrameV2@@QAE@XZ @ 5017 NONAME ; QStyleOptionFrameV2::QStyleOptionFrameV2(void) + ?tabPositions@QTextBlockFormat@@QBE?AV?$QList@UTab@QTextOption@@@@XZ @ 5018 NONAME ; class QList QTextBlockFormat::tabPositions(void) const + ?initializeMultitouch_sys@QApplicationPrivate@@QAEXXZ @ 5019 NONAME ; void QApplicationPrivate::initializeMultitouch_sys(void) + ?focusPolicy@QGraphicsWidget@@QBE?AW4FocusPolicy@Qt@@XZ @ 5020 NONAME ; enum Qt::FocusPolicy QGraphicsWidget::focusPolicy(void) const + ?cleanIcon@QUndoView@@QBE?AVQIcon@@XZ @ 5021 NONAME ; class QIcon QUndoView::cleanIcon(void) const + ?setAutoRaise@QToolButton@@QAEX_N@Z @ 5022 NONAME ; void QToolButton::setAutoRaise(bool) + ?setRect@QGraphicsEllipseItem@@QAEXMMMM@Z @ 5023 NONAME ; void QGraphicsEllipseItem::setRect(float, float, float, float) + ?instance@QApplicationPrivate@@SAPAV1@XZ @ 5024 NONAME ; class QApplicationPrivate * QApplicationPrivate::instance(void) + ?rowsInserted@QHeaderView@@MAEXABVQModelIndex@@HH@Z @ 5025 NONAME ; void QHeaderView::rowsInserted(class QModelIndex const &, int, int) + ?trUtf8@QCommonStyle@@SA?AVQString@@PBD0@Z @ 5026 NONAME ; class QString QCommonStyle::trUtf8(char const *, char const *) + ?mouseDoubleClickEvent@QWidget@@MAEXPAVQMouseEvent@@@Z @ 5027 NONAME ; void QWidget::mouseDoubleClickEvent(class QMouseEvent *) + ?greenF@QColor@@QBEMXZ @ 5028 NONAME ; float QColor::greenF(void) const + ?d_func@QGraphicsScene@@ABEPBVQGraphicsScenePrivate@@XZ @ 5029 NONAME ; class QGraphicsScenePrivate const * QGraphicsScene::d_func(void) const + ?toImage@QRasterPixmapData@@UBE?AVQImage@@XZ @ 5030 NONAME ; class QImage QRasterPixmapData::toImage(void) const + ?staticMetaObject@QListView@@2UQMetaObject@@B @ 5031 NONAME ; struct QMetaObject const QListView::staticMetaObject + ?trUtf8@QGraphicsAnchor@@SA?AVQString@@PBD0@Z @ 5032 NONAME ; class QString QGraphicsAnchor::trUtf8(char const *, char const *) + ?mapToItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@ABVQRectF@@@Z @ 5033 NONAME ; class QPolygonF QGraphicsItem::mapToItem(class QGraphicsItem const *, class QRectF const &) const + ??_EQMenu@@UAE@I@Z @ 5034 NONAME ; QMenu::~QMenu(unsigned int) + ?showMinimized@QWidget@@QAEXXZ @ 5035 NONAME ; void QWidget::showMinimized(void) + ??1QStyleOptionHeader@@QAE@XZ @ 5036 NONAME ; QStyleOptionHeader::~QStyleOptionHeader(void) + ?image@QClipboard@@QBE?AVQImage@@W4Mode@1@@Z @ 5037 NONAME ; class QImage QClipboard::image(enum QClipboard::Mode) const + ?setFormat@QTextTable@@QAEXABVQTextTableFormat@@@Z @ 5038 NONAME ; void QTextTable::setFormat(class QTextTableFormat const &) + ?q_func@QApplicationPrivate@@ABEPBVQApplication@@XZ @ 5039 NONAME ; class QApplication const * QApplicationPrivate::q_func(void) const + ??0QPainterPath@@QAE@ABV0@@Z @ 5040 NONAME ; QPainterPath::QPainterPath(class QPainterPath const &) + ?columnCount@QTableWidgetSelectionRange@@QBEHXZ @ 5041 NONAME ; int QTableWidgetSelectionRange::columnCount(void) const + ??0QGradient@@QAE@XZ @ 5042 NONAME ; QGradient::QGradient(void) + ?tr@QTextTable@@SA?AVQString@@PBD0H@Z @ 5043 NONAME ; class QString QTextTable::tr(char const *, char const *, int) + ?setFontFamily@QTextEdit@@QAEXABVQString@@@Z @ 5044 NONAME ; void QTextEdit::setFontFamily(class QString const &) + ?d_func@QUndoGroup@@ABEPBVQUndoGroupPrivate@@XZ @ 5045 NONAME ; class QUndoGroupPrivate const * QUndoGroup::d_func(void) const + ?event@QToolButton@@MAE_NPAVQEvent@@@Z @ 5046 NONAME ; bool QToolButton::event(class QEvent *) + ?disconnectFromModel@QProxyModel@@IBEXPBVQAbstractItemModel@@@Z @ 5047 NONAME ; void QProxyModel::disconnectFromModel(class QAbstractItemModel const *) const + ?autoCompletionCaseSensitivity@QComboBox@@QBE?AW4CaseSensitivity@Qt@@XZ @ 5048 NONAME ; enum Qt::CaseSensitivity QComboBox::autoCompletionCaseSensitivity(void) const + ??1QRasterWindowSurface@@UAE@XZ @ 5049 NONAME ; QRasterWindowSurface::~QRasterWindowSurface(void) + ?textFromValue@QSpinBox@@MBE?AVQString@@H@Z @ 5050 NONAME ; class QString QSpinBox::textFromValue(int) const + ?tr@QDockWidget@@SA?AVQString@@PBD0H@Z @ 5051 NONAME ; class QString QDockWidget::tr(char const *, char const *, int) + ?isDetached@QImage@@QBE_NXZ @ 5052 NONAME ; bool QImage::isDetached(void) const + ?visualNavigation@QTextCursor@@QBE_NXZ @ 5053 NONAME ; bool QTextCursor::visualNavigation(void) const + ?shifted@QBezier@@QBEHPAV1@HMM@Z @ 5054 NONAME ; int QBezier::shifted(class QBezier *, int, float, float) const + ?setHeaderVisible@QCalendarWidget@@QAEX_N@Z @ 5055 NONAME ; void QCalendarWidget::setHeaderVisible(bool) + ?insertRow@QFormLayout@@QAEXHPAVQWidget@@PAVQLayout@@@Z @ 5056 NONAME ; void QFormLayout::insertRow(int, class QWidget *, class QLayout *) + ?DynInitMenuPaneL@QS60MainAppUi@@UAEXHPAVCEikMenuPane@@@Z @ 5057 NONAME ; void QS60MainAppUi::DynInitMenuPaneL(int, class CEikMenuPane *) + ?cellAt@QTextTable@@QBE?AVQTextTableCell@@ABVQTextCursor@@@Z @ 5058 NONAME ; class QTextTableCell QTextTable::cellAt(class QTextCursor const &) const + ?showText@QToolTip@@SAXABVQPoint@@ABVQString@@PAVQWidget@@ABVQRect@@@Z @ 5059 NONAME ; void QToolTip::showText(class QPoint const &, class QString const &, class QWidget *, class QRect const &) + ?windowType@QWidget@@QBE?AW4WindowType@Qt@@XZ @ 5060 NONAME ; enum Qt::WindowType QWidget::windowType(void) const + ?tr@QPaintBufferSignalProxy@@SA?AVQString@@PBD0@Z @ 5061 NONAME ; class QString QPaintBufferSignalProxy::tr(char const *, char const *) + ?staticMetaObject@QErrorMessage@@2UQMetaObject@@B @ 5062 NONAME ; struct QMetaObject const QErrorMessage::staticMetaObject + ?completionRole@QCompleter@@QBEHXZ @ 5063 NONAME ; int QCompleter::completionRole(void) const + ?addToIndex@QGraphicsItem@@IAEXXZ @ 5064 NONAME ; void QGraphicsItem::addToIndex(void) + ?icon@QTableWidgetItem@@QBE?AVQIcon@@XZ @ 5065 NONAME ; class QIcon QTableWidgetItem::icon(void) const + ??8QTextLength@@QBE_NABV0@@Z @ 5066 NONAME ; bool QTextLength::operator==(class QTextLength const &) const + ?totalScaleFactor@QPinchGesture@@QBEMXZ @ 5067 NONAME ; float QPinchGesture::totalScaleFactor(void) const + ?setValue@QProgressBar@@QAEXH@Z @ 5068 NONAME ; void QProgressBar::setValue(int) + ?tr@QTextControl@@SA?AVQString@@PBD0@Z @ 5069 NONAME ; class QString QTextControl::tr(char const *, char const *) + ?selectionChanged@QTextControl@@IAEXXZ @ 5070 NONAME ; void QTextControl::selectionChanged(void) + ?removeToolBar@QMainWindow@@QAEXPAVQToolBar@@@Z @ 5071 NONAME ; void QMainWindow::removeToolBar(class QToolBar *) + ??0QGraphicsItemAnimation@@QAE@PAVQObject@@@Z @ 5072 NONAME ; QGraphicsItemAnimation::QGraphicsItemAnimation(class QObject *) + ?addStrut@QBoxLayout@@QAEXH@Z @ 5073 NONAME ; void QBoxLayout::addStrut(int) + ??1QGraphicsGrayscaleEffect@@UAE@XZ @ 5074 NONAME ; QGraphicsGrayscaleEffect::~QGraphicsGrayscaleEffect(void) + ?setSelection@QListView@@MAEXABVQRect@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 5075 NONAME ; void QListView::setSelection(class QRect const &, class QFlags) + ?staticMetaObject@QAbstractSpinBox@@2UQMetaObject@@B @ 5076 NONAME ; struct QMetaObject const QAbstractSpinBox::staticMetaObject + ?trUtf8@QAbstractItemDelegate@@SA?AVQString@@PBD0@Z @ 5077 NONAME ; class QString QAbstractItemDelegate::trUtf8(char const *, char const *) + ?sizes@QSplitter@@QBE?AV?$QList@H@@XZ @ 5078 NONAME ; class QList QSplitter::sizes(void) const + ?raise_sys@QWidgetPrivate@@QAEXXZ @ 5079 NONAME ; void QWidgetPrivate::raise_sys(void) + ??1QHeaderView@@UAE@XZ @ 5080 NONAME ; QHeaderView::~QHeaderView(void) + ?d_func@QDockWidget@@AAEPAVQDockWidgetPrivate@@XZ @ 5081 NONAME ; class QDockWidgetPrivate * QDockWidget::d_func(void) + ?setSceneRect@QGraphicsScene@@QAEXABVQRectF@@@Z @ 5082 NONAME ; void QGraphicsScene::setSceneRect(class QRectF const &) + ?tr@QAbstractSlider@@SA?AVQString@@PBD0@Z @ 5083 NONAME ; class QString QAbstractSlider::tr(char const *, char const *) + ?logicalIndexAt@QHeaderView@@QBEHHH@Z @ 5084 NONAME ; int QHeaderView::logicalIndexAt(int, int) const + ??0QMovie@@QAE@PAVQIODevice@@ABVQByteArray@@PAVQObject@@@Z @ 5085 NONAME ; QMovie::QMovie(class QIODevice *, class QByteArray const &, class QObject *) + ?setOverwriteMode@QTextEdit@@QAEX_N@Z @ 5086 NONAME ; void QTextEdit::setOverwriteMode(bool) + ?actionAt@QToolBar@@QBEPAVQAction@@HH@Z @ 5087 NONAME ; class QAction * QToolBar::actionAt(int, int) const + ?context@QShortcut@@QAE?AW4ShortcutContext@Qt@@XZ @ 5088 NONAME ; enum Qt::ShortcutContext QShortcut::context(void) + ?layoutDirection@QGraphicsWidget@@QBE?AW4LayoutDirection@Qt@@XZ @ 5089 NONAME ; enum Qt::LayoutDirection QGraphicsWidget::layoutDirection(void) const + ?addButton@QMessageBox@@QAEPAVQPushButton@@W4StandardButton@1@@Z @ 5090 NONAME ; class QPushButton * QMessageBox::addButton(enum QMessageBox::StandardButton) + ?brush@QAbstractGraphicsShapeItem@@QBE?AVQBrush@@XZ @ 5091 NONAME ; class QBrush QAbstractGraphicsShapeItem::brush(void) const + ?keyPressEvent@QAbstractSlider@@MAEXPAVQKeyEvent@@@Z @ 5092 NONAME ; void QAbstractSlider::keyPressEvent(class QKeyEvent *) + ?inputMethodQuery@QGraphicsScene@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 5093 NONAME ; class QVariant QGraphicsScene::inputMethodQuery(enum Qt::InputMethodQuery) const + ?setRowMinimumHeight@QGraphicsGridLayout@@QAEXHM@Z @ 5094 NONAME ; void QGraphicsGridLayout::setRowMinimumHeight(int, float) + ??_EQAbstractSlider@@UAE@I@Z @ 5095 NONAME ; QAbstractSlider::~QAbstractSlider(unsigned int) + ?document@QTextBlock@@QBEPBVQTextDocument@@XZ @ 5096 NONAME ; class QTextDocument const * QTextBlock::document(void) const + ?substitutes@QFont@@SA?AVQStringList@@ABVQString@@@Z @ 5097 NONAME ; class QStringList QFont::substitutes(class QString const &) + ?focusNextPrevChild@QWidget@@MAE_N_N@Z @ 5098 NONAME ; bool QWidget::focusNextPrevChild(bool) + ?addRoundRect@QPainterPath@@QAEXMMMMH@Z @ 5099 NONAME ; void QPainterPath::addRoundRect(float, float, float, float, int) + ?setLastScenePos@QGraphicsSceneHoverEvent@@QAEXABVQPointF@@@Z @ 5100 NONAME ; void QGraphicsSceneHoverEvent::setLastScenePos(class QPointF const &) + ?standardPalette@QProxyStyle@@UBE?AVQPalette@@XZ @ 5101 NONAME ; class QPalette QProxyStyle::standardPalette(void) const + ?contextMenuPolicy@QWidget@@QBE?AW4ContextMenuPolicy@Qt@@XZ @ 5102 NONAME ; enum Qt::ContextMenuPolicy QWidget::contextMenuPolicy(void) const + ??_EQKeyEvent@@UAE@I@Z @ 5103 NONAME ; QKeyEvent::~QKeyEvent(unsigned int) + ?setForeground@QTreeWidgetItem@@QAEXHABVQBrush@@@Z @ 5104 NONAME ; void QTreeWidgetItem::setForeground(int, class QBrush const &) + ??0QTextCursor@@QAE@ABV0@@Z @ 5105 NONAME ; QTextCursor::QTextCursor(class QTextCursor const &) + ?itemAt@QGraphicsLinearLayout@@UBEPAVQGraphicsLayoutItem@@H@Z @ 5106 NONAME ; class QGraphicsLayoutItem * QGraphicsLinearLayout::itemAt(int) const + ?window@QWindowSurface@@QBEPAVQWidget@@XZ @ 5107 NONAME ; class QWidget * QWindowSurface::window(void) const + ?setRect@QGraphicsRectItem@@QAEXABVQRectF@@@Z @ 5108 NONAME ; void QGraphicsRectItem::setRect(class QRectF const &) + ?naturalWidgetFont@QWidgetPrivate@@QBE?AVQFont@@I@Z @ 5109 NONAME ; class QFont QWidgetPrivate::naturalWidgetFont(unsigned int) const + ?qBlue@@YAHI@Z @ 5110 NONAME ; int qBlue(unsigned int) + ?opacity@QPainter@@QBEMXZ @ 5111 NONAME ; float QPainter::opacity(void) const + ??6@YAAAVQDebug@@AAV0@ABVQVectorPath@@@Z @ 5112 NONAME ; class QDebug & operator<<(class QDebug &, class QVectorPath const &) + ?d_func@QBoxLayout@@AAEPAVQBoxLayoutPrivate@@XZ @ 5113 NONAME ; class QBoxLayoutPrivate * QBoxLayout::d_func(void) + ?changed@QClipboard@@IAEXW4Mode@1@@Z @ 5114 NONAME ; void QClipboard::changed(enum QClipboard::Mode) + ?rect@QGraphicsEllipseItem@@QBE?AVQRectF@@XZ @ 5115 NONAME ; class QRectF QGraphicsEllipseItem::rect(void) const + ?maximumSize@QWidget@@QBE?AVQSize@@XZ @ 5116 NONAME ; class QSize QWidget::maximumSize(void) const + ?adjustSize@QTextDocument@@QAEXXZ @ 5117 NONAME ; void QTextDocument::adjustSize(void) + ?activationOrder@QMdiArea@@QBE?AW4WindowOrder@1@XZ @ 5118 NONAME ; enum QMdiArea::WindowOrder QMdiArea::activationOrder(void) const + ?staticMetaObject@QWindowsStyle@@2UQMetaObject@@B @ 5119 NONAME ; struct QMetaObject const QWindowsStyle::staticMetaObject + ??0QPolygonF@@QAE@ABVQPolygon@@@Z @ 5120 NONAME ; QPolygonF::QPolygonF(class QPolygon const &) + ?d_func@QMovie@@AAEPAVQMoviePrivate@@XZ @ 5121 NONAME ; class QMoviePrivate * QMovie::d_func(void) + ?x@QVector2D@@QBEMXZ @ 5122 NONAME ; float QVector2D::x(void) const + ?setTabToolTip@QTabWidget@@QAEXHABVQString@@@Z @ 5123 NONAME ; void QTabWidget::setTabToolTip(int, class QString const &) + ?addApplicationFont@QFontDatabase@@SAHABVQString@@@Z @ 5124 NONAME ; int QFontDatabase::addApplicationFont(class QString const &) + ??_EQStyleOptionQ3ListViewItem@@QAE@I@Z @ 5125 NONAME ; QStyleOptionQ3ListViewItem::~QStyleOptionQ3ListViewItem(unsigned int) + ?sendPendingMoveAndResizeEvents@QWidgetPrivate@@QAEX_N0@Z @ 5126 NONAME ; void QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) + ?mdiArea@QMdiSubWindow@@QBEPAVQMdiArea@@XZ @ 5127 NONAME ; class QMdiArea * QMdiSubWindow::mdiArea(void) const + ?displayText@QLineControl@@QBE?AVQString@@XZ @ 5128 NONAME ; class QString QLineControl::displayText(void) const + ?selectedColor@QColorDialog@@QBE?AVQColor@@XZ @ 5129 NONAME ; class QColor QColorDialog::selectedColor(void) const + ?maximizedButtonsWidget@QMdiSubWindow@@QBEPAVQWidget@@XZ @ 5130 NONAME ; class QWidget * QMdiSubWindow::maximizedButtonsWidget(void) const + ?isVisible@QWidget@@QBE_NXZ @ 5131 NONAME ; bool QWidget::isVisible(void) const + ??_EQDockWidget@@UAE@I@Z @ 5132 NONAME ; QDockWidget::~QDockWidget(unsigned int) + ?exec@QRegion@@AAEXABVQByteArray@@HW4ByteOrder@QDataStream@@@Z @ 5133 NONAME ; void QRegion::exec(class QByteArray const &, int, enum QDataStream::ByteOrder) + ?atEnd@iterator@QTextBlock@@QBE_NXZ @ 5134 NONAME ; bool QTextBlock::iterator::atEnd(void) const + ?toggleViewAction@QDockWidget@@QBEPAVQAction@@XZ @ 5135 NONAME ; class QAction * QDockWidget::toggleViewAction(void) const + ?end@QDashStroker@@UAEXXZ @ 5136 NONAME ; void QDashStroker::end(void) + ?layout@QWidget@@QBEPAVQLayout@@XZ @ 5137 NONAME ; class QLayout * QWidget::layout(void) const + ?isInvertible@QTransform@@QBE_NXZ @ 5138 NONAME ; bool QTransform::isInvertible(void) const + ?parameters@QPictureIO@@QBEPBDXZ @ 5139 NONAME ; char const * QPictureIO::parameters(void) const + ?trUtf8@QPixmapDropShadowFilter@@SA?AVQString@@PBD0@Z @ 5140 NONAME ; class QString QPixmapDropShadowFilter::trUtf8(char const *, char const *) + ??_EQMouseEventTransition@@UAE@I@Z @ 5141 NONAME ; QMouseEventTransition::~QMouseEventTransition(unsigned int) + ??6@YA?AVQDebug@@V0@ABVQVector2D@@@Z @ 5142 NONAME ; class QDebug operator<<(class QDebug, class QVector2D const &) + ?doKerning@QFontEngine@@UBEXPAUQGlyphLayout@@V?$QFlags@W4ShaperFlag@QTextEngine@@@@@Z @ 5143 NONAME ; void QFontEngine::doKerning(struct QGlyphLayout *, class QFlags) const + ?expandingDirections@QGridLayout@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 5144 NONAME ; class QFlags QGridLayout::expandingDirections(void) const + ??1QDoubleValidator@@UAE@XZ @ 5145 NONAME ; QDoubleValidator::~QDoubleValidator(void) + ?d_func@QDirModel@@AAEPAVQDirModelPrivate@@XZ @ 5146 NONAME ; class QDirModelPrivate * QDirModel::d_func(void) + ?miterLimit@QStroker@@QBEMXZ @ 5147 NONAME ; float QStroker::miterLimit(void) const + ?textValueChanged@QInputDialog@@IAEXABVQString@@@Z @ 5148 NONAME ; void QInputDialog::textValueChanged(class QString const &) + ?d_func@QAbstractTextDocumentLayout@@AAEPAVQAbstractTextDocumentLayoutPrivate@@XZ @ 5149 NONAME ; class QAbstractTextDocumentLayoutPrivate * QAbstractTextDocumentLayout::d_func(void) + ?setValue@QAbstractSlider@@QAEXH@Z @ 5150 NONAME ; void QAbstractSlider::setValue(int) + ?leftBearing@QFontMetricsF@@QBEMVQChar@@@Z @ 5151 NONAME ; float QFontMetricsF::leftBearing(class QChar) const + ?setLastPos@QGraphicsSceneHoverEvent@@QAEXABVQPointF@@@Z @ 5152 NONAME ; void QGraphicsSceneHoverEvent::setLastPos(class QPointF const &) + ?qt_metacall@QGridLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5153 NONAME ; int QGridLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?actionEvent@QToolBar@@MAEXPAVQActionEvent@@@Z @ 5154 NONAME ; void QToolBar::actionEvent(class QActionEvent *) + ?boundingRect@QGraphicsEffectSource@@QBE?AVQRectF@@W4CoordinateSystem@Qt@@@Z @ 5155 NONAME ; class QRectF QGraphicsEffectSource::boundingRect(enum Qt::CoordinateSystem) const + ??PQKeySequence@@QBE_NABV0@@Z @ 5156 NONAME ; bool QKeySequence::operator>=(class QKeySequence const &) const + ??4QCursor@@QAEAAV0@ABV0@@Z @ 5157 NONAME ; class QCursor & QCursor::operator=(class QCursor const &) + ?cacheType@QTextureGlyphCache@@QBE?AW4Type@QFontEngineGlyphCache@@XZ @ 5158 NONAME ; enum QFontEngineGlyphCache::Type QTextureGlyphCache::cacheType(void) const + ?isSortingEnabled@QTreeWidget@@QBE_NXZ @ 5159 NONAME ; bool QTreeWidget::isSortingEnabled(void) const + ?format@QTextTableCell@@QBE?AVQTextCharFormat@@XZ @ 5160 NONAME ; class QTextCharFormat QTextTableCell::format(void) const + ?setDecimals@QDoubleValidator@@QAEXH@Z @ 5161 NONAME ; void QDoubleValidator::setDecimals(int) + ?width@QFontMetrics@@QBEHABVQString@@H@Z @ 5162 NONAME ; int QFontMetrics::width(class QString const &, int) const + ?setTabChangesFocus@QGraphicsTextItem@@QAEX_N@Z @ 5163 NONAME ; void QGraphicsTextItem::setTabChangesFocus(bool) + ?trUtf8@QLabel@@SA?AVQString@@PBD0@Z @ 5164 NONAME ; class QString QLabel::trUtf8(char const *, char const *) + ??NQKeySequence@@QBE_NABV0@@Z @ 5165 NONAME ; bool QKeySequence::operator<=(class QKeySequence const &) const + ??_EQFileIconProvider@@UAE@I@Z @ 5166 NONAME ; QFileIconProvider::~QFileIconProvider(unsigned int) + ??5@YAAAVQDataStream@@AAV0@AAVQFont@@@Z @ 5167 NONAME ; class QDataStream & operator>>(class QDataStream &, class QFont &) + ??0QImageWriter@@QAE@ABVQString@@ABVQByteArray@@@Z @ 5168 NONAME ; QImageWriter::QImageWriter(class QString const &, class QByteArray const &) + ?trUtf8@QFileDialog@@SA?AVQString@@PBD0H@Z @ 5169 NONAME ; class QString QFileDialog::trUtf8(char const *, char const *, int) + ?testPseudo@Parser@QCss@@QAE_NXZ @ 5170 NONAME ; bool QCss::Parser::testPseudo(void) + ?metaObject@QDoubleSpinBox@@UBEPBUQMetaObject@@XZ @ 5171 NONAME ; struct QMetaObject const * QDoubleSpinBox::metaObject(void) const + ?horizontalScrollMode@QAbstractItemView@@QBE?AW4ScrollMode@1@XZ @ 5172 NONAME ; enum QAbstractItemView::ScrollMode QAbstractItemView::horizontalScrollMode(void) const + ?qDrawShadeRect@@YAXPAVQPainter@@HHHHABVQPalette@@_NHHPBVQBrush@@@Z @ 5173 NONAME ; void qDrawShadeRect(class QPainter *, int, int, int, int, class QPalette const &, bool, int, int, class QBrush const *) + ??0QTextFormatCollection@@QAE@XZ @ 5174 NONAME ; QTextFormatCollection::QTextFormatCollection(void) + ?setEnabled@QShortcut@@QAEX_N@Z @ 5175 NONAME ; void QShortcut::setEnabled(bool) + ??0QRadialGradient@@QAE@MMM@Z @ 5176 NONAME ; QRadialGradient::QRadialGradient(float, float, float) + ?addTab@QTabBar@@QAEHABVQIcon@@ABVQString@@@Z @ 5177 NONAME ; int QTabBar::addTab(class QIcon const &, class QString const &) + ?getStaticMetaObject@QCheckBox@@SAABUQMetaObject@@XZ @ 5178 NONAME ; struct QMetaObject const & QCheckBox::getStaticMetaObject(void) + ?setPoint@QPolygon@@QAEXHHH@Z @ 5179 NONAME ; void QPolygon::setPoint(int, int, int) + ?getStaticMetaObject@QIconEnginePluginV2@@SAABUQMetaObject@@XZ @ 5180 NONAME ; struct QMetaObject const & QIconEnginePluginV2::getStaticMetaObject(void) + ?tr@QGraphicsTransform@@SA?AVQString@@PBD0H@Z @ 5181 NONAME ; class QString QGraphicsTransform::tr(char const *, char const *, int) + ?ReportAknEdStateEvent@QCoeFepInputContext@@AAEXW4EAknEdwinStateEvent@MAknEdStateObserver@@@Z @ 5182 NONAME ; void QCoeFepInputContext::ReportAknEdStateEvent(enum MAknEdStateObserver::EAknEdwinStateEvent) + ?getStaticMetaObject@QUndoStack@@SAABUQMetaObject@@XZ @ 5183 NONAME ; struct QMetaObject const & QUndoStack::getStaticMetaObject(void) + ?focusInEvent@QDateTimeEdit@@MAEXPAVQFocusEvent@@@Z @ 5184 NONAME ; void QDateTimeEdit::focusInEvent(class QFocusEvent *) + ?isNull@QIcon@@QBE_NXZ @ 5185 NONAME ; bool QIcon::isNull(void) const + ?heightMM@QPaintDevice@@QBEHXZ @ 5186 NONAME ; int QPaintDevice::heightMM(void) const + ?staticMetaObject@QDoubleSpinBox@@2UQMetaObject@@B @ 5187 NONAME ; struct QMetaObject const QDoubleSpinBox::staticMetaObject + ?toCmyk@QColor@@QBE?AV1@XZ @ 5188 NONAME ; class QColor QColor::toCmyk(void) const + ?maximum@QProgressBar@@QBEHXZ @ 5189 NONAME ; int QProgressBar::maximum(void) const + ?geometry@QGraphicsLayoutItem@@QBE?AVQRectF@@XZ @ 5190 NONAME ; class QRectF QGraphicsLayoutItem::geometry(void) const + ?blurRadiusChanged@QGraphicsBlurEffect@@IAEXH@Z @ 5191 NONAME ; void QGraphicsBlurEffect::blurRadiusChanged(int) + ?qt_metacall@QFontDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5192 NONAME ; int QFontDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ?layoutSpacing@QStyle@@QBEHW4ControlType@QSizePolicy@@0W4Orientation@Qt@@PBVQStyleOption@@PBVQWidget@@@Z @ 5193 NONAME ; int QStyle::layoutSpacing(enum QSizePolicy::ControlType, enum QSizePolicy::ControlType, enum Qt::Orientation, class QStyleOption const *, class QWidget const *) const + ?invalidate@QFormLayout@@UAEXXZ @ 5194 NONAME ; void QFormLayout::invalidate(void) + ?setEnabled@QWidget@@QAEX_N@Z @ 5195 NONAME ; void QWidget::setEnabled(bool) + ?isEnabled@QActionGroup@@QBE_NXZ @ 5196 NONAME ; bool QActionGroup::isEnabled(void) const + ?standardIcon@QStyle@@QBE?AVQIcon@@W4StandardPixmap@1@PBVQStyleOption@@PBVQWidget@@@Z @ 5197 NONAME ; class QIcon QStyle::standardIcon(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ?history@QFileDialog@@QBE?AVQStringList@@XZ @ 5198 NONAME ; class QStringList QFileDialog::history(void) const + ?insertItems@QListWidget@@QAEXHABVQStringList@@@Z @ 5199 NONAME ; void QListWidget::insertItems(int, class QStringList const &) + ?supportsExtension@QGraphicsEllipseItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 5200 NONAME ; bool QGraphicsEllipseItem::supportsExtension(enum QGraphicsItem::Extension) const + ?tr@QGroupBox@@SA?AVQString@@PBD0@Z @ 5201 NONAME ; class QString QGroupBox::tr(char const *, char const *) + ?spacing@QLayout@@QBEHXZ @ 5202 NONAME ; int QLayout::spacing(void) const + ?isObscuredBy@QGraphicsLineItem@@UBE_NPBVQGraphicsItem@@@Z @ 5203 NONAME ; bool QGraphicsLineItem::isObscuredBy(class QGraphicsItem const *) const + ?activePanel@QGraphicsScene@@QBEPAVQGraphicsItem@@XZ @ 5204 NONAME ; class QGraphicsItem * QGraphicsScene::activePanel(void) const + ?dragEnterEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 5205 NONAME ; void QGraphicsTextItem::dragEnterEvent(class QGraphicsSceneDragDropEvent *) + ??0QTreeWidgetItem@@QAE@PAVQTreeWidget@@ABVQStringList@@H@Z @ 5206 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidget *, class QStringList const &, int) + ?itemDelegateForRow@QAbstractItemView@@QBEPAVQAbstractItemDelegate@@H@Z @ 5207 NONAME ; class QAbstractItemDelegate * QAbstractItemView::itemDelegateForRow(int) const + ?fileIcon@QFileSystemModel@@QBE?AVQIcon@@ABVQModelIndex@@@Z @ 5208 NONAME ; class QIcon QFileSystemModel::fileIcon(class QModelIndex const &) const + ?itemActivated@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 5209 NONAME ; void QTreeWidget::itemActivated(class QTreeWidgetItem *, int) + ?setViewportUpdateMode@QGraphicsView@@QAEXW4ViewportUpdateMode@1@@Z @ 5210 NONAME ; void QGraphicsView::setViewportUpdateMode(enum QGraphicsView::ViewportUpdateMode) + ?getItemPosition@QFormLayout@@QBEXHPAHPAW4ItemRole@1@@Z @ 5211 NONAME ; void QFormLayout::getItemPosition(int, int *, enum QFormLayout::ItemRole *) const + ?qt_metacall@QHBoxLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5212 NONAME ; int QHBoxLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QMatrix4x4@@QAE@PBM@Z @ 5213 NONAME ; QMatrix4x4::QMatrix4x4(float const *) + ?activeWindow@QApplication@@SAPAVQWidget@@XZ @ 5214 NONAME ; class QWidget * QApplication::activeWindow(void) + ?cursorToX@QLineControl@@QBEMH@Z @ 5215 NONAME ; float QLineControl::cursorToX(int) const + ?tr@QFileDialog@@SA?AVQString@@PBD0@Z @ 5216 NONAME ; class QString QFileDialog::tr(char const *, char const *) + ?d_func@QLabel@@ABEPBVQLabelPrivate@@XZ @ 5217 NONAME ; class QLabelPrivate const * QLabel::d_func(void) const + ?rowCountChanged@QTableView@@IAEXHH@Z @ 5218 NONAME ; void QTableView::rowCountChanged(int, int) + ?redoTextChanged@QUndoGroup@@IAEXABVQString@@@Z @ 5219 NONAME ; void QUndoGroup::redoTextChanged(class QString const &) + ?qt_metacast@QErrorMessage@@UAEPAXPBD@Z @ 5220 NONAME ; void * QErrorMessage::qt_metacast(char const *) + ?staticMetaObject@QSplashScreen@@2UQMetaObject@@B @ 5221 NONAME ; struct QMetaObject const QSplashScreen::staticMetaObject + ??1QAbstractGraphicsShapeItem@@UAE@XZ @ 5222 NONAME ; QAbstractGraphicsShapeItem::~QAbstractGraphicsShapeItem(void) + ?extraSelections@QTextEdit@@QBE?AV?$QList@UExtraSelection@QTextEdit@@@@XZ @ 5223 NONAME ; class QList QTextEdit::extraSelections(void) const + ?columnCountChanged@QTableView@@IAEXHH@Z @ 5224 NONAME ; void QTableView::columnCountChanged(int, int) + ?setPoints@QPolygon@@QAEXHPBH@Z @ 5225 NONAME ; void QPolygon::setPoints(int, int const *) + ?closePersistentEditor@QTableWidget@@QAEXPAVQTableWidgetItem@@@Z @ 5226 NONAME ; void QTableWidget::closePersistentEditor(class QTableWidgetItem *) + ?tr@QDialogButtonBox@@SA?AVQString@@PBD0@Z @ 5227 NONAME ; class QString QDialogButtonBox::tr(char const *, char const *) + ?setFirstColumnSpanned@QTreeView@@QAEXHABVQModelIndex@@_N@Z @ 5228 NONAME ; void QTreeView::setFirstColumnSpanned(int, class QModelIndex const &, bool) + ?isRedoAvailable@QLineEdit@@QBE_NXZ @ 5229 NONAME ; bool QLineEdit::isRedoAvailable(void) const + ??ZQRegion@@QAEAAV0@ABV0@@Z @ 5230 NONAME ; class QRegion & QRegion::operator-=(class QRegion const &) + ??0QTextDocument@@IAE@AAVQTextDocumentPrivate@@PAVQObject@@@Z @ 5231 NONAME ; QTextDocument::QTextDocument(class QTextDocumentPrivate &, class QObject *) + ?currentWidget@QTabWidget@@QBEPAVQWidget@@XZ @ 5232 NONAME ; class QWidget * QTabWidget::currentWidget(void) const + ??1QFocusEvent@@UAE@XZ @ 5233 NONAME ; QFocusEvent::~QFocusEvent(void) + ??0QPixmap@@QAE@ABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 5234 NONAME ; QPixmap::QPixmap(class QString const &, char const *, class QFlags) + ?setRowFixedHeight@QGraphicsGridLayout@@QAEXHM@Z @ 5235 NONAME ; void QGraphicsGridLayout::setRowFixedHeight(int, float) + ?setIconSize@QAbstractButton@@QAEXABVQSize@@@Z @ 5236 NONAME ; void QAbstractButton::setIconSize(class QSize const &) + ?flush@QRasterWindowSurface@@UAEXPAVQWidget@@ABVQRegion@@ABVQPoint@@@Z @ 5237 NONAME ; void QRasterWindowSurface::flush(class QWidget *, class QRegion const &, class QPoint const &) + ?resizeEvent@QTabBar@@MAEXPAVQResizeEvent@@@Z @ 5238 NONAME ; void QTabBar::resizeEvent(class QResizeEvent *) + ?testHexColor@Parser@QCss@@QAE_NXZ @ 5239 NONAME ; bool QCss::Parser::testHexColor(void) + ??0QUndoView@@QAE@PAVQUndoGroup@@PAVQWidget@@@Z @ 5240 NONAME ; QUndoView::QUndoView(class QUndoGroup *, class QWidget *) + ??1QColumnView@@UAE@XZ @ 5241 NONAME ; QColumnView::~QColumnView(void) + ?metaObject@QGraphicsObject@@UBEPBUQMetaObject@@XZ @ 5242 NONAME ; struct QMetaObject const * QGraphicsObject::metaObject(void) const + ??D@YA?AVQPointF@@ABV0@ABVQMatrix@@@Z @ 5243 NONAME ; class QPointF operator*(class QPointF const &, class QMatrix const &) + ?addRow@QFormLayout@@QAEXPAVQLayout@@@Z @ 5244 NONAME ; void QFormLayout::addRow(class QLayout *) + ?mouseReleaseEvent@QListView@@MAEXPAVQMouseEvent@@@Z @ 5245 NONAME ; void QListView::mouseReleaseEvent(class QMouseEvent *) + ??9QPalette@@QBE_NABV0@@Z @ 5246 NONAME ; bool QPalette::operator!=(class QPalette const &) const + ?qt_metacall@QGraphicsTransform@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5247 NONAME ; int QGraphicsTransform::qt_metacall(enum QMetaObject::Call, int, void * *) + ?exec@QPicture@@AAE_NPAVQPainter@@AAVQDataStream@@H@Z @ 5248 NONAME ; bool QPicture::exec(class QPainter *, class QDataStream &, int) + ?finishChange@QLineControl@@AAE_NH_N0@Z @ 5249 NONAME ; bool QLineControl::finishChange(int, bool, bool) + ?tr@QGroupBox@@SA?AVQString@@PBD0H@Z @ 5250 NONAME ; class QString QGroupBox::tr(char const *, char const *, int) + ?d_func@QPlainTextEdit@@ABEPBVQPlainTextEditPrivate@@XZ @ 5251 NONAME ; class QPlainTextEditPrivate const * QPlainTextEdit::d_func(void) const + ??8QKeySequence@@QBE_NABV0@@Z @ 5252 NONAME ; bool QKeySequence::operator==(class QKeySequence const &) const + ?systemMenu@QMdiSubWindow@@QBEPAVQMenu@@XZ @ 5253 NONAME ; class QMenu * QMdiSubWindow::systemMenu(void) const + ?filterAcceptsColumn@QSortFilterProxyModel@@MBE_NHABVQModelIndex@@@Z @ 5254 NONAME ; bool QSortFilterProxyModel::filterAcceptsColumn(int, class QModelIndex const &) const + ?visualItemRect@QTreeWidget@@QBE?AVQRect@@PBVQTreeWidgetItem@@@Z @ 5255 NONAME ; class QRect QTreeWidget::visualItemRect(class QTreeWidgetItem const *) const + ?setFormat@QTextObject@@IAEXABVQTextFormat@@@Z @ 5256 NONAME ; void QTextObject::setFormat(class QTextFormat const &) + ?submit@QAbstractProxyModel@@UAE_NXZ @ 5257 NONAME ; bool QAbstractProxyModel::submit(void) + ?setMinimumHeight@QGraphicsLayoutItem@@QAEXM@Z @ 5258 NONAME ; void QGraphicsLayoutItem::setMinimumHeight(float) + ?getStaticMetaObject@QSplitter@@SAABUQMetaObject@@XZ @ 5259 NONAME ; struct QMetaObject const & QSplitter::getStaticMetaObject(void) + ?activated@QShortcut@@IAEXXZ @ 5260 NONAME ; void QShortcut::activated(void) + ??0QPen@@QAE@XZ @ 5261 NONAME ; QPen::QPen(void) + ??1QErrorMessage@@UAE@XZ @ 5262 NONAME ; QErrorMessage::~QErrorMessage(void) + ?setModifiers@QGraphicsSceneHoverEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 5263 NONAME ; void QGraphicsSceneHoverEvent::setModifiers(class QFlags) + ?rotationList@QGraphicsItemAnimation@@QBE?AV?$QList@U?$QPair@MM@@@@XZ @ 5264 NONAME ; class QList > QGraphicsItemAnimation::rotationList(void) const + ?rotation@QTabletEvent@@QBEMXZ @ 5265 NONAME ; float QTabletEvent::rotation(void) const + ?orientationChanged@QToolBar@@IAEXW4Orientation@Qt@@@Z @ 5266 NONAME ; void QToolBar::orientationChanged(enum Qt::Orientation) + ?sortOrder@QSortFilterProxyModel@@QBE?AW4SortOrder@Qt@@XZ @ 5267 NONAME ; enum Qt::SortOrder QSortFilterProxyModel::sortOrder(void) const + ?nextCheckState@QCheckBox@@MAEXXZ @ 5268 NONAME ; void QCheckBox::nextCheckState(void) + ?setBackground@QTreeWidgetItem@@QAEXHABVQBrush@@@Z @ 5269 NONAME ; void QTreeWidgetItem::setBackground(int, class QBrush const &) + ?pointerType@QTabletEvent@@QBE?AW4PointerType@1@XZ @ 5270 NONAME ; enum QTabletEvent::PointerType QTabletEvent::pointerType(void) const + ??0QSplitter@@QAE@W4Orientation@Qt@@PAVQWidget@@@Z @ 5271 NONAME ; QSplitter::QSplitter(enum Qt::Orientation, class QWidget *) + ??4QStyleOptionFrameV3@@QAEAAV0@ABVQStyleOptionFrame@@@Z @ 5272 NONAME ; class QStyleOptionFrameV3 & QStyleOptionFrameV3::operator=(class QStyleOptionFrame const &) + ?collapsed@QTreeView@@IAEXABVQModelIndex@@@Z @ 5273 NONAME ; void QTreeView::collapsed(class QModelIndex const &) + ?initStyleOption@QDial@@IBEXPAVQStyleOptionSlider@@@Z @ 5274 NONAME ; void QDial::initStyleOption(class QStyleOptionSlider *) const + ?wheelScrollLines@QApplication@@SAHXZ @ 5275 NONAME ; int QApplication::wheelScrollLines(void) + ?keyReleaseEvent@QPlainTextEdit@@MAEXPAVQKeyEvent@@@Z @ 5276 NONAME ; void QPlainTextEdit::keyReleaseEvent(class QKeyEvent *) + ?sceneTransform@QGraphicsItem@@QBE?AVQTransform@@XZ @ 5277 NONAME ; class QTransform QGraphicsItem::sceneTransform(void) const + ?mimeData@QGraphicsSceneDragDropEvent@@QBEPBVQMimeData@@XZ @ 5278 NONAME ; class QMimeData const * QGraphicsSceneDragDropEvent::mimeData(void) const + ?isInvertible@QMatrix@@QBE_NXZ @ 5279 NONAME ; bool QMatrix::isInvertible(void) const + ?addLayout@QGridLayout@@QAEXPAVQLayout@@HHHHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 5280 NONAME ; void QGridLayout::addLayout(class QLayout *, int, int, int, int, class QFlags) + ?getMargin@QLayoutPrivate@@QBEXPAHHW4PixelMetric@QStyle@@@Z @ 5281 NONAME ; void QLayoutPrivate::getMargin(int *, int, enum QStyle::PixelMetric) const + ?blockCountChanged@QTextDocument@@IAEXH@Z @ 5282 NONAME ; void QTextDocument::blockCountChanged(int) + ?trUtf8@QGraphicsRotation@@SA?AVQString@@PBD0@Z @ 5283 NONAME ; class QString QGraphicsRotation::trUtf8(char const *, char const *) + ?find@QTextDocument@@QBE?AVQTextCursor@@ABVQString@@ABV2@V?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 5284 NONAME ; class QTextCursor QTextDocument::find(class QString const &, class QTextCursor const &, class QFlags) const + ?setFontOverline@QTextCharFormat@@QAEX_N@Z @ 5285 NONAME ; void QTextCharFormat::setFontOverline(bool) + ?selectedIndexes@QAbstractItemView@@MBE?AV?$QList@VQModelIndex@@@@XZ @ 5286 NONAME ; class QList QAbstractItemView::selectedIndexes(void) const + ?addPixmap@QIcon@@QAEXABVQPixmap@@W4Mode@1@W4State@1@@Z @ 5287 NONAME ; void QIcon::addPixmap(class QPixmap const &, enum QIcon::Mode, enum QIcon::State) + ?blurRadius@QGraphicsBloomEffect@@QBEHXZ @ 5288 NONAME ; int QGraphicsBloomEffect::blurRadius(void) const + ?setSortLocaleAware@QSortFilterProxyModel@@QAEX_N@Z @ 5289 NONAME ; void QSortFilterProxyModel::setSortLocaleAware(bool) + ?blockCountChanged@QTextControl@@IAEXH@Z @ 5290 NONAME ; void QTextControl::blockCountChanged(int) + ?mousePressEvent@QSplashScreen@@MAEXPAVQMouseEvent@@@Z @ 5291 NONAME ; void QSplashScreen::mousePressEvent(class QMouseEvent *) + ?getStaticMetaObject@QAbstractButton@@SAABUQMetaObject@@XZ @ 5292 NONAME ; struct QMetaObject const & QAbstractButton::getStaticMetaObject(void) + ?drawRoundRect@QPainter@@QAEXHHHHHH@Z @ 5293 NONAME ; void QPainter::drawRoundRect(int, int, int, int, int, int) + ??9QBrush@@QBE_NABV0@@Z @ 5294 NONAME ; bool QBrush::operator!=(class QBrush const &) const + ?drawConvexPolygon@QPainter@@QAEXPBVQPoint@@H@Z @ 5295 NONAME ; void QPainter::drawConvexPolygon(class QPoint const *, int) + ?addItems@QListWidget@@QAEXABVQStringList@@@Z @ 5296 NONAME ; void QListWidget::addItems(class QStringList const &) + ??_EQGraphicsGridLayout@@UAE@I@Z @ 5297 NONAME ; QGraphicsGridLayout::~QGraphicsGridLayout(unsigned int) + ?topLevelChanged@QDockWidget@@IAEX_N@Z @ 5298 NONAME ; void QDockWidget::topLevelChanged(bool) + ?flipCoordinates@QMatrix4x4@@QAEAAV1@XZ @ 5299 NONAME ; class QMatrix4x4 & QMatrix4x4::flipCoordinates(void) + ?actionGeometry@QMenuBar@@QBE?AVQRect@@PAVQAction@@@Z @ 5300 NONAME ; class QRect QMenuBar::actionGeometry(class QAction *) const + ??_EQPainterReplayer@@UAE@I@Z @ 5301 NONAME ; QPainterReplayer::~QPainterReplayer(unsigned int) + ??0QStyleOptionTabBarBaseV2@@QAE@XZ @ 5302 NONAME ; QStyleOptionTabBarBaseV2::QStyleOptionTabBarBaseV2(void) + ?contextMenuEvent@QPlainTextEdit@@MAEXPAVQContextMenuEvent@@@Z @ 5303 NONAME ; void QPlainTextEdit::contextMenuEvent(class QContextMenuEvent *) + ?transformToParent@QGraphicsItemPrivate@@QBE?AVQTransform@@XZ @ 5304 NONAME ; class QTransform QGraphicsItemPrivate::transformToParent(void) const + ?setWhatsThis@QWidget@@QAEXABVQString@@@Z @ 5305 NONAME ; void QWidget::setWhatsThis(class QString const &) + ?visualRegionForSelection@QColumnView@@MBE?AVQRegion@@ABVQItemSelection@@@Z @ 5306 NONAME ; class QRegion QColumnView::visualRegionForSelection(class QItemSelection const &) const + ?mousePressEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 5307 NONAME ; void QGraphicsTextItem::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?value@QSpinBox@@QBEHXZ @ 5308 NONAME ; int QSpinBox::value(void) const + ?insertRow@QFormLayout@@QAEXHPAVQWidget@@@Z @ 5309 NONAME ; void QFormLayout::insertRow(int, class QWidget *) + ?boundingRectFor@QPixmapBlurFilter@@UBE?AVQRectF@@ABV2@@Z @ 5310 NONAME ; class QRectF QPixmapBlurFilter::boundingRectFor(class QRectF const &) const + ?clip@QPaintEngineEx@@UAEXABVQRect@@W4ClipOperation@Qt@@@Z @ 5311 NONAME ; void QPaintEngineEx::clip(class QRect const &, enum Qt::ClipOperation) + ?setTextWidth@QPlainTextDocumentLayout@@AAEXM@Z @ 5312 NONAME ; void QPlainTextDocumentLayout::setTextWidth(float) + ?staticMetaObject@QComboBox@@2UQMetaObject@@B @ 5313 NONAME ; struct QMetaObject const QComboBox::staticMetaObject + ?nextId@QWizardPage@@UBEHXZ @ 5314 NONAME ; int QWizardPage::nextId(void) const + ??4QStyleOptionDockWidgetV2@@QAEAAV0@ABVQStyleOptionDockWidget@@@Z @ 5315 NONAME ; class QStyleOptionDockWidgetV2 & QStyleOptionDockWidgetV2::operator=(class QStyleOptionDockWidget const &) + ??0QFontMetricsF@@QAE@ABVQFont@@@Z @ 5316 NONAME ; QFontMetricsF::QFontMetricsF(class QFont const &) + ?setWordWrapMode@QPlainTextEdit@@QAEXW4WrapMode@QTextOption@@@Z @ 5317 NONAME ; void QPlainTextEdit::setWordWrapMode(enum QTextOption::WrapMode) + ?qt_metacall@QProxyModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5318 NONAME ; int QProxyModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?event@QDialogButtonBox@@MAE_NPAVQEvent@@@Z @ 5319 NONAME ; bool QDialogButtonBox::event(class QEvent *) + ?trUtf8@QIconEnginePlugin@@SA?AVQString@@PBD0@Z @ 5320 NONAME ; class QString QIconEnginePlugin::trUtf8(char const *, char const *) + ??1QPainterPathStroker@@QAE@XZ @ 5321 NONAME ; QPainterPathStroker::~QPainterPathStroker(void) + ?setRgbF@QColor@@QAEXMMMM@Z @ 5322 NONAME ; void QColor::setRgbF(float, float, float, float) + ?tr@QLCDNumber@@SA?AVQString@@PBD0H@Z @ 5323 NONAME ; class QString QLCDNumber::tr(char const *, char const *, int) + ?resizeEvent@QTabWidget@@MAEXPAVQResizeEvent@@@Z @ 5324 NONAME ; void QTabWidget::resizeEvent(class QResizeEvent *) + ?setLineWrapMode@QTextEdit@@QAEXW4LineWrapMode@1@@Z @ 5325 NONAME ; void QTextEdit::setLineWrapMode(enum QTextEdit::LineWrapMode) + ?qt_metacast@QGroupBox@@UAEPAXPBD@Z @ 5326 NONAME ; void * QGroupBox::qt_metacast(char const *) + ?qt_metacall@QActionGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5327 NONAME ; int QActionGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EQGuiPlatformPlugin@@UAE@I@Z @ 5328 NONAME ; QGuiPlatformPlugin::~QGuiPlatformPlugin(unsigned int) + ??0QStyleOptionMenuItem@@IAE@H@Z @ 5329 NONAME ; QStyleOptionMenuItem::QStyleOptionMenuItem(int) + ?removeAction@QGraphicsWidget@@QAEXPAVQAction@@@Z @ 5330 NONAME ; void QGraphicsWidget::removeAction(class QAction *) + ?dropAction@QDropEvent@@QBE?AW4DropAction@Qt@@XZ @ 5331 NONAME ; enum Qt::DropAction QDropEvent::dropAction(void) const + ?staticMetaObject@QPinchGesture@@2UQMetaObject@@B @ 5332 NONAME ; struct QMetaObject const QPinchGesture::staticMetaObject + ?event@QGraphicsWidget@@MAE_NPAVQEvent@@@Z @ 5333 NONAME ; bool QGraphicsWidget::event(class QEvent *) + ?addPath@QPainterPath@@QAEXABV1@@Z @ 5334 NONAME ; void QPainterPath::addPath(class QPainterPath const &) + ?d_func@QGraphicsSceneWheelEvent@@AAEPAVQGraphicsSceneWheelEventPrivate@@XZ @ 5335 NONAME ; class QGraphicsSceneWheelEventPrivate * QGraphicsSceneWheelEvent::d_func(void) + ??0QWindowsStyle@@QAE@XZ @ 5336 NONAME ; QWindowsStyle::QWindowsStyle(void) + ?removeColumn@QStandardItem@@QAEXH@Z @ 5337 NONAME ; void QStandardItem::removeColumn(int) + ?createUndoAction@QUndoGroup@@QBEPAVQAction@@PAVQObject@@ABVQString@@@Z @ 5338 NONAME ; class QAction * QUndoGroup::createUndoAction(class QObject *, class QString const &) const + ??4QBitmap@@QAEAAV0@ABVQPixmap@@@Z @ 5339 NONAME ; class QBitmap & QBitmap::operator=(class QPixmap const &) + ?setIcon@QMenu@@QAEXABVQIcon@@@Z @ 5340 NONAME ; void QMenu::setIcon(class QIcon const &) + ?play@QSound@@QAEXXZ @ 5341 NONAME ; void QSound::play(void) + ??1QGraphicsObject@@UAE@XZ @ 5342 NONAME ; QGraphicsObject::~QGraphicsObject(void) + ?d_func@QDrag@@AAEPAVQDragPrivate@@XZ @ 5343 NONAME ; class QDragPrivate * QDrag::d_func(void) + ?styleHint@QFont@@QBE?AW4StyleHint@1@XZ @ 5344 NONAME ; enum QFont::StyleHint QFont::styleHint(void) const + ?horizontalSpacing@QGridLayout@@QBEHXZ @ 5345 NONAME ; int QGridLayout::horizontalSpacing(void) const + ?getStaticMetaObject@QFormLayout@@SAABUQMetaObject@@XZ @ 5346 NONAME ; struct QMetaObject const & QFormLayout::getStaticMetaObject(void) + ??1QLCDNumber@@UAE@XZ @ 5347 NONAME ; QLCDNumber::~QLCDNumber(void) + ??0QStyleOptionToolBar@@QAE@XZ @ 5348 NONAME ; QStyleOptionToolBar::QStyleOptionToolBar(void) + ?doubleMaximum@QInputDialog@@QBENXZ @ 5349 NONAME ; double QInputDialog::doubleMaximum(void) const + ?mouseMoveEvent@QAbstractSpinBox@@MAEXPAVQMouseEvent@@@Z @ 5350 NONAME ; void QAbstractSpinBox::mouseMoveEvent(class QMouseEvent *) + ??XQVector2D@@QAEAAV0@M@Z @ 5351 NONAME ; class QVector2D & QVector2D::operator*=(float) + ??0QTextTableCellFormat@@QAE@XZ @ 5352 NONAME ; QTextTableCellFormat::QTextTableCellFormat(void) + ?drawPixmap@QPainter@@QAEXABVQRect@@ABVQPixmap@@0@Z @ 5353 NONAME ; void QPainter::drawPixmap(class QRect const &, class QPixmap const &, class QRect const &) + ?metaObject@QErrorMessage@@UBEPBUQMetaObject@@XZ @ 5354 NONAME ; struct QMetaObject const * QErrorMessage::metaObject(void) const + ?nextFrameDelay@QMovie@@QBEHXZ @ 5355 NONAME ; int QMovie::nextFrameDelay(void) const + ?qt_metacast@QProgressDialog@@UAEPAXPBD@Z @ 5356 NONAME ; void * QProgressDialog::qt_metacast(char const *) + ?trUtf8@QMdiArea@@SA?AVQString@@PBD0@Z @ 5357 NONAME ; class QString QMdiArea::trUtf8(char const *, char const *) + ??_EQToolBar@@UAE@I@Z @ 5358 NONAME ; QToolBar::~QToolBar(unsigned int) + ?d_func@QGraphicsRectItem@@AAEPAVQGraphicsRectItemPrivate@@XZ @ 5359 NONAME ; class QGraphicsRectItemPrivate * QGraphicsRectItem::d_func(void) + ?paintEvent@QRadioButton@@MAEXPAVQPaintEvent@@@Z @ 5360 NONAME ; void QRadioButton::paintEvent(class QPaintEvent *) + ?clip@QPaintEngineEx@@UAEXABVQRegion@@W4ClipOperation@Qt@@@Z @ 5361 NONAME ; void QPaintEngineEx::clip(class QRegion const &, enum Qt::ClipOperation) + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@@Z @ 5362 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type) + ??0QActionGroup@@QAE@PAVQObject@@@Z @ 5363 NONAME ; QActionGroup::QActionGroup(class QObject *) + ?staticMetaObject@QAbstractProxyModel@@2UQMetaObject@@B @ 5364 NONAME ; struct QMetaObject const QAbstractProxyModel::staticMetaObject + ?allColumnsShowFocus@QTreeView@@QBE_NXZ @ 5365 NONAME ; bool QTreeView::allColumnsShowFocus(void) const + ?contains@QGraphicsPathItem@@UBE_NABVQPointF@@@Z @ 5366 NONAME ; bool QGraphicsPathItem::contains(class QPointF const &) const + ?editItem@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 5367 NONAME ; void QListWidget::editItem(class QListWidgetItem *) + ?tr@QSyntaxHighlighter@@SA?AVQString@@PBD0H@Z @ 5368 NONAME ; class QString QSyntaxHighlighter::tr(char const *, char const *, int) + ?setText@QClipboard@@QAEXABVQString@@W4Mode@1@@Z @ 5369 NONAME ; void QClipboard::setText(class QString const &, enum QClipboard::Mode) + ??_EQMimeSource@@UAE@I@Z @ 5370 NONAME ; QMimeSource::~QMimeSource(unsigned int) + ??0QDashStroker@@QAE@PAVQStroker@@@Z @ 5371 NONAME ; QDashStroker::QDashStroker(class QStroker *) + ?type@QGraphicsPolygonItem@@UBEHXZ @ 5372 NONAME ; int QGraphicsPolygonItem::type(void) const + ?mask@QWidget@@QBE?AVQRegion@@XZ @ 5373 NONAME ; class QRegion QWidget::mask(void) const + ??4QPolygonF@@QAEAAV0@ABV0@@Z @ 5374 NONAME ; class QPolygonF & QPolygonF::operator=(class QPolygonF const &) + ?alignment@QProgressBar@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 5375 NONAME ; class QFlags QProgressBar::alignment(void) const + ?invertPixels@QImage@@QAEXW4InvertMode@1@@Z @ 5376 NONAME ; void QImage::invertPixels(enum QImage::InvertMode) + ??0QTableWidgetSelectionRange@@QAE@ABV0@@Z @ 5377 NONAME ; QTableWidgetSelectionRange::QTableWidgetSelectionRange(class QTableWidgetSelectionRange const &) + ??0QBrush@@QAE@W4GlobalColor@Qt@@ABVQPixmap@@@Z @ 5378 NONAME ; QBrush::QBrush(enum Qt::GlobalColor, class QPixmap const &) + ??0QAbstractItemDelegate@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 5379 NONAME ; QAbstractItemDelegate::QAbstractItemDelegate(class QObjectPrivate &, class QObject *) + ?staticMetaObject@QDialog@@2UQMetaObject@@B @ 5380 NONAME ; struct QMetaObject const QDialog::staticMetaObject + ?qDrawPlainRect@@YAXPAVQPainter@@ABVQRect@@ABVQColor@@HPBVQBrush@@@Z @ 5381 NONAME ; void qDrawPlainRect(class QPainter *, class QRect const &, class QColor const &, int, class QBrush const *) + ?setMaximumSize@QWidget@@QAEXHH@Z @ 5382 NONAME ; void QWidget::setMaximumSize(int, int) + ??0QStyleOptionViewItemV3@@QAE@ABV0@@Z @ 5383 NONAME ; QStyleOptionViewItemV3::QStyleOptionViewItemV3(class QStyleOptionViewItemV3 const &) + ??0QPlainTextEdit@@QAE@PAVQWidget@@@Z @ 5384 NONAME ; QPlainTextEdit::QPlainTextEdit(class QWidget *) + ??_EQClipboard@@UAE@I@Z @ 5385 NONAME ; QClipboard::~QClipboard(unsigned int) + ?eventFilter@QWindowsStyle@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 5386 NONAME ; bool QWindowsStyle::eventFilter(class QObject *, class QEvent *) + ?setColumnWidths@QColumnView@@QAEXABV?$QList@H@@@Z @ 5387 NONAME ; void QColumnView::setColumnWidths(class QList const &) + ?itemDelegate@QFileDialog@@QBEPAVQAbstractItemDelegate@@XZ @ 5388 NONAME ; class QAbstractItemDelegate * QFileDialog::itemDelegate(void) const + ?gamma@QImageWriter@@QBEMXZ @ 5389 NONAME ; float QImageWriter::gamma(void) const + ?styleHint@QS60Style@@UBEHW4StyleHint@QStyle@@PBVQStyleOption@@PBVQWidget@@PAVQStyleHintReturn@@@Z @ 5390 NONAME ; int QS60Style::styleHint(enum QStyle::StyleHint, class QStyleOption const *, class QWidget const *, class QStyleHintReturn *) const + ?setBlockFormat@QTextCursor@@QAEXABVQTextBlockFormat@@@Z @ 5391 NONAME ; void QTextCursor::setBlockFormat(class QTextBlockFormat const &) + ?tabWhatsThis@QTabWidget@@QBE?AVQString@@H@Z @ 5392 NONAME ; class QString QTabWidget::tabWhatsThis(int) const + ?setLayoutDirection_helper@QWidgetPrivate@@QAEXW4LayoutDirection@Qt@@@Z @ 5393 NONAME ; void QWidgetPrivate::setLayoutDirection_helper(enum Qt::LayoutDirection) + ?keyboardInputInterval@QApplication@@SAHXZ @ 5394 NONAME ; int QApplication::keyboardInputInterval(void) + ?trUtf8@QGridLayout@@SA?AVQString@@PBD0H@Z @ 5395 NONAME ; class QString QGridLayout::trUtf8(char const *, char const *, int) + ?keyboardSearch@QAbstractItemView@@UAEXABVQString@@@Z @ 5396 NONAME ; void QAbstractItemView::keyboardSearch(class QString const &) + ?filePath@QDirModel@@QBE?AVQString@@ABVQModelIndex@@@Z @ 5397 NONAME ; class QString QDirModel::filePath(class QModelIndex const &) const + ??0QGesture@@IAE@AAVQGesturePrivate@@PAVQObject@@@Z @ 5398 NONAME ; QGesture::QGesture(class QGesturePrivate &, class QObject *) + ?beginEditBlock@QTextCursor@@QAEXXZ @ 5399 NONAME ; void QTextCursor::beginEditBlock(void) + ?defaultTextColor@QGraphicsTextItem@@QBE?AVQColor@@XZ @ 5400 NONAME ; class QColor QGraphicsTextItem::defaultTextColor(void) const + ?metaObject@QSpinBox@@UBEPBUQMetaObject@@XZ @ 5401 NONAME ; struct QMetaObject const * QSpinBox::metaObject(void) const + ??1QToolBox@@UAE@XZ @ 5402 NONAME ; QToolBox::~QToolBox(void) + ?setAcceptsHoverEvents@QGraphicsItem@@QAEX_N@Z @ 5403 NONAME ; void QGraphicsItem::setAcceptsHoverEvents(bool) + ??_EQStylePlugin@@UAE@I@Z @ 5404 NONAME ; QStylePlugin::~QStylePlugin(unsigned int) + ??1QTableWidgetSelectionRange@@QAE@XZ @ 5405 NONAME ; QTableWidgetSelectionRange::~QTableWidgetSelectionRange(void) + ?staticMetaObject@QInputContext@@2UQMetaObject@@B @ 5406 NONAME ; struct QMetaObject const QInputContext::staticMetaObject + ?sharedPainter@QWidgetPrivate@@QBEPAVQPainter@@XZ @ 5407 NONAME ; class QPainter * QWidgetPrivate::sharedPainter(void) const + ??1QActionEvent@@UAE@XZ @ 5408 NONAME ; QActionEvent::~QActionEvent(void) + ?appendColumns@QTextTable@@QAEXH@Z @ 5409 NONAME ; void QTextTable::appendColumns(int) + ?d_func@QStandardItemModel@@AAEPAVQStandardItemModelPrivate@@XZ @ 5410 NONAME ; class QStandardItemModelPrivate * QStandardItemModel::d_func(void) + ?getWindowFrameMargins@QGraphicsWidget@@QBEXPAM000@Z @ 5411 NONAME ; void QGraphicsWidget::getWindowFrameMargins(float *, float *, float *, float *) const + ?tr@QTreeWidget@@SA?AVQString@@PBD0@Z @ 5412 NONAME ; class QString QTreeWidget::tr(char const *, char const *) + ?setTopPadding@QTextTableCellFormat@@QAEXM@Z @ 5413 NONAME ; void QTextTableCellFormat::setTopPadding(float) + ?windowFrameRect@QGraphicsWidget@@QBE?AVQRectF@@XZ @ 5414 NONAME ; class QRectF QGraphicsWidget::windowFrameRect(void) const + ?cubicTo@QPainterPath@@QAEXMMMMMM@Z @ 5415 NONAME ; void QPainterPath::cubicTo(float, float, float, float, float, float) + ?setExtension@QDialog@@QAEXPAVQWidget@@@Z @ 5416 NONAME ; void QDialog::setExtension(class QWidget *) + ??1QGraphicsSceneDragDropEvent@@UAE@XZ @ 5417 NONAME ; QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent(void) + ?cornerWidget@QTabWidget@@QBEPAVQWidget@@W4Corner@Qt@@@Z @ 5418 NONAME ; class QWidget * QTabWidget::cornerWidget(enum Qt::Corner) const + ?viewport@QPainter@@QBE?AVQRect@@XZ @ 5419 NONAME ; class QRect QPainter::viewport(void) const + ?qt_translateRawTouchEvent@@YAXPAVQWidget@@W4DeviceType@QTouchEvent@@ABV?$QList@VTouchPoint@QTouchEvent@@@@@Z @ 5420 NONAME ; void qt_translateRawTouchEvent(class QWidget *, enum QTouchEvent::DeviceType, class QList const &) + ?isColumnHidden@QTableView@@QBE_NH@Z @ 5421 NONAME ; bool QTableView::isColumnHidden(int) const + ??1QSizeGrip@@UAE@XZ @ 5422 NONAME ; QSizeGrip::~QSizeGrip(void) + ?tr@QSound@@SA?AVQString@@PBD0H@Z @ 5423 NONAME ; class QString QSound::tr(char const *, char const *, int) + ?qt_metacall@QAbstractSpinBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5424 NONAME ; int QAbstractSpinBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_draw_helper@@YAXPAVQPainterPrivate@@ABVQPainterPath@@W4DrawOperation@1@@Z @ 5425 NONAME ; void qt_draw_helper(class QPainterPrivate *, class QPainterPath const &, enum QPainterPrivate::DrawOperation) + ?allowedAreas@QDockWidget@@QBE?AV?$QFlags@W4DockWidgetArea@Qt@@@@XZ @ 5426 NONAME ; class QFlags QDockWidget::allowedAreas(void) const + ?tabButton@QTabBar@@QBEPAVQWidget@@HW4ButtonPosition@1@@Z @ 5427 NONAME ; class QWidget * QTabBar::tabButton(int, enum QTabBar::ButtonPosition) const + ?data_ptr@QIcon@@QAEAAPAVQIconPrivate@@XZ @ 5428 NONAME ; class QIconPrivate * & QIcon::data_ptr(void) + ?tr@QImageIOPlugin@@SA?AVQString@@PBD0H@Z @ 5429 NONAME ; class QString QImageIOPlugin::tr(char const *, char const *, int) + ?clear@QListWidget@@QAEXXZ @ 5430 NONAME ; void QListWidget::clear(void) + ??0QToolBar@@QAE@ABVQString@@PAVQWidget@@@Z @ 5431 NONAME ; QToolBar::QToolBar(class QString const &, class QWidget *) + ?minimumSize@QGridLayout@@UBE?AVQSize@@XZ @ 5432 NONAME ; class QSize QGridLayout::minimumSize(void) const + ?inputMethodQuery@QGraphicsItem@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 5433 NONAME ; class QVariant QGraphicsItem::inputMethodQuery(enum Qt::InputMethodQuery) const + ?event@QAction@@MAE_NPAVQEvent@@@Z @ 5434 NONAME ; bool QAction::event(class QEvent *) + ?alignedRect@QStyle@@SA?AVQRect@@W4LayoutDirection@Qt@@V?$QFlags@W4AlignmentFlag@Qt@@@@ABVQSize@@ABV2@@Z @ 5435 NONAME ; class QRect QStyle::alignedRect(enum Qt::LayoutDirection, class QFlags, class QSize const &, class QRect const &) + ?cacheKey@QImage@@QBE_JXZ @ 5436 NONAME ; long long QImage::cacheKey(void) const + ??0QTextTableFormat@@QAE@XZ @ 5437 NONAME ; QTextTableFormat::QTextTableFormat(void) + ?setFont_helper@QWidgetPrivate@@QAEXABVQFont@@@Z @ 5438 NONAME ; void QWidgetPrivate::setFont_helper(class QFont const &) + ?setIndentWidth@QTextDocument@@QAEXM@Z @ 5439 NONAME ; void QTextDocument::setIndentWidth(float) + ?stretch@QFont@@QBEHXZ @ 5440 NONAME ; int QFont::stretch(void) const + ?unpolish@QS60Style@@UAEXPAVQWidget@@@Z @ 5441 NONAME ; void QS60Style::unpolish(class QWidget *) + ?focusInEvent@QGroupBox@@MAEXPAVQFocusEvent@@@Z @ 5442 NONAME ; void QGroupBox::focusInEvent(class QFocusEvent *) + ?timerEvent@QToolButton@@MAEXPAVQTimerEvent@@@Z @ 5443 NONAME ; void QToolButton::timerEvent(class QTimerEvent *) + ?scrollContentsBy@QHeaderView@@MAEXHH@Z @ 5444 NONAME ; void QHeaderView::scrollContentsBy(int, int) + ??0QTextFrameFormat@@QAE@XZ @ 5445 NONAME ; QTextFrameFormat::QTextFrameFormat(void) + ??6@YA?AVQDebug@@V0@ABVQQuaternion@@@Z @ 5446 NONAME ; class QDebug operator<<(class QDebug, class QQuaternion const &) + ?drawRects@QPaintEngine@@UAEXPBVQRect@@H@Z @ 5447 NONAME ; void QPaintEngine::drawRects(class QRect const *, int) + ?setSliderDown@QAbstractSlider@@QAEX_N@Z @ 5448 NONAME ; void QAbstractSlider::setSliderDown(bool) + ?pressure@TouchPoint@QTouchEvent@@QBEMXZ @ 5449 NONAME ; float QTouchEvent::TouchPoint::pressure(void) const + ?metaObject@QGraphicsEffectSource@@UBEPBUQMetaObject@@XZ @ 5450 NONAME ; struct QMetaObject const * QGraphicsEffectSource::metaObject(void) const + ?isValid@QSymbianEvent@@QBE_NXZ @ 5451 NONAME ; bool QSymbianEvent::isValid(void) const + ?selectFile@QFileDialog@@QAEXABVQString@@@Z @ 5452 NONAME ; void QFileDialog::selectFile(class QString const &) + ?rowMinimumHeight@QGraphicsGridLayout@@QBEMH@Z @ 5453 NONAME ; float QGraphicsGridLayout::rowMinimumHeight(int) const + ?setStartId@QWizard@@QAEXH@Z @ 5454 NONAME ; void QWizard::setStartId(int) + ?indexOf@QTabWidget@@QBEHPAVQWidget@@@Z @ 5455 NONAME ; int QTabWidget::indexOf(class QWidget *) const + ??_EQStringListModel@@UAE@I@Z @ 5456 NONAME ; QStringListModel::~QStringListModel(unsigned int) + ?setFocus@QTextControl@@QAEX_NW4FocusReason@Qt@@@Z @ 5457 NONAME ; void QTextControl::setFocus(bool, enum Qt::FocusReason) + ?isIndexHidden@QHeaderView@@MBE_NABVQModelIndex@@@Z @ 5458 NONAME ; bool QHeaderView::isIndexHidden(class QModelIndex const &) const + ?getStaticMetaObject@QClipboard@@SAABUQMetaObject@@XZ @ 5459 NONAME ; struct QMetaObject const & QClipboard::getStaticMetaObject(void) + ?text@QTextFragment@@QBE?AVQString@@XZ @ 5460 NONAME ; class QString QTextFragment::text(void) const + ?textColor@QTextEdit@@QBE?AVQColor@@XZ @ 5461 NONAME ; class QColor QTextEdit::textColor(void) const + ?trUtf8@QUndoView@@SA?AVQString@@PBD0H@Z @ 5462 NONAME ; class QString QUndoView::trUtf8(char const *, char const *, int) + ?opacity@QPaintEngineState@@QBEMXZ @ 5463 NONAME ; float QPaintEngineState::opacity(void) const + ?fileDialogSetDirectory@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@ABVQString@@@Z @ 5464 NONAME ; void QGuiPlatformPlugin::fileDialogSetDirectory(class QFileDialog *, class QString const &) + ??0QApplication@@QAE@AAHPAPADH@Z @ 5465 NONAME ; QApplication::QApplication(int &, char * *, int) + ?dragMoveEvent@QLineEdit@@MAEXPAVQDragMoveEvent@@@Z @ 5466 NONAME ; void QLineEdit::dragMoveEvent(class QDragMoveEvent *) + ?autoRepeat@QAbstractButton@@QBE_NXZ @ 5467 NONAME ; bool QAbstractButton::autoRepeat(void) const + ?tr@QAbstractSpinBox@@SA?AVQString@@PBD0H@Z @ 5468 NONAME ; class QString QAbstractSpinBox::tr(char const *, char const *, int) + ?setRange@QDoubleValidator@@UAEXNNH@Z @ 5469 NONAME ; void QDoubleValidator::setRange(double, double, int) + ?resizeEvent@QCalendarWidget@@MAEXPAVQResizeEvent@@@Z @ 5470 NONAME ; void QCalendarWidget::resizeEvent(class QResizeEvent *) + ?prepareBuffer@QRasterWindowSurface@@AAEXW4Format@QImage@@PAVQWidget@@@Z @ 5471 NONAME ; void QRasterWindowSurface::prepareBuffer(enum QImage::Format, class QWidget *) + ?mimeData@QListWidget@@MBEPAVQMimeData@@V?$QList@PAVQListWidgetItem@@@@@Z @ 5472 NONAME ; class QMimeData * QListWidget::mimeData(class QList) const + ?repaint@QWidget@@QAEXABVQRegion@@@Z @ 5473 NONAME ; void QWidget::repaint(class QRegion const &) + ?cursorWordBackward@QLineControl@@QAEX_N@Z @ 5474 NONAME ; void QLineControl::cursorWordBackward(bool) + ??0QToolBar@@QAE@PAVQWidget@@@Z @ 5475 NONAME ; QToolBar::QToolBar(class QWidget *) + ?qt_metacast@QStyledItemDelegate@@UAEPAXPBD@Z @ 5476 NONAME ; void * QStyledItemDelegate::qt_metacast(char const *) + ?genericMapFromScene@QGraphicsItemPrivate@@QBE?AVQPointF@@ABV2@PBVQWidget@@@Z @ 5477 NONAME ; class QPointF QGraphicsItemPrivate::genericMapFromScene(class QPointF const &, class QWidget const *) const + ?setRect@TouchPoint@QTouchEvent@@QAEXABVQRectF@@@Z @ 5478 NONAME ; void QTouchEvent::TouchPoint::setRect(class QRectF const &) + ?currentItemChanged@QTreeWidget@@IAEXPAVQTreeWidgetItem@@0@Z @ 5479 NONAME ; void QTreeWidget::currentItemChanged(class QTreeWidgetItem *, class QTreeWidgetItem *) + ?closeAllWindows@QWorkspace@@QAEXXZ @ 5480 NONAME ; void QWorkspace::closeAllWindows(void) + ?itemData@QComboBox@@QBE?AVQVariant@@HH@Z @ 5481 NONAME ; class QVariant QComboBox::itemData(int, int) const + ?RestoreMenuL@QS60MainAppUi@@UAEXPAVCCoeControl@@HW4TMenuType@MEikMenuObserver@@@Z @ 5482 NONAME ; void QS60MainAppUi::RestoreMenuL(class CCoeControl *, int, enum MEikMenuObserver::TMenuType) + ?depth@QImage@@QBEHXZ @ 5483 NONAME ; int QImage::depth(void) const + ?setStrength@QGraphicsGrayscaleEffect@@QAEXM@Z @ 5484 NONAME ; void QGraphicsGrayscaleEffect::setStrength(float) + ?setPasswordCharacter@QLineControl@@QAEXABVQChar@@@Z @ 5485 NONAME ; void QLineControl::setPasswordCharacter(class QChar const &) + ?tr@QMdiSubWindow@@SA?AVQString@@PBD0H@Z @ 5486 NONAME ; class QString QMdiSubWindow::tr(char const *, char const *, int) + ?currentIndex@QDataWidgetMapper@@QBEHXZ @ 5487 NONAME ; int QDataWidgetMapper::currentIndex(void) const + ?setFont@QApplication@@SAXABVQFont@@PBD@Z @ 5488 NONAME ; void QApplication::setFont(class QFont const &, char const *) + ?resized@QDesktopWidget@@IAEXH@Z @ 5489 NONAME ; void QDesktopWidget::resized(int) + ?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@1@Z @ 5490 NONAME ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *) const + ??BQVector2D@@QBE?AVQVariant@@XZ @ 5491 NONAME ; QVector2D::operator class QVariant(void) const + ?qt_metacall@QTreeWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5492 NONAME ; int QTreeWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setSelectable@QStandardItem@@QAEX_N@Z @ 5493 NONAME ; void QStandardItem::setSelectable(bool) + ?d_func@QGraphicsLayoutItem@@ABEPBVQGraphicsLayoutItemPrivate@@XZ @ 5494 NONAME ; class QGraphicsLayoutItemPrivate const * QGraphicsLayoutItem::d_func(void) const + ?toHtml@QTextEdit@@QBE?AVQString@@XZ @ 5495 NONAME ; class QString QTextEdit::toHtml(void) const + ?textChanged@QLineEdit@@IAEXABVQString@@@Z @ 5496 NONAME ; void QLineEdit::textChanged(class QString const &) + ??_EQTextObjectInterface@@UAE@I@Z @ 5497 NONAME ; QTextObjectInterface::~QTextObjectInterface(unsigned int) + ?setColumns@QTextTableFormat@@QAEXH@Z @ 5498 NONAME ; void QTextTableFormat::setColumns(int) + ?screenGeometry@QWidgetPrivate@@SA?AVQRect@@PBVQWidget@@@Z @ 5499 NONAME ; class QRect QWidgetPrivate::screenGeometry(class QWidget const *) + ?extension@QGraphicsSimpleTextItem@@MBE?AVQVariant@@ABV2@@Z @ 5500 NONAME ; class QVariant QGraphicsSimpleTextItem::extension(class QVariant const &) const + ?findData@QComboBox@@QBEHABVQVariant@@HV?$QFlags@W4MatchFlag@Qt@@@@@Z @ 5501 NONAME ; int QComboBox::findData(class QVariant const &, int, class QFlags) const + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPoint@@@Z @ 5502 NONAME ; class QList QGraphicsView::items(class QPoint const &) const + ?assign@QKeySequence@@AAEHABVQString@@@Z @ 5503 NONAME ; int QKeySequence::assign(class QString const &) + ?hasFormats@QTextEngine@@QBE_NXZ @ 5504 NONAME ; bool QTextEngine::hasFormats(void) const + ?setNumColumns@QTextLine@@QAEXHM@Z @ 5505 NONAME ; void QTextLine::setNumColumns(int, float) + ?trUtf8@QPixmapConvolutionFilter@@SA?AVQString@@PBD0H@Z @ 5506 NONAME ; class QString QPixmapConvolutionFilter::trUtf8(char const *, char const *, int) + ?GetScreenCoordinatesForFepL@QCoeFepInputContext@@UBEXAAVTPoint@@AAH1H@Z @ 5507 NONAME ; void QCoeFepInputContext::GetScreenCoordinatesForFepL(class TPoint &, int &, int &, int) const + ?visualRect@QHeaderView@@MBE?AVQRect@@ABVQModelIndex@@@Z @ 5508 NONAME ; class QRect QHeaderView::visualRect(class QModelIndex const &) const + ?minimumSize@QStackedLayout@@UBE?AVQSize@@XZ @ 5509 NONAME ; class QSize QStackedLayout::minimumSize(void) const + ?keyPressEvent@QGraphicsView@@MAEXPAVQKeyEvent@@@Z @ 5510 NONAME ; void QGraphicsView::keyPressEvent(class QKeyEvent *) + ?supportedDropActions@QTreeWidget@@MBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 5511 NONAME ; class QFlags QTreeWidget::supportedDropActions(void) const + ?trUtf8@QFrame@@SA?AVQString@@PBD0@Z @ 5512 NONAME ; class QString QFrame::trUtf8(char const *, char const *) + ?changeEvent@QFontDialog@@MAEXPAVQEvent@@@Z @ 5513 NONAME ; void QFontDialog::changeEvent(class QEvent *) + ?setOption@QFileDialog@@QAEXW4Option@1@_N@Z @ 5514 NONAME ; void QFileDialog::setOption(enum QFileDialog::Option, bool) + ?setMaxCount@QComboBox@@QAEXH@Z @ 5515 NONAME ; void QComboBox::setMaxCount(int) + ?fromTranslate@QTransform@@SA?AV1@MM@Z @ 5516 NONAME ; class QTransform QTransform::fromTranslate(float, float) + ?validate@QTextEngine@@QBEXXZ @ 5517 NONAME ; void QTextEngine::validate(void) const + ?staticMetaObject@QListWidget@@2UQMetaObject@@B @ 5518 NONAME ; struct QMetaObject const QListWidget::staticMetaObject + ?trUtf8@QAbstractTextDocumentLayout@@SA?AVQString@@PBD0H@Z @ 5519 NONAME ; class QString QAbstractTextDocumentLayout::trUtf8(char const *, char const *, int) + ?findIntersections@QBezier@@SA?AV?$QVector@U?$QPair@MM@@@@ABV1@0@Z @ 5520 NONAME ; class QVector > QBezier::findIntersections(class QBezier const &, class QBezier const &) + ??0QPixmapFilter@@IAE@W4FilterType@0@PAVQObject@@@Z @ 5521 NONAME ; QPixmapFilter::QPixmapFilter(enum QPixmapFilter::FilterType, class QObject *) + ??0QTreeWidgetItemIterator@@QAE@PAVQTreeWidgetItem@@V?$QFlags@W4IteratorFlag@QTreeWidgetItemIterator@@@@@Z @ 5522 NONAME ; QTreeWidgetItemIterator::QTreeWidgetItemIterator(class QTreeWidgetItem *, class QFlags) + ?colorSpec@QApplication@@SAHXZ @ 5523 NONAME ; int QApplication::colorSpec(void) + ?fontItalic@QTextEdit@@QBE_NXZ @ 5524 NONAME ; bool QTextEdit::fontItalic(void) const + ?tr@QGraphicsSystemPlugin@@SA?AVQString@@PBD0@Z @ 5525 NONAME ; class QString QGraphicsSystemPlugin::tr(char const *, char const *) + ??1QStyleOptionTabV2@@QAE@XZ @ 5526 NONAME ; QStyleOptionTabV2::~QStyleOptionTabV2(void) + ??1QTextList@@UAE@XZ @ 5527 NONAME ; QTextList::~QTextList(void) + ?contains@QGraphicsItem@@UBE_NABVQPointF@@@Z @ 5528 NONAME ; bool QGraphicsItem::contains(class QPointF const &) const + ?setFont@QGraphicsSimpleTextItem@@QAEXABVQFont@@@Z @ 5529 NONAME ; void QGraphicsSimpleTextItem::setFont(class QFont const &) + ?isWrapping@QListView@@QBE_NXZ @ 5530 NONAME ; bool QListView::isWrapping(void) const + ?mouseMoveEvent@QTabBar@@MAEXPAVQMouseEvent@@@Z @ 5531 NONAME ; void QTabBar::mouseMoveEvent(class QMouseEvent *) + ?origin@QGraphicsRotation@@QBE?AVQVector3D@@XZ @ 5532 NONAME ; class QVector3D QGraphicsRotation::origin(void) const + ?intersect@QRegion@@QBE?AV1@ABVQRect@@@Z @ 5533 NONAME ; class QRegion QRegion::intersect(class QRect const &) const + ??1QHelpEvent@@UAE@XZ @ 5534 NONAME ; QHelpEvent::~QHelpEvent(void) + ?setFontKerning@QTextCharFormat@@QAEX_N@Z @ 5535 NONAME ; void QTextCharFormat::setFontKerning(bool) + ?setFontUnderline@QTextEdit@@QAEX_N@Z @ 5536 NONAME ; void QTextEdit::setFontUnderline(bool) + ?reset@QListView@@UAEXXZ @ 5537 NONAME ; void QListView::reset(void) + ?setFont@QTableWidgetItem@@QAEXABVQFont@@@Z @ 5538 NONAME ; void QTableWidgetItem::setFont(class QFont const &) + ?metaObject@QGesture@@UBEPBUQMetaObject@@XZ @ 5539 NONAME ; struct QMetaObject const * QGesture::metaObject(void) const + ?toolTip@QAction@@QBE?AVQString@@XZ @ 5540 NONAME ; class QString QAction::toolTip(void) const + ?setLastPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 5541 NONAME ; void QTouchEvent::TouchPoint::setLastPos(class QPointF const &) + ?highlight@QPalette@@QBEABVQBrush@@XZ @ 5542 NONAME ; class QBrush const & QPalette::highlight(void) const + ?setStartScenePos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 5543 NONAME ; void QTouchEvent::TouchPoint::setStartScenePos(class QPointF const &) + ?setSegmentStyle@QLCDNumber@@QAEXW4SegmentStyle@1@@Z @ 5544 NONAME ; void QLCDNumber::setSegmentStyle(enum QLCDNumber::SegmentStyle) + ?effectiveWinId@QWidget@@QBEPAVCCoeControl@@XZ @ 5545 NONAME ; class CCoeControl * QWidget::effectiveWinId(void) const + ?convertTo@QColor@@QBE?AV1@W4Spec@1@@Z @ 5546 NONAME ; class QColor QColor::convertTo(enum QColor::Spec) const + ?window@QWidget@@QBEPAV1@XZ @ 5547 NONAME ; class QWidget * QWidget::window(void) const + ?dropMimeData@QFileSystemModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 5548 NONAME ; bool QFileSystemModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?saveStateRequest@QApplication@@IAEXAAVQSessionManager@@@Z @ 5549 NONAME ; void QApplication::saveStateRequest(class QSessionManager &) + ??5@YAAAVQDataStream@@AAV0@AAVQTextLength@@@Z @ 5550 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTextLength &) + ??_EQDialogButtonBox@@UAE@I@Z @ 5551 NONAME ; QDialogButtonBox::~QDialogButtonBox(unsigned int) + ?setMaximum@QProgressBar@@QAEXH@Z @ 5552 NONAME ; void QProgressBar::setMaximum(int) + ?setSelectionMode@QAbstractItemView@@QAEXW4SelectionMode@1@@Z @ 5553 NONAME ; void QAbstractItemView::setSelectionMode(enum QAbstractItemView::SelectionMode) + ?lastScenePos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 5554 NONAME ; class QPointF QTouchEvent::TouchPoint::lastScenePos(void) const + ??1QPolygon@@QAE@XZ @ 5555 NONAME ; QPolygon::~QPolygon(void) + ?rowCount@QProxyModel@@UBEHABVQModelIndex@@@Z @ 5556 NONAME ; int QProxyModel::rowCount(class QModelIndex const &) const + ?rect@QGraphicsRectItem@@QBE?AVQRectF@@XZ @ 5557 NONAME ; class QRectF QGraphicsRectItem::rect(void) const + ?drawLines@QPaintEngine@@UAEXPBVQLine@@H@Z @ 5558 NONAME ; void QPaintEngine::drawLines(class QLine const *, int) + ?undoAvailable@QTextDocument@@IAEX_N@Z @ 5559 NONAME ; void QTextDocument::undoAvailable(bool) + ?isNull@QVector4D@@QBE_NXZ @ 5560 NONAME ; bool QVector4D::isNull(void) const + ?setColorSpec@QApplication@@SAXH@Z @ 5561 NONAME ; void QApplication::setColorSpec(int) + ?widget@QGestureEvent@@QBEPAVQWidget@@XZ @ 5562 NONAME ; class QWidget * QGestureEvent::widget(void) const + ?hsvHue@QColor@@QBEHXZ @ 5563 NONAME ; int QColor::hsvHue(void) const + ?staticMetaObject@QSortFilterProxyModel@@2UQMetaObject@@B @ 5564 NONAME ; struct QMetaObject const QSortFilterProxyModel::staticMetaObject + ?activatedAmbiguously@QShortcut@@IAEXXZ @ 5565 NONAME ; void QShortcut::activatedAmbiguously(void) + ?contentsMargins@QWidget@@QBE?AVQMargins@@XZ @ 5566 NONAME ; class QMargins QWidget::contentsMargins(void) const + ?d_func@QGraphicsAnchor@@ABEPBVQGraphicsAnchorPrivate@@XZ @ 5567 NONAME ; class QGraphicsAnchorPrivate const * QGraphicsAnchor::d_func(void) const + ?addPixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 5568 NONAME ; void QImagePixmapCleanupHooks::addPixmapModificationHook(void (*)(class QPixmap *)) + ?testOption@QFontDialog@@QBE_NW4FontDialogOption@1@@Z @ 5569 NONAME ; bool QFontDialog::testOption(enum QFontDialog::FontDialogOption) const + ?trUtf8@QGraphicsTransform@@SA?AVQString@@PBD0H@Z @ 5570 NONAME ; class QString QGraphicsTransform::trUtf8(char const *, char const *, int) + ?endNativePainting@QPaintEngineEx@@UAEXXZ @ 5571 NONAME ; void QPaintEngineEx::endNativePainting(void) + ?overwriteMode@QPlainTextEdit@@QBE_NXZ @ 5572 NONAME ; bool QPlainTextEdit::overwriteMode(void) const + ?trUtf8@QGraphicsWidget@@SA?AVQString@@PBD0@Z @ 5573 NONAME ; class QString QGraphicsWidget::trUtf8(char const *, char const *) + ?text@QProgressBar@@UBE?AVQString@@XZ @ 5574 NONAME ; class QString QProgressBar::text(void) const + ?itemIcon@QComboBox@@QBE?AVQIcon@@H@Z @ 5575 NONAME ; class QIcon QComboBox::itemIcon(int) const + ?charFormatIndex@QTextFragment@@QBEHXZ @ 5576 NONAME ; int QTextFragment::charFormatIndex(void) const + ?indexAt@QTreeView@@UBE?AVQModelIndex@@ABVQPoint@@@Z @ 5577 NONAME ; class QModelIndex QTreeView::indexAt(class QPoint const &) const + ?anchorAt@QTextEdit@@QBE?AVQString@@ABVQPoint@@@Z @ 5578 NONAME ; class QString QTextEdit::anchorAt(class QPoint const &) const + ?ascent@QFontMetrics@@QBEHXZ @ 5579 NONAME ; int QFontMetrics::ascent(void) const + ?setKeyboardInputInterval@QApplication@@SAXH@Z @ 5580 NONAME ; void QApplication::setKeyboardInputInterval(int) + ?width@QFontMetricsF@@QBEMVQChar@@@Z @ 5581 NONAME ; float QFontMetricsF::width(class QChar) const + ?addSeparator@QMenu@@QAEPAVQAction@@XZ @ 5582 NONAME ; class QAction * QMenu::addSeparator(void) + ?removeAt@QGraphicsGridLayout@@UAEXH@Z @ 5583 NONAME ; void QGraphicsGridLayout::removeAt(int) + ?map@QMatrix@@QBEXHHPAH0@Z @ 5584 NONAME ; void QMatrix::map(int, int, int *, int *) const + ??0QStyleOption@@QAE@HH@Z @ 5585 NONAME ; QStyleOption::QStyleOption(int, int) + ?centerOn@QGraphicsView@@QAEXPBVQGraphicsItem@@@Z @ 5586 NONAME ; void QGraphicsView::centerOn(class QGraphicsItem const *) + ?write@QImageIOHandler@@UAE_NABVQImage@@@Z @ 5587 NONAME ; bool QImageIOHandler::write(class QImage const &) + ??0QPinchGesture@@QAE@PAVQObject@@@Z @ 5588 NONAME ; QPinchGesture::QPinchGesture(class QObject *) + ?rotation@QGraphicsItem@@QBEMXZ @ 5589 NONAME ; float QGraphicsItem::rotation(void) const + ??0QDockWidgetLayout@@QAE@PAVQWidget@@@Z @ 5590 NONAME ; QDockWidgetLayout::QDockWidgetLayout(class QWidget *) + ?glyphMargin@QTextureGlyphCache@@UBEHXZ @ 5591 NONAME ; int QTextureGlyphCache::glyphMargin(void) const + ?isInvisible@QGraphicsItemPrivate@@QBE_NXZ @ 5592 NONAME ; bool QGraphicsItemPrivate::isInvisible(void) const + ?unregisterGestureRecognizer@QApplication@@QAEXW4GestureType@Qt@@@Z @ 5593 NONAME ; void QApplication::unregisterGestureRecognizer(enum Qt::GestureType) + ?removeChild@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 5594 NONAME ; void QGraphicsItemPrivate::removeChild(class QGraphicsItem *) + ?appendRow@QStandardItemModel@@QAEXABV?$QList@PAVQStandardItem@@@@@Z @ 5595 NONAME ; void QStandardItemModel::appendRow(class QList const &) + ?event@QTableWidget@@MAE_NPAVQEvent@@@Z @ 5596 NONAME ; bool QTableWidget::event(class QEvent *) + ?viewMode@QListView@@QBE?AW4ViewMode@1@XZ @ 5597 NONAME ; enum QListView::ViewMode QListView::viewMode(void) const + ?isValid@QColor@@QBE_NXZ @ 5598 NONAME ; bool QColor::isValid(void) const + ?depth@QPixmapData@@QBEHXZ @ 5599 NONAME ; int QPixmapData::depth(void) const + ?createCompatiblePixmapData@QRasterPixmapData@@UBEPAVQPixmapData@@XZ @ 5600 NONAME ; class QPixmapData * QRasterPixmapData::createCompatiblePixmapData(void) const + ?supportsFindBuffer@QClipboard@@QBE_NXZ @ 5601 NONAME ; bool QClipboard::supportsFindBuffer(void) const + ?posF@QMouseEvent@@QBE?AVQPointF@@XZ @ 5602 NONAME ; class QPointF QMouseEvent::posF(void) const + ?lookup@Parser@QCss@@QBE?AW4TokenType@2@XZ @ 5603 NONAME ; enum QCss::TokenType QCss::Parser::lookup(void) const + ?emitLineTo@QStroker@@QAEXMM@Z @ 5604 NONAME ; void QStroker::emitLineTo(float, float) + ?revert@QProxyModel@@UAEXXZ @ 5605 NONAME ; void QProxyModel::revert(void) + ?extraSelections@QTextControl@@QBE?AV?$QList@UExtraSelection@QTextEdit@@@@XZ @ 5606 NONAME ; class QList QTextControl::extraSelections(void) const + ?setStep@QGraphicsItemAnimation@@QAEXM@Z @ 5607 NONAME ; void QGraphicsItemAnimation::setStep(float) + ??0QStyleOptionToolBoxV2@@QAE@XZ @ 5608 NONAME ; QStyleOptionToolBoxV2::QStyleOptionToolBoxV2(void) + ?value@QAbstractSlider@@QBEHXZ @ 5609 NONAME ; int QAbstractSlider::value(void) const + ?lexem@Symbol@QCss@@QBE?AVQString@@XZ @ 5610 NONAME ; class QString QCss::Symbol::lexem(void) const + ?family@QFontInfo@@QBE?AVQString@@XZ @ 5611 NONAME ; class QString QFontInfo::family(void) const + ??0QItemSelectionRange@@QAE@ABVQModelIndex@@@Z @ 5612 NONAME ; QItemSelectionRange::QItemSelectionRange(class QModelIndex const &) + ?isListFormat@QTextFormat@@QBE_NXZ @ 5613 NONAME ; bool QTextFormat::isListFormat(void) const + ?indexChanged@QUndoGroup@@IAEXH@Z @ 5614 NONAME ; void QUndoGroup::indexChanged(int) + ?tr@QProgressDialog@@SA?AVQString@@PBD0@Z @ 5615 NONAME ; class QString QProgressDialog::tr(char const *, char const *) + ?tip@QStatusTipEvent@@QBE?AVQString@@XZ @ 5616 NONAME ; class QString QStatusTipEvent::tip(void) const + ?format@QImageWriter@@QBE?AVQByteArray@@XZ @ 5617 NONAME ; class QByteArray QImageWriter::format(void) const + ?background@QPalette@@QBEABVQBrush@@XZ @ 5618 NONAME ; class QBrush const & QPalette::background(void) const + ?metaObject@QPaintBufferSignalProxy@@UBEPBUQMetaObject@@XZ @ 5619 NONAME ; struct QMetaObject const * QPaintBufferSignalProxy::metaObject(void) const + ?currentChanged@QTabBar@@IAEXH@Z @ 5620 NONAME ; void QTabBar::currentChanged(int) + ?tr@QFileSystemModel@@SA?AVQString@@PBD0H@Z @ 5621 NONAME ; class QString QFileSystemModel::tr(char const *, char const *, int) + ??1QPen@@QAE@XZ @ 5622 NONAME ; QPen::~QPen(void) + ?enterModal@QApplicationPrivate@@SAXPAVQWidget@@@Z @ 5623 NONAME ; void QApplicationPrivate::enterModal(class QWidget *) + ??BQPen@@QBE?AVQVariant@@XZ @ 5624 NONAME ; QPen::operator class QVariant(void) const + ?d_func@QTextBlockGroup@@ABEPBVQTextBlockGroupPrivate@@XZ @ 5625 NONAME ; class QTextBlockGroupPrivate const * QTextBlockGroup::d_func(void) const + ?acceptRichText@QTextControl@@QBE_NXZ @ 5626 NONAME ; bool QTextControl::acceptRichText(void) const + ?changeEvent@QPlainTextEdit@@MAEXPAVQEvent@@@Z @ 5627 NONAME ; void QPlainTextEdit::changeEvent(class QEvent *) + ?documentMode@QMdiArea@@QBE_NXZ @ 5628 NONAME ; bool QMdiArea::documentMode(void) const + ?viewport@QAbstractScrollArea@@QBEPAVQWidget@@XZ @ 5629 NONAME ; class QWidget * QAbstractScrollArea::viewport(void) const + ?trUtf8@QApplication@@SA?AVQString@@PBD0H@Z @ 5630 NONAME ; class QString QApplication::trUtf8(char const *, char const *, int) + ?d_func@QSpinBox@@AAEPAVQSpinBoxPrivate@@XZ @ 5631 NONAME ; class QSpinBoxPrivate * QSpinBox::d_func(void) + ?averageCharWidth@QFontMetricsF@@QBEMXZ @ 5632 NONAME ; float QFontMetricsF::averageCharWidth(void) const + ?drawCursor@QTextLayout@@QBEXPAVQPainter@@ABVQPointF@@HH@Z @ 5633 NONAME ; void QTextLayout::drawCursor(class QPainter *, class QPointF const &, int, int) const + ?mapToScene@QGraphicsView@@QBE?AVQPointF@@HH@Z @ 5634 NONAME ; class QPointF QGraphicsView::mapToScene(int, int) const + ?getStaticMetaObject@QDialogButtonBox@@SAABUQMetaObject@@XZ @ 5635 NONAME ; struct QMetaObject const & QDialogButtonBox::getStaticMetaObject(void) + ?grabKeyboard@QWidget@@QAEXXZ @ 5636 NONAME ; void QWidget::grabKeyboard(void) + ??1QPlainTextEdit@@UAE@XZ @ 5637 NONAME ; QPlainTextEdit::~QPlainTextEdit(void) + ?exec@QMenu@@SAPAVQAction@@V?$QList@PAVQAction@@@@ABVQPoint@@PAV2@PAVQWidget@@@Z @ 5638 NONAME ; class QAction * QMenu::exec(class QList, class QPoint const &, class QAction *, class QWidget *) + ?globalPos@QTabletEvent@@QBEABVQPoint@@XZ @ 5639 NONAME ; class QPoint const & QTabletEvent::globalPos(void) const + ?scroll_sys@QWidgetPrivate@@QAEXHHABVQRect@@@Z @ 5640 NONAME ; void QWidgetPrivate::scroll_sys(int, int, class QRect const &) + ?trUtf8@QCheckBox@@SA?AVQString@@PBD0H@Z @ 5641 NONAME ; class QString QCheckBox::trUtf8(char const *, char const *, int) + ?trUtf8@QVBoxLayout@@SA?AVQString@@PBD0H@Z @ 5642 NONAME ; class QString QVBoxLayout::trUtf8(char const *, char const *, int) + ?shape@QGraphicsWidget@@UBE?AVQPainterPath@@XZ @ 5643 NONAME ; class QPainterPath QGraphicsWidget::shape(void) const + ?setDescription@QCommandLinkButton@@QAEXABVQString@@@Z @ 5644 NONAME ; void QCommandLinkButton::setDescription(class QString const &) + ?isNull@QPicture@@QBE_NXZ @ 5645 NONAME ; bool QPicture::isNull(void) const + ?isIconVisibleInMenu@QAction@@QBE_NXZ @ 5646 NONAME ; bool QAction::isIconVisibleInMenu(void) const + ?transformed@QBitmap@@QBE?AV1@ABVQMatrix@@@Z @ 5647 NONAME ; class QBitmap QBitmap::transformed(class QMatrix const &) const + ?isDetached@QBrush@@QBE_NXZ @ 5648 NONAME ; bool QBrush::isDetached(void) const + ?d_func@QImageIOHandler@@AAEPAVQImageIOHandlerPrivate@@XZ @ 5649 NONAME ; class QImageIOHandlerPrivate * QImageIOHandler::d_func(void) + ?logicalIndexAt@QHeaderView@@QBEHABVQPoint@@@Z @ 5650 NONAME ; int QHeaderView::logicalIndexAt(class QPoint const &) const + ?mousePressEvent@QDateTimeEdit@@MAEXPAVQMouseEvent@@@Z @ 5651 NONAME ; void QDateTimeEdit::mousePressEvent(class QMouseEvent *) + ?format@QProgressBar@@QBE?AVQString@@XZ @ 5652 NONAME ; class QString QProgressBar::format(void) const + ?d_func@QApplication@@ABEPBVQApplicationPrivate@@XZ @ 5653 NONAME ; class QApplicationPrivate const * QApplication::d_func(void) const + ?draw@QPainterReplayer@@QAEXABVQPaintBuffer@@PAVQPainter@@H@Z @ 5654 NONAME ; void QPainterReplayer::draw(class QPaintBuffer const &, class QPainter *, int) + ?activeWindow@QWorkspace@@QBEPAVQWidget@@XZ @ 5655 NONAME ; class QWidget * QWorkspace::activeWindow(void) const + ?scrollContentsBy@QTextEdit@@MAEXHH@Z @ 5656 NONAME ; void QTextEdit::scrollContentsBy(int, int) + ??0QValidator@@QAE@PAVQObject@@@Z @ 5657 NONAME ; QValidator::QValidator(class QObject *) + ?createStandardContextMenu@QTextEdit@@QAEPAVQMenu@@ABVQPoint@@@Z @ 5658 NONAME ; class QMenu * QTextEdit::createStandardContextMenu(class QPoint const &) + ?x@QHelpEvent@@QBEHXZ @ 5659 NONAME ; int QHelpEvent::x(void) const + ?show_helper@QWidgetPrivate@@QAEXXZ @ 5660 NONAME ; void QWidgetPrivate::show_helper(void) + ?selectedIndexes@QTableView@@MBE?AV?$QList@VQModelIndex@@@@XZ @ 5661 NONAME ; class QList QTableView::selectedIndexes(void) const + ?style@QFont@@QBE?AW4Style@1@XZ @ 5662 NONAME ; enum QFont::Style QFont::style(void) const + ?setSelection@QTreeView@@MAEXABVQRect@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 5663 NONAME ; void QTreeView::setSelection(class QRect const &, class QFlags) + ?setWidget@QGraphicsSceneEvent@@QAEXPAVQWidget@@@Z @ 5664 NONAME ; void QGraphicsSceneEvent::setWidget(class QWidget *) + ?play@QPicture@@QAE_NPAVQPainter@@@Z @ 5665 NONAME ; bool QPicture::play(class QPainter *) + ?trUtf8@QGraphicsProxyWidget@@SA?AVQString@@PBD0H@Z @ 5666 NONAME ; class QString QGraphicsProxyWidget::trUtf8(char const *, char const *, int) + ?offset@QPixmapDropShadowFilter@@QBE?AVQPointF@@XZ @ 5667 NONAME ; class QPointF QPixmapDropShadowFilter::offset(void) const + ?overflow@QLCDNumber@@IAEXXZ @ 5668 NONAME ; void QLCDNumber::overflow(void) + ?wordWrap@QListView@@QBE_NXZ @ 5669 NONAME ; bool QListView::wordWrap(void) const + ?trUtf8@QMovie@@SA?AVQString@@PBD0@Z @ 5670 NONAME ; class QString QMovie::trUtf8(char const *, char const *) + ?shapedGlyphs@QTextEngine@@QBE?AUQGlyphLayout@@PBUQScriptItem@@@Z @ 5671 NONAME ; struct QGlyphLayout QTextEngine::shapedGlyphs(struct QScriptItem const *) const + ?rotationAt@QGraphicsItemAnimation@@QBEMM@Z @ 5672 NONAME ; float QGraphicsItemAnimation::rotationAt(float) const + ?setLeftMargin@QTextBlockFormat@@QAEXM@Z @ 5673 NONAME ; void QTextBlockFormat::setLeftMargin(float) + ?hitButton@QCheckBox@@MBE_NABVQPoint@@@Z @ 5674 NONAME ; bool QCheckBox::hitButton(class QPoint const &) const + ?d_func@QDirModel@@ABEPBVQDirModelPrivate@@XZ @ 5675 NONAME ; class QDirModelPrivate const * QDirModel::d_func(void) const + ?verticalStepsPerItem@QAbstractItemView@@IBEHXZ @ 5676 NONAME ; int QAbstractItemView::verticalStepsPerItem(void) const + ?setPixel@QImage@@QAEXHHI@Z @ 5677 NONAME ; void QImage::setPixel(int, int, unsigned int) + ?trUtf8@QTabWidget@@SA?AVQString@@PBD0H@Z @ 5678 NONAME ; class QString QTabWidget::trUtf8(char const *, char const *, int) + ??_EQListWidgetItem@@UAE@I@Z @ 5679 NONAME ; QListWidgetItem::~QListWidgetItem(unsigned int) + ?qt_metacall@QUndoGroup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5680 NONAME ; int QUndoGroup::qt_metacall(enum QMetaObject::Call, int, void * *) + ?ensureCursorVisible@QPlainTextEdit@@QAEXXZ @ 5681 NONAME ; void QPlainTextEdit::ensureCursorVisible(void) + ?shortcutId@QShortcutEvent@@QBEHXZ @ 5682 NONAME ; int QShortcutEvent::shortcutId(void) const + ?createTLExtra@QWidgetPrivate@@QAEXXZ @ 5683 NONAME ; void QWidgetPrivate::createTLExtra(void) + ?takeItem@QListWidget@@QAEPAVQListWidgetItem@@H@Z @ 5684 NONAME ; class QListWidgetItem * QListWidget::takeItem(int) + ?setMask@QPixmap@@QAEXABVQBitmap@@@Z @ 5685 NONAME ; void QPixmap::setMask(class QBitmap const &) + ?setAutoRepeatInterval@QAbstractButton@@QAEXH@Z @ 5686 NONAME ; void QAbstractButton::setAutoRepeatInterval(int) + ?getStaticMetaObject@QSwipeGesture@@SAABUQMetaObject@@XZ @ 5687 NONAME ; struct QMetaObject const & QSwipeGesture::getStaticMetaObject(void) + ??5@YAAAVQDataStream@@AAV0@AAVQMatrix@@@Z @ 5688 NONAME ; class QDataStream & operator>>(class QDataStream &, class QMatrix &) + ?setHorizontalHeader@QTableView@@QAEXPAVQHeaderView@@@Z @ 5689 NONAME ; void QTableView::setHorizontalHeader(class QHeaderView *) + ?metaObject@QS60Style@@UBEPBUQMetaObject@@XZ @ 5690 NONAME ; struct QMetaObject const * QS60Style::metaObject(void) const + ?x@QMouseEvent@@QBEHXZ @ 5691 NONAME ; int QMouseEvent::x(void) const + ?setFilter@QFileSystemModel@@QAEXV?$QFlags@W4Filter@QDir@@@@@Z @ 5692 NONAME ; void QFileSystemModel::setFilter(class QFlags) + ??0QDragEnterEvent@@QAE@ABVQPoint@@V?$QFlags@W4DropAction@Qt@@@@PBVQMimeData@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 5693 NONAME ; QDragEnterEvent::QDragEnterEvent(class QPoint const &, class QFlags, class QMimeData const *, class QFlags, class QFlags) + ?setJoinStyle@QPainterPathStroker@@QAEXW4PenJoinStyle@Qt@@@Z @ 5694 NONAME ; void QPainterPathStroker::setJoinStyle(enum Qt::PenJoinStyle) + ?picture@QPictureIO@@QBEABVQPicture@@XZ @ 5695 NONAME ; class QPicture const & QPictureIO::picture(void) const + ??4QStyleOptionToolBox@@QAEAAV0@ABV0@@Z @ 5696 NONAME ; class QStyleOptionToolBox & QStyleOptionToolBox::operator=(class QStyleOptionToolBox const &) + ?changeEvent@QFileDialog@@MAEXPAVQEvent@@@Z @ 5697 NONAME ; void QFileDialog::changeEvent(class QEvent *) + ??4QStyleOptionSpinBox@@QAEAAV0@ABV0@@Z @ 5698 NONAME ; class QStyleOptionSpinBox & QStyleOptionSpinBox::operator=(class QStyleOptionSpinBox const &) + ?highlighted@QTextBrowser@@IAEXABVQString@@@Z @ 5699 NONAME ; void QTextBrowser::highlighted(class QString const &) + ??0QMessageBox@@QAE@ABVQString@@0W4Icon@0@HHHPAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 5700 NONAME ; QMessageBox::QMessageBox(class QString const &, class QString const &, enum QMessageBox::Icon, int, int, int, class QWidget *, class QFlags) + ?metaObject@QGuiPlatformPlugin@@UBEPBUQMetaObject@@XZ @ 5701 NONAME ; struct QMetaObject const * QGuiPlatformPlugin::metaObject(void) const + ?setMask@QWidget@@QAEXABVQBitmap@@@Z @ 5702 NONAME ; void QWidget::setMask(class QBitmap const &) + ?save@QPicture@@QAE_NABVQString@@PBD@Z @ 5703 NONAME ; bool QPicture::save(class QString const &, char const *) + ?setFocusToAnchor@QTextControl@@QAE_NABVQTextCursor@@@Z @ 5704 NONAME ; bool QTextControl::setFocusToAnchor(class QTextCursor const &) + ?addMenu@QMenuBar@@QAEPAVQMenu@@ABVQIcon@@ABVQString@@@Z @ 5705 NONAME ; class QMenu * QMenuBar::addMenu(class QIcon const &, class QString const &) + ?doubleDecimals@QInputDialog@@QBEHXZ @ 5706 NONAME ; int QInputDialog::doubleDecimals(void) const + ?setColor@QGraphicsColorizeEffect@@QAEXABVQColor@@@Z @ 5707 NONAME ; void QGraphicsColorizeEffect::setColor(class QColor const &) + ?setHorizontalSpacing@QFormLayout@@QAEXH@Z @ 5708 NONAME ; void QFormLayout::setHorizontalSpacing(int) + ?orientation@QHeaderView@@QBE?AW4Orientation@Qt@@XZ @ 5709 NONAME ; enum Qt::Orientation QHeaderView::orientation(void) const + ?removeItemWidget@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 5710 NONAME ; void QTreeWidget::removeItemWidget(class QTreeWidgetItem *, int) + ?isItemHidden@QListWidget@@QBE_NPBVQListWidgetItem@@@Z @ 5711 NONAME ; bool QListWidget::isItemHidden(class QListWidgetItem const *) const + ?checkForAlphaPixels@QImageData@@QBE_NXZ @ 5712 NONAME ; bool QImageData::checkForAlphaPixels(void) const + ?supportsExtension@QGraphicsLineItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 5713 NONAME ; bool QGraphicsLineItem::supportsExtension(enum QGraphicsItem::Extension) const + ?serialNumber@QIcon@@QBEHXZ @ 5714 NONAME ; int QIcon::serialNumber(void) const + ?itemAt@QGraphicsGridLayout@@UBEPAVQGraphicsLayoutItem@@H@Z @ 5715 NONAME ; class QGraphicsLayoutItem * QGraphicsGridLayout::itemAt(int) const + ?ensurePolished@QWidget@@QBEXXZ @ 5716 NONAME ; void QWidget::ensurePolished(void) const + ?setPos@QGraphicsSceneWheelEvent@@QAEXABVQPointF@@@Z @ 5717 NONAME ; void QGraphicsSceneWheelEvent::setPos(class QPointF const &) + ?trUtf8@QDockWidgetLayout@@SA?AVQString@@PBD0@Z @ 5718 NONAME ; class QString QDockWidgetLayout::trUtf8(char const *, char const *) + ?setCurrentWidget@QTabWidget@@QAEXPAVQWidget@@@Z @ 5719 NONAME ; void QTabWidget::setCurrentWidget(class QWidget *) + ?isMinimized@QWidget@@QBE_NXZ @ 5720 NONAME ; bool QWidget::isMinimized(void) const + ?whatsThis@QTableWidgetItem@@QBE?AVQString@@XZ @ 5721 NONAME ; class QString QTableWidgetItem::whatsThis(void) const + ?translated@QPainterPath@@QBE?AV1@MM@Z @ 5722 NONAME ; class QPainterPath QPainterPath::translated(float, float) const + ?createColumn@QColumnView@@MAEPAVQAbstractItemView@@ABVQModelIndex@@@Z @ 5723 NONAME ; class QAbstractItemView * QColumnView::createColumn(class QModelIndex const &) + ?trUtf8@QTableView@@SA?AVQString@@PBD0H@Z @ 5724 NONAME ; class QString QTableView::trUtf8(char const *, char const *, int) + ?setOrientation@QAbstractSlider@@QAEXW4Orientation@Qt@@@Z @ 5725 NONAME ; void QAbstractSlider::setOrientation(enum Qt::Orientation) + ?addText@QPainterPath@@QAEXABVQPointF@@ABVQFont@@ABVQString@@@Z @ 5726 NONAME ; void QPainterPath::addText(class QPointF const &, class QFont const &, class QString const &) + ?isActive@QUndoStack@@QBE_NXZ @ 5727 NONAME ; bool QUndoStack::isActive(void) const + ?isTristate@QStandardItem@@QBE_NXZ @ 5728 NONAME ; bool QStandardItem::isTristate(void) const + ?sizeHint@QInputDialog@@UBE?AVQSize@@XZ @ 5729 NONAME ; class QSize QInputDialog::sizeHint(void) const + ?command@QSymbianEvent@@QBEHXZ @ 5730 NONAME ; int QSymbianEvent::command(void) const + ?qt_metacall@QTimeEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5731 NONAME ; int QTimeEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setScaledContents@QLabel@@QAEX_N@Z @ 5732 NONAME ; void QLabel::setScaledContents(bool) + ?selectNameFilter@QFileDialog@@QAEXABVQString@@@Z @ 5733 NONAME ; void QFileDialog::selectNameFilter(class QString const &) + ?setX@QVector4D@@QAEXM@Z @ 5734 NONAME ; void QVector4D::setX(float) + ?setFlags@QTableWidgetItem@@QAEXV?$QFlags@W4ItemFlag@Qt@@@@@Z @ 5735 NONAME ; void QTableWidgetItem::setFlags(class QFlags) + ??0QVector4D@@QAE@ABVQVector3D@@@Z @ 5736 NONAME ; QVector4D::QVector4D(class QVector3D const &) + ??1QCommonStyle@@UAE@XZ @ 5737 NONAME ; QCommonStyle::~QCommonStyle(void) + ?drawEllipse@QPaintEngineEx@@UAEXABVQRect@@@Z @ 5738 NONAME ; void QPaintEngineEx::drawEllipse(class QRect const &) + ?sectionAt@QDateTimeEdit@@QBE?AW4Section@1@H@Z @ 5739 NONAME ; enum QDateTimeEdit::Section QDateTimeEdit::sectionAt(int) const + ??1QStyleOptionTabBarBaseV2@@QAE@XZ @ 5740 NONAME ; QStyleOptionTabBarBaseV2::~QStyleOptionTabBarBaseV2(void) + ?font@QInputContext@@UBE?AVQFont@@XZ @ 5741 NONAME ; class QFont QInputContext::font(void) const + ?setOpacity@QPainter@@QAEXM@Z @ 5742 NONAME ; void QPainter::setOpacity(float) + ?trUtf8@QSyntaxHighlighter@@SA?AVQString@@PBD0H@Z @ 5743 NONAME ; class QString QSyntaxHighlighter::trUtf8(char const *, char const *, int) + ?setCompleter@QLineControl@@QAEXPBVQCompleter@@@Z @ 5744 NONAME ; void QLineControl::setCompleter(class QCompleter const *) + ??1QDirModel@@UAE@XZ @ 5745 NONAME ; QDirModel::~QDirModel(void) + ?objectType@QTextFormat@@QBEHXZ @ 5746 NONAME ; int QTextFormat::objectType(void) const + ?boundingRect@QGraphicsItemGroup@@UBE?AVQRectF@@XZ @ 5747 NONAME ; class QRectF QGraphicsItemGroup::boundingRect(void) const + ??0QStyleOptionTitleBar@@QAE@ABV0@@Z @ 5748 NONAME ; QStyleOptionTitleBar::QStyleOptionTitleBar(class QStyleOptionTitleBar const &) + ??0QGraphicsRectItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 5749 NONAME ; QGraphicsRectItem::QGraphicsRectItem(class QGraphicsItem *, class QGraphicsScene *) + ?colorTable@QImage@@QBE?AV?$QVector@I@@XZ @ 5750 NONAME ; class QVector QImage::colorTable(void) const + ?render_helper@QWidgetPrivate@@QAEXPAVQPainter@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@@Z @ 5751 NONAME ; void QWidgetPrivate::render_helper(class QPainter *, class QPoint const &, class QRegion const &, class QFlags) + ?getStaticMetaObject@QGraphicsTextItem@@SAABUQMetaObject@@XZ @ 5752 NONAME ; struct QMetaObject const & QGraphicsTextItem::getStaticMetaObject(void) + ?testCombinator@Parser@QCss@@QAE_NXZ @ 5753 NONAME ; bool QCss::Parser::testCombinator(void) + ?childCount@QUndoCommand@@QBEHXZ @ 5754 NONAME ; int QUndoCommand::childCount(void) const + ?qt_metacall@QSplashScreen@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5755 NONAME ; int QSplashScreen::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QDoubleSpinBox@@UAE@XZ @ 5756 NONAME ; QDoubleSpinBox::~QDoubleSpinBox(void) + ?fromData@QImage@@SA?AV1@ABVQByteArray@@PBD@Z @ 5757 NONAME ; class QImage QImage::fromData(class QByteArray const &, char const *) + ?data_ptr@QPen@@QAEAAPAVQPenPrivate@@XZ @ 5758 NONAME ; class QPenPrivate * & QPen::data_ptr(void) + ?setLastScreenPos@QGraphicsSceneHoverEvent@@QAEXABVQPoint@@@Z @ 5759 NONAME ; void QGraphicsSceneHoverEvent::setLastScreenPos(class QPoint const &) + ?sectionAutoResize@QHeaderView@@IAEXHW4ResizeMode@1@@Z @ 5760 NONAME ; void QHeaderView::sectionAutoResize(int, enum QHeaderView::ResizeMode) + ?trUtf8@QMouseEventTransition@@SA?AVQString@@PBD0@Z @ 5761 NONAME ; class QString QMouseEventTransition::trUtf8(char const *, char const *) + ?setIconVisibleInMenu@QAction@@QAEX_N@Z @ 5762 NONAME ; void QAction::setIconVisibleInMenu(bool) + ?cacheMode@QMovie@@QBE?AW4CacheMode@1@XZ @ 5763 NONAME ; enum QMovie::CacheMode QMovie::cacheMode(void) const + ??0QDragMoveEvent@@QAE@ABVQPoint@@V?$QFlags@W4DropAction@Qt@@@@PBVQMimeData@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@W4Type@QEvent@@@Z @ 5764 NONAME ; QDragMoveEvent::QDragMoveEvent(class QPoint const &, class QFlags, class QMimeData const *, class QFlags, class QFlags, enum QEvent::Type) + ?draw@QPixmapConvolutionFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 5765 NONAME ; void QPixmapConvolutionFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?nameFilters@QFileSystemModel@@QBE?AVQStringList@@XZ @ 5766 NONAME ; class QStringList QFileSystemModel::nameFilters(void) const + ?tr@QLayout@@SA?AVQString@@PBD0H@Z @ 5767 NONAME ; class QString QLayout::tr(char const *, char const *, int) + ?moveTab@QTabBar@@QAEXHH@Z @ 5768 NONAME ; void QTabBar::moveTab(int, int) + ?setLayoutMode@QListView@@QAEXW4LayoutMode@1@@Z @ 5769 NONAME ; void QListView::setLayoutMode(enum QListView::LayoutMode) + ?provides@QDropEvent@@UBE_NPBD@Z @ 5770 NONAME ; bool QDropEvent::provides(char const *) const + ?setSizePolicy@QGraphicsLayoutItem@@QAEXABVQSizePolicy@@@Z @ 5771 NONAME ; void QGraphicsLayoutItem::setSizePolicy(class QSizePolicy const &) + ?minimumSize@QWidgetItem@@UBE?AVQSize@@XZ @ 5772 NONAME ; class QSize QWidgetItem::minimumSize(void) const + ?tickInterval@QSlider@@QBEHXZ @ 5773 NONAME ; int QSlider::tickInterval(void) const + ?rotate@QTransform@@QAEAAV1@MW4Axis@Qt@@@Z @ 5774 NONAME ; class QTransform & QTransform::rotate(float, enum Qt::Axis) + ?qt_metacall@QWidgetResizeHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5775 NONAME ; int QWidgetResizeHandler::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mousePressEvent@QSlider@@MAEXPAVQMouseEvent@@@Z @ 5776 NONAME ; void QSlider::mousePressEvent(class QMouseEvent *) + ?itemData@QAbstractProxyModel@@UBE?AV?$QMap@HVQVariant@@@@ABVQModelIndex@@@Z @ 5777 NONAME ; class QMap QAbstractProxyModel::itemData(class QModelIndex const &) const + ?tr@QCommonStyle@@SA?AVQString@@PBD0@Z @ 5778 NONAME ; class QString QCommonStyle::tr(char const *, char const *) + ?addAction@QToolBar@@QAEPAVQAction@@ABVQString@@PBVQObject@@PBD@Z @ 5779 NONAME ; class QAction * QToolBar::addAction(class QString const &, class QObject const *, char const *) + ?cyan@QColor@@QBEHXZ @ 5780 NONAME ; int QColor::cyan(void) const + ?resizeEvent@QPlainTextEdit@@MAEXPAVQResizeEvent@@@Z @ 5781 NONAME ; void QPlainTextEdit::resizeEvent(class QResizeEvent *) + ?tr@QCompleter@@SA?AVQString@@PBD0H@Z @ 5782 NONAME ; class QString QCompleter::tr(char const *, char const *, int) + ?menu@QToolButton@@QBEPAVQMenu@@XZ @ 5783 NONAME ; class QMenu * QToolButton::menu(void) const + ??0QKeySequence@@QAE@ABV0@@Z @ 5784 NONAME ; QKeySequence::QKeySequence(class QKeySequence const &) + ?dragEnterEvent@QTextEdit@@MAEXPAVQDragEnterEvent@@@Z @ 5785 NONAME ; void QTextEdit::dragEnterEvent(class QDragEnterEvent *) + ?fromFile@QPixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 5786 NONAME ; bool QPixmapData::fromFile(class QString const &, char const *, class QFlags) + ?setupViewport@QAbstractScrollArea@@IAEXPAVQWidget@@@Z @ 5787 NONAME ; void QAbstractScrollArea::setupViewport(class QWidget *) + ?update@QGraphicsScene@@QAEXMMMM@Z @ 5788 NONAME ; void QGraphicsScene::update(float, float, float, float) + ?tr@QCommandLinkButton@@SA?AVQString@@PBD0@Z @ 5789 NONAME ; class QString QCommandLinkButton::tr(char const *, char const *) + ?oldState@QWindowStateChangeEvent@@QBE?AV?$QFlags@W4WindowState@Qt@@@@XZ @ 5790 NONAME ; class QFlags QWindowStateChangeEvent::oldState(void) const + ?triggered@QAction@@IAEX_N@Z @ 5791 NONAME ; void QAction::triggered(bool) + ?staticMetaObject@QPlainTextDocumentLayout@@2UQMetaObject@@B @ 5792 NONAME ; struct QMetaObject const QPlainTextDocumentLayout::staticMetaObject + ??0QStyleOptionButton@@QAE@ABV0@@Z @ 5793 NONAME ; QStyleOptionButton::QStyleOptionButton(class QStyleOptionButton const &) + ?metaObject@QSound@@UBEPBUQMetaObject@@XZ @ 5794 NONAME ; struct QMetaObject const * QSound::metaObject(void) const + ?validate@QSpinBox@@MBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 5795 NONAME ; enum QValidator::State QSpinBox::validate(class QString &, int &) const + ?setCapitalization@QFont@@QAEXW4Capitalization@1@@Z @ 5796 NONAME ; void QFont::setCapitalization(enum QFont::Capitalization) + ?redo@QTextControl@@QAEXXZ @ 5797 NONAME ; void QTextControl::redo(void) + ?draw@QGraphicsDropShadowEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 5798 NONAME ; void QGraphicsDropShadowEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?d_func@QStatusBar@@ABEPBVQStatusBarPrivate@@XZ @ 5799 NONAME ; class QStatusBarPrivate const * QStatusBar::d_func(void) const + ?removeItem@QGraphicsScene@@QAEXPAVQGraphicsItem@@@Z @ 5800 NONAME ; void QGraphicsScene::removeItem(class QGraphicsItem *) + ?itemPressed@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 5801 NONAME ; void QListWidget::itemPressed(class QListWidgetItem *) + ??0QStyleOptionFrameV2@@IAE@H@Z @ 5802 NONAME ; QStyleOptionFrameV2::QStyleOptionFrameV2(int) + ?checkState@QStandardItem@@QBE?AW4CheckState@Qt@@XZ @ 5803 NONAME ; enum Qt::CheckState QStandardItem::checkState(void) const + ?trUtf8@QProxyModel@@SA?AVQString@@PBD0H@Z @ 5804 NONAME ; class QString QProxyModel::trUtf8(char const *, char const *, int) + ?reset@QMatrix@@QAEXXZ @ 5805 NONAME ; void QMatrix::reset(void) + ?qt_metacast@QTabWidget@@UAEPAXPBD@Z @ 5806 NONAME ; void * QTabWidget::qt_metacast(char const *) + ?acceptsHoverEvents@QGraphicsItem@@QBE_NXZ @ 5807 NONAME ; bool QGraphicsItem::acceptsHoverEvents(void) const + ?commitCurrentString@QCoeFepInputContext@@AAEX_N@Z @ 5808 NONAME ; void QCoeFepInputContext::commitCurrentString(bool) + ?validate@QIntValidator@@UBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 5809 NONAME ; enum QValidator::State QIntValidator::validate(class QString &, int &) const + ?itemChange@QGraphicsWidget@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 5810 NONAME ; class QVariant QGraphicsWidget::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ?windowFrameEvent@QGraphicsWidget@@MAE_NPAVQEvent@@@Z @ 5811 NONAME ; bool QGraphicsWidget::windowFrameEvent(class QEvent *) + ?triggerAction@QAbstractSlider@@QAEXW4SliderAction@1@@Z @ 5812 NONAME ; void QAbstractSlider::triggerAction(enum QAbstractSlider::SliderAction) + ?setLabelText@QProgressDialog@@QAEXABVQString@@@Z @ 5813 NONAME ; void QProgressDialog::setLabelText(class QString const &) + ?setFilter@QFileDialog@@QAEXABVQString@@@Z @ 5814 NONAME ; void QFileDialog::setFilter(class QString const &) + ?setUndoRedoEnabled@QTextDocument@@QAEX_N@Z @ 5815 NONAME ; void QTextDocument::setUndoRedoEnabled(bool) + ??1QRegExpValidator@@UAE@XZ @ 5816 NONAME ; QRegExpValidator::~QRegExpValidator(void) + ??1QListWidget@@UAE@XZ @ 5817 NONAME ; QListWidget::~QListWidget(void) + ?currentColumnChanged@QItemSelectionModel@@IAEXABVQModelIndex@@0@Z @ 5818 NONAME ; void QItemSelectionModel::currentColumnChanged(class QModelIndex const &, class QModelIndex const &) + ?d_func@QCompleter@@AAEPAVQCompleterPrivate@@XZ @ 5819 NONAME ; class QCompleterPrivate * QCompleter::d_func(void) + ?lastBlock@QTextDocument@@QBE?AVQTextBlock@@XZ @ 5820 NONAME ; class QTextBlock QTextDocument::lastBlock(void) const + ?fill@QPixmap@@QAEXPBVQWidget@@ABVQPoint@@@Z @ 5821 NONAME ; void QPixmap::fill(class QWidget const *, class QPoint const &) + ?unsetExtra@QGraphicsItemPrivate@@QAEXW4Extra@1@@Z @ 5822 NONAME ; void QGraphicsItemPrivate::unsetExtra(enum QGraphicsItemPrivate::Extra) + ?staticMetaObject@QCommandLinkButton@@2UQMetaObject@@B @ 5823 NONAME ; struct QMetaObject const QCommandLinkButton::staticMetaObject + ??0QStyleOptionQ3DockWindow@@IAE@H@Z @ 5824 NONAME ; QStyleOptionQ3DockWindow::QStyleOptionQ3DockWindow(int) + ?matrixAt@QGraphicsItemAnimation@@QBE?AVQMatrix@@M@Z @ 5825 NONAME ; class QMatrix QGraphicsItemAnimation::matrixAt(float) const + ??0QStyleOptionSizeGrip@@IAE@H@Z @ 5826 NONAME ; QStyleOptionSizeGrip::QStyleOptionSizeGrip(int) + ?unsetWindowFrameMargins@QGraphicsWidget@@QAEXXZ @ 5827 NONAME ; void QGraphicsWidget::unsetWindowFrameMargins(void) + ?inputMask@QLineEdit@@QBE?AVQString@@XZ @ 5828 NONAME ; class QString QLineEdit::inputMask(void) const + ?inputCapabilities@QCoeFepInputContext@@QAE?AVTCoeInputCapabilities@@XZ @ 5829 NONAME ; class TCoeInputCapabilities QCoeFepInputContext::inputCapabilities(void) + ?rawValue@QTextLength@@QBEMXZ @ 5830 NONAME ; float QTextLength::rawValue(void) const + ?horizontalOffset@QListView@@MBEHXZ @ 5831 NONAME ; int QListView::horizontalOffset(void) const + ?tr@QPixmapBlurFilter@@SA?AVQString@@PBD0H@Z @ 5832 NONAME ; class QString QPixmapBlurFilter::tr(char const *, char const *, int) + ?isAccelerated@QAbstractSpinBox@@QBE_NXZ @ 5833 NONAME ; bool QAbstractSpinBox::isAccelerated(void) const + ?resizeEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneResizeEvent@@@Z @ 5834 NONAME ; void QGraphicsProxyWidget::resizeEvent(class QGraphicsSceneResizeEvent *) + ??_EQWidgetResizeHandler@@UAE@I@Z @ 5835 NONAME ; QWidgetResizeHandler::~QWidgetResizeHandler(unsigned int) + ?dropMimeData@QStandardItemModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 5836 NONAME ; bool QStandardItemModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?staticMetaObject@QStackedWidget@@2UQMetaObject@@B @ 5837 NONAME ; struct QMetaObject const QStackedWidget::staticMetaObject + ?drawImage@QPainter@@QAEXABVQPoint@@ABVQImage@@@Z @ 5838 NONAME ; void QPainter::drawImage(class QPoint const &, class QImage const &) + ?windowFrameGeometry@QGraphicsWidget@@QBE?AVQRectF@@XZ @ 5839 NONAME ; class QRectF QGraphicsWidget::windowFrameGeometry(void) const + ?saveState@QSplitter@@QBE?AVQByteArray@@XZ @ 5840 NONAME ; class QByteArray QSplitter::saveState(void) const + ??1QListWidgetItem@@UAE@XZ @ 5841 NONAME ; QListWidgetItem::~QListWidgetItem(void) + ??0QDirModel@@QAE@ABVQStringList@@V?$QFlags@W4Filter@QDir@@@@V?$QFlags@W4SortFlag@QDir@@@@PAVQObject@@@Z @ 5842 NONAME ; QDirModel::QDirModel(class QStringList const &, class QFlags, class QFlags, class QObject *) + ??5@YAAAVQDataStream@@AAV0@AAVQPixmap@@@Z @ 5843 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPixmap &) + ?shapeMode@QGraphicsPixmapItem@@QBE?AW4ShapeMode@1@XZ @ 5844 NONAME ; enum QGraphicsPixmapItem::ShapeMode QGraphicsPixmapItem::shapeMode(void) const + ?isDragEnabled@QStandardItem@@QBE_NXZ @ 5845 NONAME ; bool QStandardItem::isDragEnabled(void) const + ?undoAvailable@QTextEdit@@IAEX_N@Z @ 5846 NONAME ; void QTextEdit::undoAvailable(bool) + ?qt_metacast@QLCDNumber@@UAEPAXPBD@Z @ 5847 NONAME ; void * QLCDNumber::qt_metacast(char const *) + ?tr@QProgressDialog@@SA?AVQString@@PBD0H@Z @ 5848 NONAME ; class QString QProgressDialog::tr(char const *, char const *, int) + ?setVisibleHelper@QGraphicsItemPrivate@@QAEX_N00@Z @ 5849 NONAME ; void QGraphicsItemPrivate::setVisibleHelper(bool, bool, bool) + ?setCacheEnabled@QTextLayout@@QAEX_N@Z @ 5850 NONAME ; void QTextLayout::setCacheEnabled(bool) + ??1QComboBox@@UAE@XZ @ 5851 NONAME ; QComboBox::~QComboBox(void) + ?clearLayout@QTextBlock@@QAEXXZ @ 5852 NONAME ; void QTextBlock::clearLayout(void) + ?d_func@QScrollArea@@ABEPBVQScrollAreaPrivate@@XZ @ 5853 NONAME ; class QScrollAreaPrivate const * QScrollArea::d_func(void) const + ?setLineEdit@QAbstractSpinBox@@IAEXPAVQLineEdit@@@Z @ 5854 NONAME ; void QAbstractSpinBox::setLineEdit(class QLineEdit *) + ?event@QWidgetAction@@MAE_NPAVQEvent@@@Z @ 5855 NONAME ; bool QWidgetAction::event(class QEvent *) + ?tr@QMainWindow@@SA?AVQString@@PBD0@Z @ 5856 NONAME ; class QString QMainWindow::tr(char const *, char const *) + ?hslHue@QColor@@QBEHXZ @ 5857 NONAME ; int QColor::hslHue(void) const + ??0QStyleOptionSpinBox@@QAE@XZ @ 5858 NONAME ; QStyleOptionSpinBox::QStyleOptionSpinBox(void) + ??1QMouseEvent@@UAE@XZ @ 5859 NONAME ; QMouseEvent::~QMouseEvent(void) + ?setFormat@QSyntaxHighlighter@@IAEXHHABVQFont@@@Z @ 5860 NONAME ; void QSyntaxHighlighter::setFormat(int, int, class QFont const &) + ?jumpToNextImage@QImageIOHandler@@UAE_NXZ @ 5861 NONAME ; bool QImageIOHandler::jumpToNextImage(void) + ?isReadOnly@QFileSystemModel@@QBE_NXZ @ 5862 NONAME ; bool QFileSystemModel::isReadOnly(void) const + ??0QSplitterHandle@@QAE@W4Orientation@Qt@@PAVQSplitter@@@Z @ 5863 NONAME ; QSplitterHandle::QSplitterHandle(enum Qt::Orientation, class QSplitter *) + ?setMenu@QToolButton@@QAEXPAVQMenu@@@Z @ 5864 NONAME ; void QToolButton::setMenu(class QMenu *) + ?margin@QTextFrameFormat@@QBEMXZ @ 5865 NONAME ; float QTextFrameFormat::margin(void) const + ?setForeground@QListWidgetItem@@QAEXABVQBrush@@@Z @ 5866 NONAME ; void QListWidgetItem::setForeground(class QBrush const &) + ?draw@QGraphicsColorizeEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 5867 NONAME ; void QGraphicsColorizeEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?trUtf8@QLineControl@@SA?AVQString@@PBD0@Z @ 5868 NONAME ; class QString QLineControl::trUtf8(char const *, char const *) + ?rowAt@QTableView@@QBEHH@Z @ 5869 NONAME ; int QTableView::rowAt(int) const + ?mask@QCursor@@QBEPBVQBitmap@@XZ @ 5870 NONAME ; class QBitmap const * QCursor::mask(void) const + ?itemIcon@QToolBox@@QBE?AVQIcon@@H@Z @ 5871 NONAME ; class QIcon QToolBox::itemIcon(int) const + ?setGroup@QUndoView@@QAEXPAVQUndoGroup@@@Z @ 5872 NONAME ; void QUndoView::setGroup(class QUndoGroup *) + ?setMargin@QTextFrameFormat@@QAEXM@Z @ 5873 NONAME ; void QTextFrameFormat::setMargin(float) + ?tr@QShortcut@@SA?AVQString@@PBD0H@Z @ 5874 NONAME ; class QString QShortcut::tr(char const *, char const *, int) + ?menu@QPushButton@@QBEPAVQMenu@@XZ @ 5875 NONAME ; class QMenu * QPushButton::menu(void) const + ?d_func@QKeyEventTransition@@AAEPAVQKeyEventTransitionPrivate@@XZ @ 5876 NONAME ; class QKeyEventTransitionPrivate * QKeyEventTransition::d_func(void) + ?fromPoints@QBezier@@SA?AV1@ABVQPointF@@000@Z @ 5877 NONAME ; class QBezier QBezier::fromPoints(class QPointF const &, class QPointF const &, class QPointF const &, class QPointF const &) + ?drawComplexControl@QWindowsStyle@@UBEXW4ComplexControl@QStyle@@PBVQStyleOptionComplex@@PAVQPainter@@PBVQWidget@@@Z @ 5878 NONAME ; void QWindowsStyle::drawComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPainter *, class QWidget const *) const + ?fillRect@QPainter@@QAEXHHHHW4BrushStyle@Qt@@@Z @ 5879 NONAME ; void QPainter::fillRect(int, int, int, int, enum Qt::BrushStyle) + ?pos@QHelpEvent@@QBEABVQPoint@@XZ @ 5880 NONAME ; class QPoint const & QHelpEvent::pos(void) const + ?resizeSection@QHeaderView@@QAEXHH@Z @ 5881 NONAME ; void QHeaderView::resizeSection(int, int) + ?init@QPainterState@@QAEXPAVQPainter@@@Z @ 5882 NONAME ; void QPainterState::init(class QPainter *) + ?qt_metacall@QRadioButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5883 NONAME ; int QRadioButton::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setLeftPadding@QTextTableCellFormat@@QAEXM@Z @ 5884 NONAME ; void QTextTableCellFormat::setLeftPadding(float) + ?desktop@QApplication@@SAPAVQDesktopWidget@@XZ @ 5885 NONAME ; class QDesktopWidget * QApplication::desktop(void) + ?topLevelItem@QTreeWidget@@QBEPAVQTreeWidgetItem@@H@Z @ 5886 NONAME ; class QTreeWidgetItem * QTreeWidget::topLevelItem(int) const + ?isBlockedByModal@QApplicationPrivate@@SA_NPAVQWidget@@@Z @ 5887 NONAME ; bool QApplicationPrivate::isBlockedByModal(class QWidget *) + ?closeAllSubWindows@QMdiArea@@QAEXXZ @ 5888 NONAME ; void QMdiArea::closeAllSubWindows(void) + ?setForegroundBrush@QGraphicsScene@@QAEXABVQBrush@@@Z @ 5889 NONAME ; void QGraphicsScene::setForegroundBrush(class QBrush const &) + ?paint@QStyledItemDelegate@@UBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 5890 NONAME ; void QStyledItemDelegate::paint(class QPainter *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ??8QTextFragment@@QBE_NABV0@@Z @ 5891 NONAME ; bool QTextFragment::operator==(class QTextFragment const &) const + ?selectionArea@QGraphicsScene@@QBE?AVQPainterPath@@XZ @ 5892 NONAME ; class QPainterPath QGraphicsScene::selectionArea(void) const + ?setCurrentBlockUserData@QSyntaxHighlighter@@IAEXPAVQTextBlockUserData@@@Z @ 5893 NONAME ; void QSyntaxHighlighter::setCurrentBlockUserData(class QTextBlockUserData *) + ??_EQAbstractItemDelegate@@UAE@I@Z @ 5894 NONAME ; QAbstractItemDelegate::~QAbstractItemDelegate(unsigned int) + ?setWindowIconText@QWidget@@QAEXABVQString@@@Z @ 5895 NONAME ; void QWidget::setWindowIconText(class QString const &) + ?eventFilter@QDialog@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 5896 NONAME ; bool QDialog::eventFilter(class QObject *, class QEvent *) + ??0QTextFormatCollection@@QAE@ABV0@@Z @ 5897 NONAME ; QTextFormatCollection::QTextFormatCollection(class QTextFormatCollection const &) + ??0QGraphicsWidget@@IAE@AAVQGraphicsWidgetPrivate@@PAVQGraphicsItem@@PAVQGraphicsScene@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 5898 NONAME ; QGraphicsWidget::QGraphicsWidget(class QGraphicsWidgetPrivate &, class QGraphicsItem *, class QGraphicsScene *, class QFlags) + ?clicked@QAbstractButton@@IAEX_N@Z @ 5899 NONAME ; void QAbstractButton::clicked(bool) + ?type@QPixmapFilter@@QBE?AW4FilterType@1@XZ @ 5900 NONAME ; enum QPixmapFilter::FilterType QPixmapFilter::type(void) const + ?setFlags@QTextOption@@QAEXV?$QFlags@W4Flag@QTextOption@@@@@Z @ 5901 NONAME ; void QTextOption::setFlags(class QFlags) + ?qt_metacall@QStyledItemDelegate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5902 NONAME ; int QStyledItemDelegate::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setMenuRole@QAction@@QAEXW4MenuRole@1@@Z @ 5903 NONAME ; void QAction::setMenuRole(enum QAction::MenuRole) + ?update@QWidget@@QAEXABVQRect@@@Z @ 5904 NONAME ; void QWidget::update(class QRect const &) + ?openUrl@QDesktopServices@@SA_NABVQUrl@@@Z @ 5905 NONAME ; bool QDesktopServices::openUrl(class QUrl const &) + ?setValidator@QLineEdit@@QAEXPBVQValidator@@@Z @ 5906 NONAME ; void QLineEdit::setValidator(class QValidator const *) + ?doResize@QLayoutPrivate@@QAEXABVQSize@@@Z @ 5907 NONAME ; void QLayoutPrivate::doResize(class QSize const &) + ??1QStyleOptionViewItemV2@@QAE@XZ @ 5908 NONAME ; QStyleOptionViewItemV2::~QStyleOptionViewItemV2(void) + ?commitString@QInputMethodEvent@@QBEABVQString@@XZ @ 5909 NONAME ; class QString const & QInputMethodEvent::commitString(void) const + ?trUtf8@QSessionManager@@SA?AVQString@@PBD0H@Z @ 5910 NONAME ; class QString QSessionManager::trUtf8(char const *, char const *, int) + ?minimumHeightForWidth@QBoxLayout@@UBEHH@Z @ 5911 NONAME ; int QBoxLayout::minimumHeightForWidth(int) const + ?tr@QPixmapConvolutionFilter@@SA?AVQString@@PBD0H@Z @ 5912 NONAME ; class QString QPixmapConvolutionFilter::tr(char const *, char const *, int) + ?setTextInteractionFlags@QTextEdit@@QAEXV?$QFlags@W4TextInteractionFlag@Qt@@@@@Z @ 5913 NONAME ; void QTextEdit::setTextInteractionFlags(class QFlags) + ??D@YA?AVQPolygon@@ABV0@ABVQTransform@@@Z @ 5914 NONAME ; class QPolygon operator*(class QPolygon const &, class QTransform const &) + ?margin@QLabel@@QBEHXZ @ 5915 NONAME ; int QLabel::margin(void) const + ?trUtf8@QStyle@@SA?AVQString@@PBD0H@Z @ 5916 NONAME ; class QString QStyle::trUtf8(char const *, char const *, int) + ??0QMatrix4x4@@QAE@ABVQTransform@@@Z @ 5917 NONAME ; QMatrix4x4::QMatrix4x4(class QTransform const &) + ?format@QSyntaxHighlighter@@IBE?AVQTextCharFormat@@H@Z @ 5918 NONAME ; class QTextCharFormat QSyntaxHighlighter::format(int) const + ??_EQItemSelectionRange@@QAE@I@Z @ 5919 NONAME ; QItemSelectionRange::~QItemSelectionRange(unsigned int) + ?tr@QFileDialog@@SA?AVQString@@PBD0H@Z @ 5920 NONAME ; class QString QFileDialog::tr(char const *, char const *, int) + ?isFinalPage@QWizardPage@@QBE_NXZ @ 5921 NONAME ; bool QWizardPage::isFinalPage(void) const + ?currentFont@QTextEdit@@QBE?AVQFont@@XZ @ 5922 NONAME ; class QFont QTextEdit::currentFont(void) const + ?setFont@QTreeWidgetItem@@QAEXHABVQFont@@@Z @ 5923 NONAME ; void QTreeWidgetItem::setFont(int, class QFont const &) + ?subElementRect@QWindowsStyle@@UBE?AVQRect@@W4SubElement@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 5924 NONAME ; class QRect QWindowsStyle::subElementRect(enum QStyle::SubElement, class QStyleOption const *, class QWidget const *) const + ?rightMargin@QTextBlockFormat@@QBEMXZ @ 5925 NONAME ; float QTextBlockFormat::rightMargin(void) const + ?getSfntTable@QFontEngine@@QBE?AVQByteArray@@I@Z @ 5926 NONAME ; class QByteArray QFontEngine::getSfntTable(unsigned int) const + ?timerEvent@QAbstractButton@@MAEXPAVQTimerEvent@@@Z @ 5927 NONAME ; void QAbstractButton::timerEvent(class QTimerEvent *) + ?text@QMessageBox@@QBE?AVQString@@XZ @ 5928 NONAME ; class QString QMessageBox::text(void) const + ?metaObject@QRubberBand@@UBEPBUQMetaObject@@XZ @ 5929 NONAME ; struct QMetaObject const * QRubberBand::metaObject(void) const + ?internalDelete@QLineControl@@AAEX_N@Z @ 5930 NONAME ; void QLineControl::internalDelete(bool) + ??4QStyleOptionDockWidgetV2@@QAEAAV0@ABV0@@Z @ 5931 NONAME ; class QStyleOptionDockWidgetV2 & QStyleOptionDockWidgetV2::operator=(class QStyleOptionDockWidgetV2 const &) + ?polish@QProxyStyle@@UAEXPAVQWidget@@@Z @ 5932 NONAME ; void QProxyStyle::polish(class QWidget *) + ?insertSeparator@QComboBox@@QAEXH@Z @ 5933 NONAME ; void QComboBox::insertSeparator(int) + ?focusInEvent@QWidget@@MAEXPAVQFocusEvent@@@Z @ 5934 NONAME ; void QWidget::focusInEvent(class QFocusEvent *) + ?openPersistentEditor@QAbstractItemView@@QAEXABVQModelIndex@@@Z @ 5935 NONAME ; void QAbstractItemView::openPersistentEditor(class QModelIndex const &) + ?fillRect@QPaintEngineEx@@UAEXABVQRectF@@ABVQColor@@@Z @ 5936 NONAME ; void QPaintEngineEx::fillRect(class QRectF const &, class QColor const &) + ?tr@QSpinBox@@SA?AVQString@@PBD0H@Z @ 5937 NONAME ; class QString QSpinBox::tr(char const *, char const *, int) + ?compositionMode@QPainter@@QBE?AW4CompositionMode@1@XZ @ 5938 NONAME ; enum QPainter::CompositionMode QPainter::compositionMode(void) const + ?setSubTitle@QWizardPage@@QAEXABVQString@@@Z @ 5939 NONAME ; void QWizardPage::setSubTitle(class QString const &) + ?screenGeometry@QDesktopWidget@@QBE?BVQRect@@PBVQWidget@@@Z @ 5940 NONAME ; class QRect const QDesktopWidget::screenGeometry(class QWidget const *) const + ?pixmap@QGraphicsPixmapItem@@QBE?AVQPixmap@@XZ @ 5941 NONAME ; class QPixmap QGraphicsPixmapItem::pixmap(void) const + ?openExternalLinks@QGraphicsTextItem@@QBE_NXZ @ 5942 NONAME ; bool QGraphicsTextItem::openExternalLinks(void) const + ?hasAlpha@QPixmap@@QBE_NXZ @ 5943 NONAME ; bool QPixmap::hasAlpha(void) const + ?takeAt@QGridLayout@@UAEPAVQLayoutItem@@H@Z @ 5944 NONAME ; class QLayoutItem * QGridLayout::takeAt(int) + ?setWindowTitle@QGraphicsWidget@@QAEXABVQString@@@Z @ 5945 NONAME ; void QGraphicsWidget::setWindowTitle(class QString const &) + ?showMenu@QToolButton@@QAEXXZ @ 5946 NONAME ; void QToolButton::showMenu(void) + ?render@QGraphicsView@@QAEXPAVQPainter@@ABVQRectF@@ABVQRect@@W4AspectRatioMode@Qt@@@Z @ 5947 NONAME ; void QGraphicsView::render(class QPainter *, class QRectF const &, class QRect const &, enum Qt::AspectRatioMode) + ?setPixel@QImage@@QAEXABVQPoint@@I@Z @ 5948 NONAME ; void QImage::setPixel(class QPoint const &, unsigned int) + ?qt_metacall@QPixmapConvolutionFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5949 NONAME ; int QPixmapConvolutionFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setVisible@QActionGroup@@QAEX_N@Z @ 5950 NONAME ; void QActionGroup::setVisible(bool) + ?setMetaInformation@QTextDocument@@QAEXW4MetaInformation@1@ABVQString@@@Z @ 5951 NONAME ; void QTextDocument::setMetaInformation(enum QTextDocument::MetaInformation, class QString const &) + ?showNormal@QWidget@@QAEXXZ @ 5952 NONAME ; void QWidget::showNormal(void) + ?setPageStep@QAbstractSlider@@QAEXH@Z @ 5953 NONAME ; void QAbstractSlider::setPageStep(int) + ??XQQuaternion@@QAEAAV0@M@Z @ 5954 NONAME ; class QQuaternion & QQuaternion::operator*=(float) + ?setCapStyle@QPainterPathStroker@@QAEXW4PenCapStyle@Qt@@@Z @ 5955 NONAME ; void QPainterPathStroker::setCapStyle(enum Qt::PenCapStyle) + ?field@QWizard@@QBE?AVQVariant@@ABVQString@@@Z @ 5956 NONAME ; class QVariant QWizard::field(class QString const &) const + ?setWidget@QScrollArea@@QAEXPAVQWidget@@@Z @ 5957 NONAME ; void QScrollArea::setWidget(class QWidget *) + ??ZQVector3D@@QAEAAV0@ABV0@@Z @ 5958 NONAME ; class QVector3D & QVector3D::operator-=(class QVector3D const &) + ?getStaticMetaObject@QUndoView@@SAABUQMetaObject@@XZ @ 5959 NONAME ; struct QMetaObject const & QUndoView::getStaticMetaObject(void) + ?getStaticMetaObject@QWorkspace@@SAABUQMetaObject@@XZ @ 5960 NONAME ; struct QMetaObject const & QWorkspace::getStaticMetaObject(void) + ?hide_helper@QWidgetPrivate@@QAEXXZ @ 5961 NONAME ; void QWidgetPrivate::hide_helper(void) + ?isMovable@QHeaderView@@QBE_NXZ @ 5962 NONAME ; bool QHeaderView::isMovable(void) const + ?overrideWindowState@QWidget@@QAEXV?$QFlags@W4WindowState@Qt@@@@@Z @ 5963 NONAME ; void QWidget::overrideWindowState(class QFlags) + ??XQVector3D@@QAEAAV0@ABV0@@Z @ 5964 NONAME ; class QVector3D & QVector3D::operator*=(class QVector3D const &) + ?drawText@QPainter@@QAEXABVQRectF@@HABVQString@@PAV2@@Z @ 5965 NONAME ; void QPainter::drawText(class QRectF const &, int, class QString const &, class QRectF *) + ?setCmykF@QColor@@QAEXMMMMM@Z @ 5966 NONAME ; void QColor::setCmykF(float, float, float, float, float) + ?movie@QLabel@@QBEPAVQMovie@@XZ @ 5967 NONAME ; class QMovie * QLabel::movie(void) const + ??1QGuiPlatformPlugin@@UAE@XZ @ 5968 NONAME ; QGuiPlatformPlugin::~QGuiPlatformPlugin(void) + ?eraseRect@QPainter@@QAEXABVQRectF@@@Z @ 5969 NONAME ; void QPainter::eraseRect(class QRectF const &) + ?toValueArray@QMatrix4x4@@QBEXPAM@Z @ 5970 NONAME ; void QMatrix4x4::toValueArray(float *) const + ?isLeftToRight@QApplication@@SA_NXZ @ 5971 NONAME ; bool QApplication::isLeftToRight(void) + ?setRowMaximumHeight@QGraphicsGridLayout@@QAEXHM@Z @ 5972 NONAME ; void QGraphicsGridLayout::setRowMaximumHeight(int, float) + ?mapFromItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@ABVQRectF@@@Z @ 5973 NONAME ; class QPolygonF QGraphicsItem::mapFromItem(class QGraphicsItem const *, class QRectF const &) const + ??0QToolButton@@IAE@AAVQToolButtonPrivate@@PAVQWidget@@@Z @ 5974 NONAME ; QToolButton::QToolButton(class QToolButtonPrivate &, class QWidget *) + ?screen@QDesktopWidget@@QAEPAVQWidget@@H@Z @ 5975 NONAME ; class QWidget * QDesktopWidget::screen(int) + ?event@QListView@@MAE_NPAVQEvent@@@Z @ 5976 NONAME ; bool QListView::event(class QEvent *) + ?staticMetaObject@QButtonGroup@@2UQMetaObject@@B @ 5977 NONAME ; struct QMetaObject const QButtonGroup::staticMetaObject + ?setPalette_helper@QApplicationPrivate@@SAXABVQPalette@@PBD_N@Z @ 5978 NONAME ; void QApplicationPrivate::setPalette_helper(class QPalette const &, char const *, bool) + ?open@QProgressDialog@@QAEXPAVQObject@@PBD@Z @ 5979 NONAME ; void QProgressDialog::open(class QObject *, char const *) + ?splitDockWidget@QMainWindow@@QAEXPAVQDockWidget@@0W4Orientation@Qt@@@Z @ 5980 NONAME ; void QMainWindow::splitDockWidget(class QDockWidget *, class QDockWidget *, enum Qt::Orientation) + ??1QTextBlockGroup@@MAE@XZ @ 5981 NONAME ; QTextBlockGroup::~QTextBlockGroup(void) + ?model@QCompleter@@QBEPAVQAbstractItemModel@@XZ @ 5982 NONAME ; class QAbstractItemModel * QCompleter::model(void) const + ?tr@QDockWidgetLayout@@SA?AVQString@@PBD0H@Z @ 5983 NONAME ; class QString QDockWidgetLayout::tr(char const *, char const *, int) + ??4QStyleOptionToolBoxV2@@QAEAAV0@ABVQStyleOptionToolBox@@@Z @ 5984 NONAME ; class QStyleOptionToolBoxV2 & QStyleOptionToolBoxV2::operator=(class QStyleOptionToolBox const &) + ??1QFontEngine@@UAE@XZ @ 5985 NONAME ; QFontEngine::~QFontEngine(void) + ?naturalWidgetPalette@QWidgetPrivate@@QBE?AVQPalette@@I@Z @ 5986 NONAME ; class QPalette QWidgetPrivate::naturalWidgetPalette(unsigned int) const + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@HHHHW4ItemSelectionMode@Qt@@@Z @ 5987 NONAME ; class QList QGraphicsView::items(int, int, int, int, enum Qt::ItemSelectionMode) const + ?setAxis@QGraphicsRotation@@QAEXW4Axis@Qt@@@Z @ 5988 NONAME ; void QGraphicsRotation::setAxis(enum Qt::Axis) + ??1QGraphicsProxyWidget@@UAE@XZ @ 5989 NONAME ; QGraphicsProxyWidget::~QGraphicsProxyWidget(void) + ??_EStyleSelector@QCss@@UAE@I@Z @ 5990 NONAME ; QCss::StyleSelector::~StyleSelector(unsigned int) + ?currentPageChanged@QCalendarWidget@@IAEXHH@Z @ 5991 NONAME ; void QCalendarWidget::currentPageChanged(int, int) + ?cursorToX@QTextLine@@QBEMPAHW4Edge@1@@Z @ 5992 NONAME ; float QTextLine::cursorToX(int *, enum QTextLine::Edge) const + ?arcMoveTo@QPainterPath@@QAEXMMMMM@Z @ 5993 NONAME ; void QPainterPath::arcMoveTo(float, float, float, float, float) + ?dragEnterEvent@QWidget@@MAEXPAVQDragEnterEvent@@@Z @ 5994 NONAME ; void QWidget::dragEnterEvent(class QDragEnterEvent *) + ??1QPanGesture@@UAE@XZ @ 5995 NONAME ; QPanGesture::~QPanGesture(void) + ?clearMaximumDate@QDateTimeEdit@@QAEXXZ @ 5996 NONAME ; void QDateTimeEdit::clearMaximumDate(void) + ?setCapStyle@QStroker@@QAEXW4PenCapStyle@Qt@@@Z @ 5997 NONAME ; void QStroker::setCapStyle(enum Qt::PenCapStyle) + ?mousePressEvent@QSplitterHandle@@MAEXPAVQMouseEvent@@@Z @ 5998 NONAME ; void QSplitterHandle::mousePressEvent(class QMouseEvent *) + ??8QColor@@QBE_NABV0@@Z @ 5999 NONAME ; bool QColor::operator==(class QColor const &) const + ??0QTextLayout@@QAE@ABVQString@@ABVQFont@@PAVQPaintDevice@@@Z @ 6000 NONAME ; QTextLayout::QTextLayout(class QString const &, class QFont const &, class QPaintDevice *) + ?setEnabled@QLayout@@QAEX_N@Z @ 6001 NONAME ; void QLayout::setEnabled(bool) + ?insert@QPaintBufferResource@@QAEXPBVQPaintBufferPrivate@@PAX@Z @ 6002 NONAME ; void QPaintBufferResource::insert(class QPaintBufferPrivate const *, void *) + ??1QStyleOptionFrame@@QAE@XZ @ 6003 NONAME ; QStyleOptionFrame::~QStyleOptionFrame(void) + ?setTextInteractionFlags@QTextControl@@QAEXV?$QFlags@W4TextInteractionFlag@Qt@@@@@Z @ 6004 NONAME ; void QTextControl::setTextInteractionFlags(class QFlags) + ?actions@QActionGroup@@QBE?AV?$QList@PAVQAction@@@@XZ @ 6005 NONAME ; class QList QActionGroup::actions(void) const + ??0QLinearGradient@@QAE@MMMM@Z @ 6006 NONAME ; QLinearGradient::QLinearGradient(float, float, float, float) + ?addSpacerItem@QBoxLayout@@QAEXPAVQSpacerItem@@@Z @ 6007 NONAME ; void QBoxLayout::addSpacerItem(class QSpacerItem *) + ?closeEditor@QAbstractItemView@@MAEXPAVQWidget@@W4EndEditHint@QAbstractItemDelegate@@@Z @ 6008 NONAME ; void QAbstractItemView::closeEditor(class QWidget *, enum QAbstractItemDelegate::EndEditHint) + ?prepareToRender@QWidgetPrivate@@QAE?AVQRegion@@ABV2@V?$QFlags@W4RenderFlag@QWidget@@@@@Z @ 6009 NONAME ; class QRegion QWidgetPrivate::prepareToRender(class QRegion const &, class QFlags) + ??0QColor@@QAE@XZ @ 6010 NONAME ; QColor::QColor(void) + ??1QStyleOptionQ3ListViewItem@@QAE@XZ @ 6011 NONAME ; QStyleOptionQ3ListViewItem::~QStyleOptionQ3ListViewItem(void) + ??1QSpacerItem@@UAE@XZ @ 6012 NONAME ; QSpacerItem::~QSpacerItem(void) + ?setWhatsThis@QTreeWidgetItem@@QAEXHABVQString@@@Z @ 6013 NONAME ; void QTreeWidgetItem::setWhatsThis(int, class QString const &) + ??0QMatrix@@QAE@MMMMMM@Z @ 6014 NONAME ; QMatrix::QMatrix(float, float, float, float, float, float) + ?tr@QPixmapDropShadowFilter@@SA?AVQString@@PBD0@Z @ 6015 NONAME ; class QString QPixmapDropShadowFilter::tr(char const *, char const *) + ?dark@QColor@@QBE?AV1@H@Z @ 6016 NONAME ; class QColor QColor::dark(int) const + ?setBspTreeDepth@QGraphicsScene@@QAEXH@Z @ 6017 NONAME ; void QGraphicsScene::setBspTreeDepth(int) + ?rowCount@QDirModel@@UBEHABVQModelIndex@@@Z @ 6018 NONAME ; int QDirModel::rowCount(class QModelIndex const &) const + ?tr@QProxyModel@@SA?AVQString@@PBD0@Z @ 6019 NONAME ; class QString QProxyModel::tr(char const *, char const *) + ?insert@QPixmapCache@@SA_NABVQString@@ABVQPixmap@@@Z @ 6020 NONAME ; bool QPixmapCache::insert(class QString const &, class QPixmap const &) + ?cursorWordForward@QLineControl@@QAEX_N@Z @ 6021 NONAME ; void QLineControl::cursorWordForward(bool) + ?toHtml@QGraphicsTextItem@@QBE?AVQString@@XZ @ 6022 NONAME ; class QString QGraphicsTextItem::toHtml(void) const + ?setEmptyCachedClipPath@QGraphicsItemPrivate@@QAEXXZ @ 6023 NONAME ; void QGraphicsItemPrivate::setEmptyCachedClipPath(void) + ??0QInputDialog@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 6024 NONAME ; QInputDialog::QInputDialog(class QWidget *, class QFlags) + ?columnIntersectsSelection@QItemSelectionModel@@QBE_NHABVQModelIndex@@@Z @ 6025 NONAME ; bool QItemSelectionModel::columnIntersectsSelection(int, class QModelIndex const &) const + ?value@QPaintBufferResource@@QAEPAXPBVQPaintBufferPrivate@@@Z @ 6026 NONAME ; void * QPaintBufferResource::value(class QPaintBufferPrivate const *) + ?drawForeground@QGraphicsScene@@MAEXPAVQPainter@@ABVQRectF@@@Z @ 6027 NONAME ; void QGraphicsScene::drawForeground(class QPainter *, class QRectF const &) + ?trUtf8@QPushButton@@SA?AVQString@@PBD0@Z @ 6028 NONAME ; class QString QPushButton::trUtf8(char const *, char const *) + ??1QPushButton@@UAE@XZ @ 6029 NONAME ; QPushButton::~QPushButton(void) + ?searchPaths@QTextBrowser@@QBE?AVQStringList@@XZ @ 6030 NONAME ; class QStringList QTextBrowser::searchPaths(void) const + ??_EQPixmapColorizeFilter@@UAE@I@Z @ 6031 NONAME ; QPixmapColorizeFilter::~QPixmapColorizeFilter(unsigned int) + ?customContextMenuRequested@QWidget@@IAEXABVQPoint@@@Z @ 6032 NONAME ; void QWidget::customContextMenuRequested(class QPoint const &) + ?trUtf8@QItemSelectionModel@@SA?AVQString@@PBD0H@Z @ 6033 NONAME ; class QString QItemSelectionModel::trUtf8(char const *, char const *, int) + ?canInsertFromMimeData@QTextControl@@UBE_NPBVQMimeData@@@Z @ 6034 NONAME ; bool QTextControl::canInsertFromMimeData(class QMimeData const *) const + ?setWindowOpacity_sys@QWidgetPrivate@@QAEXM@Z @ 6035 NONAME ; void QWidgetPrivate::setWindowOpacity_sys(float) + ?fixup@QDoubleSpinBox@@UBEXAAVQString@@@Z @ 6036 NONAME ; void QDoubleSpinBox::fixup(class QString &) const + ??0QStyleOptionButton@@IAE@H@Z @ 6037 NONAME ; QStyleOptionButton::QStyleOptionButton(int) + ?isValid@QTextInlineObject@@QBE_NXZ @ 6038 NONAME ; bool QTextInlineObject::isValid(void) const + ?deleteSysExtra@QWidgetPrivate@@QAEXXZ @ 6039 NONAME ; void QWidgetPrivate::deleteSysExtra(void) + ??6@YA?AVQDebug@@V0@W4GraphicsItemChange@QGraphicsItem@@@Z @ 6040 NONAME ; class QDebug operator<<(class QDebug, enum QGraphicsItem::GraphicsItemChange) + ?setPlainText@QTextEdit@@QAEXABVQString@@@Z @ 6041 NONAME ; void QTextEdit::setPlainText(class QString const &) + ?contextMenuEvent@QTextEdit@@MAEXPAVQContextMenuEvent@@@Z @ 6042 NONAME ; void QTextEdit::contextMenuEvent(class QContextMenuEvent *) + ?type@QGraphicsLineItem@@UBEHXZ @ 6043 NONAME ; int QGraphicsLineItem::type(void) const + ?nativeVirtualKey@QKeyEvent@@QBEIXZ @ 6044 NONAME ; unsigned int QKeyEvent::nativeVirtualKey(void) const + ?selectionBehaviorOnRemove@QTabBar@@QBE?AW4SelectionBehavior@1@XZ @ 6045 NONAME ; enum QTabBar::SelectionBehavior QTabBar::selectionBehaviorOnRemove(void) const + ?metaObject@QAbstractSpinBox@@UBEPBUQMetaObject@@XZ @ 6046 NONAME ; struct QMetaObject const * QAbstractSpinBox::metaObject(void) const + ?tr@QGesture@@SA?AVQString@@PBD0H@Z @ 6047 NONAME ; class QString QGesture::tr(char const *, char const *, int) + ?setHeaderData@QSortFilterProxyModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 6048 NONAME ; bool QSortFilterProxyModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ?penNeedsResolving@QPaintEngineState@@QBE_NXZ @ 6049 NONAME ; bool QPaintEngineState::penNeedsResolving(void) const + ?testOption@QFileDialog@@QBE_NW4Option@1@@Z @ 6050 NONAME ; bool QFileDialog::testOption(enum QFileDialog::Option) const + ?open@QDialog@@QAEXXZ @ 6051 NONAME ; void QDialog::open(void) + ?getStaticMetaObject@QPixmapBlurFilter@@SAABUQMetaObject@@XZ @ 6052 NONAME ; struct QMetaObject const & QPixmapBlurFilter::getStaticMetaObject(void) + ?drawText@QPainter@@QAEXABVQPointF@@ABVQString@@HH@Z @ 6053 NONAME ; void QPainter::drawText(class QPointF const &, class QString const &, int, int) + ?menuRole@QAction@@QBE?AW4MenuRole@1@XZ @ 6054 NONAME ; enum QAction::MenuRole QAction::menuRole(void) const + ??0QGraphicsSceneMoveEvent@@QAE@XZ @ 6055 NONAME ; QGraphicsSceneMoveEvent::QGraphicsSceneMoveEvent(void) + ?sizeHint@QScrollArea@@UBE?AVQSize@@XZ @ 6056 NONAME ; class QSize QScrollArea::sizeHint(void) const + ?setStandardButtons@QDialogButtonBox@@QAEXV?$QFlags@W4StandardButton@QDialogButtonBox@@@@@Z @ 6057 NONAME ; void QDialogButtonBox::setStandardButtons(class QFlags) + ?transform@QBrush@@QBE?AVQTransform@@XZ @ 6058 NONAME ; class QTransform QBrush::transform(void) const + ?tr@QGraphicsTextItem@@SA?AVQString@@PBD0@Z @ 6059 NONAME ; class QString QGraphicsTextItem::tr(char const *, char const *) + ?minimum@QSpinBox@@QBEHXZ @ 6060 NONAME ; int QSpinBox::minimum(void) const + ?featuresChanged@QDockWidget@@IAEXV?$QFlags@W4DockWidgetFeature@QDockWidget@@@@@Z @ 6061 NONAME ; void QDockWidget::featuresChanged(class QFlags) + ?triggered@QActionGroup@@IAEXPAVQAction@@@Z @ 6062 NONAME ; void QActionGroup::triggered(class QAction *) + ?drawTextItem@QPainter@@QAEXABVQPointF@@ABVQTextItem@@@Z @ 6063 NONAME ; void QPainter::drawTextItem(class QPointF const &, class QTextItem const &) + ?setVisible@QDialog@@UAEX_N@Z @ 6064 NONAME ; void QDialog::setVisible(bool) + ?rect@QPixmap@@QBE?AVQRect@@XZ @ 6065 NONAME ; class QRect QPixmap::rect(void) const + ?orthonormalInverse@QMatrix4x4@@ABE?AV1@XZ @ 6066 NONAME ; class QMatrix4x4 QMatrix4x4::orthonormalInverse(void) const + ?lineWidth@QFontMetrics@@QBEHXZ @ 6067 NONAME ; int QFontMetrics::lineWidth(void) const + ?tr@QIconEnginePlugin@@SA?AVQString@@PBD0H@Z @ 6068 NONAME ; class QString QIconEnginePlugin::tr(char const *, char const *, int) + ?addTab@QTabBar@@QAEHABVQString@@@Z @ 6069 NONAME ; int QTabBar::addTab(class QString const &) + ?linkHovered@QTextControl@@IAEXABVQString@@@Z @ 6070 NONAME ; void QTextControl::linkHovered(class QString const &) + ?initStyleOption@QToolBar@@IBEXPAVQStyleOptionToolBar@@@Z @ 6071 NONAME ; void QToolBar::initStyleOption(class QStyleOptionToolBar *) const + ?setTextBackgroundColor@QTextEdit@@QAEXABVQColor@@@Z @ 6072 NONAME ; void QTextEdit::setTextBackgroundColor(class QColor const &) + ?headerData@QAbstractProxyModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 6073 NONAME ; class QVariant QAbstractProxyModel::headerData(int, enum Qt::Orientation, int) const + ?styleStrategy@QFont@@QBE?AW4StyleStrategy@1@XZ @ 6074 NONAME ; enum QFont::StyleStrategy QFont::styleStrategy(void) const + ?columnCount@QProxyModel@@UBEHABVQModelIndex@@@Z @ 6075 NONAME ; int QProxyModel::columnCount(class QModelIndex const &) const + ?staticMetaObject@QTextBrowser@@2UQMetaObject@@B @ 6076 NONAME ; struct QMetaObject const QTextBrowser::staticMetaObject + ?boundingRect@QTextLayout@@QBE?AVQRectF@@XZ @ 6077 NONAME ; class QRectF QTextLayout::boundingRect(void) const + ?qt_metacall@QColumnView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6078 NONAME ; int QColumnView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QIntValidator@@SAABUQMetaObject@@XZ @ 6079 NONAME ; struct QMetaObject const & QIntValidator::getStaticMetaObject(void) + ?update@QGraphicsEffectSource@@QAEXXZ @ 6080 NONAME ; void QGraphicsEffectSource::update(void) + ?y@QVector4D@@QBEMXZ @ 6081 NONAME ; float QVector4D::y(void) const + ?drawItemText@QStyle@@UBEXPAVQPainter@@ABVQRect@@HABVQPalette@@_NABVQString@@W4ColorRole@4@@Z @ 6082 NONAME ; void QStyle::drawItemText(class QPainter *, class QRect const &, int, class QPalette const &, bool, class QString const &, enum QPalette::ColorRole) const + ?colorDialogSetCurrentColor@QGuiPlatformPlugin@@UAEXPAVQColorDialog@@ABVQColor@@@Z @ 6083 NONAME ; void QGuiPlatformPlugin::colorDialogSetCurrentColor(class QColorDialog *, class QColor const &) + ?setColor@QPalette@@QAEXW4ColorRole@1@ABVQColor@@@Z @ 6084 NONAME ; void QPalette::setColor(enum QPalette::ColorRole, class QColor const &) + ?qt_metacall@QToolBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6085 NONAME ; int QToolBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setMinimum@QProgressDialog@@QAEXH@Z @ 6086 NONAME ; void QProgressDialog::setMinimum(int) + ?parent@QItemSelectionRange@@QBE?AVQModelIndex@@XZ @ 6087 NONAME ; class QModelIndex QItemSelectionRange::parent(void) const + ?spacing@QGridLayout@@QBEHXZ @ 6088 NONAME ; int QGridLayout::spacing(void) const + ?isActiveWindow@QGraphicsWidget@@QBE_NXZ @ 6089 NONAME ; bool QGraphicsWidget::isActiveWindow(void) const + ?paintEvent@QDateTimeEdit@@MAEXPAVQPaintEvent@@@Z @ 6090 NONAME ; void QDateTimeEdit::paintEvent(class QPaintEvent *) + ?undo@QPlainTextEdit@@QAEXXZ @ 6091 NONAME ; void QPlainTextEdit::undo(void) + ?itemAt@QGraphicsView@@QBEPAVQGraphicsItem@@ABVQPoint@@@Z @ 6092 NONAME ; class QGraphicsItem * QGraphicsView::itemAt(class QPoint const &) const + ?testProperty@Parser@QCss@@QAE_NXZ @ 6093 NONAME ; bool QCss::Parser::testProperty(void) + ?visibilityChanged@QDockWidget@@IAEX_N@Z @ 6094 NONAME ; void QDockWidget::visibilityChanged(bool) + ?getStaticMetaObject@QLayout@@SAABUQMetaObject@@XZ @ 6095 NONAME ; struct QMetaObject const & QLayout::getStaticMetaObject(void) + ?qt_metacall@QLCDNumber@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6096 NONAME ; int QLCDNumber::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@QGesture@@AAEPAVQGesturePrivate@@XZ @ 6097 NONAME ; class QGesturePrivate * QGesture::d_func(void) + ?staticMetaObject@QIconEnginePlugin@@2UQMetaObject@@B @ 6098 NONAME ; struct QMetaObject const QIconEnginePlugin::staticMetaObject + ?trUtf8@QGraphicsBlurEffect@@SA?AVQString@@PBD0H@Z @ 6099 NONAME ; class QString QGraphicsBlurEffect::trUtf8(char const *, char const *, int) + ?setVerticalSpacing@QFormLayout@@QAEXH@Z @ 6100 NONAME ; void QFormLayout::setVerticalSpacing(int) + ?currentColumn@QTableWidget@@QBEHXZ @ 6101 NONAME ; int QTableWidget::currentColumn(void) const + ??0QMatrix4x4@@QAE@ABV0@@Z @ 6102 NONAME ; QMatrix4x4::QMatrix4x4(class QMatrix4x4 const &) + ?isCopyOf@QPalette@@QBE_NABV1@@Z @ 6103 NONAME ; bool QPalette::isCopyOf(class QPalette const &) const + ?screenNumber@QDesktopWidget@@QBEHPBVQWidget@@@Z @ 6104 NONAME ; int QDesktopWidget::screenNumber(class QWidget const *) const + ?graphics_system_name@QApplicationPrivate@@2VQString@@A @ 6105 NONAME ; class QString QApplicationPrivate::graphics_system_name + ??_EQPaintEngineExPrivate@@UAE@I@Z @ 6106 NONAME ; QPaintEngineExPrivate::~QPaintEngineExPrivate(unsigned int) + ??0QPolygon@@QAE@ABV?$QVector@VQPoint@@@@@Z @ 6107 NONAME ; QPolygon::QPolygon(class QVector const &) + ?wordWrapMode@QTextEdit@@QBE?AW4WrapMode@QTextOption@@XZ @ 6108 NONAME ; enum QTextOption::WrapMode QTextEdit::wordWrapMode(void) const + ?columnCount@QTableWidget@@QBEHXZ @ 6109 NONAME ; int QTableWidget::columnCount(void) const + ?ortho@QMatrix4x4@@QAEAAV1@ABVQRectF@@@Z @ 6110 NONAME ; class QMatrix4x4 & QMatrix4x4::ortho(class QRectF const &) + ?open@QFontDialog@@QAEXPAVQObject@@PBD@Z @ 6111 NONAME ; void QFontDialog::open(class QObject *, char const *) + ?tr@QGridLayout@@SA?AVQString@@PBD0H@Z @ 6112 NONAME ; class QString QGridLayout::tr(char const *, char const *, int) + ?flags@QStandardItem@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 6113 NONAME ; class QFlags QStandardItem::flags(void) const + ?mouseMoveEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 6114 NONAME ; void QGraphicsScene::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?keyPressEvent@QMdiSubWindow@@MAEXPAVQKeyEvent@@@Z @ 6115 NONAME ; void QMdiSubWindow::keyPressEvent(class QKeyEvent *) + ?drawRoundRect@QPainter@@QAEXABVQRect@@HH@Z @ 6116 NONAME ; void QPainter::drawRoundRect(class QRect const &, int, int) + ?setPlainText@QTextControl@@QAEXABVQString@@@Z @ 6117 NONAME ; void QTextControl::setPlainText(class QString const &) + ?setHeaderData@QAbstractProxyModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 6118 NONAME ; bool QAbstractProxyModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ?getStaticMetaObject@QPlainTextEdit@@SAABUQMetaObject@@XZ @ 6119 NONAME ; struct QMetaObject const & QPlainTextEdit::getStaticMetaObject(void) + ?themeSearchPaths@QIcon@@SA?AVQStringList@@XZ @ 6120 NONAME ; class QStringList QIcon::themeSearchPaths(void) + ?setFontItalic@QTextCharFormat@@QAEX_N@Z @ 6121 NONAME ; void QTextCharFormat::setFontItalic(bool) + ?changeEvent@QToolButton@@MAEXPAVQEvent@@@Z @ 6122 NONAME ; void QToolButton::changeEvent(class QEvent *) + ?isInteractive@QGraphicsView@@QBE_NXZ @ 6123 NONAME ; bool QGraphicsView::isInteractive(void) const + ?size@QTextControl@@QBE?AVQSizeF@@XZ @ 6124 NONAME ; class QSizeF QTextControl::size(void) const + ?staticMetaObject@QEventDispatcherS60@@2UQMetaObject@@B @ 6125 NONAME ; struct QMetaObject const QEventDispatcherS60::staticMetaObject + ?isFloating@QDockWidget@@QBE_NXZ @ 6126 NONAME ; bool QDockWidget::isFloating(void) const + ?columnAt@QTreeView@@QBEHH@Z @ 6127 NONAME ; int QTreeView::columnAt(int) const + ??0QPixmap@@AAE@ABVQSize@@W4Type@0@@Z @ 6128 NONAME ; QPixmap::QPixmap(class QSize const &, enum QPixmap::Type) + ?trUtf8@QAbstractSlider@@SA?AVQString@@PBD0H@Z @ 6129 NONAME ; class QString QAbstractSlider::trUtf8(char const *, char const *, int) + ?setRootIndex@QListView@@UAEXABVQModelIndex@@@Z @ 6130 NONAME ; void QListView::setRootIndex(class QModelIndex const &) + ?itemEditorFactory@QItemDelegate@@QBEPAVQItemEditorFactory@@XZ @ 6131 NONAME ; class QItemEditorFactory * QItemDelegate::itemEditorFactory(void) const + ??0QColumnView@@QAE@PAVQWidget@@@Z @ 6132 NONAME ; QColumnView::QColumnView(class QWidget *) + ?mousePressEvent@QSizeGrip@@MAEXPAVQMouseEvent@@@Z @ 6133 NONAME ; void QSizeGrip::mousePressEvent(class QMouseEvent *) + ?document@QPlainTextEdit@@QBEPAVQTextDocument@@XZ @ 6134 NONAME ; class QTextDocument * QPlainTextEdit::document(void) const + ?setCheckState@QTableWidgetItem@@QAEXW4CheckState@Qt@@@Z @ 6135 NONAME ; void QTableWidgetItem::setCheckState(enum Qt::CheckState) + ??1QPaintBufferSignalProxy@@UAE@XZ @ 6136 NONAME ; QPaintBufferSignalProxy::~QPaintBufferSignalProxy(void) + ??0QTouchEvent@@QAE@W4Type@QEvent@@W4DeviceType@0@V?$QFlags@W4KeyboardModifier@Qt@@@@V?$QFlags@W4TouchPointState@Qt@@@@ABV?$QList@VTouchPoint@QTouchEvent@@@@@Z @ 6137 NONAME ; QTouchEvent::QTouchEvent(enum QEvent::Type, enum QTouchEvent::DeviceType, class QFlags, class QFlags, class QList const &) + ?setCursorFlashTime@QApplication@@SAXH@Z @ 6138 NONAME ; void QApplication::setCursorFlashTime(int) + ?matrix@QBrush@@QBEABVQMatrix@@XZ @ 6139 NONAME ; class QMatrix const & QBrush::matrix(void) const + ?tr@QGraphicsScale@@SA?AVQString@@PBD0H@Z @ 6140 NONAME ; class QString QGraphicsScale::tr(char const *, char const *, int) + ?setOffset@QPixmapDropShadowFilter@@QAEXMM@Z @ 6141 NONAME ; void QPixmapDropShadowFilter::setOffset(float, float) + ?setModified@QLineEdit@@QAEX_N@Z @ 6142 NONAME ; void QLineEdit::setModified(bool) + ?trUtf8@QAbstractButton@@SA?AVQString@@PBD0@Z @ 6143 NONAME ; class QString QAbstractButton::trUtf8(char const *, char const *) + ?resizeColumnToContents@QTableView@@QAEXH@Z @ 6144 NONAME ; void QTableView::resizeColumnToContents(int) + ?emitMoveTo@QStroker@@QAEXMM@Z @ 6145 NONAME ; void QStroker::emitMoveTo(float, float) + ?valueChanged@QDoubleSpinBox@@IAEXN@Z @ 6146 NONAME ; void QDoubleSpinBox::valueChanged(double) + ??0QButtonGroup@@QAE@PAVQObject@@@Z @ 6147 NONAME ; QButtonGroup::QButtonGroup(class QObject *) + ?palette@QWidget@@QBEABVQPalette@@XZ @ 6148 NONAME ; class QPalette const & QWidget::palette(void) const + ?metaObject@QWorkspace@@UBEPBUQMetaObject@@XZ @ 6149 NONAME ; struct QMetaObject const * QWorkspace::metaObject(void) const + ??1QTextBlockUserData@@UAE@XZ @ 6150 NONAME ; QTextBlockUserData::~QTextBlockUserData(void) + ??_EQPaintBuffer@@UAE@I@Z @ 6151 NONAME ; QPaintBuffer::~QPaintBuffer(unsigned int) + ?isLeftToRight@QWidget@@QBE_NXZ @ 6152 NONAME ; bool QWidget::isLeftToRight(void) const + ?internalUndo@QLineControl@@AAEXH@Z @ 6153 NONAME ; void QLineControl::internalUndo(int) + ?staticMetaObject@QScrollBar@@2UQMetaObject@@B @ 6154 NONAME ; struct QMetaObject const QScrollBar::staticMetaObject + ?setIconProvider@QFileDialog@@QAEXPAVQFileIconProvider@@@Z @ 6155 NONAME ; void QFileDialog::setIconProvider(class QFileIconProvider *) + ?metaObject@QListWidget@@UBEPBUQMetaObject@@XZ @ 6156 NONAME ; struct QMetaObject const * QListWidget::metaObject(void) const + ?text@QTableWidgetItem@@QBE?AVQString@@XZ @ 6157 NONAME ; class QString QTableWidgetItem::text(void) const + ?modifiers@QGraphicsSceneWheelEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 6158 NONAME ; class QFlags QGraphicsSceneWheelEvent::modifiers(void) const + ?tr@QDialogButtonBox@@SA?AVQString@@PBD0H@Z @ 6159 NONAME ; class QString QDialogButtonBox::tr(char const *, char const *, int) + ?mapFromParent@QWidget@@QBE?AVQPoint@@ABV2@@Z @ 6160 NONAME ; class QPoint QWidget::mapFromParent(class QPoint const &) const + ??0QStyleOptionQ3DockWindow@@QAE@XZ @ 6161 NONAME ; QStyleOptionQ3DockWindow::QStyleOptionQ3DockWindow(void) + ?setTotalRotationAngle@QPinchGesture@@QAEXM@Z @ 6162 NONAME ; void QPinchGesture::setTotalRotationAngle(float) + ?midTangent@QBezier@@QBE?AVQLineF@@XZ @ 6163 NONAME ; class QLineF QBezier::midTangent(void) const + ?documentChanged@QPlainTextDocumentLayout@@MAEXHHH@Z @ 6164 NONAME ; void QPlainTextDocumentLayout::documentChanged(int, int, int) + ?listWidget@QListWidgetItem@@QBEPAVQListWidget@@XZ @ 6165 NONAME ; class QListWidget * QListWidgetItem::listWidget(void) const + ?isObscuredBy@QGraphicsItem@@UBE_NPBV1@@Z @ 6166 NONAME ; bool QGraphicsItem::isObscuredBy(class QGraphicsItem const *) const + ?navigateToDirection@QWidgetPrivate@@SA_NW4Direction@1@@Z @ 6167 NONAME ; bool QWidgetPrivate::navigateToDirection(enum QWidgetPrivate::Direction) + ?translate@QRegion@@QAEXHH@Z @ 6168 NONAME ; void QRegion::translate(int, int) + ?setCurrentSection@QDateTimeEdit@@QAEXW4Section@1@@Z @ 6169 NONAME ; void QDateTimeEdit::setCurrentSection(enum QDateTimeEdit::Section) + ?tr@QMenuBar@@SA?AVQString@@PBD0@Z @ 6170 NONAME ; class QString QMenuBar::tr(char const *, char const *) + ?setRootIsDecorated@QTreeView@@QAEX_N@Z @ 6171 NONAME ; void QTreeView::setRootIsDecorated(bool) + ?qt_metacall@QGraphicsGrayscaleEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6172 NONAME ; int QGraphicsGrayscaleEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?worldMatrixEnabled@QPainter@@QBE_NXZ @ 6173 NONAME ; bool QPainter::worldMatrixEnabled(void) const + ??0iterator@QTextBlock@@AAE@PBVQTextDocumentPrivate@@HHH@Z @ 6174 NONAME ; QTextBlock::iterator::iterator(class QTextDocumentPrivate const *, int, int, int) + ?isValid@QTextTableCell@@QBE_NXZ @ 6175 NONAME ; bool QTextTableCell::isValid(void) const + ?modelColumn@QComboBox@@QBEHXZ @ 6176 NONAME ; int QComboBox::modelColumn(void) const + ?getStaticMetaObject@QDateEdit@@SAABUQMetaObject@@XZ @ 6177 NONAME ; struct QMetaObject const & QDateEdit::getStaticMetaObject(void) + ?error@QImageReader@@QBE?AW4ImageReaderError@1@XZ @ 6178 NONAME ; enum QImageReader::ImageReaderError QImageReader::error(void) const + ?d_func@QDial@@ABEPBVQDialPrivate@@XZ @ 6179 NONAME ; class QDialPrivate const * QDial::d_func(void) const + ?indent@QLabel@@QBEHXZ @ 6180 NONAME ; int QLabel::indent(void) const + ?metaObject@QApplication@@UBEPBUQMetaObject@@XZ @ 6181 NONAME ; struct QMetaObject const * QApplication::metaObject(void) const + ?startAutoScroll@QAbstractItemView@@IAEXXZ @ 6182 NONAME ; void QAbstractItemView::startAutoScroll(void) + ?addTab@QTabWidget@@QAEHPAVQWidget@@ABVQIcon@@ABVQString@@@Z @ 6183 NONAME ; int QTabWidget::addTab(class QWidget *, class QIcon const &, class QString const &) + ?d_func@QSizeGrip@@AAEPAVQSizeGripPrivate@@XZ @ 6184 NONAME ; class QSizeGripPrivate * QSizeGrip::d_func(void) + ?staticMetaObject@QPalette@@2UQMetaObject@@B @ 6185 NONAME ; struct QMetaObject const QPalette::staticMetaObject + ??_0QMatrix4x4@@QAEAAV0@M@Z @ 6186 NONAME ; class QMatrix4x4 & QMatrix4x4::operator/=(float) + ?scrollToItem@QTreeWidget@@QAEXPBVQTreeWidgetItem@@W4ScrollHint@QAbstractItemView@@@Z @ 6187 NONAME ; void QTreeWidget::scrollToItem(class QTreeWidgetItem const *, enum QAbstractItemView::ScrollHint) + ?type@QFileSystemModel@@QBE?AVQString@@ABVQModelIndex@@@Z @ 6188 NONAME ; class QString QFileSystemModel::type(class QModelIndex const &) const + ?setPen@QPainter@@QAEXABVQPen@@@Z @ 6189 NONAME ; void QPainter::setPen(class QPen const &) + ?isMove@QWidgetResizeHandler@@ABE_NXZ @ 6190 NONAME ; bool QWidgetResizeHandler::isMove(void) const + ??4QStyleOptionViewItemV4@@QAEAAV0@ABVQStyleOptionViewItem@@@Z @ 6191 NONAME ; class QStyleOptionViewItemV4 & QStyleOptionViewItemV4::operator=(class QStyleOptionViewItem const &) + ?addRow@QFormLayout@@QAEXPAVQWidget@@@Z @ 6192 NONAME ; void QFormLayout::addRow(class QWidget *) + ?event@QTreeWidget@@MAE_NPAVQEvent@@@Z @ 6193 NONAME ; bool QTreeWidget::event(class QEvent *) + ?qt_metacall@QDial@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6194 NONAME ; int QDial::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QStyleOptionTabV3@@QAE@ABV0@@Z @ 6195 NONAME ; QStyleOptionTabV3::QStyleOptionTabV3(class QStyleOptionTabV3 const &) + ?q_func@QWidgetPrivate@@AAEPAVQWidget@@XZ @ 6196 NONAME ; class QWidget * QWidgetPrivate::q_func(void) + ?qt_metacall@QHeaderView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6197 NONAME ; int QHeaderView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?columnViewportPosition@QTreeView@@QBEHH@Z @ 6198 NONAME ; int QTreeView::columnViewportPosition(int) const + ?symbianProcessEvent@QApplication@@QAEHPBVQSymbianEvent@@@Z @ 6199 NONAME ; int QApplication::symbianProcessEvent(class QSymbianEvent const *) + ?d_func@QProgressBar@@ABEPBVQProgressBarPrivate@@XZ @ 6200 NONAME ; class QProgressBarPrivate const * QProgressBar::d_func(void) const + ?qt_metacast@QMenuBar@@UAEPAXPBD@Z @ 6201 NONAME ; void * QMenuBar::qt_metacast(char const *) + ?uniqueId@QTabletEvent@@QBE_JXZ @ 6202 NONAME ; long long QTabletEvent::uniqueId(void) const + ??0QStyleOptionTabWidgetFrame@@QAE@XZ @ 6203 NONAME ; QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(void) + ?textureImage@QBrush@@QBE?AVQImage@@XZ @ 6204 NONAME ; class QImage QBrush::textureImage(void) const + ?setActivationOrder@QMdiArea@@QAEXW4WindowOrder@1@@Z @ 6205 NONAME ; void QMdiArea::setActivationOrder(enum QMdiArea::WindowOrder) + ?event@QApplication@@MAE_NPAVQEvent@@@Z @ 6206 NONAME ; bool QApplication::event(class QEvent *) + ?hasHeightForWidth@QFormLayout@@UBE_NXZ @ 6207 NONAME ; bool QFormLayout::hasHeightForWidth(void) const + ?qt_metacast@QToolButton@@UAEPAXPBD@Z @ 6208 NONAME ; void * QToolButton::qt_metacast(char const *) + ?dragMoveEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 6209 NONAME ; void QGraphicsScene::dragMoveEvent(class QGraphicsSceneDragDropEvent *) + ?fromRgb@QColor@@SA?AV1@I@Z @ 6210 NONAME ; class QColor QColor::fromRgb(unsigned int) + ?text@QImage@@QBE?AVQString@@PBD0@Z @ 6211 NONAME ; class QString QImage::text(char const *, char const *) const + ?blackF@QColor@@QBEMXZ @ 6212 NONAME ; float QColor::blackF(void) const + ??_EQProgressDialog@@UAE@I@Z @ 6213 NONAME ; QProgressDialog::~QProgressDialog(unsigned int) + ?isRedoAvailable@QLineControl@@QBE_NXZ @ 6214 NONAME ; bool QLineControl::isRedoAvailable(void) const + ?metaObject@QFileSystemModel@@UBEPBUQMetaObject@@XZ @ 6215 NONAME ; struct QMetaObject const * QFileSystemModel::metaObject(void) const + ?outputFormatList@QPicture@@SA?AVQStringList@@XZ @ 6216 NONAME ; class QStringList QPicture::outputFormatList(void) + ??D@YA?AVQPolygonF@@ABV0@ABVQMatrix@@@Z @ 6217 NONAME ; class QPolygonF operator*(class QPolygonF const &, class QMatrix const &) + ?setSelectionBehaviorOnRemove@QTabBar@@QAEXW4SelectionBehavior@1@@Z @ 6218 NONAME ; void QTabBar::setSelectionBehaviorOnRemove(enum QTabBar::SelectionBehavior) + ?setItemDelegate@QFileDialog@@QAEXPAVQAbstractItemDelegate@@@Z @ 6219 NONAME ; void QFileDialog::setItemDelegate(class QAbstractItemDelegate *) + ?deleteTLSysExtra@QWidgetPrivate@@QAEXXZ @ 6220 NONAME ; void QWidgetPrivate::deleteTLSysExtra(void) + ?magenta@QColor@@QBEHXZ @ 6221 NONAME ; int QColor::magenta(void) const + ?move@QWidget@@QAEXHH@Z @ 6222 NONAME ; void QWidget::move(int, int) + ?setScaledSize@QImageReader@@QAEXABVQSize@@@Z @ 6223 NONAME ; void QImageReader::setScaledSize(class QSize const &) + ?setItemData@QComboBox@@QAEXHABVQVariant@@H@Z @ 6224 NONAME ; void QComboBox::setItemData(int, class QVariant const &, int) + ?drawBackground@QItemDelegate@@IBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 6225 NONAME ; void QItemDelegate::drawBackground(class QPainter *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?nodeIds@StyleSelector@QCss@@UBE?AVQStringList@@TNodePtr@12@@Z @ 6226 NONAME ; class QStringList QCss::StyleSelector::nodeIds(union QCss::StyleSelector::NodePtr) const + ?statusTip@QAction@@QBE?AVQString@@XZ @ 6227 NONAME ; class QString QAction::statusTip(void) const + ?font@QTextCharFormat@@QBE?AVQFont@@XZ @ 6228 NONAME ; class QFont QTextCharFormat::font(void) const + ?setClipRegion@QPainter@@QAEXABVQRegion@@W4ClipOperation@Qt@@@Z @ 6229 NONAME ; void QPainter::setClipRegion(class QRegion const &, enum Qt::ClipOperation) + ??0QFormLayout@@QAE@PAVQWidget@@@Z @ 6230 NONAME ; QFormLayout::QFormLayout(class QWidget *) + ?drawTiledPixmap@QPaintEngine@@UAEXABVQRectF@@ABVQPixmap@@ABVQPointF@@@Z @ 6231 NONAME ; void QPaintEngine::drawTiledPixmap(class QRectF const &, class QPixmap const &, class QPointF const &) + ??1QTextOption@@QAE@XZ @ 6232 NONAME ; QTextOption::~QTextOption(void) + ?tr@QWindowsStyle@@SA?AVQString@@PBD0H@Z @ 6233 NONAME ; class QString QWindowsStyle::tr(char const *, char const *, int) + ?elidedText@QAbstractItemDelegate@@SA?AVQString@@ABVQFontMetrics@@HW4TextElideMode@Qt@@ABV2@@Z @ 6234 NONAME ; class QString QAbstractItemDelegate::elidedText(class QFontMetrics const &, int, enum Qt::TextElideMode, class QString const &) + ?activatePreviousWindow@QWorkspace@@QAEXXZ @ 6235 NONAME ; void QWorkspace::activatePreviousWindow(void) + ??_EQSizeGrip@@UAE@I@Z @ 6236 NONAME ; QSizeGrip::~QSizeGrip(unsigned int) + ?subControlRect@QS60Style@@UBE?AVQRect@@W4ComplexControl@QStyle@@PBVQStyleOptionComplex@@W4SubControl@4@PBVQWidget@@@Z @ 6237 NONAME ; class QRect QS60Style::subControlRect(enum QStyle::ComplexControl, class QStyleOptionComplex const *, enum QStyle::SubControl, class QWidget const *) const + ?qt_metacast@QIconEnginePluginV2@@UAEPAXPBD@Z @ 6238 NONAME ; void * QIconEnginePluginV2::qt_metacast(char const *) + ??0QVector3D@@QAE@XZ @ 6239 NONAME ; QVector3D::QVector3D(void) + ??_EQListView@@UAE@I@Z @ 6240 NONAME ; QListView::~QListView(unsigned int) + ?sizeHint@QDialog@@UBE?AVQSize@@XZ @ 6241 NONAME ; class QSize QDialog::sizeHint(void) const + ?setScrollBarsEnabled@QWorkspace@@QAEX_N@Z @ 6242 NONAME ; void QWorkspace::setScrollBarsEnabled(bool) + ?brushNeedsResolving@QPaintEngineState@@QBE_NXZ @ 6243 NONAME ; bool QPaintEngineState::brushNeedsResolving(void) const + ?executeDelayedItemsLayout@QAbstractItemView@@IAEXXZ @ 6244 NONAME ; void QAbstractItemView::executeDelayedItemsLayout(void) + ?keyPressEvent@QAbstractScrollArea@@MAEXPAVQKeyEvent@@@Z @ 6245 NONAME ; void QAbstractScrollArea::keyPressEvent(class QKeyEvent *) + ?z@QTabletEvent@@QBEHXZ @ 6246 NONAME ; int QTabletEvent::z(void) const + ?setAutoFillBackground@QWidget@@QAEX_N@Z @ 6247 NONAME ; void QWidget::setAutoFillBackground(bool) + ?firstPosition@QTextTableCell@@QBEHXZ @ 6248 NONAME ; int QTextTableCell::firstPosition(void) const + ?numDigits@QLCDNumber@@QBEHXZ @ 6249 NONAME ; int QLCDNumber::numDigits(void) const + ?setZScale@QGraphicsScale@@QAEXM@Z @ 6250 NONAME ; void QGraphicsScale::setZScale(float) + ?setCurrentColorGroup@QPalette@@QAEXW4ColorGroup@1@@Z @ 6251 NONAME ; void QPalette::setCurrentColorGroup(enum QPalette::ColorGroup) + ?type@QGraphicsTextItem@@UBEHXZ @ 6252 NONAME ; int QGraphicsTextItem::type(void) const + ?insertPolicy@QComboBox@@QBE?AW4InsertPolicy@1@XZ @ 6253 NONAME ; enum QComboBox::InsertPolicy QComboBox::insertPolicy(void) const + ?isValidCursorPosition@QTextLayout@@QBE_NH@Z @ 6254 NONAME ; bool QTextLayout::isValidCursorPosition(int) const + ?centerCursor@QPlainTextEdit@@QAEXXZ @ 6255 NONAME ; void QPlainTextEdit::centerCursor(void) + ?sectionViewportPosition@QHeaderView@@QBEHH@Z @ 6256 NONAME ; int QHeaderView::sectionViewportPosition(int) const + ?toolTip@QListWidgetItem@@QBE?AVQString@@XZ @ 6257 NONAME ; class QString QListWidgetItem::toolTip(void) const + ?setLastRotationAngle@QPinchGesture@@QAEXM@Z @ 6258 NONAME ; void QPinchGesture::setLastRotationAngle(float) + ??0QApplication@@QAE@AAHPAPADW4Type@0@H@Z @ 6259 NONAME ; QApplication::QApplication(int &, char * *, enum QApplication::Type, int) + ?setValue@QProgressDialog@@QAEXH@Z @ 6260 NONAME ; void QProgressDialog::setValue(int) + ?metaObject@QSizeGrip@@UBEPBUQMetaObject@@XZ @ 6261 NONAME ; struct QMetaObject const * QSizeGrip::metaObject(void) const + ?staticMetaObject@QUndoGroup@@2UQMetaObject@@B @ 6262 NONAME ; struct QMetaObject const QUndoGroup::staticMetaObject + ?setFeatures@QDockWidget@@QAEXV?$QFlags@W4DockWidgetFeature@QDockWidget@@@@@Z @ 6263 NONAME ; void QDockWidget::setFeatures(class QFlags) + ?setNum@QLabel@@QAEXH@Z @ 6264 NONAME ; void QLabel::setNum(int) + ?foreground@QListWidgetItem@@QBE?AVQBrush@@XZ @ 6265 NONAME ; class QBrush QListWidgetItem::foreground(void) const + ??0QBrush@@QAE@ABVQColor@@ABVQPixmap@@@Z @ 6266 NONAME ; QBrush::QBrush(class QColor const &, class QPixmap const &) + ?setUseDesignMetrics@QTextDocument@@QAEX_N@Z @ 6267 NONAME ; void QTextDocument::setUseDesignMetrics(bool) + ?setFont@QListWidgetItem@@QAEXABVQFont@@@Z @ 6268 NONAME ; void QListWidgetItem::setFont(class QFont const &) + ?toolTipText@QPalette@@QBEABVQBrush@@XZ @ 6269 NONAME ; class QBrush const & QPalette::toolTipText(void) const + ?qt_metacast@QGraphicsEffect@@UAEPAXPBD@Z @ 6270 NONAME ; void * QGraphicsEffect::qt_metacast(char const *) + ?filterCaseSensitivity@QSortFilterProxyModel@@QBE?AW4CaseSensitivity@Qt@@XZ @ 6271 NONAME ; enum Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity(void) const + ?qt_metacall@QEventDispatcherS60@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6272 NONAME ; int QEventDispatcherS60::qt_metacall(enum QMetaObject::Call, int, void * *) + ?drawPolygon@QPaintEngineEx@@UAEXPBVQPoint@@HW4PolygonDrawMode@QPaintEngine@@@Z @ 6273 NONAME ; void QPaintEngineEx::drawPolygon(class QPoint const *, int, enum QPaintEngine::PolygonDrawMode) + ?minimumSizeHint@QMdiSubWindow@@UBE?AVQSize@@XZ @ 6274 NONAME ; class QSize QMdiSubWindow::minimumSizeHint(void) const + ??0QStyleOptionViewItemV2@@QAE@ABV0@@Z @ 6275 NONAME ; QStyleOptionViewItemV2::QStyleOptionViewItemV2(class QStyleOptionViewItemV2 const &) + ?canRedo@QUndoGroup@@QBE_NXZ @ 6276 NONAME ; bool QUndoGroup::canRedo(void) const + ?extension@QGraphicsItem@@MBE?AVQVariant@@ABV2@@Z @ 6277 NONAME ; class QVariant QGraphicsItem::extension(class QVariant const &) const + ?moveCursor@QTableView@@MAE?AVQModelIndex@@W4CursorAction@QAbstractItemView@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 6278 NONAME ; class QModelIndex QTableView::moveCursor(enum QAbstractItemView::CursorAction, class QFlags) + ??6@YAAAVQDataStream@@AAV0@ABVQPolygonF@@@Z @ 6279 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPolygonF const &) + ??0QGroupBox@@QAE@PAVQWidget@@@Z @ 6280 NONAME ; QGroupBox::QGroupBox(class QWidget *) + ?tr@QPlainTextEdit@@SA?AVQString@@PBD0H@Z @ 6281 NONAME ; class QString QPlainTextEdit::tr(char const *, char const *, int) + ?testTokenAndEndsWith@Parser@QCss@@QAE_NW4TokenType@2@ABVQLatin1String@@@Z @ 6282 NONAME ; bool QCss::Parser::testTokenAndEndsWith(enum QCss::TokenType, class QLatin1String const &) + ??_EQSlider@@UAE@I@Z @ 6283 NONAME ; QSlider::~QSlider(unsigned int) + ?platformHint@QGuiPlatformPlugin@@UAEHW4PlatformHint@1@@Z @ 6284 NONAME ; int QGuiPlatformPlugin::platformHint(enum QGuiPlatformPlugin::PlatformHint) + ?actions@QGraphicsWidget@@QBE?AV?$QList@PAVQAction@@@@XZ @ 6285 NONAME ; class QList QGraphicsWidget::actions(void) const + ?setItemSpacing@QGraphicsLinearLayout@@QAEXHM@Z @ 6286 NONAME ; void QGraphicsLinearLayout::setItemSpacing(int, float) + ?itemPressed@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 6287 NONAME ; void QTableWidget::itemPressed(class QTableWidgetItem *) + ?lineWrapMode@QPlainTextEdit@@QBE?AW4LineWrapMode@1@XZ @ 6288 NONAME ; enum QPlainTextEdit::LineWrapMode QPlainTextEdit::lineWrapMode(void) const + ?menuAction@QMenu@@QBEPAVQAction@@XZ @ 6289 NONAME ; class QAction * QMenu::menuAction(void) const + ?cursorForward@QLineControl@@QAEX_NH@Z @ 6290 NONAME ; void QLineControl::cursorForward(bool, int) + ?setMinimumHeight@QWidget@@QAEXH@Z @ 6291 NONAME ; void QWidget::setMinimumHeight(int) + ?tr@QPixmapDropShadowFilter@@SA?AVQString@@PBD0H@Z @ 6292 NONAME ; class QString QPixmapDropShadowFilter::tr(char const *, char const *, int) + ?setButton@QMouseEventTransition@@QAEXW4MouseButton@Qt@@@Z @ 6293 NONAME ; void QMouseEventTransition::setButton(enum Qt::MouseButton) + ?setRow@QMatrix4x4@@QAEXHABVQVector4D@@@Z @ 6294 NONAME ; void QMatrix4x4::setRow(int, class QVector4D const &) + ?insertFrame@QTextCursor@@QAEPAVQTextFrame@@ABVQTextFrameFormat@@@Z @ 6295 NONAME ; class QTextFrame * QTextCursor::insertFrame(class QTextFrameFormat const &) + ?selectAll@QPlainTextEdit@@QAEXXZ @ 6296 NONAME ; void QPlainTextEdit::selectAll(void) + ??0QIconDragEvent@@QAE@XZ @ 6297 NONAME ; QIconDragEvent::QIconDragEvent(void) + ??1QTextFrame@@UAE@XZ @ 6298 NONAME ; QTextFrame::~QTextFrame(void) + ??_6QRegion@@QAEAAV0@ABV0@@Z @ 6299 NONAME ; class QRegion & QRegion::operator^=(class QRegion const &) + ?copy@QTextEdit@@QAEXXZ @ 6300 NONAME ; void QTextEdit::copy(void) + ?setRenderHint@QGraphicsView@@QAEXW4RenderHint@QPainter@@_N@Z @ 6301 NONAME ; void QGraphicsView::setRenderHint(enum QPainter::RenderHint, bool) + ?secondDerivedAt@QBezier@@QBE?AVQPointF@@M@Z @ 6302 NONAME ; class QPointF QBezier::secondDerivedAt(float) const + ?done@QErrorMessage@@MAEXH@Z @ 6303 NONAME ; void QErrorMessage::done(int) + ?fileDialogSelectedFiles@QGuiPlatformPlugin@@UBE?AVQStringList@@PBVQFileDialog@@@Z @ 6304 NONAME ; class QStringList QGuiPlatformPlugin::fileDialogSelectedFiles(class QFileDialog const *) const + ?splitCell@QTextTable@@QAEXHHHH@Z @ 6305 NONAME ; void QTextTable::splitCell(int, int, int, int) + ?sizeHint@QFrame@@UBE?AVQSize@@XZ @ 6306 NONAME ; class QSize QFrame::sizeHint(void) const + ?itemChanged@QTreeWidget@@IAEXPAVQTreeWidgetItem@@H@Z @ 6307 NONAME ; void QTreeWidget::itemChanged(class QTreeWidgetItem *, int) + ?getHsvF@QColor@@QBEXPAM000@Z @ 6308 NONAME ; void QColor::getHsvF(float *, float *, float *, float *) const + ??0QPaintBuffer@@QAE@XZ @ 6309 NONAME ; QPaintBuffer::QPaintBuffer(void) + ?adjustedSize@QWidgetPrivate@@QBE?AVQSize@@XZ @ 6310 NONAME ; class QSize QWidgetPrivate::adjustedSize(void) const + ?rect@QTextInlineObject@@QBE?AVQRectF@@XZ @ 6311 NONAME ; class QRectF QTextInlineObject::rect(void) const + ?contentsRect@QLayout@@QBE?AVQRect@@XZ @ 6312 NONAME ; class QRect QLayout::contentsRect(void) const + ?itemEntered@QTableWidget@@IAEXPAVQTableWidgetItem@@@Z @ 6313 NONAME ; void QTableWidget::itemEntered(class QTableWidgetItem *) + ?cleanChanged@QUndoGroup@@IAEX_N@Z @ 6314 NONAME ; void QUndoGroup::cleanChanged(bool) + ?getStaticMetaObject@QPixmapFilter@@SAABUQMetaObject@@XZ @ 6315 NONAME ; struct QMetaObject const & QPixmapFilter::getStaticMetaObject(void) + ??0QMatrix4x4@@QAE@ABVQMatrix@@@Z @ 6316 NONAME ; QMatrix4x4::QMatrix4x4(class QMatrix const &) + ?setSeparator@QAction@@QAEX_N@Z @ 6317 NONAME ; void QAction::setSeparator(bool) + ?setFormat@QTextTableCell@@QAEXABVQTextCharFormat@@@Z @ 6318 NONAME ; void QTextTableCell::setFormat(class QTextCharFormat const &) + ??RQMatrix4x4@@QAEAAMHH@Z @ 6319 NONAME ; float & QMatrix4x4::operator()(int, int) + ?moveEvent@QWidget@@MAEXPAVQMoveEvent@@@Z @ 6320 NONAME ; void QWidget::moveEvent(class QMoveEvent *) + ?home@QTextBrowser@@UAEXXZ @ 6321 NONAME ; void QTextBrowser::home(void) + ?inputMethodHints@QWidget@@QBE?AV?$QFlags@W4InputMethodHint@Qt@@@@XZ @ 6322 NONAME ; class QFlags QWidget::inputMethodHints(void) const + ?qt_metacall@QIconEnginePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6323 NONAME ; int QIconEnginePlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isFirstColumnSpanned@QTreeView@@QBE_NHABVQModelIndex@@@Z @ 6324 NONAME ; bool QTreeView::isFirstColumnSpanned(int, class QModelIndex const &) const + ??_EQGraphicsAnchorLayout@@UAE@I@Z @ 6325 NONAME ; QGraphicsAnchorLayout::~QGraphicsAnchorLayout(unsigned int) + ?nativeModifiers@QKeyEvent@@QBEIXZ @ 6326 NONAME ; unsigned int QKeyEvent::nativeModifiers(void) const + ?resized@QMovie@@IAEXABVQSize@@@Z @ 6327 NONAME ; void QMovie::resized(class QSize const &) + ?removeItem@QTextList@@QAEXH@Z @ 6328 NONAME ; void QTextList::removeItem(int) + ??0QSizePolicy@@AAE@H@Z @ 6329 NONAME ; QSizePolicy::QSizePolicy(int) + ?addPolygon@QGraphicsScene@@QAEPAVQGraphicsPolygonItem@@ABVQPolygonF@@ABVQPen@@ABVQBrush@@@Z @ 6330 NONAME ; class QGraphicsPolygonItem * QGraphicsScene::addPolygon(class QPolygonF const &, class QPen const &, class QBrush const &) + ?fetchMore@QFileSystemModel@@UAEXABVQModelIndex@@@Z @ 6331 NONAME ; void QFileSystemModel::fetchMore(class QModelIndex const &) + ?obey_desktop_settings@QApplicationPrivate@@2_NA @ 6332 NONAME ; bool QApplicationPrivate::obey_desktop_settings + ?setTabEnabled@QTabWidget@@QAEXH_N@Z @ 6333 NONAME ; void QTabWidget::setTabEnabled(int, bool) + ?addItem@QComboBox@@QAEXABVQIcon@@ABVQString@@ABVQVariant@@@Z @ 6334 NONAME ; void QComboBox::addItem(class QIcon const &, class QString const &, class QVariant const &) + ?minimumSize@QBoxLayout@@UBE?AVQSize@@XZ @ 6335 NONAME ; class QSize QBoxLayout::minimumSize(void) const + ??0QLayoutPrivate@@QAE@XZ @ 6336 NONAME ; QLayoutPrivate::QLayoutPrivate(void) + ??9QFontMetricsF@@QBE_NABV0@@Z @ 6337 NONAME ; bool QFontMetricsF::operator!=(class QFontMetricsF const &) const + ?copy@QLineControl@@QBEXW4Mode@QClipboard@@@Z @ 6338 NONAME ; void QLineControl::copy(enum QClipboard::Mode) const + ?getStaticMetaObject@QGraphicsEffectSource@@SAABUQMetaObject@@XZ @ 6339 NONAME ; struct QMetaObject const & QGraphicsEffectSource::getStaticMetaObject(void) + ?setDateRange@QDateTimeEdit@@QAEXABVQDate@@0@Z @ 6340 NONAME ; void QDateTimeEdit::setDateRange(class QDate const &, class QDate const &) + ??0QPolygonF@@QAE@ABVQRectF@@@Z @ 6341 NONAME ; QPolygonF::QPolygonF(class QRectF const &) + ??1QPictureIO@@QAE@XZ @ 6342 NONAME ; QPictureIO::~QPictureIO(void) + ?physicalDpiX@QPaintDevice@@QBEHXZ @ 6343 NONAME ; int QPaintDevice::physicalDpiX(void) const + ?complete@QCompleter@@QAEXABVQRect@@@Z @ 6344 NONAME ; void QCompleter::complete(class QRect const &) + ?getStaticMetaObject@QSlider@@SAABUQMetaObject@@XZ @ 6345 NONAME ; struct QMetaObject const & QSlider::getStaticMetaObject(void) + ?tr@QFocusFrame@@SA?AVQString@@PBD0@Z @ 6346 NONAME ; class QString QFocusFrame::tr(char const *, char const *) + ?setBackgroundColor@QListWidgetItem@@UAEXABVQColor@@@Z @ 6347 NONAME ; void QListWidgetItem::setBackgroundColor(class QColor const &) + ?setStrength@QGraphicsColorizeEffect@@QAEXM@Z @ 6348 NONAME ; void QGraphicsColorizeEffect::setStrength(float) + ?allGestures@QGestureEvent@@QBE?AV?$QList@PAVQGesture@@@@XZ @ 6349 NONAME ; class QList QGestureEvent::allGestures(void) const + ?setCacheMode@QMovie@@QAEXW4CacheMode@1@@Z @ 6350 NONAME ; void QMovie::setCacheMode(enum QMovie::CacheMode) + ?setAlignment@QProgressBar@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 6351 NONAME ; void QProgressBar::setAlignment(class QFlags) + ?model@QComboBox@@QBEPAVQAbstractItemModel@@XZ @ 6352 NONAME ; class QAbstractItemModel * QComboBox::model(void) const + ?checkedButton@QButtonGroup@@QBEPAVQAbstractButton@@XZ @ 6353 NONAME ; class QAbstractButton * QButtonGroup::checkedButton(void) const + ?tr@QUndoGroup@@SA?AVQString@@PBD0H@Z @ 6354 NONAME ; class QString QUndoGroup::tr(char const *, char const *, int) + ??0QTransform@@QAE@MMMMMM@Z @ 6355 NONAME ; QTransform::QTransform(float, float, float, float, float, float) + ?qt_metacast@QTreeView@@UAEPAXPBD@Z @ 6356 NONAME ; void * QTreeView::qt_metacast(char const *) + ?d_func@QAbstractSlider@@ABEPBVQAbstractSliderPrivate@@XZ @ 6357 NONAME ; class QAbstractSliderPrivate const * QAbstractSlider::d_func(void) const + ?isFloatable@QToolBar@@QBE_NXZ @ 6358 NONAME ; bool QToolBar::isFloatable(void) const + ?inferSpecialType@QMatrix4x4@@QAEXXZ @ 6359 NONAME ; void QMatrix4x4::inferSpecialType(void) + ?faceId@QFontEngine@@UBE?AUFaceId@1@XZ @ 6360 NONAME ; struct QFontEngine::FaceId QFontEngine::faceId(void) const + ?mouseReleaseEvent@QTextEdit@@MAEXPAVQMouseEvent@@@Z @ 6361 NONAME ; void QTextEdit::mouseReleaseEvent(class QMouseEvent *) + ?registerField@QWizardPage@@IAEXABVQString@@PAVQWidget@@PBD2@Z @ 6362 NONAME ; void QWizardPage::registerField(class QString const &, class QWidget *, char const *, char const *) + ?d_func@QGraphicsItemGroup@@ABEPBVQGraphicsItemGroupPrivate@@XZ @ 6363 NONAME ; class QGraphicsItemGroupPrivate const * QGraphicsItemGroup::d_func(void) const + ?firstCursorPosition@QTextFrame@@QBE?AVQTextCursor@@XZ @ 6364 NONAME ; class QTextCursor QTextFrame::firstCursorPosition(void) const + ??0QTextBlockGroup@@IAE@AAVQTextBlockGroupPrivate@@PAVQTextDocument@@@Z @ 6365 NONAME ; QTextBlockGroup::QTextBlockGroup(class QTextBlockGroupPrivate &, class QTextDocument *) + ?iconPixmap@QMessageBox@@QBE?AVQPixmap@@XZ @ 6366 NONAME ; class QPixmap QMessageBox::iconPixmap(void) const + ?sortColumn@QSortFilterProxyModel@@QBEHXZ @ 6367 NONAME ; int QSortFilterProxyModel::sortColumn(void) const + ?setValue@QSpinBox@@QAEXH@Z @ 6368 NONAME ; void QSpinBox::setValue(int) + ?setTableCellRowSpan@QTextCharFormat@@QAEXH@Z @ 6369 NONAME ; void QTextCharFormat::setTableCellRowSpan(int) + ?polish@QS60Style@@UAEXPAVQWidget@@@Z @ 6370 NONAME ; void QS60Style::polish(class QWidget *) + ?cursorPosition@QLineControl@@QBEHXZ @ 6371 NONAME ; int QLineControl::cursorPosition(void) const + ?setCheckable@QGroupBox@@QAEX_N@Z @ 6372 NONAME ; void QGroupBox::setCheckable(bool) + ?isCosmetic@QPen@@QBE_NXZ @ 6373 NONAME ; bool QPen::isCosmetic(void) const + ?opacityChanged@QGraphicsObject@@IAEXXZ @ 6374 NONAME ; void QGraphicsObject::opacityChanged(void) + ?hideEvent@QComboBox@@MAEXPAVQHideEvent@@@Z @ 6375 NONAME ; void QComboBox::hideEvent(class QHideEvent *) + ?setWidget@QFormLayout@@QAEXHW4ItemRole@1@PAVQWidget@@@Z @ 6376 NONAME ; void QFormLayout::setWidget(int, enum QFormLayout::ItemRole, class QWidget *) + ??0QStyleOptionFrame@@IAE@H@Z @ 6377 NONAME ; QStyleOptionFrame::QStyleOptionFrame(int) + ?tr@QLayout@@SA?AVQString@@PBD0@Z @ 6378 NONAME ; class QString QLayout::tr(char const *, char const *) + ?tr@QVBoxLayout@@SA?AVQString@@PBD0H@Z @ 6379 NONAME ; class QString QVBoxLayout::tr(char const *, char const *, int) + ?sortByColumn@QTreeView@@QAEXH@Z @ 6380 NONAME ; void QTreeView::sortByColumn(int) + ?tr@QPixmapBlurFilter@@SA?AVQString@@PBD0@Z @ 6381 NONAME ; class QString QPixmapBlurFilter::tr(char const *, char const *) + ?processEvents@QEventDispatcherS60@@UAE_NV?$QFlags@W4ProcessEventsFlag@QEventLoop@@@@@Z @ 6382 NONAME ; bool QEventDispatcherS60::processEvents(class QFlags) + ?bottom@QItemSelectionRange@@QBEHXZ @ 6383 NONAME ; int QItemSelectionRange::bottom(void) const + ?focusScopeItem@QGraphicsItem@@QBEPAV1@XZ @ 6384 NONAME ; class QGraphicsItem * QGraphicsItem::focusScopeItem(void) const + ?staticMetaObject@QToolButton@@2UQMetaObject@@B @ 6385 NONAME ; struct QMetaObject const QToolButton::staticMetaObject + ?computeControlPointRect@QPainterPath@@ABEXXZ @ 6386 NONAME ; void QPainterPath::computeControlPointRect(void) const + ?eventFilter@QMdiSubWindow@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 6387 NONAME ; bool QMdiSubWindow::eventFilter(class QObject *, class QEvent *) + ?setDateTextFormat@QCalendarWidget@@QAEXABVQDate@@ABVQTextCharFormat@@@Z @ 6388 NONAME ; void QCalendarWidget::setDateTextFormat(class QDate const &, class QTextCharFormat const &) + ?buttonText@QWizard@@QBE?AVQString@@W4WizardButton@1@@Z @ 6389 NONAME ; class QString QWizard::buttonText(enum QWizard::WizardButton) const + ?d_func@QItemSelectionModel@@ABEPBVQItemSelectionModelPrivate@@XZ @ 6390 NONAME ; class QItemSelectionModelPrivate const * QItemSelectionModel::d_func(void) const + ??1QWindowSurface@@UAE@XZ @ 6391 NONAME ; QWindowSurface::~QWindowSurface(void) + ??0QInputEvent@@QAE@W4Type@QEvent@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 6392 NONAME ; QInputEvent::QInputEvent(enum QEvent::Type, class QFlags) + ?trUtf8@QGraphicsView@@SA?AVQString@@PBD0H@Z @ 6393 NONAME ; class QString QGraphicsView::trUtf8(char const *, char const *, int) + ?globalX@QWheelEvent@@QBEHXZ @ 6394 NONAME ; int QWheelEvent::globalX(void) const + ?updateIsOpaque@QWidgetPrivate@@QAEXXZ @ 6395 NONAME ; void QWidgetPrivate::updateIsOpaque(void) + ?trUtf8@QFontComboBox@@SA?AVQString@@PBD0H@Z @ 6396 NONAME ; class QString QFontComboBox::trUtf8(char const *, char const *, int) + ?event@QProxyStyle@@MAE_NPAVQEvent@@@Z @ 6397 NONAME ; bool QProxyStyle::event(class QEvent *) + ??_EQPaintBufferSignalProxy@@UAE@I@Z @ 6398 NONAME ; QPaintBufferSignalProxy::~QPaintBufferSignalProxy(unsigned int) + ??0QVBoxLayout@@QAE@PAVQWidget@@@Z @ 6399 NONAME ; QVBoxLayout::QVBoxLayout(class QWidget *) + ?isEqual@QPalette@@QBE_NW4ColorGroup@1@0@Z @ 6400 NONAME ; bool QPalette::isEqual(enum QPalette::ColorGroup, enum QPalette::ColorGroup) const + ?loadKerningPairs@QFontEngine@@QAEXUQFixed@@@Z @ 6401 NONAME ; void QFontEngine::loadKerningPairs(struct QFixed) + ??0QRegion@@QAE@ABVQBitmap@@@Z @ 6402 NONAME ; QRegion::QRegion(class QBitmap const &) + ?setColor@QBrush@@QAEXABVQColor@@@Z @ 6403 NONAME ; void QBrush::setColor(class QColor const &) + ?setVerticalSpacing@QGraphicsAnchorLayout@@QAEXM@Z @ 6404 NONAME ; void QGraphicsAnchorLayout::setVerticalSpacing(float) + ?widgetForAction@QToolBar@@QBEPAVQWidget@@PAVQAction@@@Z @ 6405 NONAME ; class QWidget * QToolBar::widgetForAction(class QAction *) const + ?setPos@QGraphicsSceneMouseEvent@@QAEXABVQPointF@@@Z @ 6406 NONAME ; void QGraphicsSceneMouseEvent::setPos(class QPointF const &) + ?setSelection@QLineEdit@@QAEXHH@Z @ 6407 NONAME ; void QLineEdit::setSelection(int, int) + ?d_func@QGraphicsBloomEffect@@ABEPBVQGraphicsBloomEffectPrivate@@XZ @ 6408 NONAME ; class QGraphicsBloomEffectPrivate const * QGraphicsBloomEffect::d_func(void) const + ??1QSortFilterProxyModel@@UAE@XZ @ 6409 NONAME ; QSortFilterProxyModel::~QSortFilterProxyModel(void) + ??1QTextBrowser@@UAE@XZ @ 6410 NONAME ; QTextBrowser::~QTextBrowser(void) + ?maximumViewportSize@QAbstractScrollArea@@QBE?AVQSize@@XZ @ 6411 NONAME ; class QSize QAbstractScrollArea::maximumViewportSize(void) const + ??0QActionEvent@@QAE@HPAVQAction@@0@Z @ 6412 NONAME ; QActionEvent::QActionEvent(int, class QAction *, class QAction *) + ?isEnabledToTLW@QWidget@@QBE_NXZ @ 6413 NONAME ; bool QWidget::isEnabledToTLW(void) const + ?maximumHeight@QGraphicsLayoutItem@@QBEMXZ @ 6414 NONAME ; float QGraphicsLayoutItem::maximumHeight(void) const + ?processEvent@QTextControl@@UAEXPAVQEvent@@ABVQMatrix@@PAVQWidget@@@Z @ 6415 NONAME ; void QTextControl::processEvent(class QEvent *, class QMatrix const &, class QWidget *) + ?setTabArray@QTextOption@@QAEXV?$QList@M@@@Z @ 6416 NONAME ; void QTextOption::setTabArray(class QList) + ?event@QListWidget@@MAE_NPAVQEvent@@@Z @ 6417 NONAME ; bool QListWidget::event(class QEvent *) + ?tr@QDoubleValidator@@SA?AVQString@@PBD0@Z @ 6418 NONAME ; class QString QDoubleValidator::tr(char const *, char const *) + ?setPoint@QPolygon@@QAEXHABVQPoint@@@Z @ 6419 NONAME ; void QPolygon::setPoint(int, class QPoint const &) + ??4QStyleOptionSlider@@QAEAAV0@ABV0@@Z @ 6420 NONAME ; class QStyleOptionSlider & QStyleOptionSlider::operator=(class QStyleOptionSlider const &) + ?focusOutEvent@QTextEdit@@MAEXPAVQFocusEvent@@@Z @ 6421 NONAME ; void QTextEdit::focusOutEvent(class QFocusEvent *) + ?leaveEvent@QToolButton@@MAEXPAVQEvent@@@Z @ 6422 NONAME ; void QToolButton::leaveEvent(class QEvent *) + ?setCursorPosition@QLineControl@@QAEXH@Z @ 6423 NONAME ; void QLineControl::setCursorPosition(int) + ??0QStyleOptionQ3ListView@@QAE@ABV0@@Z @ 6424 NONAME ; QStyleOptionQ3ListView::QStyleOptionQ3ListView(class QStyleOptionQ3ListView const &) + ?staticMetaObject@QFocusFrame@@2UQMetaObject@@B @ 6425 NONAME ; struct QMetaObject const QFocusFrame::staticMetaObject + ??0QLayout@@QAE@XZ @ 6426 NONAME ; QLayout::QLayout(void) + ?remove@QPixmapCache@@SAXABVQString@@@Z @ 6427 NONAME ; void QPixmapCache::remove(class QString const &) + ?staticMetaObject@QPixmapDropShadowFilter@@2UQMetaObject@@B @ 6428 NONAME ; struct QMetaObject const QPixmapDropShadowFilter::staticMetaObject + ?tr@QTableView@@SA?AVQString@@PBD0@Z @ 6429 NONAME ; class QString QTableView::tr(char const *, char const *) + ??1QBitmap@@UAE@XZ @ 6430 NONAME ; QBitmap::~QBitmap(void) + ?bottomPadding@QTextTableCellFormat@@QBEMXZ @ 6431 NONAME ; float QTextTableCellFormat::bottomPadding(void) const + ?setIntValue@QInputDialog@@QAEXH@Z @ 6432 NONAME ; void QInputDialog::setIntValue(int) + ?getStaticMetaObject@QTextTable@@SAABUQMetaObject@@XZ @ 6433 NONAME ; struct QMetaObject const & QTextTable::getStaticMetaObject(void) + ?insertMenu@QMenuBar@@QAEPAVQAction@@PAV2@PAVQMenu@@@Z @ 6434 NONAME ; class QAction * QMenuBar::insertMenu(class QAction *, class QMenu *) + ?item@QListWidget@@QBEPAVQListWidgetItem@@H@Z @ 6435 NONAME ; class QListWidgetItem * QListWidget::item(int) const + ??8Tab@QTextOption@@QBE_NABU01@@Z @ 6436 NONAME ; bool QTextOption::Tab::operator==(struct QTextOption::Tab const &) const + ?buttons@QMouseEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 6437 NONAME ; class QFlags QMouseEvent::buttons(void) const + ?staticMetaObject@QSizePolicy@@2UQMetaObject@@B @ 6438 NONAME ; struct QMetaObject const QSizePolicy::staticMetaObject + ?setupViewport@QMdiArea@@IAEXPAVQWidget@@@Z @ 6439 NONAME ; void QMdiArea::setupViewport(class QWidget *) + ?joinPoints@QStroker@@QAEXMMABVQLineF@@W4LineJoinMode@1@@Z @ 6440 NONAME ; void QStroker::joinPoints(float, float, class QLineF const &, enum QStroker::LineJoinMode) + ?isSortingEnabled@QTableWidget@@QBE_NXZ @ 6441 NONAME ; bool QTableWidget::isSortingEnabled(void) const + ?ConstructL@QS60MainAppUi@@UAEXXZ @ 6442 NONAME ; void QS60MainAppUi::ConstructL(void) + ??HQRegion@@QBE?BV0@ABVQRect@@@Z @ 6443 NONAME ; class QRegion const QRegion::operator+(class QRect const &) const + ??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 6444 NONAME ; QWidget::QWidget(class QWidget *, class QFlags) + ??5@YAAAVQDataStream@@AAV0@AAVQVector3D@@@Z @ 6445 NONAME ; class QDataStream & operator>>(class QDataStream &, class QVector3D &) + ?d_func@QTextControl@@ABEPBVQTextControlPrivate@@XZ @ 6446 NONAME ; class QTextControlPrivate const * QTextControl::d_func(void) const + ?isEmpty@QKeySequence@@QBE_NXZ @ 6447 NONAME ; bool QKeySequence::isEmpty(void) const + ?updatePreviewWidget@QColumnView@@IAEXABVQModelIndex@@@Z @ 6448 NONAME ; void QColumnView::updatePreviewWidget(class QModelIndex const &) + ?title@QGroupBox@@QBE?AVQString@@XZ @ 6449 NONAME ; class QString QGroupBox::title(void) const + ?setTextMargins@QLineEdit@@QAEXHHHH@Z @ 6450 NONAME ; void QLineEdit::setTextMargins(int, int, int, int) + ?sectionHandleDoubleClicked@QHeaderView@@IAEXH@Z @ 6451 NONAME ; void QHeaderView::sectionHandleDoubleClicked(int) + ?qt_metacall@QColorDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6452 NONAME ; int QColorDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ??8QMatrix@@QBE_NABV0@@Z @ 6453 NONAME ; bool QMatrix::operator==(class QMatrix const &) const + ?resizeEvent@QWidget@@MAEXPAVQResizeEvent@@@Z @ 6454 NONAME ; void QWidget::resizeEvent(class QResizeEvent *) + ?setClipRect@QStrokerOps@@QAEXABVQRectF@@@Z @ 6455 NONAME ; void QStrokerOps::setClipRect(class QRectF const &) + ?highlighted@QCompleter@@IAEXABVQModelIndex@@@Z @ 6456 NONAME ; void QCompleter::highlighted(class QModelIndex const &) + ?getStaticMetaObject@QCalendarWidget@@SAABUQMetaObject@@XZ @ 6457 NONAME ; struct QMetaObject const & QCalendarWidget::getStaticMetaObject(void) + ?toPoint@QVector3D@@QBE?AVQPoint@@XZ @ 6458 NONAME ; class QPoint QVector3D::toPoint(void) const + ?mouseMoveEvent@QCheckBox@@MAEXPAVQMouseEvent@@@Z @ 6459 NONAME ; void QCheckBox::mouseMoveEvent(class QMouseEvent *) + ?tr@QScrollArea@@SA?AVQString@@PBD0@Z @ 6460 NONAME ; class QString QScrollArea::tr(char const *, char const *) + ??1QGraphicsBlurEffect@@UAE@XZ @ 6461 NONAME ; QGraphicsBlurEffect::~QGraphicsBlurEffect(void) + ?get@QGraphicsItemPrivate@@SAPBV1@PBVQGraphicsItem@@@Z @ 6462 NONAME ; class QGraphicsItemPrivate const * QGraphicsItemPrivate::get(class QGraphicsItem const *) + ?setRowStretchFactor@QGraphicsGridLayout@@QAEXHH@Z @ 6463 NONAME ; void QGraphicsGridLayout::setRowStretchFactor(int, int) + ??1QImageIOHandler@@UAE@XZ @ 6464 NONAME ; QImageIOHandler::~QImageIOHandler(void) + ?availableSizes@QIcon@@QBE?AV?$QList@VQSize@@@@W4Mode@1@W4State@1@@Z @ 6465 NONAME ; class QList QIcon::availableSizes(enum QIcon::Mode, enum QIcon::State) const + ??0QColor@@QAE@ABV0@@Z @ 6466 NONAME ; QColor::QColor(class QColor const &) + ?setItemWidget@QTreeWidget@@QAEXPAVQTreeWidgetItem@@HPAVQWidget@@@Z @ 6467 NONAME ; void QTreeWidget::setItemWidget(class QTreeWidgetItem *, int, class QWidget *) + ?metaObject@QDateTimeEdit@@UBEPBUQMetaObject@@XZ @ 6468 NONAME ; struct QMetaObject const * QDateTimeEdit::metaObject(void) const + ?showColumn@QTreeView@@QAEXH@Z @ 6469 NONAME ; void QTreeView::showColumn(int) + ?setTouchPoints@QTouchEvent@@QAEXABV?$QList@VTouchPoint@QTouchEvent@@@@@Z @ 6470 NONAME ; void QTouchEvent::setTouchPoints(class QList const &) + ?skipSpace@Parser@QCss@@QAEXXZ @ 6471 NONAME ; void QCss::Parser::skipSpace(void) + ?setFocus@QWidget@@QAEXW4FocusReason@Qt@@@Z @ 6472 NONAME ; void QWidget::setFocus(enum Qt::FocusReason) + ?validateCurrentPage@QWizard@@UAE_NXZ @ 6473 NONAME ; bool QWizard::validateCurrentPage(void) + ?setExpandsOnDoubleClick@QTreeView@@QAEX_N@Z @ 6474 NONAME ; void QTreeView::setExpandsOnDoubleClick(bool) + ?event@QWorkspace@@MAE_NPAVQEvent@@@Z @ 6475 NONAME ; bool QWorkspace::event(class QEvent *) + ??1QInputContextFactoryInterface@@UAE@XZ @ 6476 NONAME ; QInputContextFactoryInterface::~QInputContextFactoryInterface(void) + ?d_func@QTextBrowser@@ABEPBVQTextBrowserPrivate@@XZ @ 6477 NONAME ; class QTextBrowserPrivate const * QTextBrowser::d_func(void) const + ?getStaticMetaObject@QUndoGroup@@SAABUQMetaObject@@XZ @ 6478 NONAME ; struct QMetaObject const & QUndoGroup::getStaticMetaObject(void) + ?focusOutEvent@QMdiSubWindow@@MAEXPAVQFocusEvent@@@Z @ 6479 NONAME ; void QMdiSubWindow::focusOutEvent(class QFocusEvent *) + ?remove@QDirModel@@QAE_NABVQModelIndex@@@Z @ 6480 NONAME ; bool QDirModel::remove(class QModelIndex const &) + ?widget@QToolBox@@QBEPAVQWidget@@H@Z @ 6481 NONAME ; class QWidget * QToolBox::widget(int) const + ?setOption@QMdiSubWindow@@QAEXW4SubWindowOption@1@_N@Z @ 6482 NONAME ; void QMdiSubWindow::setOption(enum QMdiSubWindow::SubWindowOption, bool) + ?mimeData@QProxyModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 6483 NONAME ; class QMimeData * QProxyModel::mimeData(class QList const &) const + ?drawPolygon@QPaintEngineEx@@UAEXPBVQPointF@@HW4PolygonDrawMode@QPaintEngine@@@Z @ 6484 NONAME ; void QPaintEngineEx::drawPolygon(class QPointF const *, int, enum QPaintEngine::PolygonDrawMode) + ?setDevice@QTextDocumentWriter@@QAEXPAVQIODevice@@@Z @ 6485 NONAME ; void QTextDocumentWriter::setDevice(class QIODevice *) + ?d_func@QTreeView@@AAEPAVQTreeViewPrivate@@XZ @ 6486 NONAME ; class QTreeViewPrivate * QTreeView::d_func(void) + ??_EQActionEvent@@UAE@I@Z @ 6487 NONAME ; QActionEvent::~QActionEvent(unsigned int) + ?isQBitmap@QPixmap@@QBE_NXZ @ 6488 NONAME ; bool QPixmap::isQBitmap(void) const + ??0QApplication@@QAE@P6APAVCApaApplication@@XZAAHPAPADH@Z @ 6489 NONAME ; QApplication::QApplication(class CApaApplication * (*)(void), int &, char * *, int) + ?bytesPerLine@QImage@@QBEHXZ @ 6490 NONAME ; int QImage::bytesPerLine(void) const + ?metaObject@QPanGesture@@UBEPBUQMetaObject@@XZ @ 6491 NONAME ; struct QMetaObject const * QPanGesture::metaObject(void) const + ?pointAt@QBezier@@QBE?AVQPointF@@M@Z @ 6492 NONAME ; class QPointF QBezier::pointAt(float) const + ?windowIcon@QWidget@@QBE?AVQIcon@@XZ @ 6493 NONAME ; class QIcon QWidget::windowIcon(void) const + ?gesture@QGestureEvent@@QBEPAVQGesture@@W4GestureType@Qt@@@Z @ 6494 NONAME ; class QGesture * QGestureEvent::gesture(enum Qt::GestureType) const + ?pos@QMouseEvent@@QBEABVQPoint@@XZ @ 6495 NONAME ; class QPoint const & QMouseEvent::pos(void) const + ?setAlignment@QGroupBox@@QAEXH@Z @ 6496 NONAME ; void QGroupBox::setAlignment(int) + ?isIdentity@QMatrix@@QBE_NXZ @ 6497 NONAME ; bool QMatrix::isIdentity(void) const + ?parseProperty@Parser@QCss@@QAE_NPAUDeclaration@2@@Z @ 6498 NONAME ; bool QCss::Parser::parseProperty(struct QCss::Declaration *) + ?emptyLabel@QUndoView@@QBE?AVQString@@XZ @ 6499 NONAME ; class QString QUndoView::emptyLabel(void) const + ?setKeyboardTracking@QAbstractSpinBox@@QAEX_N@Z @ 6500 NONAME ; void QAbstractSpinBox::setKeyboardTracking(bool) + ?setRegExp@QRegExpValidator@@QAEXABVQRegExp@@@Z @ 6501 NONAME ; void QRegExpValidator::setRegExp(class QRegExp const &) + ?addToPolygon@QBezier@@QBEXPAVQPolygonF@@@Z @ 6502 NONAME ; void QBezier::addToPolygon(class QPolygonF *) const + ?removePixmapModificationHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 6503 NONAME ; void QImagePixmapCleanupHooks::removePixmapModificationHook(void (*)(class QPixmap *)) + ?staticMetaObject@QGraphicsBlurEffect@@2UQMetaObject@@B @ 6504 NONAME ; struct QMetaObject const QGraphicsBlurEffect::staticMetaObject + ?d_func@QAbstractTextDocumentLayout@@ABEPBVQAbstractTextDocumentLayoutPrivate@@XZ @ 6505 NONAME ; class QAbstractTextDocumentLayoutPrivate const * QAbstractTextDocumentLayout::d_func(void) const + ?setScaledSize@QMovie@@QAEXABVQSize@@@Z @ 6506 NONAME ; void QMovie::setScaledSize(class QSize const &) + ?del@QLineControl@@QAEXXZ @ 6507 NONAME ; void QLineControl::del(void) + ?setReadOnly@QLineControl@@QAEX_N@Z @ 6508 NONAME ; void QLineControl::setReadOnly(bool) + ?selectionChanged@QLineEdit@@IAEXXZ @ 6509 NONAME ; void QLineEdit::selectionChanged(void) + ?staticMetaObject@QTextEdit@@2UQMetaObject@@B @ 6510 NONAME ; struct QMetaObject const QTextEdit::staticMetaObject + ?setScenePos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 6511 NONAME ; void QTouchEvent::TouchPoint::setScenePos(class QPointF const &) + ??0QQuaternion@@QAE@MABVQVector3D@@@Z @ 6512 NONAME ; QQuaternion::QQuaternion(float, class QVector3D const &) + ?setWizardStyle@QWizard@@QAEXW4WizardStyle@1@@Z @ 6513 NONAME ; void QWizard::setWizardStyle(enum QWizard::WizardStyle) + ?transformOriginPoint@QGraphicsItem@@QBE?AVQPointF@@XZ @ 6514 NONAME ; class QPointF QGraphicsItem::transformOriginPoint(void) const + ?trueMatrix@QPixmap@@SA?AVQTransform@@ABV2@HH@Z @ 6515 NONAME ; class QTransform QPixmap::trueMatrix(class QTransform const &, int, int) + ?changed@QGraphicsScene@@IAEXABV?$QList@VQRectF@@@@@Z @ 6516 NONAME ; void QGraphicsScene::changed(class QList const &) + ??0QStyleOptionTitleBar@@QAE@XZ @ 6517 NONAME ; QStyleOptionTitleBar::QStyleOptionTitleBar(void) + ?globalPos@QContextMenuEvent@@QBEABVQPoint@@XZ @ 6518 NONAME ; class QPoint const & QContextMenuEvent::globalPos(void) const + ?qt_metacall@QGraphicsEffectSource@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6519 NONAME ; int QGraphicsEffectSource::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setRowWrapPolicy@QFormLayout@@QAEXW4RowWrapPolicy@1@@Z @ 6520 NONAME ; void QFormLayout::setRowWrapPolicy(enum QFormLayout::RowWrapPolicy) + ??0QTextCursor@@QAE@ABVQTextBlock@@@Z @ 6521 NONAME ; QTextCursor::QTextCursor(class QTextBlock const &) + ?displayText@QLineEdit@@QBE?AVQString@@XZ @ 6522 NONAME ; class QString QLineEdit::displayText(void) const + ?font@QPainter@@QBEABVQFont@@XZ @ 6523 NONAME ; class QFont const & QPainter::font(void) const + ?selectedIndexes@QListView@@MBE?AV?$QList@VQModelIndex@@@@XZ @ 6524 NONAME ; class QList QListView::selectedIndexes(void) const + ?backgroundColor@QImageReader@@QBE?AVQColor@@XZ @ 6525 NONAME ; class QColor QImageReader::backgroundColor(void) const + ?setItemEnabled@QToolBox@@QAEXH_N@Z @ 6526 NONAME ; void QToolBox::setItemEnabled(int, bool) + ?eor@QRegion@@QBE?AV1@ABV1@@Z @ 6527 NONAME ; class QRegion QRegion::eor(class QRegion const &) const + ?qt_metacall@QSlider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6528 NONAME ; int QSlider::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QStyleOptionViewItem@@QAE@XZ @ 6529 NONAME ; QStyleOptionViewItem::QStyleOptionViewItem(void) + ??_EQPaintDevice@@UAE@I@Z @ 6530 NONAME ; QPaintDevice::~QPaintDevice(unsigned int) + ?isPrimary@TouchPoint@QTouchEvent@@QBE_NXZ @ 6531 NONAME ; bool QTouchEvent::TouchPoint::isPrimary(void) const + ??0QComboBox@@IAE@AAVQComboBoxPrivate@@PAVQWidget@@@Z @ 6532 NONAME ; QComboBox::QComboBox(class QComboBoxPrivate &, class QWidget *) + ??1QStackedWidget@@UAE@XZ @ 6533 NONAME ; QStackedWidget::~QStackedWidget(void) + ?insertSpacing@QBoxLayout@@QAEXHH@Z @ 6534 NONAME ; void QBoxLayout::insertSpacing(int, int) + ?oldEditFocus@QApplicationPrivate@@2PAVQWidget@@A @ 6535 NONAME ; class QWidget * QApplicationPrivate::oldEditFocus + ?blockList@QTextBlockGroup@@IBE?AV?$QList@VQTextBlock@@@@XZ @ 6536 NONAME ; class QList QTextBlockGroup::blockList(void) const + ?paintEvent@QDial@@MAEXPAVQPaintEvent@@@Z @ 6537 NONAME ; void QDial::paintEvent(class QPaintEvent *) + ?resetRowWrapPolicy@QFormLayout@@AAEXXZ @ 6538 NONAME ; void QFormLayout::resetRowWrapPolicy(void) + ?setFlag@QGraphicsItem@@QAEXW4GraphicsItemFlag@1@_N@Z @ 6539 NONAME ; void QGraphicsItem::setFlag(enum QGraphicsItem::GraphicsItemFlag, bool) + ?addAction@QActionGroup@@QAEPAVQAction@@PAV2@@Z @ 6540 NONAME ; class QAction * QActionGroup::addAction(class QAction *) + ?isFrameFormat@QTextFormat@@QBE_NXZ @ 6541 NONAME ; bool QTextFormat::isFrameFormat(void) const + ?drawItemPixmap@QStyle@@UBEXPAVQPainter@@ABVQRect@@HABVQPixmap@@@Z @ 6542 NONAME ; void QStyle::drawItemPixmap(class QPainter *, class QRect const &, int, class QPixmap const &) const + ?tr@QDesktopWidget@@SA?AVQString@@PBD0@Z @ 6543 NONAME ; class QString QDesktopWidget::tr(char const *, char const *) + ?font@QTextItem@@QBE?AVQFont@@XZ @ 6544 NONAME ; class QFont QTextItem::font(void) const + ?width@QPen@@QBEHXZ @ 6545 NONAME ; int QPen::width(void) const + ?initStyleOption@QTabBar@@IBEXPAVQStyleOptionTab@@H@Z @ 6546 NONAME ; void QTabBar::initStyleOption(class QStyleOptionTab *, int) const + ?trUtf8@QPlainTextEdit@@SA?AVQString@@PBD0@Z @ 6547 NONAME ; class QString QPlainTextEdit::trUtf8(char const *, char const *) + ?tr@QToolBox@@SA?AVQString@@PBD0@Z @ 6548 NONAME ; class QString QToolBox::tr(char const *, char const *) + ?fill@QMatrix4x4@@QAEXM@Z @ 6549 NONAME ; void QMatrix4x4::fill(float) + ?setFilters@QFileDialog@@QAEXABVQStringList@@@Z @ 6550 NONAME ; void QFileDialog::setFilters(class QStringList const &) + ??_EQRasterPixmapData@@UAE@I@Z @ 6551 NONAME ; QRasterPixmapData::~QRasterPixmapData(unsigned int) + ?main_widget@QApplicationPrivate@@2PAVQWidget@@A @ 6552 NONAME ; class QWidget * QApplicationPrivate::main_widget + ?fromData@QImage@@SA?AV1@PBEHPBD@Z @ 6553 NONAME ; class QImage QImage::fromData(unsigned char const *, int, char const *) + ?tr@QProxyModel@@SA?AVQString@@PBD0H@Z @ 6554 NONAME ; class QString QProxyModel::tr(char const *, char const *, int) + ?setStrokeWidth@QDashStroker@@QAEXM@Z @ 6555 NONAME ; void QDashStroker::setStrokeWidth(float) + ??1QPaintEvent@@UAE@XZ @ 6556 NONAME ; QPaintEvent::~QPaintEvent(void) + ?toHtml@QTextDocument@@QBE?AVQString@@ABVQByteArray@@@Z @ 6557 NONAME ; class QString QTextDocument::toHtml(class QByteArray const &) const + ?convertToFormat@QImage@@QBE?AV1@W4Format@1@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 6558 NONAME ; class QImage QImage::convertToFormat(enum QImage::Format, class QFlags) const + ?isIndexHidden@QColumnView@@MBE_NABVQModelIndex@@@Z @ 6559 NONAME ; bool QColumnView::isIndexHidden(class QModelIndex const &) const + ?widgetResizable@QScrollArea@@QBE_NXZ @ 6560 NONAME ; bool QScrollArea::widgetResizable(void) const + ?setAlignment@QScrollArea@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 6561 NONAME ; void QScrollArea::setAlignment(class QFlags) + ?helpRequested@QDialogButtonBox@@IAEXXZ @ 6562 NONAME ; void QDialogButtonBox::helpRequested(void) + ?drawRects@QPaintEngineEx@@UAEXPBVQRectF@@H@Z @ 6563 NONAME ; void QPaintEngineEx::drawRects(class QRectF const *, int) + ?enabledChange@QWidget@@MAEX_N@Z @ 6564 NONAME ; void QWidget::enabledChange(bool) + ?sceneEvent@QGraphicsWidget@@MAE_NPAVQEvent@@@Z @ 6565 NONAME ; bool QGraphicsWidget::sceneEvent(class QEvent *) + ?updateGeometries@QAbstractItemView@@MAEXXZ @ 6566 NONAME ; void QAbstractItemView::updateGeometries(void) + ?loadResource@QTextBrowser@@UAE?AVQVariant@@HABVQUrl@@@Z @ 6567 NONAME ; class QVariant QTextBrowser::loadResource(int, class QUrl const &) + ?numRects@QRegion@@QBEHXZ @ 6568 NONAME ; int QRegion::numRects(void) const + ?boundingRect@QGraphicsEffect@@QBE?AVQRectF@@XZ @ 6569 NONAME ; class QRectF QGraphicsEffect::boundingRect(void) const + ?columnSpacing@QGraphicsGridLayout@@QBEMH@Z @ 6570 NONAME ; float QGraphicsGridLayout::columnSpacing(int) const + ?coordinateMode@QGradient@@QBE?AW4CoordinateMode@1@XZ @ 6571 NONAME ; enum QGradient::CoordinateMode QGradient::coordinateMode(void) const + ?moveCursor@QTreeView@@MAE?AVQModelIndex@@W4CursorAction@QAbstractItemView@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 6572 NONAME ; class QModelIndex QTreeView::moveCursor(enum QAbstractItemView::CursorAction, class QFlags) + ?overwriteMode@QTextEdit@@QBE_NXZ @ 6573 NONAME ; bool QTextEdit::overwriteMode(void) const + ??0QStyleOptionSizeGrip@@QAE@XZ @ 6574 NONAME ; QStyleOptionSizeGrip::QStyleOptionSizeGrip(void) + ?activateNextSubWindow@QMdiArea@@QAEXXZ @ 6575 NONAME ; void QMdiArea::activateNextSubWindow(void) + ?controlType@QSizePolicy@@QBE?AW4ControlType@1@XZ @ 6576 NONAME ; enum QSizePolicy::ControlType QSizePolicy::controlType(void) const + ?rect@QTextLine@@QBE?AVQRectF@@XZ @ 6577 NONAME ; class QRectF QTextLine::rect(void) const + ?qt_metacall@QGraphicsPixelizeEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6578 NONAME ; int QGraphicsPixelizeEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?question@QMessageBox@@SA?AW4StandardButton@1@PAVQWidget@@ABVQString@@1V?$QFlags@W4StandardButton@QMessageBox@@@@W421@@Z @ 6579 NONAME ; enum QMessageBox::StandardButton QMessageBox::question(class QWidget *, class QString const &, class QString const &, class QFlags, enum QMessageBox::StandardButton) + ?symbianResourceChange@QApplicationPrivate@@QAEHH@Z @ 6580 NONAME ; int QApplicationPrivate::symbianResourceChange(int) + ??6@YA?AVQDebug@@V0@ABVQPainterPath@@@Z @ 6581 NONAME ; class QDebug operator<<(class QDebug, class QPainterPath const &) + ??0QTextFrame@@QAE@PAVQTextDocument@@@Z @ 6582 NONAME ; QTextFrame::QTextFrame(class QTextDocument *) + ?draw@QPixmapBlurFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 6583 NONAME ; void QPixmapBlurFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ??_EQIconEngineFactoryInterfaceV2@@UAE@I@Z @ 6584 NONAME ; QIconEngineFactoryInterfaceV2::~QIconEngineFactoryInterfaceV2(unsigned int) + ?metaObject@QUndoStack@@UBEPBUQMetaObject@@XZ @ 6585 NONAME ; struct QMetaObject const * QUndoStack::metaObject(void) const + ?setRowMinimumHeight@QGridLayout@@QAEXHH@Z @ 6586 NONAME ; void QGridLayout::setRowMinimumHeight(int, int) + ?display@QLCDNumber@@QAEXN@Z @ 6587 NONAME ; void QLCDNumber::display(double) + ?hasClipping@QPainter@@QBE_NXZ @ 6588 NONAME ; bool QPainter::hasClipping(void) const + ?staticMetaObject@QMovie@@2UQMetaObject@@B @ 6589 NONAME ; struct QMetaObject const QMovie::staticMetaObject + ?setWhatChanged@QPinchGesture@@QAEXV?$QFlags@W4WhatChange@QPinchGesture@@@@@Z @ 6590 NONAME ; void QPinchGesture::setWhatChanged(class QFlags) + ?validator@QComboBox@@QBEPBVQValidator@@XZ @ 6591 NONAME ; class QValidator const * QComboBox::validator(void) const + ?intMaximum@QInputDialog@@QBEHXZ @ 6592 NONAME ; int QInputDialog::intMaximum(void) const + ?setFilterCaseSensitivity@QSortFilterProxyModel@@QAEXW4CaseSensitivity@Qt@@@Z @ 6593 NONAME ; void QSortFilterProxyModel::setFilterCaseSensitivity(enum Qt::CaseSensitivity) + ?font@QStandardItem@@QBE?AVQFont@@XZ @ 6594 NONAME ; class QFont QStandardItem::font(void) const + ?textWidth@QGraphicsTextItem@@QBEMXZ @ 6595 NONAME ; float QGraphicsTextItem::textWidth(void) const + ?changeEvent@QComboBox@@MAEXPAVQEvent@@@Z @ 6596 NONAME ; void QComboBox::changeEvent(class QEvent *) + ?qt_metacall@QKeyEventTransition@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6597 NONAME ; int QKeyEventTransition::qt_metacall(enum QMetaObject::Call, int, void * *) + ?drawRoundedRect@QPaintEngineEx@@UAEXABVQRectF@@MMW4SizeMode@Qt@@@Z @ 6598 NONAME ; void QPaintEngineEx::drawRoundedRect(class QRectF const &, float, float, enum Qt::SizeMode) + ?hasFocus@QGraphicsItem@@QBE_NXZ @ 6599 NONAME ; bool QGraphicsItem::hasFocus(void) const + ??0QDirModel@@QAE@PAVQObject@@@Z @ 6600 NONAME ; QDirModel::QDirModel(class QObject *) + ?update@QInputContext@@UAEXXZ @ 6601 NONAME ; void QInputContext::update(void) + ?eventFilter@QWidgetAction@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 6602 NONAME ; bool QWidgetAction::eventFilter(class QObject *, class QEvent *) + ??1QGuiPlatformPluginInterface@@UAE@XZ @ 6603 NONAME ; QGuiPlatformPluginInterface::~QGuiPlatformPluginInterface(void) + ??0QMatrix@@QAE@XZ @ 6604 NONAME ; QMatrix::QMatrix(void) + ?blurHint@QPixmapBlurFilter@@QBE?AW4RenderHint@Qt@@XZ @ 6605 NONAME ; enum Qt::RenderHint QPixmapBlurFilter::blurHint(void) const + ?metaObject@QMouseEventTransition@@UBEPBUQMetaObject@@XZ @ 6606 NONAME ; struct QMetaObject const * QMouseEventTransition::metaObject(void) const + ?quality@QPictureIO@@QBEHXZ @ 6607 NONAME ; int QPictureIO::quality(void) const + ?tr@QLineControl@@SA?AVQString@@PBD0@Z @ 6608 NONAME ; class QString QLineControl::tr(char const *, char const *) + ?selectedFont@QFontDialog@@QBE?AVQFont@@XZ @ 6609 NONAME ; class QFont QFontDialog::selectedFont(void) const + ??1QCoeFepInputContext@@UAE@XZ @ 6610 NONAME ; QCoeFepInputContext::~QCoeFepInputContext(void) + ?q_func@QPaintEngineExPrivate@@AAEPAVQPaintEngineEx@@XZ @ 6611 NONAME ; class QPaintEngineEx * QPaintEngineExPrivate::q_func(void) + ?setMatrixEnabled@QPainter@@QAEX_N@Z @ 6612 NONAME ; void QPainter::setMatrixEnabled(bool) + ?dateTime@QDateTimeEdit@@QBE?AVQDateTime@@XZ @ 6613 NONAME ; class QDateTime QDateTimeEdit::dateTime(void) const + ?tr@QSlider@@SA?AVQString@@PBD0@Z @ 6614 NONAME ; class QString QSlider::tr(char const *, char const *) + ?setToolTip@QListWidgetItem@@QAEXABVQString@@@Z @ 6615 NONAME ; void QListWidgetItem::setToolTip(class QString const &) + ?addAction@QActionGroup@@QAEPAVQAction@@ABVQString@@@Z @ 6616 NONAME ; class QAction * QActionGroup::addAction(class QString const &) + ?count@QTabBar@@QBEHXZ @ 6617 NONAME ; int QTabBar::count(void) const + ?trUtf8@QFormLayout@@SA?AVQString@@PBD0H@Z @ 6618 NONAME ; class QString QFormLayout::trUtf8(char const *, char const *, int) + ?qt_metacast@QTextList@@UAEPAXPBD@Z @ 6619 NONAME ; void * QTextList::qt_metacast(char const *) + ?supportsExtension@QGraphicsRectItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 6620 NONAME ; bool QGraphicsRectItem::supportsExtension(enum QGraphicsItem::Extension) const + ?trUtf8@QComboBox@@SA?AVQString@@PBD0H@Z @ 6621 NONAME ; class QString QComboBox::trUtf8(char const *, char const *, int) + ?fontDatabaseChanged@QApplication@@IAEXXZ @ 6622 NONAME ; void QApplication::fontDatabaseChanged(void) + ?setStretchFactor@QGraphicsLinearLayout@@QAEXPAVQGraphicsLayoutItem@@H@Z @ 6623 NONAME ; void QGraphicsLinearLayout::setStretchFactor(class QGraphicsLayoutItem *, int) + ??_EQScrollArea@@UAE@I@Z @ 6624 NONAME ; QScrollArea::~QScrollArea(unsigned int) + ?mapFromScene@QGraphicsView@@QBE?AVQPolygon@@MMMM@Z @ 6625 NONAME ; class QPolygon QGraphicsView::mapFromScene(float, float, float, float) const + ?resizeEvent@QTextEdit@@MAEXPAVQResizeEvent@@@Z @ 6626 NONAME ; void QTextEdit::resizeEvent(class QResizeEvent *) + ?objectFormatIndex@QTextFormatCollection@@QBEHH@Z @ 6627 NONAME ; int QTextFormatCollection::objectFormatIndex(int) const + ?trUtf8@QDirModel@@SA?AVQString@@PBD0@Z @ 6628 NONAME ; class QString QDirModel::trUtf8(char const *, char const *) + ??0QColorDialog@@QAE@PAVQWidget@@@Z @ 6629 NONAME ; QColorDialog::QColorDialog(class QWidget *) + ?insertRows@QStandardItem@@QAEXHABV?$QList@PAVQStandardItem@@@@@Z @ 6630 NONAME ; void QStandardItem::insertRows(int, class QList const &) + ?type@QStandardItem@@UBEHXZ @ 6631 NONAME ; int QStandardItem::type(void) const + ?tr@QItemSelectionModel@@SA?AVQString@@PBD0H@Z @ 6632 NONAME ; class QString QItemSelectionModel::tr(char const *, char const *, int) + ?count@QToolBox@@QBEHXZ @ 6633 NONAME ; int QToolBox::count(void) const + ?columnCountChanged@QTreeView@@IAEXHH@Z @ 6634 NONAME ; void QTreeView::columnCountChanged(int, int) + ??9QTextTableCell@@QBE_NABV0@@Z @ 6635 NONAME ; bool QTextTableCell::operator!=(class QTextTableCell const &) const + ?type@QGraphicsRectItem@@UBEHXZ @ 6636 NONAME ; int QGraphicsRectItem::type(void) const + ?setParentItemHelper@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 6637 NONAME ; void QGraphicsItemPrivate::setParentItemHelper(class QGraphicsItem *) + ??1QStyleOptionRubberBand@@QAE@XZ @ 6638 NONAME ; QStyleOptionRubberBand::~QStyleOptionRubberBand(void) + ?restoreRedirected@QPainter@@SAXPBVQPaintDevice@@@Z @ 6639 NONAME ; void QPainter::restoreRedirected(class QPaintDevice const *) + ?setCurrentFont@QFontDialog@@QAEXABVQFont@@@Z @ 6640 NONAME ; void QFontDialog::setCurrentFont(class QFont const &) + ?childAt_helper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N@Z @ 6641 NONAME ; class QWidget * QWidgetPrivate::childAt_helper(class QPoint const &, bool) const + ?setTabsClosable@QTabWidget@@QAEX_N@Z @ 6642 NONAME ; void QTabWidget::setTabsClosable(bool) + ?setAnchor@QTextCharFormat@@QAEX_N@Z @ 6643 NONAME ; void QTextCharFormat::setAnchor(bool) + ?isEmpty@QTextList@@QBE_NXZ @ 6644 NONAME ; bool QTextList::isEmpty(void) const + ?unpolish@QCommonStyle@@UAEXPAVQWidget@@@Z @ 6645 NONAME ; void QCommonStyle::unpolish(class QWidget *) + ?match@QProxyModel@@UBE?AV?$QList@VQModelIndex@@@@ABVQModelIndex@@HABVQVariant@@HV?$QFlags@W4MatchFlag@Qt@@@@@Z @ 6646 NONAME ; class QList QProxyModel::match(class QModelIndex const &, int, class QVariant const &, int, class QFlags) const + ?tr@QWidgetResizeHandler@@SA?AVQString@@PBD0H@Z @ 6647 NONAME ; class QString QWidgetResizeHandler::tr(char const *, char const *, int) + ?frameWidth@QFrame@@QBEHXZ @ 6648 NONAME ; int QFrame::frameWidth(void) const + ?tr@QGraphicsEffect@@SA?AVQString@@PBD0H@Z @ 6649 NONAME ; class QString QGraphicsEffect::tr(char const *, char const *, int) + ??0QVector3D@@AAE@MMMH@Z @ 6650 NONAME ; QVector3D::QVector3D(float, float, float, int) + ??0QStyleOptionToolButton@@QAE@XZ @ 6651 NONAME ; QStyleOptionToolButton::QStyleOptionToolButton(void) + ?minimumWidth@QGraphicsLayoutItem@@QBEMXZ @ 6652 NONAME ; float QGraphicsLayoutItem::minimumWidth(void) const + ?setTextFormat@QLabel@@QAEXW4TextFormat@Qt@@@Z @ 6653 NONAME ; void QLabel::setTextFormat(enum Qt::TextFormat) + ?setScreenPos@QGraphicsSceneWheelEvent@@QAEXABVQPoint@@@Z @ 6654 NONAME ; void QGraphicsSceneWheelEvent::setScreenPos(class QPoint const &) + ??0QWindowSurface@@QAE@PAVQWidget@@@Z @ 6655 NONAME ; QWindowSurface::QWindowSurface(class QWidget *) + ?columnMoved@QTreeView@@IAEXXZ @ 6656 NONAME ; void QTreeView::columnMoved(void) + ?mappedWidgetAt@QDataWidgetMapper@@QBEPAVQWidget@@H@Z @ 6657 NONAME ; class QWidget * QDataWidgetMapper::mappedWidgetAt(int) const + ?setVerticalTitleBar@QDockWidgetLayout@@QAEX_N@Z @ 6658 NONAME ; void QDockWidgetLayout::setVerticalTitleBar(bool) + ?exclusive@QButtonGroup@@QBE_NXZ @ 6659 NONAME ; bool QButtonGroup::exclusive(void) const + ?pos@QCursor@@SA?AVQPoint@@XZ @ 6660 NONAME ; class QPoint QCursor::pos(void) + ?columnMaximumWidth@QGraphicsGridLayout@@QBEMH@Z @ 6661 NONAME ; float QGraphicsGridLayout::columnMaximumWidth(int) const + ?informativeText@QMessageBox@@QBE?AVQString@@XZ @ 6662 NONAME ; class QString QMessageBox::informativeText(void) const + ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 6663 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *) + ?horizontalOffset@QHeaderView@@MBEHXZ @ 6664 NONAME ; int QHeaderView::horizontalOffset(void) const + ??0QTextBlockGroup@@IAE@PAVQTextDocument@@@Z @ 6665 NONAME ; QTextBlockGroup::QTextBlockGroup(class QTextDocument *) + ?mapToPolygon@QTransform@@QBE?AVQPolygon@@ABVQRect@@@Z @ 6666 NONAME ; class QPolygon QTransform::mapToPolygon(class QRect const &) const + ?undoAvailable@QPlainTextEdit@@IAEX_N@Z @ 6667 NONAME ; void QPlainTextEdit::undoAvailable(bool) + ?resolveLayoutDirection@QWidgetPrivate@@QAEXXZ @ 6668 NONAME ; void QWidgetPrivate::resolveLayoutDirection(void) + ?tr@QPixmapFilter@@SA?AVQString@@PBD0H@Z @ 6669 NONAME ; class QString QPixmapFilter::tr(char const *, char const *, int) + ?toImageFormat@QTextFormat@@QBE?AVQTextImageFormat@@XZ @ 6670 NONAME ; class QTextImageFormat QTextFormat::toImageFormat(void) const + ?rowsAboutToBeRemoved@QTreeView@@MAEXABVQModelIndex@@HH@Z @ 6671 NONAME ; void QTreeView::rowsAboutToBeRemoved(class QModelIndex const &, int, int) + ?focusInEvent@QGraphicsScene@@MAEXPAVQFocusEvent@@@Z @ 6672 NONAME ; void QGraphicsScene::focusInEvent(class QFocusEvent *) + ?inputMethodQuery@QAbstractItemView@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 6673 NONAME ; class QVariant QAbstractItemView::inputMethodQuery(enum Qt::InputMethodQuery) const + ?originChanged@QGraphicsRotation@@IAEXXZ @ 6674 NONAME ; void QGraphicsRotation::originChanged(void) + ?setCurrentCell@QTableWidget@@QAEXHH@Z @ 6675 NONAME ; void QTableWidget::setCurrentCell(int, int) + ??1QRadioButton@@UAE@XZ @ 6676 NONAME ; QRadioButton::~QRadioButton(void) + ??BQTransform@@QBE?AVQVariant@@XZ @ 6677 NONAME ; QTransform::operator class QVariant(void) const + ?contentsRect@QWidget@@QBE?AVQRect@@XZ @ 6678 NONAME ; class QRect QWidget::contentsRect(void) const + ?information@QMessageBox@@SAHPAVQWidget@@ABVQString@@1111HH@Z @ 6679 NONAME ; int QMessageBox::information(class QWidget *, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, int, int) + ?getStaticMetaObject@QWidgetResizeHandler@@SAABUQMetaObject@@XZ @ 6680 NONAME ; struct QMetaObject const & QWidgetResizeHandler::getStaticMetaObject(void) + ?sectionPosition@QHeaderView@@QBEHH@Z @ 6681 NONAME ; int QHeaderView::sectionPosition(int) const + ?invisibleRootItem@QTreeWidget@@QBEPAVQTreeWidgetItem@@XZ @ 6682 NONAME ; class QTreeWidgetItem * QTreeWidget::invisibleRootItem(void) const + ?hsvHueF@QColor@@QBEMXZ @ 6683 NONAME ; float QColor::hsvHueF(void) const + ?boundingRect@QFontMetricsF@@QBE?AVQRectF@@ABVQString@@@Z @ 6684 NONAME ; class QRectF QFontMetricsF::boundingRect(class QString const &) const + ?insertHtml@QTextCursor@@QAEXABVQString@@@Z @ 6685 NONAME ; void QTextCursor::insertHtml(class QString const &) + ?sizeHint@QStyledItemDelegate@@UBE?AVQSize@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 6686 NONAME ; class QSize QStyledItemDelegate::sizeHint(class QStyleOptionViewItem const &, class QModelIndex const &) const + ?setNameFilters@QFileSystemModel@@QAEXABVQStringList@@@Z @ 6687 NONAME ; void QFileSystemModel::setNameFilters(class QStringList const &) + ?installSceneEventFilter@QGraphicsItem@@QAEXPAV1@@Z @ 6688 NONAME ; void QGraphicsItem::installSceneEventFilter(class QGraphicsItem *) + ?blurRadius@QGraphicsBlurEffect@@QBEHXZ @ 6689 NONAME ; int QGraphicsBlurEffect::blurRadius(void) const + ?opaqueArea@QAbstractGraphicsShapeItem@@UBE?AVQPainterPath@@XZ @ 6690 NONAME ; class QPainterPath QAbstractGraphicsShapeItem::opaqueArea(void) const + ?eventFilter@QSizeGrip@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 6691 NONAME ; bool QSizeGrip::eventFilter(class QObject *, class QEvent *) + ?resizeEvent@QComboBox@@MAEXPAVQResizeEvent@@@Z @ 6692 NONAME ; void QComboBox::resizeEvent(class QResizeEvent *) + ??6@YAAAVQDataStream@@AAV0@ABVQQuaternion@@@Z @ 6693 NONAME ; class QDataStream & operator<<(class QDataStream &, class QQuaternion const &) + ?changeOverrideCursor@QApplication@@SAXABVQCursor@@@Z @ 6694 NONAME ; void QApplication::changeOverrideCursor(class QCursor const &) + ?setCurrentItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@HV?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 6695 NONAME ; void QTreeWidget::setCurrentItem(class QTreeWidgetItem *, int, class QFlags) + ?qHasPixmapTexture@@YA_NABVQBrush@@@Z @ 6696 NONAME ; bool qHasPixmapTexture(class QBrush const &) + ?options@QFontDialog@@QBE?AV?$QFlags@W4FontDialogOption@QFontDialog@@@@XZ @ 6697 NONAME ; class QFlags QFontDialog::options(void) const + ?setMatrix@QBrush@@QAEXABVQMatrix@@@Z @ 6698 NONAME ; void QBrush::setMatrix(class QMatrix const &) + ??1QSwipeGesture@@UAE@XZ @ 6699 NONAME ; QSwipeGesture::~QSwipeGesture(void) + ?light@QPalette@@QBEABVQBrush@@XZ @ 6700 NONAME ; class QBrush const & QPalette::light(void) const + ?qt_metacast@QPixmapDropShadowFilter@@UAEPAXPBD@Z @ 6701 NONAME ; void * QPixmapDropShadowFilter::qt_metacast(char const *) + ?imageFormat@QImageReader@@SA?AVQByteArray@@PAVQIODevice@@@Z @ 6702 NONAME ; class QByteArray QImageReader::imageFormat(class QIODevice *) + ?checkState@QCheckBox@@QBE?AW4CheckState@Qt@@XZ @ 6703 NONAME ; enum Qt::CheckState QCheckBox::checkState(void) const + ?alphaRGBMapForGlyph@QFontEngine@@UAE?AVQImage@@IHABVQTransform@@@Z @ 6704 NONAME ; class QImage QFontEngine::alphaRGBMapForGlyph(unsigned int, int, class QTransform const &) + ?xScale@QGraphicsScale@@QBEMXZ @ 6705 NONAME ; float QGraphicsScale::xScale(void) const + ?sizePolicy@QWidget@@QBE?AVQSizePolicy@@XZ @ 6706 NONAME ; class QSizePolicy QWidget::sizePolicy(void) const + ??0QListWidgetItem@@QAE@ABVQString@@PAVQListWidget@@H@Z @ 6707 NONAME ; QListWidgetItem::QListWidgetItem(class QString const &, class QListWidget *, int) + ?setDefaultAction@QToolButton@@QAEXPAVQAction@@@Z @ 6708 NONAME ; void QToolButton::setDefaultAction(class QAction *) + ?addSpacing@QBoxLayout@@QAEXH@Z @ 6709 NONAME ; void QBoxLayout::addSpacing(int) + ?keyboardInputDirection@QApplication@@SA?AW4LayoutDirection@Qt@@XZ @ 6710 NONAME ; enum Qt::LayoutDirection QApplication::keyboardInputDirection(void) + ?tr@QGraphicsBlurEffect@@SA?AVQString@@PBD0H@Z @ 6711 NONAME ; class QString QGraphicsBlurEffect::tr(char const *, char const *, int) + ?propagatePaletteChange@QWidgetPrivate@@QAEXXZ @ 6712 NONAME ; void QWidgetPrivate::propagatePaletteChange(void) + ??_EQGraphicsLinearLayout@@UAE@I@Z @ 6713 NONAME ; QGraphicsLinearLayout::~QGraphicsLinearLayout(unsigned int) + ?d_func@QSizeGrip@@ABEPBVQSizeGripPrivate@@XZ @ 6714 NONAME ; class QSizeGripPrivate const * QSizeGrip::d_func(void) const + ?setCursorIsFocusIndicator@QTextControl@@QAEX_N@Z @ 6715 NONAME ; void QTextControl::setCursorIsFocusIndicator(bool) + ?selectionChanged@QTextEdit@@IAEXXZ @ 6716 NONAME ; void QTextEdit::selectionChanged(void) + ??0QListWidgetItem@@QAE@PAVQListWidget@@H@Z @ 6717 NONAME ; QListWidgetItem::QListWidgetItem(class QListWidget *, int) + ?applicationFontFamilies@QFontDatabase@@SA?AVQStringList@@H@Z @ 6718 NONAME ; class QStringList QFontDatabase::applicationFontFamilies(int) + ?drawComplexControl@QCommonStyle@@UBEXW4ComplexControl@QStyle@@PBVQStyleOptionComplex@@PAVQPainter@@PBVQWidget@@@Z @ 6719 NONAME ; void QCommonStyle::drawComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPainter *, class QWidget const *) const + ?buttonClicked@QButtonGroup@@IAEXPAVQAbstractButton@@@Z @ 6720 NONAME ; void QButtonGroup::buttonClicked(class QAbstractButton *) + ?d_func@QFileSystemModel@@ABEPBVQFileSystemModelPrivate@@XZ @ 6721 NONAME ; class QFileSystemModelPrivate const * QFileSystemModel::d_func(void) const + ?read@QTreeWidgetItem@@UAEXAAVQDataStream@@@Z @ 6722 NONAME ; void QTreeWidgetItem::read(class QDataStream &) + ?qt_metacall@QAbstractItemDelegate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6723 NONAME ; int QAbstractItemDelegate::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QUndoStack@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6724 NONAME ; int QUndoStack::qt_metacall(enum QMetaObject::Call, int, void * *) + ?scrollDirtyRegion@QAbstractItemView@@IAEXHH@Z @ 6725 NONAME ; void QAbstractItemView::scrollDirtyRegion(int, int) + ??D@YA?AVQLine@@ABV0@ABVQMatrix@@@Z @ 6726 NONAME ; class QLine operator*(class QLine const &, class QMatrix const &) + ?rightBearing@QFontMetricsF@@QBEMVQChar@@@Z @ 6727 NONAME ; float QFontMetricsF::rightBearing(class QChar) const + ??0QImageIOPlugin@@QAE@PAVQObject@@@Z @ 6728 NONAME ; QImageIOPlugin::QImageIOPlugin(class QObject *) + ?qt_metacall@QGraphicsProxyWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6729 NONAME ; int QGraphicsProxyWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setFrameFormat@QTextFrame@@QAEXABVQTextFrameFormat@@@Z @ 6730 NONAME ; void QTextFrame::setFrameFormat(class QTextFrameFormat const &) + ?index@QFileSystemModel@@QBE?AVQModelIndex@@ABVQString@@H@Z @ 6731 NONAME ; class QModelIndex QFileSystemModel::index(class QString const &, int) const + ?translate@QPainter@@QAEXABVQPointF@@@Z @ 6732 NONAME ; void QPainter::translate(class QPointF const &) + ??FQTreeWidgetItemIterator@@QAEAAV0@XZ @ 6733 NONAME ; class QTreeWidgetItemIterator & QTreeWidgetItemIterator::operator--(void) + ?paintEvent@QWidget@@MAEXPAVQPaintEvent@@@Z @ 6734 NONAME ; void QWidget::paintEvent(class QPaintEvent *) + ?resizeEvent@QAbstractItemView@@MAEXPAVQResizeEvent@@@Z @ 6735 NONAME ; void QAbstractItemView::resizeEvent(class QResizeEvent *) + ?setRenderHint@QPainter@@QAEXW4RenderHint@1@_N@Z @ 6736 NONAME ; void QPainter::setRenderHint(enum QPainter::RenderHint, bool) + ?colorChanged@QGraphicsColorizeEffect@@IAEXABVQColor@@@Z @ 6737 NONAME ; void QGraphicsColorizeEffect::colorChanged(class QColor const &) + ?symbianProcessWsEvent@QApplicationPrivate@@QAEHPBVTWsEvent@@@Z @ 6738 NONAME ; int QApplicationPrivate::symbianProcessWsEvent(class TWsEvent const *) + ?setControlType@QSizePolicy@@QAEXW4ControlType@1@@Z @ 6739 NONAME ; void QSizePolicy::setControlType(enum QSizePolicy::ControlType) + ?controlPointRect@QVectorPath@@QBE?AVQRectF@@XZ @ 6740 NONAME ; class QRectF QVectorPath::controlPointRect(void) const + ?minLeftBearing@QFontMetricsF@@QBEMXZ @ 6741 NONAME ; float QFontMetricsF::minLeftBearing(void) const + ?effectiveRectFor@QWidgetPrivate@@QBE?AVQRect@@ABV2@@Z @ 6742 NONAME ; class QRect QWidgetPrivate::effectiveRectFor(class QRect const &) const + ?scrollContentsBy@QGraphicsView@@MAEXHH@Z @ 6743 NONAME ; void QGraphicsView::scrollContentsBy(int, int) + ??0QMimeSource@@QAE@ABV0@@Z @ 6744 NONAME ; QMimeSource::QMimeSource(class QMimeSource const &) + ?rotateVector@QQuaternion@@QBE?AVQVector3D@@ABV2@@Z @ 6745 NONAME ; class QVector3D QQuaternion::rotateVector(class QVector3D const &) const + ?setSource@QGraphicsSceneDragDropEvent@@QAEXPAVQWidget@@@Z @ 6746 NONAME ; void QGraphicsSceneDragDropEvent::setSource(class QWidget *) + ??0QScrollBar@@QAE@PAVQWidget@@@Z @ 6747 NONAME ; QScrollBar::QScrollBar(class QWidget *) + ??8QPainterPath@@QBE_NABV0@@Z @ 6748 NONAME ; bool QPainterPath::operator==(class QPainterPath const &) const + ?trUtf8@QAbstractProxyModel@@SA?AVQString@@PBD0H@Z @ 6749 NONAME ; class QString QAbstractProxyModel::trUtf8(char const *, char const *, int) + ?buttonDownPos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@W4MouseButton@Qt@@@Z @ 6750 NONAME ; class QPointF QGraphicsSceneMouseEvent::buttonDownPos(enum Qt::MouseButton) const + ?currentTextChanged@QListWidget@@IAEXABVQString@@@Z @ 6751 NONAME ; void QListWidget::currentTextChanged(class QString const &) + ?metaObject@QMdiArea@@UBEPBUQMetaObject@@XZ @ 6752 NONAME ; struct QMetaObject const * QMdiArea::metaObject(void) const + ??0QStyleOptionQ3ListViewItem@@IAE@H@Z @ 6753 NONAME ; QStyleOptionQ3ListViewItem::QStyleOptionQ3ListViewItem(int) + ?setVerticalScrollBar@QAbstractScrollArea@@QAEXPAVQScrollBar@@@Z @ 6754 NONAME ; void QAbstractScrollArea::setVerticalScrollBar(class QScrollBar *) + ?capStyle@QStroker@@QBE?AW4PenCapStyle@Qt@@XZ @ 6755 NONAME ; enum Qt::PenCapStyle QStroker::capStyle(void) const + ?mousePressEvent@QLabel@@MAEXPAVQMouseEvent@@@Z @ 6756 NONAME ; void QLabel::mousePressEvent(class QMouseEvent *) + ?getStaticMetaObject@QTextFrame@@SAABUQMetaObject@@XZ @ 6757 NONAME ; struct QMetaObject const & QTextFrame::getStaticMetaObject(void) + ?fromImage@QPixmap@@SA?AV1@ABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 6758 NONAME ; class QPixmap QPixmap::fromImage(class QImage const &, class QFlags) + ?selectionChanged@QItemSelectionModel@@IAEXABVQItemSelection@@0@Z @ 6759 NONAME ; void QItemSelectionModel::selectionChanged(class QItemSelection const &, class QItemSelection const &) + ?updateCells@QCalendarWidget@@IAEXXZ @ 6760 NONAME ; void QCalendarWidget::updateCells(void) + ?tr@QFrame@@SA?AVQString@@PBD0H@Z @ 6761 NONAME ; class QString QFrame::tr(char const *, char const *, int) + ??0QTreeView@@IAE@AAVQTreeViewPrivate@@PAVQWidget@@@Z @ 6762 NONAME ; QTreeView::QTreeView(class QTreeViewPrivate &, class QWidget *) + ??0QAbstractItemView@@QAE@PAVQWidget@@@Z @ 6763 NONAME ; QAbstractItemView::QAbstractItemView(class QWidget *) + ?maximumWidth@QTextLayout@@QBEMXZ @ 6764 NONAME ; float QTextLayout::maximumWidth(void) const + ?setPos@QGraphicsSceneContextMenuEvent@@QAEXABVQPointF@@@Z @ 6765 NONAME ; void QGraphicsSceneContextMenuEvent::setPos(class QPointF const &) + ?shear@QMatrix@@QAEAAV1@MM@Z @ 6766 NONAME ; class QMatrix & QMatrix::shear(float, float) + ??_EQFileDialog@@UAE@I@Z @ 6767 NONAME ; QFileDialog::~QFileDialog(unsigned int) + ?drawText@QPainter@@QAEXHHABVQString@@@Z @ 6768 NONAME ; void QPainter::drawText(int, int, class QString const &) + ?currentWidget@QToolBox@@QBEPAVQWidget@@XZ @ 6769 NONAME ; class QWidget * QToolBox::currentWidget(void) const + ?setX@QGraphicsItem@@QAEXM@Z @ 6770 NONAME ; void QGraphicsItem::setX(float) + ?insertColumn@QTableWidget@@QAEXH@Z @ 6771 NONAME ; void QTableWidget::insertColumn(int) + ??0QInputMethodEvent@@QAE@ABVQString@@ABV?$QList@VAttribute@QInputMethodEvent@@@@@Z @ 6772 NONAME ; QInputMethodEvent::QInputMethodEvent(class QString const &, class QList const &) + ??_EQGraphicsLineItem@@UAE@I@Z @ 6773 NONAME ; QGraphicsLineItem::~QGraphicsLineItem(unsigned int) + ?connectPath@QPainterPath@@QAEXABV1@@Z @ 6774 NONAME ; void QPainterPath::connectPath(class QPainterPath const &) + ?drawControl@QCommonStyle@@UBEXW4ControlElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 6775 NONAME ; void QCommonStyle::drawControl(enum QStyle::ControlElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?qt_metacast@QUndoStack@@UAEPAXPBD@Z @ 6776 NONAME ; void * QUndoStack::qt_metacast(char const *) + ?trUtf8@QColumnView@@SA?AVQString@@PBD0H@Z @ 6777 NONAME ; class QString QColumnView::trUtf8(char const *, char const *, int) + ?dragMoveEvent@QAbstractItemView@@MAEXPAVQDragMoveEvent@@@Z @ 6778 NONAME ; void QAbstractItemView::dragMoveEvent(class QDragMoveEvent *) + ?widthMM@QPaintDevice@@QBEHXZ @ 6779 NONAME ; int QPaintDevice::widthMM(void) const + ?itemAtPosition@QGridLayout@@QBEPAVQLayoutItem@@HH@Z @ 6780 NONAME ; class QLayoutItem * QGridLayout::itemAtPosition(int, int) const + ?setFocus@QGraphicsScene@@QAEXW4FocusReason@Qt@@@Z @ 6781 NONAME ; void QGraphicsScene::setFocus(enum Qt::FocusReason) + ?ensureCursorVisible@QTextEdit@@QAEXXZ @ 6782 NONAME ; void QTextEdit::ensureCursorVisible(void) + ?menu@QAction@@QBEPAVQMenu@@XZ @ 6783 NONAME ; class QMenu * QAction::menu(void) const + ?getStaticMetaObject@QTextControl@@SAABUQMetaObject@@XZ @ 6784 NONAME ; struct QMetaObject const & QTextControl::getStaticMetaObject(void) + ?angle@QConicalGradient@@QBEMXZ @ 6785 NONAME ; float QConicalGradient::angle(void) const + ?metaObject@QWidgetAction@@UBEPBUQMetaObject@@XZ @ 6786 NONAME ; struct QMetaObject const * QWidgetAction::metaObject(void) const + ??1QInputEvent@@UAE@XZ @ 6787 NONAME ; QInputEvent::~QInputEvent(void) + ?freeMemory@QTextEngine@@QAEXXZ @ 6788 NONAME ; void QTextEngine::freeMemory(void) + ?setRadius@QPixmapBlurFilter@@QAEXH@Z @ 6789 NONAME ; void QPixmapBlurFilter::setRadius(int) + ?metaObject@QDialogButtonBox@@UBEPBUQMetaObject@@XZ @ 6790 NONAME ; struct QMetaObject const * QDialogButtonBox::metaObject(void) const + ?qt_metacall@QWidgetAction@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6791 NONAME ; int QWidgetAction::qt_metacall(enum QMetaObject::Call, int, void * *) + ?addSubWindow@QMdiArea@@QAEPAVQMdiSubWindow@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 6792 NONAME ; class QMdiSubWindow * QMdiArea::addSubWindow(class QWidget *, class QFlags) + ?tableCellFormatIndex@QTextTableCell@@QBEHXZ @ 6793 NONAME ; int QTextTableCell::tableCellFormatIndex(void) const + ?staticMetaObject@QPixmapFilter@@2UQMetaObject@@B @ 6794 NONAME ; struct QMetaObject const QPixmapFilter::staticMetaObject + ?tr@QItemSelectionModel@@SA?AVQString@@PBD0@Z @ 6795 NONAME ; class QString QItemSelectionModel::tr(char const *, char const *) + ?drawBase@QTabBar@@QBE_NXZ @ 6796 NONAME ; bool QTabBar::drawBase(void) const + ?setCompositionMode@QPainter@@QAEXW4CompositionMode@1@@Z @ 6797 NONAME ; void QPainter::setCompositionMode(enum QPainter::CompositionMode) + ?itemAt@QListWidget@@QBEPAVQListWidgetItem@@HH@Z @ 6798 NONAME ; class QListWidgetItem * QListWidget::itemAt(int, int) const + ?textAlignment@QTreeWidgetItem@@QBEHH@Z @ 6799 NONAME ; int QTreeWidgetItem::textAlignment(int) const + ??1QGraphicsEllipseItem@@UAE@XZ @ 6800 NONAME ; QGraphicsEllipseItem::~QGraphicsEllipseItem(void) + ??1QGraphicsLineItem@@UAE@XZ @ 6801 NONAME ; QGraphicsLineItem::~QGraphicsLineItem(void) + ?horizontalSpacing@QGraphicsGridLayout@@QBEMXZ @ 6802 NONAME ; float QGraphicsGridLayout::horizontalSpacing(void) const + ?text@QTextItem@@QBE?AVQString@@XZ @ 6803 NONAME ; class QString QTextItem::text(void) const + ?fontSelected@QFontDialog@@IAEXABVQFont@@@Z @ 6804 NONAME ; void QFontDialog::fontSelected(class QFont const &) + ?defaultAction@QMenu@@QBEPAVQAction@@XZ @ 6805 NONAME ; class QAction * QMenu::defaultAction(void) const + ?horizontalOffset@QColumnView@@MBEHXZ @ 6806 NONAME ; int QColumnView::horizontalOffset(void) const + ?parseInputMask@QLineControl@@AAEXABVQString@@@Z @ 6807 NONAME ; void QLineControl::parseInputMask(class QString const &) + ?qFadeEffect@@YAXPAVQWidget@@H@Z @ 6808 NONAME ; void qFadeEffect(class QWidget *, int) + ?trUtf8@QPushButton@@SA?AVQString@@PBD0H@Z @ 6809 NONAME ; class QString QPushButton::trUtf8(char const *, char const *, int) + ?isFinished@QSound@@QBE_NXZ @ 6810 NONAME ; bool QSound::isFinished(void) const + ?hasSelection@QItemSelectionModel@@QBE_NXZ @ 6811 NONAME ; bool QItemSelectionModel::hasSelection(void) const + ?mnemonic@QKeySequence@@SA?AV1@ABVQString@@@Z @ 6812 NONAME ; class QKeySequence QKeySequence::mnemonic(class QString const &) + ?selectionChanged@QAbstractItemView@@MAEXABVQItemSelection@@0@Z @ 6813 NONAME ; void QAbstractItemView::selectionChanged(class QItemSelection const &, class QItemSelection const &) + ??0QDockWidget@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 6814 NONAME ; QDockWidget::QDockWidget(class QWidget *, class QFlags) + ?itemChanged@QStandardItemModel@@IAEXPAVQStandardItem@@@Z @ 6815 NONAME ; void QStandardItemModel::itemChanged(class QStandardItem *) + ?colormap@QColormap@@QBE?BV?$QVector@VQColor@@@@XZ @ 6816 NONAME ; class QVector const QColormap::colormap(void) const + ?getStaticMetaObject@QInputContext@@SAABUQMetaObject@@XZ @ 6817 NONAME ; struct QMetaObject const & QInputContext::getStaticMetaObject(void) + ??_EQErrorMessage@@UAE@I@Z @ 6818 NONAME ; QErrorMessage::~QErrorMessage(unsigned int) + ?d_func@QGraphicsSceneResizeEvent@@AAEPAVQGraphicsSceneResizeEventPrivate@@XZ @ 6819 NONAME ; class QGraphicsSceneResizeEventPrivate * QGraphicsSceneResizeEvent::d_func(void) + ?detach@QPixmap@@QAEXXZ @ 6820 NONAME ; void QPixmap::detach(void) + ?getStaticMetaObject@QDoubleValidator@@SAABUQMetaObject@@XZ @ 6821 NONAME ; struct QMetaObject const & QDoubleValidator::getStaticMetaObject(void) + ?trUtf8@QAbstractSpinBox@@SA?AVQString@@PBD0@Z @ 6822 NONAME ; class QString QAbstractSpinBox::trUtf8(char const *, char const *) + ??9QTextLength@@QBE_NABV0@@Z @ 6823 NONAME ; bool QTextLength::operator!=(class QTextLength const &) const + ?maximumWidth@QWidget@@QBEHXZ @ 6824 NONAME ; int QWidget::maximumWidth(void) const + ?setBrushOrigin@QPainter@@QAEXABVQPoint@@@Z @ 6825 NONAME ; void QPainter::setBrushOrigin(class QPoint const &) + ?getWidgetPosition@QFormLayout@@QBEXPAVQWidget@@PAHPAW4ItemRole@1@@Z @ 6826 NONAME ; void QFormLayout::getWidgetPosition(class QWidget *, int *, enum QFormLayout::ItemRole *) const + ?dataChanged@QAbstractItemView@@MAEXABVQModelIndex@@0@Z @ 6827 NONAME ; void QAbstractItemView::dataChanged(class QModelIndex const &, class QModelIndex const &) + ?addRect@QGraphicsScene@@QAEPAVQGraphicsRectItem@@ABVQRectF@@ABVQPen@@ABVQBrush@@@Z @ 6828 NONAME ; class QGraphicsRectItem * QGraphicsScene::addRect(class QRectF const &, class QPen const &, class QBrush const &) + ?isSectionHidden@QHeaderView@@QBE_NH@Z @ 6829 NONAME ; bool QHeaderView::isSectionHidden(int) const + ?mapToScene@QGraphicsView@@QBE?AVQPolygonF@@ABVQRect@@@Z @ 6830 NONAME ; class QPolygonF QGraphicsView::mapToScene(class QRect const &) const + ?ascent@QLineControl@@QBEHXZ @ 6831 NONAME ; int QLineControl::ascent(void) const + ?scheduleDelayedItemsLayout@QAbstractItemView@@IAEXXZ @ 6832 NONAME ; void QAbstractItemView::scheduleDelayedItemsLayout(void) + ?testDirty@QPaintEngine@@QAE_NV?$QFlags@W4DirtyFlag@QPaintEngine@@@@@Z @ 6833 NONAME ; bool QPaintEngine::testDirty(class QFlags) + ?setChecked@QAction@@QAEX_N@Z @ 6834 NONAME ; void QAction::setChecked(bool) + ?drawPixmap@QPainter@@QAEXABVQRectF@@ABVQPixmap@@0@Z @ 6835 NONAME ; void QPainter::drawPixmap(class QRectF const &, class QPixmap const &, class QRectF const &) + ?metaObject@QSplashScreen@@UBEPBUQMetaObject@@XZ @ 6836 NONAME ; struct QMetaObject const * QSplashScreen::metaObject(void) const + ?keyboardSearch@QTreeView@@UAEXABVQString@@@Z @ 6837 NONAME ; void QTreeView::keyboardSearch(class QString const &) + ?midLineWidth@QFrame@@QBEHXZ @ 6838 NONAME ; int QFrame::midLineWidth(void) const + ?priority@QAction@@QBE?AW4Priority@1@XZ @ 6839 NONAME ; enum QAction::Priority QAction::priority(void) const + ?qt_metacast@QStackedWidget@@UAEPAXPBD@Z @ 6840 NONAME ; void * QStackedWidget::qt_metacast(char const *) + ?addDockWidget@QMainWindow@@QAEXW4DockWidgetArea@Qt@@PAVQDockWidget@@@Z @ 6841 NONAME ; void QMainWindow::addDockWidget(enum Qt::DockWidgetArea, class QDockWidget *) + ?hsvSaturation@QColor@@QBEHXZ @ 6842 NONAME ; int QColor::hsvSaturation(void) const + ?setFontFamily@QTextCharFormat@@QAEXABVQString@@@Z @ 6843 NONAME ; void QTextCharFormat::setFontFamily(class QString const &) + ?getStaticMetaObject@QFileDialog@@SAABUQMetaObject@@XZ @ 6844 NONAME ; struct QMetaObject const & QFileDialog::getStaticMetaObject(void) + ?resolveFont@QWidgetPrivate@@QAEXXZ @ 6845 NONAME ; void QWidgetPrivate::resolveFont(void) + ?removeButton@QButtonGroup@@QAEXPAVQAbstractButton@@@Z @ 6846 NONAME ; void QButtonGroup::removeButton(class QAbstractButton *) + ?sizeHint@QWidgetItemV2@@UBE?AVQSize@@XZ @ 6847 NONAME ; class QSize QWidgetItemV2::sizeHint(void) const + ?isAccepted@QGestureEvent@@QBE_NPAVQGesture@@@Z @ 6848 NONAME ; bool QGestureEvent::isAccepted(class QGesture *) const + ?changeEvent@QSplitter@@MAEXPAVQEvent@@@Z @ 6849 NONAME ; void QSplitter::changeEvent(class QEvent *) + ?letterSpacing@QFont@@QBEMXZ @ 6850 NONAME ; float QFont::letterSpacing(void) const + ?backgroundMode@QPaintEngineState@@QBE?AW4BGMode@Qt@@XZ @ 6851 NONAME ; enum Qt::BGMode QPaintEngineState::backgroundMode(void) const + ?staticMetaObject@QCoeFepInputContext@@2UQMetaObject@@B @ 6852 NONAME ; struct QMetaObject const QCoeFepInputContext::staticMetaObject + ?enterWhatsThisMode@QWhatsThis@@SAXXZ @ 6853 NONAME ; void QWhatsThis::enterWhatsThisMode(void) + ?textInteractionFlags@QPlainTextEdit@@QBE?AV?$QFlags@W4TextInteractionFlag@Qt@@@@XZ @ 6854 NONAME ; class QFlags QPlainTextEdit::textInteractionFlags(void) const + ?addToolBar@QMainWindow@@QAEXPAVQToolBar@@@Z @ 6855 NONAME ; void QMainWindow::addToolBar(class QToolBar *) + ?initializeMultitouch@QApplicationPrivate@@QAEXXZ @ 6856 NONAME ; void QApplicationPrivate::initializeMultitouch(void) + ??_EQStandardItem@@UAE@I@Z @ 6857 NONAME ; QStandardItem::~QStandardItem(unsigned int) + ?isComboBoxEditable@QInputDialog@@QBE_NXZ @ 6858 NONAME ; bool QInputDialog::isComboBoxEditable(void) const + ?midPoint@QBezier@@QBE?AVQPointF@@XZ @ 6859 NONAME ; class QPointF QBezier::midPoint(void) const + ?isEditable@QComboBox@@QBE_NXZ @ 6860 NONAME ; bool QComboBox::isEditable(void) const + ?d_func@QPicture@@ABEPBVQPicturePrivate@@XZ @ 6861 NONAME ; class QPicturePrivate const * QPicture::d_func(void) const + ?inputMethodEvent@QGraphicsTextItem@@MAEXPAVQInputMethodEvent@@@Z @ 6862 NONAME ; void QGraphicsTextItem::inputMethodEvent(class QInputMethodEvent *) + ?isEmpty@QSpacerItem@@UBE_NXZ @ 6863 NONAME ; bool QSpacerItem::isEmpty(void) const + ?subtracted@QPolygonF@@QBE?AV1@ABV1@@Z @ 6864 NONAME ; class QPolygonF QPolygonF::subtracted(class QPolygonF const &) const + ??_EQWidgetAction@@UAE@I@Z @ 6865 NONAME ; QWidgetAction::~QWidgetAction(unsigned int) + ?boundingRectFor@QGraphicsDropShadowEffect@@UBE?AVQRectF@@ABV2@@Z @ 6866 NONAME ; class QRectF QGraphicsDropShadowEffect::boundingRectFor(class QRectF const &) const + ?isDetached@QPicture@@QBE_NXZ @ 6867 NONAME ; bool QPicture::isDetached(void) const + ?setSizeIncrement@QWidget@@QAEXABVQSize@@@Z @ 6868 NONAME ; void QWidget::setSizeIncrement(class QSize const &) + ?setModified@QTextDocument@@QAEX_N@Z @ 6869 NONAME ; void QTextDocument::setModified(bool) + ?createExtra@QWidgetPrivate@@QAEXXZ @ 6870 NONAME ; void QWidgetPrivate::createExtra(void) + ?lineSpacing@QFontMetrics@@QBEHXZ @ 6871 NONAME ; int QFontMetrics::lineSpacing(void) const + ?d_func@QWidgetAction@@AAEPAVQWidgetActionPrivate@@XZ @ 6872 NONAME ; class QWidgetActionPrivate * QWidgetAction::d_func(void) + ?d_func@QActionGroup@@AAEPAVQActionGroupPrivate@@XZ @ 6873 NONAME ; class QActionGroupPrivate * QActionGroup::d_func(void) + ?qt_metacast@QFrame@@UAEPAXPBD@Z @ 6874 NONAME ; void * QFrame::qt_metacast(char const *) + ?ensureVisible@QGraphicsView@@QAEXABVQRectF@@HH@Z @ 6875 NONAME ; void QGraphicsView::ensureVisible(class QRectF const &, int, int) + ?textInteractionFlags@QLabel@@QBE?AV?$QFlags@W4TextInteractionFlag@Qt@@@@XZ @ 6876 NONAME ; class QFlags QLabel::textInteractionFlags(void) const + ?keyPressEvent@QGraphicsItem@@MAEXPAVQKeyEvent@@@Z @ 6877 NONAME ; void QGraphicsItem::keyPressEvent(class QKeyEvent *) + ?setInformativeText@QMessageBox@@QAEXABVQString@@@Z @ 6878 NONAME ; void QMessageBox::setInformativeText(class QString const &) + ?levelOfDetailFromTransform@QStyleOptionGraphicsItem@@SAMABVQTransform@@@Z @ 6879 NONAME ; float QStyleOptionGraphicsItem::levelOfDetailFromTransform(class QTransform const &) + ??1QPainter@@QAE@XZ @ 6880 NONAME ; QPainter::~QPainter(void) + ?recordError@Parser@QCss@@QAE_NXZ @ 6881 NONAME ; bool QCss::Parser::recordError(void) + ?setBlueF@QColor@@QAEXM@Z @ 6882 NONAME ; void QColor::setBlueF(float) + ?focusInEvent@QPushButton@@MAEXPAVQFocusEvent@@@Z @ 6883 NONAME ; void QPushButton::focusInEvent(class QFocusEvent *) + ?fillRect@QPaintEngineEx@@UAEXABVQRectF@@ABVQBrush@@@Z @ 6884 NONAME ; void QPaintEngineEx::fillRect(class QRectF const &, class QBrush const &) + ?group@QUndoView@@QBEPAVQUndoGroup@@XZ @ 6885 NONAME ; class QUndoGroup * QUndoView::group(void) const + ?isProxyWidget@QGraphicsItemPrivate@@UBE_NXZ @ 6886 NONAME ; bool QGraphicsItemPrivate::isProxyWidget(void) const + ?addItem@QToolBox@@QAEHPAVQWidget@@ABVQIcon@@ABVQString@@@Z @ 6887 NONAME ; int QToolBox::addItem(class QWidget *, class QIcon const &, class QString const &) + ?firstCursorPosition@QTextTableCell@@QBE?AVQTextCursor@@XZ @ 6888 NONAME ; class QTextCursor QTextTableCell::firstCursorPosition(void) const + ?qt_metacast@QTextEdit@@UAEPAXPBD@Z @ 6889 NONAME ; void * QTextEdit::qt_metacast(char const *) + ??0QCompleter@@QAE@PAVQAbstractItemModel@@PAVQObject@@@Z @ 6890 NONAME ; QCompleter::QCompleter(class QAbstractItemModel *, class QObject *) + ?setSizes@QSplitter@@QAEXABV?$QList@H@@@Z @ 6891 NONAME ; void QSplitter::setSizes(class QList const &) + ?stretchSectionCount@QHeaderView@@QBEHXZ @ 6892 NONAME ; int QHeaderView::stretchSectionCount(void) const + ?characterAt@QTextDocument@@QBE?AVQChar@@H@Z @ 6893 NONAME ; class QChar QTextDocument::characterAt(int) const + ??0QVector3D@@QAE@ABVQVector2D@@M@Z @ 6894 NONAME ; QVector3D::QVector3D(class QVector2D const &, float) + ?brush@QPalette@@QBEABVQBrush@@W4ColorRole@1@@Z @ 6895 NONAME ; class QBrush const & QPalette::brush(enum QPalette::ColorRole) const + ?setAnchorName@QTextCharFormat@@QAEXABVQString@@@Z @ 6896 NONAME ; void QTextCharFormat::setAnchorName(class QString const &) + ?hasComplexSelection@QTextCursor@@QBE_NXZ @ 6897 NONAME ; bool QTextCursor::hasComplexSelection(void) const + ?updateEditorGeometry@QStyledItemDelegate@@UBEXPAVQWidget@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 6898 NONAME ; void QStyledItemDelegate::updateEditorGeometry(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?setColorGroup@QPalette@@AAEXW4ColorGroup@1@ABVQBrush@@1111111111111111@Z @ 6899 NONAME ; void QPalette::setColorGroup(enum QPalette::ColorGroup, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &) + ?hasSelectedText@QLineControl@@QBE_NXZ @ 6900 NONAME ; bool QLineControl::hasSelectedText(void) const + ?qt_metacast@QStackedLayout@@UAEPAXPBD@Z @ 6901 NONAME ; void * QStackedLayout::qt_metacast(char const *) + ?sortCaseSensitivity@QSortFilterProxyModel@@QBE?AW4CaseSensitivity@Qt@@XZ @ 6902 NONAME ; enum Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity(void) const + ?changeEvent@QDockWidget@@MAEXPAVQEvent@@@Z @ 6903 NONAME ; void QDockWidget::changeEvent(class QEvent *) + ?setOption@QMdiArea@@QAEXW4AreaOption@1@_N@Z @ 6904 NONAME ; void QMdiArea::setOption(enum QMdiArea::AreaOption, bool) + ?detach@QImage@@QAEXXZ @ 6905 NONAME ; void QImage::detach(void) + ?getStaticMetaObject@QGraphicsScale@@SAABUQMetaObject@@XZ @ 6906 NONAME ; struct QMetaObject const & QGraphicsScale::getStaticMetaObject(void) + ?beginMacro@QUndoStack@@QAEXABVQString@@@Z @ 6907 NONAME ; void QUndoStack::beginMacro(class QString const &) + ?showNextMonth@QCalendarWidget@@QAEXXZ @ 6908 NONAME ; void QCalendarWidget::showNextMonth(void) + ??0QSlider@@QAE@W4Orientation@Qt@@PAVQWidget@@@Z @ 6909 NONAME ; QSlider::QSlider(enum Qt::Orientation, class QWidget *) + ?mapToGlobal@QWidget@@QBE?AVQPoint@@ABV2@@Z @ 6910 NONAME ; class QPoint QWidget::mapToGlobal(class QPoint const &) const + ?tightBoundingRect@QFontMetricsF@@QBE?AVQRectF@@ABVQString@@@Z @ 6911 NONAME ; class QRectF QFontMetricsF::tightBoundingRect(class QString const &) const + ?standardPalette@QStyle@@UBE?AVQPalette@@XZ @ 6912 NONAME ; class QPalette QStyle::standardPalette(void) const + ?setWeight@QFont@@QAEXH@Z @ 6913 NONAME ; void QFont::setWeight(int) + ??0QConicalGradient@@QAE@MMM@Z @ 6914 NONAME ; QConicalGradient::QConicalGradient(float, float, float) + ?isBlockedByModalPanel@QGraphicsItem@@QBE_NPAPAV1@@Z @ 6915 NONAME ; bool QGraphicsItem::isBlockedByModalPanel(class QGraphicsItem * *) const + ?setPolygon@QGraphicsPolygonItem@@QAEXABVQPolygonF@@@Z @ 6916 NONAME ; void QGraphicsPolygonItem::setPolygon(class QPolygonF const &) + ?startTangent@QBezier@@QBE?AVQLineF@@XZ @ 6917 NONAME ; class QLineF QBezier::startTangent(void) const + ?setTranslationAt@QGraphicsItemAnimation@@QAEXMMM@Z @ 6918 NONAME ; void QGraphicsItemAnimation::setTranslationAt(float, float, float) + ?buttonReleased@QButtonGroup@@IAEXPAVQAbstractButton@@@Z @ 6919 NONAME ; void QButtonGroup::buttonReleased(class QAbstractButton *) + ?focusItem@QGraphicsItem@@QBEPAV1@XZ @ 6920 NONAME ; class QGraphicsItem * QGraphicsItem::focusItem(void) const + ?resize@QRubberBand@@QAEXHH@Z @ 6921 NONAME ; void QRubberBand::resize(int, int) + ?alignment@QGraphicsGridLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@PAVQGraphicsLayoutItem@@@Z @ 6922 NONAME ; class QFlags QGraphicsGridLayout::alignment(class QGraphicsLayoutItem *) const + ??_EQApplicationPrivate@@UAE@I@Z @ 6923 NONAME ; QApplicationPrivate::~QApplicationPrivate(unsigned int) + ?trUtf8@QToolButton@@SA?AVQString@@PBD0@Z @ 6924 NONAME ; class QString QToolButton::trUtf8(char const *, char const *) + ?checkState@QTableWidgetItem@@QBE?AW4CheckState@Qt@@XZ @ 6925 NONAME ; enum Qt::CheckState QTableWidgetItem::checkState(void) const + ?pressed@QAbstractItemView@@IAEXABVQModelIndex@@@Z @ 6926 NONAME ; void QAbstractItemView::pressed(class QModelIndex const &) + ??_EQGraphicsItemPrivate@@UAE@I@Z @ 6927 NONAME ; QGraphicsItemPrivate::~QGraphicsItemPrivate(unsigned int) + ?restoreRedirected@QWidgetPrivate@@QAEXXZ @ 6928 NONAME ; void QWidgetPrivate::restoreRedirected(void) + ??1QGraphicsItemPrivate@@UAE@XZ @ 6929 NONAME ; QGraphicsItemPrivate::~QGraphicsItemPrivate(void) + ?setHeight@QTextFrameFormat@@QAEXABVQTextLength@@@Z @ 6930 NONAME ; void QTextFrameFormat::setHeight(class QTextLength const &) + ??1QIconEngine@@UAE@XZ @ 6931 NONAME ; QIconEngine::~QIconEngine(void) + ?dashOffset@QPainterPathStroker@@QBEMXZ @ 6932 NONAME ; float QPainterPathStroker::dashOffset(void) const + ?metaObject@QDataWidgetMapper@@UBEPBUQMetaObject@@XZ @ 6933 NONAME ; struct QMetaObject const * QDataWidgetMapper::metaObject(void) const + ?mousePressEvent@QMenu@@MAEXPAVQMouseEvent@@@Z @ 6934 NONAME ; void QMenu::mousePressEvent(class QMouseEvent *) + ?inline_type@QTransform@@ABE?AW4TransformationType@1@XZ @ 6935 NONAME ; enum QTransform::TransformationType QTransform::inline_type(void) const + ?setItemSelected@QTreeWidget@@QAEXPBVQTreeWidgetItem@@_N@Z @ 6936 NONAME ; void QTreeWidget::setItemSelected(class QTreeWidgetItem const *, bool) + ?indexFromItem@QTableWidget@@IBE?AVQModelIndex@@PAVQTableWidgetItem@@@Z @ 6937 NONAME ; class QModelIndex QTableWidget::indexFromItem(class QTableWidgetItem *) const + ?selected@QActionGroup@@IAEXPAVQAction@@@Z @ 6938 NONAME ; void QActionGroup::selected(class QAction *) + ?updateDisplayText@QLineControl@@AAEXXZ @ 6939 NONAME ; void QLineControl::updateDisplayText(void) + ?setHotSpot@QGesture@@QAEXABVQPointF@@@Z @ 6940 NONAME ; void QGesture::setHotSpot(class QPointF const &) + ?entered@QAbstractItemView@@IAEXABVQModelIndex@@@Z @ 6941 NONAME ; void QAbstractItemView::entered(class QModelIndex const &) + ?dockOptions@QMainWindow@@QBE?AV?$QFlags@W4DockOption@QMainWindow@@@@XZ @ 6942 NONAME ; class QFlags QMainWindow::dockOptions(void) const + ??1QTextImageFormat@@QAE@XZ @ 6943 NONAME ; QTextImageFormat::~QTextImageFormat(void) + ??1QPaintDevice@@UAE@XZ @ 6944 NONAME ; QPaintDevice::~QPaintDevice(void) + ?axisChanged@QGraphicsRotation@@IAEXXZ @ 6945 NONAME ; void QGraphicsRotation::axisChanged(void) + ?columnCount@QStandardItem@@QBEHXZ @ 6946 NONAME ; int QStandardItem::columnCount(void) const + ?tr@QStatusBar@@SA?AVQString@@PBD0@Z @ 6947 NONAME ; class QString QStatusBar::tr(char const *, char const *) + ?visitedPages@QWizard@@QBE?AV?$QList@H@@XZ @ 6948 NONAME ; class QList QWizard::visitedPages(void) const + ?red@QColor@@QBEHXZ @ 6949 NONAME ; int QColor::red(void) const + ?processKeyEvent@QLineControl@@QAEXPAVQKeyEvent@@@Z @ 6950 NONAME ; void QLineControl::processKeyEvent(class QKeyEvent *) + ?strokePath@QPainter@@QAEXABVQPainterPath@@ABVQPen@@@Z @ 6951 NONAME ; void QPainter::strokePath(class QPainterPath const &, class QPen const &) + ??0QImageReader@@QAE@XZ @ 6952 NONAME ; QImageReader::QImageReader(void) + ?selectionModel@QAbstractItemView@@QBEPAVQItemSelectionModel@@XZ @ 6953 NONAME ; class QItemSelectionModel * QAbstractItemView::selectionModel(void) const + ?tr@QCalendarWidget@@SA?AVQString@@PBD0H@Z @ 6954 NONAME ; class QString QCalendarWidget::tr(char const *, char const *, int) + ?setHorizontalScrollBarPolicy@QAbstractScrollArea@@QAEXW4ScrollBarPolicy@Qt@@@Z @ 6955 NONAME ; void QAbstractScrollArea::setHorizontalScrollBarPolicy(enum Qt::ScrollBarPolicy) + ?indexOf@QLayout@@UBEHPAVQWidget@@@Z @ 6956 NONAME ; int QLayout::indexOf(class QWidget *) const + ?undo@QUndoCommand@@UAEXXZ @ 6957 NONAME ; void QUndoCommand::undo(void) + ?setDateEditAcceptDelay@QCalendarWidget@@QAEXH@Z @ 6958 NONAME ; void QCalendarWidget::setDateEditAcceptDelay(int) + ?setDropAction@QDropEvent@@QAEXW4DropAction@Qt@@@Z @ 6959 NONAME ; void QDropEvent::setDropAction(enum Qt::DropAction) + ?setCurrentIndex@QTabWidget@@QAEXH@Z @ 6960 NONAME ; void QTabWidget::setCurrentIndex(int) + ?widgetCount@QApplicationPrivate@@2_NA @ 6961 NONAME ; bool QApplicationPrivate::widgetCount + ?dashPattern@QPainterPathStroker@@QBE?AV?$QVector@M@@XZ @ 6962 NONAME ; class QVector QPainterPathStroker::dashPattern(void) const + ??1QTextureGlyphCache@@UAE@XZ @ 6963 NONAME ; QTextureGlyphCache::~QTextureGlyphCache(void) + ?gridStyle@QTableView@@QBE?AW4PenStyle@Qt@@XZ @ 6964 NONAME ; enum Qt::PenStyle QTableView::gridStyle(void) const + ?modelSorting@QCompleter@@QBE?AW4ModelSorting@1@XZ @ 6965 NONAME ; enum QCompleter::ModelSorting QCompleter::modelSorting(void) const + ?fontUnderline@QTextEdit@@QBE_NXZ @ 6966 NONAME ; bool QTextEdit::fontUnderline(void) const + ?setStyleHint@QFont@@QAEXW4StyleHint@1@W4StyleStrategy@1@@Z @ 6967 NONAME ; void QFont::setStyleHint(enum QFont::StyleHint, enum QFont::StyleStrategy) + ?hasImplicitClose@QVectorPath@@QBE_NXZ @ 6968 NONAME ; bool QVectorPath::hasImplicitClose(void) const + ?clipRegion@QPainter@@QBE?AVQRegion@@XZ @ 6969 NONAME ; class QRegion QPainter::clipRegion(void) const + ?dropMimeData@QSortFilterProxyModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 6970 NONAME ; bool QSortFilterProxyModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?trUtf8@QWidgetResizeHandler@@SA?AVQString@@PBD0@Z @ 6971 NONAME ; class QString QWidgetResizeHandler::trUtf8(char const *, char const *) + ??BQMatrix@@QBE?AVQVariant@@XZ @ 6972 NONAME ; QMatrix::operator class QVariant(void) const + ?open@QMessageBox@@QAEXPAVQObject@@PBD@Z @ 6973 NONAME ; void QMessageBox::open(class QObject *, char const *) + ??0QWindowsStyle@@IAE@AAVQWindowsStylePrivate@@@Z @ 6974 NONAME ; QWindowsStyle::QWindowsStyle(class QWindowsStylePrivate &) + ?qt_metacast@QInputContextPlugin@@UAEPAXPBD@Z @ 6975 NONAME ; void * QInputContextPlugin::qt_metacast(char const *) + ?removeTab@QTabWidget@@QAEXH@Z @ 6976 NONAME ; void QTabWidget::removeTab(int) + ?isSelected@QItemSelectionModel@@QBE_NABVQModelIndex@@@Z @ 6977 NONAME ; bool QItemSelectionModel::isSelected(class QModelIndex const &) const + ?textEdited@QLineEdit@@IAEXABVQString@@@Z @ 6978 NONAME ; void QLineEdit::textEdited(class QString const &) + ?cursorRect@QLineEdit@@IBE?AVQRect@@XZ @ 6979 NONAME ; class QRect QLineEdit::cursorRect(void) const + ?sizeHint@QGraphicsLinearLayout@@UBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 6980 NONAME ; class QSizeF QGraphicsLinearLayout::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?setColorGroup@QPalette@@QAEXW4ColorGroup@1@ABVQBrush@@11111111@Z @ 6981 NONAME ; void QPalette::setColorGroup(enum QPalette::ColorGroup, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &) + ?focusInEvent@QAbstractItemView@@MAEXPAVQFocusEvent@@@Z @ 6982 NONAME ; void QAbstractItemView::focusInEvent(class QFocusEvent *) + ?row@QTableWidgetItem@@QBEHXZ @ 6983 NONAME ; int QTableWidgetItem::row(void) const + ?currentRow@QTableWidget@@QBEHXZ @ 6984 NONAME ; int QTableWidget::currentRow(void) const + ?clear@QPixmapCache@@SAXXZ @ 6985 NONAME ; void QPixmapCache::clear(void) + ?d_func@QInputDialog@@ABEPBVQInputDialogPrivate@@XZ @ 6986 NONAME ; class QInputDialogPrivate const * QInputDialog::d_func(void) const + ?isFullyTransparent@QGraphicsItemPrivate@@QBE_NXZ @ 6987 NONAME ; bool QGraphicsItemPrivate::isFullyTransparent(void) const + ?shape@QVectorPath@@QBE?AW4Hint@1@XZ @ 6988 NONAME ; enum QVectorPath::Hint QVectorPath::shape(void) const + ?icon@QTreeWidgetItem@@QBE?AVQIcon@@H@Z @ 6989 NONAME ; class QIcon QTreeWidgetItem::icon(int) const + ??0QTableView@@IAE@AAVQTableViewPrivate@@PAVQWidget@@@Z @ 6990 NONAME ; QTableView::QTableView(class QTableViewPrivate &, class QWidget *) + ?d_func@QTreeView@@ABEPBVQTreeViewPrivate@@XZ @ 6991 NONAME ; class QTreeViewPrivate const * QTreeView::d_func(void) const + ?d_func@QWindowsStyle@@ABEPBVQWindowsStylePrivate@@XZ @ 6992 NONAME ; class QWindowsStylePrivate const * QWindowsStyle::d_func(void) const + ?background@QPainter@@QBEABVQBrush@@XZ @ 6993 NONAME ; class QBrush const & QPainter::background(void) const + ??1QTextTableCell@@QAE@XZ @ 6994 NONAME ; QTextTableCell::~QTextTableCell(void) + ?staticMetaObject@QStackedLayout@@2UQMetaObject@@B @ 6995 NONAME ; struct QMetaObject const QStackedLayout::staticMetaObject + ?pointSizes@QFontDatabase@@QAE?AV?$QList@H@@ABVQString@@0@Z @ 6996 NONAME ; class QList QFontDatabase::pointSizes(class QString const &, class QString const &) + ?createUndoAction@QUndoStack@@QBEPAVQAction@@PAVQObject@@ABVQString@@@Z @ 6997 NONAME ; class QAction * QUndoStack::createUndoAction(class QObject *, class QString const &) const + ?columnAt@QTableView@@QBEHH@Z @ 6998 NONAME ; int QTableView::columnAt(int) const + ?pointSize@QFont@@QBEHXZ @ 6999 NONAME ; int QFont::pointSize(void) const + ?setSpanAngle@QGraphicsEllipseItem@@QAEXH@Z @ 7000 NONAME ; void QGraphicsEllipseItem::setSpanAngle(int) + ?firstDayOfWeek@QCalendarWidget@@QBE?AW4DayOfWeek@Qt@@XZ @ 7001 NONAME ; enum Qt::DayOfWeek QCalendarWidget::firstDayOfWeek(void) const + ?indexOfTopLevelItem@QTreeWidget@@QAEHPAVQTreeWidgetItem@@@Z @ 7002 NONAME ; int QTreeWidget::indexOfTopLevelItem(class QTreeWidgetItem *) + ?italic@QFont@@QBE_NXZ @ 7003 NONAME ; bool QFont::italic(void) const + ??0QStyleOptionComboBox@@QAE@XZ @ 7004 NONAME ; QStyleOptionComboBox::QStyleOptionComboBox(void) + ?atStart@QTextCursor@@QBE_NXZ @ 7005 NONAME ; bool QTextCursor::atStart(void) const + ?drawLine@QPainter@@QAEXABVQPoint@@0@Z @ 7006 NONAME ; void QPainter::drawLine(class QPoint const &, class QPoint const &) + ?drawPixmap@QPainter@@QAEXABVQRect@@ABVQPixmap@@@Z @ 7007 NONAME ; void QPainter::drawPixmap(class QRect const &, class QPixmap const &) + ??8QTextBlock@@QBE_NABV0@@Z @ 7008 NONAME ; bool QTextBlock::operator==(class QTextBlock const &) const + ?trUtf8@QUndoStack@@SA?AVQString@@PBD0@Z @ 7009 NONAME ; class QString QUndoStack::trUtf8(char const *, char const *) + ?d_func@QGroupBox@@AAEPAVQGroupBoxPrivate@@XZ @ 7010 NONAME ; class QGroupBoxPrivate * QGroupBox::d_func(void) + ?touchPoints@QTouchEvent@@QBEABV?$QList@VTouchPoint@QTouchEvent@@@@XZ @ 7011 NONAME ; class QList const & QTouchEvent::touchPoints(void) const + ?setFont@QTextCharFormat@@QAEXABVQFont@@@Z @ 7012 NONAME ; void QTextCharFormat::setFont(class QFont const &) + ?fixedPitch@QFont@@QBE_NXZ @ 7013 NONAME ; bool QFont::fixedPitch(void) const + ?mouseMoveEvent@QHeaderView@@MAEXPAVQMouseEvent@@@Z @ 7014 NONAME ; void QHeaderView::mouseMoveEvent(class QMouseEvent *) + ??0QPolygon@@QAE@HPBH@Z @ 7015 NONAME ; QPolygon::QPolygon(int, int const *) + ??1QIconEnginePlugin@@UAE@XZ @ 7016 NONAME ; QIconEnginePlugin::~QIconEnginePlugin(void) + ?qt_metacast@QGraphicsColorizeEffect@@UAEPAXPBD@Z @ 7017 NONAME ; void * QGraphicsColorizeEffect::qt_metacast(char const *) + ?drawPixmaps@QPaintEngineEx@@UAEXPBUData@QDrawPixmaps@@HABVQPixmap@@V?$QFlags@W4DrawingHint@QDrawPixmaps@@@@@Z @ 7018 NONAME ; void QPaintEngineEx::drawPixmaps(struct QDrawPixmaps::Data const *, int, class QPixmap const &, class QFlags) + ??1QGraphicsTextItem@@UAE@XZ @ 7019 NONAME ; QGraphicsTextItem::~QGraphicsTextItem(void) + ?trUtf8@QStackedLayout@@SA?AVQString@@PBD0H@Z @ 7020 NONAME ; class QString QStackedLayout::trUtf8(char const *, char const *, int) + ?styleString@QFontDatabase@@QAE?AVQString@@ABVQFontInfo@@@Z @ 7021 NONAME ; class QString QFontDatabase::styleString(class QFontInfo const &) + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPolygon@@W4ItemSelectionMode@Qt@@@Z @ 7022 NONAME ; class QList QGraphicsView::items(class QPolygon const &, enum Qt::ItemSelectionMode) const + ?boundingRect@QPolygonF@@QBE?AVQRectF@@XZ @ 7023 NONAME ; class QRectF QPolygonF::boundingRect(void) const + ?metric@QPaintBuffer@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 7024 NONAME ; int QPaintBuffer::metric(enum QPaintDevice::PaintDeviceMetric) const + ?createList@QTextCursor@@QAEPAVQTextList@@W4Style@QTextListFormat@@@Z @ 7025 NONAME ; class QTextList * QTextCursor::createList(enum QTextListFormat::Style) + ?releaseShortcut@QGraphicsWidget@@QAEXH@Z @ 7026 NONAME ; void QGraphicsWidget::releaseShortcut(int) + ?trUtf8@QTabBar@@SA?AVQString@@PBD0@Z @ 7027 NONAME ; class QString QTabBar::trUtf8(char const *, char const *) + ?contentOffset@QPlainTextEdit@@IBE?AVQPointF@@XZ @ 7028 NONAME ; class QPointF QPlainTextEdit::contentOffset(void) const + ?views@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsView@@@@XZ @ 7029 NONAME ; class QList QGraphicsScene::views(void) const + ?tr@QDoubleValidator@@SA?AVQString@@PBD0H@Z @ 7030 NONAME ; class QString QDoubleValidator::tr(char const *, char const *, int) + ?setContentsMargins@QWidget@@QAEXABVQMargins@@@Z @ 7031 NONAME ; void QWidget::setContentsMargins(class QMargins const &) + ?documentMode@QTabBar@@QBE_NXZ @ 7032 NONAME ; bool QTabBar::documentMode(void) const + ?getStaticMetaObject@QTreeWidget@@SAABUQMetaObject@@XZ @ 7033 NONAME ; struct QMetaObject const & QTreeWidget::getStaticMetaObject(void) + ?insertActions@QGraphicsWidget@@QAEXPAVQAction@@V?$QList@PAVQAction@@@@@Z @ 7034 NONAME ; void QGraphicsWidget::insertActions(class QAction *, class QList) + ?icon@QAction@@QBE?AVQIcon@@XZ @ 7035 NONAME ; class QIcon QAction::icon(void) const + ?activeStack@QUndoGroup@@QBEPAVQUndoStack@@XZ @ 7036 NONAME ; class QUndoStack * QUndoGroup::activeStack(void) const + ??BQFont@@QBE?AVQVariant@@XZ @ 7037 NONAME ; QFont::operator class QVariant(void) const + ??1QWorkspace@@UAE@XZ @ 7038 NONAME ; QWorkspace::~QWorkspace(void) + ?activated@QCompleter@@IAEXABVQModelIndex@@@Z @ 7039 NONAME ; void QCompleter::activated(class QModelIndex const &) + ?count@QUndoStack@@QBEHXZ @ 7040 NONAME ; int QUndoStack::count(void) const + ??1QDrag@@UAE@XZ @ 7041 NONAME ; QDrag::~QDrag(void) + ?emitSelectionChanged@QItemSelectionModel@@IAEXABVQItemSelection@@0@Z @ 7042 NONAME ; void QItemSelectionModel::emitSelectionChanged(class QItemSelection const &, class QItemSelection const &) + ?d_func@QInputContext@@AAEPAVQInputContextPrivate@@XZ @ 7043 NONAME ; class QInputContextPrivate * QInputContext::d_func(void) + ?setAutoReset@QProgressDialog@@QAEX_N@Z @ 7044 NONAME ; void QProgressDialog::setAutoReset(bool) + ??1QCommandLinkButton@@UAE@XZ @ 7045 NONAME ; QCommandLinkButton::~QCommandLinkButton(void) + ?setIcon@QAction@@QAEXABVQIcon@@@Z @ 7046 NONAME ; void QAction::setIcon(class QIcon const &) + ?graphics_system@QApplicationPrivate@@2PAVQGraphicsSystem@@A @ 7047 NONAME ; class QGraphicsSystem * QApplicationPrivate::graphics_system + ?toFillPolygon@QPainterPath@@QBE?AVQPolygonF@@ABVQMatrix@@@Z @ 7048 NONAME ; class QPolygonF QPainterPath::toFillPolygon(class QMatrix const &) const + ?createStroke@QPainterPathStroker@@QBE?AVQPainterPath@@ABV2@@Z @ 7049 NONAME ; class QPainterPath QPainterPathStroker::createStroke(class QPainterPath const &) const + ??0QDoubleValidator@@QAE@PAVQObject@@@Z @ 7050 NONAME ; QDoubleValidator::QDoubleValidator(class QObject *) + ??1QShortcut@@UAE@XZ @ 7051 NONAME ; QShortcut::~QShortcut(void) + ??6@YAAAVQDataStream@@AAV0@ABVQPolygon@@@Z @ 7052 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPolygon const &) + ?shape@QRubberBand@@QBE?AW4Shape@1@XZ @ 7053 NONAME ; enum QRubberBand::Shape QRubberBand::shape(void) const + ?elementCount@QPainterPath@@QBEHXZ @ 7054 NONAME ; int QPainterPath::elementCount(void) const + ?changeEvent@QGroupBox@@MAEXPAVQEvent@@@Z @ 7055 NONAME ; void QGroupBox::changeEvent(class QEvent *) + ??0QSplashScreen@@QAE@ABVQPixmap@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 7056 NONAME ; QSplashScreen::QSplashScreen(class QPixmap const &, class QFlags) + ?parentWidget@QLayout@@QBEPAVQWidget@@XZ @ 7057 NONAME ; class QWidget * QLayout::parentWidget(void) const + ?setModelData@QItemDelegate@@UBEXPAVQWidget@@PAVQAbstractItemModel@@ABVQModelIndex@@@Z @ 7058 NONAME ; void QItemDelegate::setModelData(class QWidget *, class QAbstractItemModel *, class QModelIndex const &) const + ?inSelection@QLineControl@@QBE_NH@Z @ 7059 NONAME ; bool QLineControl::inSelection(int) const + ?isClosed@QPolygonF@@QBE_NXZ @ 7060 NONAME ; bool QPolygonF::isClosed(void) const + ?d_func@QLineEdit@@AAEPAVQLineEditPrivate@@XZ @ 7061 NONAME ; class QLineEditPrivate * QLineEdit::d_func(void) + ?mappedSection@QDataWidgetMapper@@QBEHPAVQWidget@@@Z @ 7062 NONAME ; int QDataWidgetMapper::mappedSection(class QWidget *) const + ?d_func@QSplitterHandle@@AAEPAVQSplitterHandlePrivate@@XZ @ 7063 NONAME ; class QSplitterHandlePrivate * QSplitterHandle::d_func(void) + ?qt_metacast@QWorkspace@@UAEPAXPBD@Z @ 7064 NONAME ; void * QWorkspace::qt_metacast(char const *) + ?d_func@QGraphicsItemGroup@@AAEPAVQGraphicsItemGroupPrivate@@XZ @ 7065 NONAME ; class QGraphicsItemGroupPrivate * QGraphicsItemGroup::d_func(void) + ??_EQPictureFormatInterface@@UAE@I@Z @ 7066 NONAME ; QPictureFormatInterface::~QPictureFormatInterface(unsigned int) + ?horizontalScrollbarAction@QTreeView@@MAEXH@Z @ 7067 NONAME ; void QTreeView::horizontalScrollbarAction(int) + ?setDefaultButton@QMessageBox@@QAEXPAVQPushButton@@@Z @ 7068 NONAME ; void QMessageBox::setDefaultButton(class QPushButton *) + ?collidesWithPath@QGraphicsItem@@UBE_NABVQPainterPath@@W4ItemSelectionMode@Qt@@@Z @ 7069 NONAME ; bool QGraphicsItem::collidesWithPath(class QPainterPath const &, enum Qt::ItemSelectionMode) const + ?sendMouseEvent@QApplicationPrivate@@SA_NPAVQWidget@@PAVQMouseEvent@@00PAPAV2@AAV?$QPointer@VQWidget@@@@_N@Z @ 7070 NONAME ; bool QApplicationPrivate::sendMouseEvent(class QWidget *, class QMouseEvent *, class QWidget *, class QWidget *, class QWidget * *, class QPointer &, bool) + ?d_func@QRadioButton@@ABEPBVQRadioButtonPrivate@@XZ @ 7071 NONAME ; class QRadioButtonPrivate const * QRadioButton::d_func(void) const + ??_EQFrame@@UAE@I@Z @ 7072 NONAME ; QFrame::~QFrame(unsigned int) + ?setMinimumWidth@QWidget@@QAEXH@Z @ 7073 NONAME ; void QWidget::setMinimumWidth(int) + ?d_func@QPainter@@AAEPAVQPainterPrivate@@XZ @ 7074 NONAME ; class QPainterPrivate * QPainter::d_func(void) + ?move@QWidget@@QAEXABVQPoint@@@Z @ 7075 NONAME ; void QWidget::move(class QPoint const &) + ?d_func@QTableView@@AAEPAVQTableViewPrivate@@XZ @ 7076 NONAME ; class QTableViewPrivate * QTableView::d_func(void) + ?parseRuleset@Parser@QCss@@QAE_NPAUStyleRule@2@@Z @ 7077 NONAME ; bool QCss::Parser::parseRuleset(struct QCss::StyleRule *) + ?canceledGestures@QGestureEvent@@QBE?AV?$QList@PAVQGesture@@@@XZ @ 7078 NONAME ; class QList QGestureEvent::canceledGestures(void) const + ?metaObject@QGraphicsColorizeEffect@@UBEPBUQMetaObject@@XZ @ 7079 NONAME ; struct QMetaObject const * QGraphicsColorizeEffect::metaObject(void) const + ?setAcceptRichText@QTextControl@@QAEX_N@Z @ 7080 NONAME ; void QTextControl::setAcceptRichText(bool) + ??0QGraphicsPixmapItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 7081 NONAME ; QGraphicsPixmapItem::QGraphicsPixmapItem(class QGraphicsItem *, class QGraphicsScene *) + ??1TouchPoint@QTouchEvent@@QAE@XZ @ 7082 NONAME ; QTouchEvent::TouchPoint::~TouchPoint(void) + ??_EQGraphicsPixelizeEffect@@UAE@I@Z @ 7083 NONAME ; QGraphicsPixelizeEffect::~QGraphicsPixelizeEffect(unsigned int) + ?createTLSysExtra@QWidgetPrivate@@QAEXXZ @ 7084 NONAME ; void QWidgetPrivate::createTLSysExtra(void) + ?dropEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 7085 NONAME ; void QGraphicsTextItem::dropEvent(class QGraphicsSceneDragDropEvent *) + ?insertChildren@QTreeWidgetItem@@QAEXHABV?$QList@PAVQTreeWidgetItem@@@@@Z @ 7086 NONAME ; void QTreeWidgetItem::insertChildren(int, class QList const &) + ?startDragTime@QApplication@@SAHXZ @ 7087 NONAME ; int QApplication::startDragTime(void) + ??0QPaintBuffer@@QAE@ABV0@@Z @ 7088 NONAME ; QPaintBuffer::QPaintBuffer(class QPaintBuffer const &) + ?isValid@QItemSelectionRange@@QBE_NXZ @ 7089 NONAME ; bool QItemSelectionRange::isValid(void) const + ?length@QTextFragment@@QBEHXZ @ 7090 NONAME ; int QTextFragment::length(void) const + ?writingSystem@QFontComboBox@@QBE?AW4WritingSystem@QFontDatabase@@XZ @ 7091 NONAME ; enum QFontDatabase::WritingSystem QFontComboBox::writingSystem(void) const + ?collapse@QTreeView@@QAEXABVQModelIndex@@@Z @ 7092 NONAME ; void QTreeView::collapse(class QModelIndex const &) + ?trUtf8@QInputContext@@SA?AVQString@@PBD0H@Z @ 7093 NONAME ; class QString QInputContext::trUtf8(char const *, char const *, int) + ?setStyle@QBrush@@QAEXW4BrushStyle@Qt@@@Z @ 7094 NONAME ; void QBrush::setStyle(enum Qt::BrushStyle) + ?setXOffset@QGraphicsDropShadowEffect@@QAEXM@Z @ 7095 NONAME ; void QGraphicsDropShadowEffect::setXOffset(float) + ?afterAnimationStep@QGraphicsItemAnimation@@MAEXM@Z @ 7096 NONAME ; void QGraphicsItemAnimation::afterAnimationStep(float) + ?detach@QFont@@AAEXXZ @ 7097 NONAME ; void QFont::detach(void) + ?setEnabled@QAction@@QAEX_N@Z @ 7098 NONAME ; void QAction::setEnabled(bool) + ?setChecked@QGroupBox@@QAEX_N@Z @ 7099 NONAME ; void QGroupBox::setChecked(bool) + ?sourceModel@QAbstractProxyModel@@QBEPAVQAbstractItemModel@@XZ @ 7100 NONAME ; class QAbstractItemModel * QAbstractProxyModel::sourceModel(void) const + ?boundingRect@QFontMetrics@@QBE?AVQRect@@HHHHHABVQString@@HPAH@Z @ 7101 NONAME ; class QRect QFontMetrics::boundingRect(int, int, int, int, int, class QString const &, int, int *) const + ??1QDataWidgetMapper@@UAE@XZ @ 7102 NONAME ; QDataWidgetMapper::~QDataWidgetMapper(void) + ?accept@QGestureEvent@@QAEXPAVQGesture@@@Z @ 7103 NONAME ; void QGestureEvent::accept(class QGesture *) + ??_EQUndoStack@@UAE@I@Z @ 7104 NONAME ; QUndoStack::~QUndoStack(unsigned int) + ?clipRegion@QPaintEngineState@@QBE?AVQRegion@@XZ @ 7105 NONAME ; class QRegion QPaintEngineState::clipRegion(void) const + ?qt_metacast@QIntValidator@@UAEPAXPBD@Z @ 7106 NONAME ; void * QIntValidator::qt_metacast(char const *) + ??K@YA?AVQTransform@@ABV0@M@Z @ 7107 NONAME ; class QTransform operator/(class QTransform const &, float) + ?invalidateChildrenSceneTransform@QGraphicsItemPrivate@@QAEXXZ @ 7108 NONAME ; void QGraphicsItemPrivate::invalidateChildrenSceneTransform(void) + ?trUtf8@QGraphicsBloomEffect@@SA?AVQString@@PBD0H@Z @ 7109 NONAME ; class QString QGraphicsBloomEffect::trUtf8(char const *, char const *, int) + ?metaObject@QTextFrame@@UBEPBUQMetaObject@@XZ @ 7110 NONAME ; struct QMetaObject const * QTextFrame::metaObject(void) const + ?hasFormatCached@QTextFormatCollection@@QBE_NABVQTextFormat@@@Z @ 7111 NONAME ; bool QTextFormatCollection::hasFormatCached(class QTextFormat const &) const + ?eventFilter@QMenuBar@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 7112 NONAME ; bool QMenuBar::eventFilter(class QObject *, class QEvent *) + ?setShortcutEnabled@QWidget@@QAEXH_N@Z @ 7113 NONAME ; void QWidget::setShortcutEnabled(int, bool) + ?setEchoMode@QLineControl@@QAEXI@Z @ 7114 NONAME ; void QLineControl::setEchoMode(unsigned int) + ?oldPos@QMoveEvent@@QBEABVQPoint@@XZ @ 7115 NONAME ; class QPoint const & QMoveEvent::oldPos(void) const + ?fromHtml@QTextDocumentFragment@@SA?AV1@ABVQString@@@Z @ 7116 NONAME ; class QTextDocumentFragment QTextDocumentFragment::fromHtml(class QString const &) + ??G@YA?AVQTransform@@ABV0@M@Z @ 7117 NONAME ; class QTransform operator-(class QTransform const &, float) + ?jumpToImage@QImageIOHandler@@UAE_NH@Z @ 7118 NONAME ; bool QImageIOHandler::jumpToImage(int) + ?setPalette@QGraphicsScene@@QAEXABVQPalette@@@Z @ 7119 NONAME ; void QGraphicsScene::setPalette(class QPalette const &) + ?sizeHint@QScrollBar@@UBE?AVQSize@@XZ @ 7120 NONAME ; class QSize QScrollBar::sizeHint(void) const + ?isWindowModified@QWidget@@QBE_NXZ @ 7121 NONAME ; bool QWidget::isWindowModified(void) const + ?text@QAbstractButton@@QBE?AVQString@@XZ @ 7122 NONAME ; class QString QAbstractButton::text(void) const + ?devType@QPaintBuffer@@UBEHXZ @ 7123 NONAME ; int QPaintBuffer::devType(void) const + ?isColumnSelected@QItemSelectionModel@@QBE_NHABVQModelIndex@@@Z @ 7124 NONAME ; bool QItemSelectionModel::isColumnSelected(int, class QModelIndex const &) const + ?resource@QTextDocument@@QBE?AVQVariant@@HABVQUrl@@@Z @ 7125 NONAME ; class QVariant QTextDocument::resource(int, class QUrl const &) const + ?setNewSize@QGraphicsSceneResizeEvent@@QAEXABVQSizeF@@@Z @ 7126 NONAME ; void QGraphicsSceneResizeEvent::setNewSize(class QSizeF const &) + ?staticMetaObject@QSlider@@2UQMetaObject@@B @ 7127 NONAME ; struct QMetaObject const QSlider::staticMetaObject + ?modalState@QApplicationPrivate@@SA_NXZ @ 7128 NONAME ; bool QApplicationPrivate::modalState(void) + ?targetChanged@QDrag@@IAEXPAVQWidget@@@Z @ 7129 NONAME ; void QDrag::targetChanged(class QWidget *) + ?setSizePolicy@QGraphicsAnchor@@QAEXW4Policy@QSizePolicy@@@Z @ 7130 NONAME ; void QGraphicsAnchor::setSizePolicy(enum QSizePolicy::Policy) + ?setFontPointSize@QTextCharFormat@@QAEXM@Z @ 7131 NONAME ; void QTextCharFormat::setFontPointSize(float) + ?setDragCursor@QDrag@@QAEXABVQPixmap@@W4DropAction@Qt@@@Z @ 7132 NONAME ; void QDrag::setDragCursor(class QPixmap const &, enum Qt::DropAction) + ??0QStyleOptionTabV2@@QAE@ABV0@@Z @ 7133 NONAME ; QStyleOptionTabV2::QStyleOptionTabV2(class QStyleOptionTabV2 const &) + ?mapFrom@QWidget@@QBE?AVQPoint@@PAV1@ABV2@@Z @ 7134 NONAME ; class QPoint QWidget::mapFrom(class QWidget *, class QPoint const &) const + ?sendDeferredInputEvents@QEventDispatcherS60@@AAE_NXZ @ 7135 NONAME ; bool QEventDispatcherS60::sendDeferredInputEvents(void) + ?getStaticMetaObject@QCommandLinkButton@@SAABUQMetaObject@@XZ @ 7136 NONAME ; struct QMetaObject const & QCommandLinkButton::getStaticMetaObject(void) + ?setTabShape@QTabWidget@@QAEXW4TabShape@1@@Z @ 7137 NONAME ; void QTabWidget::setTabShape(enum QTabWidget::TabShape) + ?fillPath@QPainter@@QAEXABVQPainterPath@@ABVQBrush@@@Z @ 7138 NONAME ; void QPainter::fillPath(class QPainterPath const &, class QBrush const &) + ?metaObject@QFrame@@UBEPBUQMetaObject@@XZ @ 7139 NONAME ; struct QMetaObject const * QFrame::metaObject(void) const + ?textCursor@QPlainTextEdit@@QBE?AVQTextCursor@@XZ @ 7140 NONAME ; class QTextCursor QPlainTextEdit::textCursor(void) const + ?doubleClickInterval@QApplication@@SAHXZ @ 7141 NONAME ; int QApplication::doubleClickInterval(void) + ?setFocus@QWidget@@QAEXXZ @ 7142 NONAME ; void QWidget::setFocus(void) + ?q_func@QApplicationPrivate@@AAEPAVQApplication@@XZ @ 7143 NONAME ; class QApplication * QApplicationPrivate::q_func(void) + ?d_func@QMouseEventTransition@@AAEPAVQMouseEventTransitionPrivate@@XZ @ 7144 NONAME ; class QMouseEventTransitionPrivate * QMouseEventTransition::d_func(void) + ?sectionClicked@QHeaderView@@IAEXH@Z @ 7145 NONAME ; void QHeaderView::sectionClicked(int) + ?tr@QAbstractButton@@SA?AVQString@@PBD0H@Z @ 7146 NONAME ; class QString QAbstractButton::tr(char const *, char const *, int) + ?mouseReleaseEvent@QComboBox@@MAEXPAVQMouseEvent@@@Z @ 7147 NONAME ; void QComboBox::mouseReleaseEvent(class QMouseEvent *) + ??0QStyleOptionTabWidgetFrame@@IAE@H@Z @ 7148 NONAME ; QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int) + ?addWidget@QStackedLayout@@QAEHPAVQWidget@@@Z @ 7149 NONAME ; int QStackedLayout::addWidget(class QWidget *) + ?isVisible@QAction@@QBE_NXZ @ 7150 NONAME ; bool QAction::isVisible(void) const + ?setLayoutDirection@QLineControl@@QAEXW4LayoutDirection@Qt@@@Z @ 7151 NONAME ; void QLineControl::setLayoutDirection(enum Qt::LayoutDirection) + ??0QQuaternion@@QAE@MMMM@Z @ 7152 NONAME ; QQuaternion::QQuaternion(float, float, float, float) + ?setIdentity@QMatrix4x4@@QAEXXZ @ 7153 NONAME ; void QMatrix4x4::setIdentity(void) + ?setDirtyRegion@QAbstractItemView@@IAEXABVQRegion@@@Z @ 7154 NONAME ; void QAbstractItemView::setDirtyRegion(class QRegion const &) + ?toFrameFormat@QTextFormat@@QBE?AVQTextFrameFormat@@XZ @ 7155 NONAME ; class QTextFrameFormat QTextFormat::toFrameFormat(void) const + ??0QStyleOptionToolBox@@QAE@ABV0@@Z @ 7156 NONAME ; QStyleOptionToolBox::QStyleOptionToolBox(class QStyleOptionToolBox const &) + ?setUpdatesEnabled_helper@QWidgetPrivate@@QAEX_N@Z @ 7157 NONAME ; void QWidgetPrivate::setUpdatesEnabled_helper(bool) + ??1StyleSelector@QCss@@UAE@XZ @ 7158 NONAME ; QCss::StyleSelector::~StyleSelector(void) + ?drawPrimitive@QWindowsStyle@@UBEXW4PrimitiveElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 7159 NONAME ; void QWindowsStyle::drawPrimitive(enum QStyle::PrimitiveElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ?removeAt@QGraphicsAnchorLayout@@UAEXH@Z @ 7160 NONAME ; void QGraphicsAnchorLayout::removeAt(int) + ?updateSection@QHeaderView@@IAEXH@Z @ 7161 NONAME ; void QHeaderView::updateSection(int) + ?isEffectEnabled@QApplication@@SA_NW4UIEffect@Qt@@@Z @ 7162 NONAME ; bool QApplication::isEffectEnabled(enum Qt::UIEffect) + ?translated@QRegion@@QBE?AV1@HH@Z @ 7163 NONAME ; class QRegion QRegion::translated(int, int) const + ?hasTranslateOnlySceneTransform@QGraphicsItemPrivate@@QAE_NXZ @ 7164 NONAME ; bool QGraphicsItemPrivate::hasTranslateOnlySceneTransform(void) + ?setStartDragTime@QApplication@@SAXH@Z @ 7165 NONAME ; void QApplication::setStartDragTime(int) + ?setCompletionColumn@QCompleter@@QAEXH@Z @ 7166 NONAME ; void QCompleter::setCompletionColumn(int) + ?getStaticMetaObject@QComboBox@@SAABUQMetaObject@@XZ @ 7167 NONAME ; struct QMetaObject const & QComboBox::getStaticMetaObject(void) + ?insertItem@QBoxLayout@@IAEXHPAVQLayoutItem@@@Z @ 7168 NONAME ; void QBoxLayout::insertItem(int, class QLayoutItem *) + ?qt_metacast@QSound@@UAEPAXPBD@Z @ 7169 NONAME ; void * QSound::qt_metacast(char const *) + ?isExpanded@QTreeWidgetItem@@QBE_NXZ @ 7170 NONAME ; bool QTreeWidgetItem::isExpanded(void) const + ?setScenePos@QGraphicsSceneWheelEvent@@QAEXABVQPointF@@@Z @ 7171 NONAME ; void QGraphicsSceneWheelEvent::setScenePos(class QPointF const &) + ?qt_metacast@QDirModel@@UAEPAXPBD@Z @ 7172 NONAME ; void * QDirModel::qt_metacast(char const *) + ?setStatusTip@QTreeWidgetItem@@QAEXHABVQString@@@Z @ 7173 NONAME ; void QTreeWidgetItem::setStatusTip(int, class QString const &) + ?initializeSections@QHeaderView@@IAEXHH@Z @ 7174 NONAME ; void QHeaderView::initializeSections(int, int) + ?icon@QStandardItem@@QBE?AVQIcon@@XZ @ 7175 NONAME ; class QIcon QStandardItem::icon(void) const + ?qt_metacast@QDockWidget@@UAEPAXPBD@Z @ 7176 NONAME ; void * QDockWidget::qt_metacast(char const *) + ?startId@QWizard@@QBEHXZ @ 7177 NONAME ; int QWizard::startId(void) const + ?setMovable@QToolBar@@QAEX_N@Z @ 7178 NONAME ; void QToolBar::setMovable(bool) + ?trUtf8@QItemSelectionModel@@SA?AVQString@@PBD0@Z @ 7179 NONAME ; class QString QItemSelectionModel::trUtf8(char const *, char const *) + ??BQTextFormat@@QBE?AVQVariant@@XZ @ 7180 NONAME ; QTextFormat::operator class QVariant(void) const + ?sizeHint@QGraphicsAnchorLayout@@MBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 7181 NONAME ; class QSizeF QGraphicsAnchorLayout::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?mouseReleaseEvent@QMenu@@MAEXPAVQMouseEvent@@@Z @ 7182 NONAME ; void QMenu::mouseReleaseEvent(class QMouseEvent *) + ??_EQGraphicsColorizeEffect@@UAE@I@Z @ 7183 NONAME ; QGraphicsColorizeEffect::~QGraphicsColorizeEffect(unsigned int) + ?subElementRect@QProxyStyle@@UBE?AVQRect@@W4SubElement@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 7184 NONAME ; class QRect QProxyStyle::subElementRect(enum QStyle::SubElement, class QStyleOption const *, class QWidget const *) const + ?autoDefault@QPushButton@@QBE_NXZ @ 7185 NONAME ; bool QPushButton::autoDefault(void) const + ?child@QTreeWidgetItem@@QBEPAV1@H@Z @ 7186 NONAME ; class QTreeWidgetItem * QTreeWidgetItem::child(int) const + ?tr@QStandardItemModel@@SA?AVQString@@PBD0H@Z @ 7187 NONAME ; class QString QStandardItemModel::tr(char const *, char const *, int) + ?metaObject@QUndoView@@UBEPBUQMetaObject@@XZ @ 7188 NONAME ; struct QMetaObject const * QUndoView::metaObject(void) const + ?viewportTransform@QGraphicsView@@QBE?AVQTransform@@XZ @ 7189 NONAME ; class QTransform QGraphicsView::viewportTransform(void) const + ??_EQGraphicsSceneDragDropEvent@@UAE@I@Z @ 7190 NONAME ; QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent(unsigned int) + ?opaqueArea@QGraphicsItem@@UBE?AVQPainterPath@@XZ @ 7191 NONAME ; class QPainterPath QGraphicsItem::opaqueArea(void) const + ?widget@QTabWidget@@QBEPAVQWidget@@H@Z @ 7192 NONAME ; class QWidget * QTabWidget::widget(int) const + ?finished@QMovie@@IAEXXZ @ 7193 NONAME ; void QMovie::finished(void) + ?mouseReleaseEvent@QLineEdit@@MAEXPAVQMouseEvent@@@Z @ 7194 NONAME ; void QLineEdit::mouseReleaseEvent(class QMouseEvent *) + ?logClusters@QTextEngine@@QBEPAGPBUQScriptItem@@@Z @ 7195 NONAME ; unsigned short * QTextEngine::logClusters(struct QScriptItem const *) const + ??D@YA?AVQPainterPath@@ABV0@ABVQMatrix@@@Z @ 7196 NONAME ; class QPainterPath operator*(class QPainterPath const &, class QMatrix const &) + ?staticMetaObject@QLabel@@2UQMetaObject@@B @ 7197 NONAME ; struct QMetaObject const QLabel::staticMetaObject + ?getStaticMetaObject@QGraphicsView@@SAABUQMetaObject@@XZ @ 7198 NONAME ; struct QMetaObject const & QGraphicsView::getStaticMetaObject(void) + ?height@QGraphicsScene@@QBEMXZ @ 7199 NONAME ; float QGraphicsScene::height(void) const + ?mergeCurrentCharFormat@QTextControl@@QAEXABVQTextCharFormat@@@Z @ 7200 NONAME ; void QTextControl::mergeCurrentCharFormat(class QTextCharFormat const &) + ?clearDirty@QPaintEngine@@QAEXV?$QFlags@W4DirtyFlag@QPaintEngine@@@@@Z @ 7201 NONAME ; void QPaintEngine::clearDirty(class QFlags) + ?standardPixmap@QProxyStyle@@UBE?AVQPixmap@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 7202 NONAME ; class QPixmap QProxyStyle::standardPixmap(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ??0QKeySequence@@QAE@HHHH@Z @ 7203 NONAME ; QKeySequence::QKeySequence(int, int, int, int) + ?setLayoutDirection@QWidget@@QAEXW4LayoutDirection@Qt@@@Z @ 7204 NONAME ; void QWidget::setLayoutDirection(enum Qt::LayoutDirection) + ?focusNextChild@QWidget@@IAE_NXZ @ 7205 NONAME ; bool QWidget::focusNextChild(void) + ?tabletEvent@QWidget@@MAEXPAVQTabletEvent@@@Z @ 7206 NONAME ; void QWidget::tabletEvent(class QTabletEvent *) + ?mapRect@QMatrix4x4@@QBE?AVQRectF@@ABV2@@Z @ 7207 NONAME ; class QRectF QMatrix4x4::mapRect(class QRectF const &) const + ?unsetSpacing@QGraphicsAnchor@@QAEXXZ @ 7208 NONAME ; void QGraphicsAnchor::unsetSpacing(void) + ?focusOutEvent@QComboBox@@MAEXPAVQFocusEvent@@@Z @ 7209 NONAME ; void QComboBox::focusOutEvent(class QFocusEvent *) + ??0QPushButton@@IAE@AAVQPushButtonPrivate@@PAVQWidget@@@Z @ 7210 NONAME ; QPushButton::QPushButton(class QPushButtonPrivate &, class QWidget *) + ??0QStyleOptionToolBoxV2@@QAE@ABVQStyleOptionToolBox@@@Z @ 7211 NONAME ; QStyleOptionToolBoxV2::QStyleOptionToolBoxV2(class QStyleOptionToolBox const &) + ?closeEvent@QAbstractSpinBox@@MAEXPAVQCloseEvent@@@Z @ 7212 NONAME ; void QAbstractSpinBox::closeEvent(class QCloseEvent *) + ?isBitmapScalable@QFontDatabase@@QBE_NABVQString@@0@Z @ 7213 NONAME ; bool QFontDatabase::isBitmapScalable(class QString const &, class QString const &) const + ?metaObject@QProxyStyle@@UBEPBUQMetaObject@@XZ @ 7214 NONAME ; struct QMetaObject const * QProxyStyle::metaObject(void) const + ??0QFileDialog@@IAE@ABUQFileDialogArgs@@@Z @ 7215 NONAME ; QFileDialog::QFileDialog(struct QFileDialogArgs const &) + ??4QKeySequence@@QAEAAV0@ABV0@@Z @ 7216 NONAME ; class QKeySequence & QKeySequence::operator=(class QKeySequence const &) + ?selectedFiles@QFileDialog@@QBE?AVQStringList@@XZ @ 7217 NONAME ; class QStringList QFileDialog::selectedFiles(void) const + ?setExtraSelections@QTextEdit@@QAEXABV?$QList@UExtraSelection@QTextEdit@@@@@Z @ 7218 NONAME ; void QTextEdit::setExtraSelections(class QList const &) + ?scale@QMatrix@@QAEAAV1@MM@Z @ 7219 NONAME ; class QMatrix & QMatrix::scale(float, float) + ?crossProduct@QVector3D@@SA?AV1@ABV1@0@Z @ 7220 NONAME ; class QVector3D QVector3D::crossProduct(class QVector3D const &, class QVector3D const &) + ?viewOptions@QTableView@@MBE?AVQStyleOptionViewItem@@XZ @ 7221 NONAME ; class QStyleOptionViewItem QTableView::viewOptions(void) const + ?mouseDoubleClickEvent@QAbstractItemView@@MAEXPAVQMouseEvent@@@Z @ 7222 NONAME ; void QAbstractItemView::mouseDoubleClickEvent(class QMouseEvent *) + ??1QGraphicsSceneMoveEvent@@UAE@XZ @ 7223 NONAME ; QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent(void) + ?blockCount@QPlainTextEdit@@QBEHXZ @ 7224 NONAME ; int QPlainTextEdit::blockCount(void) const + ?lineNumber@QTextLine@@QBEHXZ @ 7225 NONAME ; int QTextLine::lineNumber(void) const + ?qt_metacast@QButtonGroup@@UAEPAXPBD@Z @ 7226 NONAME ; void * QButtonGroup::qt_metacast(char const *) + ?resize@QGraphicsWidget@@QAEXMM@Z @ 7227 NONAME ; void QGraphicsWidget::resize(float, float) + ?drawCheck@QItemDelegate@@MBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQRect@@W4CheckState@Qt@@@Z @ 7228 NONAME ; void QItemDelegate::drawCheck(class QPainter *, class QStyleOptionViewItem const &, class QRect const &, enum Qt::CheckState) const + ?insertSpacerItem@QBoxLayout@@QAEXHPAVQSpacerItem@@@Z @ 7229 NONAME ; void QBoxLayout::insertSpacerItem(int, class QSpacerItem *) + ??1QFileOpenEvent@@UAE@XZ @ 7230 NONAME ; QFileOpenEvent::~QFileOpenEvent(void) + ?setAlignment@QTextBlockFormat@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 7231 NONAME ; void QTextBlockFormat::setAlignment(class QFlags) + ?createLine@QTextLayout@@QAE?AVQTextLine@@XZ @ 7232 NONAME ; class QTextLine QTextLayout::createLine(void) + ?centerOn@QGraphicsView@@QAEXABVQPointF@@@Z @ 7233 NONAME ; void QGraphicsView::centerOn(class QPointF const &) + ?qt_metacast@QItemDelegate@@UAEPAXPBD@Z @ 7234 NONAME ; void * QItemDelegate::qt_metacast(char const *) + ?layout_helper@QTextLine@@AAEXH@Z @ 7235 NONAME ; void QTextLine::layout_helper(int) + ?tr@QTextEdit@@SA?AVQString@@PBD0@Z @ 7236 NONAME ; class QString QTextEdit::tr(char const *, char const *) + ?getStaticMetaObject@QGraphicsEffect@@SAABUQMetaObject@@XZ @ 7237 NONAME ; struct QMetaObject const & QGraphicsEffect::getStaticMetaObject(void) + ?united@QRegion@@QBE?AV1@ABV1@@Z @ 7238 NONAME ; class QRegion QRegion::united(class QRegion const &) const + ?parseNextSimpleSelector@Parser@QCss@@QAE_NPAUBasicSelector@2@@Z @ 7239 NONAME ; bool QCss::Parser::parseNextSimpleSelector(struct QCss::BasicSelector *) + ??0QDropEvent@@QAE@ABV0@@Z @ 7240 NONAME ; QDropEvent::QDropEvent(class QDropEvent const &) + ?d_func@QDateTimeEdit@@AAEPAVQDateTimeEditPrivate@@XZ @ 7241 NONAME ; class QDateTimeEditPrivate * QDateTimeEdit::d_func(void) + ?sortChildren@QStandardItem@@QAEXHW4SortOrder@Qt@@@Z @ 7242 NONAME ; void QStandardItem::sortChildren(int, enum Qt::SortOrder) + ??0QAbstractItemView@@IAE@AAVQAbstractItemViewPrivate@@PAVQWidget@@@Z @ 7243 NONAME ; QAbstractItemView::QAbstractItemView(class QAbstractItemViewPrivate &, class QWidget *) + ?forceShow@QProgressDialog@@IAEXXZ @ 7244 NONAME ; void QProgressDialog::forceShow(void) + ?aboutToHide@QMenu@@IAEXXZ @ 7245 NONAME ; void QMenu::aboutToHide(void) + ?currentImageNumber@QImageReader@@QBEHXZ @ 7246 NONAME ; int QImageReader::currentImageNumber(void) const + ?unifiedTitleAndToolBarOnMac@QMainWindow@@QBE_NXZ @ 7247 NONAME ; bool QMainWindow::unifiedTitleAndToolBarOnMac(void) const + ?staticMetaObject@QFrame@@2UQMetaObject@@B @ 7248 NONAME ; struct QMetaObject const QFrame::staticMetaObject + ?rotateRadians@QTransform@@QAEAAV1@MW4Axis@Qt@@@Z @ 7249 NONAME ; class QTransform & QTransform::rotateRadians(float, enum Qt::Axis) + ?setAutoDetectImageFormat@QImageReader@@QAEX_N@Z @ 7250 NONAME ; void QImageReader::setAutoDetectImageFormat(bool) + ?escapeButton@QMessageBox@@QBEPAVQAbstractButton@@XZ @ 7251 NONAME ; class QAbstractButton * QMessageBox::escapeButton(void) const + ?resizeEvent@QDialog@@MAEXPAVQResizeEvent@@@Z @ 7252 NONAME ; void QDialog::resizeEvent(class QResizeEvent *) + ?canUndoChanged@QUndoStack@@IAEX_N@Z @ 7253 NONAME ; void QUndoStack::canUndoChanged(bool) + ?begin@QTextFrame@@QBE?AViterator@1@XZ @ 7254 NONAME ; class QTextFrame::iterator QTextFrame::begin(void) const + ??0QTextListFormat@@QAE@XZ @ 7255 NONAME ; QTextListFormat::QTextListFormat(void) + ?characterCount@QTextDocument@@QBEHXZ @ 7256 NONAME ; int QTextDocument::characterCount(void) const + ?moveSplitter@QSplitter@@IAEXHH@Z @ 7257 NONAME ; void QSplitter::moveSplitter(int, int) + ?setDisabled@QWidget@@QAEX_N@Z @ 7258 NONAME ; void QWidget::setDisabled(bool) + ?fileMode@QFileDialog@@QBE?AW4FileMode@1@XZ @ 7259 NONAME ; enum QFileDialog::FileMode QFileDialog::fileMode(void) const + ?shape@QTextEngine@@QBEXH@Z @ 7260 NONAME ; void QTextEngine::shape(int) const + ?underline@QFont@@QBE_NXZ @ 7261 NONAME ; bool QFont::underline(void) const + ?focusOutEvent@QLineEdit@@MAEXPAVQFocusEvent@@@Z @ 7262 NONAME ; void QLineEdit::focusOutEvent(class QFocusEvent *) + ?overwriteMode@QTextControl@@QBE_NXZ @ 7263 NONAME ; bool QTextControl::overwriteMode(void) const + ?fromString@QFont@@QAE_NABVQString@@@Z @ 7264 NONAME ; bool QFont::fromString(class QString const &) + ?setData@QStandardItemModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 7265 NONAME ; bool QStandardItemModel::setData(class QModelIndex const &, class QVariant const &, int) + ?tr@QTabWidget@@SA?AVQString@@PBD0H@Z @ 7266 NONAME ; class QString QTabWidget::tr(char const *, char const *, int) + ?get@QGraphicsItemPrivate@@SAPAV1@PAVQGraphicsItem@@@Z @ 7267 NONAME ; class QGraphicsItemPrivate * QGraphicsItemPrivate::get(class QGraphicsItem *) + ?setAscent@QTextInlineObject@@QAEXM@Z @ 7268 NONAME ; void QTextInlineObject::setAscent(float) + ??DQTreeWidgetItemIterator@@QBEPAVQTreeWidgetItem@@XZ @ 7269 NONAME ; class QTreeWidgetItem * QTreeWidgetItemIterator::operator*(void) const + ?putPoints@QPolygon@@QAAXHHHHZZ @ 7270 NONAME ; void QPolygon::putPoints(int, int, int, int, ...) + ?data@QFileSystemModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 7271 NONAME ; class QVariant QFileSystemModel::data(class QModelIndex const &, int) const + ?setDashOffset@QPainterPathStroker@@QAEXM@Z @ 7272 NONAME ; void QPainterPathStroker::setDashOffset(float) + ?contains@QGraphicsEllipseItem@@UBE_NABVQPointF@@@Z @ 7273 NONAME ; bool QGraphicsEllipseItem::contains(class QPointF const &) const + ??0QIconEnginePlugin@@QAE@PAVQObject@@@Z @ 7274 NONAME ; QIconEnginePlugin::QIconEnginePlugin(class QObject *) + ?getFont@QFontDialog@@SA?AVQFont@@PA_NPAVQWidget@@@Z @ 7275 NONAME ; class QFont QFontDialog::getFont(bool *, class QWidget *) + ?trUtf8@QClipboard@@SA?AVQString@@PBD0@Z @ 7276 NONAME ; class QString QClipboard::trUtf8(char const *, char const *) + ?tessellate@QTessellator@@QAE?AVQRectF@@PBVQPointF@@H@Z @ 7277 NONAME ; class QRectF QTessellator::tessellate(class QPointF const *, int) + ?executePixmapModificationHooks@QImagePixmapCleanupHooks@@SAXPAVQPixmap@@@Z @ 7278 NONAME ; void QImagePixmapCleanupHooks::executePixmapModificationHooks(class QPixmap *) + ?isSelected@QGraphicsItem@@QBE_NXZ @ 7279 NONAME ; bool QGraphicsItem::isSelected(void) const + ?isSortingEnabled@QTableView@@QBE_NXZ @ 7280 NONAME ; bool QTableView::isSortingEnabled(void) const + ??1QGraphicsItem@@UAE@XZ @ 7281 NONAME ; QGraphicsItem::~QGraphicsItem(void) + ?scrollTo@QTableView@@UAEXABVQModelIndex@@W4ScrollHint@QAbstractItemView@@@Z @ 7282 NONAME ; void QTableView::scrollTo(class QModelIndex const &, enum QAbstractItemView::ScrollHint) + ??0QStyleOptionSpinBox@@QAE@ABV0@@Z @ 7283 NONAME ; QStyleOptionSpinBox::QStyleOptionSpinBox(class QStyleOptionSpinBox const &) + ??0QPixmapFilter@@IAE@AAVQPixmapFilterPrivate@@W4FilterType@0@PAVQObject@@@Z @ 7284 NONAME ; QPixmapFilter::QPixmapFilter(class QPixmapFilterPrivate &, enum QPixmapFilter::FilterType, class QObject *) + ?setFixedPitch@QFont@@QAEX_N@Z @ 7285 NONAME ; void QFont::setFixedPitch(bool) + ??ZQVector2D@@QAEAAV0@ABV0@@Z @ 7286 NONAME ; class QVector2D & QVector2D::operator-=(class QVector2D const &) + ?getStaticMetaObject@QAbstractItemDelegate@@SAABUQMetaObject@@XZ @ 7287 NONAME ; struct QMetaObject const & QAbstractItemDelegate::getStaticMetaObject(void) + ?autoRepeatDelay@QAbstractButton@@QBEHXZ @ 7288 NONAME ; int QAbstractButton::autoRepeatDelay(void) const + ?metric@QWidget@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 7289 NONAME ; int QWidget::metric(enum QPaintDevice::PaintDeviceMetric) const + ?count@QSplitter@@QBEHXZ @ 7290 NONAME ; int QSplitter::count(void) const + ??_EQGraphicsItemAnimation@@UAE@I@Z @ 7291 NONAME ; QGraphicsItemAnimation::~QGraphicsItemAnimation(unsigned int) + ??6@YAAAVQDataStream@@AAV0@ABVQStandardItem@@@Z @ 7292 NONAME ; class QDataStream & operator<<(class QDataStream &, class QStandardItem const &) + ?setWidget@QCompleter@@QAEXPAVQWidget@@@Z @ 7293 NONAME ; void QCompleter::setWidget(class QWidget *) + ?setupTransform@QPainterReplayer@@QAEXPAVQPainter@@@Z @ 7294 NONAME ; void QPainterReplayer::setupTransform(class QPainter *) + ?createSpacerItem@QLayoutPrivate@@SAPAVQSpacerItem@@PBVQLayout@@HHW4Policy@QSizePolicy@@1@Z @ 7295 NONAME ; class QSpacerItem * QLayoutPrivate::createSpacerItem(class QLayout const *, int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ??XQVector2D@@QAEAAV0@ABV0@@Z @ 7296 NONAME ; class QVector2D & QVector2D::operator*=(class QVector2D const &) + ?getStaticMetaObject@QTextBlockGroup@@SAABUQMetaObject@@XZ @ 7297 NONAME ; struct QMetaObject const & QTextBlockGroup::getStaticMetaObject(void) + ??1QItemEditorCreatorBase@@UAE@XZ @ 7298 NONAME ; QItemEditorCreatorBase::~QItemEditorCreatorBase(void) + ?staticMetaObject@QPaintBufferSignalProxy@@2UQMetaObject@@B @ 7299 NONAME ; struct QMetaObject const QPaintBufferSignalProxy::staticMetaObject + ?dropEvent@QGraphicsView@@MAEXPAVQDropEvent@@@Z @ 7300 NONAME ; void QGraphicsView::dropEvent(class QDropEvent *) + ?next@Parser@QCss@@QAE_NW4TokenType@2@@Z @ 7301 NONAME ; bool QCss::Parser::next(enum QCss::TokenType) + ?setAcceptDrops@QWidget@@QAEX_N@Z @ 7302 NONAME ; void QWidget::setAcceptDrops(bool) + ?isChecked@QAction@@QBE_NXZ @ 7303 NONAME ; bool QAction::isChecked(void) const + ?parseImport@Parser@QCss@@QAE_NPAUImportRule@2@@Z @ 7304 NONAME ; bool QCss::Parser::parseImport(struct QCss::ImportRule *) + ?defaultAlignment@QHeaderView@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 7305 NONAME ; class QFlags QHeaderView::defaultAlignment(void) const + ?d_func@QValidator@@ABEPBVQValidatorPrivate@@XZ @ 7306 NONAME ; class QValidatorPrivate const * QValidator::d_func(void) const + ?mimeTypes@QDirModel@@UBE?AVQStringList@@XZ @ 7307 NONAME ; class QStringList QDirModel::mimeTypes(void) const + ??6@YAAAVQDataStream@@AAV0@ABVQCursor@@@Z @ 7308 NONAME ; class QDataStream & operator<<(class QDataStream &, class QCursor const &) + ?centerOnScroll@QPlainTextEdit@@QBE_NXZ @ 7309 NONAME ; bool QPlainTextEdit::centerOnScroll(void) const + ?isHeaderVisible@QCalendarWidget@@QBE_NXZ @ 7310 NONAME ; bool QCalendarWidget::isHeaderVisible(void) const + ?scaledToWidth@QImage@@QBE?AV1@HW4TransformationMode@Qt@@@Z @ 7311 NONAME ; class QImage QImage::scaledToWidth(int, enum Qt::TransformationMode) const + ?fontInfo@QPainter@@QBE?AVQFontInfo@@XZ @ 7312 NONAME ; class QFontInfo QPainter::fontInfo(void) const + ?qt_metacall@QGraphicsColorizeEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7313 NONAME ; int QGraphicsColorizeEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?itemize@QTextEngine@@QBEXXZ @ 7314 NONAME ; void QTextEngine::itemize(void) const + ?setY@QGraphicsItem@@QAEXM@Z @ 7315 NONAME ; void QGraphicsItem::setY(float) + ?overline@QFontInfo@@QBE_NXZ @ 7316 NONAME ; bool QFontInfo::overline(void) const + ?valid@QImage@@QBE_NHH@Z @ 7317 NONAME ; bool QImage::valid(int, int) const + ?rowStretch@QGridLayout@@QBEHH@Z @ 7318 NONAME ; int QGridLayout::rowStretch(int) const + ?metaObject@QGraphicsTransform@@UBEPBUQMetaObject@@XZ @ 7319 NONAME ; struct QMetaObject const * QGraphicsTransform::metaObject(void) const + ?tr@QTableView@@SA?AVQString@@PBD0H@Z @ 7320 NONAME ; class QString QTableView::tr(char const *, char const *, int) + ?getStaticMetaObject@QGraphicsPixelizeEffect@@SAABUQMetaObject@@XZ @ 7321 NONAME ; struct QMetaObject const & QGraphicsPixelizeEffect::getStaticMetaObject(void) + ?isSelected@QTreeWidgetItem@@QBE_NXZ @ 7322 NONAME ; bool QTreeWidgetItem::isSelected(void) const + ?setUrlHandler@QDesktopServices@@SAXABVQString@@PAVQObject@@PBD@Z @ 7323 NONAME ; void QDesktopServices::setUrlHandler(class QString const &, class QObject *, char const *) + ?tr@QMdiArea@@SA?AVQString@@PBD0H@Z @ 7324 NONAME ; class QString QMdiArea::tr(char const *, char const *, int) + ?pointToRect@QWidgetPrivate@@SAHABVQPoint@@ABVQRect@@@Z @ 7325 NONAME ; int QWidgetPrivate::pointToRect(class QPoint const &, class QRect const &) + ?resizeColumnsToContents@QTableView@@QAEXXZ @ 7326 NONAME ; void QTableView::resizeColumnsToContents(void) + ?until@Parser@QCss@@QAE_NW4TokenType@2@0@Z @ 7327 NONAME ; bool QCss::Parser::until(enum QCss::TokenType, enum QCss::TokenType) + ?setCurrentColor@QColorDialog@@QAEXABVQColor@@@Z @ 7328 NONAME ; void QColorDialog::setCurrentColor(class QColor const &) + ?trUtf8@QStyledItemDelegate@@SA?AVQString@@PBD0H@Z @ 7329 NONAME ; class QString QStyledItemDelegate::trUtf8(char const *, char const *, int) + ?setRedirected@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQPoint@@@Z @ 7330 NONAME ; void QWidgetPrivate::setRedirected(class QPaintDevice *, class QPoint const &) + ?enterModal_sys@QApplicationPrivate@@SAXPAVQWidget@@@Z @ 7331 NONAME ; void QApplicationPrivate::enterModal_sys(class QWidget *) + ?setClipRect@QPainter@@QAEXABVQRectF@@W4ClipOperation@Qt@@@Z @ 7332 NONAME ; void QPainter::setClipRect(class QRectF const &, enum Qt::ClipOperation) + ?focusOutEvent@QGraphicsView@@MAEXPAVQFocusEvent@@@Z @ 7333 NONAME ; void QGraphicsView::focusOutEvent(class QFocusEvent *) + ?description@QPictureIO@@QBE?AVQString@@XZ @ 7334 NONAME ; class QString QPictureIO::description(void) const + ?isObscuredBy@QGraphicsRectItem@@UBE_NPBVQGraphicsItem@@@Z @ 7335 NONAME ; bool QGraphicsRectItem::isObscuredBy(class QGraphicsItem const *) const + ?trUtf8@QGraphicsScale@@SA?AVQString@@PBD0@Z @ 7336 NONAME ; class QString QGraphicsScale::trUtf8(char const *, char const *) + ?editingWidget@QWidgetPrivate@@2V?$QPointer@VQWidget@@@@A @ 7337 NONAME ; class QPointer QWidgetPrivate::editingWidget + ??0QWheelEvent@@QAE@ABVQPoint@@0HV?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@W4Orientation@Qt@@@Z @ 7338 NONAME ; QWheelEvent::QWheelEvent(class QPoint const &, class QPoint const &, int, class QFlags, class QFlags, enum Qt::Orientation) + ?qt_metacast@QGraphicsAnchor@@UAEPAXPBD@Z @ 7339 NONAME ; void * QGraphicsAnchor::qt_metacast(char const *) + ?createEditor@QAbstractItemDelegate@@UBEPAVQWidget@@PAV2@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 7340 NONAME ; class QWidget * QAbstractItemDelegate::createEditor(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ??0QTransform@@QAE@MMMMMMMMM@Z @ 7341 NONAME ; QTransform::QTransform(float, float, float, float, float, float, float, float, float) + ?setDefaultProperty@QWizard@@QAEXPBD00@Z @ 7342 NONAME ; void QWizard::setDefaultProperty(char const *, char const *, char const *) + ?scroll@QWidget@@QAEXHH@Z @ 7343 NONAME ; void QWidget::scroll(int, int) + ?enabledChanged@QGraphicsObject@@IAEXXZ @ 7344 NONAME ; void QGraphicsObject::enabledChanged(void) + ?fill@QPixmap@@QAEXPBVQWidget@@HH@Z @ 7345 NONAME ; void QPixmap::fill(class QWidget const *, int, int) + ??1QPixmapConvolutionFilter@@UAE@XZ @ 7346 NONAME ; QPixmapConvolutionFilter::~QPixmapConvolutionFilter(void) + ?lineForTextPosition@QTextLayout@@QBE?AVQTextLine@@H@Z @ 7347 NONAME ; class QTextLine QTextLayout::lineForTextPosition(int) const + ?ensureVisible@QGraphicsItem@@QAEXABVQRectF@@HH@Z @ 7348 NONAME ; void QGraphicsItem::ensureVisible(class QRectF const &, int, int) + ?trUtf8@QValidator@@SA?AVQString@@PBD0H@Z @ 7349 NONAME ; class QString QValidator::trUtf8(char const *, char const *, int) + ?endEditBlock@QTextCursor@@QAEXXZ @ 7350 NONAME ; void QTextCursor::endEditBlock(void) + ?lineCount@QTextLayout@@QBEHXZ @ 7351 NONAME ; int QTextLayout::lineCount(void) const + ??0QRegion@@QAE@ABVQRect@@W4RegionType@0@@Z @ 7352 NONAME ; QRegion::QRegion(class QRect const &, enum QRegion::RegionType) + ?trUtf8@QCalendarWidget@@SA?AVQString@@PBD0@Z @ 7353 NONAME ; class QString QCalendarWidget::trUtf8(char const *, char const *) + ?capStyle@QPainterPathStroker@@QBE?AW4PenCapStyle@Qt@@XZ @ 7354 NONAME ; enum Qt::PenCapStyle QPainterPathStroker::capStyle(void) const + ?saveState@QApplication@@UAEXAAVQSessionManager@@@Z @ 7355 NONAME ; void QApplication::saveState(class QSessionManager &) + ?screenPos@QGraphicsSceneDragDropEvent@@QBE?AVQPoint@@XZ @ 7356 NONAME ; class QPoint QGraphicsSceneDragDropEvent::screenPos(void) const + ?boundingRect@QPolygon@@QBE?AVQRect@@XZ @ 7357 NONAME ; class QRect QPolygon::boundingRect(void) const + ?drawPixmap@QPaintEngineEx@@UAEXABVQPointF@@ABVQPixmap@@@Z @ 7358 NONAME ; void QPaintEngineEx::drawPixmap(class QPointF const &, class QPixmap const &) + ?qt_metacall@QDoubleValidator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7359 NONAME ; int QDoubleValidator::qt_metacall(enum QMetaObject::Call, int, void * *) + ?sectionsHidden@QHeaderView@@QBE_NXZ @ 7360 NONAME ; bool QHeaderView::sectionsHidden(void) const + ??8QImage@@QBE_NABV0@@Z @ 7361 NONAME ; bool QImage::operator==(class QImage const &) const + ?resetFocusProxy@QGraphicsItemPrivate@@QAEXXZ @ 7362 NONAME ; void QGraphicsItemPrivate::resetFocusProxy(void) + ?setStyleStrategy@QFont@@QAEXW4StyleStrategy@1@@Z @ 7363 NONAME ; void QFont::setStyleStrategy(enum QFont::StyleStrategy) + ??0QPixmap@@QAE@ABVQSize@@@Z @ 7364 NONAME ; QPixmap::QPixmap(class QSize const &) + ?normalize@QQuaternion@@QAEXXZ @ 7365 NONAME ; void QQuaternion::normalize(void) + ??0QWidget@@IAE@AAVQWidgetPrivate@@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 7366 NONAME ; QWidget::QWidget(class QWidgetPrivate &, class QWidget *, class QFlags) + ?showEvent@QProgressDialog@@MAEXPAVQShowEvent@@@Z @ 7367 NONAME ; void QProgressDialog::showEvent(class QShowEvent *) + ?changeEvent@QTabBar@@MAEXPAVQEvent@@@Z @ 7368 NONAME ; void QTabBar::changeEvent(class QEvent *) + ??0QPicture@@QAE@ABV0@@Z @ 7369 NONAME ; QPicture::QPicture(class QPicture const &) + ?error@QMovie@@IAEXW4ImageReaderError@QImageReader@@@Z @ 7370 NONAME ; void QMovie::error(enum QImageReader::ImageReaderError) + ?normalize@QVector3D@@QAEXXZ @ 7371 NONAME ; void QVector3D::normalize(void) + ?dragAccepted@QDragResponseEvent@@QBE_NXZ @ 7372 NONAME ; bool QDragResponseEvent::dragAccepted(void) const + ?writingSystemName@QFontDatabase@@SA?AVQString@@W4WritingSystem@1@@Z @ 7373 NONAME ; class QString QFontDatabase::writingSystemName(enum QFontDatabase::WritingSystem) + ?testAttribute@QWidget@@QBE_NW4WidgetAttribute@Qt@@@Z @ 7374 NONAME ; bool QWidget::testAttribute(enum Qt::WidgetAttribute) const + ??_EQAbstractUndoItem@@UAE@I@Z @ 7375 NONAME ; QAbstractUndoItem::~QAbstractUndoItem(unsigned int) + ?d_func@QPanGesture@@AAEPAVQPanGesturePrivate@@XZ @ 7376 NONAME ; class QPanGesturePrivate * QPanGesture::d_func(void) + ?activateNextWindow@QWorkspace@@QAEXXZ @ 7377 NONAME ; void QWorkspace::activateNextWindow(void) + ?d_func@QGraphicsRotation@@AAEPAVQGraphicsRotationPrivate@@XZ @ 7378 NONAME ; class QGraphicsRotationPrivate * QGraphicsRotation::d_func(void) + ?metaObject@QStackedLayout@@UBEPBUQMetaObject@@XZ @ 7379 NONAME ; struct QMetaObject const * QStackedLayout::metaObject(void) const + ?draw@QGraphicsBlurEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 7380 NONAME ; void QGraphicsBlurEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?tr@QAbstractProxyModel@@SA?AVQString@@PBD0H@Z @ 7381 NONAME ; class QString QAbstractProxyModel::tr(char const *, char const *, int) + ?showSelectedDate@QCalendarWidget@@QAEXXZ @ 7382 NONAME ; void QCalendarWidget::showSelectedDate(void) + ?map@QMatrix4x4@@QBE?AVQVector3D@@ABV2@@Z @ 7383 NONAME ; class QVector3D QMatrix4x4::map(class QVector3D const &) const + ?setText@QAbstractButton@@QAEXABVQString@@@Z @ 7384 NONAME ; void QAbstractButton::setText(class QString const &) + ?getStaticMetaObject@QPictureFormatPlugin@@SAABUQMetaObject@@XZ @ 7385 NONAME ; struct QMetaObject const & QPictureFormatPlugin::getStaticMetaObject(void) + ?heightForWidth@QWidgetItemV2@@UBEHH@Z @ 7386 NONAME ; int QWidgetItemV2::heightForWidth(int) const + ??0QConicalGradient@@QAE@ABVQPointF@@M@Z @ 7387 NONAME ; QConicalGradient::QConicalGradient(class QPointF const &, float) + ?d_func@QTableWidget@@ABEPBVQTableWidgetPrivate@@XZ @ 7388 NONAME ; class QTableWidgetPrivate const * QTableWidget::d_func(void) const + ?showEvent@QTabWidget@@MAEXPAVQShowEvent@@@Z @ 7389 NONAME ; void QTabWidget::showEvent(class QShowEvent *) + ?tr@QFormLayout@@SA?AVQString@@PBD0H@Z @ 7390 NONAME ; class QString QFormLayout::tr(char const *, char const *, int) + ?qt_metacall@QAbstractProxyModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7391 NONAME ; int QAbstractProxyModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QGraphicsBlurEffect@@UAEPAXPBD@Z @ 7392 NONAME ; void * QGraphicsBlurEffect::qt_metacast(char const *) + ?shape@QGraphicsEllipseItem@@UBE?AVQPainterPath@@XZ @ 7393 NONAME ; class QPainterPath QGraphicsEllipseItem::shape(void) const + ?isNull@QTextureGlyphCache@@QBE_NXZ @ 7394 NONAME ; bool QTextureGlyphCache::isNull(void) const + ?buttons@QGraphicsSceneDragDropEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 7395 NONAME ; class QFlags QGraphicsSceneDragDropEvent::buttons(void) const + ?nonBreakableLines@QTextBlockFormat@@QBE_NXZ @ 7396 NONAME ; bool QTextBlockFormat::nonBreakableLines(void) const + ??0QTextCharFormat@@QAE@XZ @ 7397 NONAME ; QTextCharFormat::QTextCharFormat(void) + ?font@QGraphicsSimpleTextItem@@QBE?AVQFont@@XZ @ 7398 NONAME ; class QFont QGraphicsSimpleTextItem::font(void) const + ?d_func@QTabWidget@@ABEPBVQTabWidgetPrivate@@XZ @ 7399 NONAME ; class QTabWidgetPrivate const * QTabWidget::d_func(void) const + ?metaObject@QCheckBox@@UBEPBUQMetaObject@@XZ @ 7400 NONAME ; struct QMetaObject const * QCheckBox::metaObject(void) const + ?setAutoRepeat@QShortcut@@QAEX_N@Z @ 7401 NONAME ; void QShortcut::setAutoRepeat(bool) + ?clearLineData@QTextEngine@@QAEXXZ @ 7402 NONAME ; void QTextEngine::clearLineData(void) + ?devType@QPixmap@@UBEHXZ @ 7403 NONAME ; int QPixmap::devType(void) const + ?update@QCoeFepInputContext@@UAEXXZ @ 7404 NONAME ; void QCoeFepInputContext::update(void) + ?showSection@QHeaderView@@QAEXH@Z @ 7405 NONAME ; void QHeaderView::showSection(int) + ?setDirection@QBoxLayout@@QAEXW4Direction@1@@Z @ 7406 NONAME ; void QBoxLayout::setDirection(enum QBoxLayout::Direction) + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPolygonF@@W4ItemSelectionMode@Qt@@@Z @ 7407 NONAME ; class QList QGraphicsScene::items(class QPolygonF const &, enum Qt::ItemSelectionMode) const + ?previousCursorPosition@QTextLayout@@QBEHHW4CursorMode@1@@Z @ 7408 NONAME ; int QTextLayout::previousCursorPosition(int, enum QTextLayout::CursorMode) const + ??1QDialog@@UAE@XZ @ 7409 NONAME ; QDialog::~QDialog(void) + ?intersected@QRegion@@QBE?AV1@ABVQRect@@@Z @ 7410 NONAME ; class QRegion QRegion::intersected(class QRect const &) const + ??1QGraphicsRectItem@@UAE@XZ @ 7411 NONAME ; QGraphicsRectItem::~QGraphicsRectItem(void) + ?defaultFont@QTextDocument@@QBE?AVQFont@@XZ @ 7412 NONAME ; class QFont QTextDocument::defaultFont(void) const + ?nextMaskBlank@QLineControl@@QAEHH@Z @ 7413 NONAME ; int QLineControl::nextMaskBlank(int) + ?changeEvent@QTextEdit@@MAEXPAVQEvent@@@Z @ 7414 NONAME ; void QTextEdit::changeEvent(class QEvent *) + ?undoCommandAdded@QTextDocument@@IAEXXZ @ 7415 NONAME ; void QTextDocument::undoCommandAdded(void) + ?x@QVector4D@@QBEMXZ @ 7416 NONAME ; float QVector4D::x(void) const + ??0QTextEdit@@QAE@ABVQString@@PAVQWidget@@@Z @ 7417 NONAME ; QTextEdit::QTextEdit(class QString const &, class QWidget *) + ??1QStroker@@UAE@XZ @ 7418 NONAME ; QStroker::~QStroker(void) + ?initStyleOption@QHeaderView@@IBEXPAVQStyleOptionHeader@@@Z @ 7419 NONAME ; void QHeaderView::initStyleOption(class QStyleOptionHeader *) const + ?isFixedPitch@QFontDatabase@@QBE_NABVQString@@0@Z @ 7420 NONAME ; bool QFontDatabase::isFixedPitch(class QString const &, class QString const &) const + ?painter@QPaintEngineState@@QBEPAVQPainter@@XZ @ 7421 NONAME ; class QPainter * QPaintEngineState::painter(void) const + ?trUtf8@QTextBrowser@@SA?AVQString@@PBD0@Z @ 7422 NONAME ; class QString QTextBrowser::trUtf8(char const *, char const *) + ?sliderChange@QAbstractSlider@@MAEXW4SliderChange@1@@Z @ 7423 NONAME ; void QAbstractSlider::sliderChange(enum QAbstractSlider::SliderChange) + ?resizeEvent@QToolBar@@MAEXPAVQResizeEvent@@@Z @ 7424 NONAME ; void QToolBar::resizeEvent(class QResizeEvent *) + ?calendarPopup@QDateTimeEdit@@QBE_NXZ @ 7425 NONAME ; bool QDateTimeEdit::calendarPopup(void) const + ?setBrush@QPalette@@QAEXW4ColorGroup@1@W4ColorRole@1@ABVQBrush@@@Z @ 7426 NONAME ; void QPalette::setBrush(enum QPalette::ColorGroup, enum QPalette::ColorRole, class QBrush const &) + ?paintDevice@QRasterWindowSurface@@UAEPAVQPaintDevice@@XZ @ 7427 NONAME ; class QPaintDevice * QRasterWindowSurface::paintDevice(void) + ?begin@QTextDocument@@QBE?AVQTextBlock@@XZ @ 7428 NONAME ; class QTextBlock QTextDocument::begin(void) const + ?keyPressEvent@QWidgetResizeHandler@@IAEXPAVQKeyEvent@@@Z @ 7429 NONAME ; void QWidgetResizeHandler::keyPressEvent(class QKeyEvent *) + ??0QPolygonF@@QAE@ABV0@@Z @ 7430 NONAME ; QPolygonF::QPolygonF(class QPolygonF const &) + ?unpolish@QWindowsStyle@@UAEXPAVQApplication@@@Z @ 7431 NONAME ; void QWindowsStyle::unpolish(class QApplication *) + ?toTableFormat@QTextFormat@@QBE?AVQTextTableFormat@@XZ @ 7432 NONAME ; class QTextTableFormat QTextFormat::toTableFormat(void) const + ?deselect@QLineControl@@QAEXXZ @ 7433 NONAME ; void QLineControl::deselect(void) + ?display@QLCDNumber@@QAEXABVQString@@@Z @ 7434 NONAME ; void QLCDNumber::display(class QString const &) + ?staticMetaObject@QGraphicsTransform@@2UQMetaObject@@B @ 7435 NONAME ; struct QMetaObject const QGraphicsTransform::staticMetaObject + ?paintEvent@QCommandLinkButton@@MAEXPAVQPaintEvent@@@Z @ 7436 NONAME ; void QCommandLinkButton::paintEvent(class QPaintEvent *) + ?setTabOrder@QGraphicsWidget@@SAXPAV1@0@Z @ 7437 NONAME ; void QGraphicsWidget::setTabOrder(class QGraphicsWidget *, class QGraphicsWidget *) + ?d_func@QGraphicsPolygonItem@@ABEPBVQGraphicsPolygonItemPrivate@@XZ @ 7438 NONAME ; class QGraphicsPolygonItemPrivate const * QGraphicsPolygonItem::d_func(void) const + ?united@QPolygon@@QBE?AV1@ABV1@@Z @ 7439 NONAME ; class QPolygon QPolygon::united(class QPolygon const &) const + ?span@QSortFilterProxyModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 7440 NONAME ; class QSize QSortFilterProxyModel::span(class QModelIndex const &) const + ?end@QTextFrame@@QBE?AViterator@1@XZ @ 7441 NONAME ; class QTextFrame::iterator QTextFrame::end(void) const + ??0QApplication@@IAE@AAHPAPAD_N@Z @ 7442 NONAME ; QApplication::QApplication(int &, char * *, bool) + ?maximumSize@QGridLayout@@UBE?AVQSize@@XZ @ 7443 NONAME ; class QSize QGridLayout::maximumSize(void) const + ?isAncestorOf@QWidget@@QBE_NPBV1@@Z @ 7444 NONAME ; bool QWidget::isAncestorOf(class QWidget const *) const + ?field@QWizardPage@@IBE?AVQVariant@@ABVQString@@@Z @ 7445 NONAME ; class QVariant QWizardPage::field(class QString const &) const + ??_EQGestureEvent@@UAE@I@Z @ 7446 NONAME ; QGestureEvent::~QGestureEvent(unsigned int) + ?setMaxLength@QLineControl@@QAEXH@Z @ 7447 NONAME ; void QLineControl::setMaxLength(int) + ?sizeHintForColumn@QAbstractItemView@@UBEHH@Z @ 7448 NONAME ; int QAbstractItemView::sizeHintForColumn(int) const + ??0QImage@@QAE@ABVQSize@@W4Format@0@@Z @ 7449 NONAME ; QImage::QImage(class QSize const &, enum QImage::Format) + ?toGraphicsObject@QGraphicsItem@@QBEPBVQGraphicsObject@@XZ @ 7450 NONAME ; class QGraphicsObject const * QGraphicsItem::toGraphicsObject(void) const + ?textCursor@QTextEdit@@QBE?AVQTextCursor@@XZ @ 7451 NONAME ; class QTextCursor QTextEdit::textCursor(void) const + ?setParent_sys@QWidgetPrivate@@QAEXPAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 7452 NONAME ; void QWidgetPrivate::setParent_sys(class QWidget *, class QFlags) + ?clearMask@QWidget@@QAEXXZ @ 7453 NONAME ; void QWidget::clearMask(void) + ?error@QImageWriter@@QBE?AW4ImageWriterError@1@XZ @ 7454 NONAME ; enum QImageWriter::ImageWriterError QImageWriter::error(void) const + ?alignment@QLineEdit@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 7455 NONAME ; class QFlags QLineEdit::alignment(void) const + ?setEffectEnabled@QApplication@@SAXW4UIEffect@Qt@@_N@Z @ 7456 NONAME ; void QApplication::setEffectEnabled(enum Qt::UIEffect, bool) + ?drawLines@QPainter@@QAEXPBVQPoint@@H@Z @ 7457 NONAME ; void QPainter::drawLines(class QPoint const *, int) + ??0QStyleOptionToolBox@@QAE@XZ @ 7458 NONAME ; QStyleOptionToolBox::QStyleOptionToolBox(void) + ?maximumSize@QWidgetItemV2@@UBE?AVQSize@@XZ @ 7459 NONAME ; class QSize QWidgetItemV2::maximumSize(void) const + ?devType@QImage@@UBEHXZ @ 7460 NONAME ; int QImage::devType(void) const + ?setSpacing@QGraphicsGridLayout@@QAEXM@Z @ 7461 NONAME ; void QGraphicsGridLayout::setSpacing(float) + ?trUtf8@QScrollArea@@SA?AVQString@@PBD0H@Z @ 7462 NONAME ; class QString QScrollArea::trUtf8(char const *, char const *, int) + ??0QTreeWidgetItem@@QAE@PAV0@ABVQStringList@@H@Z @ 7463 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidgetItem *, class QStringList const &, int) + ?qt_metacall@QGraphicsBlurEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7464 NONAME ; int QGraphicsBlurEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QGesture@@SAABUQMetaObject@@XZ @ 7465 NONAME ; struct QMetaObject const & QGesture::getStaticMetaObject(void) + ?setGraphicsEffect@QWidget@@QAEXPAVQGraphicsEffect@@@Z @ 7466 NONAME ; void QWidget::setGraphicsEffect(class QGraphicsEffect *) + ??_EQImageIOHandlerFactoryInterface@@UAE@I@Z @ 7467 NONAME ; QImageIOHandlerFactoryInterface::~QImageIOHandlerFactoryInterface(unsigned int) + ?setFilter@QDirModel@@QAEXV?$QFlags@W4Filter@QDir@@@@@Z @ 7468 NONAME ; void QDirModel::setFilter(class QFlags) + ??0QPainter@@QAE@PAVQPaintDevice@@@Z @ 7469 NONAME ; QPainter::QPainter(class QPaintDevice *) + ?name@QTextImageFormat@@QBE?AVQString@@XZ @ 7470 NONAME ; class QString QTextImageFormat::name(void) const + ?text@QPalette@@QBEABVQBrush@@XZ @ 7471 NONAME ; class QBrush const & QPalette::text(void) const + ?setFlags@QTreeWidgetItem@@QAEXV?$QFlags@W4ItemFlag@Qt@@@@@Z @ 7472 NONAME ; void QTreeWidgetItem::setFlags(class QFlags) + ??0QGraphicsLineItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 7473 NONAME ; QGraphicsLineItem::QGraphicsLineItem(class QGraphicsItem *, class QGraphicsScene *) + ??6@YA?AVQDebug@@V0@ABVQColor@@@Z @ 7474 NONAME ; class QDebug operator<<(class QDebug, class QColor const &) + ?metaObject@QSyntaxHighlighter@@UBEPBUQMetaObject@@XZ @ 7475 NONAME ; struct QMetaObject const * QSyntaxHighlighter::metaObject(void) const + ?setSource@QTextBrowser@@UAEXABVQUrl@@@Z @ 7476 NONAME ; void QTextBrowser::setSource(class QUrl const &) + ??0QStyleOptionComboBox@@IAE@H@Z @ 7477 NONAME ; QStyleOptionComboBox::QStyleOptionComboBox(int) + ?contains@QPainterPath@@QBE_NABV1@@Z @ 7478 NONAME ; bool QPainterPath::contains(class QPainterPath const &) const + ?d_func@QMouseEventTransition@@ABEPBVQMouseEventTransitionPrivate@@XZ @ 7479 NONAME ; class QMouseEventTransitionPrivate const * QMouseEventTransition::d_func(void) const + ?trUtf8@QTimeEdit@@SA?AVQString@@PBD0@Z @ 7480 NONAME ; class QString QTimeEdit::trUtf8(char const *, char const *) + ?trUtf8@QTreeView@@SA?AVQString@@PBD0@Z @ 7481 NONAME ; class QString QTreeView::trUtf8(char const *, char const *) + ?drawRects@QPaintEngine@@UAEXPBVQRectF@@H@Z @ 7482 NONAME ; void QPaintEngine::drawRects(class QRectF const *, int) + ?getStaticMetaObject@QCommonStyle@@SAABUQMetaObject@@XZ @ 7483 NONAME ; struct QMetaObject const & QCommonStyle::getStaticMetaObject(void) + ?itemAt@QDockWidgetLayout@@UBEPAVQLayoutItem@@H@Z @ 7484 NONAME ; class QLayoutItem * QDockWidgetLayout::itemAt(int) const + ?row@QStandardItem@@QBEHXZ @ 7485 NONAME ; int QStandardItem::row(void) const + ??4QTextOption@@QAEAAV0@ABV0@@Z @ 7486 NONAME ; class QTextOption & QTextOption::operator=(class QTextOption const &) + ?blockInserted@QTextBlockGroup@@MAEXABVQTextBlock@@@Z @ 7487 NONAME ; void QTextBlockGroup::blockInserted(class QTextBlock const &) + ?treeWidget@QTreeWidgetItem@@QBEPAVQTreeWidget@@XZ @ 7488 NONAME ; class QTreeWidget * QTreeWidgetItem::treeWidget(void) const + ?getStaticMetaObject@QMainWindow@@SAABUQMetaObject@@XZ @ 7489 NONAME ; struct QMetaObject const & QMainWindow::getStaticMetaObject(void) + ?moveSplitter@QSplitterHandle@@IAEXH@Z @ 7490 NONAME ; void QSplitterHandle::moveSplitter(int) + ?trUtf8@QAbstractSpinBox@@SA?AVQString@@PBD0H@Z @ 7491 NONAME ; class QString QAbstractSpinBox::trUtf8(char const *, char const *, int) + ?setStart@QLinearGradient@@QAEXABVQPointF@@@Z @ 7492 NONAME ; void QLinearGradient::setStart(class QPointF const &) + ?maybeExtraItemCache@QGraphicsItemPrivate@@QBEPAVQGraphicsItemCache@@XZ @ 7493 NONAME ; class QGraphicsItemCache * QGraphicsItemPrivate::maybeExtraItemCache(void) const + ?qtHandler@QErrorMessage@@SAPAV1@XZ @ 7494 NONAME ; class QErrorMessage * QErrorMessage::qtHandler(void) + ?setCursorWidth@QTextControl@@QAEXH@Z @ 7495 NONAME ; void QTextControl::setCursorWidth(int) + ??0QKeyEvent@@QAE@W4Type@QEvent@@HV?$QFlags@W4KeyboardModifier@Qt@@@@ABVQString@@_NG@Z @ 7496 NONAME ; QKeyEvent::QKeyEvent(enum QEvent::Type, int, class QFlags, class QString const &, bool, unsigned short) + ?setModel@QTreeWidget@@EAEXPAVQAbstractItemModel@@@Z @ 7497 NONAME ; void QTreeWidget::setModel(class QAbstractItemModel *) + ??8QFontMetricsF@@QAE_NABV0@@Z @ 7498 NONAME ; bool QFontMetricsF::operator==(class QFontMetricsF const &) + ?isSelected@QTableWidgetItem@@QBE_NXZ @ 7499 NONAME ; bool QTableWidgetItem::isSelected(void) const + ??1QGraphicsView@@UAE@XZ @ 7500 NONAME ; QGraphicsView::~QGraphicsView(void) + ?sliderPosition@QAbstractSlider@@QBEHXZ @ 7501 NONAME ; int QAbstractSlider::sliderPosition(void) const + ?setProxy@QStyle@@AAEXPAV1@@Z @ 7502 NONAME ; void QStyle::setProxy(class QStyle *) + ??0QAbstractSpinBox@@QAE@PAVQWidget@@@Z @ 7503 NONAME ; QAbstractSpinBox::QAbstractSpinBox(class QWidget *) + ?addWidget@QGridLayout@@QAEXPAVQWidget@@HHHHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 7504 NONAME ; void QGridLayout::addWidget(class QWidget *, int, int, int, int, class QFlags) + ?initStyleOption@QDateTimeEdit@@IBEXPAVQStyleOptionSpinBox@@@Z @ 7505 NONAME ; void QDateTimeEdit::initStyleOption(class QStyleOptionSpinBox *) const + ??4QRegion@@QAEAAV0@ABV0@@Z @ 7506 NONAME ; class QRegion & QRegion::operator=(class QRegion const &) + ?setCursorWidth@QPlainTextEdit@@QAEXH@Z @ 7507 NONAME ; void QPlainTextEdit::setCursorWidth(int) + ?splitPath@QCompleter@@UBE?AVQStringList@@ABVQString@@@Z @ 7508 NONAME ; class QStringList QCompleter::splitPath(class QString const &) const + ?setGeometry@QWidgetItem@@UAEXABVQRect@@@Z @ 7509 NONAME ; void QWidgetItem::setGeometry(class QRect const &) + ?setResolveSymlinks@QDirModel@@QAEX_N@Z @ 7510 NONAME ; void QDirModel::setResolveSymlinks(bool) + ?setAutoFormatting@QTextEdit@@QAEXV?$QFlags@W4AutoFormattingFlag@QTextEdit@@@@@Z @ 7511 NONAME ; void QTextEdit::setAutoFormatting(class QFlags) + ?actions@QWidget@@QBE?AV?$QList@PAVQAction@@@@XZ @ 7512 NONAME ; class QList QWidget::actions(void) const + ?setJoinStyle@QStroker@@QAEXW4PenJoinStyle@Qt@@@Z @ 7513 NONAME ; void QStroker::setJoinStyle(enum Qt::PenJoinStyle) + ??4QStyleOptionGroupBox@@QAEAAV0@ABV0@@Z @ 7514 NONAME ; class QStyleOptionGroupBox & QStyleOptionGroupBox::operator=(class QStyleOptionGroupBox const &) + ?metaObject@QToolButton@@UBEPBUQMetaObject@@XZ @ 7515 NONAME ; struct QMetaObject const * QToolButton::metaObject(void) const + ?setLabelText@QFileDialog@@QAEXW4DialogLabel@1@ABVQString@@@Z @ 7516 NONAME ; void QFileDialog::setLabelText(enum QFileDialog::DialogLabel, class QString const &) + ?setGeometry@QBoxLayout@@UAEXABVQRect@@@Z @ 7517 NONAME ; void QBoxLayout::setGeometry(class QRect const &) + ??0QS60MainDocument@@QAE@AAVCEikApplication@@@Z @ 7518 NONAME ; QS60MainDocument::QS60MainDocument(class CEikApplication &) + ?insertWidget@QSplitter@@QAEXHPAVQWidget@@@Z @ 7519 NONAME ; void QSplitter::insertWidget(int, class QWidget *) + ?currentCharFormat@QPlainTextEdit@@QBE?AVQTextCharFormat@@XZ @ 7520 NONAME ; class QTextCharFormat QPlainTextEdit::currentCharFormat(void) const + ?resolve@QFont@@QBE?AV1@ABV1@@Z @ 7521 NONAME ; class QFont QFont::resolve(class QFont const &) const + ?allGray@QImage@@QBE_NXZ @ 7522 NONAME ; bool QImage::allGray(void) const + ?toggle@QToolBarChangeEvent@@QBE_NXZ @ 7523 NONAME ; bool QToolBarChangeEvent::toggle(void) const + ?setEchoMode@QLineEdit@@QAEXW4EchoMode@1@@Z @ 7524 NONAME ; void QLineEdit::setEchoMode(enum QLineEdit::EchoMode) + ?qt_metacall@QS60Style@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7525 NONAME ; int QS60Style::qt_metacall(enum QMetaObject::Call, int, void * *) + ?supportsExtension@QGraphicsTextItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 7526 NONAME ; bool QGraphicsTextItem::supportsExtension(enum QGraphicsItem::Extension) const + ?setUndoRedoEnabled@QTextEdit@@QAEX_N@Z @ 7527 NONAME ; void QTextEdit::setUndoRedoEnabled(bool) + ?setHistory@QFileDialog@@QAEXABVQStringList@@@Z @ 7528 NONAME ; void QFileDialog::setHistory(class QStringList const &) + ?itemSelectionChanged@QTableWidget@@IAEXXZ @ 7529 NONAME ; void QTableWidget::itemSelectionChanged(void) + ??0QGraphicsPathItem@@QAE@ABVQPainterPath@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 7530 NONAME ; QGraphicsPathItem::QGraphicsPathItem(class QPainterPath const &, class QGraphicsItem *, class QGraphicsScene *) + ?flags@QTableWidgetItem@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 7531 NONAME ; class QFlags QTableWidgetItem::flags(void) const + ??GQRegion@@QBE?BV0@ABV0@@Z @ 7532 NONAME ; class QRegion const QRegion::operator-(class QRegion const &) const + ?setFieldGrowthPolicy@QFormLayout@@QAEXW4FieldGrowthPolicy@1@@Z @ 7533 NONAME ; void QFormLayout::setFieldGrowthPolicy(enum QFormLayout::FieldGrowthPolicy) + ?changed@QAction@@IAEXXZ @ 7534 NONAME ; void QAction::changed(void) + ?setSpacing@QGraphicsAnchor@@QAEXM@Z @ 7535 NONAME ; void QGraphicsAnchor::setSpacing(float) + ?visualRect@QStyle@@SA?AVQRect@@W4LayoutDirection@Qt@@ABV2@1@Z @ 7536 NONAME ; class QRect QStyle::visualRect(enum Qt::LayoutDirection, class QRect const &, class QRect const &) + ?exec@QMenu@@QAEPAVQAction@@XZ @ 7537 NONAME ; class QAction * QMenu::exec(void) + ?boundingRect@QFontMetrics@@QBE?AVQRect@@ABVQString@@@Z @ 7538 NONAME ; class QRect QFontMetrics::boundingRect(class QString const &) const + ?tr@QColumnView@@SA?AVQString@@PBD0H@Z @ 7539 NONAME ; class QString QColumnView::tr(char const *, char const *, int) + ??1QTextTableCellFormat@@QAE@XZ @ 7540 NONAME ; QTextTableCellFormat::~QTextTableCellFormat(void) + ?d_func@QGroupBox@@ABEPBVQGroupBoxPrivate@@XZ @ 7541 NONAME ; class QGroupBoxPrivate const * QGroupBox::d_func(void) const + ?isChecked@QAbstractButton@@QBE_NXZ @ 7542 NONAME ; bool QAbstractButton::isChecked(void) const + ?tabRemoved@QTabBar@@MAEXH@Z @ 7543 NONAME ; void QTabBar::tabRemoved(int) + ?button@QGraphicsSceneMouseEvent@@QBE?AW4MouseButton@Qt@@XZ @ 7544 NONAME ; enum Qt::MouseButton QGraphicsSceneMouseEvent::button(void) const + ?logicalIndexAt@QHeaderView@@QBEHH@Z @ 7545 NONAME ; int QHeaderView::logicalIndexAt(int) const + ?translate@QGraphicsView@@QAEXMM@Z @ 7546 NONAME ; void QGraphicsView::translate(float, float) + ?hasChildren@QFileSystemModel@@UBE_NABVQModelIndex@@@Z @ 7547 NONAME ; bool QFileSystemModel::hasChildren(class QModelIndex const &) const + ?indexOf@QSplitter@@QBEHPAVQWidget@@@Z @ 7548 NONAME ; int QSplitter::indexOf(class QWidget *) const + ??0QStyleOptionViewItem@@QAE@ABV0@@Z @ 7549 NONAME ; QStyleOptionViewItem::QStyleOptionViewItem(class QStyleOptionViewItem const &) + ?drawTextItem@QPainter@@QAEXABVQPoint@@ABVQTextItem@@@Z @ 7550 NONAME ; void QPainter::drawTextItem(class QPoint const &, class QTextItem const &) + ?qt_metacall@QPinchGesture@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7551 NONAME ; int QPinchGesture::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setIcon@QMessageBox@@QAEXW4Icon@1@@Z @ 7552 NONAME ; void QMessageBox::setIcon(enum QMessageBox::Icon) + ?drawPath@QPaintEngine@@UAEXABVQPainterPath@@@Z @ 7553 NONAME ; void QPaintEngine::drawPath(class QPainterPath const &) + ?synthesized@QFontEngine@@UBEHXZ @ 7554 NONAME ; int QFontEngine::synthesized(void) const + ?removeAt@QGraphicsLinearLayout@@UAEXH@Z @ 7555 NONAME ; void QGraphicsLinearLayout::removeAt(int) + ?setOrientation@QSplitterHandle@@QAEXW4Orientation@Qt@@@Z @ 7556 NONAME ; void QSplitterHandle::setOrientation(enum Qt::Orientation) + ?setTabText@QTabBar@@QAEXHABVQString@@@Z @ 7557 NONAME ; void QTabBar::setTabText(int, class QString const &) + ?storageLocation@QDesktopServices@@SA?AVQString@@W4StandardLocation@1@@Z @ 7558 NONAME ; class QString QDesktopServices::storageLocation(enum QDesktopServices::StandardLocation) + ?staticMetaObject@QGraphicsGrayscaleEffect@@2UQMetaObject@@B @ 7559 NONAME ; struct QMetaObject const QGraphicsGrayscaleEffect::staticMetaObject + ?setFontWordSpacing@QTextCharFormat@@QAEXM@Z @ 7560 NONAME ; void QTextCharFormat::setFontWordSpacing(float) + ??_EQShowEvent@@UAE@I@Z @ 7561 NONAME ; QShowEvent::~QShowEvent(unsigned int) + ?tr@QFileSystemModel@@SA?AVQString@@PBD0@Z @ 7562 NONAME ; class QString QFileSystemModel::tr(char const *, char const *) + ?scrollToBottom@QAbstractItemView@@QAEXXZ @ 7563 NONAME ; void QAbstractItemView::scrollToBottom(void) + ?sizeHint@QToolButton@@UBE?AVQSize@@XZ @ 7564 NONAME ; class QSize QToolButton::sizeHint(void) const + ??0QTableWidget@@QAE@PAVQWidget@@@Z @ 7565 NONAME ; QTableWidget::QTableWidget(class QWidget *) + ?setWrapMode@QTextOption@@QAEXW4WrapMode@1@@Z @ 7566 NONAME ; void QTextOption::setWrapMode(enum QTextOption::WrapMode) + ??0QGroupBox@@QAE@ABVQString@@PAVQWidget@@@Z @ 7567 NONAME ; QGroupBox::QGroupBox(class QString const &, class QWidget *) + ?trUtf8@QStandardItemModel@@SA?AVQString@@PBD0H@Z @ 7568 NONAME ; class QString QStandardItemModel::trUtf8(char const *, char const *, int) + ?setResizeMode@QListView@@QAEXW4ResizeMode@1@@Z @ 7569 NONAME ; void QListView::setResizeMode(enum QListView::ResizeMode) + ??_EQTableWidgetItem@@UAE@I@Z @ 7570 NONAME ; QTableWidgetItem::~QTableWidgetItem(unsigned int) + ?qt_metacast@QGraphicsBloomEffect@@UAEPAXPBD@Z @ 7571 NONAME ; void * QGraphicsBloomEffect::qt_metacast(char const *) + ?mapFromParent@QGraphicsItem@@QBE?AVQPolygonF@@MMMM@Z @ 7572 NONAME ; class QPolygonF QGraphicsItem::mapFromParent(float, float, float, float) const + ?tabRect@QTabBar@@QBE?AVQRect@@H@Z @ 7573 NONAME ; class QRect QTabBar::tabRect(int) const + ?sizeHint@QAbstractSpinBox@@UBE?AVQSize@@XZ @ 7574 NONAME ; class QSize QAbstractSpinBox::sizeHint(void) const + ?setMidLineWidth@QFrame@@QAEXH@Z @ 7575 NONAME ; void QFrame::setMidLineWidth(int) + ??0QVector4D@@QAE@ABVQPointF@@@Z @ 7576 NONAME ; QVector4D::QVector4D(class QPointF const &) + ?tr@QAbstractTextDocumentLayout@@SA?AVQString@@PBD0H@Z @ 7577 NONAME ; class QString QAbstractTextDocumentLayout::tr(char const *, char const *, int) + ?tr@QPushButton@@SA?AVQString@@PBD0H@Z @ 7578 NONAME ; class QString QPushButton::tr(char const *, char const *, int) + ??0QVectorPath@@QAE@PBMHPBW4ElementType@QPainterPath@@I@Z @ 7579 NONAME ; QVectorPath::QVectorPath(float const *, int, enum QPainterPath::ElementType const *, unsigned int) + ??0QTreeWidgetItem@@QAE@PAV0@0H@Z @ 7580 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidgetItem *, class QTreeWidgetItem *, int) + ?key@QFont@@QBE?AVQString@@XZ @ 7581 NONAME ; class QString QFont::key(void) const + ?completionColumn@QCompleter@@QBEHXZ @ 7582 NONAME ; int QCompleter::completionColumn(void) const + ?options@QColorDialog@@QBE?AV?$QFlags@W4ColorDialogOption@QColorDialog@@@@XZ @ 7583 NONAME ; class QFlags QColorDialog::options(void) const + ?insertRows@QProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 7584 NONAME ; bool QProxyModel::insertRows(int, int, class QModelIndex const &) + ?m21@QTransform@@QBEMXZ @ 7585 NONAME ; float QTransform::m21(void) const + ?changeEvent@QMessageBox@@MAEXPAVQEvent@@@Z @ 7586 NONAME ; void QMessageBox::changeEvent(class QEvent *) + ??4QColormap@@QAEAAV0@ABV0@@Z @ 7587 NONAME ; class QColormap & QColormap::operator=(class QColormap const &) + ?removeSceneEventFilter@QGraphicsItem@@QAEXPAV1@@Z @ 7588 NONAME ; void QGraphicsItem::removeSceneEventFilter(class QGraphicsItem *) + ?defaultFactory@QItemEditorFactory@@SAPBV1@XZ @ 7589 NONAME ; class QItemEditorFactory const * QItemEditorFactory::defaultFactory(void) + ?length@QBezier@@QBEMM@Z @ 7590 NONAME ; float QBezier::length(float) const + ?d_func@QLineEdit@@ABEPBVQLineEditPrivate@@XZ @ 7591 NONAME ; class QLineEditPrivate const * QLineEdit::d_func(void) const + ?tr@QWidgetResizeHandler@@SA?AVQString@@PBD0@Z @ 7592 NONAME ; class QString QWidgetResizeHandler::tr(char const *, char const *) + ??0QMenuBar@@QAE@PAVQWidget@@@Z @ 7593 NONAME ; QMenuBar::QMenuBar(class QWidget *) + ?paintEvent@QAbstractSpinBox@@MAEXPAVQPaintEvent@@@Z @ 7594 NONAME ; void QAbstractSpinBox::paintEvent(class QPaintEvent *) + ?widget@QSplitter@@QBEPAVQWidget@@H@Z @ 7595 NONAME ; class QWidget * QSplitter::widget(int) const + ?addCornerAnchors@QGraphicsAnchorLayout@@QAEXPAVQGraphicsLayoutItem@@W4Corner@Qt@@01@Z @ 7596 NONAME ; void QGraphicsAnchorLayout::addCornerAnchors(class QGraphicsLayoutItem *, enum Qt::Corner, class QGraphicsLayoutItem *, enum Qt::Corner) + ??0QDataWidgetMapper@@QAE@PAVQObject@@@Z @ 7597 NONAME ; QDataWidgetMapper::QDataWidgetMapper(class QObject *) + ?setLineWidth@QTextLine@@QAEXM@Z @ 7598 NONAME ; void QTextLine::setLineWidth(float) + ??0QUndoGroup@@QAE@PAVQObject@@@Z @ 7599 NONAME ; QUndoGroup::QUndoGroup(class QObject *) + ?focusInEvent@QPlainTextEdit@@MAEXPAVQFocusEvent@@@Z @ 7600 NONAME ; void QPlainTextEdit::focusInEvent(class QFocusEvent *) + ?isNull@QVector2D@@QBE_NXZ @ 7601 NONAME ; bool QVector2D::isNull(void) const + ?show_sys@QWidgetPrivate@@QAEXXZ @ 7602 NONAME ; void QWidgetPrivate::show_sys(void) + ?setHorizontalHeaderItem@QTableWidget@@QAEXHPAVQTableWidgetItem@@@Z @ 7603 NONAME ; void QTableWidget::setHorizontalHeaderItem(int, class QTableWidgetItem *) + ?invalidateSizeCache@QWidgetItemV2@@AAEXXZ @ 7604 NONAME ; void QWidgetItemV2::invalidateSizeCache(void) + ?setKey@QShortcut@@QAEXABVQKeySequence@@@Z @ 7605 NONAME ; void QShortcut::setKey(class QKeySequence const &) + ?charFormat@QTextCursor@@QBE?AVQTextCharFormat@@XZ @ 7606 NONAME ; class QTextCharFormat QTextCursor::charFormat(void) const + ??0QSizeGrip@@QAE@PAVQWidget@@@Z @ 7607 NONAME ; QSizeGrip::QSizeGrip(class QWidget *) + ?setAutoScroll@QAbstractItemView@@QAEX_N@Z @ 7608 NONAME ; void QAbstractItemView::setAutoScroll(bool) + ??0QFontMetricsF@@QAE@ABV0@@Z @ 7609 NONAME ; QFontMetricsF::QFontMetricsF(class QFontMetricsF const &) + ?staticMetaObject@QPainter@@2UQMetaObject@@B @ 7610 NONAME ; struct QMetaObject const QPainter::staticMetaObject + ?getStaticMetaObject@QAbstractProxyModel@@SAABUQMetaObject@@XZ @ 7611 NONAME ; struct QMetaObject const & QAbstractProxyModel::getStaticMetaObject(void) + ?addAction@QMenu@@QAEPAVQAction@@ABVQString@@@Z @ 7612 NONAME ; class QAction * QMenu::addAction(class QString const &) + ?invertedControls@QAbstractSlider@@QBE_NXZ @ 7613 NONAME ; bool QAbstractSlider::invertedControls(void) const + ?qt_metacast@QPixmapBlurFilter@@UAEPAXPBD@Z @ 7614 NONAME ; void * QPixmapBlurFilter::qt_metacast(char const *) + ?cancel@QSessionManager@@QAEXXZ @ 7615 NONAME ; void QSessionManager::cancel(void) + ?dotProduct@QVector3D@@SAMABV1@0@Z @ 7616 NONAME ; float QVector3D::dotProduct(class QVector3D const &, class QVector3D const &) + ?trUtf8@QAbstractItemView@@SA?AVQString@@PBD0H@Z @ 7617 NONAME ; class QString QAbstractItemView::trUtf8(char const *, char const *, int) + ?trUtf8@QGraphicsObject@@SA?AVQString@@PBD0H@Z @ 7618 NONAME ; class QString QGraphicsObject::trUtf8(char const *, char const *, int) + ?tr@QPushButton@@SA?AVQString@@PBD0@Z @ 7619 NONAME ; class QString QPushButton::tr(char const *, char const *) + ?invalidateDepthRecursively@QGraphicsItemPrivate@@QAEXXZ @ 7620 NONAME ; void QGraphicsItemPrivate::invalidateDepthRecursively(void) + ??0QTextCursor@@QAE@XZ @ 7621 NONAME ; QTextCursor::QTextCursor(void) + ?setModifiers@QGraphicsSceneMouseEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 7622 NONAME ; void QGraphicsSceneMouseEvent::setModifiers(class QFlags) + ??0QImageTextKeyLang@@QAE@ABV0@@Z @ 7623 NONAME ; QImageTextKeyLang::QImageTextKeyLang(class QImageTextKeyLang const &) + ?currentIndex@QAbstractItemView@@QBE?AVQModelIndex@@XZ @ 7624 NONAME ; class QModelIndex QAbstractItemView::currentIndex(void) const + ?tabPosition@QTabWidget@@QBE?AW4TabPosition@1@XZ @ 7625 NONAME ; enum QTabWidget::TabPosition QTabWidget::tabPosition(void) const + ??1QGestureEvent@@UAE@XZ @ 7626 NONAME ; QGestureEvent::~QGestureEvent(void) + ?leftPadding@QTextTableCellFormat@@QBEMXZ @ 7627 NONAME ; float QTextTableCellFormat::leftPadding(void) const + ?composeMode@QLineControl@@QBE_NXZ @ 7628 NONAME ; bool QLineControl::composeMode(void) const + ?fromAxisAndAngle@QQuaternion@@SA?AV1@MMMM@Z @ 7629 NONAME ; class QQuaternion QQuaternion::fromAxisAndAngle(float, float, float, float) + ??0QCursor@@QAE@ABVQBitmap@@0HH@Z @ 7630 NONAME ; QCursor::QCursor(class QBitmap const &, class QBitmap const &, int, int) + ?acceptHoverEvents@QGraphicsItem@@QBE_NXZ @ 7631 NONAME ; bool QGraphicsItem::acceptHoverEvents(void) const + ?staticMetaObject@QSessionManager@@2UQMetaObject@@B @ 7632 NONAME ; struct QMetaObject const QSessionManager::staticMetaObject + ??0QStyleOptionQ3DockWindow@@QAE@ABV0@@Z @ 7633 NONAME ; QStyleOptionQ3DockWindow::QStyleOptionQ3DockWindow(class QStyleOptionQ3DockWindow const &) + ?acceleration@QPanGesture@@QBEMXZ @ 7634 NONAME ; float QPanGesture::acceleration(void) const + ?cellAt@QTextTable@@QBE?AVQTextTableCell@@H@Z @ 7635 NONAME ; class QTextTableCell QTextTable::cellAt(int) const + ?stretchLastSection@QHeaderView@@QBE_NXZ @ 7636 NONAME ; bool QHeaderView::stretchLastSection(void) const + ?sortRole@QSortFilterProxyModel@@QBEHXZ @ 7637 NONAME ; int QSortFilterProxyModel::sortRole(void) const + ?scrollContentsBy@QAbstractScrollArea@@MAEXHH@Z @ 7638 NONAME ; void QAbstractScrollArea::scrollContentsBy(int, int) + ?update@QAbstractItemView@@QAEXABVQModelIndex@@@Z @ 7639 NONAME ; void QAbstractItemView::update(class QModelIndex const &) + ?mouseGrabber@QWidgetPrivate@@2PAVQWidget@@A @ 7640 NONAME ; class QWidget * QWidgetPrivate::mouseGrabber + ?setColor@QImage@@QAEXHI@Z @ 7641 NONAME ; void QImage::setColor(int, unsigned int) + ?tr@QDial@@SA?AVQString@@PBD0H@Z @ 7642 NONAME ; class QString QDial::tr(char const *, char const *, int) + ??0QImage@@QAE@PBEHHW4Format@0@@Z @ 7643 NONAME ; QImage::QImage(unsigned char const *, int, int, enum QImage::Format) + ??0QPalette@@QAE@XZ @ 7644 NONAME ; QPalette::QPalette(void) + ??7QPixmap@@QBE_NXZ @ 7645 NONAME ; bool QPixmap::operator!(void) const + ?setPageBreakPolicy@QTextBlockFormat@@QAEXV?$QFlags@W4PageBreakFlag@QTextFormat@@@@@Z @ 7646 NONAME ; void QTextBlockFormat::setPageBreakPolicy(class QFlags) + ?staticMetaObject@QInputContextPlugin@@2UQMetaObject@@B @ 7647 NONAME ; struct QMetaObject const QInputContextPlugin::staticMetaObject + ?setMinimumContentsLength@QComboBox@@QAEXH@Z @ 7648 NONAME ; void QComboBox::setMinimumContentsLength(int) + ??1QPlainTextDocumentLayout@@UAE@XZ @ 7649 NONAME ; QPlainTextDocumentLayout::~QPlainTextDocumentLayout(void) + ?setParent@QWidget@@QAEXPAV1@@Z @ 7650 NONAME ; void QWidget::setParent(class QWidget *) + ?brushOrigin@QPaintEngineState@@QBE?AVQPointF@@XZ @ 7651 NONAME ; class QPointF QPaintEngineState::brushOrigin(void) const + ?orientation@QToolBar@@QBE?AW4Orientation@Qt@@XZ @ 7652 NONAME ; enum Qt::Orientation QToolBar::orientation(void) const + ?drawPolygon@QPaintEngine@@UAEXPBVQPoint@@HW4PolygonDrawMode@1@@Z @ 7653 NONAME ; void QPaintEngine::drawPolygon(class QPoint const *, int, enum QPaintEngine::PolygonDrawMode) + ?sizeHint@QPushButton@@UBE?AVQSize@@XZ @ 7654 NONAME ; class QSize QPushButton::sizeHint(void) const + ?setColorTable@QImage@@QAEXV?$QVector@I@@@Z @ 7655 NONAME ; void QImage::setColorTable(class QVector) + ??5@YAAAVQDataStream@@AAV0@AAVQPolygon@@@Z @ 7656 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPolygon &) + ?addResource@QTextDocument@@QAEXHABVQUrl@@ABVQVariant@@@Z @ 7657 NONAME ; void QTextDocument::addResource(int, class QUrl const &, class QVariant const &) + ?objectForFormat@QTextDocument@@QBEPAVQTextObject@@ABVQTextFormat@@@Z @ 7658 NONAME ; class QTextObject * QTextDocument::objectForFormat(class QTextFormat const &) const + ?pixelSize@QFont@@QBEHXZ @ 7659 NONAME ; int QFont::pixelSize(void) const + ?releaseKeyboard@QWidget@@QAEXXZ @ 7660 NONAME ; void QWidget::releaseKeyboard(void) + ?setTextElideMode@QAbstractItemView@@QAEXW4TextElideMode@Qt@@@Z @ 7661 NONAME ; void QAbstractItemView::setTextElideMode(enum Qt::TextElideMode) + ?setActiveStack@QUndoGroup@@QAEXPAVQUndoStack@@@Z @ 7662 NONAME ; void QUndoGroup::setActiveStack(class QUndoStack *) + ??1QGraphicsLayout@@UAE@XZ @ 7663 NONAME ; QGraphicsLayout::~QGraphicsLayout(void) + ??MQTreeWidgetItem@@UBE_NABV0@@Z @ 7664 NONAME ; bool QTreeWidgetItem::operator<(class QTreeWidgetItem const &) const + ??6@YAAAVQDataStream@@AAV0@ABVQPicture@@@Z @ 7665 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPicture const &) + ?intersect@QRegion@@QBE?AV1@ABV1@@Z @ 7666 NONAME ; class QRegion QRegion::intersect(class QRegion const &) const + ?setWrapping@QAbstractSpinBox@@QAEX_N@Z @ 7667 NONAME ; void QAbstractSpinBox::setWrapping(bool) + ?lastPosition@QTextFrame@@QBEHXZ @ 7668 NONAME ; int QTextFrame::lastPosition(void) const + ?metaObject@QDoubleValidator@@UBEPBUQMetaObject@@XZ @ 7669 NONAME ; struct QMetaObject const * QDoubleValidator::metaObject(void) const + ?toHsl@QColor@@QBE?AV1@XZ @ 7670 NONAME ; class QColor QColor::toHsl(void) const + ?logicalDpiY@QPaintDevice@@QBEHXZ @ 7671 NONAME ; int QPaintDevice::logicalDpiY(void) const + ??0QStyleOptionDockWidgetV2@@QAE@ABV0@@Z @ 7672 NONAME ; QStyleOptionDockWidgetV2::QStyleOptionDockWidgetV2(class QStyleOptionDockWidgetV2 const &) + ?columnCount@QMenu@@IBEHXZ @ 7673 NONAME ; int QMenu::columnCount(void) const + ?getStaticMetaObject@QProxyModel@@SAABUQMetaObject@@XZ @ 7674 NONAME ; struct QMetaObject const & QProxyModel::getStaticMetaObject(void) + ?isActive@QGraphicsScene@@QBE_NXZ @ 7675 NONAME ; bool QGraphicsScene::isActive(void) const + ?metaObject@QTreeWidget@@UBEPBUQMetaObject@@XZ @ 7676 NONAME ; struct QMetaObject const * QTreeWidget::metaObject(void) const + ??0QTessellator@@QAE@XZ @ 7677 NONAME ; QTessellator::QTessellator(void) + ?qSmartMaxSize@@YA?AVQSize@@PBVQWidgetItem@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 7678 NONAME ; class QSize qSmartMaxSize(class QWidgetItem const *, class QFlags) + ??BQSizePolicy@@QBE?AVQVariant@@XZ @ 7679 NONAME ; QSizePolicy::operator class QVariant(void) const + ?devType@QWidget@@UBEHXZ @ 7680 NONAME ; int QWidget::devType(void) const + ?translate@QMatrix4x4@@QAEAAV1@ABVQVector3D@@@Z @ 7681 NONAME ; class QMatrix4x4 & QMatrix4x4::translate(class QVector3D const &) + ?trUtf8@QFileSystemModel@@SA?AVQString@@PBD0H@Z @ 7682 NONAME ; class QString QFileSystemModel::trUtf8(char const *, char const *, int) + ?setOption@QColorDialog@@QAEXW4ColorDialogOption@1@_N@Z @ 7683 NONAME ; void QColorDialog::setOption(enum QColorDialog::ColorDialogOption, bool) + ??0QPictureIO@@QAE@XZ @ 7684 NONAME ; QPictureIO::QPictureIO(void) + ?sizeHint@QTableWidgetItem@@QBE?AVQSize@@XZ @ 7685 NONAME ; class QSize QTableWidgetItem::sizeHint(void) const + ?scaleList@QGraphicsItemAnimation@@QBE?AV?$QList@U?$QPair@MVQPointF@@@@@@XZ @ 7686 NONAME ; class QList > QGraphicsItemAnimation::scaleList(void) const + ?currentFont@QFontDialog@@QBE?AVQFont@@XZ @ 7687 NONAME ; class QFont QFontDialog::currentFont(void) const + ?trUtf8@QPictureFormatPlugin@@SA?AVQString@@PBD0@Z @ 7688 NONAME ; class QString QPictureFormatPlugin::trUtf8(char const *, char const *) + ?mapToWS@QWidgetPrivate@@QBE?AVQPoint@@ABV2@@Z @ 7689 NONAME ; class QPoint QWidgetPrivate::mapToWS(class QPoint const &) const + ?showText@QWhatsThis@@SAXABVQPoint@@ABVQString@@PAVQWidget@@@Z @ 7690 NONAME ; void QWhatsThis::showText(class QPoint const &, class QString const &, class QWidget *) + ?updateCachedClipPathFromSetPosHelper@QGraphicsItemPrivate@@QAEXABVQPointF@@@Z @ 7691 NONAME ; void QGraphicsItemPrivate::updateCachedClipPathFromSetPosHelper(class QPointF const &) + ?selectionChanged@QPlainTextEdit@@IAEXXZ @ 7692 NONAME ; void QPlainTextEdit::selectionChanged(void) + ??_EQDialog@@UAE@I@Z @ 7693 NONAME ; QDialog::~QDialog(unsigned int) + ?collapseAll@QTreeView@@QAEXXZ @ 7694 NONAME ; void QTreeView::collapseAll(void) + ?staticMetaObject@QAbstractItemDelegate@@2UQMetaObject@@B @ 7695 NONAME ; struct QMetaObject const QAbstractItemDelegate::staticMetaObject + ?d_func@QGraphicsColorizeEffect@@AAEPAVQGraphicsColorizeEffectPrivate@@XZ @ 7696 NONAME ; class QGraphicsColorizeEffectPrivate * QGraphicsColorizeEffect::d_func(void) + ?scenePos@QGraphicsSceneHelpEvent@@QBE?AVQPointF@@XZ @ 7697 NONAME ; class QPointF QGraphicsSceneHelpEvent::scenePos(void) const + ?drawChord@QPainter@@QAEXHHHHHH@Z @ 7698 NONAME ; void QPainter::drawChord(int, int, int, int, int, int) + ??0QGraphicsSceneWheelEvent@@QAE@W4Type@QEvent@@@Z @ 7699 NONAME ; QGraphicsSceneWheelEvent::QGraphicsSceneWheelEvent(enum QEvent::Type) + ?capForJoinMode@QStroker@@KA?AW4PenCapStyle@Qt@@W4LineJoinMode@1@@Z @ 7700 NONAME ; enum Qt::PenCapStyle QStroker::capForJoinMode(enum QStroker::LineJoinMode) + ?setCursorBlinkPeriod@QLineControl@@QAEXH@Z @ 7701 NONAME ; void QLineControl::setCursorBlinkPeriod(int) + ?widget@QStackedWidget@@QBEPAVQWidget@@H@Z @ 7702 NONAME ; class QWidget * QStackedWidget::widget(int) const + ?staticMetaObject@QFont@@2UQMetaObject@@B @ 7703 NONAME ; struct QMetaObject const QFont::staticMetaObject + ?isUndoAvailable@QTextDocument@@QBE_NXZ @ 7704 NONAME ; bool QTextDocument::isUndoAvailable(void) const + ?setAlignment@QLineEdit@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 7705 NONAME ; void QLineEdit::setAlignment(class QFlags) + ??1QGraphicsSceneContextMenuEvent@@UAE@XZ @ 7706 NONAME ; QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent(void) + ?hitTest@QPlainTextDocumentLayout@@UBEHABVQPointF@@W4HitTestAccuracy@Qt@@@Z @ 7707 NONAME ; int QPlainTextDocumentLayout::hitTest(class QPointF const &, enum Qt::HitTestAccuracy) const + ?load_testability@QApplicationPrivate@@2_NA @ 7708 NONAME ; bool QApplicationPrivate::load_testability + ?screenCountChanged@QDesktopWidget@@IAEXH@Z @ 7709 NONAME ; void QDesktopWidget::screenCountChanged(int) + ?cursorRect@QTextEdit@@QBE?AVQRect@@XZ @ 7710 NONAME ; class QRect QTextEdit::cursorRect(void) const + ?metaObject@QPixmapConvolutionFilter@@UBEPBUQMetaObject@@XZ @ 7711 NONAME ; struct QMetaObject const * QPixmapConvolutionFilter::metaObject(void) const + ?currentIndexChanged@QComboBox@@IAEXH@Z @ 7712 NONAME ; void QComboBox::currentIndexChanged(int) + ?isDefault@QPushButton@@QBE_NXZ @ 7713 NONAME ; bool QPushButton::isDefault(void) const + ?removeButton@QDialogButtonBox@@QAEXPAVQAbstractButton@@@Z @ 7714 NONAME ; void QDialogButtonBox::removeButton(class QAbstractButton *) + ??0QDialogButtonBox@@QAE@PAVQWidget@@@Z @ 7715 NONAME ; QDialogButtonBox::QDialogButtonBox(class QWidget *) + ??0QImage@@QAE@PAEHHHW4Format@0@@Z @ 7716 NONAME ; QImage::QImage(unsigned char *, int, int, int, enum QImage::Format) + ?systemRect@QPaintEngine@@QBE?AVQRect@@XZ @ 7717 NONAME ; class QRect QPaintEngine::systemRect(void) const + ?textIndent@QTextBlockFormat@@QBEMXZ @ 7718 NONAME ; float QTextBlockFormat::textIndent(void) const + ?trUtf8@QListView@@SA?AVQString@@PBD0@Z @ 7719 NONAME ; class QString QListView::trUtf8(char const *, char const *) + ?setTitle@QWizardPage@@QAEXABVQString@@@Z @ 7720 NONAME ; void QWizardPage::setTitle(class QString const &) + ?click@QAbstractButton@@QAEXXZ @ 7721 NONAME ; void QAbstractButton::click(void) + ?weight@QFont@@QBEHXZ @ 7722 NONAME ; int QFont::weight(void) const + ??1QGroupBox@@UAE@XZ @ 7723 NONAME ; QGroupBox::~QGroupBox(void) + ?qt_metacast@QAbstractButton@@UAEPAXPBD@Z @ 7724 NONAME ; void * QAbstractButton::qt_metacast(char const *) + ?childEvent@QToolBar@@MAEXPAVQChildEvent@@@Z @ 7725 NONAME ; void QToolBar::childEvent(class QChildEvent *) + ?position@QTextBlock@@QBEHXZ @ 7726 NONAME ; int QTextBlock::position(void) const + ?setPadding@QTextTableCellFormat@@QAEXM@Z @ 7727 NONAME ; void QTextTableCellFormat::setPadding(float) + ?itemFromIndex@QStandardItemModel@@QBEPAVQStandardItem@@ABVQModelIndex@@@Z @ 7728 NONAME ; class QStandardItem * QStandardItemModel::itemFromIndex(class QModelIndex const &) const + ?isUndoRedoEnabled@QTextDocument@@QBE_NXZ @ 7729 NONAME ; bool QTextDocument::isUndoRedoEnabled(void) const + ?paintEvent@QTabWidget@@MAEXPAVQPaintEvent@@@Z @ 7730 NONAME ; void QTabWidget::paintEvent(class QPaintEvent *) + ?dragLeaveEvent@QGraphicsView@@MAEXPAVQDragLeaveEvent@@@Z @ 7731 NONAME ; void QGraphicsView::dragLeaveEvent(class QDragLeaveEvent *) + ?length@QPainterPath@@QBEMXZ @ 7732 NONAME ; float QPainterPath::length(void) const + ?toSymbianRSgImage@QPixmap@@QBEPAVRSgImage@@XZ @ 7733 NONAME ; class RSgImage * QPixmap::toSymbianRSgImage(void) const + ?doAutoScroll@QAbstractItemView@@IAEXXZ @ 7734 NONAME ; void QAbstractItemView::doAutoScroll(void) + ?hovered@QMenuBar@@IAEXPAVQAction@@@Z @ 7735 NONAME ; void QMenuBar::hovered(class QAction *) + ?staticMetaObject@QStyle@@2UQMetaObject@@B @ 7736 NONAME ; struct QMetaObject const QStyle::staticMetaObject + ?d_func@QUndoView@@AAEPAVQUndoViewPrivate@@XZ @ 7737 NONAME ; class QUndoViewPrivate * QUndoView::d_func(void) + ?trUtf8@QMovie@@SA?AVQString@@PBD0H@Z @ 7738 NONAME ; class QString QMovie::trUtf8(char const *, char const *, int) + ?setPreferredHeight@QGraphicsLayoutItem@@QAEXM@Z @ 7739 NONAME ; void QGraphicsLayoutItem::setPreferredHeight(float) + ?setOrientation@QDataWidgetMapper@@QAEXW4Orientation@Qt@@@Z @ 7740 NONAME ; void QDataWidgetMapper::setOrientation(enum Qt::Orientation) + ?screenPos@QGraphicsSceneWheelEvent@@QBE?AVQPoint@@XZ @ 7741 NONAME ; class QPoint QGraphicsSceneWheelEvent::screenPos(void) const + ?setDocumentTitle@QTextEdit@@QAEXABVQString@@@Z @ 7742 NONAME ; void QTextEdit::setDocumentTitle(class QString const &) + ?buttons@QGraphicsSceneMouseEvent@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 7743 NONAME ; class QFlags QGraphicsSceneMouseEvent::buttons(void) const + ?setDashOffset@QDashStroker@@QAEXM@Z @ 7744 NONAME ; void QDashStroker::setDashOffset(float) + ?setPage@QWizard@@QAEXHPAVQWizardPage@@@Z @ 7745 NONAME ; void QWizard::setPage(int, class QWizardPage *) + ?count@QDockWidgetLayout@@UBEHXZ @ 7746 NONAME ; int QDockWidgetLayout::count(void) const + ??4QStyleOptionViewItemV4@@QAEAAV0@ABV0@@Z @ 7747 NONAME ; class QStyleOptionViewItemV4 & QStyleOptionViewItemV4::operator=(class QStyleOptionViewItemV4 const &) + ?scrollContentsBy@QListView@@MAEXHH@Z @ 7748 NONAME ; void QListView::scrollContentsBy(int, int) + ?frameBoundingRect@QPlainTextDocumentLayout@@UBE?AVQRectF@@PAVQTextFrame@@@Z @ 7749 NONAME ; class QRectF QPlainTextDocumentLayout::frameBoundingRect(class QTextFrame *) const + ??0QTextDocument@@QAE@PAVQObject@@@Z @ 7750 NONAME ; QTextDocument::QTextDocument(class QObject *) + ?isNull@QPixmap@@QBE_NXZ @ 7751 NONAME ; bool QPixmap::isNull(void) const + ?prefix@QSpinBox@@QBE?AVQString@@XZ @ 7752 NONAME ; class QString QSpinBox::prefix(void) const + ?setTabsClosable@QTabBar@@QAEX_N@Z @ 7753 NONAME ; void QTabBar::setTabsClosable(bool) + ??XQTransform@@QAEAAV0@M@Z @ 7754 NONAME ; class QTransform & QTransform::operator*=(float) + ?currentCharFormat@QTextEdit@@QBE?AVQTextCharFormat@@XZ @ 7755 NONAME ; class QTextCharFormat QTextEdit::currentCharFormat(void) const + ?getStaticMetaObject@QEventDispatcherS60@@SAABUQMetaObject@@XZ @ 7756 NONAME ; struct QMetaObject const & QEventDispatcherS60::getStaticMetaObject(void) + ?originChanged@QGraphicsScale@@IAEXXZ @ 7757 NONAME ; void QGraphicsScale::originChanged(void) + ?distanceToPlane@QVector3D@@QBEMABV1@0@Z @ 7758 NONAME ; float QVector3D::distanceToPlane(class QVector3D const &, class QVector3D const &) const + ?staticMetaObject@QShortcut@@2UQMetaObject@@B @ 7759 NONAME ; struct QMetaObject const QShortcut::staticMetaObject + ?enabledChanged@QGraphicsEffect@@IAEX_N@Z @ 7760 NONAME ; void QGraphicsEffect::enabledChanged(bool) + ?setDragDropMode@QAbstractItemView@@QAEXW4DragDropMode@1@@Z @ 7761 NONAME ; void QAbstractItemView::setDragDropMode(enum QAbstractItemView::DragDropMode) + ?shape@QCursor@@QBE?AW4CursorShape@Qt@@XZ @ 7762 NONAME ; enum Qt::CursorShape QCursor::shape(void) const + ?ascent@QFontMetricsF@@QBEMXZ @ 7763 NONAME ; float QFontMetricsF::ascent(void) const + ?insertRows@QStringListModel@@UAE_NHHABVQModelIndex@@@Z @ 7764 NONAME ; bool QStringListModel::insertRows(int, int, class QModelIndex const &) + ?elementCount@QVectorPath@@QBEHXZ @ 7765 NONAME ; int QVectorPath::elementCount(void) const + ??0QToolButton@@QAE@PAVQWidget@@@Z @ 7766 NONAME ; QToolButton::QToolButton(class QWidget *) + ?setCornerWidget@QAbstractScrollArea@@QAEXPAVQWidget@@@Z @ 7767 NONAME ; void QAbstractScrollArea::setCornerWidget(class QWidget *) + ??K@YA?AVQMatrix4x4@@ABV0@M@Z @ 7768 NONAME ; class QMatrix4x4 operator/(class QMatrix4x4 const &, float) + ??6@YA?AVQDebug@@V0@ABVQMatrix4x4@@@Z @ 7769 NONAME ; class QDebug operator<<(class QDebug, class QMatrix4x4 const &) + ?shadow@QPalette@@QBEABVQBrush@@XZ @ 7770 NONAME ; class QBrush const & QPalette::shadow(void) const + ??0QScrollBar@@QAE@W4Orientation@Qt@@PAVQWidget@@@Z @ 7771 NONAME ; QScrollBar::QScrollBar(enum Qt::Orientation, class QWidget *) + ?strength@QPixmapColorizeFilter@@QBEMXZ @ 7772 NONAME ; float QPixmapColorizeFilter::strength(void) const + ?defaultDepth@QPixmap@@SAHXZ @ 7773 NONAME ; int QPixmap::defaultDepth(void) + ?setParameters@QPictureIO@@QAEXPBD@Z @ 7774 NONAME ; void QPictureIO::setParameters(char const *) + ?setVerticalHeaderItem@QTableWidget@@QAEXHPAVQTableWidgetItem@@@Z @ 7775 NONAME ; void QTableWidget::setVerticalHeaderItem(int, class QTableWidgetItem *) + ?axis@QGraphicsRotation@@QBE?AVQVector3D@@XZ @ 7776 NONAME ; class QVector3D QGraphicsRotation::axis(void) const + ?iconSize@QTabWidget@@QBE?AVQSize@@XZ @ 7777 NONAME ; class QSize QTabWidget::iconSize(void) const + ??1QSyntaxHighlighter@@UAE@XZ @ 7778 NONAME ; QSyntaxHighlighter::~QSyntaxHighlighter(void) + ?intersects@QRegion@@QBE_NABV1@@Z @ 7779 NONAME ; bool QRegion::intersects(class QRegion const &) const + ?init@QPixmap@@AAEXHHW4Type@1@@Z @ 7780 NONAME ; void QPixmap::init(int, int, enum QPixmap::Type) + ?staticMetaObject@QGraphicsView@@2UQMetaObject@@B @ 7781 NONAME ; struct QMetaObject const QGraphicsView::staticMetaObject + ??0QStyleOptionSpinBox@@IAE@H@Z @ 7782 NONAME ; QStyleOptionSpinBox::QStyleOptionSpinBox(int) + ?setAlternatingRowColors@QAbstractItemView@@QAEX_N@Z @ 7783 NONAME ; void QAbstractItemView::setAlternatingRowColors(bool) + ?addPolygon@QPainterPath@@QAEXABVQPolygonF@@@Z @ 7784 NONAME ; void QPainterPath::addPolygon(class QPolygonF const &) + ?imageCount@QImageReader@@QBEHXZ @ 7785 NONAME ; int QImageReader::imageCount(void) const + ?qt_metacast@QWidgetResizeHandler@@UAEPAXPBD@Z @ 7786 NONAME ; void * QWidgetResizeHandler::qt_metacast(char const *) + ?autoRepeat@QAction@@QBE_NXZ @ 7787 NONAME ; bool QAction::autoRepeat(void) const + ?staticMetaObject@QDesktopWidget@@2UQMetaObject@@B @ 7788 NONAME ; struct QMetaObject const QDesktopWidget::staticMetaObject + ?documentMode@QMainWindow@@QBE_NXZ @ 7789 NONAME ; bool QMainWindow::documentMode(void) const + ?windowSurface@QWidget@@QBEPAVQWindowSurface@@XZ @ 7790 NONAME ; class QWindowSurface * QWidget::windowSurface(void) const + ?tr@QInputDialog@@SA?AVQString@@PBD0H@Z @ 7791 NONAME ; class QString QInputDialog::tr(char const *, char const *, int) + ?tabShape@QMdiArea@@QBE?AW4TabShape@QTabWidget@@XZ @ 7792 NONAME ; enum QTabWidget::TabShape QMdiArea::tabShape(void) const + ??1QTextListFormat@@QAE@XZ @ 7793 NONAME ; QTextListFormat::~QTextListFormat(void) + ?qt_imageForBrush@@YA?AVQImage@@H_N@Z @ 7794 NONAME ; class QImage qt_imageForBrush(int, bool) + ??_EQHBoxLayout@@UAE@I@Z @ 7795 NONAME ; QHBoxLayout::~QHBoxLayout(unsigned int) + ?setButtonDownScenePos@QGraphicsSceneMouseEvent@@QAEXW4MouseButton@Qt@@ABVQPointF@@@Z @ 7796 NONAME ; void QGraphicsSceneMouseEvent::setButtonDownScenePos(enum Qt::MouseButton, class QPointF const &) + ?addAnchor@QGraphicsAnchorLayout@@QAEPAVQGraphicsAnchor@@PAVQGraphicsLayoutItem@@W4AnchorPoint@Qt@@01@Z @ 7797 NONAME ; class QGraphicsAnchor * QGraphicsAnchorLayout::addAnchor(class QGraphicsLayoutItem *, enum Qt::AnchorPoint, class QGraphicsLayoutItem *, enum Qt::AnchorPoint) + ?d_func@QGraphicsEffect@@AAEPAVQGraphicsEffectPrivate@@XZ @ 7798 NONAME ; class QGraphicsEffectPrivate * QGraphicsEffect::d_func(void) + ?setX@QVector2D@@QAEXM@Z @ 7799 NONAME ; void QVector2D::setX(float) + ??_EQPaintBufferResource@@UAE@I@Z @ 7800 NONAME ; QPaintBufferResource::~QPaintBufferResource(unsigned int) + ?addToPolygonIterative@QBezier@@QBEXPAVQPolygonF@@@Z @ 7801 NONAME ; void QBezier::addToPolygonIterative(class QPolygonF *) const + ?updateRequest@QPlainTextEdit@@IAEXABVQRect@@H@Z @ 7802 NONAME ; void QPlainTextEdit::updateRequest(class QRect const &, int) + ?translate@QRegion@@QAEXABVQPoint@@@Z @ 7803 NONAME ; void QRegion::translate(class QPoint const &) + ?isRowSelected@QItemSelectionModel@@QBE_NHABVQModelIndex@@@Z @ 7804 NONAME ; bool QItemSelectionModel::isRowSelected(int, class QModelIndex const &) const + ?setMovingEnabled@QWidgetResizeHandler@@QAEX_N@Z @ 7805 NONAME ; void QWidgetResizeHandler::setMovingEnabled(bool) + ?gestureType@QGesture@@QBE?AW4GestureType@Qt@@XZ @ 7806 NONAME ; enum Qt::GestureType QGesture::gestureType(void) const + ?qt_defaultDpiY@@YAHXZ @ 7807 NONAME ; int qt_defaultDpiY(void) + ?savePicture@QPictureFormatPlugin@@UAE_NABVQString@@0ABVQPicture@@@Z @ 7808 NONAME ; bool QPictureFormatPlugin::savePicture(class QString const &, class QString const &, class QPicture const &) + ?event@QTextBrowser@@MAE_NPAVQEvent@@@Z @ 7809 NONAME ; bool QTextBrowser::event(class QEvent *) + ?maximumSize@QWidgetItem@@UBE?AVQSize@@XZ @ 7810 NONAME ; class QSize QWidgetItem::maximumSize(void) const + ?setLocale_helper@QWidgetPrivate@@QAEXABVQLocale@@_N@Z @ 7811 NONAME ; void QWidgetPrivate::setLocale_helper(class QLocale const &, bool) + ??_EQFontComboBox@@UAE@I@Z @ 7812 NONAME ; QFontComboBox::~QFontComboBox(unsigned int) + ?setRenderHints@QPainter@@QAEXV?$QFlags@W4RenderHint@QPainter@@@@_N@Z @ 7813 NONAME ; void QPainter::setRenderHints(class QFlags, bool) + ?trUtf8@QWorkspace@@SA?AVQString@@PBD0@Z @ 7814 NONAME ; class QString QWorkspace::trUtf8(char const *, char const *) + ??0QCalendarWidget@@QAE@PAVQWidget@@@Z @ 7815 NONAME ; QCalendarWidget::QCalendarWidget(class QWidget *) + ?setButtonText@QMessageBox@@QAEXHABVQString@@@Z @ 7816 NONAME ; void QMessageBox::setButtonText(int, class QString const &) + ?ensureSortedChildren@QGraphicsItemPrivate@@QAEXXZ @ 7817 NONAME ; void QGraphicsItemPrivate::ensureSortedChildren(void) + ?generatedIconPixmap@QProxyStyle@@UBE?AVQPixmap@@W4Mode@QIcon@@ABV2@PBVQStyleOption@@@Z @ 7818 NONAME ; class QPixmap QProxyStyle::generatedIconPixmap(enum QIcon::Mode, class QPixmap const &, class QStyleOption const *) const + ?trUtf8@QSwipeGesture@@SA?AVQString@@PBD0H@Z @ 7819 NONAME ; class QString QSwipeGesture::trUtf8(char const *, char const *, int) + ?indexAt@QColumnView@@UBE?AVQModelIndex@@ABVQPoint@@@Z @ 7820 NONAME ; class QModelIndex QColumnView::indexAt(class QPoint const &) const + ??1QRegion@@QAE@XZ @ 7821 NONAME ; QRegion::~QRegion(void) + ?event@QMdiArea@@MAE_NPAVQEvent@@@Z @ 7822 NONAME ; bool QMdiArea::event(class QEvent *) + ?setDecideFormatFromContent@QImageReader@@QAEX_N@Z @ 7823 NONAME ; void QImageReader::setDecideFormatFromContent(bool) + ?setSortIndicatorShown@QHeaderView@@QAEX_N@Z @ 7824 NONAME ; void QHeaderView::setSortIndicatorShown(bool) + ?setRootIndex@QAbstractItemView@@UAEXABVQModelIndex@@@Z @ 7825 NONAME ; void QAbstractItemView::setRootIndex(class QModelIndex const &) + ?writingSystems@QFontDatabase@@QBE?AV?$QList@W4WritingSystem@QFontDatabase@@@@XZ @ 7826 NONAME ; class QList QFontDatabase::writingSystems(void) const + ?setOpenLinks@QTextBrowser@@QAEX_N@Z @ 7827 NONAME ; void QTextBrowser::setOpenLinks(bool) + ?setHexMode@QLCDNumber@@QAEXXZ @ 7828 NONAME ; void QLCDNumber::setHexMode(void) + ?toPointF@QVector3D@@QBE?AVQPointF@@XZ @ 7829 NONAME ; class QPointF QVector3D::toPointF(void) const + ?qt_metacast@QColorDialog@@UAEPAXPBD@Z @ 7830 NONAME ; void * QColorDialog::qt_metacast(char const *) + ?trUtf8@QToolBar@@SA?AVQString@@PBD0@Z @ 7831 NONAME ; class QString QToolBar::trUtf8(char const *, char const *) + ?trUtf8@QGraphicsItemAnimation@@SA?AVQString@@PBD0@Z @ 7832 NONAME ; class QString QGraphicsItemAnimation::trUtf8(char const *, char const *) + ?addMapping@QDataWidgetMapper@@QAEXPAVQWidget@@HABVQByteArray@@@Z @ 7833 NONAME ; void QDataWidgetMapper::addMapping(class QWidget *, int, class QByteArray const &) + ?keyPressEvent@QTreeView@@MAEXPAVQKeyEvent@@@Z @ 7834 NONAME ; void QTreeView::keyPressEvent(class QKeyEvent *) + ?staticMetaObject@QKeyEventTransition@@2UQMetaObject@@B @ 7835 NONAME ; struct QMetaObject const QKeyEventTransition::staticMetaObject + ?setIconProvider@QDirModel@@QAEXPAVQFileIconProvider@@@Z @ 7836 NONAME ; void QDirModel::setIconProvider(class QFileIconProvider *) + ?setClipRect@QPainter@@QAEXHHHHW4ClipOperation@Qt@@@Z @ 7837 NONAME ; void QPainter::setClipRect(int, int, int, int, enum Qt::ClipOperation) + ??0QPaintEngineExPrivate@@QAE@XZ @ 7838 NONAME ; QPaintEngineExPrivate::QPaintEngineExPrivate(void) + ??1QPainterPath@@QAE@XZ @ 7839 NONAME ; QPainterPath::~QPainterPath(void) + ?conjugate@QQuaternion@@QBE?AV1@XZ @ 7840 NONAME ; class QQuaternion QQuaternion::conjugate(void) const + ?setOffset@QGraphicsPixmapItem@@QAEXABVQPointF@@@Z @ 7841 NONAME ; void QGraphicsPixmapItem::setOffset(class QPointF const &) + ??_EQGraphicsAnchor@@UAE@I@Z @ 7842 NONAME ; QGraphicsAnchor::~QGraphicsAnchor(unsigned int) + ?isOpaque@QBrush@@QBE_NXZ @ 7843 NONAME ; bool QBrush::isOpaque(void) const + ?reject@QDialog@@UAEXXZ @ 7844 NONAME ; void QDialog::reject(void) + ?tr@QTextEdit@@SA?AVQString@@PBD0H@Z @ 7845 NONAME ; class QString QTextEdit::tr(char const *, char const *, int) + ?iconThemeSearchPaths@QGuiPlatformPlugin@@UAE?AVQStringList@@XZ @ 7846 NONAME ; class QStringList QGuiPlatformPlugin::iconThemeSearchPaths(void) + ?setBar@QProgressDialog@@QAEXPAVQProgressBar@@@Z @ 7847 NONAME ; void QProgressDialog::setBar(class QProgressBar *) + ?split@QItemSelection@@SAXABVQItemSelectionRange@@0PAV1@@Z @ 7848 NONAME ; void QItemSelection::split(class QItemSelectionRange const &, class QItemSelectionRange const &, class QItemSelection *) + ??_EQFontEngine@@UAE@I@Z @ 7849 NONAME ; QFontEngine::~QFontEngine(unsigned int) + ?metaObject@QProgressDialog@@UBEPBUQMetaObject@@XZ @ 7850 NONAME ; struct QMetaObject const * QProgressDialog::metaObject(void) const + ?s60UpdateIsOpaque@QWidgetPrivate@@QAEXXZ @ 7851 NONAME ; void QWidgetPrivate::s60UpdateIsOpaque(void) + ?setCommitPage@QWizardPage@@QAEX_N@Z @ 7852 NONAME ; void QWizardPage::setCommitPage(bool) + ?visualRegionForSelection@QTreeView@@MBE?AVQRegion@@ABVQItemSelection@@@Z @ 7853 NONAME ; class QRegion QTreeView::visualRegionForSelection(class QItemSelection const &) const + ??8QTransform@@QBE_NABV0@@Z @ 7854 NONAME ; bool QTransform::operator==(class QTransform const &) const + ??0QCursor@@QAE@ABVQPixmap@@HH@Z @ 7855 NONAME ; QCursor::QCursor(class QPixmap const &, int, int) + ?timerEvent@QMenu@@MAEXPAVQTimerEvent@@@Z @ 7856 NONAME ; void QMenu::timerEvent(class QTimerEvent *) + ??1QGraphicsTransform@@UAE@XZ @ 7857 NONAME ; QGraphicsTransform::~QGraphicsTransform(void) + ?addMenu@QMenu@@QAEPAVQAction@@PAV1@@Z @ 7858 NONAME ; class QAction * QMenu::addMenu(class QMenu *) + ?drawText@QPainter@@QAEXABVQRectF@@ABVQString@@ABVQTextOption@@@Z @ 7859 NONAME ; void QPainter::drawText(class QRectF const &, class QString const &, class QTextOption const &) + ??_EQItemSelectionModel@@UAE@I@Z @ 7860 NONAME ; QItemSelectionModel::~QItemSelectionModel(unsigned int) + ??1QStyle@@UAE@XZ @ 7861 NONAME ; QStyle::~QStyle(void) + ?pixmap@QIcon@@QBE?AVQPixmap@@ABVQSize@@W4Mode@1@W4State@1@@Z @ 7862 NONAME ; class QPixmap QIcon::pixmap(class QSize const &, enum QIcon::Mode, enum QIcon::State) const + ??_EQIconEnginePluginV2@@UAE@I@Z @ 7863 NONAME ; QIconEnginePluginV2::~QIconEnginePluginV2(unsigned int) + ?type@QGraphicsSimpleTextItem@@UBEHXZ @ 7864 NONAME ; int QGraphicsSimpleTextItem::type(void) const + ?fromScale@QTransform@@SA?AV1@MM@Z @ 7865 NONAME ; class QTransform QTransform::fromScale(float, float) + ?setWhatsThis@QStandardItem@@QAEXABVQString@@@Z @ 7866 NONAME ; void QStandardItem::setWhatsThis(class QString const &) + ?tr@QTextList@@SA?AVQString@@PBD0@Z @ 7867 NONAME ; class QString QTextList::tr(char const *, char const *) + ?d_func@QPaintEngineEx@@AAEPAVQPaintEngineExPrivate@@XZ @ 7868 NONAME ; class QPaintEngineExPrivate * QPaintEngineEx::d_func(void) + ?getStaticMetaObject@QScrollBar@@SAABUQMetaObject@@XZ @ 7869 NONAME ; struct QMetaObject const & QScrollBar::getStaticMetaObject(void) + ?setModel@QProxyModel@@UAEXPAVQAbstractItemModel@@@Z @ 7870 NONAME ; void QProxyModel::setModel(class QAbstractItemModel *) + ?removeExtraItemCache@QGraphicsItemPrivate@@QAEXXZ @ 7871 NONAME ; void QGraphicsItemPrivate::removeExtraItemCache(void) + ?prevMaskBlank@QLineControl@@QAEHH@Z @ 7872 NONAME ; int QLineControl::prevMaskBlank(int) + ?averageCharWidth@QFontMetrics@@QBEHXZ @ 7873 NONAME ; int QFontMetrics::averageCharWidth(void) const + ??0QStyleOptionQ3ListView@@IAE@H@Z @ 7874 NONAME ; QStyleOptionQ3ListView::QStyleOptionQ3ListView(int) + ?languageChange@QWidget@@MAEXXZ @ 7875 NONAME ; void QWidget::languageChange(void) + ?setDevice@QImageIOHandler@@QAEXPAVQIODevice@@@Z @ 7876 NONAME ; void QImageIOHandler::setDevice(class QIODevice *) + ?getStaticMetaObject@QMdiSubWindow@@SAABUQMetaObject@@XZ @ 7877 NONAME ; struct QMetaObject const & QMdiSubWindow::getStaticMetaObject(void) + ?iconSizeChanged@QToolBar@@IAEXABVQSize@@@Z @ 7878 NONAME ; void QToolBar::iconSizeChanged(class QSize const &) + ??0QFileSystemModel@@IAE@AAVQFileSystemModelPrivate@@PAVQObject@@@Z @ 7879 NONAME ; QFileSystemModel::QFileSystemModel(class QFileSystemModelPrivate &, class QObject *) + ?qt_metacast@QFontDialog@@UAEPAXPBD@Z @ 7880 NONAME ; void * QFontDialog::qt_metacast(char const *) + ?rightMargin@QTextFrameFormat@@QBEMXZ @ 7881 NONAME ; float QTextFrameFormat::rightMargin(void) const + ??1QTextBlockFormat@@QAE@XZ @ 7882 NONAME ; QTextBlockFormat::~QTextBlockFormat(void) + ??1QFontDialog@@UAE@XZ @ 7883 NONAME ; QFontDialog::~QFontDialog(void) + ?trUtf8@QStringListModel@@SA?AVQString@@PBD0@Z @ 7884 NONAME ; class QString QStringListModel::trUtf8(char const *, char const *) + ??0QTextEngine@@QAE@XZ @ 7885 NONAME ; QTextEngine::QTextEngine(void) + ?tabData@QTabBar@@QBE?AVQVariant@@H@Z @ 7886 NONAME ; class QVariant QTabBar::tabData(int) const + ?addWidget@QGridLayout@@QAEXPAVQWidget@@HHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 7887 NONAME ; void QGridLayout::addWidget(class QWidget *, int, int, class QFlags) + ?previous@QTextBlock@@QBE?AV1@XZ @ 7888 NONAME ; class QTextBlock QTextBlock::previous(void) const + ?setGeometry@QGraphicsLinearLayout@@UAEXABVQRectF@@@Z @ 7889 NONAME ; void QGraphicsLinearLayout::setGeometry(class QRectF const &) + ??0QCommandLinkButton@@QAE@ABVQString@@0PAVQWidget@@@Z @ 7890 NONAME ; QCommandLinkButton::QCommandLinkButton(class QString const &, class QString const &, class QWidget *) + ?cacheEnabled@QTextLayout@@QBE_NXZ @ 7891 NONAME ; bool QTextLayout::cacheEnabled(void) const + ?resizeEvent@QWizard@@MAEXPAVQResizeEvent@@@Z @ 7892 NONAME ; void QWizard::resizeEvent(class QResizeEvent *) + ?fontUnderline@QTextCharFormat@@QBE_NXZ @ 7893 NONAME ; bool QTextCharFormat::fontUnderline(void) const + ?qt_metacast@QCalendarWidget@@UAEPAXPBD@Z @ 7894 NONAME ; void * QCalendarWidget::qt_metacast(char const *) + ?activate@QAction@@QAEXW4ActionEvent@1@@Z @ 7895 NONAME ; void QAction::activate(enum QAction::ActionEvent) + ?containsPoint@QPolygon@@QBE_NABVQPoint@@W4FillRule@Qt@@@Z @ 7896 NONAME ; bool QPolygon::containsPoint(class QPoint const &, enum Qt::FillRule) const + ?verticalSpacing@QGraphicsGridLayout@@QBEMXZ @ 7897 NONAME ; float QGraphicsGridLayout::verticalSpacing(void) const + ??0QStyleOptionViewItemV2@@QAE@XZ @ 7898 NONAME ; QStyleOptionViewItemV2::QStyleOptionViewItemV2(void) + ?viewportEvent@QTreeView@@MAE_NPAVQEvent@@@Z @ 7899 NONAME ; bool QTreeView::viewportEvent(class QEvent *) + ??0QInputEvent@@QAE@ABV0@@Z @ 7900 NONAME ; QInputEvent::QInputEvent(class QInputEvent const &) + ?dashOffset@QDashStroker@@QBEMXZ @ 7901 NONAME ; float QDashStroker::dashOffset(void) const + ??0QGraphicsGridLayout@@QAE@PAVQGraphicsLayoutItem@@@Z @ 7902 NONAME ; QGraphicsGridLayout::QGraphicsGridLayout(class QGraphicsLayoutItem *) + ??1QScrollBar@@UAE@XZ @ 7903 NONAME ; QScrollBar::~QScrollBar(void) + ?setSortingEnabled@QTableView@@QAEX_N@Z @ 7904 NONAME ; void QTableView::setSortingEnabled(bool) + ?setHorizontalHeaderFormat@QCalendarWidget@@QAEXW4HorizontalHeaderFormat@1@@Z @ 7905 NONAME ; void QCalendarWidget::setHorizontalHeaderFormat(enum QCalendarWidget::HorizontalHeaderFormat) + ?tr@QDateEdit@@SA?AVQString@@PBD0H@Z @ 7906 NONAME ; class QString QDateEdit::tr(char const *, char const *, int) + ?d_func@QApplication@@AAEPAVQApplicationPrivate@@XZ @ 7907 NONAME ; class QApplicationPrivate * QApplication::d_func(void) + ?setState@TouchPoint@QTouchEvent@@QAEXV?$QFlags@W4TouchPointState@Qt@@@@@Z @ 7908 NONAME ; void QTouchEvent::TouchPoint::setState(class QFlags) + ?setScenePos@QGraphicsSceneMouseEvent@@QAEXABVQPointF@@@Z @ 7909 NONAME ; void QGraphicsSceneMouseEvent::setScenePos(class QPointF const &) + ?setDeviceType@QTouchEvent@@QAEXW4DeviceType@1@@Z @ 7910 NONAME ; void QTouchEvent::setDeviceType(enum QTouchEvent::DeviceType) + ??0QWidgetResizeHandler@@QAE@PAVQWidget@@0@Z @ 7911 NONAME ; QWidgetResizeHandler::QWidgetResizeHandler(class QWidget *, class QWidget *) + ?clearAdditionalFormats@QTextLayout@@QAEXXZ @ 7912 NONAME ; void QTextLayout::clearAdditionalFormats(void) + ?setIconSize@QAbstractItemView@@QAEXABVQSize@@@Z @ 7913 NONAME ; void QAbstractItemView::setIconSize(class QSize const &) + ?computeBoundingRect@QPainterPath@@ABEXXZ @ 7914 NONAME ; void QPainterPath::computeBoundingRect(void) const + ?paint@QItemDelegate@@UBEXPAVQPainter@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 7915 NONAME ; void QItemDelegate::paint(class QPainter *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?setCollapsible@QSplitter@@QAEXH_N@Z @ 7916 NONAME ; void QSplitter::setCollapsible(int, bool) + ??0QGraphicsTransform@@IAE@AAVQGraphicsTransformPrivate@@PAVQObject@@@Z @ 7917 NONAME ; QGraphicsTransform::QGraphicsTransform(class QGraphicsTransformPrivate &, class QObject *) + ?labelText@QProgressDialog@@QBE?AVQString@@XZ @ 7918 NONAME ; class QString QProgressDialog::labelText(void) const + ?addChild@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 7919 NONAME ; void QGraphicsItemPrivate::addChild(class QGraphicsItem *) + ?intValueChanged@QInputDialog@@IAEXH@Z @ 7920 NONAME ; void QInputDialog::intValueChanged(int) + ?cursorPositionAt@QLineEdit@@QAEHABVQPoint@@@Z @ 7921 NONAME ; int QLineEdit::cursorPositionAt(class QPoint const &) + ?resizeContents@QListView@@IAEXHH@Z @ 7922 NONAME ; void QListView::resizeContents(int, int) + ?setStrength@QPixmapColorizeFilter@@QAEXM@Z @ 7923 NONAME ; void QPixmapColorizeFilter::setStrength(float) + ??0QStyleOptionTabV3@@QAE@XZ @ 7924 NONAME ; QStyleOptionTabV3::QStyleOptionTabV3(void) + ?updateHints@QCoeFepInputContext@@AAEX_N@Z @ 7925 NONAME ; void QCoeFepInputContext::updateHints(bool) + ?StartFepInlineEditL@QCoeFepInputContext@@UAEXABVTDesC16@@HHPBVMFormCustomDraw@@AAVMFepInlineTextFormatRetriever@@AAVMFepPointerEventHandlerDuringInlineEdit@@@Z @ 7926 NONAME ; void QCoeFepInputContext::StartFepInlineEditL(class TDesC16 const &, int, int, class MFormCustomDraw const *, class MFepInlineTextFormatRetriever &, class MFepPointerEventHandlerDuringInlineEdit &) + ?childEvent@QWorkspace@@MAEXPAVQChildEvent@@@Z @ 7927 NONAME ; void QWorkspace::childEvent(class QChildEvent *) + ?setMovable@QHeaderView@@QAEX_N@Z @ 7928 NONAME ; void QHeaderView::setMovable(bool) + ?trUtf8@QTextList@@SA?AVQString@@PBD0H@Z @ 7929 NONAME ; class QString QTextList::trUtf8(char const *, char const *, int) + ??0QLCDNumber@@QAE@IPAVQWidget@@@Z @ 7930 NONAME ; QLCDNumber::QLCDNumber(unsigned int, class QWidget *) + ?qt_metacast@QTextDocument@@UAEPAXPBD@Z @ 7931 NONAME ; void * QTextDocument::qt_metacast(char const *) + ?valueFromText@QDoubleSpinBox@@UBENABVQString@@@Z @ 7932 NONAME ; double QDoubleSpinBox::valueFromText(class QString const &) const + ?staticMetaObject@QLineEdit@@2UQMetaObject@@B @ 7933 NONAME ; struct QMetaObject const QLineEdit::staticMetaObject + ??_EQIntValidator@@UAE@I@Z @ 7934 NONAME ; QIntValidator::~QIntValidator(unsigned int) + ??4QListWidgetItem@@QAEAAV0@ABV0@@Z @ 7935 NONAME ; class QListWidgetItem & QListWidgetItem::operator=(class QListWidgetItem const &) + ??1QTextCharFormat@@QAE@XZ @ 7936 NONAME ; QTextCharFormat::~QTextCharFormat(void) + ?setGeometry@QRasterWindowSurface@@UAEXABVQRect@@@Z @ 7937 NONAME ; void QRasterWindowSurface::setGeometry(class QRect const &) + ??DQMatrix@@QBE?AV0@ABV0@@Z @ 7938 NONAME ; class QMatrix QMatrix::operator*(class QMatrix const &) const + ?lastScenePos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@XZ @ 7939 NONAME ; class QPointF QGraphicsSceneMouseEvent::lastScenePos(void) const + ?standardIconImplementation@QS60Style@@IBE?AVQIcon@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 7940 NONAME ; class QIcon QS60Style::standardIconImplementation(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ?style@QBrush@@QBE?AW4BrushStyle@Qt@@XZ @ 7941 NONAME ; enum Qt::BrushStyle QBrush::style(void) const + ?brightText@QPalette@@QBEABVQBrush@@XZ @ 7942 NONAME ; class QBrush const & QPalette::brightText(void) const + ?setMatrix@QTransform@@QAEXMMMMMMMMM@Z @ 7943 NONAME ; void QTransform::setMatrix(float, float, float, float, float, float, float, float, float) + ?trUtf8@QSizeGrip@@SA?AVQString@@PBD0@Z @ 7944 NONAME ; class QString QSizeGrip::trUtf8(char const *, char const *) + ?showEvent@QTextEdit@@MAEXPAVQShowEvent@@@Z @ 7945 NONAME ; void QTextEdit::showEvent(class QShowEvent *) + ?tr@QStyledItemDelegate@@SA?AVQString@@PBD0H@Z @ 7946 NONAME ; class QString QStyledItemDelegate::tr(char const *, char const *, int) + ?setTabTextColor@QTabBar@@QAEXHABVQColor@@@Z @ 7947 NONAME ; void QTabBar::setTabTextColor(int, class QColor const &) + ?resolve@QPalette@@QAEXI@Z @ 7948 NONAME ; void QPalette::resolve(unsigned int) + ?setTearOffEnabled@QMenu@@QAEX_N@Z @ 7949 NONAME ; void QMenu::setTearOffEnabled(bool) + ??_EQComboBox@@UAE@I@Z @ 7950 NONAME ; QComboBox::~QComboBox(unsigned int) + ?getStaticMetaObject@QAbstractTextDocumentLayout@@SAABUQMetaObject@@XZ @ 7951 NONAME ; struct QMetaObject const & QAbstractTextDocumentLayout::getStaticMetaObject(void) + ?setButtonText@QWizardPage@@QAEXW4WizardButton@QWizard@@ABVQString@@@Z @ 7952 NONAME ; void QWizardPage::setButtonText(enum QWizard::WizardButton, class QString const &) + ?updateGeometry_helper@QWidgetPrivate@@QAEX_N@Z @ 7953 NONAME ; void QWidgetPrivate::updateGeometry_helper(bool) + ?addRect@QPainterPath@@QAEXABVQRectF@@@Z @ 7954 NONAME ; void QPainterPath::addRect(class QRectF const &) + ?tr@QBoxLayout@@SA?AVQString@@PBD0@Z @ 7955 NONAME ; class QString QBoxLayout::tr(char const *, char const *) + ?parseMedium@Parser@QCss@@QAE_NPAVQStringList@@@Z @ 7956 NONAME ; bool QCss::Parser::parseMedium(class QStringList *) + ?registerTouchWindow@QWidgetPrivate@@QAEXXZ @ 7957 NONAME ; void QWidgetPrivate::registerTouchWindow(void) + ?setSortIndicator@QHeaderView@@QAEXHW4SortOrder@Qt@@@Z @ 7958 NONAME ; void QHeaderView::setSortIndicator(int, enum Qt::SortOrder) + ?setCurrentIndex@QTabBar@@QAEXH@Z @ 7959 NONAME ; void QTabBar::setCurrentIndex(int) + ?rowHeight@QTableView@@QBEHH@Z @ 7960 NONAME ; int QTableView::rowHeight(int) const + ?itemsBoundingRect@QGraphicsScene@@QBE?AVQRectF@@XZ @ 7961 NONAME ; class QRectF QGraphicsScene::itemsBoundingRect(void) const + ?collidesWithItem@QGraphicsItem@@UBE_NPBV1@W4ItemSelectionMode@Qt@@@Z @ 7962 NONAME ; bool QGraphicsItem::collidesWithItem(class QGraphicsItem const *, enum Qt::ItemSelectionMode) const + ?trUtf8@QGraphicsRotation@@SA?AVQString@@PBD0H@Z @ 7963 NONAME ; class QString QGraphicsRotation::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@QMouseEventTransition@@SAABUQMetaObject@@XZ @ 7964 NONAME ; struct QMetaObject const & QMouseEventTransition::getStaticMetaObject(void) + ?setContentsMargins@QLayout@@QAEXHHHH@Z @ 7965 NONAME ; void QLayout::setContentsMargins(int, int, int, int) + ?child@QStandardItem@@QBEPAV1@HH@Z @ 7966 NONAME ; class QStandardItem * QStandardItem::child(int, int) const + ?mimeData@QTreeWidget@@MBEPAVQMimeData@@V?$QList@PAVQTreeWidgetItem@@@@@Z @ 7967 NONAME ; class QMimeData * QTreeWidget::mimeData(class QList) const + ?setMaxVisibleItems@QCompleter@@QAEXH@Z @ 7968 NONAME ; void QCompleter::setMaxVisibleItems(int) + ??6@YAAAVQDataStream@@AAV0@ABVQKeySequence@@@Z @ 7969 NONAME ; class QDataStream & operator<<(class QDataStream &, class QKeySequence const &) + ?setSortingEnabled@QListWidget@@QAEX_N@Z @ 7970 NONAME ; void QListWidget::setSortingEnabled(bool) + ??_EQStatusBar@@UAE@I@Z @ 7971 NONAME ; QStatusBar::~QStatusBar(unsigned int) + ?trUtf8@QVBoxLayout@@SA?AVQString@@PBD0@Z @ 7972 NONAME ; class QString QVBoxLayout::trUtf8(char const *, char const *) + ?qt_metacast@QGraphicsDropShadowEffect@@UAEPAXPBD@Z @ 7973 NONAME ; void * QGraphicsDropShadowEffect::qt_metacast(char const *) + ?drawItemText@QProxyStyle@@UBEXPAVQPainter@@ABVQRect@@HABVQPalette@@_NABVQString@@W4ColorRole@4@@Z @ 7974 NONAME ; void QProxyStyle::drawItemText(class QPainter *, class QRect const &, int, class QPalette const &, bool, class QString const &, enum QPalette::ColorRole) const + ?setTop@QIntValidator@@QAEXH@Z @ 7975 NONAME ; void QIntValidator::setTop(int) + ?translate@QGraphicsItem@@QAEXMM@Z @ 7976 NONAME ; void QGraphicsItem::translate(float, float) + ?checkOverflow@QLCDNumber@@QBE_NH@Z @ 7977 NONAME ; bool QLCDNumber::checkOverflow(int) const + ?tr@QDrag@@SA?AVQString@@PBD0H@Z @ 7978 NONAME ; class QString QDrag::tr(char const *, char const *, int) + ?tr@QShortcut@@SA?AVQString@@PBD0@Z @ 7979 NONAME ; class QString QShortcut::tr(char const *, char const *) + ?setRect@QGraphicsRectItem@@QAEXMMMM@Z @ 7980 NONAME ; void QGraphicsRectItem::setRect(float, float, float, float) + ?setParent@QWidget@@QAEXPAV1@V?$QFlags@W4WindowType@Qt@@@@@Z @ 7981 NONAME ; void QWidget::setParent(class QWidget *, class QFlags) + ?findItems@QTableWidget@@QBE?AV?$QList@PAVQTableWidgetItem@@@@ABVQString@@V?$QFlags@W4MatchFlag@Qt@@@@@Z @ 7982 NONAME ; class QList QTableWidget::findItems(class QString const &, class QFlags) const + ?insertItem@QListWidget@@QAEXHPAVQListWidgetItem@@@Z @ 7983 NONAME ; void QListWidget::insertItem(int, class QListWidgetItem *) + ?redoAvailable@QTextEdit@@IAEX_N@Z @ 7984 NONAME ; void QTextEdit::redoAvailable(bool) + ?_q_clipboardChanged@QLineControl@@AAEXXZ @ 7985 NONAME ; void QLineControl::_q_clipboardChanged(void) + ?event@QFocusFrame@@MAE_NPAVQEvent@@@Z @ 7986 NONAME ; bool QFocusFrame::event(class QEvent *) + ?getStaticMetaObject@QFileSystemModel@@SAABUQMetaObject@@XZ @ 7987 NONAME ; struct QMetaObject const & QFileSystemModel::getStaticMetaObject(void) + ?metaObject@QMdiSubWindow@@UBEPBUQMetaObject@@XZ @ 7988 NONAME ; struct QMetaObject const * QMdiSubWindow::metaObject(void) const + ?height@QPaintDevice@@QBEHXZ @ 7989 NONAME ; int QPaintDevice::height(void) const + ?removeColumn@QTableWidget@@QAEXH@Z @ 7990 NONAME ; void QTableWidget::removeColumn(int) + ?addItem@QDockWidgetLayout@@UAEXPAVQLayoutItem@@@Z @ 7991 NONAME ; void QDockWidgetLayout::addItem(class QLayoutItem *) + ?initialize@QColormap@@SAXXZ @ 7992 NONAME ; void QColormap::initialize(void) + ?width@QTextInlineObject@@QBEMXZ @ 7993 NONAME ; float QTextInlineObject::width(void) const + ?setChecked@QAbstractButton@@QAEX_N@Z @ 7994 NONAME ; void QAbstractButton::setChecked(bool) + ?qt_metacall@QSplitter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 7995 NONAME ; int QSplitter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?horizontalHeaderFormat@QCalendarWidget@@QBE?AW4HorizontalHeaderFormat@1@XZ @ 7996 NONAME ; enum QCalendarWidget::HorizontalHeaderFormat QCalendarWidget::horizontalHeaderFormat(void) const + ?setSizePolicy@QGraphicsLayoutItem@@QAEXW4Policy@QSizePolicy@@0W4ControlType@3@@Z @ 7997 NONAME ; void QGraphicsLayoutItem::setSizePolicy(enum QSizePolicy::Policy, enum QSizePolicy::Policy, enum QSizePolicy::ControlType) + ?index@QSortFilterProxyModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 7998 NONAME ; class QModelIndex QSortFilterProxyModel::index(int, int, class QModelIndex const &) const + ??5@YAAAVQDataStream@@AAV0@AAVQRegion@@@Z @ 7999 NONAME ; class QDataStream & operator>>(class QDataStream &, class QRegion &) + ?mouseMoveEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 8000 NONAME ; void QGraphicsItem::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?timerEvent@QMdiSubWindow@@MAEXPAVQTimerEvent@@@Z @ 8001 NONAME ; void QMdiSubWindow::timerEvent(class QTimerEvent *) + ??0QTreeView@@QAE@PAVQWidget@@@Z @ 8002 NONAME ; QTreeView::QTreeView(class QWidget *) + ?lineCount@QTextDocument@@QBEHXZ @ 8003 NONAME ; int QTextDocument::lineCount(void) const + ?charFormatIndex@QTextBlock@@QBEHXZ @ 8004 NONAME ; int QTextBlock::charFormatIndex(void) const + ?getStaticMetaObject@QFocusFrame@@SAABUQMetaObject@@XZ @ 8005 NONAME ; struct QMetaObject const & QFocusFrame::getStaticMetaObject(void) + ?validate@QAbstractSpinBox@@UBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 8006 NONAME ; enum QValidator::State QAbstractSpinBox::validate(class QString &, int &) const + ?setMaximum@QAbstractSlider@@QAEXH@Z @ 8007 NONAME ; void QAbstractSlider::setMaximum(int) + ?isReadOnly@QFileDialog@@QBE_NXZ @ 8008 NONAME ; bool QFileDialog::isReadOnly(void) const + ?textWidth@QTextControl@@QBEMXZ @ 8009 NONAME ; float QTextControl::textWidth(void) const + ?customColor@QColorDialog@@SAIH@Z @ 8010 NONAME ; unsigned int QColorDialog::customColor(int) + ?foregroundRole@QWidget@@QBE?AW4ColorRole@QPalette@@XZ @ 8011 NONAME ; enum QPalette::ColorRole QWidget::foregroundRole(void) const + ?canPaste@QPlainTextEdit@@QBE_NXZ @ 8012 NONAME ; bool QPlainTextEdit::canPaste(void) const + ?setLineToHook@QStrokerOps@@QAEXP6AXMMPAX@Z@Z @ 8013 NONAME ; void QStrokerOps::setLineToHook(void (*)(float, float, void *)) + ??0QTextDocumentFragment@@QAE@XZ @ 8014 NONAME ; QTextDocumentFragment::QTextDocumentFragment(void) + ??1QInputContextPlugin@@UAE@XZ @ 8015 NONAME ; QInputContextPlugin::~QInputContextPlugin(void) + ?horizontalScrollbarValueChanged@QAbstractItemView@@MAEXH@Z @ 8016 NONAME ; void QAbstractItemView::horizontalScrollbarValueChanged(int) + ?updateEditorGeometry@QItemDelegate@@UBEXPAVQWidget@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 8017 NONAME ; void QItemDelegate::updateEditorGeometry(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?removeSubstitution@QFont@@SAXABVQString@@@Z @ 8018 NONAME ; void QFont::removeSubstitution(class QString const &) + ?reparentChildWidgets@QLayoutPrivate@@QAEXPAVQWidget@@@Z @ 8019 NONAME ; void QLayoutPrivate::reparentChildWidgets(class QWidget *) + ?style@QPen@@QBE?AW4PenStyle@Qt@@XZ @ 8020 NONAME ; enum Qt::PenStyle QPen::style(void) const + ?d_func@QTextDocument@@AAEPAVQTextDocumentPrivate@@XZ @ 8021 NONAME ; class QTextDocumentPrivate * QTextDocument::d_func(void) + ?clear@QGraphicsScene@@QAEXXZ @ 8022 NONAME ; void QGraphicsScene::clear(void) + ?setModifiersMask@QKeyEventTransition@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 8023 NONAME ; void QKeyEventTransition::setModifiersMask(class QFlags) + ?hideEvent@QMenu@@MAEXPAVQHideEvent@@@Z @ 8024 NONAME ; void QMenu::hideEvent(class QHideEvent *) + ?splitAtIntersections@QBezier@@QAE?AV?$QVector@V?$QList@VQBezier@@@@@@AAV1@@Z @ 8025 NONAME ; class QVector > QBezier::splitAtIntersections(class QBezier &) + ?lastCenterPoint@QPinchGesture@@QBE?AVQPointF@@XZ @ 8026 NONAME ; class QPointF QPinchGesture::lastCenterPoint(void) const + ?selectedDate@QCalendarWidget@@QBE?AVQDate@@XZ @ 8027 NONAME ; class QDate QCalendarWidget::selectedDate(void) const + ??1QPaintEngineEx@@UAE@XZ @ 8028 NONAME ; QPaintEngineEx::~QPaintEngineEx(void) + ?qt_metacall@QSplitterHandle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8029 NONAME ; int QSplitterHandle::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QPolygon@@QAE@ABV0@@Z @ 8030 NONAME ; QPolygon::QPolygon(class QPolygon const &) + ?hideEvent@QGraphicsWidget@@MAEXPAVQHideEvent@@@Z @ 8031 NONAME ; void QGraphicsWidget::hideEvent(class QHideEvent *) + ?setFrameWidth@QWidgetResizeHandler@@QAEXH@Z @ 8032 NONAME ; void QWidgetResizeHandler::setFrameWidth(int) + ?getStaticMetaObject@QStyledItemDelegate@@SAABUQMetaObject@@XZ @ 8033 NONAME ; struct QMetaObject const & QStyledItemDelegate::getStaticMetaObject(void) + ?fillRect@QPainter@@QAEXABVQRect@@W4BrushStyle@Qt@@@Z @ 8034 NONAME ; void QPainter::fillRect(class QRect const &, enum Qt::BrushStyle) + ??0QImage@@QAE@HHW4Format@0@@Z @ 8035 NONAME ; QImage::QImage(int, int, enum QImage::Format) + ?timeSpec@QDateTimeEdit@@QBE?AW4TimeSpec@Qt@@XZ @ 8036 NONAME ; enum Qt::TimeSpec QDateTimeEdit::timeSpec(void) const + ??_EQHoverEvent@@UAE@I@Z @ 8037 NONAME ; QHoverEvent::~QHoverEvent(unsigned int) + ?type@QGraphicsPixmapItem@@UBEHXZ @ 8038 NONAME ; int QGraphicsPixmapItem::type(void) const + ?setItemSelected@QTableWidget@@QAEXPBVQTableWidgetItem@@_N@Z @ 8039 NONAME ; void QTableWidget::setItemSelected(class QTableWidgetItem const *, bool) + ??0QBitmap@@QAE@ABVQPixmap@@@Z @ 8040 NONAME ; QBitmap::QBitmap(class QPixmap const &) + ?key@QShortcutEvent@@QAEABVQKeySequence@@XZ @ 8041 NONAME ; class QKeySequence const & QShortcutEvent::key(void) + ?descent@QTextLine@@QBEMXZ @ 8042 NONAME ; float QTextLine::descent(void) const + ?openPersistentEditor@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 8043 NONAME ; void QTreeWidget::openPersistentEditor(class QTreeWidgetItem *, int) + ?mapFromScene@QGraphicsView@@QBE?AVQPolygon@@ABVQPolygonF@@@Z @ 8044 NONAME ; class QPolygon QGraphicsView::mapFromScene(class QPolygonF const &) const + ?objectIndex@QTextObject@@QBEHXZ @ 8045 NONAME ; int QTextObject::objectIndex(void) const + ?pointSize@QFontInfo@@QBEHXZ @ 8046 NONAME ; int QFontInfo::pointSize(void) const + ?qt_metacast@QPushButton@@UAEPAXPBD@Z @ 8047 NONAME ; void * QPushButton::qt_metacast(char const *) + ?translated@QPolygonF@@QBE?AV1@MM@Z @ 8048 NONAME ; class QPolygonF QPolygonF::translated(float, float) const + ??1QAbstractButton@@UAE@XZ @ 8049 NONAME ; QAbstractButton::~QAbstractButton(void) + ??0QStrokerOps@@QAE@XZ @ 8050 NONAME ; QStrokerOps::QStrokerOps(void) + ?setFlat@QPushButton@@QAEX_N@Z @ 8051 NONAME ; void QPushButton::setFlat(bool) + ?columnAlignment@QGraphicsGridLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@H@Z @ 8052 NONAME ; class QFlags QGraphicsGridLayout::columnAlignment(int) const + ?d_func@QSound@@AAEPAVQSoundPrivate@@XZ @ 8053 NONAME ; class QSoundPrivate * QSound::d_func(void) + ?strengthChanged@QGraphicsBloomEffect@@IAEXM@Z @ 8054 NONAME ; void QGraphicsBloomEffect::strengthChanged(float) + ??_0QVector3D@@QAEAAV0@M@Z @ 8055 NONAME ; class QVector3D & QVector3D::operator/=(float) + ?currentFrame@iterator@QTextFrame@@QBEPAV2@XZ @ 8056 NONAME ; class QTextFrame * QTextFrame::iterator::currentFrame(void) const + ??_EQSplitterHandle@@UAE@I@Z @ 8057 NONAME ; QSplitterHandle::~QSplitterHandle(unsigned int) + ?text@QLineEdit@@QBE?AVQString@@XZ @ 8058 NONAME ; class QString QLineEdit::text(void) const + ?displayName@QDesktopServices@@SA?AVQString@@W4StandardLocation@1@@Z @ 8059 NONAME ; class QString QDesktopServices::displayName(enum QDesktopServices::StandardLocation) + ?errorString@QImageWriter@@QBE?AVQString@@XZ @ 8060 NONAME ; class QString QImageWriter::errorString(void) const + ?qt_metacast@QTableView@@UAEPAXPBD@Z @ 8061 NONAME ; void * QTableView::qt_metacast(char const *) + ?columnWidth@QTreeView@@QBEHH@Z @ 8062 NONAME ; int QTreeView::columnWidth(int) const + ?resizeEvent@QMdiSubWindow@@MAEXPAVQResizeEvent@@@Z @ 8063 NONAME ; void QMdiSubWindow::resizeEvent(class QResizeEvent *) + ??0QTextFragment@@QAE@XZ @ 8064 NONAME ; QTextFragment::QTextFragment(void) + ?currentFontChanged@QFontDialog@@IAEXABVQFont@@@Z @ 8065 NONAME ; void QFontDialog::currentFontChanged(class QFont const &) + ?metaObject@QPaintBufferResource@@UBEPBUQMetaObject@@XZ @ 8066 NONAME ; struct QMetaObject const * QPaintBufferResource::metaObject(void) const + ?qt_metacast@QHeaderView@@UAEPAXPBD@Z @ 8067 NONAME ; void * QHeaderView::qt_metacast(char const *) + ?getStaticMetaObject@QAbstractScrollArea@@SAABUQMetaObject@@XZ @ 8068 NONAME ; struct QMetaObject const & QAbstractScrollArea::getStaticMetaObject(void) + ?isSelected@QListWidgetItem@@QBE_NXZ @ 8069 NONAME ; bool QListWidgetItem::isSelected(void) const + ?tr@QValidator@@SA?AVQString@@PBD0@Z @ 8070 NONAME ; class QString QValidator::tr(char const *, char const *) + ?event@QWidget@@MAE_NPAVQEvent@@@Z @ 8071 NONAME ; bool QWidget::event(class QEvent *) + ?setCenter@QRadialGradient@@QAEXMM@Z @ 8072 NONAME ; void QRadialGradient::setCenter(float, float) + ?setAutoExclusive@QAbstractButton@@QAEX_N@Z @ 8073 NONAME ; void QAbstractButton::setAutoExclusive(bool) + ?d_func@QFormLayout@@AAEPAVQFormLayoutPrivate@@XZ @ 8074 NONAME ; class QFormLayoutPrivate * QFormLayout::d_func(void) + ?setBrush@QPainter@@QAEXW4BrushStyle@Qt@@@Z @ 8075 NONAME ; void QPainter::setBrush(enum Qt::BrushStyle) + ??0QDockWidget@@QAE@ABVQString@@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 8076 NONAME ; QDockWidget::QDockWidget(class QString const &, class QWidget *, class QFlags) + ??0QProxyStyle@@QAE@PAVQStyle@@@Z @ 8077 NONAME ; QProxyStyle::QProxyStyle(class QStyle *) + ??0QTextControl@@QAE@PAVQTextDocument@@PAVQObject@@@Z @ 8078 NONAME ; QTextControl::QTextControl(class QTextDocument *, class QObject *) + ??0QInputMethodEvent@@QAE@XZ @ 8079 NONAME ; QInputMethodEvent::QInputMethodEvent(void) + ?possibleActions@QDropEvent@@QBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 8080 NONAME ; class QFlags QDropEvent::possibleActions(void) const + ?qt_metacall@QDesktopWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8081 NONAME ; int QDesktopWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?itemSelectionChanged@QTreeWidget@@IAEXXZ @ 8082 NONAME ; void QTreeWidget::itemSelectionChanged(void) + ?event@QRadioButton@@MAE_NPAVQEvent@@@Z @ 8083 NONAME ; bool QRadioButton::event(class QEvent *) + ?cellAt@QTextTable@@QBE?AVQTextTableCell@@HH@Z @ 8084 NONAME ; class QTextTableCell QTextTable::cellAt(int, int) const + ??0TouchPoint@QTouchEvent@@QAE@H@Z @ 8085 NONAME ; QTouchEvent::TouchPoint::TouchPoint(int) + ?contains@QItemSelectionRange@@QBE_NABVQModelIndex@@@Z @ 8086 NONAME ; bool QItemSelectionRange::contains(class QModelIndex const &) const + ?staticMetaObject@QGraphicsScene@@2UQMetaObject@@B @ 8087 NONAME ; struct QMetaObject const QGraphicsScene::staticMetaObject + ?setCenter@QRadialGradient@@QAEXABVQPointF@@@Z @ 8088 NONAME ; void QRadialGradient::setCenter(class QPointF const &) + ?setZ@QQuaternion@@QAEXM@Z @ 8089 NONAME ; void QQuaternion::setZ(float) + ?setStatusBar@QMainWindow@@QAEXPAVQStatusBar@@@Z @ 8090 NONAME ; void QMainWindow::setStatusBar(class QStatusBar *) + ?setMinimumDate@QDateTimeEdit@@QAEXABVQDate@@@Z @ 8091 NONAME ; void QDateTimeEdit::setMinimumDate(class QDate const &) + ?setIndexWidget@QAbstractItemView@@QAEXABVQModelIndex@@PAVQWidget@@@Z @ 8092 NONAME ; void QAbstractItemView::setIndexWidget(class QModelIndex const &, class QWidget *) + ?scrollTo@QHeaderView@@MAEXABVQModelIndex@@W4ScrollHint@QAbstractItemView@@@Z @ 8093 NONAME ; void QHeaderView::scrollTo(class QModelIndex const &, enum QAbstractItemView::ScrollHint) + ?sizeIncrement@QWidget@@QBE?AVQSize@@XZ @ 8094 NONAME ; class QSize QWidget::sizeIncrement(void) const + ?boundingRectFor@QGraphicsEffect@@UBE?AVQRectF@@ABV2@@Z @ 8095 NONAME ; class QRectF QGraphicsEffect::boundingRectFor(class QRectF const &) const + ??4QTransform@@QAEAAV0@ABV0@@Z @ 8096 NONAME ; class QTransform & QTransform::operator=(class QTransform const &) + ?dragEnterEvent@QPlainTextEdit@@MAEXPAVQDragEnterEvent@@@Z @ 8097 NONAME ; void QPlainTextEdit::dragEnterEvent(class QDragEnterEvent *) + ??1QWidgetItemV2@@UAE@XZ @ 8098 NONAME ; QWidgetItemV2::~QWidgetItemV2(void) + ?centerPoint@QPinchGesture@@QBE?AVQPointF@@XZ @ 8099 NONAME ; class QPointF QPinchGesture::centerPoint(void) const + ?setMaximumWidth@QWidget@@QAEXH@Z @ 8100 NONAME ; void QWidget::setMaximumWidth(int) + ?trigger@QAction@@QAEXXZ @ 8101 NONAME ; void QAction::trigger(void) + ?sourceChanged@QGraphicsEffect@@MAEXV?$QFlags@W4ChangeFlag@QGraphicsEffect@@@@@Z @ 8102 NONAME ; void QGraphicsEffect::sourceChanged(class QFlags) + ?drawPixmap@QPainter@@QAEXHHABVQPixmap@@HHHH@Z @ 8103 NONAME ; void QPainter::drawPixmap(int, int, class QPixmap const &, int, int, int, int) + ?toolTipBase@QPalette@@QBEABVQBrush@@XZ @ 8104 NONAME ; class QBrush const & QPalette::toolTipBase(void) const + ?fileInfo@QDirModel@@QBE?AVQFileInfo@@ABVQModelIndex@@@Z @ 8105 NONAME ; class QFileInfo QDirModel::fileInfo(class QModelIndex const &) const + ?blurHintChanged@QGraphicsBloomEffect@@IAEXW4RenderHint@Qt@@@Z @ 8106 NONAME ; void QGraphicsBloomEffect::blurHintChanged(enum Qt::RenderHint) + ?putPoints@QPolygon@@QAEXHHABV1@H@Z @ 8107 NONAME ; void QPolygon::putPoints(int, int, class QPolygon const &, int) + ??1QDragMoveEvent@@UAE@XZ @ 8108 NONAME ; QDragMoveEvent::~QDragMoveEvent(void) + ?intProperty@QTextFormat@@QBEHH@Z @ 8109 NONAME ; int QTextFormat::intProperty(int) const + ?isObscuredBy@QGraphicsPixmapItem@@UBE_NPBVQGraphicsItem@@@Z @ 8110 NONAME ; bool QGraphicsPixmapItem::isObscuredBy(class QGraphicsItem const *) const + ?parent@QDirModel@@UBE?AVQModelIndex@@ABV2@@Z @ 8111 NONAME ; class QModelIndex QDirModel::parent(class QModelIndex const &) const + ?tr@QInputContextPlugin@@SA?AVQString@@PBD0@Z @ 8112 NONAME ; class QString QInputContextPlugin::tr(char const *, char const *) + ?takeAt@QFormLayout@@UAEPAVQLayoutItem@@H@Z @ 8113 NONAME ; class QLayoutItem * QFormLayout::takeAt(int) + ?border@QTextFrameFormat@@QBEMXZ @ 8114 NONAME ; float QTextFrameFormat::border(void) const + ?splitter@QSplitterHandle@@QBEPAVQSplitter@@XZ @ 8115 NONAME ; class QSplitter * QSplitterHandle::splitter(void) const + ?setId@QButtonGroup@@QAEXPAVQAbstractButton@@H@Z @ 8116 NONAME ; void QButtonGroup::setId(class QAbstractButton *, int) + ??0QStyleOptionDockWidgetV2@@QAE@ABVQStyleOptionDockWidget@@@Z @ 8117 NONAME ; QStyleOptionDockWidgetV2::QStyleOptionDockWidgetV2(class QStyleOptionDockWidget const &) + ?getStaticMetaObject@QScrollArea@@SAABUQMetaObject@@XZ @ 8118 NONAME ; struct QMetaObject const & QScrollArea::getStaticMetaObject(void) + ??0QWidgetItem@@QAE@PAVQWidget@@@Z @ 8119 NONAME ; QWidgetItem::QWidgetItem(class QWidget *) + ?canUndo@QUndoStack@@QBE_NXZ @ 8120 NONAME ; bool QUndoStack::canUndo(void) const + ?setIconSize@QTabBar@@QAEXABVQSize@@@Z @ 8121 NONAME ; void QTabBar::setIconSize(class QSize const &) + ?focusNextPrevChild@QGraphicsScene@@IAE_N_N@Z @ 8122 NONAME ; bool QGraphicsScene::focusNextPrevChild(bool) + ?horizontalPolicy@QSizePolicy@@QBE?AW4Policy@1@XZ @ 8123 NONAME ; enum QSizePolicy::Policy QSizePolicy::horizontalPolicy(void) const + ?isNull@QQuaternion@@QBE_NXZ @ 8124 NONAME ; bool QQuaternion::isNull(void) const + ?trUtf8@QGraphicsEffect@@SA?AVQString@@PBD0@Z @ 8125 NONAME ; class QString QGraphicsEffect::trUtf8(char const *, char const *) + ?trUtf8@QGroupBox@@SA?AVQString@@PBD0@Z @ 8126 NONAME ; class QString QGroupBox::trUtf8(char const *, char const *) + ?testImport@Parser@QCss@@QAE_NXZ @ 8127 NONAME ; bool QCss::Parser::testImport(void) + ?find@QPixmapCache@@SA_NABVQString@@PAVQPixmap@@@Z @ 8128 NONAME ; bool QPixmapCache::find(class QString const &, class QPixmap *) + ??9QFontMetrics@@QBE_NABV0@@Z @ 8129 NONAME ; bool QFontMetrics::operator!=(class QFontMetrics const &) const + ?setExtraSelections@QTextControl@@QAEXABV?$QList@UExtraSelection@QTextEdit@@@@@Z @ 8130 NONAME ; void QTextControl::setExtraSelections(class QList const &) + ??1QMdiArea@@UAE@XZ @ 8131 NONAME ; QMdiArea::~QMdiArea(void) + ??0QGraphicsTextItem@@QAE@ABVQString@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 8132 NONAME ; QGraphicsTextItem::QGraphicsTextItem(class QString const &, class QGraphicsItem *, class QGraphicsScene *) + ??_EQGraphicsSimpleTextItem@@UAE@I@Z @ 8133 NONAME ; QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem(unsigned int) + ?yTranslationAt@QGraphicsItemAnimation@@QBEMM@Z @ 8134 NONAME ; float QGraphicsItemAnimation::yTranslationAt(float) const + ?points@QVectorPath@@QBEPBMXZ @ 8135 NONAME ; float const * QVectorPath::points(void) const + ?trUtf8@QGraphicsTextItem@@SA?AVQString@@PBD0@Z @ 8136 NONAME ; class QString QGraphicsTextItem::trUtf8(char const *, char const *) + ??0QStyleOptionProgressBar@@IAE@H@Z @ 8137 NONAME ; QStyleOptionProgressBar::QStyleOptionProgressBar(int) + ?addItem@QGraphicsScene@@QAEXPAVQGraphicsItem@@@Z @ 8138 NONAME ; void QGraphicsScene::addItem(class QGraphicsItem *) + ?sizeHint@QCheckBox@@UBE?AVQSize@@XZ @ 8139 NONAME ; class QSize QCheckBox::sizeHint(void) const + ?initStyleOption@QDockWidget@@IBEXPAVQStyleOptionDockWidget@@@Z @ 8140 NONAME ; void QDockWidget::initStyleOption(class QStyleOptionDockWidget *) const + ??D@YA?AVQPolygonF@@ABV0@ABVQTransform@@@Z @ 8141 NONAME ; class QPolygonF operator*(class QPolygonF const &, class QTransform const &) + ?margin@QLayout@@QBEHXZ @ 8142 NONAME ; int QLayout::margin(void) const + ?setCenterOnScroll@QPlainTextEdit@@QAEX_N@Z @ 8143 NONAME ; void QPlainTextEdit::setCenterOnScroll(bool) + ??_EQGuiPlatformPluginInterface@@UAE@I@Z @ 8144 NONAME ; QGuiPlatformPluginInterface::~QGuiPlatformPluginInterface(unsigned int) + ?addChildren@QTreeWidgetItem@@QAEXABV?$QList@PAVQTreeWidgetItem@@@@@Z @ 8145 NONAME ; void QTreeWidgetItem::addChildren(class QList const &) + ??0QAbstractTextDocumentLayout@@QAE@PAVQTextDocument@@@Z @ 8146 NONAME ; QAbstractTextDocumentLayout::QAbstractTextDocumentLayout(class QTextDocument *) + ?pixmapFilter@QPaintEngineEx@@UAEPAVQPixmapFilter@@HPBV2@@Z @ 8147 NONAME ; class QPixmapFilter * QPaintEngineEx::pixmapFilter(int, class QPixmapFilter const *) + ?d_func@QGraphicsPathItem@@ABEPBVQGraphicsPathItemPrivate@@XZ @ 8148 NONAME ; class QGraphicsPathItemPrivate const * QGraphicsPathItem::d_func(void) const + ?y@QQuaternion@@QBEMXZ @ 8149 NONAME ; float QQuaternion::y(void) const + ?setTabs@QTextOption@@QAEXV?$QList@UTab@QTextOption@@@@@Z @ 8150 NONAME ; void QTextOption::setTabs(class QList) + ??0QShortcut@@QAE@PAVQWidget@@@Z @ 8151 NONAME ; QShortcut::QShortcut(class QWidget *) + ?mimeData@QDirModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 8152 NONAME ; class QMimeData * QDirModel::mimeData(class QList const &) const + ??MQTextBlock@@QBE_NABV0@@Z @ 8153 NONAME ; bool QTextBlock::operator<(class QTextBlock const &) const + ?setFormAlignment@QFormLayout@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 8154 NONAME ; void QFormLayout::setFormAlignment(class QFlags) + ?data@QAbstractProxyModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 8155 NONAME ; class QVariant QAbstractProxyModel::data(class QModelIndex const &, int) const + ?document@QTextObject@@QBEPAVQTextDocument@@XZ @ 8156 NONAME ; class QTextDocument * QTextObject::document(void) const + ?ensureSequentialSiblingIndex@QGraphicsItemPrivate@@QAEXXZ @ 8157 NONAME ; void QGraphicsItemPrivate::ensureSequentialSiblingIndex(void) + ?isDetached@QIcon@@QBE_NXZ @ 8158 NONAME ; bool QIcon::isDetached(void) const + ?hideEvent@QGraphicsProxyWidget@@MAEXPAVQHideEvent@@@Z @ 8159 NONAME ; void QGraphicsProxyWidget::hideEvent(class QHideEvent *) + ?setLastOffset@QPanGesture@@QAEXABVQPointF@@@Z @ 8160 NONAME ; void QPanGesture::setLastOffset(class QPointF const &) + ??0QSortFilterProxyModel@@QAE@PAVQObject@@@Z @ 8161 NONAME ; QSortFilterProxyModel::QSortFilterProxyModel(class QObject *) + ?indentation@QTreeView@@QBEHXZ @ 8162 NONAME ; int QTreeView::indentation(void) const + ?d_func@QDialog@@ABEPBVQDialogPrivate@@XZ @ 8163 NONAME ; class QDialogPrivate const * QDialog::d_func(void) const + ?setRowHidden@QTreeView@@QAEXHABVQModelIndex@@_N@Z @ 8164 NONAME ; void QTreeView::setRowHidden(int, class QModelIndex const &, bool) + ?document@QAbstractTextDocumentLayout@@QBEPAVQTextDocument@@XZ @ 8165 NONAME ; class QTextDocument * QAbstractTextDocumentLayout::document(void) const + ?setSelectionModel@QTableView@@UAEXPAVQItemSelectionModel@@@Z @ 8166 NONAME ; void QTableView::setSelectionModel(class QItemSelectionModel *) + ?visualItemRect@QTableWidget@@QBE?AVQRect@@PBVQTableWidgetItem@@@Z @ 8167 NONAME ; class QRect QTableWidget::visualItemRect(class QTableWidgetItem const *) const + ??0QAbstractTextDocumentLayout@@IAE@AAVQAbstractTextDocumentLayoutPrivate@@PAVQTextDocument@@@Z @ 8168 NONAME ; QAbstractTextDocumentLayout::QAbstractTextDocumentLayout(class QAbstractTextDocumentLayoutPrivate &, class QTextDocument *) + ?tr@QRadioButton@@SA?AVQString@@PBD0H@Z @ 8169 NONAME ; class QString QRadioButton::tr(char const *, char const *, int) + ?setVisible@QTextBlock@@QAEX_N@Z @ 8170 NONAME ; void QTextBlock::setVisible(bool) + ??_EQPanGesture@@UAE@I@Z @ 8171 NONAME ; QPanGesture::~QPanGesture(unsigned int) + ?line@QGraphicsLineItem@@QBE?AVQLineF@@XZ @ 8172 NONAME ; class QLineF QGraphicsLineItem::line(void) const + ?trUtf8@QDial@@SA?AVQString@@PBD0@Z @ 8173 NONAME ; class QString QDial::trUtf8(char const *, char const *) + ?trUtf8@QTextBlockGroup@@SA?AVQString@@PBD0@Z @ 8174 NONAME ; class QString QTextBlockGroup::trUtf8(char const *, char const *) + ?isRowHidden@QTableView@@QBE_NH@Z @ 8175 NONAME ; bool QTableView::isRowHidden(int) const + ?insertStretch@QBoxLayout@@QAEXHH@Z @ 8176 NONAME ; void QBoxLayout::insertStretch(int, int) + ?tr@QTextBrowser@@SA?AVQString@@PBD0@Z @ 8177 NONAME ; class QString QTextBrowser::tr(char const *, char const *) + ??_EQPixmapBlurFilter@@UAE@I@Z @ 8178 NONAME ; QPixmapBlurFilter::~QPixmapBlurFilter(unsigned int) + ?qt_metacall@QStylePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8179 NONAME ; int QStylePlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?titleBarWidget@QDockWidget@@QBEPAVQWidget@@XZ @ 8180 NONAME ; class QWidget * QDockWidget::titleBarWidget(void) const + ?fileName@QDirModel@@QBE?AVQString@@ABVQModelIndex@@@Z @ 8181 NONAME ; class QString QDirModel::fileName(class QModelIndex const &) const + ?simplified@QPainterPath@@QBE?AV1@XZ @ 8182 NONAME ; class QPainterPath QPainterPath::simplified(void) const + ?focusNextPrevChild@QMenu@@MAE_N_N@Z @ 8183 NONAME ; bool QMenu::focusNextPrevChild(bool) + ?insertHtml@QTextControl@@QAEXABVQString@@@Z @ 8184 NONAME ; void QTextControl::insertHtml(class QString const &) + ?paintEngine@QRasterPixmapData@@UBEPAVQPaintEngine@@XZ @ 8185 NONAME ; class QPaintEngine * QRasterPixmapData::paintEngine(void) const + ?parseNextExpr@Parser@QCss@@QAE_NPAV?$QVector@UValue@QCss@@@@@Z @ 8186 NONAME ; bool QCss::Parser::parseNextExpr(class QVector *) + ??0QMouseEventTransition@@QAE@PAVQObject@@W4Type@QEvent@@W4MouseButton@Qt@@PAVQState@@@Z @ 8187 NONAME ; QMouseEventTransition::QMouseEventTransition(class QObject *, enum QEvent::Type, enum Qt::MouseButton, class QState *) + ?verticalSpacing@QGraphicsAnchorLayout@@QBEMXZ @ 8188 NONAME ; float QGraphicsAnchorLayout::verticalSpacing(void) const + ?staticMetaObject@QClipboard@@2UQMetaObject@@B @ 8189 NONAME ; struct QMetaObject const QClipboard::staticMetaObject + ?trUtf8@QTextObject@@SA?AVQString@@PBD0H@Z @ 8190 NONAME ; class QString QTextObject::trUtf8(char const *, char const *, int) + ?setCurrentItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 8191 NONAME ; void QTreeWidget::setCurrentItem(class QTreeWidgetItem *, int) + ?convertFromPlainText@Qt@@YA?AVQString@@ABV2@W4WhiteSpaceMode@1@@Z @ 8192 NONAME ; class QString Qt::convertFromPlainText(class QString const &, enum Qt::WhiteSpaceMode) + ?d_func@QTextList@@AAEPAVQTextListPrivate@@XZ @ 8193 NONAME ; class QTextListPrivate * QTextList::d_func(void) + ?setFilter@QFileDialog@@QAEXV?$QFlags@W4Filter@QDir@@@@@Z @ 8194 NONAME ; void QFileDialog::setFilter(class QFlags) + ?paintEvent@QTreeView@@MAEXPAVQPaintEvent@@@Z @ 8195 NONAME ; void QTreeView::paintEvent(class QPaintEvent *) + ??_EQActionGroup@@UAE@I@Z @ 8196 NONAME ; QActionGroup::~QActionGroup(unsigned int) + ?length@QHeaderView@@QBEHXZ @ 8197 NONAME ; int QHeaderView::length(void) const + ?matrix@QGraphicsView@@QBE?AVQMatrix@@XZ @ 8198 NONAME ; class QMatrix QGraphicsView::matrix(void) const + ?getPointInOutline@QFontEngine@@UAE?AW4HB_Error@@IHIPAH0PAI@Z @ 8199 NONAME ; enum HB_Error QFontEngine::getPointInOutline(unsigned int, int, unsigned int, int *, int *, unsigned int *) + ?subControlRect@QProxyStyle@@UBE?AVQRect@@W4ComplexControl@QStyle@@PBVQStyleOptionComplex@@W4SubControl@4@PBVQWidget@@@Z @ 8200 NONAME ; class QRect QProxyStyle::subControlRect(enum QStyle::ComplexControl, class QStyleOptionComplex const *, enum QStyle::SubControl, class QWidget const *) const + ?parseNextDeclaration@Parser@QCss@@QAE_NPAUDeclaration@2@@Z @ 8201 NONAME ; bool QCss::Parser::parseNextDeclaration(struct QCss::Declaration *) + ?qt_metacast@QClipboard@@UAEPAXPBD@Z @ 8202 NONAME ; void * QClipboard::qt_metacast(char const *) + ?resolve@QFont@@QAEXI@Z @ 8203 NONAME ; void QFont::resolve(unsigned int) + ?d_func@QWidget@@ABEPBVQWidgetPrivate@@XZ @ 8204 NONAME ; class QWidgetPrivate const * QWidget::d_func(void) const + ?tessellateRect@QTessellator@@QAEXABVQPointF@@0M@Z @ 8205 NONAME ; void QTessellator::tessellateRect(class QPointF const &, class QPointF const &, float) + ??_EQCheckBox@@UAE@I@Z @ 8206 NONAME ; QCheckBox::~QCheckBox(unsigned int) + ??0QStyleOptionViewItemV2@@QAE@ABVQStyleOptionViewItem@@@Z @ 8207 NONAME ; QStyleOptionViewItemV2::QStyleOptionViewItemV2(class QStyleOptionViewItem const &) + ?dragLeaveEvent@QListView@@MAEXPAVQDragLeaveEvent@@@Z @ 8208 NONAME ; void QListView::dragLeaveEvent(class QDragLeaveEvent *) + ?mousePressEvent@QToolButton@@MAEXPAVQMouseEvent@@@Z @ 8209 NONAME ; void QToolButton::mousePressEvent(class QMouseEvent *) + ??DQTransform@@QBE?AV0@ABV0@@Z @ 8210 NONAME ; class QTransform QTransform::operator*(class QTransform const &) const + ?getStaticMetaObject@QGraphicsColorizeEffect@@SAABUQMetaObject@@XZ @ 8211 NONAME ; struct QMetaObject const & QGraphicsColorizeEffect::getStaticMetaObject(void) + ?qt_metacast@QMainWindow@@UAEPAXPBD@Z @ 8212 NONAME ; void * QMainWindow::qt_metacast(char const *) + ?wheelEvent@QWidget@@MAEXPAVQWheelEvent@@@Z @ 8213 NONAME ; void QWidget::wheelEvent(class QWheelEvent *) + ?trUtf8@QLineEdit@@SA?AVQString@@PBD0H@Z @ 8214 NONAME ; class QString QLineEdit::trUtf8(char const *, char const *, int) + ??1QWidgetItem@@UAE@XZ @ 8215 NONAME ; QWidgetItem::~QWidgetItem(void) + ?tr@QGraphicsAnchor@@SA?AVQString@@PBD0H@Z @ 8216 NONAME ; class QString QGraphicsAnchor::tr(char const *, char const *, int) + ?isRightToLeft@QWidget@@QBE_NXZ @ 8217 NONAME ; bool QWidget::isRightToLeft(void) const + ?updateNeeded@QLineControl@@IAEXABVQRect@@@Z @ 8218 NONAME ; void QLineControl::updateNeeded(class QRect const &) + ?trUtf8@QSplitter@@SA?AVQString@@PBD0H@Z @ 8219 NONAME ; class QString QSplitter::trUtf8(char const *, char const *, int) + ?mouseHandler@QCoeFepInputContext@@UAEXHPAVQMouseEvent@@@Z @ 8220 NONAME ; void QCoeFepInputContext::mouseHandler(int, class QMouseEvent *) + ??0QGraphicsPathItem@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 8221 NONAME ; QGraphicsPathItem::QGraphicsPathItem(class QGraphicsItem *, class QGraphicsScene *) + ?d_func@QAbstractSpinBox@@AAEPAVQAbstractSpinBoxPrivate@@XZ @ 8222 NONAME ; class QAbstractSpinBoxPrivate * QAbstractSpinBox::d_func(void) + ??6@YA?AVQDebug@@V0@PAVQGraphicsObject@@@Z @ 8223 NONAME ; class QDebug operator<<(class QDebug, class QGraphicsObject *) + ?grayPalette@QFontEngine@@KAABV?$QVector@I@@XZ @ 8224 NONAME ; class QVector const & QFontEngine::grayPalette(void) + ?internalDeselect@QLineControl@@AAEXXZ @ 8225 NONAME ; void QLineControl::internalDeselect(void) + ?type@QListWidgetItem@@QBEHXZ @ 8226 NONAME ; int QListWidgetItem::type(void) const + ?tr@QDirModel@@SA?AVQString@@PBD0H@Z @ 8227 NONAME ; class QString QDirModel::tr(char const *, char const *, int) + ?setReadOnly@QPlainTextEdit@@QAEX_N@Z @ 8228 NONAME ; void QPlainTextEdit::setReadOnly(bool) + ?united@QRegion@@QBE?AV1@ABVQRect@@@Z @ 8229 NONAME ; class QRegion QRegion::united(class QRect const &) const + ?activeStackChanged@QUndoGroup@@IAEXPAVQUndoStack@@@Z @ 8230 NONAME ; void QUndoGroup::activeStackChanged(class QUndoStack *) + ?tr@QScrollArea@@SA?AVQString@@PBD0H@Z @ 8231 NONAME ; class QString QScrollArea::tr(char const *, char const *, int) + ?drawPoints@QPaintEngineEx@@UAEXPBVQPointF@@H@Z @ 8232 NONAME ; void QPaintEngineEx::drawPoints(class QPointF const *, int) + ?metaObject@QPixmapColorizeFilter@@UBEPBUQMetaObject@@XZ @ 8233 NONAME ; struct QMetaObject const * QPixmapColorizeFilter::metaObject(void) const + ?tr@QSessionManager@@SA?AVQString@@PBD0@Z @ 8234 NONAME ; class QString QSessionManager::tr(char const *, char const *) + ?shapeText@QTextEngine@@ABEXH@Z @ 8235 NONAME ; void QTextEngine::shapeText(int) const + ?activated@QComboBox@@IAEXABVQString@@@Z @ 8236 NONAME ; void QComboBox::activated(class QString const &) + ?acceptDrops@QGraphicsItem@@QBE_NXZ @ 8237 NONAME ; bool QGraphicsItem::acceptDrops(void) const + ?insertItem@QToolBox@@QAEHHPAVQWidget@@ABVQIcon@@ABVQString@@@Z @ 8238 NONAME ; int QToolBox::insertItem(int, class QWidget *, class QIcon const &, class QString const &) + ?qt_metacast@QRegExpValidator@@UAEPAXPBD@Z @ 8239 NONAME ; void * QRegExpValidator::qt_metacast(char const *) + ??1QTableView@@UAE@XZ @ 8240 NONAME ; QTableView::~QTableView(void) + ?addWidget@QSplitter@@QAEXPAVQWidget@@@Z @ 8241 NONAME ; void QSplitter::addWidget(class QWidget *) + ?capStyle@QPen@@QBE?AW4PenCapStyle@Qt@@XZ @ 8242 NONAME ; enum Qt::PenCapStyle QPen::capStyle(void) const + ?cursorFlashTime@QApplication@@SAHXZ @ 8243 NONAME ; int QApplication::cursorFlashTime(void) + ??_EQGraphicsSceneWheelEvent@@UAE@I@Z @ 8244 NONAME ; QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent(unsigned int) + ?filterAcceptsRow@QSortFilterProxyModel@@MBE_NHABVQModelIndex@@@Z @ 8245 NONAME ; bool QSortFilterProxyModel::filterAcceptsRow(int, class QModelIndex const &) const + ?qt_metacast@QAbstractSpinBox@@UAEPAXPBD@Z @ 8246 NONAME ; void * QAbstractSpinBox::qt_metacast(char const *) + ?qt_metacast@QSlider@@UAEPAXPBD@Z @ 8247 NONAME ; void * QSlider::qt_metacast(char const *) + ?qt_metacast@QDrag@@UAEPAXPBD@Z @ 8248 NONAME ; void * QDrag::qt_metacast(char const *) + ?stacks@QUndoGroup@@QBE?AV?$QList@PAVQUndoStack@@@@XZ @ 8249 NONAME ; class QList QUndoGroup::stacks(void) const + ?naturalTextWidth@QTextLine@@QBEMXZ @ 8250 NONAME ; float QTextLine::naturalTextWidth(void) const + ?atSpace@QTextEngine@@QBE_NH@Z @ 8251 NONAME ; bool QTextEngine::atSpace(int) const + ?CancelFepInlineEdit@QCoeFepInputContext@@UAEXXZ @ 8252 NONAME ; void QCoeFepInputContext::CancelFepInlineEdit(void) + ?syncBackingStore@QWidgetPrivate@@QAEXXZ @ 8253 NONAME ; void QWidgetPrivate::syncBackingStore(void) + ?setHorizontalPolicy@QSizePolicy@@QAEXW4Policy@1@@Z @ 8254 NONAME ; void QSizePolicy::setHorizontalPolicy(enum QSizePolicy::Policy) + ?filter@QDirModel@@QBE?AV?$QFlags@W4Filter@QDir@@@@XZ @ 8255 NONAME ; class QFlags QDirModel::filter(void) const + ?setModelData@QStyledItemDelegate@@UBEXPAVQWidget@@PAVQAbstractItemModel@@ABVQModelIndex@@@Z @ 8256 NONAME ; void QStyledItemDelegate::setModelData(class QWidget *, class QAbstractItemModel *, class QModelIndex const &) const + ?setSubTitleFormat@QWizard@@QAEXW4TextFormat@Qt@@@Z @ 8257 NONAME ; void QWizard::setSubTitleFormat(enum Qt::TextFormat) + ??4QFontPrivate@@AAEAAV0@ABV0@@Z @ 8258 NONAME ; class QFontPrivate & QFontPrivate::operator=(class QFontPrivate const &) + ?brushOrigin@QPainter@@QBE?AVQPoint@@XZ @ 8259 NONAME ; class QPoint QPainter::brushOrigin(void) const + ?commitDataRequest@QApplication@@IAEXAAVQSessionManager@@@Z @ 8260 NONAME ; void QApplication::commitDataRequest(class QSessionManager &) + ?positionInlineObject@QAbstractTextDocumentLayout@@MAEXVQTextInlineObject@@HABVQTextFormat@@@Z @ 8261 NONAME ; void QAbstractTextDocumentLayout::positionInlineObject(class QTextInlineObject, int, class QTextFormat const &) + ?tr@QGraphicsItemAnimation@@SA?AVQString@@PBD0@Z @ 8262 NONAME ; class QString QGraphicsItemAnimation::tr(char const *, char const *) + ?trUtf8@QDialogButtonBox@@SA?AVQString@@PBD0H@Z @ 8263 NONAME ; class QString QDialogButtonBox::trUtf8(char const *, char const *, int) + ?setStatus@QPictureIO@@QAEXH@Z @ 8264 NONAME ; void QPictureIO::setStatus(int) + ?d_func@QUndoView@@ABEPBVQUndoViewPrivate@@XZ @ 8265 NONAME ; class QUndoViewPrivate const * QUndoView::d_func(void) const + ?shape@QGraphicsTextItem@@UBE?AVQPainterPath@@XZ @ 8266 NONAME ; class QPainterPath QGraphicsTextItem::shape(void) const + ?setEnabled@QGraphicsItem@@QAEX_N@Z @ 8267 NONAME ; void QGraphicsItem::setEnabled(bool) + ?setHeaderLabels@QTreeWidget@@QAEXABVQStringList@@@Z @ 8268 NONAME ; void QTreeWidget::setHeaderLabels(class QStringList const &) + ?setTransform@QGraphicsItem@@QAEXABVQTransform@@_N@Z @ 8269 NONAME ; void QGraphicsItem::setTransform(class QTransform const &, bool) + ?expand@QTreeView@@QAEXABVQModelIndex@@@Z @ 8270 NONAME ; void QTreeView::expand(class QModelIndex const &) + ?setParentItem@QGraphicsItem@@QAEXPAV1@@Z @ 8271 NONAME ; void QGraphicsItem::setParentItem(class QGraphicsItem *) + ?GetFormatForFep@QCoeFepInputContext@@UBEXAAVTCharFormat@@H@Z @ 8272 NONAME ; void QCoeFepInputContext::GetFormatForFep(class TCharFormat &, int) const + ?setSizeConstraint@QLayout@@QAEXW4SizeConstraint@1@@Z @ 8273 NONAME ; void QLayout::setSizeConstraint(enum QLayout::SizeConstraint) + ??5@YAAAVQDataStream@@AAV0@AAVQPicture@@@Z @ 8274 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPicture &) + ?atEnd@QTextCursor@@QBE_NXZ @ 8275 NONAME ; bool QTextCursor::atEnd(void) const + ?resizeEvent@QListView@@MAEXPAVQResizeEvent@@@Z @ 8276 NONAME ; void QListView::resizeEvent(class QResizeEvent *) + ?setToolTip@QAction@@QAEXABVQString@@@Z @ 8277 NONAME ; void QAction::setToolTip(class QString const &) + ??1QGraphicsGridLayout@@UAE@XZ @ 8278 NONAME ; QGraphicsGridLayout::~QGraphicsGridLayout(void) + ?rotationAngle@QPinchGesture@@QBEMXZ @ 8279 NONAME ; float QPinchGesture::rotationAngle(void) const + ?cursorWidth@QPlainTextEdit@@QBEHXZ @ 8280 NONAME ; int QPlainTextEdit::cursorWidth(void) const + ?pos@QGraphicsSceneContextMenuEvent@@QBE?AVQPointF@@XZ @ 8281 NONAME ; class QPointF QGraphicsSceneContextMenuEvent::pos(void) const + ?tr@QGraphicsTextItem@@SA?AVQString@@PBD0H@Z @ 8282 NONAME ; class QString QGraphicsTextItem::tr(char const *, char const *, int) + ?isObscuredBy@QGraphicsPathItem@@UBE_NPBVQGraphicsItem@@@Z @ 8283 NONAME ; bool QGraphicsPathItem::isObscuredBy(class QGraphicsItem const *) const + ?textLength@QTextLine@@QBEHXZ @ 8284 NONAME ; int QTextLine::textLength(void) const + ?setWrapAround@QCompleter@@QAEX_N@Z @ 8285 NONAME ; void QCompleter::setWrapAround(bool) + ??YQTransform@@QAEAAV0@M@Z @ 8286 NONAME ; class QTransform & QTransform::operator+=(float) + ?itemEditorFactory@QStyledItemDelegate@@QBEPAVQItemEditorFactory@@XZ @ 8287 NONAME ; class QItemEditorFactory * QStyledItemDelegate::itemEditorFactory(void) const + ?appendHtml@QPlainTextEdit@@QAEXABVQString@@@Z @ 8288 NONAME ; void QPlainTextEdit::appendHtml(class QString const &) + ?spacing@QGraphicsAnchor@@QBEMXZ @ 8289 NONAME ; float QGraphicsAnchor::spacing(void) const + ?dropMimeData@QTableWidget@@MAE_NHHPBVQMimeData@@W4DropAction@Qt@@@Z @ 8290 NONAME ; bool QTableWidget::dropMimeData(int, int, class QMimeData const *, enum Qt::DropAction) + ?setTabPosition@QMdiArea@@QAEXW4TabPosition@QTabWidget@@@Z @ 8291 NONAME ; void QMdiArea::setTabPosition(enum QTabWidget::TabPosition) + ??0QProgressDialog@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 8292 NONAME ; QProgressDialog::QProgressDialog(class QWidget *, class QFlags) + ??0QMatrix@@AAE@_N@Z @ 8293 NONAME ; QMatrix::QMatrix(bool) + ?selectionChanged@QCalendarWidget@@IAEXXZ @ 8294 NONAME ; void QCalendarWidget::selectionChanged(void) + ??0QPalette@@QAE@ABV0@@Z @ 8295 NONAME ; QPalette::QPalette(class QPalette const &) + ?event@QSpinBox@@MAE_NPAVQEvent@@@Z @ 8296 NONAME ; bool QSpinBox::event(class QEvent *) + ?setRootModelIndex@QComboBox@@QAEXABVQModelIndex@@@Z @ 8297 NONAME ; void QComboBox::setRootModelIndex(class QModelIndex const &) + ?setPixelSize@QFont@@QAEXH@Z @ 8298 NONAME ; void QFont::setPixelSize(int) + ?setBottomMargin@QTextFrameFormat@@QAEXM@Z @ 8299 NONAME ; void QTextFrameFormat::setBottomMargin(float) + ?minimumDate@QCalendarWidget@@QBE?AVQDate@@XZ @ 8300 NONAME ; class QDate QCalendarWidget::minimumDate(void) const + ?setBlurRadius@QGraphicsDropShadowEffect@@QAEXH@Z @ 8301 NONAME ; void QGraphicsDropShadowEffect::setBlurRadius(int) + ?setMask@QPixmapData@@UAEXABVQBitmap@@@Z @ 8302 NONAME ; void QPixmapData::setMask(class QBitmap const &) + ?drawPie@QPainter@@QAEXABVQRectF@@HH@Z @ 8303 NONAME ; void QPainter::drawPie(class QRectF const &, int, int) + ?supportsExtension@QGraphicsPolygonItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 8304 NONAME ; bool QGraphicsPolygonItem::supportsExtension(enum QGraphicsItem::Extension) const + ??0QFont@@QAE@ABV0@@Z @ 8305 NONAME ; QFont::QFont(class QFont const &) + ?selectedRows@QItemSelectionModel@@QBE?AV?$QList@VQModelIndex@@@@H@Z @ 8306 NONAME ; class QList QItemSelectionModel::selectedRows(int) const + ?tr@QTextBlockGroup@@SA?AVQString@@PBD0H@Z @ 8307 NONAME ; class QString QTextBlockGroup::tr(char const *, char const *, int) + ?setCornerWidget@QTabWidget@@QAEXPAVQWidget@@W4Corner@Qt@@@Z @ 8308 NONAME ; void QTabWidget::setCornerWidget(class QWidget *, enum Qt::Corner) + ??4QMatrix4x4@@QAEAAV0@ABV0@@Z @ 8309 NONAME ; class QMatrix4x4 & QMatrix4x4::operator=(class QMatrix4x4 const &) + ?itemClicked@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 8310 NONAME ; void QListWidget::itemClicked(class QListWidgetItem *) + ?ascent@QTextItem@@QBEMXZ @ 8311 NONAME ; float QTextItem::ascent(void) const + ?trUtf8@QTextTable@@SA?AVQString@@PBD0@Z @ 8312 NONAME ; class QString QTextTable::trUtf8(char const *, char const *) + ?currentChanged@QStackedLayout@@IAEXH@Z @ 8313 NONAME ; void QStackedLayout::currentChanged(int) + ?tr@QPictureFormatPlugin@@SA?AVQString@@PBD0@Z @ 8314 NONAME ; class QString QPictureFormatPlugin::tr(char const *, char const *) + ?setTopMargin@QTextFrameFormat@@QAEXM@Z @ 8315 NONAME ; void QTextFrameFormat::setTopMargin(float) + ?setPos@QCursor@@SAXHH@Z @ 8316 NONAME ; void QCursor::setPos(int, int) + ?formatIndex@QTextEngine@@QBEHPBUQScriptItem@@@Z @ 8317 NONAME ; int QTextEngine::formatIndex(struct QScriptItem const *) const + ?hasFrame@QLineEdit@@QBE_NXZ @ 8318 NONAME ; bool QLineEdit::hasFrame(void) const + ?verticalScrollMode@QAbstractItemView@@QBE?AW4ScrollMode@1@XZ @ 8319 NONAME ; enum QAbstractItemView::ScrollMode QAbstractItemView::verticalScrollMode(void) const + ??0QPaintBufferResource@@QAE@P6AXPAX@ZPAVQObject@@@Z @ 8320 NONAME ; QPaintBufferResource::QPaintBufferResource(void (*)(void *), class QObject *) + ?qt_metacall@QPlainTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8321 NONAME ; int QPlainTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?totalMinimumSize@QLayout@@QBE?AVQSize@@XZ @ 8322 NONAME ; class QSize QLayout::totalMinimumSize(void) const + ?atEnd@iterator@QTextFrame@@QBE_NXZ @ 8323 NONAME ; bool QTextFrame::iterator::atEnd(void) const + ?fix_neg_rect@QPaintEngine@@QAEXPAH000@Z @ 8324 NONAME ; void QPaintEngine::fix_neg_rect(int *, int *, int *, int *) + ?qt_metacast@QUndoView@@UAEPAXPBD@Z @ 8325 NONAME ; void * QUndoView::qt_metacast(char const *) + ?boundingRect@QGraphicsWidget@@UBE?AVQRectF@@XZ @ 8326 NONAME ; class QRectF QGraphicsWidget::boundingRect(void) const + ?shearList@QGraphicsItemAnimation@@QBE?AV?$QList@U?$QPair@MVQPointF@@@@@@XZ @ 8327 NONAME ; class QList > QGraphicsItemAnimation::shearList(void) const + ?extension@QDialog@@QBEPAVQWidget@@XZ @ 8328 NONAME ; class QWidget * QDialog::extension(void) const + ?addButton@QButtonGroup@@QAEXPAVQAbstractButton@@H@Z @ 8329 NONAME ; void QButtonGroup::addButton(class QAbstractButton *, int) + ??_EQTextBlockGroup@@UAE@I@Z @ 8330 NONAME ; QTextBlockGroup::~QTextBlockGroup(unsigned int) + ?qt_metacall@QProxyStyle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8331 NONAME ; int QProxyStyle::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QVector2D@@QAE@ABVQVector4D@@@Z @ 8332 NONAME ; QVector2D::QVector2D(class QVector4D const &) + ??1QStyleOptionFocusRect@@QAE@XZ @ 8333 NONAME ; QStyleOptionFocusRect::~QStyleOptionFocusRect(void) + ?newProxyWidget@QGraphicsProxyWidget@@IAEPAV1@PBVQWidget@@@Z @ 8334 NONAME ; class QGraphicsProxyWidget * QGraphicsProxyWidget::newProxyWidget(class QWidget const *) + ?paintEvent@QLCDNumber@@MAEXPAVQPaintEvent@@@Z @ 8335 NONAME ; void QLCDNumber::paintEvent(class QPaintEvent *) + ?clear@QDialogButtonBox@@QAEXXZ @ 8336 NONAME ; void QDialogButtonBox::clear(void) + ?column@QTableWidget@@QBEHPBVQTableWidgetItem@@@Z @ 8337 NONAME ; int QTableWidget::column(class QTableWidgetItem const *) const + ?standardSizes@QFontDatabase@@SA?AV?$QList@H@@XZ @ 8338 NONAME ; class QList QFontDatabase::standardSizes(void) + ?cacheMode@QGraphicsView@@QBE?AV?$QFlags@W4CacheModeFlag@QGraphicsView@@@@XZ @ 8339 NONAME ; class QFlags QGraphicsView::cacheMode(void) const + ?qt_metacall@QDoubleSpinBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8340 NONAME ; int QDoubleSpinBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?backgroundMode@QPainter@@QBE?AW4BGMode@Qt@@XZ @ 8341 NONAME ; enum Qt::BGMode QPainter::backgroundMode(void) const + ?setIcon@QAbstractButton@@QAEXABVQIcon@@@Z @ 8342 NONAME ; void QAbstractButton::setIcon(class QIcon const &) + ?getStaticMetaObject@QDialog@@SAABUQMetaObject@@XZ @ 8343 NONAME ; struct QMetaObject const & QDialog::getStaticMetaObject(void) + ?setScaleFactor@QPinchGesture@@QAEXM@Z @ 8344 NONAME ; void QPinchGesture::setScaleFactor(float) + ??0QFileOpenEvent@@QAE@ABVQString@@@Z @ 8345 NONAME ; QFileOpenEvent::QFileOpenEvent(class QString const &) + ?dateChanged@QDateTimeEdit@@IAEXABVQDate@@@Z @ 8346 NONAME ; void QDateTimeEdit::dateChanged(class QDate const &) + ?setAcceptHoverEvents@QGraphicsItem@@QAEX_N@Z @ 8347 NONAME ; void QGraphicsItem::setAcceptHoverEvents(bool) + ?options@QInputDialog@@QBE?AV?$QFlags@W4InputDialogOption@QInputDialog@@@@XZ @ 8348 NONAME ; class QFlags QInputDialog::options(void) const + ?trUtf8@QUndoGroup@@SA?AVQString@@PBD0@Z @ 8349 NONAME ; class QString QUndoGroup::trUtf8(char const *, char const *) + ?released@QAbstractButton@@IAEXXZ @ 8350 NONAME ; void QAbstractButton::released(void) + ?d_func@QDial@@AAEPAVQDialPrivate@@XZ @ 8351 NONAME ; class QDialPrivate * QDial::d_func(void) + ?rowCount@QGridLayout@@QBEHXZ @ 8352 NONAME ; int QGridLayout::rowCount(void) const + ?properties@QFontEngine@@UBE?AUProperties@1@XZ @ 8353 NONAME ; struct QFontEngine::Properties QFontEngine::properties(void) const + ?dropMimeData@QListWidget@@MAE_NHPBVQMimeData@@W4DropAction@Qt@@@Z @ 8354 NONAME ; bool QListWidget::dropMimeData(int, class QMimeData const *, enum Qt::DropAction) + ?centerButtons@QDialogButtonBox@@QBE_NXZ @ 8355 NONAME ; bool QDialogButtonBox::centerButtons(void) const + ?qt_metacall@QWizard@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8356 NONAME ; int QWizard::qt_metacall(enum QMetaObject::Call, int, void * *) + ?redoTextChanged@QUndoStack@@IAEXABVQString@@@Z @ 8357 NONAME ; void QUndoStack::redoTextChanged(class QString const &) + ?numColors@QPixmapData@@QBEHXZ @ 8358 NONAME ; int QPixmapData::numColors(void) const + ??0QPixmap@@AAE@ABVQSize@@H@Z @ 8359 NONAME ; QPixmap::QPixmap(class QSize const &, int) + ?flags@QFileSystemModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 8360 NONAME ; class QFlags QFileSystemModel::flags(class QModelIndex const &) const + ?trUtf8@QPinchGesture@@SA?AVQString@@PBD0H@Z @ 8361 NONAME ; class QString QPinchGesture::trUtf8(char const *, char const *, int) + ?spacing@QBoxLayout@@QBEHXZ @ 8362 NONAME ; int QBoxLayout::spacing(void) const + ??GQPainterPath@@QBE?AV0@ABV0@@Z @ 8363 NONAME ; class QPainterPath QPainterPath::operator-(class QPainterPath const &) const + ?question@QMessageBox@@SAHPAVQWidget@@ABVQString@@1HHH@Z @ 8364 NONAME ; int QMessageBox::question(class QWidget *, class QString const &, class QString const &, int, int, int) + ??0QKeyEventTransition@@QAE@PAVQObject@@W4Type@QEvent@@HPAVQState@@@Z @ 8365 NONAME ; QKeyEventTransition::QKeyEventTransition(class QObject *, enum QEvent::Type, int, class QState *) + ?getStaticMetaObject@QLineControl@@SAABUQMetaObject@@XZ @ 8366 NONAME ; struct QMetaObject const & QLineControl::getStaticMetaObject(void) + ?setOpenExternalLinks@QGraphicsTextItem@@QAEX_N@Z @ 8367 NONAME ; void QGraphicsTextItem::setOpenExternalLinks(bool) + ??0QGraphicsSceneResizeEvent@@QAE@XZ @ 8368 NONAME ; QGraphicsSceneResizeEvent::QGraphicsSceneResizeEvent(void) + ?translate@QMatrix@@QAEAAV1@MM@Z @ 8369 NONAME ; class QMatrix & QMatrix::translate(float, float) + ?updateEditorGeometries@QAbstractItemView@@MAEXXZ @ 8370 NONAME ; void QAbstractItemView::updateEditorGeometries(void) + ?setUsesScrollButtons@QTabBar@@QAEX_N@Z @ 8371 NONAME ; void QTabBar::setUsesScrollButtons(bool) + ?isModal@QWidget@@QBE_NXZ @ 8372 NONAME ; bool QWidget::isModal(void) const + ?setY@QVector3D@@QAEXM@Z @ 8373 NONAME ; void QVector3D::setY(float) + ?setCurrentIndex@QDataWidgetMapper@@UAEXH@Z @ 8374 NONAME ; void QDataWidgetMapper::setCurrentIndex(int) + ?triggered@QToolButton@@IAEXPAVQAction@@@Z @ 8375 NONAME ; void QToolButton::triggered(class QAction *) + ?setToolTip@QGraphicsItem@@QAEXABVQString@@@Z @ 8376 NONAME ; void QGraphicsItem::setToolTip(class QString const &) + ?paintEngine@QPicture@@UBEPAVQPaintEngine@@XZ @ 8377 NONAME ; class QPaintEngine * QPicture::paintEngine(void) const + ?fontStyleStrategy@QTextCharFormat@@QBE?AW4StyleStrategy@QFont@@XZ @ 8378 NONAME ; enum QFont::StyleStrategy QTextCharFormat::fontStyleStrategy(void) const + ?isGrayscale@QImage@@QBE_NXZ @ 8379 NONAME ; bool QImage::isGrayscale(void) const + ?dataChanged@QClipboard@@IAEXXZ @ 8380 NONAME ; void QClipboard::dataChanged(void) + ?pixel@QImage@@QBEIABVQPoint@@@Z @ 8381 NONAME ; unsigned int QImage::pixel(class QPoint const &) const + ?qt_metacall@QToolButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8382 NONAME ; int QToolButton::qt_metacall(enum QMetaObject::Call, int, void * *) + ?styleOverride@QApplicationPrivate@@2VQString@@A @ 8383 NONAME ; class QString QApplicationPrivate::styleOverride + ??0QMenu@@IAE@AAVQMenuPrivate@@PAVQWidget@@@Z @ 8384 NONAME ; QMenu::QMenu(class QMenuPrivate &, class QWidget *) + ?internalInsert@QLineControl@@AAEXABVQString@@@Z @ 8385 NONAME ; void QLineControl::internalInsert(class QString const &) + ?clone@QIconEngineV2@@UBEPAV1@XZ @ 8386 NONAME ; class QIconEngineV2 * QIconEngineV2::clone(void) const + ?getStaticMetaObject@QSound@@SAABUQMetaObject@@XZ @ 8387 NONAME ; struct QMetaObject const & QSound::getStaticMetaObject(void) + ??0QPaintDevice@@IAE@XZ @ 8388 NONAME ; QPaintDevice::QPaintDevice(void) + ?mouseGrabber@QWidget@@SAPAV1@XZ @ 8389 NONAME ; class QWidget * QWidget::mouseGrabber(void) + ?changeEvent@QRubberBand@@MAEXPAVQEvent@@@Z @ 8390 NONAME ; void QRubberBand::changeEvent(class QEvent *) + ?data_ptr@QBrush@@QAEAAV?$QScopedPointer@UQBrushData@@UQBrushDataPointerDeleter@@@@XZ @ 8391 NONAME ; class QScopedPointer & QBrush::data_ptr(void) + ?undo@QLineControl@@QAEXXZ @ 8392 NONAME ; void QLineControl::undo(void) + ?isDown@QAbstractButton@@QBE_NXZ @ 8393 NONAME ; bool QAbstractButton::isDown(void) const + ?setOpaque@QWidgetPrivate@@QAEX_N@Z @ 8394 NONAME ; void QWidgetPrivate::setOpaque(bool) + ?actionTriggered@QToolBar@@IAEXPAVQAction@@@Z @ 8395 NONAME ; void QToolBar::actionTriggered(class QAction *) + ??0QGestureEvent@@QAE@ABV?$QList@PAVQGesture@@@@@Z @ 8396 NONAME ; QGestureEvent::QGestureEvent(class QList const &) + ??1QFontMetricsF@@QAE@XZ @ 8397 NONAME ; QFontMetricsF::~QFontMetricsF(void) + ?normalGeometry@QWidget@@QBE?AVQRect@@XZ @ 8398 NONAME ; class QRect QWidget::normalGeometry(void) const + ??0QWidgetPrivate@@QAE@H@Z @ 8399 NONAME ; QWidgetPrivate::QWidgetPrivate(int) + ?internalDrop@QListView@@IAEXPAVQDropEvent@@@Z @ 8400 NONAME ; void QListView::internalDrop(class QDropEvent *) + ?setMaxVisibleItems@QComboBox@@QAEXH@Z @ 8401 NONAME ; void QComboBox::setMaxVisibleItems(int) + ?eventFilter@QFontDialog@@EAE_NPAVQObject@@PAVQEvent@@@Z @ 8402 NONAME ; bool QFontDialog::eventFilter(class QObject *, class QEvent *) + ?drawPolyline@QPainter@@QAEXPBVQPoint@@H@Z @ 8403 NONAME ; void QPainter::drawPolyline(class QPoint const *, int) + ?hideEvent@QMdiSubWindow@@MAEXPAVQHideEvent@@@Z @ 8404 NONAME ; void QMdiSubWindow::hideEvent(class QHideEvent *) + ?metaObject@QComboBox@@UBEPBUQMetaObject@@XZ @ 8405 NONAME ; struct QMetaObject const * QComboBox::metaObject(void) const + ?getStaticMetaObject@QWidget@@SAABUQMetaObject@@XZ @ 8406 NONAME ; struct QMetaObject const & QWidget::getStaticMetaObject(void) + ?moveCursor@QTextEdit@@QAEXW4MoveOperation@QTextCursor@@W4MoveMode@3@@Z @ 8407 NONAME ; void QTextEdit::moveCursor(enum QTextCursor::MoveOperation, enum QTextCursor::MoveMode) + ??BQTextLength@@QBE?AVQVariant@@XZ @ 8408 NONAME ; QTextLength::operator class QVariant(void) const + ?value@QLCDNumber@@QBENXZ @ 8409 NONAME ; double QLCDNumber::value(void) const + ?tr@QMdiArea@@SA?AVQString@@PBD0@Z @ 8410 NONAME ; class QString QMdiArea::tr(char const *, char const *) + ??_EQPixmapDropShadowFilter@@UAE@I@Z @ 8411 NONAME ; QPixmapDropShadowFilter::~QPixmapDropShadowFilter(unsigned int) + ?y@QTextLine@@QBEMXZ @ 8412 NONAME ; float QTextLine::y(void) const + ??1QBrush@@QAE@XZ @ 8413 NONAME ; QBrush::~QBrush(void) + ?visualRect@QTableView@@UBE?AVQRect@@ABVQModelIndex@@@Z @ 8414 NONAME ; class QRect QTableView::visualRect(class QModelIndex const &) const + ?setMaximumBlockCount@QPlainTextEdit@@QAEXH@Z @ 8415 NONAME ; void QPlainTextEdit::setMaximumBlockCount(int) + ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@I@Z @ 8416 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int) + ?setBottom@QIntValidator@@QAEXH@Z @ 8417 NONAME ; void QIntValidator::setBottom(int) + ?monthShown@QCalendarWidget@@QBEHXZ @ 8418 NONAME ; int QCalendarWidget::monthShown(void) const + ?qt_metacast@QTimeEdit@@UAEPAXPBD@Z @ 8419 NONAME ; void * QTimeEdit::qt_metacast(char const *) + ?filesSelected@QFileDialog@@IAEXABVQStringList@@@Z @ 8420 NONAME ; void QFileDialog::filesSelected(class QStringList const &) + ?setButton@QWizard@@QAEXW4WizardButton@1@PAVQAbstractButton@@@Z @ 8421 NONAME ; void QWizard::setButton(enum QWizard::WizardButton, class QAbstractButton *) + ?drawPoint@QPainter@@QAEXABVQPoint@@@Z @ 8422 NONAME ; void QPainter::drawPoint(class QPoint const &) + ?lastModified@QFileSystemModel@@QBE?AVQDateTime@@ABVQModelIndex@@@Z @ 8423 NONAME ; class QDateTime QFileSystemModel::lastModified(class QModelIndex const &) const + ??0QVector4D@@QAE@ABV0@@Z @ 8424 NONAME ; QVector4D::QVector4D(class QVector4D const &) + ?paint@QGraphicsProxyWidget@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 8425 NONAME ; void QGraphicsProxyWidget::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?d_func@QKeyEventTransition@@ABEPBVQKeyEventTransitionPrivate@@XZ @ 8426 NONAME ; class QKeyEventTransitionPrivate const * QKeyEventTransition::d_func(void) const + ?changeEvent@QWorkspace@@MAEXPAVQEvent@@@Z @ 8427 NONAME ; void QWorkspace::changeEvent(class QEvent *) + ?mapToParent@QGraphicsItem@@QBE?AVQPainterPath@@ABV2@@Z @ 8428 NONAME ; class QPainterPath QGraphicsItem::mapToParent(class QPainterPath const &) const + ?setPen@QGraphicsLineItem@@QAEXABVQPen@@@Z @ 8429 NONAME ; void QGraphicsLineItem::setPen(class QPen const &) + ?pictureFormat@QPictureIO@@SA?AVQByteArray@@PAVQIODevice@@@Z @ 8430 NONAME ; class QByteArray QPictureIO::pictureFormat(class QIODevice *) + ?screenRect@TouchPoint@QTouchEvent@@QBE?AVQRectF@@XZ @ 8431 NONAME ; class QRectF QTouchEvent::TouchPoint::screenRect(void) const + ?transformed@QImage@@QBE?AV1@ABVQMatrix@@W4TransformationMode@Qt@@@Z @ 8432 NONAME ; class QImage QImage::transformed(class QMatrix const &, enum Qt::TransformationMode) const + ??0Tab@QTextOption@@QAE@XZ @ 8433 NONAME ; QTextOption::Tab::Tab(void) + ??0QSyntaxHighlighter@@QAE@PAVQObject@@@Z @ 8434 NONAME ; QSyntaxHighlighter::QSyntaxHighlighter(class QObject *) + ?focusInEvent@QGraphicsProxyWidget@@MAEXPAVQFocusEvent@@@Z @ 8435 NONAME ; void QGraphicsProxyWidget::focusInEvent(class QFocusEvent *) + ?setPixmap@QClipboard@@QAEXABVQPixmap@@W4Mode@1@@Z @ 8436 NONAME ; void QClipboard::setPixmap(class QPixmap const &, enum QClipboard::Mode) + ?engine@QTextLayout@@QBEPAVQTextEngine@@XZ @ 8437 NONAME ; class QTextEngine * QTextLayout::engine(void) const + ?setMinimumSize@QGraphicsLayoutItem@@QAEXABVQSizeF@@@Z @ 8438 NONAME ; void QGraphicsLayoutItem::setMinimumSize(class QSizeF const &) + ?trUtf8@QSortFilterProxyModel@@SA?AVQString@@PBD0H@Z @ 8439 NONAME ; class QString QSortFilterProxyModel::trUtf8(char const *, char const *, int) + ?setTabIcon@QTabBar@@QAEXHABVQIcon@@@Z @ 8440 NONAME ; void QTabBar::setTabIcon(int, class QIcon const &) + ?trUtf8@QAbstractScrollArea@@SA?AVQString@@PBD0H@Z @ 8441 NONAME ; class QString QAbstractScrollArea::trUtf8(char const *, char const *, int) + ?atWordSeparator@QTextEngine@@QBE_NH@Z @ 8442 NONAME ; bool QTextEngine::atWordSeparator(int) const + ?movableAncestorIsSelected@QGraphicsItemPrivate@@SA_NPBVQGraphicsItem@@@Z @ 8443 NONAME ; bool QGraphicsItemPrivate::movableAncestorIsSelected(class QGraphicsItem const *) + ?openPersistentEditor@QTableWidget@@QAEXPAVQTableWidgetItem@@@Z @ 8444 NONAME ; void QTableWidget::openPersistentEditor(class QTableWidgetItem *) + ?tabStopWidth@QPlainTextEdit@@QBEHXZ @ 8445 NONAME ; int QPlainTextEdit::tabStopWidth(void) const + ?keyboardModifiers@QApplication@@SA?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 8446 NONAME ; class QFlags QApplication::keyboardModifiers(void) + ?polish@QWindowsStyle@@UAEXPAVQApplication@@@Z @ 8447 NONAME ; void QWindowsStyle::polish(class QApplication *) + ?documentSizeChanged@QAbstractTextDocumentLayout@@IAEXABVQSizeF@@@Z @ 8448 NONAME ; void QAbstractTextDocumentLayout::documentSizeChanged(class QSizeF const &) + ?fileName@QMovie@@QBE?AVQString@@XZ @ 8449 NONAME ; class QString QMovie::fileName(void) const + ?trUtf8@QPixmapBlurFilter@@SA?AVQString@@PBD0@Z @ 8450 NONAME ; class QString QPixmapBlurFilter::trUtf8(char const *, char const *) + ??0QFontPrivate@@QAE@XZ @ 8451 NONAME ; QFontPrivate::QFontPrivate(void) + ?toFillPolygons@QPainterPath@@QBE?AV?$QList@VQPolygonF@@@@ABVQTransform@@@Z @ 8452 NONAME ; class QList QPainterPath::toFillPolygons(class QTransform const &) const + ?d_func@QCalendarWidget@@ABEPBVQCalendarWidgetPrivate@@XZ @ 8453 NONAME ; class QCalendarWidgetPrivate const * QCalendarWidget::d_func(void) const + ?d_func@QProgressBar@@AAEPAVQProgressBarPrivate@@XZ @ 8454 NONAME ; class QProgressBarPrivate * QProgressBar::d_func(void) + ?insertList@QTextCursor@@QAEPAVQTextList@@W4Style@QTextListFormat@@@Z @ 8455 NONAME ; class QTextList * QTextCursor::insertList(enum QTextListFormat::Style) + ?title@QWizardPage@@QBE?AVQString@@XZ @ 8456 NONAME ; class QString QWizardPage::title(void) const + ?size@QFontMetricsF@@QBE?AVQSizeF@@HABVQString@@HPAH@Z @ 8457 NONAME ; class QSizeF QFontMetricsF::size(int, class QString const &, int, int *) const + ??6@YA?AVQDebug@@V0@ABVQBrush@@@Z @ 8458 NONAME ; class QDebug operator<<(class QDebug, class QBrush const &) + ?foreground@QTreeWidgetItem@@QBE?AVQBrush@@H@Z @ 8459 NONAME ; class QBrush QTreeWidgetItem::foreground(int) const + ?setObjectIndex@QTextFormat@@QAEXH@Z @ 8460 NONAME ; void QTextFormat::setObjectIndex(int) + ?insertList@QTextCursor@@QAEPAVQTextList@@ABVQTextListFormat@@@Z @ 8461 NONAME ; class QTextList * QTextCursor::insertList(class QTextListFormat const &) + ?paint@QIcon@@QBEXPAVQPainter@@HHHHV?$QFlags@W4AlignmentFlag@Qt@@@@W4Mode@1@W4State@1@@Z @ 8462 NONAME ; void QIcon::paint(class QPainter *, int, int, int, int, class QFlags, enum QIcon::Mode, enum QIcon::State) const + ?icon@QAbstractButton@@QBE?AVQIcon@@XZ @ 8463 NONAME ; class QIcon QAbstractButton::icon(void) const + ??1QTextLayout@@QAE@XZ @ 8464 NONAME ; QTextLayout::~QTextLayout(void) + ?tabCloseRequested@QTabBar@@IAEXH@Z @ 8465 NONAME ; void QTabBar::tabCloseRequested(int) + ?orientation@QGraphicsLinearLayout@@QBE?AW4Orientation@Qt@@XZ @ 8466 NONAME ; enum Qt::Orientation QGraphicsLinearLayout::orientation(void) const + ?setToolTip@QTableWidgetItem@@QAEXABVQString@@@Z @ 8467 NONAME ; void QTableWidgetItem::setToolTip(class QString const &) + ?scene@QGraphicsView@@QBEPAVQGraphicsScene@@XZ @ 8468 NONAME ; class QGraphicsScene * QGraphicsView::scene(void) const + ?setExclusive@QActionGroup@@QAEX_N@Z @ 8469 NONAME ; void QActionGroup::setExclusive(bool) + ?setToolButtonStyle@QToolBar@@QAEXW4ToolButtonStyle@Qt@@@Z @ 8470 NONAME ; void QToolBar::setToolButtonStyle(enum Qt::ToolButtonStyle) + ?hasFocus@QGraphicsScene@@QBE_NXZ @ 8471 NONAME ; bool QGraphicsScene::hasFocus(void) const + ?setWidthF@QPen@@QAEXM@Z @ 8472 NONAME ; void QPen::setWidthF(float) + ?trUtf8@QInputContextPlugin@@SA?AVQString@@PBD0@Z @ 8473 NONAME ; class QString QInputContextPlugin::trUtf8(char const *, char const *) + ??0QClipboardEvent@@QAE@PAVQEventPrivate@@@Z @ 8474 NONAME ; QClipboardEvent::QClipboardEvent(class QEventPrivate *) + ?setBackgroundColor@QImageReader@@QAEXABVQColor@@@Z @ 8475 NONAME ; void QImageReader::setBackgroundColor(class QColor const &) + ?changeEvent@QWidget@@MAEXPAVQEvent@@@Z @ 8476 NONAME ; void QWidget::changeEvent(class QEvent *) + ?modifiers@QGraphicsSceneContextMenuEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 8477 NONAME ; class QFlags QGraphicsSceneContextMenuEvent::modifiers(void) const + ?handleWidth@QSplitter@@QBEHXZ @ 8478 NONAME ; int QSplitter::handleWidth(void) const + ?setColumnMaximumWidth@QGraphicsGridLayout@@QAEXHM@Z @ 8479 NONAME ; void QGraphicsGridLayout::setColumnMaximumWidth(int, float) + ??0QTextCharFormat@@QAE@ABV0@@Z @ 8480 NONAME ; QTextCharFormat::QTextCharFormat(class QTextCharFormat const &) + ?colorNames@QColor@@SA?AVQStringList@@XZ @ 8481 NONAME ; class QStringList QColor::colorNames(void) + ?drawText@QPainter@@QAEXABVQRect@@HABVQString@@PAV2@@Z @ 8482 NONAME ; void QPainter::drawText(class QRect const &, int, class QString const &, class QRect *) + ??_EQMenuBar@@UAE@I@Z @ 8483 NONAME ; QMenuBar::~QMenuBar(unsigned int) + ?d_func@QGraphicsLayout@@AAEPAVQGraphicsLayoutPrivate@@XZ @ 8484 NONAME ; class QGraphicsLayoutPrivate * QGraphicsLayout::d_func(void) + ?getRgba@QColorDialog@@SAIIPA_NPAVQWidget@@@Z @ 8485 NONAME ; unsigned int QColorDialog::getRgba(unsigned int, bool *, class QWidget *) + ?deviceType@QTouchEvent@@QBE?AW4DeviceType@1@XZ @ 8486 NONAME ; enum QTouchEvent::DeviceType QTouchEvent::deviceType(void) const + ?focusOutEvent@QAbstractItemView@@MAEXPAVQFocusEvent@@@Z @ 8487 NONAME ; void QAbstractItemView::focusOutEvent(class QFocusEvent *) + ??1QDesktopWidget@@UAE@XZ @ 8488 NONAME ; QDesktopWidget::~QDesktopWidget(void) + ??0QDateTimeEdit@@IAE@ABVQVariant@@W4Type@1@PAVQWidget@@@Z @ 8489 NONAME ; QDateTimeEdit::QDateTimeEdit(class QVariant const &, enum QVariant::Type, class QWidget *) + ?mapToScene@QGraphicsView@@QBE?AVQPainterPath@@ABV2@@Z @ 8490 NONAME ; class QPainterPath QGraphicsView::mapToScene(class QPainterPath const &) const + ?changeSize@QSpacerItem@@QAEXHHW4Policy@QSizePolicy@@0@Z @ 8491 NONAME ; void QSpacerItem::changeSize(int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ?mousePressEvent@QPlainTextEdit@@MAEXPAVQMouseEvent@@@Z @ 8492 NONAME ; void QPlainTextEdit::mousePressEvent(class QMouseEvent *) + ?textFromValue@QDoubleSpinBox@@UBE?AVQString@@N@Z @ 8493 NONAME ; class QString QDoubleSpinBox::textFromValue(double) const + ?mouseMoveEvent@QSlider@@MAEXPAVQMouseEvent@@@Z @ 8494 NONAME ; void QSlider::mouseMoveEvent(class QMouseEvent *) + ?keyboardModifiers@QDropEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 8495 NONAME ; class QFlags QDropEvent::keyboardModifiers(void) const + ?setMinimumSectionSize@QHeaderView@@QAEXH@Z @ 8496 NONAME ; void QHeaderView::setMinimumSectionSize(int) + ?childIndicatorPolicy@QTreeWidgetItem@@QBE?AW4ChildIndicatorPolicy@1@XZ @ 8497 NONAME ; enum QTreeWidgetItem::ChildIndicatorPolicy QTreeWidgetItem::childIndicatorPolicy(void) const + ??8QGradient@@QAE_NABV0@@Z @ 8498 NONAME ; bool QGradient::operator==(class QGradient const &) + ?height@QTextLine@@QBEMXZ @ 8499 NONAME ; float QTextLine::height(void) const + ??_EQDragResponseEvent@@UAE@I@Z @ 8500 NONAME ; QDragResponseEvent::~QDragResponseEvent(unsigned int) + ??0QStyleOptionRubberBand@@IAE@H@Z @ 8501 NONAME ; QStyleOptionRubberBand::QStyleOptionRubberBand(int) + ?arcTo@QPainterPath@@QAEXABVQRectF@@MM@Z @ 8502 NONAME ; void QPainterPath::arcTo(class QRectF const &, float, float) + ?setPicture@QLabel@@QAEXABVQPicture@@@Z @ 8503 NONAME ; void QLabel::setPicture(class QPicture const &) + ?inputMethodEvent@QTextEdit@@MAEXPAVQInputMethodEvent@@@Z @ 8504 NONAME ; void QTextEdit::inputMethodEvent(class QInputMethodEvent *) + ?setFormat@QTextList@@QAEXABVQTextListFormat@@@Z @ 8505 NONAME ; void QTextList::setFormat(class QTextListFormat const &) + ?acceptedMouseButtons@QGraphicsItem@@QBE?AV?$QFlags@W4MouseButton@Qt@@@@XZ @ 8506 NONAME ; class QFlags QGraphicsItem::acceptedMouseButtons(void) const + ?setCachedClipPath@QGraphicsItemPrivate@@QAEXABVQPainterPath@@@Z @ 8507 NONAME ; void QGraphicsItemPrivate::setCachedClipPath(class QPainterPath const &) + ?qt_metacast@QKeyEventTransition@@UAEPAXPBD@Z @ 8508 NONAME ; void * QKeyEventTransition::qt_metacast(char const *) + ?data@QMatrix4x4@@QAEPAMXZ @ 8509 NONAME ; float * QMatrix4x4::data(void) + ?destroy@QWidget@@IAEX_N0@Z @ 8510 NONAME ; void QWidget::destroy(bool, bool) + ?font@QTextLayout@@QBE?AVQFont@@XZ @ 8511 NONAME ; class QFont QTextLayout::font(void) const + ?blockFormat@QTextCursor@@QBE?AVQTextBlockFormat@@XZ @ 8512 NONAME ; class QTextBlockFormat QTextCursor::blockFormat(void) const + ?itemText@QTextList@@QBE?AVQString@@ABVQTextBlock@@@Z @ 8513 NONAME ; class QString QTextList::itemText(class QTextBlock const &) const + ?getHslF@QColor@@QBEXPAM000@Z @ 8514 NONAME ; void QColor::getHslF(float *, float *, float *, float *) const + ?text@QImageReader@@QBE?AVQString@@ABV2@@Z @ 8515 NONAME ; class QString QImageReader::text(class QString const &) const + ?convertToPainterPath@QVectorPath@@QBE?BVQPainterPath@@XZ @ 8516 NONAME ; class QPainterPath const QVectorPath::convertToPainterPath(void) const + ?setWindowModified@QWidget@@QAEX_N@Z @ 8517 NONAME ; void QWidget::setWindowModified(bool) + ?mouseMoveEvent@QScrollBar@@MAEXPAVQMouseEvent@@@Z @ 8518 NONAME ; void QScrollBar::mouseMoveEvent(class QMouseEvent *) + ?graphicsSystem@QApplicationPrivate@@SAPAVQGraphicsSystem@@XZ @ 8519 NONAME ; class QGraphicsSystem * QApplicationPrivate::graphicsSystem(void) + ?rootIsDecorated@QTreeView@@QBE_NXZ @ 8520 NONAME ; bool QTreeView::rootIsDecorated(void) const + ??0QImageTextKeyLang@@QAE@XZ @ 8521 NONAME ; QImageTextKeyLang::QImageTextKeyLang(void) + ?event@QMdiSubWindow@@MAE_NPAVQEvent@@@Z @ 8522 NONAME ; bool QMdiSubWindow::event(class QEvent *) + ?renderHints@QGraphicsView@@QBE?AV?$QFlags@W4RenderHint@QPainter@@@@XZ @ 8523 NONAME ; class QFlags QGraphicsView::renderHints(void) const + ?setExpanded@QTreeView@@QAEXABVQModelIndex@@_N@Z @ 8524 NONAME ; void QTreeView::setExpanded(class QModelIndex const &, bool) + ??0QWhatsThisClickedEvent@@QAE@ABVQString@@@Z @ 8525 NONAME ; QWhatsThisClickedEvent::QWhatsThisClickedEvent(class QString const &) + ?trUtf8@QIntValidator@@SA?AVQString@@PBD0H@Z @ 8526 NONAME ; class QString QIntValidator::trUtf8(char const *, char const *, int) + ?indexRowSizeHint@QTreeView@@IBEHABVQModelIndex@@@Z @ 8527 NONAME ; int QTreeView::indexRowSizeHint(class QModelIndex const &) const + ?tr@QToolButton@@SA?AVQString@@PBD0@Z @ 8528 NONAME ; class QString QToolButton::tr(char const *, char const *) + ?keys@QGuiPlatformPlugin@@UBE?AVQStringList@@XZ @ 8529 NONAME ; class QStringList QGuiPlatformPlugin::keys(void) const + ?textDirection@QTextOption@@QBE?AW4LayoutDirection@Qt@@XZ @ 8530 NONAME ; enum Qt::LayoutDirection QTextOption::textDirection(void) const + ?xHeight@QFontMetrics@@QBEHXZ @ 8531 NONAME ; int QFontMetrics::xHeight(void) const + ?read@QStandardItem@@UAEXAAVQDataStream@@@Z @ 8532 NONAME ; void QStandardItem::read(class QDataStream &) + ?done@QWizard@@MAEXH@Z @ 8533 NONAME ; void QWizard::done(int) + ?qt_metacall@QTabBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8534 NONAME ; int QTabBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mouseDoubleClickEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 8535 NONAME ; void QGraphicsScene::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?toggle@QAbstractButton@@QAEXXZ @ 8536 NONAME ; void QAbstractButton::toggle(void) + ?cursorBlinkPeriod@QLineControl@@QBEHXZ @ 8537 NONAME ; int QLineControl::cursorBlinkPeriod(void) const + ?resolveSymlinks@QFileDialog@@QBE_NXZ @ 8538 NONAME ; bool QFileDialog::resolveSymlinks(void) const + ?d_func@QGraphicsTransform@@ABEPBVQGraphicsTransformPrivate@@XZ @ 8539 NONAME ; class QGraphicsTransformPrivate const * QGraphicsTransform::d_func(void) const + ?verticalStretch@QSizePolicy@@QBEHXZ @ 8540 NONAME ; int QSizePolicy::verticalStretch(void) const + ?pixelSize@QGraphicsPixelizeEffect@@QBEHXZ @ 8541 NONAME ; int QGraphicsPixelizeEffect::pixelSize(void) const + ?time@QDateTimeEdit@@QBE?AVQTime@@XZ @ 8542 NONAME ; class QTime QDateTimeEdit::time(void) const + ?buttonDownScenePos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@W4MouseButton@Qt@@@Z @ 8543 NONAME ; class QPointF QGraphicsSceneMouseEvent::buttonDownScenePos(enum Qt::MouseButton) const + ?map@QMatrix@@QBEXMMPAM0@Z @ 8544 NONAME ; void QMatrix::map(float, float, float *, float *) const + ?paintEvent@QAbstractScrollArea@@MAEXPAVQPaintEvent@@@Z @ 8545 NONAME ; void QAbstractScrollArea::paintEvent(class QPaintEvent *) + ?event@QTextEdit@@MAE_NPAVQEvent@@@Z @ 8546 NONAME ; bool QTextEdit::event(class QEvent *) + ?insertColumns@QTextTable@@QAEXHH@Z @ 8547 NONAME ; void QTextTable::insertColumns(int, int) + ??_EQAbstractSpinBox@@UAE@I@Z @ 8548 NONAME ; QAbstractSpinBox::~QAbstractSpinBox(unsigned int) + ??0QPolygon@@QAE@XZ @ 8549 NONAME ; QPolygon::QPolygon(void) + ?normalizedPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 8550 NONAME ; class QPointF QTouchEvent::TouchPoint::normalizedPos(void) const + ?qt_metacall@QTextTable@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8551 NONAME ; int QTextTable::qt_metacall(enum QMetaObject::Call, int, void * *) + ?staticMetaObject@QTimeEdit@@2UQMetaObject@@B @ 8552 NONAME ; struct QMetaObject const QTimeEdit::staticMetaObject + ?valueChanged@QAbstractSlider@@IAEXH@Z @ 8553 NONAME ; void QAbstractSlider::valueChanged(int) + ?setSizeAdjustPolicy@QComboBox@@QAEXW4SizeAdjustPolicy@1@@Z @ 8554 NONAME ; void QComboBox::setSizeAdjustPolicy(enum QComboBox::SizeAdjustPolicy) + ??0QDoubleSpinBox@@QAE@PAVQWidget@@@Z @ 8555 NONAME ; QDoubleSpinBox::QDoubleSpinBox(class QWidget *) + ??0QStyleOptionToolButton@@IAE@H@Z @ 8556 NONAME ; QStyleOptionToolButton::QStyleOptionToolButton(int) + ??0QFileIconProvider@@QAE@XZ @ 8557 NONAME ; QFileIconProvider::QFileIconProvider(void) + ?q_func@QGraphicsItemPrivate@@AAEPAVQGraphicsItem@@XZ @ 8558 NONAME ; class QGraphicsItem * QGraphicsItemPrivate::q_func(void) + ??6@YA?AVQDebug@@V0@PAVQGraphicsItem@@@Z @ 8559 NONAME ; class QDebug operator<<(class QDebug, class QGraphicsItem *) + ?clearFocus@QGraphicsItem@@QAEXXZ @ 8560 NONAME ; void QGraphicsItem::clearFocus(void) + ??0QPixmap@@QAE@XZ @ 8561 NONAME ; QPixmap::QPixmap(void) + ?initStyleOption@QComboBox@@IBEXPAVQStyleOptionComboBox@@@Z @ 8562 NONAME ; void QComboBox::initStyleOption(class QStyleOptionComboBox *) const + ??0iterator@QTextFrame@@QAE@XZ @ 8563 NONAME ; QTextFrame::iterator::iterator(void) + ?setItem@QStandardItemModel@@QAEXHHPAVQStandardItem@@@Z @ 8564 NONAME ; void QStandardItemModel::setItem(int, int, class QStandardItem *) + ?setFlags@QListWidgetItem@@QAEXV?$QFlags@W4ItemFlag@Qt@@@@@Z @ 8565 NONAME ; void QListWidgetItem::setFlags(class QFlags) + ?d_func@QUndoStack@@AAEPAVQUndoStackPrivate@@XZ @ 8566 NONAME ; class QUndoStackPrivate * QUndoStack::d_func(void) + ?validate@QDateTimeEdit@@MBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 8567 NONAME ; enum QValidator::State QDateTimeEdit::validate(class QString &, int &) const + ??1QGraphicsRotation@@UAE@XZ @ 8568 NONAME ; QGraphicsRotation::~QGraphicsRotation(void) + ?process_cmdline@QApplicationPrivate@@QAEXXZ @ 8569 NONAME ; void QApplicationPrivate::process_cmdline(void) + ?families@QFontDatabase@@QBE?AVQStringList@@W4WritingSystem@1@@Z @ 8570 NONAME ; class QStringList QFontDatabase::families(enum QFontDatabase::WritingSystem) const + ?sizeHint@QFontComboBox@@UBE?AVQSize@@XZ @ 8571 NONAME ; class QSize QFontComboBox::sizeHint(void) const + ?setOrientation@QProgressBar@@QAEXW4Orientation@Qt@@@Z @ 8572 NONAME ; void QProgressBar::setOrientation(enum Qt::Orientation) + ??0QAbstractGraphicsShapeItem@@IAE@AAVQAbstractGraphicsShapeItemPrivate@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 8573 NONAME ; QAbstractGraphicsShapeItem::QAbstractGraphicsShapeItem(class QAbstractGraphicsShapeItemPrivate &, class QGraphicsItem *, class QGraphicsScene *) + ?rmdir@QFileSystemModel@@QBE_NABVQModelIndex@@@Z @ 8574 NONAME ; bool QFileSystemModel::rmdir(class QModelIndex const &) const + ?timerEvent@QWindowsStyle@@MAEXPAVQTimerEvent@@@Z @ 8575 NONAME ; void QWindowsStyle::timerEvent(class QTimerEvent *) + ?tr@QDialog@@SA?AVQString@@PBD0@Z @ 8576 NONAME ; class QString QDialog::tr(char const *, char const *) + ?itemAt@QListWidget@@QBEPAVQListWidgetItem@@ABVQPoint@@@Z @ 8577 NONAME ; class QListWidgetItem * QListWidget::itemAt(class QPoint const &) const + ??0QGraphicsItemGroup@@QAE@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 8578 NONAME ; QGraphicsItemGroup::QGraphicsItemGroup(class QGraphicsItem *, class QGraphicsScene *) + ??0QTextLength@@QAE@XZ @ 8579 NONAME ; QTextLength::QTextLength(void) + ?createMimeDataFromSelection@QPlainTextEdit@@MBEPAVQMimeData@@XZ @ 8580 NONAME ; class QMimeData * QPlainTextEdit::createMimeDataFromSelection(void) const + ?paintEngine@QImage@@UBEPAVQPaintEngine@@XZ @ 8581 NONAME ; class QPaintEngine * QImage::paintEngine(void) const + ?minLeftBearing@QFontEngine@@UBEMXZ @ 8582 NONAME ; float QFontEngine::minLeftBearing(void) const + ?init@QPalette@@AAEXXZ @ 8583 NONAME ; void QPalette::init(void) + ?validator@QLineEdit@@QBEPBVQValidator@@XZ @ 8584 NONAME ; class QValidator const * QLineEdit::validator(void) const + ?setSwipeAngle@QSwipeGesture@@QAEXM@Z @ 8585 NONAME ; void QSwipeGesture::setSwipeAngle(float) + ?setFocusToNextOrPreviousAnchor@QTextControl@@QAE_N_N@Z @ 8586 NONAME ; bool QTextControl::setFocusToNextOrPreviousAnchor(bool) + ?widget@QGraphicsProxyWidget@@QBEPAVQWidget@@XZ @ 8587 NONAME ; class QWidget * QGraphicsProxyWidget::widget(void) const + ?trUtf8@QTextFrame@@SA?AVQString@@PBD0@Z @ 8588 NONAME ; class QString QTextFrame::trUtf8(char const *, char const *) + ?tabTextColor@QTabBar@@QBE?AVQColor@@H@Z @ 8589 NONAME ; class QColor QTabBar::tabTextColor(int) const + ?findText@QComboBox@@QBEHABVQString@@V?$QFlags@W4MatchFlag@Qt@@@@@Z @ 8590 NONAME ; int QComboBox::findText(class QString const &, class QFlags) const + ?submit@QProxyModel@@UAE_NXZ @ 8591 NONAME ; bool QProxyModel::submit(void) + ?qt_metacast@QListView@@UAEPAXPBD@Z @ 8592 NONAME ; void * QListView::qt_metacast(char const *) + ?sizeHint@QWorkspace@@UBE?AVQSize@@XZ @ 8593 NONAME ; class QSize QWorkspace::sizeHint(void) const + ?setPalette@QTextControl@@QAEXABVQPalette@@@Z @ 8594 NONAME ; void QTextControl::setPalette(class QPalette const &) + ??_EQItemDelegate@@UAE@I@Z @ 8595 NONAME ; QItemDelegate::~QItemDelegate(unsigned int) + ?wheelEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneWheelEvent@@@Z @ 8596 NONAME ; void QGraphicsScene::wheelEvent(class QGraphicsSceneWheelEvent *) + ?insertTab@QTabBar@@QAEHHABVQString@@@Z @ 8597 NONAME ; int QTabBar::insertTab(int, class QString const &) + ?isResize@QWidgetResizeHandler@@ABE_NXZ @ 8598 NONAME ; bool QWidgetResizeHandler::isResize(void) const + ?setWrapping@QListView@@QAEX_N@Z @ 8599 NONAME ; void QListView::setWrapping(bool) + ??0QTextTableCellFormat@@IAE@ABVQTextFormat@@@Z @ 8600 NONAME ; QTextTableCellFormat::QTextTableCellFormat(class QTextFormat const &) + ?queueInputCapabilitiesChanged@QCoeFepInputContext@@AAEXXZ @ 8601 NONAME ; void QCoeFepInputContext::queueInputCapabilitiesChanged(void) + ??4QPixmap@@QAEAAV0@ABV0@@Z @ 8602 NONAME ; class QPixmap & QPixmap::operator=(class QPixmap const &) + ??0QTextCursor@@QAE@PAVQTextDocumentPrivate@@H@Z @ 8603 NONAME ; QTextCursor::QTextCursor(class QTextDocumentPrivate *, int) + ??0QStyleOptionRubberBand@@QAE@XZ @ 8604 NONAME ; QStyleOptionRubberBand::QStyleOptionRubberBand(void) + ?staticMetaObject@QFileSystemModel@@2UQMetaObject@@B @ 8605 NONAME ; struct QMetaObject const QFileSystemModel::staticMetaObject + ??0QStyleOptionGraphicsItem@@QAE@ABV0@@Z @ 8606 NONAME ; QStyleOptionGraphicsItem::QStyleOptionGraphicsItem(class QStyleOptionGraphicsItem const &) + ?span@QProxyModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 8607 NONAME ; class QSize QProxyModel::span(class QModelIndex const &) const + ?changeEvent@QDialogButtonBox@@MAEXPAVQEvent@@@Z @ 8608 NONAME ; void QDialogButtonBox::changeEvent(class QEvent *) + ?insertTable@QTextCursor@@QAEPAVQTextTable@@HH@Z @ 8609 NONAME ; class QTextTable * QTextCursor::insertTable(int, int) + ?dragMode@QGraphicsView@@QBE?AW4DragMode@1@XZ @ 8610 NONAME ; enum QGraphicsView::DragMode QGraphicsView::dragMode(void) const + ?setNamedColor@QColor@@QAEXABVQString@@@Z @ 8611 NONAME ; void QColor::setNamedColor(class QString const &) + ??_EQFocusEvent@@UAE@I@Z @ 8612 NONAME ; QFocusEvent::~QFocusEvent(unsigned int) + ?green@QColor@@QBEHXZ @ 8613 NONAME ; int QColor::green(void) const + ?d_func@QGraphicsAnchorLayout@@AAEPAVQGraphicsAnchorLayoutPrivate@@XZ @ 8614 NONAME ; class QGraphicsAnchorLayoutPrivate * QGraphicsAnchorLayout::d_func(void) + ?moveBy@QGraphicsItem@@QAEXMM@Z @ 8615 NONAME ; void QGraphicsItem::moveBy(float, float) + ?setModel@QTableView@@UAEXPAVQAbstractItemModel@@@Z @ 8616 NONAME ; void QTableView::setModel(class QAbstractItemModel *) + ?trUtf8@QPlainTextDocumentLayout@@SA?AVQString@@PBD0@Z @ 8617 NONAME ; class QString QPlainTextDocumentLayout::trUtf8(char const *, char const *) + ?d_func@QSyntaxHighlighter@@ABEPBVQSyntaxHighlighterPrivate@@XZ @ 8618 NONAME ; class QSyntaxHighlighterPrivate const * QSyntaxHighlighter::d_func(void) const + ?d_func@QTextObject@@ABEPBVQTextObjectPrivate@@XZ @ 8619 NONAME ; class QTextObjectPrivate const * QTextObject::d_func(void) const + ??0QPixmapData@@QAE@W4PixelType@0@H@Z @ 8620 NONAME ; QPixmapData::QPixmapData(enum QPixmapData::PixelType, int) + ??_EQSpacerItem@@UAE@I@Z @ 8621 NONAME ; QSpacerItem::~QSpacerItem(unsigned int) + ?topLevelItemCount@QTreeWidget@@QBEHXZ @ 8622 NONAME ; int QTreeWidget::topLevelItemCount(void) const + ?document@QSyntaxHighlighter@@QBEPAVQTextDocument@@XZ @ 8623 NONAME ; class QTextDocument * QSyntaxHighlighter::document(void) const + ?deselect@QLineEdit@@QAEXXZ @ 8624 NONAME ; void QLineEdit::deselect(void) + ?mask@QPixmap@@QBE?AVQBitmap@@XZ @ 8625 NONAME ; class QBitmap QPixmap::mask(void) const + ?column@QStandardItem@@QBEHXZ @ 8626 NONAME ; int QStandardItem::column(void) const + ?propertyCount@QTextFormat@@QBEHXZ @ 8627 NONAME ; int QTextFormat::propertyCount(void) const + ?removeSelectedText@QTextCursor@@QAEXXZ @ 8628 NONAME ; void QTextCursor::removeSelectedText(void) + ?findIntersections@QBezier@@SA_NABV1@0PAV?$QVector@U?$QPair@MM@@@@@Z @ 8629 NONAME ; bool QBezier::findIntersections(class QBezier const &, class QBezier const &, class QVector > *) + ?reformat@QStatusBar@@IAEXXZ @ 8630 NONAME ; void QStatusBar::reformat(void) + ?metaObject@QGraphicsEffect@@UBEPBUQMetaObject@@XZ @ 8631 NONAME ; struct QMetaObject const * QGraphicsEffect::metaObject(void) const + ?lengthProperty@QTextFormat@@QBE?AVQTextLength@@H@Z @ 8632 NONAME ; class QTextLength QTextFormat::lengthProperty(int) const + ?d_func@QTreeWidgetItemIterator@@AAEPAVQTreeWidgetItemIteratorPrivate@@XZ @ 8633 NONAME ; class QTreeWidgetItemIteratorPrivate * QTreeWidgetItemIterator::d_func(void) + ?flags@QListWidgetItem@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 8634 NONAME ; class QFlags QListWidgetItem::flags(void) const + ?getStaticMetaObject@QAbstractSlider@@SAABUQMetaObject@@XZ @ 8635 NONAME ; struct QMetaObject const & QAbstractSlider::getStaticMetaObject(void) + ??0QHelpEvent@@QAE@W4Type@QEvent@@ABVQPoint@@1@Z @ 8636 NONAME ; QHelpEvent::QHelpEvent(enum QEvent::Type, class QPoint const &, class QPoint const &) + ?map@QTransform@@QBEXHHPAH0@Z @ 8637 NONAME ; void QTransform::map(int, int, int *, int *) const + ??_EQImage@@UAE@I@Z @ 8638 NONAME ; QImage::~QImage(unsigned int) + ?currentPlatform@QApplicationPrivate@@SAIXZ @ 8639 NONAME ; unsigned int QApplicationPrivate::currentPlatform(void) + ??1QStyleOption@@QAE@XZ @ 8640 NONAME ; QStyleOption::~QStyleOption(void) + ?isComplete@QWizardPage@@UBE_NXZ @ 8641 NONAME ; bool QWizardPage::isComplete(void) const + ?tr@QWidget@@SA?AVQString@@PBD0@Z @ 8642 NONAME ; class QString QWidget::tr(char const *, char const *) + ?isDropEnabled@QStandardItem@@QBE_NXZ @ 8643 NONAME ; bool QStandardItem::isDropEnabled(void) const + ?rgb@QColor@@QBEIXZ @ 8644 NONAME ; unsigned int QColor::rgb(void) const + ?metaObject@QFontDialog@@UBEPBUQMetaObject@@XZ @ 8645 NONAME ; struct QMetaObject const * QFontDialog::metaObject(void) const + ?paintEvent@QTabBar@@MAEXPAVQPaintEvent@@@Z @ 8646 NONAME ; void QTabBar::paintEvent(class QPaintEvent *) + ??_EQInputEvent@@UAE@I@Z @ 8647 NONAME ; QInputEvent::~QInputEvent(unsigned int) + ?d_func@QMessageBox@@AAEPAVQMessageBoxPrivate@@XZ @ 8648 NONAME ; class QMessageBoxPrivate * QMessageBox::d_func(void) + ?qt_metacall@QPixmapFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8649 NONAME ; int QPixmapFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?zChanged@QGraphicsObject@@IAEXXZ @ 8650 NONAME ; void QGraphicsObject::zChanged(void) + ?setColumnWidth@QTableView@@QAEXHH@Z @ 8651 NONAME ; void QTableView::setColumnWidth(int, int) + ?setActivePanel@QGraphicsScene@@QAEXPAVQGraphicsItem@@@Z @ 8652 NONAME ; void QGraphicsScene::setActivePanel(class QGraphicsItem *) + ?trUtf8@QTableWidget@@SA?AVQString@@PBD0@Z @ 8653 NONAME ; class QString QTableWidget::trUtf8(char const *, char const *) + ?serialNumber@QPixmap@@QBEHXZ @ 8654 NONAME ; int QPixmap::serialNumber(void) const + ?leaveEvent@QMenu@@MAEXPAVQEvent@@@Z @ 8655 NONAME ; void QMenu::leaveEvent(class QEvent *) + ?resetTransform@QGraphicsItem@@QAEXXZ @ 8656 NONAME ; void QGraphicsItem::resetTransform(void) + ?setDockNestingEnabled@QMainWindow@@QAEX_N@Z @ 8657 NONAME ; void QMainWindow::setDockNestingEnabled(bool) + ?flags@QDirModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 8658 NONAME ; class QFlags QDirModel::flags(class QModelIndex const &) const + ?parent@QTreeWidgetItem@@QBEPAV1@XZ @ 8659 NONAME ; class QTreeWidgetItem * QTreeWidgetItem::parent(void) const + ?isIndexHidden@QListView@@MBE_NABVQModelIndex@@@Z @ 8660 NONAME ; bool QListView::isIndexHidden(class QModelIndex const &) const + ?imageFormat@QTextFormatCollection@@QBE?AVQTextImageFormat@@H@Z @ 8661 NONAME ; class QTextImageFormat QTextFormatCollection::imageFormat(int) const + ?actionEvent@QWidget@@MAEXPAVQActionEvent@@@Z @ 8662 NONAME ; void QWidget::actionEvent(class QActionEvent *) + ?allWidgets@QWidgetPrivate@@2PAV?$QSet@PAVQWidget@@@@A @ 8663 NONAME ; class QSet * QWidgetPrivate::allWidgets + ?backgroundBrush@QGraphicsView@@QBE?AVQBrush@@XZ @ 8664 NONAME ; class QBrush QGraphicsView::backgroundBrush(void) const + ?maximumWidth@QGraphicsLayoutItem@@QBEMXZ @ 8665 NONAME ; float QGraphicsLayoutItem::maximumWidth(void) const + ?removeSelection@QLineControl@@QAEXXZ @ 8666 NONAME ; void QLineControl::removeSelection(void) + ?d_func@QTextControl@@AAEPAVQTextControlPrivate@@XZ @ 8667 NONAME ; class QTextControlPrivate * QTextControl::d_func(void) + ?setPos@QGraphicsSceneDragDropEvent@@QAEXABVQPointF@@@Z @ 8668 NONAME ; void QGraphicsSceneDragDropEvent::setPos(class QPointF const &) + ?setPaintDevice@QAbstractTextDocumentLayout@@QAEXPAVQPaintDevice@@@Z @ 8669 NONAME ; void QAbstractTextDocumentLayout::setPaintDevice(class QPaintDevice *) + ?setEditorData@QAbstractItemDelegate@@UBEXPAVQWidget@@ABVQModelIndex@@@Z @ 8670 NONAME ; void QAbstractItemDelegate::setEditorData(class QWidget *, class QModelIndex const &) const + ?setStartScreenPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 8671 NONAME ; void QTouchEvent::TouchPoint::setStartScreenPos(class QPointF const &) + ?palette@QGraphicsScene@@QBE?AVQPalette@@XZ @ 8672 NONAME ; class QPalette QGraphicsScene::palette(void) const + ?transformationMode@QGraphicsPixmapItem@@QBE?AW4TransformationMode@Qt@@XZ @ 8673 NONAME ; enum Qt::TransformationMode QGraphicsPixmapItem::transformationMode(void) const + ?m12@QTransform@@QBEMXZ @ 8674 NONAME ; float QTransform::m12(void) const + ?drawPoints@QPainter@@QAEXPBVQPoint@@H@Z @ 8675 NONAME ; void QPainter::drawPoints(class QPoint const *, int) + ?length@QVector2D@@QBEMXZ @ 8676 NONAME ; float QVector2D::length(void) const + ?blockNumber@QTextBlock@@QBEHXZ @ 8677 NONAME ; int QTextBlock::blockNumber(void) const + ?initStyleOption@QProgressBar@@IBEXPAVQStyleOptionProgressBar@@@Z @ 8678 NONAME ; void QProgressBar::initStyleOption(class QStyleOptionProgressBar *) const + ??1QCalendarWidget@@UAE@XZ @ 8679 NONAME ; QCalendarWidget::~QCalendarWidget(void) + ?d_func@QTextList@@ABEPBVQTextListPrivate@@XZ @ 8680 NONAME ; class QTextListPrivate const * QTextList::d_func(void) const + ?selected@QItemDelegate@@IBEPAVQPixmap@@ABV2@ABVQPalette@@_N@Z @ 8681 NONAME ; class QPixmap * QItemDelegate::selected(class QPixmap const &, class QPalette const &, bool) const + ??5@YAAAVQDataStream@@AAV0@AAVQQuaternion@@@Z @ 8682 NONAME ; class QDataStream & operator>>(class QDataStream &, class QQuaternion &) + ?setTracking@QAbstractSlider@@QAEX_N@Z @ 8683 NONAME ; void QAbstractSlider::setTracking(bool) + ?activated@QCalendarWidget@@IAEXABVQDate@@@Z @ 8684 NONAME ; void QCalendarWidget::activated(class QDate const &) + ?nextImageDelay@QImageReader@@QBEHXZ @ 8685 NONAME ; int QImageReader::nextImageDelay(void) const + ?setRange@QProgressBar@@QAEXHH@Z @ 8686 NONAME ; void QProgressBar::setRange(int, int) + ?globalY@QMouseEvent@@QBEHXZ @ 8687 NONAME ; int QMouseEvent::globalY(void) const + ??1QStyleOptionTitleBar@@QAE@XZ @ 8688 NONAME ; QStyleOptionTitleBar::~QStyleOptionTitleBar(void) + ?alphaChannel@QPixmap@@QBE?AV1@XZ @ 8689 NONAME ; class QPixmap QPixmap::alphaChannel(void) const + ?cascade@QWorkspace@@QAEXXZ @ 8690 NONAME ; void QWorkspace::cascade(void) + ?sliderMoved@QAbstractSlider@@IAEXH@Z @ 8691 NONAME ; void QAbstractSlider::sliderMoved(int) + ?d_func@QTextBrowser@@AAEPAVQTextBrowserPrivate@@XZ @ 8692 NONAME ; class QTextBrowserPrivate * QTextBrowser::d_func(void) + ?notify@QApplication@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 8693 NONAME ; bool QApplication::notify(class QObject *, class QEvent *) + ?setSpacing@QGridLayout@@QAEXH@Z @ 8694 NONAME ; void QGridLayout::setSpacing(int) + ??1QGraphicsItemAnimation@@UAE@XZ @ 8695 NONAME ; QGraphicsItemAnimation::~QGraphicsItemAnimation(void) + ??Eiterator@QTextFrame@@QAEAAV01@XZ @ 8696 NONAME ; class QTextFrame::iterator & QTextFrame::iterator::operator++(void) + ?isValid@QTextTableCellFormat@@QBE_NXZ @ 8697 NONAME ; bool QTextTableCellFormat::isValid(void) const + ?d_func@QGraphicsItem@@AAEPAVQGraphicsItemPrivate@@XZ @ 8698 NONAME ; class QGraphicsItemPrivate * QGraphicsItem::d_func(void) + ??0QFont@@QAE@ABVQString@@HH_N@Z @ 8699 NONAME ; QFont::QFont(class QString const &, int, int, bool) + ?inputMethodEvent@QGraphicsItem@@MAEXPAVQInputMethodEvent@@@Z @ 8700 NONAME ; void QGraphicsItem::inputMethodEvent(class QInputMethodEvent *) + ?setScale@QGraphicsItem@@QAEXM@Z @ 8701 NONAME ; void QGraphicsItem::setScale(float) + ?setCurrentRow@QListWidget@@QAEXH@Z @ 8702 NONAME ; void QListWidget::setCurrentRow(int) + ??1QStyleOptionViewItem@@QAE@XZ @ 8703 NONAME ; QStyleOptionViewItem::~QStyleOptionViewItem(void) + ??0QStyleOptionDockWidget@@IAE@H@Z @ 8704 NONAME ; QStyleOptionDockWidget::QStyleOptionDockWidget(int) + ?properties@QTextFormat@@QBE?AV?$QMap@HVQVariant@@@@XZ @ 8705 NONAME ; class QMap QTextFormat::properties(void) const + ?getUnscaledGlyph@QFontEngine@@UAEXIPAVQPainterPath@@PAUglyph_metrics_t@@@Z @ 8706 NONAME ; void QFontEngine::getUnscaledGlyph(unsigned int, class QPainterPath *, struct glyph_metrics_t *) + ?drawImage@QPainter@@QAEXABVQRect@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 8707 NONAME ; void QPainter::drawImage(class QRect const &, class QImage const &, class QRect const &, class QFlags) + ?isAvailable@QSound@@SA_NXZ @ 8708 NONAME ; bool QSound::isAvailable(void) + ?parentFrame@QTextFrame@@QBEPAV1@XZ @ 8709 NONAME ; class QTextFrame * QTextFrame::parentFrame(void) const + ??0QStyleOptionGraphicsItem@@QAE@XZ @ 8710 NONAME ; QStyleOptionGraphicsItem::QStyleOptionGraphicsItem(void) + ?setToolTip@QStandardItem@@QAEXABVQString@@@Z @ 8711 NONAME ; void QStandardItem::setToolTip(class QString const &) + ??MQTextCursor@@QBE_NABV0@@Z @ 8712 NONAME ; bool QTextCursor::operator<(class QTextCursor const &) const + ?setBackgroundColor@QMovie@@QAEXABVQColor@@@Z @ 8713 NONAME ; void QMovie::setBackgroundColor(class QColor const &) + ??_EQAbstractProxyModel@@UAE@I@Z @ 8714 NONAME ; QAbstractProxyModel::~QAbstractProxyModel(unsigned int) + ?setItemHidden@QListWidget@@QAEXPBVQListWidgetItem@@_N@Z @ 8715 NONAME ; void QListWidget::setItemHidden(class QListWidgetItem const *, bool) + ?pixmap@QLabel@@QBEPBVQPixmap@@XZ @ 8716 NONAME ; class QPixmap const * QLabel::pixmap(void) const + ?frameShape@QFrame@@QBE?AW4Shape@1@XZ @ 8717 NONAME ; enum QFrame::Shape QFrame::frameShape(void) const + ??_EQGraphicsItem@@UAE@I@Z @ 8718 NONAME ; QGraphicsItem::~QGraphicsItem(unsigned int) + ??0QGraphicsDropShadowEffect@@QAE@PAVQObject@@@Z @ 8719 NONAME ; QGraphicsDropShadowEffect::QGraphicsDropShadowEffect(class QObject *) + ?value@QProgressBar@@QBEHXZ @ 8720 NONAME ; int QProgressBar::value(void) const + ?w@QVector4D@@QBEMXZ @ 8721 NONAME ; float QVector4D::w(void) const + ?tr@QCompleter@@SA?AVQString@@PBD0@Z @ 8722 NONAME ; class QString QCompleter::tr(char const *, char const *) + ??_EQGraphicsPolygonItem@@UAE@I@Z @ 8723 NONAME ; QGraphicsPolygonItem::~QGraphicsPolygonItem(unsigned int) + ?rect@QGraphicsWidget@@QBE?AVQRectF@@XZ @ 8724 NONAME ; class QRectF QGraphicsWidget::rect(void) const + ?mouseMoveEvent@QSizeGrip@@MAEXPAVQMouseEvent@@@Z @ 8725 NONAME ; void QSizeGrip::mouseMoveEvent(class QMouseEvent *) + ?translateRawTouchEvent@QApplicationPrivate@@SAXPAVQWidget@@W4DeviceType@QTouchEvent@@ABV?$QList@VTouchPoint@QTouchEvent@@@@@Z @ 8726 NONAME ; void QApplicationPrivate::translateRawTouchEvent(class QWidget *, enum QTouchEvent::DeviceType, class QList const &) + ?testMedia@Parser@QCss@@QAE_NXZ @ 8727 NONAME ; bool QCss::Parser::testMedia(void) + ?closeEditor@QAbstractItemDelegate@@IAEXPAVQWidget@@W4EndEditHint@1@@Z @ 8728 NONAME ; void QAbstractItemDelegate::closeEditor(class QWidget *, enum QAbstractItemDelegate::EndEditHint) + ?paintEvent@QWizard@@MAEXPAVQPaintEvent@@@Z @ 8729 NONAME ; void QWizard::paintEvent(class QPaintEvent *) + ?minRightBearing@QFontMetricsF@@QBEMXZ @ 8730 NONAME ; float QFontMetricsF::minRightBearing(void) const + ??1QShortcutEvent@@UAE@XZ @ 8731 NONAME ; QShortcutEvent::~QShortcutEvent(void) + ?compositionMode@QPaintEngineState@@QBE?AW4CompositionMode@QPainter@@XZ @ 8732 NONAME ; enum QPainter::CompositionMode QPaintEngineState::compositionMode(void) const + ?fileName@QImageWriter@@QBE?AVQString@@XZ @ 8733 NONAME ; class QString QImageWriter::fileName(void) const + ?tabPosition@QMainWindow@@QBE?AW4TabPosition@QTabWidget@@W4DockWidgetArea@Qt@@@Z @ 8734 NONAME ; enum QTabWidget::TabPosition QMainWindow::tabPosition(enum Qt::DockWidgetArea) const + ?setIcon@QListWidgetItem@@QAEXABVQIcon@@@Z @ 8735 NONAME ; void QListWidgetItem::setIcon(class QIcon const &) + ?toAffine@QTransform@@QBEABVQMatrix@@XZ @ 8736 NONAME ; class QMatrix const & QTransform::toAffine(void) const + ?scrollTo@QColumnView@@UAEXABVQModelIndex@@W4ScrollHint@QAbstractItemView@@@Z @ 8737 NONAME ; void QColumnView::scrollTo(class QModelIndex const &, enum QAbstractItemView::ScrollHint) + ?trUtf8@QMenu@@SA?AVQString@@PBD0H@Z @ 8738 NONAME ; class QString QMenu::trUtf8(char const *, char const *, int) + ?bold@QFontInfo@@QBE_NXZ @ 8739 NONAME ; bool QFontInfo::bold(void) const + ?pos@QGraphicsSceneWheelEvent@@QBE?AVQPointF@@XZ @ 8740 NONAME ; class QPointF QGraphicsSceneWheelEvent::pos(void) const + ?setHeightForWidth@QSizePolicy@@QAEX_N@Z @ 8741 NONAME ; void QSizePolicy::setHeightForWidth(bool) + ??6@YA?AVQDebug@@V0@ABVQVector3D@@@Z @ 8742 NONAME ; class QDebug operator<<(class QDebug, class QVector3D const &) + ?setGeometry@QGraphicsGridLayout@@UAEXABVQRectF@@@Z @ 8743 NONAME ; void QGraphicsGridLayout::setGeometry(class QRectF const &) + ?metaObject@QWindowsStyle@@UBEPBUQMetaObject@@XZ @ 8744 NONAME ; struct QMetaObject const * QWindowsStyle::metaObject(void) const + ?setState@QPaintEngineEx@@UAEXPAVQPainterState@@@Z @ 8745 NONAME ; void QPaintEngineEx::setState(class QPainterState *) + ?setAllColumnsShowFocus@QTreeView@@QAEX_N@Z @ 8746 NONAME ; void QTreeView::setAllColumnsShowFocus(bool) + ??BQBrush@@QBE?AVQVariant@@XZ @ 8747 NONAME ; QBrush::operator class QVariant(void) const + ?whatsThis@QWidget@@QBE?AVQString@@XZ @ 8748 NONAME ; class QString QWidget::whatsThis(void) const + ?reset@QTreeView@@UAEXXZ @ 8749 NONAME ; void QTreeView::reset(void) + ??1QStyleOptionSizeGrip@@QAE@XZ @ 8750 NONAME ; QStyleOptionSizeGrip::~QStyleOptionSizeGrip(void) + ?rects@QRegion@@QBE?AV?$QVector@VQRect@@@@XZ @ 8751 NONAME ; class QVector QRegion::rects(void) const + ?standardFormat@QInputContext@@QBE?AVQTextFormat@@W4StandardFormat@1@@Z @ 8752 NONAME ; class QTextFormat QInputContext::standardFormat(enum QInputContext::StandardFormat) const + ??_EQStandardItemModel@@UAE@I@Z @ 8753 NONAME ; QStandardItemModel::~QStandardItemModel(unsigned int) + ?d_func@QPainterPathStroker@@AAEPAVQPainterPathStrokerPrivate@@XZ @ 8754 NONAME ; class QPainterPathStrokerPrivate * QPainterPathStroker::d_func(void) + ?trUtf8@QGraphicsPixelizeEffect@@SA?AVQString@@PBD0H@Z @ 8755 NONAME ; class QString QGraphicsPixelizeEffect::trUtf8(char const *, char const *, int) + ?takeLayout@QWidget@@AAEPAVQLayout@@XZ @ 8756 NONAME ; class QLayout * QWidget::takeLayout(void) + ?offset@QPanGesture@@QBE?AVQPointF@@XZ @ 8757 NONAME ; class QPointF QPanGesture::offset(void) const + ?tightBoundingRect@QFontMetrics@@QBE?AVQRect@@ABVQString@@@Z @ 8758 NONAME ; class QRect QFontMetrics::tightBoundingRect(class QString const &) const + ??ZQTransform@@QAEAAV0@M@Z @ 8759 NONAME ; class QTransform & QTransform::operator-=(float) + ?setScaledClipRect@QImageReader@@QAEXABVQRect@@@Z @ 8760 NONAME ; void QImageReader::setScaledClipRect(class QRect const &) + ?columns@QTextTable@@QBEHXZ @ 8761 NONAME ; int QTextTable::columns(void) const + ?adjustSize@QTextControl@@QAEXXZ @ 8762 NONAME ; void QTextControl::adjustSize(void) + ?dashPattern@QDashStroker@@QBE?AV?$QVector@M@@XZ @ 8763 NONAME ; class QVector QDashStroker::dashPattern(void) const + ?setSystemPalette@QApplicationPrivate@@SAXABVQPalette@@@Z @ 8764 NONAME ; void QApplicationPrivate::setSystemPalette(class QPalette const &) + ?drawText@QPainter@@QAEXABVQPoint@@ABVQString@@@Z @ 8765 NONAME ; void QPainter::drawText(class QPoint const &, class QString const &) + ?shapeTextWithHarfbuzz@QTextEngine@@ABEXH@Z @ 8766 NONAME ; void QTextEngine::shapeTextWithHarfbuzz(int) const + ?drawPolygon@QPaintEngine@@UAEXPBVQPointF@@HW4PolygonDrawMode@1@@Z @ 8767 NONAME ; void QPaintEngine::drawPolygon(class QPointF const *, int, enum QPaintEngine::PolygonDrawMode) + ??0QWizard@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 8768 NONAME ; QWizard::QWizard(class QWidget *, class QFlags) + ?setFocusProxy@QWidget@@QAEXPAV1@@Z @ 8769 NONAME ; void QWidget::setFocusProxy(class QWidget *) + ?resolve@QFontPrivate@@QAEXIPBV1@@Z @ 8770 NONAME ; void QFontPrivate::resolve(unsigned int, class QFontPrivate const *) + ?stateChanged@QCheckBox@@IAEXH@Z @ 8771 NONAME ; void QCheckBox::stateChanged(int) + ?width@QGraphicsScene@@QBEMXZ @ 8772 NONAME ; float QGraphicsScene::width(void) const + ?showSystemMenu@QMdiSubWindow@@QAEXXZ @ 8773 NONAME ; void QMdiSubWindow::showSystemMenu(void) + ?showMessage@QErrorMessage@@QAEXABVQString@@0@Z @ 8774 NONAME ; void QErrorMessage::showMessage(class QString const &, class QString const &) + ?d_func@QPushButton@@AAEPAVQPushButtonPrivate@@XZ @ 8775 NONAME ; class QPushButtonPrivate * QPushButton::d_func(void) + ?releaseShortcut@QWidget@@QAEXH@Z @ 8776 NONAME ; void QWidget::releaseShortcut(int) + ?texture@QBrush@@QBE?AVQPixmap@@XZ @ 8777 NONAME ; class QPixmap QBrush::texture(void) const + ?moveCursor@QPlainTextEdit@@QAEXW4MoveOperation@QTextCursor@@W4MoveMode@3@@Z @ 8778 NONAME ; void QPlainTextEdit::moveCursor(enum QTextCursor::MoveOperation, enum QTextCursor::MoveMode) + ?setNumColors@QImage@@QAEXH@Z @ 8779 NONAME ; void QImage::setNumColors(int) + ?supportsOption@QImageReader@@QBE_NW4ImageOption@QImageIOHandler@@@Z @ 8780 NONAME ; bool QImageReader::supportsOption(enum QImageIOHandler::ImageOption) const + ?drawTiledPixmap@QPainter@@QAEXHHHHABVQPixmap@@HH@Z @ 8781 NONAME ; void QPainter::drawTiledPixmap(int, int, int, int, class QPixmap const &, int, int) + ?horizontalScaleAt@QGraphicsItemAnimation@@QBEMM@Z @ 8782 NONAME ; float QGraphicsItemAnimation::horizontalScaleAt(float) const + ?width@QTextFrameFormat@@QBE?AVQTextLength@@XZ @ 8783 NONAME ; class QTextLength QTextFrameFormat::width(void) const + ?d_func@QGraphicsWidget@@AAEPAVQGraphicsWidgetPrivate@@XZ @ 8784 NONAME ; class QGraphicsWidgetPrivate * QGraphicsWidget::d_func(void) + ?addActions@QWidget@@QAEXV?$QList@PAVQAction@@@@@Z @ 8785 NONAME ; void QWidget::addActions(class QList) + ?setFocusWidget@QApplicationPrivate@@SAXPAVQWidget@@W4FocusReason@Qt@@@Z @ 8786 NONAME ; void QApplicationPrivate::setFocusWidget(class QWidget *, enum Qt::FocusReason) + ??0QVector3D@@QAE@ABVQVector4D@@@Z @ 8787 NONAME ; QVector3D::QVector3D(class QVector4D const &) + ?clearBackground@QTextFormat@@QAEXXZ @ 8788 NONAME ; void QTextFormat::clearBackground(void) + ?keyPressEvent@QGraphicsScene@@MAEXPAVQKeyEvent@@@Z @ 8789 NONAME ; void QGraphicsScene::keyPressEvent(class QKeyEvent *) + ?setTitle@QMenu@@QAEXABVQString@@@Z @ 8790 NONAME ; void QMenu::setTitle(class QString const &) + ?font@QApplication@@SA?AVQFont@@PBD@Z @ 8791 NONAME ; class QFont QApplication::font(char const *) + ?ignore@QDragMoveEvent@@QAEXABVQRect@@@Z @ 8792 NONAME ; void QDragMoveEvent::ignore(class QRect const &) + ?itemChange@QGraphicsProxyWidget@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 8793 NONAME ; class QVariant QGraphicsProxyWidget::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ?lower@QWidget@@QAEXXZ @ 8794 NONAME ; void QWidget::lower(void) + ?trUtf8@QMenu@@SA?AVQString@@PBD0@Z @ 8795 NONAME ; class QString QMenu::trUtf8(char const *, char const *) + ?serialNumber@QPalette@@QBEHXZ @ 8796 NONAME ; int QPalette::serialNumber(void) const + ?d_func@QFileDialog@@AAEPAVQFileDialogPrivate@@XZ @ 8797 NONAME ; class QFileDialogPrivate * QFileDialog::d_func(void) + ??_EQDashStroker@@UAE@I@Z @ 8798 NONAME ; QDashStroker::~QDashStroker(unsigned int) + ?extractTranslation@QMatrix4x4@@QBE?AVQVector3D@@XZ @ 8799 NONAME ; class QVector3D QMatrix4x4::extractTranslation(void) const + ?trUtf8@QGraphicsDropShadowEffect@@SA?AVQString@@PBD0@Z @ 8800 NONAME ; class QString QGraphicsDropShadowEffect::trUtf8(char const *, char const *) + ?orientation@QGraphicsSceneWheelEvent@@QBE?AW4Orientation@Qt@@XZ @ 8801 NONAME ; enum Qt::Orientation QGraphicsSceneWheelEvent::orientation(void) const + ?dataChanged@QListView@@MAEXABVQModelIndex@@0@Z @ 8802 NONAME ; void QListView::dataChanged(class QModelIndex const &, class QModelIndex const &) + ?minimumSize@QDockWidgetLayout@@UBE?AVQSize@@XZ @ 8803 NONAME ; class QSize QDockWidgetLayout::minimumSize(void) const + ?invalidateBuffer@QWidgetPrivate@@QAEXABVQRect@@@Z @ 8804 NONAME ; void QWidgetPrivate::invalidateBuffer(class QRect const &) + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@HH@Z @ 8805 NONAME ; class QList QGraphicsView::items(int, int) const + ?mapFromWS@QWidgetPrivate@@QBE?AVQPoint@@ABV2@@Z @ 8806 NONAME ; class QPoint QWidgetPrivate::mapFromWS(class QPoint const &) const + ??_EQColumnView@@UAE@I@Z @ 8807 NONAME ; QColumnView::~QColumnView(unsigned int) + ?trUtf8@QInputDialog@@SA?AVQString@@PBD0H@Z @ 8808 NONAME ; class QString QInputDialog::trUtf8(char const *, char const *, int) + ?valueChanged@QSpinBox@@IAEXABVQString@@@Z @ 8809 NONAME ; void QSpinBox::valueChanged(class QString const &) + ?resizeMode@QHeaderView@@QBE?AW4ResizeMode@1@H@Z @ 8810 NONAME ; enum QHeaderView::ResizeMode QHeaderView::resizeMode(int) const + ?tr@QSortFilterProxyModel@@SA?AVQString@@PBD0H@Z @ 8811 NONAME ; class QString QSortFilterProxyModel::tr(char const *, char const *, int) + ?trUtf8@QSpinBox@@SA?AVQString@@PBD0H@Z @ 8812 NONAME ; class QString QSpinBox::trUtf8(char const *, char const *, int) + ?startNormalizedPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 8813 NONAME ; class QPointF QTouchEvent::TouchPoint::startNormalizedPos(void) const + ?addItem@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 8814 NONAME ; void QListWidget::addItem(class QListWidgetItem *) + ??8QTextFormat@@QBE_NABV0@@Z @ 8815 NONAME ; bool QTextFormat::operator==(class QTextFormat const &) const + ?trUtf8@QAction@@SA?AVQString@@PBD0@Z @ 8816 NONAME ; class QString QAction::trUtf8(char const *, char const *) + ?xToPos@QLineControl@@QBEHHW4CursorPosition@QTextLine@@@Z @ 8817 NONAME ; int QLineControl::xToPos(int, enum QTextLine::CursorPosition) const + ?sizeHint@QGridLayout@@UBE?AVQSize@@XZ @ 8818 NONAME ; class QSize QGridLayout::sizeHint(void) const + ?setMinimumDuration@QProgressDialog@@QAEXH@Z @ 8819 NONAME ; void QProgressDialog::setMinimumDuration(int) + ?graphicsItem@QGraphicsLayoutItem@@QBEPAVQGraphicsItem@@XZ @ 8820 NONAME ; class QGraphicsItem * QGraphicsLayoutItem::graphicsItem(void) const + ?set_font@QApplicationPrivate@@2PAVQFont@@A @ 8821 NONAME ; class QFont * QApplicationPrivate::set_font + ?hasAcceptableInput@QLineControl@@QBE_NXZ @ 8822 NONAME ; bool QLineControl::hasAcceptableInput(void) const + ?keys@QStyleFactory@@SA?AVQStringList@@XZ @ 8823 NONAME ; class QStringList QStyleFactory::keys(void) + ?d_func@QShortcut@@AAEPAVQShortcutPrivate@@XZ @ 8824 NONAME ; class QShortcutPrivate * QShortcut::d_func(void) + ??_EQInputContext@@UAE@I@Z @ 8825 NONAME ; QInputContext::~QInputContext(unsigned int) + ?setActiveAction@QMenuBar@@QAEXPAVQAction@@@Z @ 8826 NONAME ; void QMenuBar::setActiveAction(class QAction *) + ??0QTableView@@QAE@PAVQWidget@@@Z @ 8827 NONAME ; QTableView::QTableView(class QWidget *) + ?alignment@QLayoutItem@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 8828 NONAME ; class QFlags QLayoutItem::alignment(void) const + ?setButton@QGraphicsSceneMouseEvent@@QAEXW4MouseButton@Qt@@@Z @ 8829 NONAME ; void QGraphicsSceneMouseEvent::setButton(enum Qt::MouseButton) + ?anchorAt@QAbstractTextDocumentLayout@@QBE?AVQString@@ABVQPointF@@@Z @ 8830 NONAME ; class QString QAbstractTextDocumentLayout::anchorAt(class QPointF const &) const + ?isExtended@QPaintEngine@@QBE_NXZ @ 8831 NONAME ; bool QPaintEngine::isExtended(void) const + ?setInputMask@QLineEdit@@QAEXABVQString@@@Z @ 8832 NONAME ; void QLineEdit::setInputMask(class QString const &) + ?toFirst@QDataWidgetMapper@@QAEXXZ @ 8833 NONAME ; void QDataWidgetMapper::toFirst(void) + ?setSizeHint@QListWidgetItem@@QAEXABVQSize@@@Z @ 8834 NONAME ; void QListWidgetItem::setSizeHint(class QSize const &) + ?setRootIndex@QTableView@@UAEXABVQModelIndex@@@Z @ 8835 NONAME ; void QTableView::setRootIndex(class QModelIndex const &) + ??BQPolygon@@QBE?AVQVariant@@XZ @ 8836 NONAME ; QPolygon::operator class QVariant(void) const + ??0QStyleOptionGroupBox@@QAE@XZ @ 8837 NONAME ; QStyleOptionGroupBox::QStyleOptionGroupBox(void) + ?drawContents@QTextDocument@@QAEXPAVQPainter@@ABVQRectF@@@Z @ 8838 NONAME ; void QTextDocument::drawContents(class QPainter *, class QRectF const &) + ?setDocumentTitle@QPlainTextEdit@@QAEXABVQString@@@Z @ 8839 NONAME ; void QPlainTextEdit::setDocumentTitle(class QString const &) + ?visualIndexAt@QHeaderView@@QBEHH@Z @ 8840 NONAME ; int QHeaderView::visualIndexAt(int) const + ?metaObject@QAbstractTextDocumentLayout@@UBEPBUQMetaObject@@XZ @ 8841 NONAME ; struct QMetaObject const * QAbstractTextDocumentLayout::metaObject(void) const + ?addApplicationFontFromData@QFontDatabase@@SAHABVQByteArray@@@Z @ 8842 NONAME ; int QFontDatabase::addApplicationFontFromData(class QByteArray const &) + ?qt_metacall@QIconEnginePluginV2@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8843 NONAME ; int QIconEnginePluginV2::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setMenu@QPushButton@@QAEXPAVQMenu@@@Z @ 8844 NONAME ; void QPushButton::setMenu(class QMenu *) + ?escape@Qt@@YA?AVQString@@ABV2@@Z @ 8845 NONAME ; class QString Qt::escape(class QString const &) + ?lineWidth@QFrame@@QBEHXZ @ 8846 NONAME ; int QFrame::lineWidth(void) const + ?addItem@QFormLayout@@UAEXPAVQLayoutItem@@@Z @ 8847 NONAME ; void QFormLayout::addItem(class QLayoutItem *) + ?frameGeometry@QWidget@@QBE?AVQRect@@XZ @ 8848 NONAME ; class QRect QWidget::frameGeometry(void) const + ?qt_metacast@QDateTimeEdit@@UAEPAXPBD@Z @ 8849 NONAME ; void * QDateTimeEdit::qt_metacast(char const *) + ??0QGridLayout@@QAE@PAVQWidget@@@Z @ 8850 NONAME ; QGridLayout::QGridLayout(class QWidget *) + ?showPopup@QComboBox@@UAEXXZ @ 8851 NONAME ; void QComboBox::showPopup(void) + ?addMapping@QDataWidgetMapper@@QAEXPAVQWidget@@H@Z @ 8852 NONAME ; void QDataWidgetMapper::addMapping(class QWidget *, int) + ?scaleChanged@QGraphicsScale@@IAEXXZ @ 8853 NONAME ; void QGraphicsScale::scaleChanged(void) + ?setZ@QVector4D@@QAEXM@Z @ 8854 NONAME ; void QVector4D::setZ(float) + ?setOpaqueResize@QSplitter@@QAEX_N@Z @ 8855 NONAME ; void QSplitter::setOpaqueResize(bool) + ?xored@QRegion@@QBE?AV1@ABV1@@Z @ 8856 NONAME ; class QRegion QRegion::xored(class QRegion const &) const + ?loopCount@QMovie@@QBEHXZ @ 8857 NONAME ; int QMovie::loopCount(void) const + ?validator@QLineControl@@QBEPBVQValidator@@XZ @ 8858 NONAME ; class QValidator const * QLineControl::validator(void) const + ?remapItemPos@QGraphicsItemPrivate@@QAEXPAVQEvent@@PAVQGraphicsItem@@@Z @ 8859 NONAME ; void QGraphicsItemPrivate::remapItemPos(class QEvent *, class QGraphicsItem *) + ?moveCursor@QLineControl@@QAEXH_N@Z @ 8860 NONAME ; void QLineControl::moveCursor(int, bool) + ?count@QGraphicsAnchorLayout@@UBEHXZ @ 8861 NONAME ; int QGraphicsAnchorLayout::count(void) const + ?contains@QGraphicsTextItem@@UBE_NABVQPointF@@@Z @ 8862 NONAME ; bool QGraphicsTextItem::contains(class QPointF const &) const + ?textInteractionFlags@QTextControl@@QBE?AV?$QFlags@W4TextInteractionFlag@Qt@@@@XZ @ 8863 NONAME ; class QFlags QTextControl::textInteractionFlags(void) const + ??0QStroker@@QAE@XZ @ 8864 NONAME ; QStroker::QStroker(void) + ?resetTransform@QGraphicsView@@QAEXXZ @ 8865 NONAME ; void QGraphicsView::resetTransform(void) + ??1QAbstractItemDelegate@@UAE@XZ @ 8866 NONAME ; QAbstractItemDelegate::~QAbstractItemDelegate(void) + ?setCurrentModelIndex@QDataWidgetMapper@@QAEXABVQModelIndex@@@Z @ 8867 NONAME ; void QDataWidgetMapper::setCurrentModelIndex(class QModelIndex const &) + ??0QCompleter@@QAE@ABVQStringList@@PAVQObject@@@Z @ 8868 NONAME ; QCompleter::QCompleter(class QStringList const &, class QObject *) + ?d_func@QProxyModel@@ABEPBVQProxyModelPrivate@@XZ @ 8869 NONAME ; class QProxyModelPrivate const * QProxyModel::d_func(void) const + ?isWindow@QWidget@@QBE_NXZ @ 8870 NONAME ; bool QWidget::isWindow(void) const + ??0QSound@@QAE@ABVQString@@PAVQObject@@@Z @ 8871 NONAME ; QSound::QSound(class QString const &, class QObject *) + ?accept@QDragMoveEvent@@QAEXXZ @ 8872 NONAME ; void QDragMoveEvent::accept(void) + ?qt_metacast@QPixmapConvolutionFilter@@UAEPAXPBD@Z @ 8873 NONAME ; void * QPixmapConvolutionFilter::qt_metacast(char const *) + ?tr@QLabel@@SA?AVQString@@PBD0H@Z @ 8874 NONAME ; class QString QLabel::tr(char const *, char const *, int) + ?takeItem@QStandardItemModel@@QAEPAVQStandardItem@@HH@Z @ 8875 NONAME ; class QStandardItem * QStandardItemModel::takeItem(int, int) + ?scaleChanged@QGraphicsObject@@IAEXXZ @ 8876 NONAME ; void QGraphicsObject::scaleChanged(void) + ?paintWindowFrame@QGraphicsWidget@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 8877 NONAME ; void QGraphicsWidget::paintWindowFrame(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?yScale@QGraphicsScale@@QBEMXZ @ 8878 NONAME ; float QGraphicsScale::yScale(void) const + ?tabInserted@QTabWidget@@MAEXH@Z @ 8879 NONAME ; void QTabWidget::tabInserted(int) + ?init@QPictureIO@@AAEXXZ @ 8880 NONAME ; void QPictureIO::init(void) + ?lineWrapColumnOrWidth@QTextEdit@@QBEHXZ @ 8881 NONAME ; int QTextEdit::lineWrapColumnOrWidth(void) const + ?matches@QKeySequence@@QBE?AW4SequenceMatch@1@ABV1@@Z @ 8882 NONAME ; enum QKeySequence::SequenceMatch QKeySequence::matches(class QKeySequence const &) const + ??1QColormap@@QAE@XZ @ 8883 NONAME ; QColormap::~QColormap(void) + ?text@QListWidgetItem@@QBE?AVQString@@XZ @ 8884 NONAME ; class QString QListWidgetItem::text(void) const + ??1QGradient@@QAE@XZ @ 8885 NONAME ; QGradient::~QGradient(void) + ??0QTreeWidget@@QAE@PAVQWidget@@@Z @ 8886 NONAME ; QTreeWidget::QTreeWidget(class QWidget *) + ??0QImageReader@@QAE@ABVQString@@ABVQByteArray@@@Z @ 8887 NONAME ; QImageReader::QImageReader(class QString const &, class QByteArray const &) + ?d_func@QSplashScreen@@ABEPBVQSplashScreenPrivate@@XZ @ 8888 NONAME ; class QSplashScreenPrivate const * QSplashScreen::d_func(void) const + ?buttonRole@QDialogButtonBox@@QBE?AW4ButtonRole@1@PAVQAbstractButton@@@Z @ 8889 NONAME ; enum QDialogButtonBox::ButtonRole QDialogButtonBox::buttonRole(class QAbstractButton *) const + ?tr@QValidator@@SA?AVQString@@PBD0H@Z @ 8890 NONAME ; class QString QValidator::tr(char const *, char const *, int) + ?subFocusItemChange@QGraphicsItemPrivate@@UAEXXZ @ 8891 NONAME ; void QGraphicsItemPrivate::subFocusItemChange(void) + ??0QGraphicsLinearLayout@@QAE@W4Orientation@Qt@@PAVQGraphicsLayoutItem@@@Z @ 8892 NONAME ; QGraphicsLinearLayout::QGraphicsLinearLayout(enum Qt::Orientation, class QGraphicsLayoutItem *) + ?isEmpty@QPaintBuffer@@QBE_NXZ @ 8893 NONAME ; bool QPaintBuffer::isEmpty(void) const + ?ownerDestroyed@QClipboard@@AAEXXZ @ 8894 NONAME ; void QClipboard::ownerDestroyed(void) + ?pixmap@QCursor@@QBE?AVQPixmap@@XZ @ 8895 NONAME ; class QPixmap QCursor::pixmap(void) const + ?type@QTextLength@@QBE?AW4Type@1@XZ @ 8896 NONAME ; enum QTextLength::Type QTextLength::type(void) const + ?trUtf8@QCommandLinkButton@@SA?AVQString@@PBD0@Z @ 8897 NONAME ; class QString QCommandLinkButton::trUtf8(char const *, char const *) + ?insertionOrder@QGraphicsItemPrivate@@SA_NPAVQGraphicsItem@@0@Z @ 8898 NONAME ; bool QGraphicsItemPrivate::insertionOrder(class QGraphicsItem *, class QGraphicsItem *) + ?setTextAlignment@QListWidgetItem@@QAEXH@Z @ 8899 NONAME ; void QListWidgetItem::setTextAlignment(int) + ??_EQRasterWindowSurface@@UAE@I@Z @ 8900 NONAME ; QRasterWindowSurface::~QRasterWindowSurface(unsigned int) + ?drawRects@QPaintEngineEx@@UAEXPBVQRect@@H@Z @ 8901 NONAME ; void QPaintEngineEx::drawRects(class QRect const *, int) + ?enforceNativeChildren@QWidgetPrivate@@QAEXXZ @ 8902 NONAME ; void QWidgetPrivate::enforceNativeChildren(void) + ??1QGraphicsColorizeEffect@@UAE@XZ @ 8903 NONAME ; QGraphicsColorizeEffect::~QGraphicsColorizeEffect(void) + ?staticMetaObject@QScrollArea@@2UQMetaObject@@B @ 8904 NONAME ; struct QMetaObject const QScrollArea::staticMetaObject + ?activatePreviousSubWindow@QMdiArea@@QAEXXZ @ 8905 NONAME ; void QMdiArea::activatePreviousSubWindow(void) + ?tr@QTextObject@@SA?AVQString@@PBD0H@Z @ 8906 NONAME ; class QString QTextObject::tr(char const *, char const *, int) + ??0QMouseEvent@@QAE@W4Type@QEvent@@ABVQPoint@@1W4MouseButton@Qt@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 8907 NONAME ; QMouseEvent::QMouseEvent(enum QEvent::Type, class QPoint const &, class QPoint const &, enum Qt::MouseButton, class QFlags, class QFlags) + ?setBrushOrigin@QPainter@@QAEXHH@Z @ 8908 NONAME ; void QPainter::setBrushOrigin(int, int) + ?boundingRegion@QGraphicsItem@@QBE?AVQRegion@@ABVQTransform@@@Z @ 8909 NONAME ; class QRegion QGraphicsItem::boundingRegion(class QTransform const &) const + ?indexWidget@QAbstractItemView@@QBEPAVQWidget@@ABVQModelIndex@@@Z @ 8910 NONAME ; class QWidget * QAbstractItemView::indexWidget(class QModelIndex const &) const + ?setMaximumDate@QDateTimeEdit@@QAEXABVQDate@@@Z @ 8911 NONAME ; void QDateTimeEdit::setMaximumDate(class QDate const &) + ?cacheKey@QPixmap@@QBE_JXZ @ 8912 NONAME ; long long QPixmap::cacheKey(void) const + ?trUtf8@QGraphicsDropShadowEffect@@SA?AVQString@@PBD0H@Z @ 8913 NONAME ; class QString QGraphicsDropShadowEffect::trUtf8(char const *, char const *, int) + ??0QGraphicsScale@@QAE@PAVQObject@@@Z @ 8914 NONAME ; QGraphicsScale::QGraphicsScale(class QObject *) + ?setExclusive@QButtonGroup@@QAEX_N@Z @ 8915 NONAME ; void QButtonGroup::setExclusive(bool) + ?offset@QWindowSurface@@UBE?AVQPoint@@PBVQWidget@@@Z @ 8916 NONAME ; class QPoint QWindowSurface::offset(class QWidget const *) const + ?d_func@QFileIconProvider@@ABEPBVQFileIconProviderPrivate@@XZ @ 8917 NONAME ; class QFileIconProviderPrivate const * QFileIconProvider::d_func(void) const + ??0QDateTimeEdit@@QAE@ABVQDateTime@@PAVQWidget@@@Z @ 8918 NONAME ; QDateTimeEdit::QDateTimeEdit(class QDateTime const &, class QWidget *) + ?d_func@QGraphicsGrayscaleEffect@@ABEPBVQGraphicsGrayscaleEffectPrivate@@XZ @ 8919 NONAME ; class QGraphicsGrayscaleEffectPrivate const * QGraphicsGrayscaleEffect::d_func(void) const + ?testOption@QColorDialog@@QBE_NW4ColorDialogOption@1@@Z @ 8920 NONAME ; bool QColorDialog::testOption(enum QColorDialog::ColorDialogOption) const + ?setWSGeometry@QWidgetPrivate@@QAEX_NABVQRect@@@Z @ 8921 NONAME ; void QWidgetPrivate::setWSGeometry(bool, class QRect const &) + ?inputMethodEvent@QPlainTextEdit@@MAEXPAVQInputMethodEvent@@@Z @ 8922 NONAME ; void QPlainTextEdit::inputMethodEvent(class QInputMethodEvent *) + ?setCursorWidth@QLineControl@@QAEXH@Z @ 8923 NONAME ; void QLineControl::setCursorWidth(int) + ?setText@QLineControl@@QAEXABVQString@@@Z @ 8924 NONAME ; void QLineControl::setText(class QString const &) + ?beep@QApplication@@SAXXZ @ 8925 NONAME ; void QApplication::beep(void) + ?icon@QMenu@@QBE?AVQIcon@@XZ @ 8926 NONAME ; class QIcon QMenu::icon(void) const + ?minimumSectionSize@QHeaderView@@QBEHXZ @ 8927 NONAME ; int QHeaderView::minimumSectionSize(void) const + ?cellSpacing@QTextTableFormat@@QBEMXZ @ 8928 NONAME ; float QTextTableFormat::cellSpacing(void) const + ?metaObject@QCalendarWidget@@UBEPBUQMetaObject@@XZ @ 8929 NONAME ; struct QMetaObject const * QCalendarWidget::metaObject(void) const + ?mouseMoveEvent@QAbstractScrollArea@@MAEXPAVQMouseEvent@@@Z @ 8930 NONAME ; void QAbstractScrollArea::mouseMoveEvent(class QMouseEvent *) + ?singleStep@QDoubleSpinBox@@QBENXZ @ 8931 NONAME ; double QDoubleSpinBox::singleStep(void) const + ??_EQTableView@@UAE@I@Z @ 8932 NONAME ; QTableView::~QTableView(unsigned int) + ??0iterator@QTextFrame@@AAE@PAV1@HHH@Z @ 8933 NONAME ; QTextFrame::iterator::iterator(class QTextFrame *, int, int, int) + ?fromString@QKeySequence@@SA?AV1@ABVQString@@W4SequenceFormat@1@@Z @ 8934 NONAME ; class QKeySequence QKeySequence::fromString(class QString const &, enum QKeySequence::SequenceFormat) + ?supportedDocumentFormats@QTextDocumentWriter@@SA?AV?$QList@VQByteArray@@@@XZ @ 8935 NONAME ; class QList QTextDocumentWriter::supportedDocumentFormats(void) + ??1QGraphicsSceneEvent@@UAE@XZ @ 8936 NONAME ; QGraphicsSceneEvent::~QGraphicsSceneEvent(void) + ?setActive@QUndoStack@@QAEX_N@Z @ 8937 NONAME ; void QUndoStack::setActive(bool) + ?staticMetaObject@QDialogButtonBox@@2UQMetaObject@@B @ 8938 NONAME ; struct QMetaObject const QDialogButtonBox::staticMetaObject + ?scaled@QImage@@QBE?AV1@HHW4AspectRatioMode@Qt@@W4TransformationMode@3@@Z @ 8939 NONAME ; class QImage QImage::scaled(int, int, enum Qt::AspectRatioMode, enum Qt::TransformationMode) const + ?drawImage@QPainter@@QAEXABVQRectF@@ABVQImage@@@Z @ 8940 NONAME ; void QPainter::drawImage(class QRectF const &, class QImage const &) + ?staticMetaObject@QPixmapConvolutionFilter@@2UQMetaObject@@B @ 8941 NONAME ; struct QMetaObject const QPixmapConvolutionFilter::staticMetaObject + ?d_func@QGraphicsAnchorLayout@@ABEPBVQGraphicsAnchorLayoutPrivate@@XZ @ 8942 NONAME ; class QGraphicsAnchorLayoutPrivate const * QGraphicsAnchorLayout::d_func(void) const + ?d_func@QScrollBar@@AAEPAVQScrollBarPrivate@@XZ @ 8943 NONAME ; class QScrollBarPrivate * QScrollBar::d_func(void) + ?setFixedSize@QWidget@@QAEXHH@Z @ 8944 NONAME ; void QWidget::setFixedSize(int, int) + ?font@QApplication@@SA?AVQFont@@PBVQWidget@@@Z @ 8945 NONAME ; class QFont QApplication::font(class QWidget const *) + ?d_func@QGraphicsLineItem@@ABEPBVQGraphicsLineItemPrivate@@XZ @ 8946 NONAME ; class QGraphicsLineItemPrivate const * QGraphicsLineItem::d_func(void) const + ?trUtf8@QPixmapBlurFilter@@SA?AVQString@@PBD0H@Z @ 8947 NONAME ; class QString QPixmapBlurFilter::trUtf8(char const *, char const *, int) + ?filterChanged@QSortFilterProxyModel@@IAEXXZ @ 8948 NONAME ; void QSortFilterProxyModel::filterChanged(void) + ??0QToolBarChangeEvent@@QAE@_N@Z @ 8949 NONAME ; QToolBarChangeEvent::QToolBarChangeEvent(bool) + ?newSize@QGraphicsSceneResizeEvent@@QBE?AVQSizeF@@XZ @ 8950 NONAME ; class QSizeF QGraphicsSceneResizeEvent::newSize(void) const + ?setReason@QGraphicsSceneContextMenuEvent@@QAEXW4Reason@1@@Z @ 8951 NONAME ; void QGraphicsSceneContextMenuEvent::setReason(enum QGraphicsSceneContextMenuEvent::Reason) + ?editingFinished@QLineEdit@@IAEXXZ @ 8952 NONAME ; void QLineEdit::editingFinished(void) + ?getExistingDirectory@QFileDialog@@SA?AVQString@@PAVQWidget@@ABV2@1V?$QFlags@W4Option@QFileDialog@@@@@Z @ 8953 NONAME ; class QString QFileDialog::getExistingDirectory(class QWidget *, class QString const &, class QString const &, class QFlags) + ?mapFromParent@QGraphicsItem@@QBE?AVQPointF@@ABV2@@Z @ 8954 NONAME ; class QPointF QGraphicsItem::mapFromParent(class QPointF const &) const + ?trUtf8@QGesture@@SA?AVQString@@PBD0H@Z @ 8955 NONAME ; class QString QGesture::trUtf8(char const *, char const *, int) + ?colorAt@QColormap@@QBE?BVQColor@@I@Z @ 8956 NONAME ; class QColor const QColormap::colorAt(unsigned int) const + ?fromNativeType@QPixmapData@@UAEXPAXW4NativeType@1@@Z @ 8957 NONAME ; void QPixmapData::fromNativeType(void *, enum QPixmapData::NativeType) + ?setVisualNavigation@QTextCursor@@QAEX_N@Z @ 8958 NONAME ; void QTextCursor::setVisualNavigation(bool) + ??0QGraphicsSceneEvent@@IAE@AAVQGraphicsSceneEventPrivate@@W4Type@QEvent@@@Z @ 8959 NONAME ; QGraphicsSceneEvent::QGraphicsSceneEvent(class QGraphicsSceneEventPrivate &, enum QEvent::Type) + ?d_func@QDoubleValidator@@AAEPAVQDoubleValidatorPrivate@@XZ @ 8960 NONAME ; class QDoubleValidatorPrivate * QDoubleValidator::d_func(void) + ?completionMode@QCompleter@@QBE?AW4CompletionMode@1@XZ @ 8961 NONAME ; enum QCompleter::CompletionMode QCompleter::completionMode(void) const + ?event@QStatusBar@@MAE_NPAVQEvent@@@Z @ 8962 NONAME ; bool QStatusBar::event(class QEvent *) + ?anchorAt@QTextControl@@QBE?AVQString@@ABVQPointF@@@Z @ 8963 NONAME ; class QString QTextControl::anchorAt(class QPointF const &) const + ?restart@QWizard@@QAEXXZ @ 8964 NONAME ; void QWizard::restart(void) + ?hasCacheHint@QVectorPath@@QBE_NXZ @ 8965 NONAME ; bool QVectorPath::hasCacheHint(void) const + ?setUnifiedTitleAndToolBarOnMac@QMainWindow@@QAEX_N@Z @ 8966 NONAME ; void QMainWindow::setUnifiedTitleAndToolBarOnMac(bool) + ?setGeometry@QGridLayout@@UAEXABVQRect@@@Z @ 8967 NONAME ; void QGridLayout::setGeometry(class QRect const &) + ?qDrawPixmaps@@YAXPAVQPainter@@PBUData@QDrawPixmaps@@HABVQPixmap@@V?$QFlags@W4DrawingHint@QDrawPixmaps@@@@@Z @ 8968 NONAME ; void qDrawPixmaps(class QPainter *, struct QDrawPixmaps::Data const *, int, class QPixmap const &, class QFlags) + ?clipPath@QGraphicsItem@@QBE?AVQPainterPath@@XZ @ 8969 NONAME ; class QPainterPath QGraphicsItem::clipPath(void) const + ?resetInputContext@QLineControl@@IAEXXZ @ 8970 NONAME ; void QLineControl::resetInputContext(void) + ?setOrientation@QSplitter@@QAEXW4Orientation@Qt@@@Z @ 8971 NONAME ; void QSplitter::setOrientation(enum Qt::Orientation) + ??0QItemSelectionModel@@QAE@PAVQAbstractItemModel@@@Z @ 8972 NONAME ; QItemSelectionModel::QItemSelectionModel(class QAbstractItemModel *) + ?widget@QDockWidget@@QBEPAVQWidget@@XZ @ 8973 NONAME ; class QWidget * QDockWidget::widget(void) const + ?visualColumn@QTableWidget@@QBEHH@Z @ 8974 NONAME ; int QTableWidget::visualColumn(int) const + ?setFont@QGraphicsWidget@@QAEXABVQFont@@@Z @ 8975 NONAME ; void QGraphicsWidget::setFont(class QFont const &) + ?parentWidget@QWidget@@QBEPAV1@XZ @ 8976 NONAME ; class QWidget * QWidget::parentWidget(void) const + ?m12@QMatrix@@QBEMXZ @ 8977 NONAME ; float QMatrix::m12(void) const + ?visualRegionForSelection@QListView@@MBE?AVQRegion@@ABVQItemSelection@@@Z @ 8978 NONAME ; class QRegion QListView::visualRegionForSelection(class QItemSelection const &) const + ?setBatchSize@QListView@@QAEXH@Z @ 8979 NONAME ; void QListView::setBatchSize(int) + ?paintEvent@QGroupBox@@MAEXPAVQPaintEvent@@@Z @ 8980 NONAME ; void QGroupBox::paintEvent(class QPaintEvent *) + ?qt_metacall@QAbstractTextDocumentLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8981 NONAME ; int QAbstractTextDocumentLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?anchor@QTextCursor@@QBEHXZ @ 8982 NONAME ; int QTextCursor::anchor(void) const + ?unsetCursor_sys@QWidgetPrivate@@QAEXXZ @ 8983 NONAME ; void QWidgetPrivate::unsetCursor_sys(void) + ?currentImage@QMovie@@QBE?AVQImage@@XZ @ 8984 NONAME ; class QImage QMovie::currentImage(void) const + ?isVisible@QGraphicsItem@@QBE_NXZ @ 8985 NONAME ; bool QGraphicsItem::isVisible(void) const + ?d_func@QGraphicsLinearLayout@@AAEPAVQGraphicsLinearLayoutPrivate@@XZ @ 8986 NONAME ; class QGraphicsLinearLayoutPrivate * QGraphicsLinearLayout::d_func(void) + ?staticMetaObject@QTextControl@@2UQMetaObject@@B @ 8987 NONAME ; struct QMetaObject const QTextControl::staticMetaObject + ??_EQClipboardEvent@@UAE@I@Z @ 8988 NONAME ; QClipboardEvent::~QClipboardEvent(unsigned int) + ?draw@QGraphicsGrayscaleEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 8989 NONAME ; void QGraphicsGrayscaleEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?tr@QGraphicsScene@@SA?AVQString@@PBD0H@Z @ 8990 NONAME ; class QString QGraphicsScene::tr(char const *, char const *, int) + ?handle@QCursor@@QBEKXZ @ 8991 NONAME ; unsigned long QCursor::handle(void) const + ?qt_metacast@QRadioButton@@UAEPAXPBD@Z @ 8992 NONAME ; void * QRadioButton::qt_metacast(char const *) + ?setDocument@QTextControl@@QAEXPAVQTextDocument@@@Z @ 8993 NONAME ; void QTextControl::setDocument(class QTextDocument *) + ?result@QDialog@@QBEHXZ @ 8994 NONAME ; int QDialog::result(void) const + ?setOption@QFontDialog@@QAEXW4FontDialogOption@1@_N@Z @ 8995 NONAME ; void QFontDialog::setOption(enum QFontDialog::FontDialogOption, bool) + ??5@YAAAVQDataStream@@AAV0@AAVQMatrix4x4@@@Z @ 8996 NONAME ; class QDataStream & operator>>(class QDataStream &, class QMatrix4x4 &) + ?setDisplayFormat@QDateTimeEdit@@QAEXABVQString@@@Z @ 8997 NONAME ; void QDateTimeEdit::setDisplayFormat(class QString const &) + ?matrix@QPaintEngineState@@QBE?AVQMatrix@@XZ @ 8998 NONAME ; class QMatrix QPaintEngineState::matrix(void) const + ?staticMetaObject@QApplication@@2UQMetaObject@@B @ 8999 NONAME ; struct QMetaObject const QApplication::staticMetaObject + ?setVerticalHeaderLabels@QTableWidget@@QAEXABVQStringList@@@Z @ 9000 NONAME ; void QTableWidget::setVerticalHeaderLabels(class QStringList const &) + ?isCheckable@QAbstractButton@@QBE_NXZ @ 9001 NONAME ; bool QAbstractButton::isCheckable(void) const + ??1QToolButton@@UAE@XZ @ 9002 NONAME ; QToolButton::~QToolButton(void) + ?tr@QAbstractScrollArea@@SA?AVQString@@PBD0H@Z @ 9003 NONAME ; class QString QAbstractScrollArea::tr(char const *, char const *, int) + ?find@QPixmapCache@@SA_NABVQString@@AAVQPixmap@@@Z @ 9004 NONAME ; bool QPixmapCache::find(class QString const &, class QPixmap &) + ?staticMetaObject@QDial@@2UQMetaObject@@B @ 9005 NONAME ; struct QMetaObject const QDial::staticMetaObject + ?staticMetaObject@QTextTable@@2UQMetaObject@@B @ 9006 NONAME ; struct QMetaObject const QTextTable::staticMetaObject + ?qt_metacall@QDrag@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9007 NONAME ; int QDrag::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QFont@@QAE@ABV0@PAVQPaintDevice@@@Z @ 9008 NONAME ; QFont::QFont(class QFont const &, class QPaintDevice *) + ?d_func@QAbstractScrollArea@@AAEPAVQAbstractScrollAreaPrivate@@XZ @ 9009 NONAME ; class QAbstractScrollAreaPrivate * QAbstractScrollArea::d_func(void) + ?paintEvent@QTableView@@MAEXPAVQPaintEvent@@@Z @ 9010 NONAME ; void QTableView::paintEvent(class QPaintEvent *) + ?activeSubWindow@QMdiArea@@QBEPAVQMdiSubWindow@@XZ @ 9011 NONAME ; class QMdiSubWindow * QMdiArea::activeSubWindow(void) const + ?metaObject@QHBoxLayout@@UBEPBUQMetaObject@@XZ @ 9012 NONAME ; struct QMetaObject const * QHBoxLayout::metaObject(void) const + ?setItemIndexMethod@QGraphicsScene@@QAEXW4ItemIndexMethod@1@@Z @ 9013 NONAME ; void QGraphicsScene::setItemIndexMethod(enum QGraphicsScene::ItemIndexMethod) + ?yChanged@QGraphicsObject@@IAEXXZ @ 9014 NONAME ; void QGraphicsObject::yChanged(void) + ??XQVector4D@@QAEAAV0@M@Z @ 9015 NONAME ; class QVector4D & QVector4D::operator*=(float) + ?button@QButtonGroup@@QBEPAVQAbstractButton@@H@Z @ 9016 NONAME ; class QAbstractButton * QButtonGroup::button(int) const + ?hints@QVectorPath@@QBEIXZ @ 9017 NONAME ; unsigned int QVectorPath::hints(void) const + ?documentTitle@QTextEdit@@QBE?AVQString@@XZ @ 9018 NONAME ; class QString QTextEdit::documentTitle(void) const + ?setNameFilters@QDirModel@@QAEXABVQStringList@@@Z @ 9019 NONAME ; void QDirModel::setNameFilters(class QStringList const &) + ?whatsThis@QStandardItem@@QBE?AVQString@@XZ @ 9020 NONAME ; class QString QStandardItem::whatsThis(void) const + ?trUtf8@QClipboard@@SA?AVQString@@PBD0H@Z @ 9021 NONAME ; class QString QClipboard::trUtf8(char const *, char const *, int) + ?qt_metacast@QMovie@@UAEPAXPBD@Z @ 9022 NONAME ; void * QMovie::qt_metacast(char const *) + ??0QWizardPage@@QAE@PAVQWidget@@@Z @ 9023 NONAME ; QWizardPage::QWizardPage(class QWidget *) + ?setStyleSheet@QWidget@@QAEXABVQString@@@Z @ 9024 NONAME ; void QWidget::setStyleSheet(class QString const &) + ?shape@QGraphicsLineItem@@UBE?AVQPainterPath@@XZ @ 9025 NONAME ; class QPainterPath QGraphicsLineItem::shape(void) const + ?cellEntered@QTableWidget@@IAEXHH@Z @ 9026 NONAME ; void QTableWidget::cellEntered(int, int) + ?restoreDockWidget@QMainWindow@@QAE_NPAVQDockWidget@@@Z @ 9027 NONAME ; bool QMainWindow::restoreDockWidget(class QDockWidget *) + ?setDotsPerMeterY@QImage@@QAEXH@Z @ 9028 NONAME ; void QImage::setDotsPerMeterY(int) + ?getCMap@QFontEngine@@SAPBEPBEIPA_NPAH@Z @ 9029 NONAME ; unsigned char const * QFontEngine::getCMap(unsigned char const *, unsigned int, bool *, int *) + ?metaObject@QGraphicsProxyWidget@@UBEPBUQMetaObject@@XZ @ 9030 NONAME ; struct QMetaObject const * QGraphicsProxyWidget::metaObject(void) const + ?minimumSizeHint@QGroupBox@@UBE?AVQSize@@XZ @ 9031 NONAME ; class QSize QGroupBox::minimumSizeHint(void) const + ?setCursorPosition@QLineEdit@@QAEXH@Z @ 9032 NONAME ; void QLineEdit::setCursorPosition(int) + ?horizontalOffset@QTreeView@@MBEHXZ @ 9033 NONAME ; int QTreeView::horizontalOffset(void) const + ?filters@QFileDialog@@QBE?AVQStringList@@XZ @ 9034 NONAME ; class QStringList QFileDialog::filters(void) const + ?setLayout@QFormLayout@@QAEXHW4ItemRole@1@PAVQLayout@@@Z @ 9035 NONAME ; void QFormLayout::setLayout(int, enum QFormLayout::ItemRole, class QLayout *) + ?qt_metacall@QListView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9036 NONAME ; int QListView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?textAfterSelection@QLineControl@@QBE?AVQString@@XZ @ 9037 NONAME ; class QString QLineControl::textAfterSelection(void) const + ?spacing@QGraphicsLinearLayout@@QBEMXZ @ 9038 NONAME ; float QGraphicsLinearLayout::spacing(void) const + ?setCursor@QWidget@@QAEXABVQCursor@@@Z @ 9039 NONAME ; void QWidget::setCursor(class QCursor const &) + ?setCheckState@QCheckBox@@QAEXW4CheckState@Qt@@@Z @ 9040 NONAME ; void QCheckBox::setCheckState(enum Qt::CheckState) + ?trUtf8@QDoubleValidator@@SA?AVQString@@PBD0H@Z @ 9041 NONAME ; class QString QDoubleValidator::trUtf8(char const *, char const *, int) + ?setMargin@QLayout@@QAEXH@Z @ 9042 NONAME ; void QLayout::setMargin(int) + ?setBaseSize@QWidget@@QAEXHH@Z @ 9043 NONAME ; void QWidget::setBaseSize(int, int) + ?errorString@QImageReader@@QBE?AVQString@@XZ @ 9044 NONAME ; class QString QImageReader::errorString(void) const + ?invalidateScene@QGraphicsView@@QAEXABVQRectF@@V?$QFlags@W4SceneLayer@QGraphicsScene@@@@@Z @ 9045 NONAME ; void QGraphicsView::invalidateScene(class QRectF const &, class QFlags) + ?setUserData@QTextBlock@@QAEXPAVQTextBlockUserData@@@Z @ 9046 NONAME ; void QTextBlock::setUserData(class QTextBlockUserData *) + ?setExtension@QGraphicsRectItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 9047 NONAME ; void QGraphicsRectItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?maximum@QProgressDialog@@QBEHXZ @ 9048 NONAME ; int QProgressDialog::maximum(void) const + ??0QDragLeaveEvent@@QAE@XZ @ 9049 NONAME ; QDragLeaveEvent::QDragLeaveEvent(void) + ?canPaste@QTextEdit@@QBE_NXZ @ 9050 NONAME ; bool QTextEdit::canPaste(void) const + ?setCurrentCharFormat@QTextEdit@@QAEXABVQTextCharFormat@@@Z @ 9051 NONAME ; void QTextEdit::setCurrentCharFormat(class QTextCharFormat const &) + ?boundingRect@QRegion@@QBE?AVQRect@@XZ @ 9052 NONAME ; class QRect QRegion::boundingRect(void) const + ?isActive@QWidgetResizeHandler@@QBE_NW4Action@1@@Z @ 9053 NONAME ; bool QWidgetResizeHandler::isActive(enum QWidgetResizeHandler::Action) const + ?isReadOnly@QPlainTextEdit@@QBE_NXZ @ 9054 NONAME ; bool QPlainTextEdit::isReadOnly(void) const + ?reset@QHeaderView@@UAEXXZ @ 9055 NONAME ; void QHeaderView::reset(void) + ?addStretch@QBoxLayout@@QAEXH@Z @ 9056 NONAME ; void QBoxLayout::addStretch(int) + ?d_func@QFontDialog@@AAEPAVQFontDialogPrivate@@XZ @ 9057 NONAME ; class QFontDialogPrivate * QFontDialog::d_func(void) + ?iconSizeChanged@QMainWindow@@IAEXABVQSize@@@Z @ 9058 NONAME ; void QMainWindow::iconSizeChanged(class QSize const &) + ?qt_metacall@QLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9059 NONAME ; int QLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setMaximum@QProgressDialog@@QAEXH@Z @ 9060 NONAME ; void QProgressDialog::setMaximum(int) + ??0QProxyModel@@IAE@AAVQProxyModelPrivate@@PAVQObject@@@Z @ 9061 NONAME ; QProxyModel::QProxyModel(class QProxyModelPrivate &, class QObject *) + ?d_func@QProgressDialog@@ABEPBVQProgressDialogPrivate@@XZ @ 9062 NONAME ; class QProgressDialogPrivate const * QProgressDialog::d_func(void) const + ?d_func@QGraphicsSceneDragDropEvent@@AAEPAVQGraphicsSceneDragDropEventPrivate@@XZ @ 9063 NONAME ; class QGraphicsSceneDragDropEventPrivate * QGraphicsSceneDragDropEvent::d_func(void) + ?d_func@QPinchGesture@@AAEPAVQPinchGesturePrivate@@XZ @ 9064 NONAME ; class QPinchGesturePrivate * QPinchGesture::d_func(void) + ?isPixmap@QGraphicsEffectSource@@QBE_NXZ @ 9065 NONAME ; bool QGraphicsEffectSource::isPixmap(void) const + ?dashPattern@QPen@@QBE?AV?$QVector@M@@XZ @ 9066 NONAME ; class QVector QPen::dashPattern(void) const + ?indexFromItem@QStandardItemModel@@QBE?AVQModelIndex@@PBVQStandardItem@@@Z @ 9067 NONAME ; class QModelIndex QStandardItemModel::indexFromItem(class QStandardItem const *) const + ?scene@QGraphicsItem@@QBEPAVQGraphicsScene@@XZ @ 9068 NONAME ; class QGraphicsScene * QGraphicsItem::scene(void) const + ??0QListWidget@@QAE@PAVQWidget@@@Z @ 9069 NONAME ; QListWidget::QListWidget(class QWidget *) + ?qt_metacall@QGraphicsBloomEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9070 NONAME ; int QGraphicsBloomEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QShortcut@@UAEPAXPBD@Z @ 9071 NONAME ; void * QShortcut::qt_metacast(char const *) + ??0QTextLayout@@AAE@PAVQTextEngine@@@Z @ 9072 NONAME ; QTextLayout::QTextLayout(class QTextEngine *) + ?hasProperty@QTextFormat@@QBE_NH@Z @ 9073 NONAME ; bool QTextFormat::hasProperty(int) const + ?trUtf8@QDockWidgetLayout@@SA?AVQString@@PBD0H@Z @ 9074 NONAME ; class QString QDockWidgetLayout::trUtf8(char const *, char const *, int) + ?setExtension@QGraphicsPixmapItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 9075 NONAME ; void QGraphicsPixmapItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ?executePendingSort@QTreeWidgetItem@@ABEXXZ @ 9076 NONAME ; void QTreeWidgetItem::executePendingSort(void) const + ?qSmartMinSize@@YA?AVQSize@@PBVQWidget@@@Z @ 9077 NONAME ; class QSize qSmartMinSize(class QWidget const *) + ?qt_metacast@QDialogButtonBox@@UAEPAXPBD@Z @ 9078 NONAME ; void * QDialogButtonBox::qt_metacast(char const *) + ?drawEllipse@QPaintEngine@@UAEXABVQRectF@@@Z @ 9079 NONAME ; void QPaintEngine::drawEllipse(class QRectF const &) + ?metaObject@QAbstractButton@@UBEPBUQMetaObject@@XZ @ 9080 NONAME ; struct QMetaObject const * QAbstractButton::metaObject(void) const + ?listFormat@QTextFormatCollection@@QBE?AVQTextListFormat@@H@Z @ 9081 NONAME ; class QTextListFormat QTextFormatCollection::listFormat(int) const + ?mode@QLCDNumber@@QBE?AW4Mode@1@XZ @ 9082 NONAME ; enum QLCDNumber::Mode QLCDNumber::mode(void) const + ??Fiterator@QTextFrame@@QAEAAV01@XZ @ 9083 NONAME ; class QTextFrame::iterator & QTextFrame::iterator::operator--(void) + ?selectRow@QTableView@@QAEXH@Z @ 9084 NONAME ; void QTableView::selectRow(int) + ?aboutToActivate@QMdiSubWindow@@IAEXXZ @ 9085 NONAME ; void QMdiSubWindow::aboutToActivate(void) + ?setBuddy@QLabel@@QAEXPAVQWidget@@@Z @ 9086 NONAME ; void QLabel::setBuddy(class QWidget *) + ?strokeEllipse@QStrokerOps@@QAEXABVQRectF@@PAXABVQTransform@@@Z @ 9087 NONAME ; void QStrokerOps::strokeEllipse(class QRectF const &, void *, class QTransform const &) + ?setJoinStyle@QPen@@QAEXW4PenJoinStyle@Qt@@@Z @ 9088 NONAME ; void QPen::setJoinStyle(enum Qt::PenJoinStyle) + ??0QStyleOptionToolBox@@IAE@H@Z @ 9089 NONAME ; QStyleOptionToolBox::QStyleOptionToolBox(int) + ?lineEdit@QAbstractSpinBox@@IBEPAVQLineEdit@@XZ @ 9090 NONAME ; class QLineEdit * QAbstractSpinBox::lineEdit(void) const + ?setFontFilters@QFontComboBox@@QAEXV?$QFlags@W4FontFilter@QFontComboBox@@@@@Z @ 9091 NONAME ; void QFontComboBox::setFontFilters(class QFlags) + ?isObscured@QGraphicsItem@@QBE_NABVQRectF@@@Z @ 9092 NONAME ; bool QGraphicsItem::isObscured(class QRectF const &) const + ??8QFontMetrics@@QAE_NABV0@@Z @ 9093 NONAME ; bool QFontMetrics::operator==(class QFontMetrics const &) + ??1QTextFormat@@QAE@XZ @ 9094 NONAME ; QTextFormat::~QTextFormat(void) + ??0QStyleOptionComplex@@QAE@HH@Z @ 9095 NONAME ; QStyleOptionComplex::QStyleOptionComplex(int, int) + ?d_func@QPaintEngineEx@@ABEPBVQPaintEngineExPrivate@@XZ @ 9096 NONAME ; class QPaintEngineExPrivate const * QPaintEngineEx::d_func(void) const + ?keyboardSingleStep@QMdiSubWindow@@QBEHXZ @ 9097 NONAME ; int QMdiSubWindow::keyboardSingleStep(void) const + ?metaObject@QBoxLayout@@UBEPBUQMetaObject@@XZ @ 9098 NONAME ; struct QMetaObject const * QBoxLayout::metaObject(void) const + ?qSmartMinSize@@YA?AVQSize@@PBVQWidgetItem@@@Z @ 9099 NONAME ; class QSize qSmartMinSize(class QWidgetItem const *) + ??1QStyleOptionGraphicsItem@@QAE@XZ @ 9100 NONAME ; QStyleOptionGraphicsItem::~QStyleOptionGraphicsItem(void) + ?closeSubpath@QPainterPath@@QAEXXZ @ 9101 NONAME ; void QPainterPath::closeSubpath(void) + ??1QStyleOptionTabWidgetFrame@@QAE@XZ @ 9102 NONAME ; QStyleOptionTabWidgetFrame::~QStyleOptionTabWidgetFrame(void) + ??0QTextBlockFormat@@QAE@ABV0@@Z @ 9103 NONAME ; QTextBlockFormat::QTextBlockFormat(class QTextBlockFormat const &) + ?indexAbove@QTreeView@@QBE?AVQModelIndex@@ABV2@@Z @ 9104 NONAME ; class QModelIndex QTreeView::indexAbove(class QModelIndex const &) const + ?qAlpha@@YAHI@Z @ 9105 NONAME ; int qAlpha(unsigned int) + ??0QStyleOptionFrameV3@@QAE@XZ @ 9106 NONAME ; QStyleOptionFrameV3::QStyleOptionFrameV3(void) + ?inputMask@QLineControl@@QBE?AVQString@@XZ @ 9107 NONAME ; class QString QLineControl::inputMask(void) const + ?addRequiredBoundaries@QTextEngine@@ABEXXZ @ 9108 NONAME ; void QTextEngine::addRequiredBoundaries(void) const + ?setCurrentItem@QListWidget@@QAEXPAVQListWidgetItem@@@Z @ 9109 NONAME ; void QListWidget::setCurrentItem(class QListWidgetItem *) + ?supportedDropActions@QFileSystemModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 9110 NONAME ; class QFlags QFileSystemModel::supportedDropActions(void) const + ?setDisabled@QAction@@QAEX_N@Z @ 9111 NONAME ; void QAction::setDisabled(bool) + ?setBottomMargin@QTextBlockFormat@@QAEXM@Z @ 9112 NONAME ; void QTextBlockFormat::setBottomMargin(float) + ?parseElementName@Parser@QCss@@QAE_NPAVQString@@@Z @ 9113 NONAME ; bool QCss::Parser::parseElementName(class QString *) + ?setDevice@QImageReader@@QAEXPAVQIODevice@@@Z @ 9114 NONAME ; void QImageReader::setDevice(class QIODevice *) + ??_EQWorkspace@@UAE@I@Z @ 9115 NONAME ; QWorkspace::~QWorkspace(unsigned int) + ?setMaximumSize_helper@QWidgetPrivate@@QAE_NAAH0@Z @ 9116 NONAME ; bool QWidgetPrivate::setMaximumSize_helper(int &, int &) + ?parseCombinator@Parser@QCss@@QAE_NPAW4Relation@BasicSelector@2@@Z @ 9117 NONAME ; bool QCss::Parser::parseCombinator(enum QCss::BasicSelector::Relation *) + ??6@YAAAVQDataStream@@AAV0@ABVQColor@@@Z @ 9118 NONAME ; class QDataStream & operator<<(class QDataStream &, class QColor const &) + ?paintEvent@QToolBar@@MAEXPAVQPaintEvent@@@Z @ 9119 NONAME ; void QToolBar::paintEvent(class QPaintEvent *) + ?dirtyRegionOffset@QAbstractItemView@@IBE?AVQPoint@@XZ @ 9120 NONAME ; class QPoint QAbstractItemView::dirtyRegionOffset(void) const + ?getStaticMetaObject@QPlainTextDocumentLayout@@SAABUQMetaObject@@XZ @ 9121 NONAME ; struct QMetaObject const & QPlainTextDocumentLayout::getStaticMetaObject(void) + ?getStaticMetaObject@QProgressDialog@@SAABUQMetaObject@@XZ @ 9122 NONAME ; struct QMetaObject const & QProgressDialog::getStaticMetaObject(void) + ?getStaticMetaObject@QLineEdit@@SAABUQMetaObject@@XZ @ 9123 NONAME ; struct QMetaObject const & QLineEdit::getStaticMetaObject(void) + ?worldTransform@QPainter@@QBEABVQTransform@@XZ @ 9124 NONAME ; class QTransform const & QPainter::worldTransform(void) const + ?contextMenuEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneContextMenuEvent@@@Z @ 9125 NONAME ; void QGraphicsProxyWidget::contextMenuEvent(class QGraphicsSceneContextMenuEvent *) + ??1QStandardItem@@UAE@XZ @ 9126 NONAME ; QStandardItem::~QStandardItem(void) + ?setTopMargin@QTextBlockFormat@@QAEXM@Z @ 9127 NONAME ; void QTextBlockFormat::setTopMargin(float) + ??1QTabBar@@UAE@XZ @ 9128 NONAME ; QTabBar::~QTabBar(void) + ??_EQPaintEngine@@UAE@I@Z @ 9129 NONAME ; QPaintEngine::~QPaintEngine(unsigned int) + ?metaObject@QPixmapFilter@@UBEPBUQMetaObject@@XZ @ 9130 NONAME ; struct QMetaObject const * QPixmapFilter::metaObject(void) const + ?isCheckable@QStandardItem@@QBE_NXZ @ 9131 NONAME ; bool QStandardItem::isCheckable(void) const + ?hoverLeaveEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 9132 NONAME ; void QGraphicsProxyWidget::hoverLeaveEvent(class QGraphicsSceneHoverEvent *) + ?read@QPictureIO@@QAE_NXZ @ 9133 NONAME ; bool QPictureIO::read(void) + ??1QTableWidget@@UAE@XZ @ 9134 NONAME ; QTableWidget::~QTableWidget(void) + ?staticMetaObject@QProgressBar@@2UQMetaObject@@B @ 9135 NONAME ; struct QMetaObject const QProgressBar::staticMetaObject + ?supportsMode@QClipboard@@ABE_NW4Mode@1@@Z @ 9136 NONAME ; bool QClipboard::supportsMode(enum QClipboard::Mode) const + ?move@QRubberBand@@QAEXABVQPoint@@@Z @ 9137 NONAME ; void QRubberBand::move(class QPoint const &) + ?posList@QGraphicsItemAnimation@@QBE?AV?$QList@U?$QPair@MVQPointF@@@@@@XZ @ 9138 NONAME ; class QList > QGraphicsItemAnimation::posList(void) const + ?rect@QItemDelegate@@IBE?AVQRect@@ABVQStyleOptionViewItem@@ABVQModelIndex@@H@Z @ 9139 NONAME ; class QRect QItemDelegate::rect(class QStyleOptionViewItem const &, class QModelIndex const &, int) const + ?d_func@QLCDNumber@@AAEPAVQLCDNumberPrivate@@XZ @ 9140 NONAME ; class QLCDNumberPrivate * QLCDNumber::d_func(void) + ?setRepeatAction@QAbstractSlider@@IAEXW4SliderAction@1@HH@Z @ 9141 NONAME ; void QAbstractSlider::setRepeatAction(enum QAbstractSlider::SliderAction, int, int) + ?lengthSquared@QVector3D@@QBEMXZ @ 9142 NONAME ; float QVector3D::lengthSquared(void) const + ?state@QPaintEngineEx@@QBEPBVQPainterState@@XZ @ 9143 NONAME ; class QPainterState const * QPaintEngineEx::state(void) const + ?loopsRemaining@QSound@@QBEHXZ @ 9144 NONAME ; int QSound::loopsRemaining(void) const + ?sizeHint@QWidgetItem@@UBE?AVQSize@@XZ @ 9145 NONAME ; class QSize QWidgetItem::sizeHint(void) const + ?saturation@QColor@@QBEHXZ @ 9146 NONAME ; int QColor::saturation(void) const + ?columnViewportPosition@QTableView@@QBEHH@Z @ 9147 NONAME ; int QTableView::columnViewportPosition(int) const + ?bottom@QDoubleValidator@@QBENXZ @ 9148 NONAME ; double QDoubleValidator::bottom(void) const + ?clipPath@QPaintEngineState@@QBE?AVQPainterPath@@XZ @ 9149 NONAME ; class QPainterPath QPaintEngineState::clipPath(void) const + ?mapTo@QWidget@@QBE?AVQPoint@@PAV1@ABV2@@Z @ 9150 NONAME ; class QPoint QWidget::mapTo(class QWidget *, class QPoint const &) const + ?setWidget@QGraphicsProxyWidget@@QAEXPAVQWidget@@@Z @ 9151 NONAME ; void QGraphicsProxyWidget::setWidget(class QWidget *) + ?setAcceptDrops@QGraphicsItem@@QAEX_N@Z @ 9152 NONAME ; void QGraphicsItem::setAcceptDrops(bool) + ?qt_metacall@QMenu@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9153 NONAME ; int QMenu::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QStyleOptionToolBoxV2@@QAE@ABV0@@Z @ 9154 NONAME ; QStyleOptionToolBoxV2::QStyleOptionToolBoxV2(class QStyleOptionToolBoxV2 const &) + ?insertFromMimeData@QPlainTextEdit@@MAEXPBVQMimeData@@@Z @ 9155 NONAME ; void QPlainTextEdit::insertFromMimeData(class QMimeData const *) + ??1QStyleOptionComboBox@@QAE@XZ @ 9156 NONAME ; QStyleOptionComboBox::~QStyleOptionComboBox(void) + ?timerEvent@QAbstractSpinBox@@MAEXPAVQTimerEvent@@@Z @ 9157 NONAME ; void QAbstractSpinBox::timerEvent(class QTimerEvent *) + ?qt_metacall@QTextList@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9158 NONAME ; int QTextList::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fontMetrics@QPainter@@QBE?AVQFontMetrics@@XZ @ 9159 NONAME ; class QFontMetrics QPainter::fontMetrics(void) const + ?length@QTextEngine@@QBEHPBUQScriptItem@@@Z @ 9160 NONAME ; int QTextEngine::length(struct QScriptItem const *) const + ??0QMouseEventTransition@@QAE@PAVQState@@@Z @ 9161 NONAME ; QMouseEventTransition::QMouseEventTransition(class QState *) + ?testElementName@Parser@QCss@@QAE_NXZ @ 9162 NONAME ; bool QCss::Parser::testElementName(void) + ?isEnabled@QLayout@@QBE_NXZ @ 9163 NONAME ; bool QLayout::isEnabled(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQPen@@@Z @ 9164 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPen &) + ?contextMenuEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneContextMenuEvent@@@Z @ 9165 NONAME ; void QGraphicsScene::contextMenuEvent(class QGraphicsSceneContextMenuEvent *) + ?getLayoutItemMargins@QWidgetPrivate@@QBEXPAH000@Z @ 9166 NONAME ; void QWidgetPrivate::getLayoutItemMargins(int *, int *, int *, int *) const + ?d_func@QGraphicsColorizeEffect@@ABEPBVQGraphicsColorizeEffectPrivate@@XZ @ 9167 NONAME ; class QGraphicsColorizeEffectPrivate const * QGraphicsColorizeEffect::d_func(void) const + ?mapFromScene@QGraphicsView@@QBE?AVQPolygon@@ABVQRectF@@@Z @ 9168 NONAME ; class QPolygon QGraphicsView::mapFromScene(class QRectF const &) const + ?qt_metacast@QAbstractItemView@@UAEPAXPBD@Z @ 9169 NONAME ; void * QAbstractItemView::qt_metacast(char const *) + ?setTextCursor@QPlainTextEdit@@QAEXABVQTextCursor@@@Z @ 9170 NONAME ; void QPlainTextEdit::setTextCursor(class QTextCursor const &) + ?unpolish@QCommonStyle@@UAEXPAVQApplication@@@Z @ 9171 NONAME ; void QCommonStyle::unpolish(class QApplication *) + ?trUtf8@QIconEnginePlugin@@SA?AVQString@@PBD0H@Z @ 9172 NONAME ; class QString QIconEnginePlugin::trUtf8(char const *, char const *, int) + ?calcEffectiveOpacity@QGraphicsItemPrivate@@QBEMXZ @ 9173 NONAME ; float QGraphicsItemPrivate::calcEffectiveOpacity(void) const + ?getStaticMetaObject@QMenuBar@@SAABUQMetaObject@@XZ @ 9174 NONAME ; struct QMetaObject const & QMenuBar::getStaticMetaObject(void) + ?handleSoftwareInputPanel@QWidgetPrivate@@QAEXW4MouseButton@Qt@@_N@Z @ 9175 NONAME ; void QWidgetPrivate::handleSoftwareInputPanel(enum Qt::MouseButton, bool) + ?d_func@QInputDialog@@AAEPAVQInputDialogPrivate@@XZ @ 9176 NONAME ; class QInputDialogPrivate * QInputDialog::d_func(void) + ?metaObject@QTextTable@@UBEPBUQMetaObject@@XZ @ 9177 NONAME ; struct QMetaObject const * QTextTable::metaObject(void) const + ?trUtf8@QRadioButton@@SA?AVQString@@PBD0H@Z @ 9178 NONAME ; class QString QRadioButton::trUtf8(char const *, char const *, int) + ?event@QLineEdit@@UAE_NPAVQEvent@@@Z @ 9179 NONAME ; bool QLineEdit::event(class QEvent *) + ?drawPixmap@QPainter@@QAEXABVQPoint@@ABVQPixmap@@ABVQRect@@@Z @ 9180 NONAME ; void QPainter::drawPixmap(class QPoint const &, class QPixmap const &, class QRect const &) + ?dropEvent@QPlainTextEdit@@MAEXPAVQDropEvent@@@Z @ 9181 NONAME ; void QPlainTextEdit::dropEvent(class QDropEvent *) + ?fragment@iterator@QTextBlock@@QBE?AVQTextFragment@@XZ @ 9182 NONAME ; class QTextFragment QTextBlock::iterator::fragment(void) const + ?setSeparatorsCollapsible@QMenu@@QAEX_N@Z @ 9183 NONAME ; void QMenu::setSeparatorsCollapsible(bool) + ?adjustQuitOnCloseAttribute@QWidgetPrivate@@QAEXXZ @ 9184 NONAME ; void QWidgetPrivate::adjustQuitOnCloseAttribute(void) + ?standardIconImplementation@QProxyStyle@@IBE?AVQIcon@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 9185 NONAME ; class QIcon QProxyStyle::standardIconImplementation(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ??5@YAAAVQDataStream@@AAV0@AAVQKeySequence@@@Z @ 9186 NONAME ; class QDataStream & operator>>(class QDataStream &, class QKeySequence &) + ?drawPolygon@QPainter@@QAEXABVQPolygonF@@W4FillRule@Qt@@@Z @ 9187 NONAME ; void QPainter::drawPolygon(class QPolygonF const &, enum Qt::FillRule) + ?trUtf8@QRubberBand@@SA?AVQString@@PBD0@Z @ 9188 NONAME ; class QString QRubberBand::trUtf8(char const *, char const *) + ??_EQShortcut@@UAE@I@Z @ 9189 NONAME ; QShortcut::~QShortcut(unsigned int) + ?distanceToLine@QVector3D@@QBEMABV1@0@Z @ 9190 NONAME ; float QVector3D::distanceToLine(class QVector3D const &, class QVector3D const &) const + ?mapRect@QTransform@@QBE?AVQRect@@ABV2@@Z @ 9191 NONAME ; class QRect QTransform::mapRect(class QRect const &) const + ?mousePressEvent@QCalendarWidget@@MAEXPAVQMouseEvent@@@Z @ 9192 NONAME ; void QCalendarWidget::mousePressEvent(class QMouseEvent *) + ?setField@QWizard@@QAEXABVQString@@ABVQVariant@@@Z @ 9193 NONAME ; void QWizard::setField(class QString const &, class QVariant const &) + ?scrollTo@QTreeView@@UAEXABVQModelIndex@@W4ScrollHint@QAbstractItemView@@@Z @ 9194 NONAME ; void QTreeView::scrollTo(class QModelIndex const &, enum QAbstractItemView::ScrollHint) + ?d_func@QBoxLayout@@ABEPBVQBoxLayoutPrivate@@XZ @ 9195 NONAME ; class QBoxLayoutPrivate const * QBoxLayout::d_func(void) const + ?_q_showIfNotHidden@QWidgetPrivate@@QAEXXZ @ 9196 NONAME ; void QWidgetPrivate::_q_showIfNotHidden(void) + ?changeEvent@QToolBar@@MAEXPAVQEvent@@@Z @ 9197 NONAME ; void QToolBar::changeEvent(class QEvent *) + ?d_func@QGraphicsTransform@@AAEPAVQGraphicsTransformPrivate@@XZ @ 9198 NONAME ; class QGraphicsTransformPrivate * QGraphicsTransform::d_func(void) + ?moveSection@QHeaderView@@QAEXHH@Z @ 9199 NONAME ; void QHeaderView::moveSection(int, int) + ?editorEvent@QAbstractItemDelegate@@UAE_NPAVQEvent@@PAVQAbstractItemModel@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 9200 NONAME ; bool QAbstractItemDelegate::editorEvent(class QEvent *, class QAbstractItemModel *, class QStyleOptionViewItem const &, class QModelIndex const &) + ?staticMetaObject@QGesture@@2UQMetaObject@@B @ 9201 NONAME ; struct QMetaObject const QGesture::staticMetaObject + ?setShown@QWidget@@QAEX_N@Z @ 9202 NONAME ; void QWidget::setShown(bool) + ?setVisible@QFontDialog@@UAEX_N@Z @ 9203 NONAME ; void QFontDialog::setVisible(bool) + ?getRgbF@QColor@@QBEXPAM000@Z @ 9204 NONAME ; void QColor::getRgbF(float *, float *, float *, float *) const + ?hotSpot@QDrag@@QBE?AVQPoint@@XZ @ 9205 NONAME ; class QPoint QDrag::hotSpot(void) const + ?setWheelScrollLines@QApplication@@SAXH@Z @ 9206 NONAME ; void QApplication::setWheelScrollLines(int) + ?setFlags@QGraphicsItem@@QAEXV?$QFlags@W4GraphicsItemFlag@QGraphicsItem@@@@@Z @ 9207 NONAME ; void QGraphicsItem::setFlags(class QFlags) + ??0QTextLength@@QAE@ABV0@@Z @ 9208 NONAME ; QTextLength::QTextLength(class QTextLength const &) + ?getStaticMetaObject@QPushButton@@SAABUQMetaObject@@XZ @ 9209 NONAME ; struct QMetaObject const & QPushButton::getStaticMetaObject(void) + ?tr@QGraphicsDropShadowEffect@@SA?AVQString@@PBD0@Z @ 9210 NONAME ; class QString QGraphicsDropShadowEffect::tr(char const *, char const *) + ?scaled@QPixmap@@QBE?AV1@ABVQSize@@W4AspectRatioMode@Qt@@W4TransformationMode@4@@Z @ 9211 NONAME ; class QPixmap QPixmap::scaled(class QSize const &, enum Qt::AspectRatioMode, enum Qt::TransformationMode) const + ?setCancelButtonText@QProgressDialog@@QAEXABVQString@@@Z @ 9212 NONAME ; void QProgressDialog::setCancelButtonText(class QString const &) + ?actionEvent@QToolButton@@MAEXPAVQActionEvent@@@Z @ 9213 NONAME ; void QToolButton::actionEvent(class QActionEvent *) + ?columnStretch@QGridLayout@@QBEHH@Z @ 9214 NONAME ; int QGridLayout::columnStretch(int) const + ?centerOn@QGraphicsView@@QAEXMM@Z @ 9215 NONAME ; void QGraphicsView::centerOn(float, float) + ??_EQFocusFrame@@UAE@I@Z @ 9216 NONAME ; QFocusFrame::~QFocusFrame(unsigned int) + ??6@YAAAVQDataStream@@AAV0@ABVQVector2D@@@Z @ 9217 NONAME ; class QDataStream & operator<<(class QDataStream &, class QVector2D const &) + ?item@QStandardItemModel@@QBEPAVQStandardItem@@HH@Z @ 9218 NONAME ; class QStandardItem * QStandardItemModel::item(int, int) const + ?base@QPalette@@QBEABVQBrush@@XZ @ 9219 NONAME ; class QBrush const & QPalette::base(void) const + ?setTime@QDateTimeEdit@@QAEXABVQTime@@@Z @ 9220 NONAME ; void QDateTimeEdit::setTime(class QTime const &) + ??0QMouseEvent@@QAE@W4Type@QEvent@@ABVQPoint@@W4MouseButton@Qt@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 9221 NONAME ; QMouseEvent::QMouseEvent(enum QEvent::Type, class QPoint const &, enum Qt::MouseButton, class QFlags, class QFlags) + ?fileDialogResultCode@QGuiPlatformPlugin@@UAE?AW4DialogCode@QDialog@@PAVQFileDialog@@@Z @ 9222 NONAME ; enum QDialog::DialogCode QGuiPlatformPlugin::fileDialogResultCode(class QFileDialog *) + ??0QTextEdit@@IAE@AAVQTextEditPrivate@@PAVQWidget@@@Z @ 9223 NONAME ; QTextEdit::QTextEdit(class QTextEditPrivate &, class QWidget *) + ?addItem@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@HHHHV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 9224 NONAME ; void QGraphicsGridLayout::addItem(class QGraphicsLayoutItem *, int, int, int, int, class QFlags) + ?setSceneRect@QGraphicsView@@QAEXMMMM@Z @ 9225 NONAME ; void QGraphicsView::setSceneRect(float, float, float, float) + ?foreground@QPalette@@QBEABVQBrush@@XZ @ 9226 NONAME ; class QBrush const & QPalette::foreground(void) const + ?eventFilter@QItemDelegate@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 9227 NONAME ; bool QItemDelegate::eventFilter(class QObject *, class QEvent *) + ?insertItem@QToolBox@@QAEHHPAVQWidget@@ABVQString@@@Z @ 9228 NONAME ; int QToolBox::insertItem(int, class QWidget *, class QString const &) + ?strikeOutPos@QFontMetricsF@@QBEMXZ @ 9229 NONAME ; float QFontMetricsF::strikeOutPos(void) const + ?isObscuredBy@QGraphicsTextItem@@UBE_NPBVQGraphicsItem@@@Z @ 9230 NONAME ; bool QGraphicsTextItem::isObscuredBy(class QGraphicsItem const *) const + ??1QPaintEngineExReplayer@@UAE@XZ @ 9231 NONAME ; QPaintEngineExReplayer::~QPaintEngineExReplayer(void) + ?boundingRect@QPainter@@QAE?AVQRect@@ABV2@HABVQString@@@Z @ 9232 NONAME ; class QRect QPainter::boundingRect(class QRect const &, int, class QString const &) + ?penProperty@QTextFormat@@QBE?AVQPen@@H@Z @ 9233 NONAME ; class QPen QTextFormat::penProperty(int) const + ?metaObject@QLabel@@UBEPBUQMetaObject@@XZ @ 9234 NONAME ; struct QMetaObject const * QLabel::metaObject(void) const + ?itemDelegateForColumn@QAbstractItemView@@QBEPAVQAbstractItemDelegate@@H@Z @ 9235 NONAME ; class QAbstractItemDelegate * QAbstractItemView::itemDelegateForColumn(int) const + ?setDefaultTextOption@QTextDocument@@QAEXABVQTextOption@@@Z @ 9236 NONAME ; void QTextDocument::setDefaultTextOption(class QTextOption const &) + ?currentPosition@QPainterPath@@QBE?AVQPointF@@XZ @ 9237 NONAME ; class QPointF QPainterPath::currentPosition(void) const + ?setBackground@QPainter@@QAEXABVQBrush@@@Z @ 9238 NONAME ; void QPainter::setBackground(class QBrush const &) + ?currentImageRect@QImageIOHandler@@UBE?AVQRect@@XZ @ 9239 NONAME ; class QRect QImageIOHandler::currentImageRect(void) const + ?isReadOnly@QTextEdit@@QBE_NXZ @ 9240 NONAME ; bool QTextEdit::isReadOnly(void) const + ?mouseDoubleClickEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 9241 NONAME ; void QGraphicsTextItem::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?itemBelow@QTreeWidget@@QBEPAVQTreeWidgetItem@@PBV2@@Z @ 9242 NONAME ; class QTreeWidgetItem * QTreeWidget::itemBelow(class QTreeWidgetItem const *) const + ?minimumSizeHint@QWidget@@UBE?AVQSize@@XZ @ 9243 NONAME ; class QSize QWidget::minimumSizeHint(void) const + ?initStyleOption@QScrollBar@@IBEXPAVQStyleOptionSlider@@@Z @ 9244 NONAME ; void QScrollBar::initStyleOption(class QStyleOptionSlider *) const + ?supportedDropActions@QStandardItemModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 9245 NONAME ; class QFlags QStandardItemModel::supportedDropActions(void) const + ??0QPixmap@@QAE@QBQBD@Z @ 9246 NONAME ; QPixmap::QPixmap(char const * const * const) + ?tabChangesFocus@QGraphicsTextItem@@QBE_NXZ @ 9247 NONAME ; bool QGraphicsTextItem::tabChangesFocus(void) const + ?rowSpan@QTextTableCell@@QBEHXZ @ 9248 NONAME ; int QTextTableCell::rowSpan(void) const + ?resizeEvent@QProgressDialog@@MAEXPAVQResizeEvent@@@Z @ 9249 NONAME ; void QProgressDialog::resizeEvent(class QResizeEvent *) + ??_EQPushButton@@UAE@I@Z @ 9250 NONAME ; QPushButton::~QPushButton(unsigned int) + ?setVisible@QInputDialog@@UAEX_N@Z @ 9251 NONAME ; void QInputDialog::setVisible(bool) + ??_EQTouchEvent@@UAE@I@Z @ 9252 NONAME ; QTouchEvent::~QTouchEvent(unsigned int) + ?horizontalDirection@QSwipeGesture@@QBE?AW4SwipeDirection@1@XZ @ 9253 NONAME ; enum QSwipeGesture::SwipeDirection QSwipeGesture::horizontalDirection(void) const + ?setTabEnabled@QTabBar@@QAEXH_N@Z @ 9254 NONAME ; void QTabBar::setTabEnabled(int, bool) + ?childrenCollapsible@QSplitter@@QBE_NXZ @ 9255 NONAME ; bool QSplitter::childrenCollapsible(void) const + ?isIdentity@QQuaternion@@QBE_NXZ @ 9256 NONAME ; bool QQuaternion::isIdentity(void) const + ?metaObject@QStandardItemModel@@UBEPBUQMetaObject@@XZ @ 9257 NONAME ; struct QMetaObject const * QStandardItemModel::metaObject(void) const + ?buffer@QPixmapData@@UAEPAVQImage@@XZ @ 9258 NONAME ; class QImage * QPixmapData::buffer(void) + ?setFormat@QImageIOHandler@@QBEXABVQByteArray@@@Z @ 9259 NONAME ; void QImageIOHandler::setFormat(class QByteArray const &) const + ?qt_metacast@QDataWidgetMapper@@UAEPAXPBD@Z @ 9260 NONAME ; void * QDataWidgetMapper::qt_metacast(char const *) + ?d_func@QRadioButton@@AAEPAVQRadioButtonPrivate@@XZ @ 9261 NONAME ; class QRadioButtonPrivate * QRadioButton::d_func(void) + ?resizeEvent@QWorkspace@@MAEXPAVQResizeEvent@@@Z @ 9262 NONAME ; void QWorkspace::resizeEvent(class QResizeEvent *) + ??1QGraphicsEffect@@UAE@XZ @ 9263 NONAME ; QGraphicsEffect::~QGraphicsEffect(void) + ?metric@QPicture@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 9264 NONAME ; int QPicture::metric(enum QPaintDevice::PaintDeviceMetric) const + ?removeToolBarBreak@QMainWindow@@QAEXPAVQToolBar@@@Z @ 9265 NONAME ; void QMainWindow::removeToolBarBreak(class QToolBar *) + ??0QFontMetrics@@QAE@ABVQFont@@PAVQPaintDevice@@@Z @ 9266 NONAME ; QFontMetrics::QFontMetrics(class QFont const &, class QPaintDevice *) + ?currentCellChanged@QTableWidget@@IAEXHHHH@Z @ 9267 NONAME ; void QTableWidget::currentCellChanged(int, int, int, int) + ?qScrollEffect@@YAXPAVQWidget@@IH@Z @ 9268 NONAME ; void qScrollEffect(class QWidget *, unsigned int, int) + ??1QPaintBufferResource@@UAE@XZ @ 9269 NONAME ; QPaintBufferResource::~QPaintBufferResource(void) + ?supportedFormats@QMovie@@SA?AV?$QList@VQByteArray@@@@XZ @ 9270 NONAME ; class QList QMovie::supportedFormats(void) + ?backward@QTextBrowser@@UAEXXZ @ 9271 NONAME ; void QTextBrowser::backward(void) + ??1QPixmapFilter@@UAE@XZ @ 9272 NONAME ; QPixmapFilter::~QPixmapFilter(void) + ?setTabWhatsThis@QTabWidget@@QAEXHABVQString@@@Z @ 9273 NONAME ; void QTabWidget::setTabWhatsThis(int, class QString const &) + ?setTitleBarWidget@QDockWidget@@QAEXPAVQWidget@@@Z @ 9274 NONAME ; void QDockWidget::setTitleBarWidget(class QWidget *) + ?DocumentMaximumLengthForFep@QCoeFepInputContext@@UBEHXZ @ 9275 NONAME ; int QCoeFepInputContext::DocumentMaximumLengthForFep(void) const + ?decideFormatFromContent@QImageReader@@QBE_NXZ @ 9276 NONAME ; bool QImageReader::decideFormatFromContent(void) const + ?trUtf8@QPixmapColorizeFilter@@SA?AVQString@@PBD0@Z @ 9277 NONAME ; class QString QPixmapColorizeFilter::trUtf8(char const *, char const *) + ?removeFromGroup@QGraphicsItemGroup@@QAEXPAVQGraphicsItem@@@Z @ 9278 NONAME ; void QGraphicsItemGroup::removeFromGroup(class QGraphicsItem *) + ?styleRulesForNode@StyleSelector@QCss@@QAE?AV?$QVector@UStyleRule@QCss@@@@TNodePtr@12@@Z @ 9279 NONAME ; class QVector QCss::StyleSelector::styleRulesForNode(union QCss::StyleSelector::NodePtr) + ?setItemText@QComboBox@@QAEXHABVQString@@@Z @ 9280 NONAME ; void QComboBox::setItemText(int, class QString const &) + ?lastPos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@XZ @ 9281 NONAME ; class QPointF QGraphicsSceneMouseEvent::lastPos(void) const + ?setOctMode@QLCDNumber@@QAEXXZ @ 9282 NONAME ; void QLCDNumber::setOctMode(void) + ?rowCount@QTableWidgetSelectionRange@@QBEHXZ @ 9283 NONAME ; int QTableWidgetSelectionRange::rowCount(void) const + ?window@QPalette@@QBEABVQBrush@@XZ @ 9284 NONAME ; class QBrush const & QPalette::window(void) const + ?trueMatrix@QImage@@SA?AVQTransform@@ABV2@HH@Z @ 9285 NONAME ; class QTransform QImage::trueMatrix(class QTransform const &, int, int) + ?setSelectionArea@QGraphicsScene@@QAEXABVQPainterPath@@@Z @ 9286 NONAME ; void QGraphicsScene::setSelectionArea(class QPainterPath const &) + ??0QFontEngine@@QAE@XZ @ 9287 NONAME ; QFontEngine::QFontEngine(void) + ??1QTreeWidgetItem@@UAE@XZ @ 9288 NONAME ; QTreeWidgetItem::~QTreeWidgetItem(void) + ?mousePressEvent@QTextBrowser@@MAEXPAVQMouseEvent@@@Z @ 9289 NONAME ; void QTextBrowser::mousePressEvent(class QMouseEvent *) + ?horizontalSpacing@QFormLayout@@QBEHXZ @ 9290 NONAME ; int QFormLayout::horizontalSpacing(void) const + ??0QFontDatabase@@QAE@XZ @ 9291 NONAME ; QFontDatabase::QFontDatabase(void) + ?tr@QCheckBox@@SA?AVQString@@PBD0@Z @ 9292 NONAME ; class QString QCheckBox::tr(char const *, char const *) + ?cursorWidth@QTextEdit@@QBEHXZ @ 9293 NONAME ; int QTextEdit::cursorWidth(void) const + ?d_func@QSyntaxHighlighter@@AAEPAVQSyntaxHighlighterPrivate@@XZ @ 9294 NONAME ; class QSyntaxHighlighterPrivate * QSyntaxHighlighter::d_func(void) + ?globalPos@QWheelEvent@@QBEABVQPoint@@XZ @ 9295 NONAME ; class QPoint const & QWheelEvent::globalPos(void) const + ?setCodec@QTextDocumentWriter@@QAEXPAVQTextCodec@@@Z @ 9296 NONAME ; void QTextDocumentWriter::setCodec(class QTextCodec *) + ?d_func@QGraphicsLinearLayout@@ABEPBVQGraphicsLinearLayoutPrivate@@XZ @ 9297 NONAME ; class QGraphicsLinearLayoutPrivate const * QGraphicsLinearLayout::d_func(void) const + ?addSimpleText@QGraphicsScene@@QAEPAVQGraphicsSimpleTextItem@@ABVQString@@ABVQFont@@@Z @ 9298 NONAME ; class QGraphicsSimpleTextItem * QGraphicsScene::addSimpleText(class QString const &, class QFont const &) + ?styleString@QFontDatabase@@QAE?AVQString@@ABVQFont@@@Z @ 9299 NONAME ; class QString QFontDatabase::styleString(class QFont const &) + ??0QS60Style@@QAE@XZ @ 9300 NONAME ; QS60Style::QS60Style(void) + ??_EQIconDragEvent@@UAE@I@Z @ 9301 NONAME ; QIconDragEvent::~QIconDragEvent(unsigned int) + ?maskString@QLineControl@@ABE?AVQString@@IABV2@_N@Z @ 9302 NONAME ; class QString QLineControl::maskString(unsigned int, class QString const &, bool) const + ?hasAlphaChannel@QPixmap@@QBE_NXZ @ 9303 NONAME ; bool QPixmap::hasAlphaChannel(void) const + ?clear@QTabWidget@@QAEXXZ @ 9304 NONAME ; void QTabWidget::clear(void) + ?setAlphaChannel@QImage@@QAEXABV1@@Z @ 9305 NONAME ; void QImage::setAlphaChannel(class QImage const &) + ??0QFocusEvent@@QAE@W4Type@QEvent@@W4FocusReason@Qt@@@Z @ 9306 NONAME ; QFocusEvent::QFocusEvent(enum QEvent::Type, enum Qt::FocusReason) + ?constData@QMatrix4x4@@QBEPBMXZ @ 9307 NONAME ; float const * QMatrix4x4::constData(void) const + ?updateMicroFocus@QWidget@@IAEXXZ @ 9308 NONAME ; void QWidget::updateMicroFocus(void) + ?text@QClipboard@@QBE?AVQString@@W4Mode@1@@Z @ 9309 NONAME ; class QString QClipboard::text(enum QClipboard::Mode) const + ?alphaChannel@QPixmapData@@UBE?AVQPixmap@@XZ @ 9310 NONAME ; class QPixmap QPixmapData::alphaChannel(void) const + ??6@YAAAVQDataStream@@AAV0@ABVQTransform@@@Z @ 9311 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTransform const &) + ?parentLayoutItem@QGraphicsLayoutItem@@QBEPAV1@XZ @ 9312 NONAME ; class QGraphicsLayoutItem * QGraphicsLayoutItem::parentLayoutItem(void) const + ?setHeaderData@QProxyModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 9313 NONAME ; bool QProxyModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ??0QGraphicsAnchorLayout@@QAE@PAVQGraphicsLayoutItem@@@Z @ 9314 NONAME ; QGraphicsAnchorLayout::QGraphicsAnchorLayout(class QGraphicsLayoutItem *) + ?contentsSize@QListView@@IBE?AVQSize@@XZ @ 9315 NONAME ; class QSize QListView::contentsSize(void) const + ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@XZ @ 9316 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(void) const + ?qt_image_id@@YA_JABVQImage@@@Z @ 9317 NONAME ; long long qt_image_id(class QImage const &) + ?trUtf8@QHeaderView@@SA?AVQString@@PBD0@Z @ 9318 NONAME ; class QString QHeaderView::trUtf8(char const *, char const *) + ??1QStatusBar@@UAE@XZ @ 9319 NONAME ; QStatusBar::~QStatusBar(void) + ?d_func@QWizardPage@@ABEPBVQWizardPagePrivate@@XZ @ 9320 NONAME ; class QWizardPagePrivate const * QWizardPage::d_func(void) const + ?insertText@QTextCursor@@QAEXABVQString@@ABVQTextCharFormat@@@Z @ 9321 NONAME ; void QTextCursor::insertText(class QString const &, class QTextCharFormat const &) + ?trUtf8@QPictureFormatPlugin@@SA?AVQString@@PBD0H@Z @ 9322 NONAME ; class QString QPictureFormatPlugin::trUtf8(char const *, char const *, int) + ?resizeEvent@QAbstractScrollArea@@MAEXPAVQResizeEvent@@@Z @ 9323 NONAME ; void QAbstractScrollArea::resizeEvent(class QResizeEvent *) + ?setDirectory@QFileDialog@@QAEXABVQDir@@@Z @ 9324 NONAME ; void QFileDialog::setDirectory(class QDir const &) + ?CreateDocumentL@QS60MainApplication@@MAEPAVCApaDocument@@XZ @ 9325 NONAME ; class CApaDocument * QS60MainApplication::CreateDocumentL(void) + ?setMoveToHook@QStrokerOps@@QAEXP6AXMMPAX@Z@Z @ 9326 NONAME ; void QStrokerOps::setMoveToHook(void (*)(float, float, void *)) + ??0QTextFormat@@QAE@ABV0@@Z @ 9327 NONAME ; QTextFormat::QTextFormat(class QTextFormat const &) + ?openLinks@QTextBrowser@@QBE_NXZ @ 9328 NONAME ; bool QTextBrowser::openLinks(void) const + ?d_func@QShortcut@@ABEPBVQShortcutPrivate@@XZ @ 9329 NONAME ; class QShortcutPrivate const * QShortcut::d_func(void) const + ?hasHeightForWidth@QWidgetItem@@UBE_NXZ @ 9330 NONAME ; bool QWidgetItem::hasHeightForWidth(void) const + ?editItem@QTableWidget@@QAEXPAVQTableWidgetItem@@@Z @ 9331 NONAME ; void QTableWidget::editItem(class QTableWidgetItem *) + ??_EQSpinBox@@UAE@I@Z @ 9332 NONAME ; QSpinBox::~QSpinBox(unsigned int) + ??0QMoveEvent@@QAE@ABVQPoint@@0@Z @ 9333 NONAME ; QMoveEvent::QMoveEvent(class QPoint const &, class QPoint const &) + ??1QS60MainAppUi@@UAE@XZ @ 9334 NONAME ; QS60MainAppUi::~QS60MainAppUi(void) + ?event@QLabel@@MAE_NPAVQEvent@@@Z @ 9335 NONAME ; bool QLabel::event(class QEvent *) + ?paintEvent@QMenu@@MAEXPAVQPaintEvent@@@Z @ 9336 NONAME ; void QMenu::paintEvent(class QPaintEvent *) + ?minimumSizeHint@QAbstractSpinBox@@UBE?AVQSize@@XZ @ 9337 NONAME ; class QSize QAbstractSpinBox::minimumSizeHint(void) const + ?windowServerEvent@QSymbianEvent@@QBEPBVTWsEvent@@XZ @ 9338 NONAME ; class TWsEvent const * QSymbianEvent::windowServerEvent(void) const + ?setBackground@QListWidgetItem@@QAEXABVQBrush@@@Z @ 9339 NONAME ; void QListWidgetItem::setBackground(class QBrush const &) + ?accepted@QDialogButtonBox@@IAEXXZ @ 9340 NONAME ; void QDialogButtonBox::accepted(void) + ?staticMetaObject@QBoxLayout@@2UQMetaObject@@B @ 9341 NONAME ; struct QMetaObject const QBoxLayout::staticMetaObject + ?setSelection@QColumnView@@MAEXABVQRect@@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 9342 NONAME ; void QColumnView::setSelection(class QRect const &, class QFlags) + ?defaultTextOption@QTextDocument@@QBE?AVQTextOption@@XZ @ 9343 NONAME ; class QTextOption QTextDocument::defaultTextOption(void) const + ?setPosHelper@QGraphicsItemPrivate@@UAEXABVQPointF@@@Z @ 9344 NONAME ; void QGraphicsItemPrivate::setPosHelper(class QPointF const &) + ?verticalOffset@QTableView@@MBEHXZ @ 9345 NONAME ; int QTableView::verticalOffset(void) const + ?sceneBoundingRect@QGraphicsItem@@QBE?AVQRectF@@XZ @ 9346 NONAME ; class QRectF QGraphicsItem::sceneBoundingRect(void) const + ?isEnabledTo@QWidget@@QBE_NPAV1@@Z @ 9347 NONAME ; bool QWidget::isEnabledTo(class QWidget *) const + ?setEnabled@QActionGroup@@QAEX_N@Z @ 9348 NONAME ; void QActionGroup::setEnabled(bool) + ?date@QDateTimeEdit@@QBE?AVQDate@@XZ @ 9349 NONAME ; class QDate QDateTimeEdit::date(void) const + ?font@QPaintEngineState@@QBE?AVQFont@@XZ @ 9350 NONAME ; class QFont QPaintEngineState::font(void) const + ?isEmpty@QTextDocument@@QBE_NXZ @ 9351 NONAME ; bool QTextDocument::isEmpty(void) const + ?viewportEntered@QAbstractItemView@@IAEXXZ @ 9352 NONAME ; void QAbstractItemView::viewportEntered(void) + ?setAutoClose@QProgressDialog@@QAEX_N@Z @ 9353 NONAME ; void QProgressDialog::setAutoClose(bool) + ?d_func@QGraphicsDropShadowEffect@@AAEPAVQGraphicsDropShadowEffectPrivate@@XZ @ 9354 NONAME ; class QGraphicsDropShadowEffectPrivate * QGraphicsDropShadowEffect::d_func(void) + ?d_func@QProxyStyle@@AAEPAVQProxyStylePrivate@@XZ @ 9355 NONAME ; class QProxyStylePrivate * QProxyStyle::d_func(void) + ?toVector2D@QVector3D@@QBE?AVQVector2D@@XZ @ 9356 NONAME ; class QVector2D QVector3D::toVector2D(void) const + ?stackBefore@QGraphicsItem@@QAEXPBV1@@Z @ 9357 NONAME ; void QGraphicsItem::stackBefore(class QGraphicsItem const *) + ?sizeHintForColumn@QTreeView@@MBEHH@Z @ 9358 NONAME ; int QTreeView::sizeHintForColumn(int) const + ?widgetDestroyed@QCoeFepInputContext@@UAEXPAVQWidget@@@Z @ 9359 NONAME ; void QCoeFepInputContext::widgetDestroyed(class QWidget *) + ?staticMetaObject@QPushButton@@2UQMetaObject@@B @ 9360 NONAME ; struct QMetaObject const QPushButton::staticMetaObject + ?xHeight@QFontEngine@@UBE?AUQFixed@@XZ @ 9361 NONAME ; struct QFixed QFontEngine::xHeight(void) const + ?setItemIcon@QToolBox@@QAEXHABVQIcon@@@Z @ 9362 NONAME ; void QToolBox::setItemIcon(int, class QIcon const &) + ??5@YAAAVQDataStream@@AAV0@AAVQIcon@@@Z @ 9363 NONAME ; class QDataStream & operator>>(class QDataStream &, class QIcon &) + ?tr@QSplitter@@SA?AVQString@@PBD0@Z @ 9364 NONAME ; class QString QSplitter::tr(char const *, char const *) + ?glyphCache@QFontEngine@@QBEPAVQFontEngineGlyphCache@@PAXABVQTransform@@@Z @ 9365 NONAME ; class QFontEngineGlyphCache * QFontEngine::glyphCache(void *, class QTransform const &) const + ?setOffset@QGraphicsPixmapItem@@QAEXMM@Z @ 9366 NONAME ; void QGraphicsPixmapItem::setOffset(float, float) + ?emitLineTo@QStrokerOps@@IAEXMM@Z @ 9367 NONAME ; void QStrokerOps::emitLineTo(float, float) + ?trUtf8@QRubberBand@@SA?AVQString@@PBD0H@Z @ 9368 NONAME ; class QString QRubberBand::trUtf8(char const *, char const *, int) + ?setHeader@QTreeView@@QAEXPAVQHeaderView@@@Z @ 9369 NONAME ; void QTreeView::setHeader(class QHeaderView *) + ?createGesture@QGestureRecognizer@@UAEPAVQGesture@@PAVQObject@@@Z @ 9370 NONAME ; class QGesture * QGestureRecognizer::createGesture(class QObject *) + ?trUtf8@QGraphicsEffectSource@@SA?AVQString@@PBD0H@Z @ 9371 NONAME ; class QString QGraphicsEffectSource::trUtf8(char const *, char const *, int) + ?tr@QTableWidget@@SA?AVQString@@PBD0@Z @ 9372 NONAME ; class QString QTableWidget::tr(char const *, char const *) + ?metaObject@QInputDialog@@UBEPBUQMetaObject@@XZ @ 9373 NONAME ; struct QMetaObject const * QInputDialog::metaObject(void) const + ?xChanged@QGraphicsObject@@IAEXXZ @ 9374 NONAME ; void QGraphicsObject::xChanged(void) + ?setTextInteractionFlags@QGraphicsTextItem@@QAEXV?$QFlags@W4TextInteractionFlag@Qt@@@@@Z @ 9375 NONAME ; void QGraphicsTextItem::setTextInteractionFlags(class QFlags) + ?d_func@QMenuBar@@AAEPAVQMenuBarPrivate@@XZ @ 9376 NONAME ; class QMenuBarPrivate * QMenuBar::d_func(void) + ?layoutData@QTextFrame@@QBEPAVQTextFrameLayoutData@@XZ @ 9377 NONAME ; class QTextFrameLayoutData * QTextFrame::layoutData(void) const + ?currentMessage@QStatusBar@@QBE?AVQString@@XZ @ 9378 NONAME ; class QString QStatusBar::currentMessage(void) const + ?desktopStyleKey@QApplicationPrivate@@SA?AVQString@@XZ @ 9379 NONAME ; class QString QApplicationPrivate::desktopStyleKey(void) + ?tr@QRegExpValidator@@SA?AVQString@@PBD0@Z @ 9380 NONAME ; class QString QRegExpValidator::tr(char const *, char const *) + ?descent@QFontMetricsF@@QBEMXZ @ 9381 NONAME ; float QFontMetricsF::descent(void) const + ?stepBy@QDateTimeEdit@@UAEXH@Z @ 9382 NONAME ; void QDateTimeEdit::stepBy(int) + ?setPalette@QLineControl@@QAEXABVQPalette@@@Z @ 9383 NONAME ; void QLineControl::setPalette(class QPalette const &) + ?rowStretchFactor@QGraphicsGridLayout@@QBEHH@Z @ 9384 NONAME ; int QGraphicsGridLayout::rowStretchFactor(int) const + ?setSelectionArea@QGraphicsScene@@QAEXABVQPainterPath@@W4ItemSelectionMode@Qt@@@Z @ 9385 NONAME ; void QGraphicsScene::setSelectionArea(class QPainterPath const &, enum Qt::ItemSelectionMode) + ??1QMimeSource@@UAE@XZ @ 9386 NONAME ; QMimeSource::~QMimeSource(void) + ?repaint@QWidget@@QAEXHHHH@Z @ 9387 NONAME ; void QWidget::repaint(int, int, int, int) + ?hueF@QColor@@QBEMXZ @ 9388 NONAME ; float QColor::hueF(void) const + ?activate@QWidgetResizeHandler@@IAEXXZ @ 9389 NONAME ; void QWidgetResizeHandler::activate(void) + ?intersected@QRegion@@QBE?AV1@ABV1@@Z @ 9390 NONAME ; class QRegion QRegion::intersected(class QRegion const &) const + ?setTextValue@QInputDialog@@QAEXABVQString@@@Z @ 9391 NONAME ; void QInputDialog::setTextValue(class QString const &) + ?staticMetaObject@QCommonStyle@@2UQMetaObject@@B @ 9392 NONAME ; struct QMetaObject const QCommonStyle::staticMetaObject + ?tr@QGraphicsObject@@SA?AVQString@@PBD0@Z @ 9393 NONAME ; class QString QGraphicsObject::tr(char const *, char const *) + ?setBinMode@QLCDNumber@@QAEXXZ @ 9394 NONAME ; void QLCDNumber::setBinMode(void) + ?actions@QInputContext@@UAE?AV?$QList@PAVQAction@@@@XZ @ 9395 NONAME ; class QList QInputContext::actions(void) + ?fileDialogSelectNameFilter@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@ABVQString@@@Z @ 9396 NONAME ; void QGuiPlatformPlugin::fileDialogSelectNameFilter(class QFileDialog *, class QString const &) + ?hasHeightForWidth@QLayoutItem@@UBE_NXZ @ 9397 NONAME ; bool QLayoutItem::hasHeightForWidth(void) const + ?mouseMoveEvent@QWidgetResizeHandler@@IAEXPAVQMouseEvent@@@Z @ 9398 NONAME ; void QWidgetResizeHandler::mouseMoveEvent(class QMouseEvent *) + ?black@QColor@@QBEHXZ @ 9399 NONAME ; int QColor::black(void) const + ?timerEvent@QListView@@MAEXPAVQTimerEvent@@@Z @ 9400 NONAME ; void QListView::timerEvent(class QTimerEvent *) + ??0QIntValidator@@QAE@PAVQObject@@@Z @ 9401 NONAME ; QIntValidator::QIntValidator(class QObject *) + ?tr@QGuiPlatformPlugin@@SA?AVQString@@PBD0@Z @ 9402 NONAME ; class QString QGuiPlatformPlugin::tr(char const *, char const *) + ?metaObject@QKeyEventTransition@@UBEPBUQMetaObject@@XZ @ 9403 NONAME ; struct QMetaObject const * QKeyEventTransition::metaObject(void) const + ?removeRow@QStandardItem@@QAEXH@Z @ 9404 NONAME ; void QStandardItem::removeRow(int) + ?setText@QLineEdit@@QAEXABVQString@@@Z @ 9405 NONAME ; void QLineEdit::setText(class QString const &) + ??0QStyleOptionViewItemV3@@QAE@ABVQStyleOptionViewItem@@@Z @ 9406 NONAME ; QStyleOptionViewItemV3::QStyleOptionViewItemV3(class QStyleOptionViewItem const &) + ?setMinimumSize@QGraphicsLayoutItem@@QAEXMM@Z @ 9407 NONAME ; void QGraphicsLayoutItem::setMinimumSize(float, float) + ?toHtml@QTextDocumentFragment@@QBE?AVQString@@ABVQByteArray@@@Z @ 9408 NONAME ; class QString QTextDocumentFragment::toHtml(class QByteArray const &) const + ?fromImage@QRasterPixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 9409 NONAME ; void QRasterPixmapData::fromImage(class QImage const &, class QFlags) + ?staticMetaObject@QVBoxLayout@@2UQMetaObject@@B @ 9410 NONAME ; struct QMetaObject const QVBoxLayout::staticMetaObject + ??0QPen@@QAE@ABVQColor@@@Z @ 9411 NONAME ; QPen::QPen(class QColor const &) + ?selectWordAtPos@QLineControl@@QAEXH@Z @ 9412 NONAME ; void QLineControl::selectWordAtPos(int) + ?autoFormatting@QTextEdit@@QBE?AV?$QFlags@W4AutoFormattingFlag@QTextEdit@@@@XZ @ 9413 NONAME ; class QFlags QTextEdit::autoFormatting(void) const + ?horizontalSpacing@QGraphicsAnchorLayout@@QBEMXZ @ 9414 NONAME ; float QGraphicsAnchorLayout::horizontalSpacing(void) const + ?notify_helper@QApplicationPrivate@@QAE_NPAVQObject@@PAVQEvent@@@Z @ 9415 NONAME ; bool QApplicationPrivate::notify_helper(class QObject *, class QEvent *) + ?add@QTextList@@QAEXABVQTextBlock@@@Z @ 9416 NONAME ; void QTextList::add(class QTextBlock const &) + ?lastScreenPos@QGraphicsSceneHoverEvent@@QBE?AVQPoint@@XZ @ 9417 NONAME ; class QPoint QGraphicsSceneHoverEvent::lastScreenPos(void) const + ?actualSize@QIconEngine@@UAE?AVQSize@@ABV2@W4Mode@QIcon@@W4State@4@@Z @ 9418 NONAME ; class QSize QIconEngine::actualSize(class QSize const &, enum QIcon::Mode, enum QIcon::State) + ?qt_metacall@QCompleter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9419 NONAME ; int QCompleter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?stroker@QDashStroker@@QBEPAVQStroker@@XZ @ 9420 NONAME ; class QStroker * QDashStroker::stroker(void) const + ??0QFontMetricsF@@QAE@ABVQFontMetrics@@@Z @ 9421 NONAME ; QFontMetricsF::QFontMetricsF(class QFontMetrics const &) + ?fileName@QTextDocumentWriter@@QBE?AVQString@@XZ @ 9422 NONAME ; class QString QTextDocumentWriter::fileName(void) const + ?tabText@QTabWidget@@QBE?AVQString@@H@Z @ 9423 NONAME ; class QString QTabWidget::tabText(int) const + ??6@YAAAVQDataStream@@AAV0@ABVQPaintBuffer@@@Z @ 9424 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPaintBuffer const &) + ?heightForWidth@QGridLayout@@UBEHH@Z @ 9425 NONAME ; int QGridLayout::heightForWidth(int) const + ?tr@QSplashScreen@@SA?AVQString@@PBD0@Z @ 9426 NONAME ; class QString QSplashScreen::tr(char const *, char const *) + ??0QGraphicsTransform@@QAE@PAVQObject@@@Z @ 9427 NONAME ; QGraphicsTransform::QGraphicsTransform(class QObject *) + ?linkActivated@QTextControl@@IAEXABVQString@@@Z @ 9428 NONAME ; void QTextControl::linkActivated(class QString const &) + ?setYOffset@QGraphicsDropShadowEffect@@QAEXM@Z @ 9429 NONAME ; void QGraphicsDropShadowEffect::setYOffset(float) + ?color@QPalette@@QBEABVQColor@@W4ColorRole@1@@Z @ 9430 NONAME ; class QColor const & QPalette::color(enum QPalette::ColorRole) const + ?exactMatch@QFont@@QBE_NXZ @ 9431 NONAME ; bool QFont::exactMatch(void) const + ?drawRect@QPainter@@QAEXABVQRectF@@@Z @ 9432 NONAME ; void QPainter::drawRect(class QRectF const &) + ?d_func@QPixmapColorizeFilter@@AAEPAVQPixmapColorizeFilterPrivate@@XZ @ 9433 NONAME ; class QPixmapColorizeFilterPrivate * QPixmapColorizeFilter::d_func(void) + ?activate@QLayout@@QAE_NXZ @ 9434 NONAME ; bool QLayout::activate(void) + ?d_func@QToolButton@@ABEPBVQToolButtonPrivate@@XZ @ 9435 NONAME ; class QToolButtonPrivate const * QToolButton::d_func(void) const + ?color@QGraphicsColorizeEffect@@QBE?AVQColor@@XZ @ 9436 NONAME ; class QColor QGraphicsColorizeEffect::color(void) const + ?updateBoundingRect@QGraphicsEffect@@IAEXXZ @ 9437 NONAME ; void QGraphicsEffect::updateBoundingRect(void) + ?insertRows@QStandardItem@@QAEXHH@Z @ 9438 NONAME ; void QStandardItem::insertRows(int, int) + ?setWindowTitle@QMessageBox@@QAEXABVQString@@@Z @ 9439 NONAME ; void QMessageBox::setWindowTitle(class QString const &) + ?widget@QFocusFrame@@QBEPAVQWidget@@XZ @ 9440 NONAME ; class QWidget * QFocusFrame::widget(void) const + ?scaledSize@QMovie@@QAE?AVQSize@@XZ @ 9441 NONAME ; class QSize QMovie::scaledSize(void) + ?scrollContentsBy@QTableView@@MAEXHH@Z @ 9442 NONAME ; void QTableView::scrollContentsBy(int, int) + ?swipeAngle@QSwipeGesture@@QBEMXZ @ 9443 NONAME ; float QSwipeGesture::swipeAngle(void) const + ?decimals@QDoubleValidator@@QBEHXZ @ 9444 NONAME ; int QDoubleValidator::decimals(void) const + ?d_func@QGraphicsView@@AAEPAVQGraphicsViewPrivate@@XZ @ 9445 NONAME ; class QGraphicsViewPrivate * QGraphicsView::d_func(void) + ?keyPressEvent@QAbstractItemView@@MAEXPAVQKeyEvent@@@Z @ 9446 NONAME ; void QAbstractItemView::keyPressEvent(class QKeyEvent *) + ?fileName@QPictureIO@@QBE?AVQString@@XZ @ 9447 NONAME ; class QString QPictureIO::fileName(void) const + ?smallCapsFontPrivate@QFontPrivate@@QBEPAV1@XZ @ 9448 NONAME ; class QFontPrivate * QFontPrivate::smallCapsFontPrivate(void) const + ?contentsChange@QTextDocument@@IAEXHHH@Z @ 9449 NONAME ; void QTextDocument::contentsChange(int, int, int) + ?setBackgroundVisible@QPlainTextEdit@@QAEX_N@Z @ 9450 NONAME ; void QPlainTextEdit::setBackgroundVisible(bool) + ?updateGeometries@QHeaderView@@MAEXXZ @ 9451 NONAME ; void QHeaderView::updateGeometries(void) + ?itemNumber@QTextList@@QBEHABVQTextBlock@@@Z @ 9452 NONAME ; int QTextList::itemNumber(class QTextBlock const &) const + ?setDocument@QGraphicsTextItem@@QAEXPAVQTextDocument@@@Z @ 9453 NONAME ; void QGraphicsTextItem::setDocument(class QTextDocument *) + ?capitalization@QFont@@QBE?AW4Capitalization@1@XZ @ 9454 NONAME ; enum QFont::Capitalization QFont::capitalization(void) const + ??_EQTextList@@UAE@I@Z @ 9455 NONAME ; QTextList::~QTextList(unsigned int) + ?merge@QItemSelection@@QAEXABV1@V?$QFlags@W4SelectionFlag@QItemSelectionModel@@@@@Z @ 9456 NONAME ; void QItemSelection::merge(class QItemSelection const &, class QFlags) + ?qt_metacall@QSwipeGesture@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9457 NONAME ; int QSwipeGesture::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QLCDNumber@@SA?AVQString@@PBD0@Z @ 9458 NONAME ; class QString QLCDNumber::tr(char const *, char const *) + ?trUtf8@QGridLayout@@SA?AVQString@@PBD0@Z @ 9459 NONAME ; class QString QGridLayout::trUtf8(char const *, char const *) + ?tr@QSound@@SA?AVQString@@PBD0@Z @ 9460 NONAME ; class QString QSound::tr(char const *, char const *) + ?metaObject@QLCDNumber@@UBEPBUQMetaObject@@XZ @ 9461 NONAME ; struct QMetaObject const * QLCDNumber::metaObject(void) const + ?tabifyDockWidget@QMainWindow@@QAEXPAVQDockWidget@@0@Z @ 9462 NONAME ; void QMainWindow::tabifyDockWidget(class QDockWidget *, class QDockWidget *) + ?canFetchMore@QFileSystemModel@@UBE_NABVQModelIndex@@@Z @ 9463 NONAME ; bool QFileSystemModel::canFetchMore(class QModelIndex const &) const + ?headerDataChanged@QHeaderView@@QAEXW4Orientation@Qt@@HH@Z @ 9464 NONAME ; void QHeaderView::headerDataChanged(enum Qt::Orientation, int, int) + ?metaObject@QMessageBox@@UBEPBUQMetaObject@@XZ @ 9465 NONAME ; struct QMetaObject const * QMessageBox::metaObject(void) const + ?setTextAlignment@QStandardItem@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 9466 NONAME ; void QStandardItem::setTextAlignment(class QFlags) + ?setWindowFrameMargins@QGraphicsWidget@@QAEXMMMM@Z @ 9467 NONAME ; void QGraphicsWidget::setWindowFrameMargins(float, float, float, float) + ?sectionMoved@QHeaderView@@IAEXHHH@Z @ 9468 NONAME ; void QHeaderView::sectionMoved(int, int, int) + ??0QLayout@@IAE@AAVQLayoutPrivate@@PAV0@PAVQWidget@@@Z @ 9469 NONAME ; QLayout::QLayout(class QLayoutPrivate &, class QLayout *, class QWidget *) + ?reset@QGestureRecognizer@@UAEXPAVQGesture@@@Z @ 9470 NONAME ; void QGestureRecognizer::reset(class QGesture *) + ?cellDoubleClicked@QTableWidget@@IAEXHH@Z @ 9471 NONAME ; void QTableWidget::cellDoubleClicked(int, int) + ?selectionMode@QAbstractItemView@@QBE?AW4SelectionMode@1@XZ @ 9472 NONAME ; enum QAbstractItemView::SelectionMode QAbstractItemView::selectionMode(void) const + ?isClickable@QHeaderView@@QBE_NXZ @ 9473 NONAME ; bool QHeaderView::isClickable(void) const + ?setItemIcon@QComboBox@@QAEXHABVQIcon@@@Z @ 9474 NONAME ; void QComboBox::setItemIcon(int, class QIcon const &) + ??6@YAAAVQDataStream@@AAV0@ABVQTableWidgetItem@@@Z @ 9475 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTableWidgetItem const &) + ?dragMoveEvent@QTextEdit@@MAEXPAVQDragMoveEvent@@@Z @ 9476 NONAME ; void QTextEdit::dragMoveEvent(class QDragMoveEvent *) + ?setOpenExternalLinks@QLabel@@QAEX_N@Z @ 9477 NONAME ; void QLabel::setOpenExternalLinks(bool) + ?resizeEvent@QRubberBand@@MAEXPAVQResizeEvent@@@Z @ 9478 NONAME ; void QRubberBand::resizeEvent(class QResizeEvent *) + ?compressEvent@QApplication@@MAE_NPAVQEvent@@PAVQObject@@PAVQPostEventList@@@Z @ 9479 NONAME ; bool QApplication::compressEvent(class QEvent *, class QObject *, class QPostEventList *) + ??_EQCalendarWidget@@UAE@I@Z @ 9480 NONAME ; QCalendarWidget::~QCalendarWidget(unsigned int) + ?sort@QStandardItemModel@@UAEXHW4SortOrder@Qt@@@Z @ 9481 NONAME ; void QStandardItemModel::sort(int, enum Qt::SortOrder) + ?initStyleOption@QFocusFrame@@IBEXPAVQStyleOption@@@Z @ 9482 NONAME ; void QFocusFrame::initStyleOption(class QStyleOption *) const + ??6@YA?AVQDebug@@V0@ABW4OptionType@QStyleOption@@@Z @ 9483 NONAME ; class QDebug operator<<(class QDebug, enum QStyleOption::OptionType const &) + ?setFocusItem@QGraphicsScene@@QAEXPAVQGraphicsItem@@W4FocusReason@Qt@@@Z @ 9484 NONAME ; void QGraphicsScene::setFocusItem(class QGraphicsItem *, enum Qt::FocusReason) + ?trUtf8@QAbstractSlider@@SA?AVQString@@PBD0@Z @ 9485 NONAME ; class QString QAbstractSlider::trUtf8(char const *, char const *) + ??0QS60MainApplication@@QAE@XZ @ 9486 NONAME ; QS60MainApplication::QS60MainApplication(void) + ?qt_metacall@QMessageBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9487 NONAME ; int QMessageBox::qt_metacall(enum QMetaObject::Call, int, void * *) + ?cleanChanged@QUndoStack@@IAEX_N@Z @ 9488 NONAME ; void QUndoStack::cleanChanged(bool) + ??1QStyleOptionTabBarBase@@QAE@XZ @ 9489 NONAME ; QStyleOptionTabBarBase::~QStyleOptionTabBarBase(void) + ?open@QInputDialog@@QAEXPAVQObject@@PBD@Z @ 9490 NONAME ; void QInputDialog::open(class QObject *, char const *) + ?colorChanged@QGraphicsDropShadowEffect@@IAEXABVQColor@@@Z @ 9491 NONAME ; void QGraphicsDropShadowEffect::colorChanged(class QColor const &) + ??_EQWidgetItemV2@@UAE@I@Z @ 9492 NONAME ; QWidgetItemV2::~QWidgetItemV2(unsigned int) + ?metaObject@QWizardPage@@UBEPBUQMetaObject@@XZ @ 9493 NONAME ; struct QMetaObject const * QWizardPage::metaObject(void) const + ?visualIndex@QTreeView@@ABEHABVQModelIndex@@@Z @ 9494 NONAME ; int QTreeView::visualIndex(class QModelIndex const &) const + ?tr@QVBoxLayout@@SA?AVQString@@PBD0@Z @ 9495 NONAME ; class QString QVBoxLayout::tr(char const *, char const *) + ??0QCheckBox@@QAE@ABVQString@@PAVQWidget@@@Z @ 9496 NONAME ; QCheckBox::QCheckBox(class QString const &, class QWidget *) + ?d_func@QGraphicsGrayscaleEffect@@AAEPAVQGraphicsGrayscaleEffectPrivate@@XZ @ 9497 NONAME ; class QGraphicsGrayscaleEffectPrivate * QGraphicsGrayscaleEffect::d_func(void) + ?trUtf8@QAction@@SA?AVQString@@PBD0H@Z @ 9498 NONAME ; class QString QAction::trUtf8(char const *, char const *, int) + ?staticMetaObject@QGraphicsOpacityEffect@@2UQMetaObject@@B @ 9499 NONAME ; struct QMetaObject const QGraphicsOpacityEffect::staticMetaObject + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@MMMMW4ItemSelectionMode@Qt@@W4SortOrder@4@ABVQTransform@@@Z @ 9500 NONAME ; class QList QGraphicsScene::items(float, float, float, float, enum Qt::ItemSelectionMode, enum Qt::SortOrder, class QTransform const &) const + ?rowsAboutToBeRemoved@QListView@@MAEXABVQModelIndex@@HH@Z @ 9501 NONAME ; void QListView::rowsAboutToBeRemoved(class QModelIndex const &, int, int) + ??0QGraphicsRotation@@QAE@PAVQObject@@@Z @ 9502 NONAME ; QGraphicsRotation::QGraphicsRotation(class QObject *) + ?pageSize@QTextDocument@@QBE?AVQSizeF@@XZ @ 9503 NONAME ; class QSizeF QTextDocument::pageSize(void) const + ?setAlignment@QLabel@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 9504 NONAME ; void QLabel::setAlignment(class QFlags) + ?format@QMovie@@QBE?AVQByteArray@@XZ @ 9505 NONAME ; class QByteArray QMovie::format(void) const + ?minimumHeight@QWidget@@QBEHXZ @ 9506 NONAME ; int QWidget::minimumHeight(void) const + ?commitData@QAbstractItemDelegate@@IAEXPAVQWidget@@@Z @ 9507 NONAME ; void QAbstractItemDelegate::commitData(class QWidget *) + ?horizontalStepsPerItem@QAbstractItemView@@IBEHXZ @ 9508 NONAME ; int QAbstractItemView::horizontalStepsPerItem(void) const + ?information@QMessageBox@@SA?AW4StandardButton@1@PAVQWidget@@ABVQString@@1W421@2@Z @ 9509 NONAME ; enum QMessageBox::StandardButton QMessageBox::information(class QWidget *, class QString const &, class QString const &, enum QMessageBox::StandardButton, enum QMessageBox::StandardButton) + ?qt_paint_device_metric@@YAHPBVQPaintDevice@@W4PaintDeviceMetric@1@@Z @ 9510 NONAME ; int qt_paint_device_metric(class QPaintDevice const *, enum QPaintDevice::PaintDeviceMetric) + ?button@QWizard@@QBEPAVQAbstractButton@@W4WizardButton@1@@Z @ 9511 NONAME ; class QAbstractButton * QWizard::button(enum QWizard::WizardButton) const + ?quadToQuad@QTransform@@SA_NABVQPolygonF@@0AAV1@@Z @ 9512 NONAME ; bool QTransform::quadToQuad(class QPolygonF const &, class QPolygonF const &, class QTransform &) + ?removeItem@QLayout@@QAEXPAVQLayoutItem@@@Z @ 9513 NONAME ; void QLayout::removeItem(class QLayoutItem *) + ?forwardAvailable@QTextBrowser@@IAEX_N@Z @ 9514 NONAME ; void QTextBrowser::forwardAvailable(bool) + ?createCache@QTextureGlyphCache@@QAEXHH@Z @ 9515 NONAME ; void QTextureGlyphCache::createCache(int, int) + ?columnNumber@QTextCursor@@QBEHXZ @ 9516 NONAME ; int QTextCursor::columnNumber(void) const + ?setHandleWidth@QSplitter@@QAEXH@Z @ 9517 NONAME ; void QSplitter::setHandleWidth(int) + ?setExtension@QGraphicsTextItem@@MAEXW4Extension@QGraphicsItem@@ABVQVariant@@@Z @ 9518 NONAME ; void QGraphicsTextItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ??1QGraphicsSceneWheelEvent@@UAE@XZ @ 9519 NONAME ; QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent(void) + ?allSelected@QLineControl@@QBE_NXZ @ 9520 NONAME ; bool QLineControl::allSelected(void) const + ??0QDropEvent@@QAE@ABVQPoint@@V?$QFlags@W4DropAction@Qt@@@@PBVQMimeData@@V?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@W4Type@QEvent@@@Z @ 9521 NONAME ; QDropEvent::QDropEvent(class QPoint const &, class QFlags, class QMimeData const *, class QFlags, class QFlags, enum QEvent::Type) + ?testAttribute_helper@QWidget@@ABE_NW4WidgetAttribute@Qt@@@Z @ 9522 NONAME ; bool QWidget::testAttribute_helper(enum Qt::WidgetAttribute) const + ?setFormat@QImageReader@@QAEXABVQByteArray@@@Z @ 9523 NONAME ; void QImageReader::setFormat(class QByteArray const &) + ?setSoftKeyRole@QAction@@QAEXW4SoftKeyRole@1@@Z @ 9524 NONAME ; void QAction::setSoftKeyRole(enum QAction::SoftKeyRole) + ?setHsvF@QColor@@QAEXMMMM@Z @ 9525 NONAME ; void QColor::setHsvF(float, float, float, float) + ?redoAvailable@QTextControl@@IAEX_N@Z @ 9526 NONAME ; void QTextControl::redoAvailable(bool) + ?getStaticMetaObject@QToolBox@@SAABUQMetaObject@@XZ @ 9527 NONAME ; struct QMetaObject const & QToolBox::getStaticMetaObject(void) + ?setScreenRect@TouchPoint@QTouchEvent@@QAEXABVQRectF@@@Z @ 9528 NONAME ; void QTouchEvent::TouchPoint::setScreenRect(class QRectF const &) + ?sys_font@QApplicationPrivate@@2PAVQFont@@A @ 9529 NONAME ; class QFont * QApplicationPrivate::sys_font + ?subtractOpaqueSiblings@QWidgetPrivate@@QBEXAAVQRegion@@PA_N_N@Z @ 9530 NONAME ; void QWidgetPrivate::subtractOpaqueSiblings(class QRegion &, bool *, bool) const + ?isEditable@QStandardItem@@QBE_NXZ @ 9531 NONAME ; bool QStandardItem::isEditable(void) const + ?setInteractive@QGraphicsView@@QAEX_N@Z @ 9532 NONAME ; void QGraphicsView::setInteractive(bool) + ?setBoundingRegionGranularity@QGraphicsItem@@QAEXM@Z @ 9533 NONAME ; void QGraphicsItem::setBoundingRegionGranularity(float) + ?event@QDial@@MAE_NPAVQEvent@@@Z @ 9534 NONAME ; bool QDial::event(class QEvent *) + ?scanCodeCache@QApplicationPrivate@@0V?$QHash@HI@@A @ 9535 NONAME ; class QHash QApplicationPrivate::scanCodeCache + ??0QLineEdit@@QAE@ABVQString@@PAVQWidget@@@Z @ 9536 NONAME ; QLineEdit::QLineEdit(class QString const &, class QWidget *) + ?setCurveThreshold@QStroker@@QAEXM@Z @ 9537 NONAME ; void QStroker::setCurveThreshold(float) + ?inputMethodQuery@QWidget@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 9538 NONAME ; class QVariant QWidget::inputMethodQuery(enum Qt::InputMethodQuery) const + ?removeRows@QStringListModel@@UAE_NHHABVQModelIndex@@@Z @ 9539 NONAME ; bool QStringListModel::removeRows(int, int, class QModelIndex const &) + ?setBackgroundBrush@QGraphicsScene@@QAEXABVQBrush@@@Z @ 9540 NONAME ; void QGraphicsScene::setBackgroundBrush(class QBrush const &) + ?isValid@QTextBlock@@QBE_NXZ @ 9541 NONAME ; bool QTextBlock::isValid(void) const + ?lastScenePos@QGraphicsSceneHoverEvent@@QBE?AVQPointF@@XZ @ 9542 NONAME ; class QPointF QGraphicsSceneHoverEvent::lastScenePos(void) const + ?weight@QFontInfo@@QBEHXZ @ 9543 NONAME ; int QFontInfo::weight(void) const + ?setFontWeight@QTextEdit@@QAEXH@Z @ 9544 NONAME ; void QTextEdit::setFontWeight(int) + ?qt_metacast@QSplashScreen@@UAEPAXPBD@Z @ 9545 NONAME ; void * QSplashScreen::qt_metacast(char const *) + ?selection@QTextCursor@@QBE?AVQTextDocumentFragment@@XZ @ 9546 NONAME ; class QTextDocumentFragment QTextCursor::selection(void) const + ??1QCloseEvent@@UAE@XZ @ 9547 NONAME ; QCloseEvent::~QCloseEvent(void) + ?done@QDialog@@UAEXH@Z @ 9548 NONAME ; void QDialog::done(int) + ?widgetAt@QApplication@@SAPAVQWidget@@HH@Z @ 9549 NONAME ; class QWidget * QApplication::widgetAt(int, int) + ??_EQTextFrameLayoutData@@UAE@I@Z @ 9550 NONAME ; QTextFrameLayoutData::~QTextFrameLayoutData(unsigned int) + ??0QGraphicsPixelizeEffect@@QAE@PAVQObject@@@Z @ 9551 NONAME ; QGraphicsPixelizeEffect::QGraphicsPixelizeEffect(class QObject *) + ?frameChanged@QMovie@@IAEXH@Z @ 9552 NONAME ; void QMovie::frameChanged(int) + ?geometry@QWidgetItem@@UBE?AVQRect@@XZ @ 9553 NONAME ; class QRect QWidgetItem::geometry(void) const + ??0QTextFrame@@IAE@AAVQTextFramePrivate@@PAVQTextDocument@@@Z @ 9554 NONAME ; QTextFrame::QTextFrame(class QTextFramePrivate &, class QTextDocument *) + ?qt_image_cleanup_hook_64@@3P6AX_J@ZA @ 9555 NONAME ; void (*qt_image_cleanup_hook_64)(long long) + ?eventFilter@QStyledItemDelegate@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 9556 NONAME ; bool QStyledItemDelegate::eventFilter(class QObject *, class QEvent *) + ??0QTextureGlyphCache@@QAE@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 9557 NONAME ; QTextureGlyphCache::QTextureGlyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &) + ?read@QImageReader@@QAE_NPAVQImage@@@Z @ 9558 NONAME ; bool QImageReader::read(class QImage *) + ?trUtf8@QDialogButtonBox@@SA?AVQString@@PBD0@Z @ 9559 NONAME ; class QString QDialogButtonBox::trUtf8(char const *, char const *) + ??0QDateTimeEdit@@QAE@ABVQDate@@PAVQWidget@@@Z @ 9560 NONAME ; QDateTimeEdit::QDateTimeEdit(class QDate const &, class QWidget *) + ?pixelIndex@QImage@@QBEHHH@Z @ 9561 NONAME ; int QImage::pixelIndex(int, int) const + ?windowText@QPalette@@QBEABVQBrush@@XZ @ 9562 NONAME ; class QBrush const & QPalette::windowText(void) const + ?find@QTextDocument@@QBE?AVQTextCursor@@ABVQRegExp@@HV?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 9563 NONAME ; class QTextCursor QTextDocument::find(class QRegExp const &, int, class QFlags) const + ?redoText@QUndoGroup@@QBE?AVQString@@XZ @ 9564 NONAME ; class QString QUndoGroup::redoText(void) const + ?data@QProxyModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 9565 NONAME ; class QVariant QProxyModel::data(class QModelIndex const &, int) const + ?d_func@QTableWidget@@AAEPAVQTableWidgetPrivate@@XZ @ 9566 NONAME ; class QTableWidgetPrivate * QTableWidget::d_func(void) + ?shape@QGraphicsPixmapItem@@UBE?AVQPainterPath@@XZ @ 9567 NONAME ; class QPainterPath QGraphicsPixmapItem::shape(void) const + ??0QScrollArea@@IAE@AAVQScrollAreaPrivate@@PAVQWidget@@@Z @ 9568 NONAME ; QScrollArea::QScrollArea(class QScrollAreaPrivate &, class QWidget *) + ?autoDetectImageFormat@QImageReader@@QBE_NXZ @ 9569 NONAME ; bool QImageReader::autoDetectImageFormat(void) const + ?completeChanged@QWizardPage@@IAEXXZ @ 9570 NONAME ; void QWizardPage::completeChanged(void) + ?inputMethodQuery@QAbstractSpinBox@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 9571 NONAME ; class QVariant QAbstractSpinBox::inputMethodQuery(enum Qt::InputMethodQuery) const + ?processCurrentSubpath@QStroker@@MAEXXZ @ 9572 NONAME ; void QStroker::processCurrentSubpath(void) + ?cleanupMultitouch@QApplicationPrivate@@QAEXXZ @ 9573 NONAME ; void QApplicationPrivate::cleanupMultitouch(void) + ?qt_metacall@QAction@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9574 NONAME ; int QAction::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QTextObject@@IAE@AAVQTextObjectPrivate@@PAVQTextDocument@@@Z @ 9575 NONAME ; QTextObject::QTextObject(class QTextObjectPrivate &, class QTextDocument *) + ?d_func@QFontComboBox@@AAEPAVQFontComboBoxPrivate@@XZ @ 9576 NONAME ; class QFontComboBoxPrivate * QFontComboBox::d_func(void) + ?trUtf8@QInputDialog@@SA?AVQString@@PBD0@Z @ 9577 NONAME ; class QString QInputDialog::trUtf8(char const *, char const *) + ?spacerItem@QLayoutItem@@UAEPAVQSpacerItem@@XZ @ 9578 NONAME ; class QSpacerItem * QLayoutItem::spacerItem(void) + ?scroll@QRasterPixmapData@@UAE_NHHABVQRect@@@Z @ 9579 NONAME ; bool QRasterPixmapData::scroll(int, int, class QRect const &) + ?addStack@QUndoGroup@@QAEXPAVQUndoStack@@@Z @ 9580 NONAME ; void QUndoGroup::addStack(class QUndoStack *) + ?getStaticMetaObject@QSizePolicy@@SAABUQMetaObject@@XZ @ 9581 NONAME ; struct QMetaObject const & QSizePolicy::getStaticMetaObject(void) + ?setTabStopWidth@QPlainTextEdit@@QAEXH@Z @ 9582 NONAME ; void QPlainTextEdit::setTabStopWidth(int) + ?setGroup@QGraphicsItem@@QAEXPAVQGraphicsItemGroup@@@Z @ 9583 NONAME ; void QGraphicsItem::setGroup(class QGraphicsItemGroup *) + ?q_func@QWidgetPrivate@@ABEPBVQWidget@@XZ @ 9584 NONAME ; class QWidget const * QWidgetPrivate::q_func(void) const + ??1QIconEngineFactoryInterface@@UAE@XZ @ 9585 NONAME ; QIconEngineFactoryInterface::~QIconEngineFactoryInterface(void) + ?home@QLineEdit@@QAEX_N@Z @ 9586 NONAME ; void QLineEdit::home(bool) + ?itemText@QToolBox@@QBE?AVQString@@H@Z @ 9587 NONAME ; class QString QToolBox::itemText(int) const + ?close@QGraphicsWidget@@QAE_NXZ @ 9588 NONAME ; bool QGraphicsWidget::close(void) + ??MQTextFragment@@QBE_NABV0@@Z @ 9589 NONAME ; bool QTextFragment::operator<(class QTextFragment const &) const + ?d_func@QGridLayout@@ABEPBVQGridLayoutPrivate@@XZ @ 9590 NONAME ; class QGridLayoutPrivate const * QGridLayout::d_func(void) const + ?setSelectionModel@QTreeView@@UAEXPAVQItemSelectionModel@@@Z @ 9591 NONAME ; void QTreeView::setSelectionModel(class QItemSelectionModel *) + ?setColorGroup@QPalette@@AAEXW4ColorGroup@1@ABVQBrush@@111111111111111111@Z @ 9592 NONAME ; void QPalette::setColorGroup(enum QPalette::ColorGroup, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &) + ?dx@QTransform@@QBEMXZ @ 9593 NONAME ; float QTransform::dx(void) const + ?itemWidget@QTreeWidget@@QBEPAVQWidget@@PAVQTreeWidgetItem@@H@Z @ 9594 NONAME ; class QWidget * QTreeWidget::itemWidget(class QTreeWidgetItem *, int) const + ?m32@QTransform@@QBEMXZ @ 9595 NONAME ; float QTransform::m32(void) const + ?selectedIndexes@QTreeView@@MBE?AV?$QList@VQModelIndex@@@@XZ @ 9596 NONAME ; class QList QTreeView::selectedIndexes(void) const + ?resizeGripsVisible@QColumnView@@QBE_NXZ @ 9597 NONAME ; bool QColumnView::resizeGripsVisible(void) const + ?write@QListWidgetItem@@UBEXAAVQDataStream@@@Z @ 9598 NONAME ; void QListWidgetItem::write(class QDataStream &) const + ?underlinePosition@QFontEngine@@UBE?AUQFixed@@XZ @ 9599 NONAME ; struct QFixed QFontEngine::underlinePosition(void) const + ?metaObject@QMainWindow@@UBEPBUQMetaObject@@XZ @ 9600 NONAME ; struct QMetaObject const * QMainWindow::metaObject(void) const + ?critical@QMessageBox@@SAHPAVQWidget@@ABVQString@@1HHH@Z @ 9601 NONAME ; int QMessageBox::critical(class QWidget *, class QString const &, class QString const &, int, int, int) + ??0QStyleOptionMenuItem@@QAE@ABV0@@Z @ 9602 NONAME ; QStyleOptionMenuItem::QStyleOptionMenuItem(class QStyleOptionMenuItem const &) + ?setSystemFont@QApplicationPrivate@@SAXABVQFont@@@Z @ 9603 NONAME ; void QApplicationPrivate::setSystemFont(class QFont const &) + ?insert@QLineControl@@QAEXABVQString@@@Z @ 9604 NONAME ; void QLineControl::insert(class QString const &) + ?textDirection@QProgressBar@@QAE?AW4Direction@1@XZ @ 9605 NONAME ; enum QProgressBar::Direction QProgressBar::textDirection(void) + ?unpolish@QStyle@@UAEXPAVQApplication@@@Z @ 9606 NONAME ; void QStyle::unpolish(class QApplication *) + ?redo@QPlainTextEdit@@QAEXXZ @ 9607 NONAME ; void QPlainTextEdit::redo(void) + ?SetInlineEditingCursorVisibilityL@QCoeFepInputContext@@UAEXH@Z @ 9608 NONAME ; void QCoeFepInputContext::SetInlineEditingCursorVisibilityL(int) + ??6@YA?AVQDebug@@V0@V?$QFlags@W4StateFlag@QStyle@@@@@Z @ 9609 NONAME ; class QDebug operator<<(class QDebug, class QFlags) + ?test@Parser@QCss@@QAE_NW4TokenType@2@@Z @ 9610 NONAME ; bool QCss::Parser::test(enum QCss::TokenType) + ?alignment@QTextBlockFormat@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@XZ @ 9611 NONAME ; class QFlags QTextBlockFormat::alignment(void) const + ??1QFont@@QAE@XZ @ 9612 NONAME ; QFont::~QFont(void) + ?extension@QGraphicsTextItem@@MBE?AVQVariant@@ABV2@@Z @ 9613 NONAME ; class QVariant QGraphicsTextItem::extension(class QVariant const &) const + ?metaObject@QTextList@@UBEPBUQMetaObject@@XZ @ 9614 NONAME ; struct QMetaObject const * QTextList::metaObject(void) const + ??1QStyleOptionTabV3@@QAE@XZ @ 9615 NONAME ; QStyleOptionTabV3::~QStyleOptionTabV3(void) + ?tabAt@QTabBar@@QBEHABVQPoint@@@Z @ 9616 NONAME ; int QTabBar::tabAt(class QPoint const &) const + ?data@QTableWidgetItem@@UBE?AVQVariant@@H@Z @ 9617 NONAME ; class QVariant QTableWidgetItem::data(int) const + ?addItem@QBoxLayout@@UAEXPAVQLayoutItem@@@Z @ 9618 NONAME ; void QBoxLayout::addItem(class QLayoutItem *) + ??1QGestureRecognizer@@UAE@XZ @ 9619 NONAME ; QGestureRecognizer::~QGestureRecognizer(void) + ??0QStandardItem@@IAE@ABV0@@Z @ 9620 NONAME ; QStandardItem::QStandardItem(class QStandardItem const &) + ?mouseReleaseEvent@QAbstractButton@@MAEXPAVQMouseEvent@@@Z @ 9621 NONAME ; void QAbstractButton::mouseReleaseEvent(class QMouseEvent *) + ?mapFromParent@QGraphicsItem@@QBE?AVQPainterPath@@ABV2@@Z @ 9622 NONAME ; class QPainterPath QGraphicsItem::mapFromParent(class QPainterPath const &) const + ?setUnderlineColor@QTextCharFormat@@QAEXABVQColor@@@Z @ 9623 NONAME ; void QTextCharFormat::setUnderlineColor(class QColor const &) + ?mouseDoubleClickEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 9624 NONAME ; void QGraphicsProxyWidget::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?editFocusChange@QLineControl@@IAEX_N@Z @ 9625 NONAME ; void QLineControl::editFocusChange(bool) + ?frameShadow@QFrame@@QBE?AW4Shadow@1@XZ @ 9626 NONAME ; enum QFrame::Shadow QFrame::frameShadow(void) const + ??1QSplitter@@UAE@XZ @ 9627 NONAME ; QSplitter::~QSplitter(void) + ?hasHotSpot@QGesture@@QBE_NXZ @ 9628 NONAME ; bool QGesture::hasHotSpot(void) const + ?setPanelModality@QGraphicsItem@@QAEXW4PanelModality@1@@Z @ 9629 NONAME ; void QGraphicsItem::setPanelModality(enum QGraphicsItem::PanelModality) + ?doItemsLayout@QListView@@UAEXXZ @ 9630 NONAME ; void QListView::doItemsLayout(void) + ??0QMatrix@@AAE@MMMMMM_N@Z @ 9631 NONAME ; QMatrix::QMatrix(float, float, float, float, float, float, bool) + ?resizeEvent@QMdiArea@@MAEXPAVQResizeEvent@@@Z @ 9632 NONAME ; void QMdiArea::resizeEvent(class QResizeEvent *) + ?position@QTextCursor@@QBEHXZ @ 9633 NONAME ; int QTextCursor::position(void) const + ?pictureFormat@QPictureIO@@SA?AVQByteArray@@ABVQString@@@Z @ 9634 NONAME ; class QByteArray QPictureIO::pictureFormat(class QString const &) + ?sceneEffectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@XZ @ 9635 NONAME ; class QRectF QGraphicsItemPrivate::sceneEffectiveBoundingRect(void) const + ??6@YAAAVQDataStream@@AAV0@ABVQFont@@@Z @ 9636 NONAME ; class QDataStream & operator<<(class QDataStream &, class QFont const &) + ?format@QTextInlineObject@@QBE?AVQTextFormat@@XZ @ 9637 NONAME ; class QTextFormat QTextInlineObject::format(void) const + ??0QStringListModel@@QAE@ABVQStringList@@PAVQObject@@@Z @ 9638 NONAME ; QStringListModel::QStringListModel(class QStringList const &, class QObject *) + ?trUtf8@QListWidget@@SA?AVQString@@PBD0H@Z @ 9639 NONAME ; class QString QListWidget::trUtf8(char const *, char const *, int) + ?charFormat@QTextFormatCollection@@QBE?AVQTextCharFormat@@H@Z @ 9640 NONAME ; class QTextCharFormat QTextFormatCollection::charFormat(int) const + ?format@QTextTable@@QBE?AVQTextTableFormat@@XZ @ 9641 NONAME ; class QTextTableFormat QTextTable::format(void) const + ?trUtf8@QScrollBar@@SA?AVQString@@PBD0@Z @ 9642 NONAME ; class QString QScrollBar::trUtf8(char const *, char const *) + ?setDocument@QSyntaxHighlighter@@QAEXPAVQTextDocument@@@Z @ 9643 NONAME ; void QSyntaxHighlighter::setDocument(class QTextDocument *) + ?currentBlock@QSyntaxHighlighter@@IBE?AVQTextBlock@@XZ @ 9644 NONAME ; class QTextBlock QSyntaxHighlighter::currentBlock(void) const + ??1QSplashScreen@@UAE@XZ @ 9645 NONAME ; QSplashScreen::~QSplashScreen(void) + ?qt_metacall@QFileDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9646 NONAME ; int QFileDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ?drawRects@QPainter@@QAEXABV?$QVector@VQRectF@@@@@Z @ 9647 NONAME ; void QPainter::drawRects(class QVector const &) + ?setTabStopWidth@QTextEdit@@QAEXH@Z @ 9648 NONAME ; void QTextEdit::setTabStopWidth(int) + ?count@QGraphicsLinearLayout@@UBEHXZ @ 9649 NONAME ; int QGraphicsLinearLayout::count(void) const + ?stop@QMovie@@QAEXXZ @ 9650 NONAME ; void QMovie::stop(void) + ?drawConvexPolygon@QPainter@@QAEXABVQPolygonF@@@Z @ 9651 NONAME ; void QPainter::drawConvexPolygon(class QPolygonF const &) + ?globalX@QContextMenuEvent@@QBEHXZ @ 9652 NONAME ; int QContextMenuEvent::globalX(void) const + ?clicked@QCalendarWidget@@IAEXABVQDate@@@Z @ 9653 NONAME ; void QCalendarWidget::clicked(class QDate const &) + ?mapToParent@QWidget@@QBE?AVQPoint@@ABV2@@Z @ 9654 NONAME ; class QPoint QWidget::mapToParent(class QPoint const &) const + ?getStaticMetaObject@QGraphicsOpacityEffect@@SAABUQMetaObject@@XZ @ 9655 NONAME ; struct QMetaObject const & QGraphicsOpacityEffect::getStaticMetaObject(void) + ?itemAt@QGraphicsView@@QBEPAVQGraphicsItem@@HH@Z @ 9656 NONAME ; class QGraphicsItem * QGraphicsView::itemAt(int, int) const + ?begin@QDashStroker@@UAEXPAX@Z @ 9657 NONAME ; void QDashStroker::begin(void *) + ?device@QTextDocumentWriter@@QBEPAVQIODevice@@XZ @ 9658 NONAME ; class QIODevice * QTextDocumentWriter::device(void) const + ?createObject@QTextDocument@@MAEPAVQTextObject@@ABVQTextFormat@@@Z @ 9659 NONAME ; class QTextObject * QTextDocument::createObject(class QTextFormat const &) + ??8QFont@@QBE_NABV0@@Z @ 9660 NONAME ; bool QFont::operator==(class QFont const &) const + ?toolTip@QTableWidgetItem@@QBE?AVQString@@XZ @ 9661 NONAME ; class QString QTableWidgetItem::toolTip(void) const + ??0QVector3D@@QAE@MMM@Z @ 9662 NONAME ; QVector3D::QVector3D(float, float, float) + ??0QGraphicsOpacityEffect@@QAE@PAVQObject@@@Z @ 9663 NONAME ; QGraphicsOpacityEffect::QGraphicsOpacityEffect(class QObject *) + ?endTangent@QBezier@@QBE?AVQLineF@@XZ @ 9664 NONAME ; class QLineF QBezier::endTangent(void) const + ?staticMetaObject@QMdiArea@@2UQMetaObject@@B @ 9665 NONAME ; struct QMetaObject const QMdiArea::staticMetaObject + ?dragEnterEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 9666 NONAME ; void QGraphicsProxyWidget::dragEnterEvent(class QGraphicsSceneDragDropEvent *) + ??0QStyleOptionViewItemV2@@IAE@H@Z @ 9667 NONAME ; QStyleOptionViewItemV2::QStyleOptionViewItemV2(int) + ?isAlien@QApplicationPrivate@@CA_NPAVQWidget@@@Z @ 9668 NONAME ; bool QApplicationPrivate::isAlien(class QWidget *) + ?createDefaultWindowSurface_sys@QWidgetPrivate@@QAEPAVQWindowSurface@@XZ @ 9669 NONAME ; class QWindowSurface * QWidgetPrivate::createDefaultWindowSurface_sys(void) + ?supportsExtension@QGraphicsItem@@MBE_NW4Extension@1@@Z @ 9670 NONAME ; bool QGraphicsItem::supportsExtension(enum QGraphicsItem::Extension) const + ?openExternalLinks@QTextBrowser@@QBE_NXZ @ 9671 NONAME ; bool QTextBrowser::openExternalLinks(void) const + ?d_func@QGraphicsSceneMoveEvent@@AAEPAVQGraphicsSceneMoveEventPrivate@@XZ @ 9672 NONAME ; class QGraphicsSceneMoveEventPrivate * QGraphicsSceneMoveEvent::d_func(void) + ?wordWrap@QTreeView@@QBE_NXZ @ 9673 NONAME ; bool QTreeView::wordWrap(void) const + ?unpolish@QWindowsStyle@@UAEXPAVQWidget@@@Z @ 9674 NONAME ; void QWindowsStyle::unpolish(class QWidget *) + ??0QPaintEngineExReplayer@@QAE@XZ @ 9675 NONAME ; QPaintEngineExReplayer::QPaintEngineExReplayer(void) + ?qDrawPlainRect@@YAXPAVQPainter@@HHHHABVQColor@@HPBVQBrush@@@Z @ 9676 NONAME ; void qDrawPlainRect(class QPainter *, int, int, int, int, class QColor const &, int, class QBrush const *) + ?x@QTextLine@@QBEMXZ @ 9677 NONAME ; float QTextLine::x(void) const + ?drawArc@QPainter@@QAEXABVQRect@@HH@Z @ 9678 NONAME ; void QPainter::drawArc(class QRect const &, int, int) + ?center@QRadialGradient@@QBE?AVQPointF@@XZ @ 9679 NONAME ; class QPointF QRadialGradient::center(void) const + ?formatIndex@QTextInlineObject@@QBEHXZ @ 9680 NONAME ; int QTextInlineObject::formatIndex(void) const + ?lastOffset@QPanGesture@@QBE?AVQPointF@@XZ @ 9681 NONAME ; class QPointF QPanGesture::lastOffset(void) const + ?redo@QTextDocument@@QAEXXZ @ 9682 NONAME ; void QTextDocument::redo(void) + ?setTabButton@QTabBar@@QAEXHW4ButtonPosition@1@PAVQWidget@@@Z @ 9683 NONAME ; void QTabBar::setTabButton(int, enum QTabBar::ButtonPosition, class QWidget *) + ?childEvent@QMdiArea@@MAEXPAVQChildEvent@@@Z @ 9684 NONAME ; void QMdiArea::childEvent(class QChildEvent *) + ?d_func@QDoubleSpinBox@@AAEPAVQDoubleSpinBoxPrivate@@XZ @ 9685 NONAME ; class QDoubleSpinBoxPrivate * QDoubleSpinBox::d_func(void) + ?setMouseTracking@QWidget@@QAEX_N@Z @ 9686 NONAME ; void QWidget::setMouseTracking(bool) + ?setDoubleDecimals@QInputDialog@@QAEXH@Z @ 9687 NONAME ; void QInputDialog::setDoubleDecimals(int) + ?HandleResourceChangeL@QS60MainAppUi@@UAEXH@Z @ 9688 NONAME ; void QS60MainAppUi::HandleResourceChangeL(int) + ?contentsChanged@QTextDocument@@IAEXXZ @ 9689 NONAME ; void QTextDocument::contentsChanged(void) + ?trUtf8@QDrag@@SA?AVQString@@PBD0@Z @ 9690 NONAME ; class QString QDrag::trUtf8(char const *, char const *) + ?createWidgetItem@QLayoutPrivate@@SAPAVQWidgetItem@@PBVQLayout@@PAVQWidget@@@Z @ 9691 NONAME ; class QWidgetItem * QLayoutPrivate::createWidgetItem(class QLayout const *, class QWidget *) + ?removeColumns@QTextTable@@QAEXHH@Z @ 9692 NONAME ; void QTextTable::removeColumns(int, int) + ?clearMinimumDate@QDateTimeEdit@@QAEXXZ @ 9693 NONAME ; void QDateTimeEdit::clearMinimumDate(void) + ??0QTextFrameFormat@@IAE@ABVQTextFormat@@@Z @ 9694 NONAME ; QTextFrameFormat::QTextFrameFormat(class QTextFormat const &) + ??0QTextFragment@@QAE@ABV0@@Z @ 9695 NONAME ; QTextFragment::QTextFragment(class QTextFragment const &) + ?closeEvent@QDockWidget@@MAEXPAVQCloseEvent@@@Z @ 9696 NONAME ; void QDockWidget::closeEvent(class QCloseEvent *) + ?setNavigationBarVisible@QCalendarWidget@@QAEX_N@Z @ 9697 NONAME ; void QCalendarWidget::setNavigationBarVisible(bool) + ??_EQMovie@@UAE@I@Z @ 9698 NONAME ; QMovie::~QMovie(unsigned int) + ?tr@QTextDocument@@SA?AVQString@@PBD0@Z @ 9699 NONAME ; class QString QTextDocument::tr(char const *, char const *) + ?staticMetaObject@QGuiPlatformPlugin@@2UQMetaObject@@B @ 9700 NONAME ; struct QMetaObject const QGuiPlatformPlugin::staticMetaObject + ?cursor@QGraphicsItem@@QBE?AVQCursor@@XZ @ 9701 NONAME ; class QCursor QGraphicsItem::cursor(void) const + ?event@QProgressBar@@MAE_NPAVQEvent@@@Z @ 9702 NONAME ; bool QProgressBar::event(class QEvent *) + ?pixmap@QWizard@@QBE?AVQPixmap@@W4WizardPixmap@1@@Z @ 9703 NONAME ; class QPixmap QWizard::pixmap(enum QWizard::WizardPixmap) const + ?cursorRect@QPlainTextEdit@@QBE?AVQRect@@ABVQTextCursor@@@Z @ 9704 NONAME ; class QRect QPlainTextEdit::cursorRect(class QTextCursor const &) const + ?setWidth@QTextImageFormat@@QAEXM@Z @ 9705 NONAME ; void QTextImageFormat::setWidth(float) + ?showRow@QTableView@@QAEXH@Z @ 9706 NONAME ; void QTableView::showRow(int) + ??1QItemEditorFactory@@UAE@XZ @ 9707 NONAME ; QItemEditorFactory::~QItemEditorFactory(void) + ?fontFamily@QTextCharFormat@@QBE?AVQString@@XZ @ 9708 NONAME ; class QString QTextCharFormat::fontFamily(void) const + ?setKerning@QFont@@QAEX_N@Z @ 9709 NONAME ; void QFont::setKerning(bool) + ?winId@QWidget@@QBEPAVCCoeControl@@XZ @ 9710 NONAME ; class CCoeControl * QWidget::winId(void) const + ?d_func@QListWidget@@AAEPAVQListWidgetPrivate@@XZ @ 9711 NONAME ; class QListWidgetPrivate * QListWidget::d_func(void) + ??1QMessageBox@@UAE@XZ @ 9712 NONAME ; QMessageBox::~QMessageBox(void) + ?paintOnScreen@QWidgetPrivate@@QBE_NXZ @ 9713 NONAME ; bool QWidgetPrivate::paintOnScreen(void) const + ?trUtf8@QCoeFepInputContext@@SA?AVQString@@PBD0H@Z @ 9714 NONAME ; class QString QCoeFepInputContext::trUtf8(char const *, char const *, int) + ?setCorrectionMode@QAbstractSpinBox@@QAEXW4CorrectionMode@1@@Z @ 9715 NONAME ; void QAbstractSpinBox::setCorrectionMode(enum QAbstractSpinBox::CorrectionMode) + ?translate@QPolygon@@QAEXABVQPoint@@@Z @ 9716 NONAME ; void QPolygon::translate(class QPoint const &) + ??0QTextBrowser@@QAE@PAVQWidget@@@Z @ 9717 NONAME ; QTextBrowser::QTextBrowser(class QWidget *) + ?setFrameRect@QFrame@@QAEXABVQRect@@@Z @ 9718 NONAME ; void QFrame::setFrameRect(class QRect const &) + ?clipboard@QApplication@@SAPAVQClipboard@@XZ @ 9719 NONAME ; class QClipboard * QApplication::clipboard(void) + ?setPos@QGraphicsSceneHoverEvent@@QAEXABVQPointF@@@Z @ 9720 NONAME ; void QGraphicsSceneHoverEvent::setPos(class QPointF const &) + ??0QLinearGradient@@QAE@ABVQPointF@@0@Z @ 9721 NONAME ; QLinearGradient::QLinearGradient(class QPointF const &, class QPointF const &) + ?wrapping@QDial@@QBE_NXZ @ 9722 NONAME ; bool QDial::wrapping(void) const + ?endMacro@QUndoStack@@QAEXXZ @ 9723 NONAME ; void QUndoStack::endMacro(void) + ?underMouse@QWidget@@QBE_NXZ @ 9724 NONAME ; bool QWidget::underMouse(void) const + ?setMask@QRasterPixmapData@@UAEXABVQBitmap@@@Z @ 9725 NONAME ; void QRasterPixmapData::setMask(class QBitmap const &) + ??1QDashStroker@@UAE@XZ @ 9726 NONAME ; QDashStroker::~QDashStroker(void) + ?d_func@QGraphicsEllipseItem@@ABEPBVQGraphicsEllipseItemPrivate@@XZ @ 9727 NONAME ; class QGraphicsEllipseItemPrivate const * QGraphicsEllipseItem::d_func(void) const + ??6@YAAAVQDataStream@@AAV0@ABVQPainterPath@@@Z @ 9728 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPainterPath const &) + ?moveTo@QStrokerOps@@QAEXMM@Z @ 9729 NONAME ; void QStrokerOps::moveTo(float, float) + ?staticMetaObject@QMdiSubWindow@@2UQMetaObject@@B @ 9730 NONAME ; struct QMetaObject const QMdiSubWindow::staticMetaObject + ?setItemDelegate@QDataWidgetMapper@@QAEXPAVQAbstractItemDelegate@@@Z @ 9731 NONAME ; void QDataWidgetMapper::setItemDelegate(class QAbstractItemDelegate *) + ?timerEvent@QAbstractSlider@@MAEXPAVQTimerEvent@@@Z @ 9732 NONAME ; void QAbstractSlider::timerEvent(class QTimerEvent *) + ?helpRequested@QWizard@@IAEXXZ @ 9733 NONAME ; void QWizard::helpRequested(void) + ?registerGestureRecognizer@QApplication@@QAE?AW4GestureType@Qt@@PAVQGestureRecognizer@@@Z @ 9734 NONAME ; enum Qt::GestureType QApplication::registerGestureRecognizer(class QGestureRecognizer *) + ??0QTableWidgetItem@@QAE@ABVQIcon@@ABVQString@@H@Z @ 9735 NONAME ; QTableWidgetItem::QTableWidgetItem(class QIcon const &, class QString const &, int) + ?validatePage@QWizardPage@@UAE_NXZ @ 9736 NONAME ; bool QWizardPage::validatePage(void) + ?itemCollapsed@QTreeWidget@@IAEXPAVQTreeWidgetItem@@@Z @ 9737 NONAME ; void QTreeWidget::itemCollapsed(class QTreeWidgetItem *) + ?palette@QLineControl@@QBEABVQPalette@@XZ @ 9738 NONAME ; class QPalette const & QLineControl::palette(void) const + ?contains@QGraphicsPixmapItem@@UBE_NABVQPointF@@@Z @ 9739 NONAME ; bool QGraphicsPixmapItem::contains(class QPointF const &) const + ??1QTextTableFormat@@QAE@XZ @ 9740 NONAME ; QTextTableFormat::~QTextTableFormat(void) + ?qt_metacall@QGraphicsScene@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9741 NONAME ; int QGraphicsScene::qt_metacall(enum QMetaObject::Call, int, void * *) + ?strength@QGraphicsGrayscaleEffect@@QBEMXZ @ 9742 NONAME ; float QGraphicsGrayscaleEffect::strength(void) const + ??1QStyleOptionDockWidget@@QAE@XZ @ 9743 NONAME ; QStyleOptionDockWidget::~QStyleOptionDockWidget(void) + ?horizontalScrollBarPolicy@QAbstractScrollArea@@QBE?AW4ScrollBarPolicy@Qt@@XZ @ 9744 NONAME ; enum Qt::ScrollBarPolicy QAbstractScrollArea::horizontalScrollBarPolicy(void) const + ?contextMenuEvent@QScrollBar@@MAEXPAVQContextMenuEvent@@@Z @ 9745 NONAME ; void QScrollBar::contextMenuEvent(class QContextMenuEvent *) + ?autoRepeatInterval@QAbstractButton@@QBEHXZ @ 9746 NONAME ; int QAbstractButton::autoRepeatInterval(void) const + ?qt_metacast@QEventDispatcherS60@@UAEPAXPBD@Z @ 9747 NONAME ; void * QEventDispatcherS60::qt_metacast(char const *) + ?changeEvent@QAbstractSpinBox@@MAEXPAVQEvent@@@Z @ 9748 NONAME ; void QAbstractSpinBox::changeEvent(class QEvent *) + ??1QTextFrameFormat@@QAE@XZ @ 9749 NONAME ; QTextFrameFormat::~QTextFrameFormat(void) + ?metaObject@QIconEnginePluginV2@@UBEPBUQMetaObject@@XZ @ 9750 NONAME ; struct QMetaObject const * QIconEnginePluginV2::metaObject(void) const + ?tr@QGraphicsView@@SA?AVQString@@PBD0H@Z @ 9751 NONAME ; class QString QGraphicsView::tr(char const *, char const *, int) + ?sectionCount@QDateTimeEdit@@QBEHXZ @ 9752 NONAME ; int QDateTimeEdit::sectionCount(void) const + ?tr@QFontComboBox@@SA?AVQString@@PBD0H@Z @ 9753 NONAME ; class QString QFontComboBox::tr(char const *, char const *, int) + ?set_pal@QApplicationPrivate@@2PAVQPalette@@A @ 9754 NONAME ; class QPalette * QApplicationPrivate::set_pal + ?ensureSceneTransform@QGraphicsItemPrivate@@QAEXXZ @ 9755 NONAME ; void QGraphicsItemPrivate::ensureSceneTransform(void) + ?staticMetaObject@QHeaderView@@2UQMetaObject@@B @ 9756 NONAME ; struct QMetaObject const QHeaderView::staticMetaObject + ?dragMoveEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 9757 NONAME ; void QGraphicsItem::dragMoveEvent(class QGraphicsSceneDragDropEvent *) + ?pixelMetric@QWindowsStyle@@UBEHW4PixelMetric@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 9758 NONAME ; int QWindowsStyle::pixelMetric(enum QStyle::PixelMetric, class QStyleOption const *, class QWidget const *) const + ?toVector3DAffine@QVector4D@@QBE?AVQVector3D@@XZ @ 9759 NONAME ; class QVector3D QVector4D::toVector3DAffine(void) const + ?emitCubicTo@QStrokerOps@@IAEXMMMMMM@Z @ 9760 NONAME ; void QStrokerOps::emitCubicTo(float, float, float, float, float, float) + ?metric@QPixmap@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 9761 NONAME ; int QPixmap::metric(enum QPaintDevice::PaintDeviceMetric) const + ?sortItems@QListWidget@@QAEXW4SortOrder@Qt@@@Z @ 9762 NONAME ; void QListWidget::sortItems(enum Qt::SortOrder) + ?trUtf8@QTextDocument@@SA?AVQString@@PBD0H@Z @ 9763 NONAME ; class QString QTextDocument::trUtf8(char const *, char const *, int) + ??0QPanGesture@@QAE@PAVQObject@@@Z @ 9764 NONAME ; QPanGesture::QPanGesture(class QObject *) + ?clipRegion@QWidgetPrivate@@QBE?AVQRegion@@XZ @ 9765 NONAME ; class QRegion QWidgetPrivate::clipRegion(void) const + ?matrix@QGraphicsItem@@QBE?AVQMatrix@@XZ @ 9766 NONAME ; class QMatrix QGraphicsItem::matrix(void) const + ?fileName@QImageReader@@QBE?AVQString@@XZ @ 9767 NONAME ; class QString QImageReader::fileName(void) const + ?setText@QTextLayout@@QAEXABVQString@@@Z @ 9768 NONAME ; void QTextLayout::setText(class QString const &) + ?frameRect@QMovie@@QBE?AVQRect@@XZ @ 9769 NONAME ; class QRect QMovie::frameRect(void) const + ?setPrefix@QDoubleSpinBox@@QAEXABVQString@@@Z @ 9770 NONAME ; void QDoubleSpinBox::setPrefix(class QString const &) + ?metaObject@QRadioButton@@UBEPBUQMetaObject@@XZ @ 9771 NONAME ; struct QMetaObject const * QRadioButton::metaObject(void) const + ??1QTabWidget@@UAE@XZ @ 9772 NONAME ; QTabWidget::~QTabWidget(void) + ?setBrightness@QGraphicsBloomEffect@@QAEXH@Z @ 9773 NONAME ; void QGraphicsBloomEffect::setBrightness(int) + ?detach@QRegion@@AAEXXZ @ 9774 NONAME ; void QRegion::detach(void) + ?d_func@QPixmapColorizeFilter@@ABEPBVQPixmapColorizeFilterPrivate@@XZ @ 9775 NONAME ; class QPixmapColorizeFilterPrivate const * QPixmapColorizeFilter::d_func(void) const + ?currentIndex@QTabWidget@@QBEHXZ @ 9776 NONAME ; int QTabWidget::currentIndex(void) const + ?trUtf8@QInputContextPlugin@@SA?AVQString@@PBD0H@Z @ 9777 NONAME ; class QString QInputContextPlugin::trUtf8(char const *, char const *, int) + ?contextMenuEvent@QDialog@@MAEXPAVQContextMenuEvent@@@Z @ 9778 NONAME ; void QDialog::contextMenuEvent(class QContextMenuEvent *) + ?addRoundRect@QPainterPath@@QAEXABVQRectF@@H@Z @ 9779 NONAME ; void QPainterPath::addRoundRect(class QRectF const &, int) + ??0QGraphicsView@@IAE@AAVQGraphicsViewPrivate@@PAVQWidget@@@Z @ 9780 NONAME ; QGraphicsView::QGraphicsView(class QGraphicsViewPrivate &, class QWidget *) + ?getStaticMetaObject@QS60Style@@SAABUQMetaObject@@XZ @ 9781 NONAME ; struct QMetaObject const & QS60Style::getStaticMetaObject(void) + ?setPen@QPainter@@QAEXABVQColor@@@Z @ 9782 NONAME ; void QPainter::setPen(class QColor const &) + ?setData@QAction@@QAEXABVQVariant@@@Z @ 9783 NONAME ; void QAction::setData(class QVariant const &) + ?subTitle@QWizardPage@@QBE?AVQString@@XZ @ 9784 NONAME ; class QString QWizardPage::subTitle(void) const + ?save@QPainter@@QAEXXZ @ 9785 NONAME ; void QPainter::save(void) + ??1QTextTable@@UAE@XZ @ 9786 NONAME ; QTextTable::~QTextTable(void) + ?resizeEvent@QGraphicsView@@MAEXPAVQResizeEvent@@@Z @ 9787 NONAME ; void QGraphicsView::resizeEvent(class QResizeEvent *) + ?insertToolBar@QMainWindow@@QAEXPAVQToolBar@@0@Z @ 9788 NONAME ; void QMainWindow::insertToolBar(class QToolBar *, class QToolBar *) + ?optimizationFlags@QGraphicsView@@QBE?AV?$QFlags@W4OptimizationFlag@QGraphicsView@@@@XZ @ 9789 NONAME ; class QFlags QGraphicsView::optimizationFlags(void) const + ?rowsInserted@QTreeView@@MAEXABVQModelIndex@@HH@Z @ 9790 NONAME ; void QTreeView::rowsInserted(class QModelIndex const &, int, int) + ?unquotedLexem@Parser@QCss@@QBE?AVQString@@XZ @ 9791 NONAME ; class QString QCss::Parser::unquotedLexem(void) const + ?showShaded@QMdiSubWindow@@QAEXXZ @ 9792 NONAME ; void QMdiSubWindow::showShaded(void) + ??_EQGraphicsSceneHelpEvent@@UAE@I@Z @ 9793 NONAME ; QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent(unsigned int) + ?inputMethodEvent@QWidget@@MAEXPAVQInputMethodEvent@@@Z @ 9794 NONAME ; void QWidget::inputMethodEvent(class QInputMethodEvent *) + ?drawLine@QPainter@@QAEXHHHH@Z @ 9795 NONAME ; void QPainter::drawLine(int, int, int, int) + ?getStaticMetaObject@QRegExpValidator@@SAABUQMetaObject@@XZ @ 9796 NONAME ; struct QMetaObject const & QRegExpValidator::getStaticMetaObject(void) + ?movePosition@QTextCursor@@QAE_NW4MoveOperation@1@W4MoveMode@1@H@Z @ 9797 NONAME ; bool QTextCursor::movePosition(enum QTextCursor::MoveOperation, enum QTextCursor::MoveMode, int) + ?tr@QGraphicsEffectSource@@SA?AVQString@@PBD0H@Z @ 9798 NONAME ; class QString QGraphicsEffectSource::tr(char const *, char const *, int) + ?staticMetaObject@QLCDNumber@@2UQMetaObject@@B @ 9799 NONAME ; struct QMetaObject const QLCDNumber::staticMetaObject + ?items@QListWidget@@IBE?AV?$QList@PAVQListWidgetItem@@@@PBVQMimeData@@@Z @ 9800 NONAME ; class QList QListWidget::items(class QMimeData const *) const + ?qt_metacast@QAbstractItemDelegate@@UAEPAXPBD@Z @ 9801 NONAME ; void * QAbstractItemDelegate::qt_metacast(char const *) + ?radius@QPixmapBlurFilter@@QBEHXZ @ 9802 NONAME ; int QPixmapBlurFilter::radius(void) const + ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9803 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *) + ??_EQPlainTextDocumentLayout@@UAE@I@Z @ 9804 NONAME ; QPlainTextDocumentLayout::~QPlainTextDocumentLayout(unsigned int) + ?nodeNameEquals@StyleSelector@QCss@@UBE_NTNodePtr@12@ABVQString@@@Z @ 9805 NONAME ; bool QCss::StyleSelector::nodeNameEquals(union QCss::StyleSelector::NodePtr, class QString const &) const + ?widthF@QPen@@QBEMXZ @ 9806 NONAME ; float QPen::widthF(void) const + ?mouseMoveEvent@QAbstractItemView@@MAEXPAVQMouseEvent@@@Z @ 9807 NONAME ; void QAbstractItemView::mouseMoveEvent(class QMouseEvent *) + ?styleHint@QWindowsStyle@@UBEHW4StyleHint@QStyle@@PBVQStyleOption@@PBVQWidget@@PAVQStyleHintReturn@@@Z @ 9808 NONAME ; int QWindowsStyle::styleHint(enum QStyle::StyleHint, class QStyleOption const *, class QWidget const *, class QStyleHintReturn *) const + ?SetCursorSelectionForFepL@QCoeFepInputContext@@UAEXABVTCursorSelection@@@Z @ 9809 NONAME ; void QCoeFepInputContext::SetCursorSelectionForFepL(class TCursorSelection const &) + ??1QClipboardEvent@@UAE@XZ @ 9810 NONAME ; QClipboardEvent::~QClipboardEvent(void) + ?textLanguages@QImage@@QBE?AVQStringList@@XZ @ 9811 NONAME ; class QStringList QImage::textLanguages(void) const + ?page@QWizard@@QBEPAVQWizardPage@@H@Z @ 9812 NONAME ; class QWizardPage * QWizard::page(int) const + ??1QStyleHintReturnVariant@@QAE@XZ @ 9813 NONAME ; QStyleHintReturnVariant::~QStyleHintReturnVariant(void) + ?qt_metacall@QCommonStyle@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9814 NONAME ; int QCommonStyle::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QImageIOPlugin@@SA?AVQString@@PBD0H@Z @ 9815 NONAME ; class QString QImageIOPlugin::trUtf8(char const *, char const *, int) + ?dropEvent@QLineEdit@@MAEXPAVQDropEvent@@@Z @ 9816 NONAME ; void QLineEdit::dropEvent(class QDropEvent *) + ??0QValidator@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 9817 NONAME ; QValidator::QValidator(class QObjectPrivate &, class QObject *) + ?parseFunction@Parser@QCss@@QAE_NPAVQString@@0@Z @ 9818 NONAME ; bool QCss::Parser::parseFunction(class QString *, class QString *) + ?drawLines@QPainter@@QAEXPBVQPointF@@H@Z @ 9819 NONAME ; void QPainter::drawLines(class QPointF const *, int) + ?dragEnterEvent@QGraphicsView@@MAEXPAVQDragEnterEvent@@@Z @ 9820 NONAME ; void QGraphicsView::dragEnterEvent(class QDragEnterEvent *) + ??0Key@QPixmapCache@@QAE@XZ @ 9821 NONAME ; QPixmapCache::Key::Key(void) + ?window@QPainter@@QBE?AVQRect@@XZ @ 9822 NONAME ; class QRect QPainter::window(void) const + ??_EQTabWidget@@UAE@I@Z @ 9823 NONAME ; QTabWidget::~QTabWidget(unsigned int) + ?setButtons@QGraphicsSceneWheelEvent@@QAEXV?$QFlags@W4MouseButton@Qt@@@@@Z @ 9824 NONAME ; void QGraphicsSceneWheelEvent::setButtons(class QFlags) + ??_EQWidgetPrivate@@UAE@I@Z @ 9825 NONAME ; QWidgetPrivate::~QWidgetPrivate(unsigned int) + ?dragEnabled@QAbstractItemView@@QBE_NXZ @ 9826 NONAME ; bool QAbstractItemView::dragEnabled(void) const + ??0QImage@@QAE@PBD0@Z @ 9827 NONAME ; QImage::QImage(char const *, char const *) + ?getStaticMetaObject@QKeyEventTransition@@SAABUQMetaObject@@XZ @ 9828 NONAME ; struct QMetaObject const & QKeyEventTransition::getStaticMetaObject(void) + ?ensureSpace@QTextEngine@@QBEXH@Z @ 9829 NONAME ; void QTextEngine::ensureSpace(int) const + ?testAttrib@Parser@QCss@@QAE_NXZ @ 9830 NONAME ; bool QCss::Parser::testAttrib(void) + ?underline@QFontInfo@@QBE_NXZ @ 9831 NONAME ; bool QFontInfo::underline(void) const + ?d_func@QGraphicsProxyWidget@@AAEPAVQGraphicsProxyWidgetPrivate@@XZ @ 9832 NONAME ; class QGraphicsProxyWidgetPrivate * QGraphicsProxyWidget::d_func(void) + ??0QTabWidget@@QAE@PAVQWidget@@@Z @ 9833 NONAME ; QTabWidget::QTabWidget(class QWidget *) + ?deleteWidget@QWidgetAction@@MAEXPAVQWidget@@@Z @ 9834 NONAME ; void QWidgetAction::deleteWidget(class QWidget *) + ??_EQStyledItemDelegate@@UAE@I@Z @ 9835 NONAME ; QStyledItemDelegate::~QStyledItemDelegate(unsigned int) + ?itemTextRect@QProxyStyle@@UBE?AVQRect@@ABVQFontMetrics@@ABV2@H_NABVQString@@@Z @ 9836 NONAME ; class QRect QProxyStyle::itemTextRect(class QFontMetrics const &, class QRect const &, int, bool, class QString const &) const + ??1QImageIOHandlerFactoryInterface@@UAE@XZ @ 9837 NONAME ; QImageIOHandlerFactoryInterface::~QImageIOHandlerFactoryInterface(void) + ?setWidget@QGestureEvent@@QAEXPAVQWidget@@@Z @ 9838 NONAME ; void QGestureEvent::setWidget(class QWidget *) + ?d_func@QRasterWindowSurface@@ABEPBVQRasterWindowSurfacePrivate@@XZ @ 9839 NONAME ; class QRasterWindowSurfacePrivate const * QRasterWindowSurface::d_func(void) const + ?possibleActions@QGraphicsSceneDragDropEvent@@QBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 9840 NONAME ; class QFlags QGraphicsSceneDragDropEvent::possibleActions(void) const + ?editorEvent@QItemDelegate@@MAE_NPAVQEvent@@PAVQAbstractItemModel@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 9841 NONAME ; bool QItemDelegate::editorEvent(class QEvent *, class QAbstractItemModel *, class QStyleOptionViewItem const &, class QModelIndex const &) + ?color@QBrush@@QBEABVQColor@@XZ @ 9842 NONAME ; class QColor const & QBrush::color(void) const + ?setWordWrap@QListView@@QAEX_N@Z @ 9843 NONAME ; void QListView::setWordWrap(bool) + ?getStaticMetaObject@QTextBrowser@@SAABUQMetaObject@@XZ @ 9844 NONAME ; struct QMetaObject const & QTextBrowser::getStaticMetaObject(void) + ?parent@QStandardItemModel@@UBE?AVQModelIndex@@ABV2@@Z @ 9845 NONAME ; class QModelIndex QStandardItemModel::parent(class QModelIndex const &) const + ?textBackgroundColor@QTextEdit@@QBE?AVQColor@@XZ @ 9846 NONAME ; class QColor QTextEdit::textBackgroundColor(void) const + ?centralWidget@QMainWindow@@QBEPAVQWidget@@XZ @ 9847 NONAME ; class QWidget * QMainWindow::centralWidget(void) const + ?processInputMethodEvent@QLineControl@@QAEXPAVQInputMethodEvent@@@Z @ 9848 NONAME ; void QLineControl::processInputMethodEvent(class QInputMethodEvent *) + ?clearMinimumDateTime@QDateTimeEdit@@QAEXXZ @ 9849 NONAME ; void QDateTimeEdit::clearMinimumDateTime(void) + ?leaveEvent@QMenuBar@@MAEXPAVQEvent@@@Z @ 9850 NONAME ; void QMenuBar::leaveEvent(class QEvent *) + ?joinStyle@QStroker@@QBE?AW4PenJoinStyle@Qt@@XZ @ 9851 NONAME ; enum Qt::PenJoinStyle QStroker::joinStyle(void) const + ?mouseDoubleClickEvent@QTextEdit@@MAEXPAVQMouseEvent@@@Z @ 9852 NONAME ; void QTextEdit::mouseDoubleClickEvent(class QMouseEvent *) + ?drawImage@QPainter@@QAEXABVQRect@@ABVQImage@@@Z @ 9853 NONAME ; void QPainter::drawImage(class QRect const &, class QImage const &) + ?rotate@QGraphicsItem@@QAEXM@Z @ 9854 NONAME ; void QGraphicsItem::rotate(float) + ?setAlpha@QColor@@QAEXH@Z @ 9855 NONAME ; void QColor::setAlpha(int) + ??0QStylePlugin@@QAE@PAVQObject@@@Z @ 9856 NONAME ; QStylePlugin::QStylePlugin(class QObject *) + ?cursorPosition@QLineEdit@@QBEHXZ @ 9857 NONAME ; int QLineEdit::cursorPosition(void) const + ?qt_metacall@QMdiSubWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9858 NONAME ; int QMdiSubWindow::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QPainter@@QAE@XZ @ 9859 NONAME ; QPainter::QPainter(void) + ?setVerticalScrollMode@QAbstractItemView@@QAEXW4ScrollMode@1@@Z @ 9860 NONAME ; void QAbstractItemView::setVerticalScrollMode(enum QAbstractItemView::ScrollMode) + ?setChildrenCollapsible@QSplitter@@QAEX_N@Z @ 9861 NONAME ; void QSplitter::setChildrenCollapsible(bool) + ?metaObject@QHeaderView@@UBEPBUQMetaObject@@XZ @ 9862 NONAME ; struct QMetaObject const * QHeaderView::metaObject(void) const + ??0QColumnView@@IAE@AAVQColumnViewPrivate@@PAVQWidget@@@Z @ 9863 NONAME ; QColumnView::QColumnView(class QColumnViewPrivate &, class QWidget *) + ??0QLabel@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9864 NONAME ; QLabel::QLabel(class QWidget *, class QFlags) + ?source@QDrag@@QBEPAVQWidget@@XZ @ 9865 NONAME ; class QWidget * QDrag::source(void) const + ?polish@QCommonStyle@@UAEXPAVQWidget@@@Z @ 9866 NONAME ; void QCommonStyle::polish(class QWidget *) + ?setText@QTableWidgetItem@@QAEXABVQString@@@Z @ 9867 NONAME ; void QTableWidgetItem::setText(class QString const &) + ?clear@QAbstractSpinBox@@UAEXXZ @ 9868 NONAME ; void QAbstractSpinBox::clear(void) + ?flags@QSortFilterProxyModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 9869 NONAME ; class QFlags QSortFilterProxyModel::flags(class QModelIndex const &) const + ?setAcceptedMouseButtons@QGraphicsItem@@QAEXV?$QFlags@W4MouseButton@Qt@@@@@Z @ 9870 NONAME ; void QGraphicsItem::setAcceptedMouseButtons(class QFlags) + ?qt_metacast@QGraphicsPixelizeEffect@@UAEPAXPBD@Z @ 9871 NONAME ; void * QGraphicsPixelizeEffect::qt_metacast(char const *) + ?loopCount@QImageIOHandler@@UBEHXZ @ 9872 NONAME ; int QImageIOHandler::loopCount(void) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPointF@@@Z @ 9873 NONAME ; class QList QGraphicsScene::items(class QPointF const &) const + ?rowCount@QGraphicsGridLayout@@QBEHXZ @ 9874 NONAME ; int QGraphicsGridLayout::rowCount(void) const + ?maximumSize@QBoxLayout@@UBE?AVQSize@@XZ @ 9875 NONAME ; class QSize QBoxLayout::maximumSize(void) const + ?radius@QRadialGradient@@QBEMXZ @ 9876 NONAME ; float QRadialGradient::radius(void) const + ?itemFromIndex@QListWidget@@IBEPAVQListWidgetItem@@ABVQModelIndex@@@Z @ 9877 NONAME ; class QListWidgetItem * QListWidget::itemFromIndex(class QModelIndex const &) const + ?tr@QPlainTextEdit@@SA?AVQString@@PBD0@Z @ 9878 NONAME ; class QString QPlainTextEdit::tr(char const *, char const *) + ?blurRadius@QGraphicsDropShadowEffect@@QBEHXZ @ 9879 NONAME ; int QGraphicsDropShadowEffect::blurRadius(void) const + ?focusPolicy@QWidget@@QBE?AW4FocusPolicy@Qt@@XZ @ 9880 NONAME ; enum Qt::FocusPolicy QWidget::focusPolicy(void) const + ?write@QIconEngineV2@@UBE_NAAVQDataStream@@@Z @ 9881 NONAME ; bool QIconEngineV2::write(class QDataStream &) const + ?mouseHandler@QInputContext@@UAEXHPAVQMouseEvent@@@Z @ 9882 NONAME ; void QInputContext::mouseHandler(int, class QMouseEvent *) + ?columnCount@QGraphicsGridLayout@@QBEHXZ @ 9883 NONAME ; int QGraphicsGridLayout::columnCount(void) const + ?expandToDepth@QTreeView@@QAEXH@Z @ 9884 NONAME ; void QTreeView::expandToDepth(int) + ?qt_metacast@QGraphicsWidget@@UAEPAXPBD@Z @ 9885 NONAME ; void * QGraphicsWidget::qt_metacast(char const *) + ?setObjectFormatIndex@QTextFormatCollection@@QAEXHH@Z @ 9886 NONAME ; void QTextFormatCollection::setObjectFormatIndex(int, int) + ?setGeometry@QStackedLayout@@UAEXABVQRect@@@Z @ 9887 NONAME ; void QStackedLayout::setGeometry(class QRect const &) + ?setDuplicatesEnabled@QComboBox@@QAEX_N@Z @ 9888 NONAME ; void QComboBox::setDuplicatesEnabled(bool) + ?currentChanged@QAbstractItemView@@MAEXABVQModelIndex@@0@Z @ 9889 NONAME ; void QAbstractItemView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?d_func@QCompleter@@ABEPBVQCompleterPrivate@@XZ @ 9890 NONAME ; class QCompleterPrivate const * QCompleter::d_func(void) const + ?background@QMdiArea@@QBE?AVQBrush@@XZ @ 9891 NONAME ; class QBrush QMdiArea::background(void) const + ?trUtf8@QColumnView@@SA?AVQString@@PBD0@Z @ 9892 NONAME ; class QString QColumnView::trUtf8(char const *, char const *) + ?qt_metacast@QVBoxLayout@@UAEPAXPBD@Z @ 9893 NONAME ; void * QVBoxLayout::qt_metacast(char const *) + ?sourceChanged@QTextBrowser@@IAEXABVQUrl@@@Z @ 9894 NONAME ; void QTextBrowser::sourceChanged(class QUrl const &) + ??YQMatrix4x4@@QAEAAV0@ABV0@@Z @ 9895 NONAME ; class QMatrix4x4 & QMatrix4x4::operator+=(class QMatrix4x4 const &) + ?mouseReleaseEvent@QScrollBar@@MAEXPAVQMouseEvent@@@Z @ 9896 NONAME ; void QScrollBar::mouseReleaseEvent(class QMouseEvent *) + ?lostFocus@QFocusEvent@@QBE_NXZ @ 9897 NONAME ; bool QFocusEvent::lostFocus(void) const + ?baseStyle@QProxyStyle@@QBEPAVQStyle@@XZ @ 9898 NONAME ; class QStyle * QProxyStyle::baseStyle(void) const + ?metaObject@QLineEdit@@UBEPBUQMetaObject@@XZ @ 9899 NONAME ; struct QMetaObject const * QLineEdit::metaObject(void) const + ?d_func@QPixmapBlurFilter@@ABEPBVQPixmapBlurFilterPrivate@@XZ @ 9900 NONAME ; class QPixmapBlurFilterPrivate const * QPixmapBlurFilter::d_func(void) const + ?wheel_scroll_lines@QApplicationPrivate@@2HA @ 9901 NONAME ; int QApplicationPrivate::wheel_scroll_lines + ?metaObject@QSplitter@@UBEPBUQMetaObject@@XZ @ 9902 NONAME ; struct QMetaObject const * QSplitter::metaObject(void) const + ??0QTransform@@AAE@MMMMMMMMM_N@Z @ 9903 NONAME ; QTransform::QTransform(float, float, float, float, float, float, float, float, float, bool) + ?rgbSwapped@QImage@@QBE?AV1@XZ @ 9904 NONAME ; class QImage QImage::rgbSwapped(void) const + ??0QStyleOptionTabWidgetFrame@@QAE@ABV0@@Z @ 9905 NONAME ; QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(class QStyleOptionTabWidgetFrame const &) + ?dockLocationChanged@QDockWidget@@IAEXW4DockWidgetArea@Qt@@@Z @ 9906 NONAME ; void QDockWidget::dockLocationChanged(enum Qt::DockWidgetArea) + ?map@QMatrix@@QBE?AVQPainterPath@@ABV2@@Z @ 9907 NONAME ; class QPainterPath QMatrix::map(class QPainterPath const &) const + ?transposed@QTransform@@QBE?AV1@XZ @ 9908 NONAME ; class QTransform QTransform::transposed(void) const + ?resize@QWidget@@QAEXABVQSize@@@Z @ 9909 NONAME ; void QWidget::resize(class QSize const &) + ?rootIndex@QDataWidgetMapper@@QBE?AVQModelIndex@@XZ @ 9910 NONAME ; class QModelIndex QDataWidgetMapper::rootIndex(void) const + ?metaObject@QCompleter@@UBEPBUQMetaObject@@XZ @ 9911 NONAME ; struct QMetaObject const * QCompleter::metaObject(void) const + ?format@QTextList@@QBE?AVQTextListFormat@@XZ @ 9912 NONAME ; class QTextListFormat QTextList::format(void) const + ?insertRow@QStandardItem@@QAEXHPAV1@@Z @ 9913 NONAME ; void QStandardItem::insertRow(int, class QStandardItem *) + ?redirected@QPainter@@SAPAVQPaintDevice@@PBV2@PAVQPoint@@@Z @ 9914 NONAME ; class QPaintDevice * QPainter::redirected(class QPaintDevice const *, class QPoint *) + ?setChildIndicatorPolicy@QTreeWidgetItem@@QAEXW4ChildIndicatorPolicy@1@@Z @ 9915 NONAME ; void QTreeWidgetItem::setChildIndicatorPolicy(enum QTreeWidgetItem::ChildIndicatorPolicy) + ?clear@QTreeWidget@@QAEXXZ @ 9916 NONAME ; void QTreeWidget::clear(void) + ?setBaseStyle@QProxyStyle@@QAEXPAVQStyle@@@Z @ 9917 NONAME ; void QProxyStyle::setBaseStyle(class QStyle *) + ?rubberBandSelectionMode@QGraphicsView@@QBE?AW4ItemSelectionMode@Qt@@XZ @ 9918 NONAME ; enum Qt::ItemSelectionMode QGraphicsView::rubberBandSelectionMode(void) const + ??0QPalette@@QAE@W4GlobalColor@Qt@@@Z @ 9919 NONAME ; QPalette::QPalette(enum Qt::GlobalColor) + ?moveCursor@QListView@@MAE?AVQModelIndex@@W4CursorAction@QAbstractItemView@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 9920 NONAME ; class QModelIndex QListView::moveCursor(enum QAbstractItemView::CursorAction, class QFlags) + ?canRedoChanged@QUndoGroup@@IAEX_N@Z @ 9921 NONAME ; void QUndoGroup::canRedoChanged(bool) + ?isTabEnabled@QTabWidget@@QBE_NH@Z @ 9922 NONAME ; bool QTabWidget::isTabEnabled(int) const + ?qt_metacast@QDesktopWidget@@UAEPAXPBD@Z @ 9923 NONAME ; void * QDesktopWidget::qt_metacast(char const *) + ?widget@QWidgetItem@@UAEPAVQWidget@@XZ @ 9924 NONAME ; class QWidget * QWidgetItem::widget(void) + ?stepBy@QAbstractSpinBox@@UAEXH@Z @ 9925 NONAME ; void QAbstractSpinBox::stepBy(int) + ?speed@QMovie@@QBEHXZ @ 9926 NONAME ; int QMovie::speed(void) const + ?determinant@QMatrix4x4@@QBEMXZ @ 9927 NONAME ; float QMatrix4x4::determinant(void) const + ?anchorPosition@QTextControl@@QBE?AVQPointF@@ABVQString@@@Z @ 9928 NONAME ; class QPointF QTextControl::anchorPosition(class QString const &) const + ?setPageBreakPolicy@QTextFrameFormat@@QAEXV?$QFlags@W4PageBreakFlag@QTextFormat@@@@@Z @ 9929 NONAME ; void QTextFrameFormat::setPageBreakPolicy(class QFlags) + ??0QWindowStateChangeEvent@@QAE@V?$QFlags@W4WindowState@Qt@@@@@Z @ 9930 NONAME ; QWindowStateChangeEvent::QWindowStateChangeEvent(class QFlags) + ?itemAbove@QTreeWidget@@QBEPAVQTreeWidgetItem@@PBV2@@Z @ 9931 NONAME ; class QTreeWidgetItem * QTreeWidget::itemAbove(class QTreeWidgetItem const *) const + ?setCenter@QConicalGradient@@QAEXABVQPointF@@@Z @ 9932 NONAME ; void QConicalGradient::setCenter(class QPointF const &) + ?minimum@QDoubleSpinBox@@QBENXZ @ 9933 NONAME ; double QDoubleSpinBox::minimum(void) const + ?rowWrapPolicy@QFormLayout@@QBE?AW4RowWrapPolicy@1@XZ @ 9934 NONAME ; enum QFormLayout::RowWrapPolicy QFormLayout::rowWrapPolicy(void) const + ?trUtf8@QPanGesture@@SA?AVQString@@PBD0H@Z @ 9935 NONAME ; class QString QPanGesture::trUtf8(char const *, char const *, int) + ?setStretchFactor@QBoxLayout@@QAE_NPAVQWidget@@H@Z @ 9936 NONAME ; bool QBoxLayout::setStretchFactor(class QWidget *, int) + ?grabKeyboardEvent@QGraphicsWidget@@MAEXPAVQEvent@@@Z @ 9937 NONAME ; void QGraphicsWidget::grabKeyboardEvent(class QEvent *) + ?setWorldTransform@QPainter@@QAEXABVQTransform@@_N@Z @ 9938 NONAME ; void QPainter::setWorldTransform(class QTransform const &, bool) + ?hasEditFocus@QWidget@@QBE_NXZ @ 9939 NONAME ; bool QWidget::hasEditFocus(void) const + ?setActive@QWidgetResizeHandler@@QAEXW4Action@1@_N@Z @ 9940 NONAME ; void QWidgetResizeHandler::setActive(enum QWidgetResizeHandler::Action, bool) + ?setMinimumSize@QWidget@@QAEXABVQSize@@@Z @ 9941 NONAME ; void QWidget::setMinimumSize(class QSize const &) + ?iconSize@QComboBox@@QBE?AVQSize@@XZ @ 9942 NONAME ; class QSize QComboBox::iconSize(void) const + ?selectedItems@QTreeWidget@@QBE?AV?$QList@PAVQTreeWidgetItem@@@@XZ @ 9943 NONAME ; class QList QTreeWidget::selectedItems(void) const + ?setItemWidget@QListWidget@@QAEXPAVQListWidgetItem@@PAVQWidget@@@Z @ 9944 NONAME ; void QListWidget::setItemWidget(class QListWidgetItem *, class QWidget *) + ??1QGraphicsLayoutItem@@UAE@XZ @ 9945 NONAME ; QGraphicsLayoutItem::~QGraphicsLayoutItem(void) + ?getStaticMetaObject@QGraphicsProxyWidget@@SAABUQMetaObject@@XZ @ 9946 NONAME ; struct QMetaObject const & QGraphicsProxyWidget::getStaticMetaObject(void) + ??_EQRadioButton@@UAE@I@Z @ 9947 NONAME ; QRadioButton::~QRadioButton(unsigned int) + ?insertColumns@QProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 9948 NONAME ; bool QProxyModel::insertColumns(int, int, class QModelIndex const &) + ?find@QPixmapCache@@SAPAVQPixmap@@ABVQString@@@Z @ 9949 NONAME ; class QPixmap * QPixmapCache::find(class QString const &) + ??1QInputDialog@@UAE@XZ @ 9950 NONAME ; QInputDialog::~QInputDialog(void) + ?mapFromScene@QGraphicsItem@@QBE?AVQPolygonF@@ABV2@@Z @ 9951 NONAME ; class QPolygonF QGraphicsItem::mapFromScene(class QPolygonF const &) const + ?mousePressEvent@QTextEdit@@MAEXPAVQMouseEvent@@@Z @ 9952 NONAME ; void QTextEdit::mousePressEvent(class QMouseEvent *) + ?d_func@QImageIOHandler@@ABEPBVQImageIOHandlerPrivate@@XZ @ 9953 NONAME ; class QImageIOHandlerPrivate const * QImageIOHandler::d_func(void) const + ?putPoints@QPolygon@@QAEXHHPBH@Z @ 9954 NONAME ; void QPolygon::putPoints(int, int, int const *) + ?qt_filedialog_open_filename_hook@@3P6A?AVQString@@PAVQWidget@@ABV1@11PAV1@V?$QFlags@W4Option@QFileDialog@@@@@ZA @ 9955 NONAME ; class QString (*qt_filedialog_open_filename_hook)(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?saveState@QHeaderView@@QBE?AVQByteArray@@XZ @ 9956 NONAME ; class QByteArray QHeaderView::saveState(void) const + ?valuePropertyName@QItemEditorFactory@@UBE?AVQByteArray@@W4Type@QVariant@@@Z @ 9957 NONAME ; class QByteArray QItemEditorFactory::valuePropertyName(enum QVariant::Type) const + ?focusInEvent@QLabel@@MAEXPAVQFocusEvent@@@Z @ 9958 NONAME ; void QLabel::focusInEvent(class QFocusEvent *) + ?toString@Value@QCss@@QBE?AVQString@@XZ @ 9959 NONAME ; class QString QCss::Value::toString(void) const + ?GetCursorSelectionForFep@QCoeFepInputContext@@UBEXAAVTCursorSelection@@@Z @ 9960 NONAME ; void QCoeFepInputContext::GetCursorSelectionForFep(class TCursorSelection &) const + ??0QTransform@@QAE@ABVQMatrix@@@Z @ 9961 NONAME ; QTransform::QTransform(class QMatrix const &) + ?setViewMode@QFileDialog@@QAEXW4ViewMode@1@@Z @ 9962 NONAME ; void QFileDialog::setViewMode(enum QFileDialog::ViewMode) + ?setCurrentCharFormat@QTextControl@@QAEXABVQTextCharFormat@@@Z @ 9963 NONAME ; void QTextControl::setCurrentCharFormat(class QTextCharFormat const &) + ??6@YAAAVQDataStream@@AAV0@ABVQPalette@@@Z @ 9964 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPalette const &) + ??_EQHelpEvent@@UAE@I@Z @ 9965 NONAME ; QHelpEvent::~QHelpEvent(unsigned int) + ?verticalScaleAt@QGraphicsItemAnimation@@QBEMM@Z @ 9966 NONAME ; float QGraphicsItemAnimation::verticalScaleAt(float) const + ?State@QCoeFepInputContext@@UAEPAVCState@MCoeFepAwareTextEditor_Extension1@@VTUid@@@Z @ 9967 NONAME ; class MCoeFepAwareTextEditor_Extension1::CState * QCoeFepInputContext::State(class TUid) + ?q_func@QGraphicsEffectPrivate@@AAEPAVQGraphicsEffect@@XZ @ 9968 NONAME ; class QGraphicsEffect * QGraphicsEffectPrivate::q_func(void) + ?trUtf8@QRadioButton@@SA?AVQString@@PBD0@Z @ 9969 NONAME ; class QString QRadioButton::trUtf8(char const *, char const *) + ?setVerticalHeaderFormat@QCalendarWidget@@QAEXW4VerticalHeaderFormat@1@@Z @ 9970 NONAME ; void QCalendarWidget::setVerticalHeaderFormat(enum QCalendarWidget::VerticalHeaderFormat) + ?q_func@QLayoutPrivate@@AAEPAVQLayout@@XZ @ 9971 NONAME ; class QLayout * QLayoutPrivate::q_func(void) + ?d_func@QAbstractSpinBox@@ABEPBVQAbstractSpinBoxPrivate@@XZ @ 9972 NONAME ; class QAbstractSpinBoxPrivate const * QAbstractSpinBox::d_func(void) const + ?timerEvent@QLineControl@@MAEXPAVQTimerEvent@@@Z @ 9973 NONAME ; void QLineControl::timerEvent(class QTimerEvent *) + ?setTotalScaleFactor@QPinchGesture@@QAEXM@Z @ 9974 NONAME ; void QPinchGesture::setTotalScaleFactor(float) + ?fontPointSize@QTextEdit@@QBEMXZ @ 9975 NONAME ; float QTextEdit::fontPointSize(void) const + ?model@QItemSelectionModel@@QBEPBVQAbstractItemModel@@XZ @ 9976 NONAME ; class QAbstractItemModel const * QItemSelectionModel::model(void) const + ?event@QSplashScreen@@MAE_NPAVQEvent@@@Z @ 9977 NONAME ; bool QSplashScreen::event(class QEvent *) + ?nativeChildrenForced@QWidgetPrivate@@QBE_NXZ @ 9978 NONAME ; bool QWidgetPrivate::nativeChildrenForced(void) const + ?keyReleaseEvent@QAbstractSpinBox@@MAEXPAVQKeyEvent@@@Z @ 9979 NONAME ; void QAbstractSpinBox::keyReleaseEvent(class QKeyEvent *) + ?mousePressEvent@QHeaderView@@MAEXPAVQMouseEvent@@@Z @ 9980 NONAME ; void QHeaderView::mousePressEvent(class QMouseEvent *) + ?map@QTransform@@QBE?AVQLine@@ABV2@@Z @ 9981 NONAME ; class QLine QTransform::map(class QLine const &) const + ??_EQInputContextPlugin@@UAE@I@Z @ 9982 NONAME ; QInputContextPlugin::~QInputContextPlugin(unsigned int) + ?setCacheLimit@QPixmapCache@@SAXH@Z @ 9983 NONAME ; void QPixmapCache::setCacheLimit(int) + ?qt_metacall@QLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9984 NONAME ; int QLabel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QSymbianEvent@@QAE@PBVTWsEvent@@@Z @ 9985 NONAME ; QSymbianEvent::QSymbianEvent(class TWsEvent const *) + ??0QTextCursor@@QAE@PAVQTextCursorPrivate@@@Z @ 9986 NONAME ; QTextCursor::QTextCursor(class QTextCursorPrivate *) + ?repaint@QSplashScreen@@QAEXXZ @ 9987 NONAME ; void QSplashScreen::repaint(void) + ?qt_metacall@QTextDocument@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9988 NONAME ; int QTextDocument::qt_metacall(enum QMetaObject::Call, int, void * *) + ?sizeHint@QStandardItem@@QBE?AVQSize@@XZ @ 9989 NONAME ; class QSize QStandardItem::sizeHint(void) const + ?qt_metacast@QStringListModel@@UAEPAXPBD@Z @ 9990 NONAME ; void * QStringListModel::qt_metacast(char const *) + ??0QRadioButton@@QAE@PAVQWidget@@@Z @ 9991 NONAME ; QRadioButton::QRadioButton(class QWidget *) + ?setPalette@QWidget@@QAEXABVQPalette@@@Z @ 9992 NONAME ; void QWidget::setPalette(class QPalette const &) + ??0QRadialGradient@@QAE@XZ @ 9993 NONAME ; QRadialGradient::QRadialGradient(void) + ??0QStackedWidget@@QAE@PAVQWidget@@@Z @ 9994 NONAME ; QStackedWidget::QStackedWidget(class QWidget *) + ?setContextMenuPolicy@QWidget@@QAEXW4ContextMenuPolicy@Qt@@@Z @ 9995 NONAME ; void QWidget::setContextMenuPolicy(enum Qt::ContextMenuPolicy) + ??1QKeySequence@@QAE@XZ @ 9996 NONAME ; QKeySequence::~QKeySequence(void) + ?topRow@QTableWidgetSelectionRange@@QBEHXZ @ 9997 NONAME ; int QTableWidgetSelectionRange::topRow(void) const + ?scanLine@QImage@@QAEPAEH@Z @ 9998 NONAME ; unsigned char * QImage::scanLine(int) + ?setViewportMargins@QAbstractScrollArea@@IAEXHHHH@Z @ 9999 NONAME ; void QAbstractScrollArea::setViewportMargins(int, int, int, int) + ?hasScaledContents@QLabel@@QBE_NXZ @ 10000 NONAME ; bool QLabel::hasScaledContents(void) const + ??1QStyleOptionViewItemV3@@QAE@XZ @ 10001 NONAME ; QStyleOptionViewItemV3::~QStyleOptionViewItemV3(void) + ?event@QTabBar@@MAE_NPAVQEvent@@@Z @ 10002 NONAME ; bool QTabBar::event(class QEvent *) + ?updateGeometry@QGraphicsWidget@@MAEXXZ @ 10003 NONAME ; void QGraphicsWidget::updateGeometry(void) + ?trUtf8@QProgressDialog@@SA?AVQString@@PBD0@Z @ 10004 NONAME ; class QString QProgressDialog::trUtf8(char const *, char const *) + ?setCursorWidth@QPlainTextDocumentLayout@@QAEXH@Z @ 10005 NONAME ; void QPlainTextDocumentLayout::setCursorWidth(int) + ?currentChanged@QHeaderView@@MAEXABVQModelIndex@@0@Z @ 10006 NONAME ; void QHeaderView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?setUniformItemSizes@QListView@@QAEX_N@Z @ 10007 NONAME ; void QListView::setUniformItemSizes(bool) + ?setParentLayoutItem@QGraphicsLayoutItem@@QAEXPAV1@@Z @ 10008 NONAME ; void QGraphicsLayoutItem::setParentLayoutItem(class QGraphicsLayoutItem *) + ??0QSizePolicy@@QAE@XZ @ 10009 NONAME ; QSizePolicy::QSizePolicy(void) + ??0QFileSystemModel@@QAE@PAVQObject@@@Z @ 10010 NONAME ; QFileSystemModel::QFileSystemModel(class QObject *) + ?virtual_hook@QIconEngineV2@@UAEXHPAX@Z @ 10011 NONAME ; void QIconEngineV2::virtual_hook(int, void *) + ?event@QGroupBox@@MAE_NPAVQEvent@@@Z @ 10012 NONAME ; bool QGroupBox::event(class QEvent *) + ?s60AdjustedPosition@QDialog@@AAE_NXZ @ 10013 NONAME ; bool QDialog::s60AdjustedPosition(void) + ?d_func@QGraphicsGridLayout@@AAEPAVQGraphicsGridLayoutPrivate@@XZ @ 10014 NONAME ; class QGraphicsGridLayoutPrivate * QGraphicsGridLayout::d_func(void) + ?qt_metacall@QGraphicsRotation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10015 NONAME ; int QGraphicsRotation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setWindow@QPainter@@QAEXHHHH@Z @ 10016 NONAME ; void QPainter::setWindow(int, int, int, int) + ?translate@QPainterPath@@QAEXABVQPointF@@@Z @ 10017 NONAME ; void QPainterPath::translate(class QPointF const &) + ?canInsertFromMimeData@QTextEdit@@MBE_NPBVQMimeData@@@Z @ 10018 NONAME ; bool QTextEdit::canInsertFromMimeData(class QMimeData const *) const + ?maximumBlockCount@QTextDocument@@QBEHXZ @ 10019 NONAME ; int QTextDocument::maximumBlockCount(void) const + ?cellPressed@QTableWidget@@IAEXHH@Z @ 10020 NONAME ; void QTableWidget::cellPressed(int, int) + ??5@YAAAVQDataStream@@AAV0@AAVQVector4D@@@Z @ 10021 NONAME ; class QDataStream & operator>>(class QDataStream &, class QVector4D &) + ??1QGraphicsWidget@@UAE@XZ @ 10022 NONAME ; QGraphicsWidget::~QGraphicsWidget(void) + ?isSortLocaleAware@QSortFilterProxyModel@@QBE_NXZ @ 10023 NONAME ; bool QSortFilterProxyModel::isSortLocaleAware(void) const + ?x@QContextMenuEvent@@QBEHXZ @ 10024 NONAME ; int QContextMenuEvent::x(void) const + ?setWindowModality@QWidget@@QAEXW4WindowModality@Qt@@@Z @ 10025 NONAME ; void QWidget::setWindowModality(enum Qt::WindowModality) + ?staticMetaObject@QValidator@@2UQMetaObject@@B @ 10026 NONAME ; struct QMetaObject const QValidator::staticMetaObject + ?minimumSize@QLayout@@UBE?AVQSize@@XZ @ 10027 NONAME ; class QSize QLayout::minimumSize(void) const + ?pickMouseReceiver@QApplicationPrivate@@SAPAVQWidget@@PAV2@ABVQPoint@@AAV3@W4Type@QEvent@@V?$QFlags@W4MouseButton@Qt@@@@00@Z @ 10028 NONAME ; class QWidget * QApplicationPrivate::pickMouseReceiver(class QWidget *, class QPoint const &, class QPoint &, enum QEvent::Type, class QFlags, class QWidget *, class QWidget *) + ?cubicTo@QPainterPath@@QAEXABVQPointF@@00@Z @ 10029 NONAME ; void QPainterPath::cubicTo(class QPointF const &, class QPointF const &, class QPointF const &) + ?getStaticMetaObject@QStyle@@SAABUQMetaObject@@XZ @ 10030 NONAME ; struct QMetaObject const & QStyle::getStaticMetaObject(void) + ?setModifiers@QGraphicsSceneContextMenuEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 10031 NONAME ; void QGraphicsSceneContextMenuEvent::setModifiers(class QFlags) + ?highlighted@QCompleter@@IAEXABVQString@@@Z @ 10032 NONAME ; void QCompleter::highlighted(class QString const &) + ?maxLength@QLineEdit@@QBEHXZ @ 10033 NONAME ; int QLineEdit::maxLength(void) const + ?redirected@QWidgetPrivate@@QBEPAVQPaintDevice@@PAVQPoint@@@Z @ 10034 NONAME ; class QPaintDevice * QWidgetPrivate::redirected(class QPoint *) const + ?setNormalizedPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 10035 NONAME ; void QTouchEvent::TouchPoint::setNormalizedPos(class QPointF const &) + ??8QSizePolicy@@QBE_NABV0@@Z @ 10036 NONAME ; bool QSizePolicy::operator==(class QSizePolicy const &) const + ?staticMetaObject@QUndoView@@2UQMetaObject@@B @ 10037 NONAME ; struct QMetaObject const QUndoView::staticMetaObject + ?beginPaint@QWindowSurface@@UAEXABVQRegion@@@Z @ 10038 NONAME ; void QWindowSurface::beginPaint(class QRegion const &) + ?setColumnFixedWidth@QGraphicsGridLayout@@QAEXHM@Z @ 10039 NONAME ; void QGraphicsGridLayout::setColumnFixedWidth(int, float) + ?z@QVector3D@@QBEMXZ @ 10040 NONAME ; float QVector3D::z(void) const + ?supportedImageFormats@QImageWriter@@SA?AV?$QList@VQByteArray@@@@XZ @ 10041 NONAME ; class QList QImageWriter::supportedImageFormats(void) + ?topLevelWidget@QWidget@@QBEPAV1@XZ @ 10042 NONAME ; class QWidget * QWidget::topLevelWidget(void) const + ?draw@QLineControl@@QAEXPAVQPainter@@ABVQPoint@@ABVQRect@@H@Z @ 10043 NONAME ; void QLineControl::draw(class QPainter *, class QPoint const &, class QRect const &, int) + ?keyPressEvent@QDialog@@MAEXPAVQKeyEvent@@@Z @ 10044 NONAME ; void QDialog::keyPressEvent(class QKeyEvent *) + ?translate@QPainterPath@@QAEXMM@Z @ 10045 NONAME ; void QPainterPath::translate(float, float) + ??_EQTreeWidget@@UAE@I@Z @ 10046 NONAME ; QTreeWidget::~QTreeWidget(unsigned int) + ?tr@QGraphicsDropShadowEffect@@SA?AVQString@@PBD0H@Z @ 10047 NONAME ; class QString QGraphicsDropShadowEffect::tr(char const *, char const *, int) + ??0QDateTimeEdit@@QAE@ABVQTime@@PAVQWidget@@@Z @ 10048 NONAME ; QDateTimeEdit::QDateTimeEdit(class QTime const &, class QWidget *) + ?zValue@QGraphicsItem@@QBEMXZ @ 10049 NONAME ; float QGraphicsItem::zValue(void) const + ?trUtf8@QListView@@SA?AVQString@@PBD0H@Z @ 10050 NONAME ; class QString QListView::trUtf8(char const *, char const *, int) + ?model@QStandardItem@@QBEPAVQStandardItemModel@@XZ @ 10051 NONAME ; class QStandardItemModel * QStandardItem::model(void) const + ?object@QTextDocument@@QBEPAVQTextObject@@H@Z @ 10052 NONAME ; class QTextObject * QTextDocument::object(int) const + ?setDesktopSettingsAware@QApplication@@SAX_N@Z @ 10053 NONAME ; void QApplication::setDesktopSettingsAware(bool) + ?historyTitle@QTextBrowser@@QBE?AVQString@@H@Z @ 10054 NONAME ; class QString QTextBrowser::historyTitle(int) const + ?spacing@QFormLayout@@QBEHXZ @ 10055 NONAME ; int QFormLayout::spacing(void) const + ?setLine@QGraphicsLineItem@@QAEXMMMM@Z @ 10056 NONAME ; void QGraphicsLineItem::setLine(float, float, float, float) + ?headerItem@QTreeWidget@@QBEPAVQTreeWidgetItem@@XZ @ 10057 NONAME ; class QTreeWidgetItem * QTreeWidget::headerItem(void) const + ??_EQS60MainApplication@@UAE@I@Z @ 10058 NONAME ; QS60MainApplication::~QS60MainApplication(unsigned int) + ?focusNextPrevChild@QScrollArea@@UAE_N_N@Z @ 10059 NONAME ; bool QScrollArea::focusNextPrevChild(bool) + ?advance@QGraphicsItem@@UAEXH@Z @ 10060 NONAME ; void QGraphicsItem::advance(int) + ??0QStyleOptionSizeGrip@@QAE@ABV0@@Z @ 10061 NONAME ; QStyleOptionSizeGrip::QStyleOptionSizeGrip(class QStyleOptionSizeGrip const &) + ?joinModeForCap@QStroker@@KA?AW4LineJoinMode@1@W4PenCapStyle@Qt@@@Z @ 10062 NONAME ; enum QStroker::LineJoinMode QStroker::joinModeForCap(enum Qt::PenCapStyle) + ?setAcceptRichText@QTextEdit@@QAEX_N@Z @ 10063 NONAME ; void QTextEdit::setAcceptRichText(bool) + ?isSortingEnabled@QListWidget@@QBE_NXZ @ 10064 NONAME ; bool QListWidget::isSortingEnabled(void) const + ??0QGraphicsScene@@QAE@ABVQRectF@@PAVQObject@@@Z @ 10065 NONAME ; QGraphicsScene::QGraphicsScene(class QRectF const &, class QObject *) + ?setDropAction@QGraphicsSceneDragDropEvent@@QAEXW4DropAction@Qt@@@Z @ 10066 NONAME ; void QGraphicsSceneDragDropEvent::setDropAction(enum Qt::DropAction) + ?blockBoundingRect@QTextControl@@UBE?AVQRectF@@ABVQTextBlock@@@Z @ 10067 NONAME ; class QRectF QTextControl::blockBoundingRect(class QTextBlock const &) const + ?y@QTabletEvent@@QBEHXZ @ 10068 NONAME ; int QTabletEvent::y(void) const + ?setText@QImage@@QAEXABVQString@@0@Z @ 10069 NONAME ; void QImage::setText(class QString const &, class QString const &) + ?isActive@QPaintEngine@@QBE_NXZ @ 10070 NONAME ; bool QPaintEngine::isActive(void) const + ?setTitleFormat@QWizard@@QAEXW4TextFormat@Qt@@@Z @ 10071 NONAME ; void QWizard::setTitleFormat(enum Qt::TextFormat) + ?tr@QUndoView@@SA?AVQString@@PBD0@Z @ 10072 NONAME ; class QString QUndoView::tr(char const *, char const *) + ??0QProgressDialog@@QAE@ABVQString@@0HHPAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 10073 NONAME ; QProgressDialog::QProgressDialog(class QString const &, class QString const &, int, int, class QWidget *, class QFlags) + ?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@@Z @ 10074 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *) + ?wheelEvent@QTabBar@@MAEXPAVQWheelEvent@@@Z @ 10075 NONAME ; void QTabBar::wheelEvent(class QWheelEvent *) + ?textRectangle@QItemDelegate@@IBE?AVQRect@@PAVQPainter@@ABV2@ABVQFont@@ABVQString@@@Z @ 10076 NONAME ; class QRect QItemDelegate::textRectangle(class QPainter *, class QRect const &, class QFont const &, class QString const &) const + ?processCurrentSubpath@QDashStroker@@MAEXXZ @ 10077 NONAME ; void QDashStroker::processCurrentSubpath(void) + ?qt_metacast@QWindowsStyle@@UAEPAXPBD@Z @ 10078 NONAME ; void * QWindowsStyle::qt_metacast(char const *) + ?d_func@QHeaderView@@AAEPAVQHeaderViewPrivate@@XZ @ 10079 NONAME ; class QHeaderViewPrivate * QHeaderView::d_func(void) + ?addAction@QMenuBar@@QAEPAVQAction@@ABVQString@@PBVQObject@@PBD@Z @ 10080 NONAME ; class QAction * QMenuBar::addAction(class QString const &, class QObject const *, char const *) + ?setTabData@QTabBar@@QAEXHABVQVariant@@@Z @ 10081 NONAME ; void QTabBar::setTabData(int, class QVariant const &) + ?setSelectionMode@QCalendarWidget@@QAEXW4SelectionMode@1@@Z @ 10082 NONAME ; void QCalendarWidget::setSelectionMode(enum QCalendarWidget::SelectionMode) + ?rightBearing@QFontMetrics@@QBEHVQChar@@@Z @ 10083 NONAME ; int QFontMetrics::rightBearing(class QChar) const + ?documentSize@QPlainTextDocumentLayout@@UBE?AVQSizeF@@XZ @ 10084 NONAME ; class QSizeF QPlainTextDocumentLayout::documentSize(void) const + ??1QMainWindow@@UAE@XZ @ 10085 NONAME ; QMainWindow::~QMainWindow(void) + ?event@QFontComboBox@@MAE_NPAVQEvent@@@Z @ 10086 NONAME ; bool QFontComboBox::event(class QEvent *) + ?cacheLimit@QPixmapCache@@SAHXZ @ 10087 NONAME ; int QPixmapCache::cacheLimit(void) + ?getCmyk@QColor@@QAEXPAH0000@Z @ 10088 NONAME ; void QColor::getCmyk(int *, int *, int *, int *, int *) + ?reason@QFocusEvent@@QAE?AW4FocusReason@Qt@@XZ @ 10089 NONAME ; enum Qt::FocusReason QFocusEvent::reason(void) + ?visualRect@QTreeView@@UBE?AVQRect@@ABVQModelIndex@@@Z @ 10090 NONAME ; class QRect QTreeView::visualRect(class QModelIndex const &) const + ?setHorizontalStretch@QSizePolicy@@QAEXE@Z @ 10091 NONAME ; void QSizePolicy::setHorizontalStretch(unsigned char) + ?contains@QTextFragment@@QBE_NH@Z @ 10092 NONAME ; bool QTextFragment::contains(int) const + ??6@YAAAVQDataStream@@AAV0@ABVQPen@@@Z @ 10093 NONAME ; class QDataStream & operator<<(class QDataStream &, class QPen const &) + ??6@YAAAVQDataStream@@AAV0@ABVQBrush@@@Z @ 10094 NONAME ; class QDataStream & operator<<(class QDataStream &, class QBrush const &) + ?blockFormatChanged@QTextBlockGroup@@MAEXABVQTextBlock@@@Z @ 10095 NONAME ; void QTextBlockGroup::blockFormatChanged(class QTextBlock const &) + ?iconProvider@QFileDialog@@QBEPAVQFileIconProvider@@XZ @ 10096 NONAME ; class QFileIconProvider * QFileDialog::iconProvider(void) const + ?resetInputContext@QWidget@@IAEXXZ @ 10097 NONAME ; void QWidget::resetInputContext(void) + ?convertToFormat@QImage@@QBE?AV1@W4Format@1@ABV?$QVector@I@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 10098 NONAME ; class QImage QImage::convertToFormat(enum QImage::Format, class QVector const &, class QFlags) const + ?scale@QMatrix4x4@@QAEAAV1@MMM@Z @ 10099 NONAME ; class QMatrix4x4 & QMatrix4x4::scale(float, float, float) + ?setTransformOriginPoint@QGraphicsItem@@QAEXMM@Z @ 10100 NONAME ; void QGraphicsItem::setTransformOriginPoint(float, float) + ??0QTextInlineObject@@QAE@HPAVQTextEngine@@@Z @ 10101 NONAME ; QTextInlineObject::QTextInlineObject(int, class QTextEngine *) + ?trUtf8@QTextEdit@@SA?AVQString@@PBD0@Z @ 10102 NONAME ; class QString QTextEdit::trUtf8(char const *, char const *) + ?eventFilter@QGraphicsProxyWidget@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 10103 NONAME ; bool QGraphicsProxyWidget::eventFilter(class QObject *, class QEvent *) + ?selectAll@QColumnView@@UAEXXZ @ 10104 NONAME ; void QColumnView::selectAll(void) + ?colorDialogDelete@QGuiPlatformPlugin@@UAEXPAVQColorDialog@@@Z @ 10105 NONAME ; void QGuiPlatformPlugin::colorDialogDelete(class QColorDialog *) + ?addIfClose@QBezier@@QBEXPAMM@Z @ 10106 NONAME ; void QBezier::addIfClose(float *, float) const + ?textWidth@QPlainTextDocumentLayout@@ABEMXZ @ 10107 NONAME ; float QPlainTextDocumentLayout::textWidth(void) const + ?interpolationMode@QGradient@@QBE?AW4InterpolationMode@1@XZ @ 10108 NONAME ; enum QGradient::InterpolationMode QGradient::interpolationMode(void) const + ?isIndexHidden@QTreeView@@MBE_NABVQModelIndex@@@Z @ 10109 NONAME ; bool QTreeView::isIndexHidden(class QModelIndex const &) const + ?underlinePos@QFontMetrics@@QBEHXZ @ 10110 NONAME ; int QFontMetrics::underlinePos(void) const + ?tabIcon@QTabBar@@QBE?AVQIcon@@H@Z @ 10111 NONAME ; class QIcon QTabBar::tabIcon(int) const + ?bits@QImage@@QAEPAEXZ @ 10112 NONAME ; unsigned char * QImage::bits(void) + ?createRedoAction@QUndoGroup@@QBEPAVQAction@@PAVQObject@@ABVQString@@@Z @ 10113 NONAME ; class QAction * QUndoGroup::createRedoAction(class QObject *, class QString const &) const + ?validate@QDoubleValidator@@UBE?AW4State@QValidator@@AAVQString@@AAH@Z @ 10114 NONAME ; enum QValidator::State QDoubleValidator::validate(class QString &, int &) const + ?currentWidget@QStackedWidget@@QBEPAVQWidget@@XZ @ 10115 NONAME ; class QWidget * QStackedWidget::currentWidget(void) const + ?toListFormat@QTextFormat@@QBE?AVQTextListFormat@@XZ @ 10116 NONAME ; class QTextListFormat QTextFormat::toListFormat(void) const + ?setGridVisible@QCalendarWidget@@QAEX_N@Z @ 10117 NONAME ; void QCalendarWidget::setGridVisible(bool) + ?isFirstColumnSpanned@QTreeWidgetItem@@QBE_NXZ @ 10118 NONAME ; bool QTreeWidgetItem::isFirstColumnSpanned(void) const + ?setOptimizationFlag@QGraphicsView@@QAEXW4OptimizationFlag@1@_N@Z @ 10119 NONAME ; void QGraphicsView::setOptimizationFlag(enum QGraphicsView::OptimizationFlag, bool) + ?keyPressEvent@QWidget@@MAEXPAVQKeyEvent@@@Z @ 10120 NONAME ; void QWidget::keyPressEvent(class QKeyEvent *) + ?resizeEvent@QGraphicsWidget@@MAEXPAVQGraphicsSceneResizeEvent@@@Z @ 10121 NONAME ; void QGraphicsWidget::resizeEvent(class QGraphicsSceneResizeEvent *) + ?getStaticMetaObject@QToolButton@@SAABUQMetaObject@@XZ @ 10122 NONAME ; struct QMetaObject const & QToolButton::getStaticMetaObject(void) + ?remove@QTextList@@QAEXABVQTextBlock@@@Z @ 10123 NONAME ; void QTextList::remove(class QTextBlock const &) + ?currentSection@QDateTimeEdit@@QBE?AW4Section@1@XZ @ 10124 NONAME ; enum QDateTimeEdit::Section QDateTimeEdit::currentSection(void) const + ?tr@QRubberBand@@SA?AVQString@@PBD0H@Z @ 10125 NONAME ; class QString QRubberBand::tr(char const *, char const *, int) + ?minimumSizeHint@QToolButton@@UBE?AVQSize@@XZ @ 10126 NONAME ; class QSize QToolButton::minimumSizeHint(void) const + ?polish@QStyle@@UAEXAAVQPalette@@@Z @ 10127 NONAME ; void QStyle::polish(class QPalette &) + ?standardIconImplementation@QStyle@@IBE?AVQIcon@@W4StandardPixmap@1@PBVQStyleOption@@PBVQWidget@@@Z @ 10128 NONAME ; class QIcon QStyle::standardIconImplementation(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ?setDateEditEnabled@QCalendarWidget@@QAEX_N@Z @ 10129 NONAME ; void QCalendarWidget::setDateEditEnabled(bool) + ??0QCommonStyle@@QAE@XZ @ 10130 NONAME ; QCommonStyle::QCommonStyle(void) + ?metaObject@QImageIOPlugin@@UBEPBUQMetaObject@@XZ @ 10131 NONAME ; struct QMetaObject const * QImageIOPlugin::metaObject(void) const + ?metaObject@QGraphicsAnchor@@UBEPBUQMetaObject@@XZ @ 10132 NONAME ; struct QMetaObject const * QGraphicsAnchor::metaObject(void) const + ?getStaticMetaObject@QDataWidgetMapper@@SAABUQMetaObject@@XZ @ 10133 NONAME ; struct QMetaObject const & QDataWidgetMapper::getStaticMetaObject(void) + ?sizeHint@QTabWidget@@UBE?AVQSize@@XZ @ 10134 NONAME ; class QSize QTabWidget::sizeHint(void) const + ?setView@QComboBox@@QAEXPAVQAbstractItemView@@@Z @ 10135 NONAME ; void QComboBox::setView(class QAbstractItemView *) + ?setTransform@QPainter@@QAEXABVQTransform@@_N@Z @ 10136 NONAME ; void QPainter::setTransform(class QTransform const &, bool) + ?style@QTextListFormat@@QBE?AW4Style@1@XZ @ 10137 NONAME ; enum QTextListFormat::Style QTextListFormat::style(void) const + ?columnMinimumWidth@QGridLayout@@QBEHH@Z @ 10138 NONAME ; int QGridLayout::columnMinimumWidth(int) const + ??0QAbstractProxyModel@@QAE@PAVQObject@@@Z @ 10139 NONAME ; QAbstractProxyModel::QAbstractProxyModel(class QObject *) + ?contextMenuEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneContextMenuEvent@@@Z @ 10140 NONAME ; void QGraphicsTextItem::contextMenuEvent(class QGraphicsSceneContextMenuEvent *) + ?metaObject@QToolBox@@UBEPBUQMetaObject@@XZ @ 10141 NONAME ; struct QMetaObject const * QToolBox::metaObject(void) const + ?setStyle@QTextListFormat@@QAEXW4Style@1@@Z @ 10142 NONAME ; void QTextListFormat::setStyle(enum QTextListFormat::Style) + ?d_func@QTreeWidgetItemIterator@@ABEPBVQTreeWidgetItemIteratorPrivate@@XZ @ 10143 NONAME ; class QTreeWidgetItemIteratorPrivate const * QTreeWidgetItemIterator::d_func(void) const + ?addScrollBarWidget@QAbstractScrollArea@@QAEXPAVQWidget@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 10144 NONAME ; void QAbstractScrollArea::addScrollBarWidget(class QWidget *, class QFlags) + ?setHeaderRowCount@QTextTableFormat@@QAEXH@Z @ 10145 NONAME ; void QTextTableFormat::setHeaderRowCount(int) + ??0QGraphicsBlurEffect@@QAE@PAVQObject@@@Z @ 10146 NONAME ; QGraphicsBlurEffect::QGraphicsBlurEffect(class QObject *) + ?d_func@QTextFrame@@AAEPAVQTextFramePrivate@@XZ @ 10147 NONAME ; class QTextFramePrivate * QTextFrame::d_func(void) + ?setScreenPos@QGraphicsSceneMouseEvent@@QAEXABVQPoint@@@Z @ 10148 NONAME ; void QGraphicsSceneMouseEvent::setScreenPos(class QPoint const &) + ?currentChanged@QStackedWidget@@IAEXH@Z @ 10149 NONAME ; void QStackedWidget::currentChanged(int) + ??1QIconDragEvent@@UAE@XZ @ 10150 NONAME ; QIconDragEvent::~QIconDragEvent(void) + ?insertTopLevelItem@QTreeWidget@@QAEXHPAVQTreeWidgetItem@@@Z @ 10151 NONAME ; void QTreeWidget::insertTopLevelItem(int, class QTreeWidgetItem *) + ?trUtf8@QProgressDialog@@SA?AVQString@@PBD0H@Z @ 10152 NONAME ; class QString QProgressDialog::trUtf8(char const *, char const *, int) + ?cursorRect@QTextEdit@@QBE?AVQRect@@ABVQTextCursor@@@Z @ 10153 NONAME ; class QRect QTextEdit::cursorRect(class QTextCursor const &) const + ?headerData@QProxyModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 10154 NONAME ; class QVariant QProxyModel::headerData(int, enum Qt::Orientation, int) const + ?hideEvent@QScrollBar@@MAEXPAVQHideEvent@@@Z @ 10155 NONAME ; void QScrollBar::hideEvent(class QHideEvent *) + ?inputMode@QInputDialog@@QBE?AW4InputMode@1@XZ @ 10156 NONAME ; enum QInputDialog::InputMode QInputDialog::inputMode(void) const + ?trUtf8@QMdiArea@@SA?AVQString@@PBD0H@Z @ 10157 NONAME ; class QString QMdiArea::trUtf8(char const *, char const *, int) + ??1QItemSelectionRange@@QAE@XZ @ 10158 NONAME ; QItemSelectionRange::~QItemSelectionRange(void) + ?setTimeLine@QGraphicsItemAnimation@@QAEXPAVQTimeLine@@@Z @ 10159 NONAME ; void QGraphicsItemAnimation::setTimeLine(class QTimeLine *) + ?ioDevice@QPictureIO@@QBEPAVQIODevice@@XZ @ 10160 NONAME ; class QIODevice * QPictureIO::ioDevice(void) const + ?showPreviousYear@QCalendarWidget@@QAEXXZ @ 10161 NONAME ; void QCalendarWidget::showPreviousYear(void) + ?mouse_buttons@QApplicationPrivate@@2V?$QFlags@W4MouseButton@Qt@@@@A @ 10162 NONAME ; class QFlags QApplicationPrivate::mouse_buttons + ?setAnimated@QTreeView@@QAEX_N@Z @ 10163 NONAME ; void QTreeView::setAnimated(bool) + ?row@QListWidget@@QBEHPBVQListWidgetItem@@@Z @ 10164 NONAME ; int QListWidget::row(class QListWidgetItem const *) const + ??0QUndoCommand@@QAE@PAV0@@Z @ 10165 NONAME ; QUndoCommand::QUndoCommand(class QUndoCommand *) + ?filePath@QFileSystemModel@@QBE?AVQString@@ABVQModelIndex@@@Z @ 10166 NONAME ; class QString QFileSystemModel::filePath(class QModelIndex const &) const + ??0QStyleHintReturnVariant@@QAE@XZ @ 10167 NONAME ; QStyleHintReturnVariant::QStyleHintReturnVariant(void) + ?font@QGraphicsScene@@QBE?AVQFont@@XZ @ 10168 NONAME ; class QFont QGraphicsScene::font(void) const + ?lastRotationAngle@QPinchGesture@@QBEMXZ @ 10169 NONAME ; float QPinchGesture::lastRotationAngle(void) const + ?setRgba@QColor@@QAEXI@Z @ 10170 NONAME ; void QColor::setRgba(unsigned int) + ?defaultDropAction@QAbstractItemView@@QBE?AW4DropAction@Qt@@XZ @ 10171 NONAME ; enum Qt::DropAction QAbstractItemView::defaultDropAction(void) const + ?createProxyForChildWidget@QGraphicsProxyWidget@@QAEPAV1@PAVQWidget@@@Z @ 10172 NONAME ; class QGraphicsProxyWidget * QGraphicsProxyWidget::createProxyForChildWidget(class QWidget *) + ??6@YA?AVQDebug@@V0@ABVQMatrix@@@Z @ 10173 NONAME ; class QDebug operator<<(class QDebug, class QMatrix const &) + ?setSpacing@QGraphicsAnchorLayout@@QAEXM@Z @ 10174 NONAME ; void QGraphicsAnchorLayout::setSpacing(float) + ??1QLayoutPrivate@@UAE@XZ @ 10175 NONAME ; QLayoutPrivate::~QLayoutPrivate(void) + ?invisibleRootItem@QStandardItemModel@@QBEPAVQStandardItem@@XZ @ 10176 NONAME ; class QStandardItem * QStandardItemModel::invisibleRootItem(void) const + ??0QKeySequence@@QAE@W4StandardKey@0@@Z @ 10177 NONAME ; QKeySequence::QKeySequence(enum QKeySequence::StandardKey) + ??_EQLayoutPrivate@@UAE@I@Z @ 10178 NONAME ; QLayoutPrivate::~QLayoutPrivate(unsigned int) + ?trUtf8@QStatusBar@@SA?AVQString@@PBD0H@Z @ 10179 NONAME ; class QString QStatusBar::trUtf8(char const *, char const *, int) + ?showFullScreen@QWidget@@QAEXXZ @ 10180 NONAME ; void QWidget::showFullScreen(void) + ?closestAcceptableSize@QLayout@@SA?AVQSize@@PBVQWidget@@ABV2@@Z @ 10181 NONAME ; class QSize QLayout::closestAcceptableSize(class QWidget const *, class QSize const &) + ??_EQGridLayout@@UAE@I@Z @ 10182 NONAME ; QGridLayout::~QGridLayout(unsigned int) + ?focusNextPrevChild@QAbstractItemView@@MAE_N_N@Z @ 10183 NONAME ; bool QAbstractItemView::focusNextPrevChild(bool) + ?setCenterButtons@QDialogButtonBox@@QAEX_N@Z @ 10184 NONAME ; void QDialogButtonBox::setCenterButtons(bool) + ?appendGraphicsTransform@QGraphicsItemPrivate@@QAEXPAVQGraphicsTransform@@@Z @ 10185 NONAME ; void QGraphicsItemPrivate::appendGraphicsTransform(class QGraphicsTransform *) + ?setInvertedAppearance@QAbstractSlider@@QAEX_N@Z @ 10186 NONAME ; void QAbstractSlider::setInvertedAppearance(bool) + ?metaObject@QTextBlockGroup@@UBEPBUQMetaObject@@XZ @ 10187 NONAME ; struct QMetaObject const * QTextBlockGroup::metaObject(void) const + ?updateGeometries@QListView@@MAEXXZ @ 10188 NONAME ; void QListView::updateGeometries(void) + ?setOrientation@QToolBar@@QAEXW4Orientation@Qt@@@Z @ 10189 NONAME ; void QToolBar::setOrientation(enum Qt::Orientation) + ?leftMargin@QTextBlockFormat@@QBEMXZ @ 10190 NONAME ; float QTextBlockFormat::leftMargin(void) const + ?pressed@QAbstractButton@@IAEXXZ @ 10191 NONAME ; void QAbstractButton::pressed(void) + ?qDrawShadeRect@@YAXPAVQPainter@@ABVQRect@@ABVQPalette@@_NHHPBVQBrush@@@Z @ 10192 NONAME ; void qDrawShadeRect(class QPainter *, class QRect const &, class QPalette const &, bool, int, int, class QBrush const *) + ?initStyleOption@QCheckBox@@IBEXPAVQStyleOptionButton@@@Z @ 10193 NONAME ; void QCheckBox::initStyleOption(class QStyleOptionButton *) const + ?shortcutId@QShortcutEvent@@QAEHXZ @ 10194 NONAME ; int QShortcutEvent::shortcutId(void) + ?minimumSizeHint@QPushButton@@UBE?AVQSize@@XZ @ 10195 NONAME ; class QSize QPushButton::minimumSizeHint(void) const + ?qt_metacast@QToolBox@@UAEPAXPBD@Z @ 10196 NONAME ; void * QToolBox::qt_metacast(char const *) + ?setAlphaChannel@QPixmap@@QAEXABV1@@Z @ 10197 NONAME ; void QPixmap::setAlphaChannel(class QPixmap const &) + ?tr@QTimeEdit@@SA?AVQString@@PBD0H@Z @ 10198 NONAME ; class QString QTimeEdit::tr(char const *, char const *, int) + ?setGraphicsSystem@QApplication@@SAXABVQString@@@Z @ 10199 NONAME ; void QApplication::setGraphicsSystem(class QString const &) + ??0QItemSelectionRange@@QAE@ABVQModelIndex@@0@Z @ 10200 NONAME ; QItemSelectionRange::QItemSelectionRange(class QModelIndex const &, class QModelIndex const &) + ?currentChanged@QTableView@@MAEXABVQModelIndex@@0@Z @ 10201 NONAME ; void QTableView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?itemInserted@QToolBox@@MAEXH@Z @ 10202 NONAME ; void QToolBox::itemInserted(int) + ?qSmartMaxSize@@YA?AVQSize@@ABV1@00ABVQSizePolicy@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 10203 NONAME ; class QSize qSmartMaxSize(class QSize const &, class QSize const &, class QSize const &, class QSizePolicy const &, class QFlags) + ?topLeft@QItemSelectionRange@@QBE?AVQModelIndex@@XZ @ 10204 NONAME ; class QModelIndex QItemSelectionRange::topLeft(void) const + ?documentMargin@QTextDocument@@QBEMXZ @ 10205 NONAME ; float QTextDocument::documentMargin(void) const + ?resizeEvent@QAbstractSpinBox@@MAEXPAVQResizeEvent@@@Z @ 10206 NONAME ; void QAbstractSpinBox::resizeEvent(class QResizeEvent *) + ?canFetchMore@QSortFilterProxyModel@@UBE_NABVQModelIndex@@@Z @ 10207 NONAME ; bool QSortFilterProxyModel::canFetchMore(class QModelIndex const &) const + ?setPoints@QPolygon@@QAAXHHHZZ @ 10208 NONAME ; void QPolygon::setPoints(int, int, int, ...) + ??_EQCloseEvent@@UAE@I@Z @ 10209 NONAME ; QCloseEvent::~QCloseEvent(unsigned int) + ?ensureData@QPainterPath@@AAEXXZ @ 10210 NONAME ; void QPainterPath::ensureData(void) + ?mapToItem@QGraphicsItem@@QBE?AVQPointF@@PBV1@ABV2@@Z @ 10211 NONAME ; class QPointF QGraphicsItem::mapToItem(class QGraphicsItem const *, class QPointF const &) const + ?posAt@QGraphicsItemAnimation@@QBE?AVQPointF@@M@Z @ 10212 NONAME ; class QPointF QGraphicsItemAnimation::posAt(float) const + ?setHorizontalScrollBar@QAbstractScrollArea@@QAEXPAVQScrollBar@@@Z @ 10213 NONAME ; void QAbstractScrollArea::setHorizontalScrollBar(class QScrollBar *) + ?d_func@QAbstractItemView@@ABEPBVQAbstractItemViewPrivate@@XZ @ 10214 NONAME ; class QAbstractItemViewPrivate const * QAbstractItemView::d_func(void) const + ?connectNotify@QClipboard@@MAEXPBD@Z @ 10215 NONAME ; void QClipboard::connectNotify(char const *) + ?cellWidget@QTableWidget@@QBEPAVQWidget@@HH@Z @ 10216 NONAME ; class QWidget * QTableWidget::cellWidget(int, int) const + ?hasCursor@QGraphicsItem@@QBE_NXZ @ 10217 NONAME ; bool QGraphicsItem::hasCursor(void) const + ??1QImageTextKeyLang@@QAE@XZ @ 10218 NONAME ; QImageTextKeyLang::~QImageTextKeyLang(void) + ?font@QToolTip@@SA?AVQFont@@XZ @ 10219 NONAME ; class QFont QToolTip::font(void) + ?event@QAbstractSpinBox@@UAE_NPAVQEvent@@@Z @ 10220 NONAME ; bool QAbstractSpinBox::event(class QEvent *) + ?drawTree@QTreeView@@IBEXPAVQPainter@@ABVQRegion@@@Z @ 10221 NONAME ; void QTreeView::drawTree(class QPainter *, class QRegion const &) const + ??1QHBoxLayout@@UAE@XZ @ 10222 NONAME ; QHBoxLayout::~QHBoxLayout(void) + ?window@QGraphicsItem@@QBEPAVQGraphicsWidget@@XZ @ 10223 NONAME ; class QGraphicsWidget * QGraphicsItem::window(void) const + ?addButton@QDialogButtonBox@@QAEXPAVQAbstractButton@@W4ButtonRole@1@@Z @ 10224 NONAME ; void QDialogButtonBox::addButton(class QAbstractButton *, enum QDialogButtonBox::ButtonRole) + ?totalSizeHint@QLayout@@QBE?AVQSize@@XZ @ 10225 NONAME ; class QSize QLayout::totalSizeHint(void) const + ?currentItem@QListWidget@@QBEPAVQListWidgetItem@@XZ @ 10226 NONAME ; class QListWidgetItem * QListWidget::currentItem(void) const + ??0QStyleOptionTabV3@@IAE@H@Z @ 10227 NONAME ; QStyleOptionTabV3::QStyleOptionTabV3(int) + ?currentWidget@QStackedLayout@@QBEPAVQWidget@@XZ @ 10228 NONAME ; class QWidget * QStackedLayout::currentWidget(void) const + ?setMatrix@QGraphicsView@@QAEXABVQMatrix@@_N@Z @ 10229 NONAME ; void QGraphicsView::setMatrix(class QMatrix const &, bool) + ?lastScreenPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 10230 NONAME ; class QPointF QTouchEvent::TouchPoint::lastScreenPos(void) const + ?trUtf8@QGraphicsProxyWidget@@SA?AVQString@@PBD0@Z @ 10231 NONAME ; class QString QGraphicsProxyWidget::trUtf8(char const *, char const *) + ?button@QMouseEventTransition@@QBE?AW4MouseButton@Qt@@XZ @ 10232 NONAME ; enum Qt::MouseButton QMouseEventTransition::button(void) const + ?mouseMoveEvent@QPlainTextEdit@@MAEXPAVQMouseEvent@@@Z @ 10233 NONAME ; void QPlainTextEdit::mouseMoveEvent(class QMouseEvent *) + ??0QStandardItem@@QAE@ABVQIcon@@ABVQString@@@Z @ 10234 NONAME ; QStandardItem::QStandardItem(class QIcon const &, class QString const &) + ?setFont@QWidget@@QAEXABVQFont@@@Z @ 10235 NONAME ; void QWidget::setFont(class QFont const &) + ?dropEvent@QGraphicsScene@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 10236 NONAME ; void QGraphicsScene::dropEvent(class QGraphicsSceneDragDropEvent *) + ?currentIndex@QItemSelectionModel@@QBE?AVQModelIndex@@XZ @ 10237 NONAME ; class QModelIndex QItemSelectionModel::currentIndex(void) const + ?x@QWheelEvent@@QBEHXZ @ 10238 NONAME ; int QWheelEvent::x(void) const + ??_EQTextDocument@@UAE@I@Z @ 10239 NONAME ; QTextDocument::~QTextDocument(unsigned int) + ?beginPaint@QRasterWindowSurface@@UAEXABVQRegion@@@Z @ 10240 NONAME ; void QRasterWindowSurface::beginPaint(class QRegion const &) + ??0QDialogButtonBox@@QAE@W4Orientation@Qt@@PAVQWidget@@@Z @ 10241 NONAME ; QDialogButtonBox::QDialogButtonBox(enum Qt::Orientation, class QWidget *) + ?isIndexHidden@QTableView@@MBE_NABVQModelIndex@@@Z @ 10242 NONAME ; bool QTableView::isIndexHidden(class QModelIndex const &) const + ?rowIntersectsSelection@QItemSelectionModel@@QBE_NHABVQModelIndex@@@Z @ 10243 NONAME ; bool QItemSelectionModel::rowIntersectsSelection(int, class QModelIndex const &) const + ?tr@QTreeView@@SA?AVQString@@PBD0H@Z @ 10244 NONAME ; class QString QTreeView::tr(char const *, char const *, int) + ?viewOptions@QAbstractItemView@@MBE?AVQStyleOptionViewItem@@XZ @ 10245 NONAME ; class QStyleOptionViewItem QAbstractItemView::viewOptions(void) const + ?maxCount@QComboBox@@QBEHXZ @ 10246 NONAME ; int QComboBox::maxCount(void) const + ?appendColumn@QStandardItemModel@@QAEXABV?$QList@PAVQStandardItem@@@@@Z @ 10247 NONAME ; void QStandardItemModel::appendColumn(class QList const &) + ?setOrientation@QGraphicsLinearLayout@@QAEXW4Orientation@Qt@@@Z @ 10248 NONAME ; void QGraphicsLinearLayout::setOrientation(enum Qt::Orientation) + ?cleanup@QColormap@@SAXXZ @ 10249 NONAME ; void QColormap::cleanup(void) + ?insertItem@QComboBox@@QAEXHABVQString@@ABVQVariant@@@Z @ 10250 NONAME ; void QComboBox::insertItem(int, class QString const &, class QVariant const &) + ??_EQTreeView@@UAE@I@Z @ 10251 NONAME ; QTreeView::~QTreeView(unsigned int) + ?d_func@QTabBar@@ABEPBVQTabBarPrivate@@XZ @ 10252 NONAME ; class QTabBarPrivate const * QTabBar::d_func(void) const + ?setCheckable@QAction@@QAEX_N@Z @ 10253 NONAME ; void QAction::setCheckable(bool) + ??MQTableWidgetItem@@UBE_NABV0@@Z @ 10254 NONAME ; bool QTableWidgetItem::operator<(class QTableWidgetItem const &) const + ?setForeground@QTextFormat@@QAEXABVQBrush@@@Z @ 10255 NONAME ; void QTextFormat::setForeground(class QBrush const &) + ?hitTestComplexControl@QProxyStyle@@UBE?AW4SubControl@QStyle@@W4ComplexControl@3@PBVQStyleOptionComplex@@ABVQPoint@@PBVQWidget@@@Z @ 10256 NONAME ; enum QStyle::SubControl QProxyStyle::hitTestComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPoint const &, class QWidget const *) const + ?setColumnCount@QStandardItemModel@@QAEXH@Z @ 10257 NONAME ; void QStandardItemModel::setColumnCount(int) + ??4QTextBlockFormat@@QAEAAV0@ABV0@@Z @ 10258 NONAME ; class QTextBlockFormat & QTextBlockFormat::operator=(class QTextBlockFormat const &) + ?staticMetaObject@QAbstractButton@@2UQMetaObject@@B @ 10259 NONAME ; struct QMetaObject const QAbstractButton::staticMetaObject + ?horizontalHeaderItem@QStandardItemModel@@QBEPAVQStandardItem@@H@Z @ 10260 NONAME ; class QStandardItem * QStandardItemModel::horizontalHeaderItem(int) const + ??0QPolygonF@@QAE@H@Z @ 10261 NONAME ; QPolygonF::QPolygonF(int) + ??_EQPainterState@@UAE@I@Z @ 10262 NONAME ; QPainterState::~QPainterState(unsigned int) + ?isObscuredBy@QAbstractGraphicsShapeItem@@UBE_NPBVQGraphicsItem@@@Z @ 10263 NONAME ; bool QAbstractGraphicsShapeItem::isObscuredBy(class QGraphicsItem const *) const + ?format@QTextDocumentWriter@@QBE?AVQByteArray@@XZ @ 10264 NONAME ; class QByteArray QTextDocumentWriter::format(void) const + ?rowsAboutToBeRemoved@QAbstractItemView@@MAEXABVQModelIndex@@HH@Z @ 10265 NONAME ; void QAbstractItemView::rowsAboutToBeRemoved(class QModelIndex const &, int, int) + ?toPlainText@QGraphicsTextItem@@QBE?AVQString@@XZ @ 10266 NONAME ; class QString QGraphicsTextItem::toPlainText(void) const + ?setFillRule@QPainterPath@@QAEXW4FillRule@Qt@@@Z @ 10267 NONAME ; void QPainterPath::setFillRule(enum Qt::FillRule) + ?resolve@QPalette@@QBEIXZ @ 10268 NONAME ; unsigned int QPalette::resolve(void) const + ?setStringList@QStringListModel@@QAEXABVQStringList@@@Z @ 10269 NONAME ; void QStringListModel::setStringList(class QStringList const &) + ?updateAncestorFlag@QGraphicsItemPrivate@@QAEXW4GraphicsItemFlag@QGraphicsItem@@W4AncestorFlag@1@_N2@Z @ 10270 NONAME ; void QGraphicsItemPrivate::updateAncestorFlag(enum QGraphicsItem::GraphicsItemFlag, enum QGraphicsItemPrivate::AncestorFlag, bool, bool) + ?sizeHintForRow@QTableView@@MBEHH@Z @ 10271 NONAME ; int QTableView::sizeHintForRow(int) const + ??0QSymbianEvent@@QAE@W4Type@0@H@Z @ 10272 NONAME ; QSymbianEvent::QSymbianEvent(enum QSymbianEvent::Type, int) + ?staticMetaObject@QGridLayout@@2UQMetaObject@@B @ 10273 NONAME ; struct QMetaObject const QGridLayout::staticMetaObject + ?keys@QInputContextFactory@@SA?AVQStringList@@XZ @ 10274 NONAME ; class QStringList QInputContextFactory::keys(void) + ?setDefaultAction@QMenu@@QAEXPAVQAction@@@Z @ 10275 NONAME ; void QMenu::setDefaultAction(class QAction *) + ?reset@QTransform@@QAEXXZ @ 10276 NONAME ; void QTransform::reset(void) + ??_EQS60MainDocument@@UAE@I@Z @ 10277 NONAME ; QS60MainDocument::~QS60MainDocument(unsigned int) + ?drawLines@QPainter@@QAEXPBVQLine@@H@Z @ 10278 NONAME ; void QPainter::drawLines(class QLine const *, int) + ?hasSelection@QTextCursor@@QBE_NXZ @ 10279 NONAME ; bool QTextCursor::hasSelection(void) const + ?setOffsetToSectionPosition@QHeaderView@@QAEXH@Z @ 10280 NONAME ; void QHeaderView::setOffsetToSectionPosition(int) + ??BQColor@@QBE?AVQVariant@@XZ @ 10281 NONAME ; QColor::operator class QVariant(void) const + ?showDropIndicator@QAbstractItemView@@QBE_NXZ @ 10282 NONAME ; bool QAbstractItemView::showDropIndicator(void) const + ??_EQLayout@@UAE@I@Z @ 10283 NONAME ; QLayout::~QLayout(unsigned int) + ?setCompleter@QComboBox@@QAEXPAVQCompleter@@@Z @ 10284 NONAME ; void QComboBox::setCompleter(class QCompleter *) + ?setButtons@QGraphicsSceneDragDropEvent@@QAEXV?$QFlags@W4MouseButton@Qt@@@@@Z @ 10285 NONAME ; void QGraphicsSceneDragDropEvent::setButtons(class QFlags) + ?focusOutEvent@QWidget@@MAEXPAVQFocusEvent@@@Z @ 10286 NONAME ; void QWidget::focusOutEvent(class QFocusEvent *) + ??0QStyle@@IAE@AAVQStylePrivate@@@Z @ 10287 NONAME ; QStyle::QStyle(class QStylePrivate &) + ?doImageIO@QPixmap@@ABE_NPAVQImageWriter@@H@Z @ 10288 NONAME ; bool QPixmap::doImageIO(class QImageWriter *, int) const + ??1QTreeWidget@@UAE@XZ @ 10289 NONAME ; QTreeWidget::~QTreeWidget(void) + ?tr@QInputDialog@@SA?AVQString@@PBD0@Z @ 10290 NONAME ; class QString QInputDialog::tr(char const *, char const *) + ?tabSizeHint@QTabBar@@MBE?AVQSize@@H@Z @ 10291 NONAME ; class QSize QTabBar::tabSizeHint(int) const + ?tr@QDateEdit@@SA?AVQString@@PBD0@Z @ 10292 NONAME ; class QString QDateEdit::tr(char const *, char const *) + ?tr@QCoeFepInputContext@@SA?AVQString@@PBD0H@Z @ 10293 NONAME ; class QString QCoeFepInputContext::tr(char const *, char const *, int) + ?origin@QGraphicsScale@@QBE?AVQVector3D@@XZ @ 10294 NONAME ; class QVector3D QGraphicsScale::origin(void) const + ?subElementRect@QCommonStyle@@UBE?AVQRect@@W4SubElement@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 10295 NONAME ; class QRect QCommonStyle::subElementRect(enum QStyle::SubElement, class QStyleOption const *, class QWidget const *) const + ?sizeHint@QRadioButton@@UBE?AVQSize@@XZ @ 10296 NONAME ; class QSize QRadioButton::sizeHint(void) const + ?setModelSorting@QCompleter@@QAEXW4ModelSorting@1@@Z @ 10297 NONAME ; void QCompleter::setModelSorting(enum QCompleter::ModelSorting) + ?focusProxy@QGraphicsItem@@QBEPAV1@XZ @ 10298 NONAME ; class QGraphicsItem * QGraphicsItem::focusProxy(void) const + ?paintDevice@QPaintEngine@@QBEPAVQPaintDevice@@XZ @ 10299 NONAME ; class QPaintDevice * QPaintEngine::paintDevice(void) const + ?setExpanding@QTabBar@@QAEX_N@Z @ 10300 NONAME ; void QTabBar::setExpanding(bool) + ?text@QStandardItem@@QBE?AVQString@@XZ @ 10301 NONAME ; class QString QStandardItem::text(void) const + ??_EQTextTable@@UAE@I@Z @ 10302 NONAME ; QTextTable::~QTextTable(unsigned int) + ?isEnabled@QGraphicsEffect@@QBE_NXZ @ 10303 NONAME ; bool QGraphicsEffect::isEnabled(void) const + ?cursorWidth@QPlainTextDocumentLayout@@QBEHXZ @ 10304 NONAME ; int QPlainTextDocumentLayout::cursorWidth(void) const + ?dragLeaveEvent@QLineEdit@@MAEXPAVQDragLeaveEvent@@@Z @ 10305 NONAME ; void QLineEdit::dragLeaveEvent(class QDragLeaveEvent *) + ?contains@QRegion@@QBE_NABVQRect@@@Z @ 10306 NONAME ; bool QRegion::contains(class QRect const &) const + ?position@QTextLayout@@QBE?AVQPointF@@XZ @ 10307 NONAME ; class QPointF QTextLayout::position(void) const + ?invertedAppearance@QProgressBar@@QAE_NXZ @ 10308 NONAME ; bool QProgressBar::invertedAppearance(void) + ?setVisible@QSizeGrip@@UAEX_N@Z @ 10309 NONAME ; void QSizeGrip::setVisible(bool) + ?pixmap@QSplashScreen@@QBE?BVQPixmap@@XZ @ 10310 NONAME ; class QPixmap const QSplashScreen::pixmap(void) const + ??0QPolygonF@@QAE@ABV?$QVector@VQPointF@@@@@Z @ 10311 NONAME ; QPolygonF::QPolygonF(class QVector const &) + ?qt_metacast@QSpinBox@@UAEPAXPBD@Z @ 10312 NONAME ; void * QSpinBox::qt_metacast(char const *) + ?drawLines@QPainter@@QAEXABV?$QVector@VQLineF@@@@@Z @ 10313 NONAME ; void QPainter::drawLines(class QVector const &) + ?trUtf8@QSortFilterProxyModel@@SA?AVQString@@PBD0@Z @ 10314 NONAME ; class QString QSortFilterProxyModel::trUtf8(char const *, char const *) + ?d_func@QLabel@@AAEPAVQLabelPrivate@@XZ @ 10315 NONAME ; class QLabelPrivate * QLabel::d_func(void) + ?grabMouse@QWidget@@QAEXXZ @ 10316 NONAME ; void QWidget::grabMouse(void) + ?takeChild@QTreeWidgetItem@@QAEPAV1@H@Z @ 10317 NONAME ; class QTreeWidgetItem * QTreeWidgetItem::takeChild(int) + ?setMouseCursor@QWidgetResizeHandler@@AAEXW4MousePosition@1@@Z @ 10318 NONAME ; void QWidgetResizeHandler::setMouseCursor(enum QWidgetResizeHandler::MousePosition) + ?qt_metacast@QPaintBufferSignalProxy@@UAEPAXPBD@Z @ 10319 NONAME ; void * QPaintBufferSignalProxy::qt_metacast(char const *) + ?qt_metacast@QPlainTextDocumentLayout@@UAEPAXPBD@Z @ 10320 NONAME ; void * QPlainTextDocumentLayout::qt_metacast(char const *) + ?setText@QUndoCommand@@QAEXABVQString@@@Z @ 10321 NONAME ; void QUndoCommand::setText(class QString const &) + ?elements@QVectorPath@@QBEPBW4ElementType@QPainterPath@@XZ @ 10322 NONAME ; enum QPainterPath::ElementType const * QVectorPath::elements(void) const + ??0QContextMenuEvent@@QAE@W4Reason@0@ABVQPoint@@1V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 10323 NONAME ; QContextMenuEvent::QContextMenuEvent(enum QContextMenuEvent::Reason, class QPoint const &, class QPoint const &, class QFlags) + ??1QDateEdit@@UAE@XZ @ 10324 NONAME ; QDateEdit::~QDateEdit(void) + ?rect@TouchPoint@QTouchEvent@@QBE?AVQRectF@@XZ @ 10325 NONAME ; class QRectF QTouchEvent::TouchPoint::rect(void) const + ?updateGeometry@QWidget@@QAEXXZ @ 10326 NONAME ; void QWidget::updateGeometry(void) + ?scale@QMatrix4x4@@QAEAAV1@ABVQVector3D@@@Z @ 10327 NONAME ; class QMatrix4x4 & QMatrix4x4::scale(class QVector3D const &) + ?setBottom@QDoubleValidator@@QAEXN@Z @ 10328 NONAME ; void QDoubleValidator::setBottom(double) + ?icon@QFileIconProvider@@UBE?AVQIcon@@ABVQFileInfo@@@Z @ 10329 NONAME ; class QIcon QFileIconProvider::icon(class QFileInfo const &) const + ?totalMaximumSize@QLayout@@QBE?AVQSize@@XZ @ 10330 NONAME ; class QSize QLayout::totalMaximumSize(void) const + ?rowAlignment@QGraphicsGridLayout@@QBE?AV?$QFlags@W4AlignmentFlag@Qt@@@@H@Z @ 10331 NONAME ; class QFlags QGraphicsGridLayout::rowAlignment(int) const + ?textColor@QListWidgetItem@@QBE?AVQColor@@XZ @ 10332 NONAME ; class QColor QListWidgetItem::textColor(void) const + ?indexChanged@QUndoStack@@IAEXH@Z @ 10333 NONAME ; void QUndoStack::indexChanged(int) + ?appendPlainText@QPlainTextEdit@@QAEXABVQString@@@Z @ 10334 NONAME ; void QPlainTextEdit::appendPlainText(class QString const &) + ?resize@QWidget@@QAEXHH@Z @ 10335 NONAME ; void QWidget::resize(int, int) + ?widget@QGraphicsSceneEvent@@QBEPAVQWidget@@XZ @ 10336 NONAME ; class QWidget * QGraphicsSceneEvent::widget(void) const + ?setTabWhatsThis@QTabBar@@QAEXHABVQString@@@Z @ 10337 NONAME ; void QTabBar::setTabWhatsThis(int, class QString const &) + ?curveThreshold@QPainterPathStroker@@QBEMXZ @ 10338 NONAME ; float QPainterPathStroker::curveThreshold(void) const + ?initStyleOption@QTabWidget@@IBEXPAVQStyleOptionTabWidgetFrame@@@Z @ 10339 NONAME ; void QTabWidget::initStyleOption(class QStyleOptionTabWidgetFrame *) const + ?translated@QPolygon@@QBE?AV1@ABVQPoint@@@Z @ 10340 NONAME ; class QPolygon QPolygon::translated(class QPoint const &) const + ?windowActivationChange@QWidget@@MAEX_N@Z @ 10341 NONAME ; void QWidget::windowActivationChange(bool) + ?sortByColumn@QTreeView@@QAEXHW4SortOrder@Qt@@@Z @ 10342 NONAME ; void QTreeView::sortByColumn(int, enum Qt::SortOrder) + ?setRowHidden@QListView@@QAEXH_N@Z @ 10343 NONAME ; void QListView::setRowHidden(int, bool) + ?mouseDoubleClickEvent@QMdiSubWindow@@MAEXPAVQMouseEvent@@@Z @ 10344 NONAME ; void QMdiSubWindow::mouseDoubleClickEvent(class QMouseEvent *) + ?verticalOffset@QHeaderView@@MBEHXZ @ 10345 NONAME ; int QHeaderView::verticalOffset(void) const + ?initStyleOption@QSlider@@IBEXPAVQStyleOptionSlider@@@Z @ 10346 NONAME ; void QSlider::initStyleOption(class QStyleOptionSlider *) const + ?setMatrix@QPainter@@QAEXABVQMatrix@@_N@Z @ 10347 NONAME ; void QPainter::setMatrix(class QMatrix const &, bool) + ?metaObject@QAbstractItemDelegate@@UBEPBUQMetaObject@@XZ @ 10348 NONAME ; struct QMetaObject const * QAbstractItemDelegate::metaObject(void) const + ?setQuitOnLastWindowClosed@QApplication@@SAX_N@Z @ 10349 NONAME ; void QApplication::setQuitOnLastWindowClosed(bool) + ?getRange@QSplitter@@QBEXHPAH0@Z @ 10350 NONAME ; void QSplitter::getRange(int, int *, int *) const + ?toFillPolygon@QPainterPath@@QBE?AVQPolygonF@@ABVQTransform@@@Z @ 10351 NONAME ; class QPolygonF QPainterPath::toFillPolygon(class QTransform const &) const + ?addFile@QIcon@@QAEXABVQString@@ABVQSize@@W4Mode@1@W4State@1@@Z @ 10352 NONAME ; void QIcon::addFile(class QString const &, class QSize const &, enum QIcon::Mode, enum QIcon::State) + ?isAffine@QTransform@@QBE_NXZ @ 10353 NONAME ; bool QTransform::isAffine(void) const + ?opaqueArea@QGraphicsItemGroup@@UBE?AVQPainterPath@@XZ @ 10354 NONAME ; class QPainterPath QGraphicsItemGroup::opaqueArea(void) const + ?setModel@QHeaderView@@UAEXPAVQAbstractItemModel@@@Z @ 10355 NONAME ; void QHeaderView::setModel(class QAbstractItemModel *) + ?sizeHint@QMenu@@UBE?AVQSize@@XZ @ 10356 NONAME ; class QSize QMenu::sizeHint(void) const + ?getStaticMetaObject@QTableView@@SAABUQMetaObject@@XZ @ 10357 NONAME ; struct QMetaObject const & QTableView::getStaticMetaObject(void) + ?actionAt@QToolBar@@QBEPAVQAction@@ABVQPoint@@@Z @ 10358 NONAME ; class QAction * QToolBar::actionAt(class QPoint const &) const + ?backgroundBrush@QGraphicsScene@@QBE?AVQBrush@@XZ @ 10359 NONAME ; class QBrush QGraphicsScene::backgroundBrush(void) const + ?tr@QInputContextPlugin@@SA?AVQString@@PBD0H@Z @ 10360 NONAME ; class QString QInputContextPlugin::tr(char const *, char const *, int) + ?isVisible@QToolTip@@SA_NXZ @ 10361 NONAME ; bool QToolTip::isVisible(void) + ?resolve@QPalette@@QBE?AV1@ABV1@@Z @ 10362 NONAME ; class QPalette QPalette::resolve(class QPalette const &) const + ?tr@QListWidget@@SA?AVQString@@PBD0H@Z @ 10363 NONAME ; class QString QListWidget::tr(char const *, char const *, int) + ??_EQMdiArea@@UAE@I@Z @ 10364 NONAME ; QMdiArea::~QMdiArea(unsigned int) + ?qt_metacast@QProxyModel@@UAEPAXPBD@Z @ 10365 NONAME ; void * QProxyModel::qt_metacast(char const *) + ?currentText@QComboBox@@QBE?AVQString@@XZ @ 10366 NONAME ; class QString QComboBox::currentText(void) const + ?init@QStyleOption@@QAEXPBVQWidget@@@Z @ 10367 NONAME ; void QStyleOption::init(class QWidget const *) + ?pos@QGraphicsItem@@QBE?AVQPointF@@XZ @ 10368 NONAME ; class QPointF QGraphicsItem::pos(void) const + ?qRgba@@YAIHHHH@Z @ 10369 NONAME ; unsigned int qRgba(int, int, int, int) + ?setThemeName@QIcon@@SAXABVQString@@@Z @ 10370 NONAME ; void QIcon::setThemeName(class QString const &) + ?locale@QValidator@@QBE?AVQLocale@@XZ @ 10371 NONAME ; class QLocale QValidator::locale(void) const + ??_EQPinchGesture@@UAE@I@Z @ 10372 NONAME ; QPinchGesture::~QPinchGesture(unsigned int) + ?globalY@QTabletEvent@@QBEHXZ @ 10373 NONAME ; int QTabletEvent::globalY(void) const + ?setModifiers@QInputEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 10374 NONAME ; void QInputEvent::setModifiers(class QFlags) + ?qt_metacall@QWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10375 NONAME ; int QWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?activated@QComboBox@@IAEXH@Z @ 10376 NONAME ; void QComboBox::activated(int) + ?sectionsInserted@QHeaderView@@IAEXABVQModelIndex@@HH@Z @ 10377 NONAME ; void QHeaderView::sectionsInserted(class QModelIndex const &, int, int) + ?mapToScene@QGraphicsItem@@QBE?AVQPolygonF@@ABVQRectF@@@Z @ 10378 NONAME ; class QPolygonF QGraphicsItem::mapToScene(class QRectF const &) const + ?setCheckable@QStandardItem@@QAEX_N@Z @ 10379 NONAME ; void QStandardItem::setCheckable(bool) + ??0QTimeEdit@@QAE@PAVQWidget@@@Z @ 10380 NONAME ; QTimeEdit::QTimeEdit(class QWidget *) + ?prev@Parser@QCss@@QAEXXZ @ 10381 NONAME ; void QCss::Parser::prev(void) + ?rowPreferredHeight@QGraphicsGridLayout@@QBEMH@Z @ 10382 NONAME ; float QGraphicsGridLayout::rowPreferredHeight(int) const + ?createExtendedKeyEvent@QKeyEvent@@SAPAV1@W4Type@QEvent@@HV?$QFlags@W4KeyboardModifier@Qt@@@@IIIABVQString@@_NG@Z @ 10383 NONAME ; class QKeyEvent * QKeyEvent::createExtendedKeyEvent(enum QEvent::Type, int, class QFlags, unsigned int, unsigned int, unsigned int, class QString const &, bool, unsigned short) + ??0QStyleOptionFrameV3@@QAE@ABVQStyleOptionFrame@@@Z @ 10384 NONAME ; QStyleOptionFrameV3::QStyleOptionFrameV3(class QStyleOptionFrame const &) + ?frameFormat@QTextFrame@@QBE?AVQTextFrameFormat@@XZ @ 10385 NONAME ; class QTextFrameFormat QTextFrame::frameFormat(void) const + ?paintEvent@QLabel@@MAEXPAVQPaintEvent@@@Z @ 10386 NONAME ; void QLabel::paintEvent(class QPaintEvent *) + ?boundingRect@QPainter@@QAE?AVQRect@@HHHHHABVQString@@@Z @ 10387 NONAME ; class QRect QPainter::boundingRect(int, int, int, int, int, class QString const &) + ?qDrawShadePanel@@YAXPAVQPainter@@HHHHABVQPalette@@_NHPBVQBrush@@@Z @ 10388 NONAME ; void qDrawShadePanel(class QPainter *, int, int, int, int, class QPalette const &, bool, int, class QBrush const *) + ?qt_metacall@QVBoxLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10389 NONAME ; int QVBoxLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?supportsExtension@QGraphicsSimpleTextItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 10390 NONAME ; bool QGraphicsSimpleTextItem::supportsExtension(enum QGraphicsItem::Extension) const + ?currentChanged@QToolBox@@IAEXH@Z @ 10391 NONAME ; void QToolBox::currentChanged(int) + ?remove@QPixmapCache@@SAXABVKey@1@@Z @ 10392 NONAME ; void QPixmapCache::remove(class QPixmapCache::Key const &) + ?panel@QGraphicsItem@@QBEPAV1@XZ @ 10393 NONAME ; class QGraphicsItem * QGraphicsItem::panel(void) const + ?iconProvider@QFileSystemModel@@QBEPAVQFileIconProvider@@XZ @ 10394 NONAME ; class QFileIconProvider * QFileSystemModel::iconProvider(void) const + ?parsePseudo@Parser@QCss@@QAE_NPAUPseudo@2@@Z @ 10395 NONAME ; bool QCss::Parser::parsePseudo(struct QCss::Pseudo *) + ?ensureVisible@QGraphicsView@@QAEXMMMMHH@Z @ 10396 NONAME ; void QGraphicsView::ensureVisible(float, float, float, float, int, int) + ?setDown@QAbstractButton@@QAEX_N@Z @ 10397 NONAME ; void QAbstractButton::setDown(bool) + ?boundingRect@QGraphicsPathItem@@UBE?AVQRectF@@XZ @ 10398 NONAME ; class QRectF QGraphicsPathItem::boundingRect(void) const + ?getStaticMetaObject@QGradient@@SAABUQMetaObject@@XZ @ 10399 NONAME ; struct QMetaObject const & QGradient::getStaticMetaObject(void) + ?nextInFocusChain@QWidget@@QBEPAV1@XZ @ 10400 NONAME ; class QWidget * QWidget::nextInFocusChain(void) const + ?width@QPixmapData@@QBEHXZ @ 10401 NONAME ; int QPixmapData::width(void) const + ?itemAt@QFormLayout@@QBEPAVQLayoutItem@@HW4ItemRole@1@@Z @ 10402 NONAME ; class QLayoutItem * QFormLayout::itemAt(int, enum QFormLayout::ItemRole) const + ?setLetterSpacing@QFont@@QAEXW4SpacingType@1@M@Z @ 10403 NONAME ; void QFont::setLetterSpacing(enum QFont::SpacingType, float) + ?whatsThis@QListWidgetItem@@QBE?AVQString@@XZ @ 10404 NONAME ; class QString QListWidgetItem::whatsThis(void) const + ?mapToParent@QGraphicsItem@@QBE?AVQPolygonF@@MMMM@Z @ 10405 NONAME ; class QPolygonF QGraphicsItem::mapToParent(float, float, float, float) const + ?unsetLocale@QWidget@@QAEXXZ @ 10406 NONAME ; void QWidget::unsetLocale(void) + ?stepEnabled@QAbstractSpinBox@@MBE?AV?$QFlags@W4StepEnabledFlag@QAbstractSpinBox@@@@XZ @ 10407 NONAME ; class QFlags QAbstractSpinBox::stepEnabled(void) const + ?setViewport@QPainter@@QAEXABVQRect@@@Z @ 10408 NONAME ; void QPainter::setViewport(class QRect const &) + ?d_func@QGraphicsSceneDragDropEvent@@ABEPBVQGraphicsSceneDragDropEventPrivate@@XZ @ 10409 NONAME ; class QGraphicsSceneDragDropEventPrivate const * QGraphicsSceneDragDropEvent::d_func(void) const + ??0QBoxLayout@@QAE@W4Direction@0@PAVQWidget@@@Z @ 10410 NONAME ; QBoxLayout::QBoxLayout(enum QBoxLayout::Direction, class QWidget *) + ?maxWidth@QFontMetrics@@QBEHXZ @ 10411 NONAME ; int QFontMetrics::maxWidth(void) const + ?event@QSplitterHandle@@MAE_NPAVQEvent@@@Z @ 10412 NONAME ; bool QSplitterHandle::event(class QEvent *) + ?windowOpacity@QWidget@@QBEMXZ @ 10413 NONAME ; float QWidget::windowOpacity(void) const + ?minimumSizeHint@QCalendarWidget@@UBE?AVQSize@@XZ @ 10414 NONAME ; class QSize QCalendarWidget::minimumSizeHint(void) const + ?getColor@QColorDialog@@SA?AVQColor@@ABV2@PAVQWidget@@ABVQString@@V?$QFlags@W4ColorDialogOption@QColorDialog@@@@@Z @ 10415 NONAME ; class QColor QColorDialog::getColor(class QColor const &, class QWidget *, class QString const &, class QFlags) + ?selectionBehavior@QAbstractItemView@@QBE?AW4SelectionBehavior@1@XZ @ 10416 NONAME ; enum QAbstractItemView::SelectionBehavior QAbstractItemView::selectionBehavior(void) const + ?contains@QTextBlock@@QBE_NH@Z @ 10417 NONAME ; bool QTextBlock::contains(int) const + ??_EQScrollBar@@UAE@I@Z @ 10418 NONAME ; QScrollBar::~QScrollBar(unsigned int) + ?setTabBar@QTabWidget@@IAEXPAVQTabBar@@@Z @ 10419 NONAME ; void QTabWidget::setTabBar(class QTabBar *) + ??1QWheelEvent@@UAE@XZ @ 10420 NONAME ; QWheelEvent::~QWheelEvent(void) + ?keyPressEvent@QTextEdit@@MAEXPAVQKeyEvent@@@Z @ 10421 NONAME ; void QTextEdit::keyPressEvent(class QKeyEvent *) + ?clearHistory@QTextBrowser@@QAEXXZ @ 10422 NONAME ; void QTextBrowser::clearHistory(void) + ?itemText@QComboBox@@QBE?AVQString@@H@Z @ 10423 NONAME ; class QString QComboBox::itemText(int) const + ?labelText@QFileDialog@@QBE?AVQString@@W4DialogLabel@1@@Z @ 10424 NONAME ; class QString QFileDialog::labelText(enum QFileDialog::DialogLabel) const + ??NQTextCursor@@QBE_NABV0@@Z @ 10425 NONAME ; bool QTextCursor::operator<=(class QTextCursor const &) const + ?tr@QInputContext@@SA?AVQString@@PBD0H@Z @ 10426 NONAME ; class QString QInputContext::tr(char const *, char const *, int) + ?subtracted@QRegion@@QBE?AV1@ABV1@@Z @ 10427 NONAME ; class QRegion QRegion::subtracted(class QRegion const &) const + ?dragMoveEvent@QAbstractScrollArea@@MAEXPAVQDragMoveEvent@@@Z @ 10428 NONAME ; void QAbstractScrollArea::dragMoveEvent(class QDragMoveEvent *) + ??_EQRegExpValidator@@UAE@I@Z @ 10429 NONAME ; QRegExpValidator::~QRegExpValidator(unsigned int) + ?map@QMatrix@@QBE?AVQRegion@@ABV2@@Z @ 10430 NONAME ; class QRegion QMatrix::map(class QRegion const &) const + ?currentId@QWizard@@QBEHXZ @ 10431 NONAME ; int QWizard::currentId(void) const + ??8QTextCursor@@QBE_NABV0@@Z @ 10432 NONAME ; bool QTextCursor::operator==(class QTextCursor const &) const + ??0QPainterPath@@QAE@ABVQPointF@@@Z @ 10433 NONAME ; QPainterPath::QPainterPath(class QPointF const &) + ?wizardStyle@QWizard@@QBE?AW4WizardStyle@1@XZ @ 10434 NONAME ; enum QWizard::WizardStyle QWizard::wizardStyle(void) const + ?setStyle@QGraphicsScene@@QAEXPAVQStyle@@@Z @ 10435 NONAME ; void QGraphicsScene::setStyle(class QStyle *) + ?getOpaqueRegion@QWidgetPrivate@@QBE?AVQRegion@@XZ @ 10436 NONAME ; class QRegion QWidgetPrivate::getOpaqueRegion(void) const + ?triggered@QMenuBar@@IAEXPAVQAction@@@Z @ 10437 NONAME ; void QMenuBar::triggered(class QAction *) + ??0QStyleOptionButton@@QAE@XZ @ 10438 NONAME ; QStyleOptionButton::QStyleOptionButton(void) + ?height@QImage@@QBEHXZ @ 10439 NONAME ; int QImage::height(void) const + ?autoReset@QProgressDialog@@QBE_NXZ @ 10440 NONAME ; bool QProgressDialog::autoReset(void) const + ?trUtf8@QSlider@@SA?AVQString@@PBD0H@Z @ 10441 NONAME ; class QString QSlider::trUtf8(char const *, char const *, int) + ?setHotSpot@QDrag@@QAEXABVQPoint@@@Z @ 10442 NONAME ; void QDrag::setHotSpot(class QPoint const &) + ?layout@QTextBlock@@QBEPAVQTextLayout@@XZ @ 10443 NONAME ; class QTextLayout * QTextBlock::layout(void) const + ?takeColumn@QStandardItem@@QAE?AV?$QList@PAVQStandardItem@@@@H@Z @ 10444 NONAME ; class QList QStandardItem::takeColumn(int) + ?setScenePos@QGraphicsSceneDragDropEvent@@QAEXABVQPointF@@@Z @ 10445 NONAME ; void QGraphicsSceneDragDropEvent::setScenePos(class QPointF const &) + ?setCentralWidget@QMainWindow@@QAEXPAVQWidget@@@Z @ 10446 NONAME ; void QMainWindow::setCentralWidget(class QWidget *) + ?d_func@QSwipeGesture@@AAEPAVQSwipeGesturePrivate@@XZ @ 10447 NONAME ; class QSwipeGesturePrivate * QSwipeGesture::d_func(void) + ??_4QRegion@@QAEAAV0@ABV0@@Z @ 10448 NONAME ; class QRegion & QRegion::operator&=(class QRegion const &) + ?mapFromParent@QGraphicsItem@@QBE?AVQPolygonF@@ABV2@@Z @ 10449 NONAME ; class QPolygonF QGraphicsItem::mapFromParent(class QPolygonF const &) const + ?loadResource@QTextDocument@@MAE?AVQVariant@@HABVQUrl@@@Z @ 10450 NONAME ; class QVariant QTextDocument::loadResource(int, class QUrl const &) + ?toggled@QAbstractButton@@IAEX_N@Z @ 10451 NONAME ; void QAbstractButton::toggled(bool) + ??1QProxyModel@@UAE@XZ @ 10452 NONAME ; QProxyModel::~QProxyModel(void) + ?tr@QDataWidgetMapper@@SA?AVQString@@PBD0@Z @ 10453 NONAME ; class QString QDataWidgetMapper::tr(char const *, char const *) + ?checkState@QListWidgetItem@@QBE?AW4CheckState@Qt@@XZ @ 10454 NONAME ; enum Qt::CheckState QListWidgetItem::checkState(void) const + ?addText@QGraphicsScene@@QAEPAVQGraphicsTextItem@@ABVQString@@ABVQFont@@@Z @ 10455 NONAME ; class QGraphicsTextItem * QGraphicsScene::addText(class QString const &, class QFont const &) + ?det@QMatrix@@QBEMXZ @ 10456 NONAME ; float QMatrix::det(void) const + ??0QStyleOptionSlider@@IAE@H@Z @ 10457 NONAME ; QStyleOptionSlider::QStyleOptionSlider(int) + ?insertWidget@QBoxLayout@@QAEXHPAVQWidget@@HV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 10458 NONAME ; void QBoxLayout::insertWidget(int, class QWidget *, int, class QFlags) + ?setGeometry@QDockWidgetLayout@@UAEXABVQRect@@@Z @ 10459 NONAME ; void QDockWidgetLayout::setGeometry(class QRect const &) + ?frameCount@QMovie@@QBEHXZ @ 10460 NONAME ; int QMovie::frameCount(void) const + ?setRootIndex@QColumnView@@UAEXABVQModelIndex@@@Z @ 10461 NONAME ; void QColumnView::setRootIndex(class QModelIndex const &) + ??0Parser@QCss@@QAE@ABVQString@@_N@Z @ 10462 NONAME ; QCss::Parser::Parser(class QString const &, bool) + ??1QGraphicsPolygonItem@@UAE@XZ @ 10463 NONAME ; QGraphicsPolygonItem::~QGraphicsPolygonItem(void) + ?showEvent@QMdiArea@@MAEXPAVQShowEvent@@@Z @ 10464 NONAME ; void QMdiArea::showEvent(class QShowEvent *) + ?startPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 10465 NONAME ; class QPointF QTouchEvent::TouchPoint::startPos(void) const + ?metaObject@QGraphicsBloomEffect@@UBEPBUQMetaObject@@XZ @ 10466 NONAME ; struct QMetaObject const * QGraphicsBloomEffect::metaObject(void) const + ?clicked@QDialogButtonBox@@IAEXPAVQAbstractButton@@@Z @ 10467 NONAME ; void QDialogButtonBox::clicked(class QAbstractButton *) + ?tr@QSplitterHandle@@SA?AVQString@@PBD0@Z @ 10468 NONAME ; class QString QSplitterHandle::tr(char const *, char const *) + ?setWindowIcon_sys@QWidgetPrivate@@QAEX_N@Z @ 10469 NONAME ; void QWidgetPrivate::setWindowIcon_sys(bool) + ??0QPixmapConvolutionFilter@@QAE@PAVQObject@@@Z @ 10470 NONAME ; QPixmapConvolutionFilter::QPixmapConvolutionFilter(class QObject *) + ?ungrabKeyboard@QGraphicsItem@@QAEXXZ @ 10471 NONAME ; void QGraphicsItem::ungrabKeyboard(void) + ??4QStyleOptionMenuItem@@QAEAAV0@ABV0@@Z @ 10472 NONAME ; class QStyleOptionMenuItem & QStyleOptionMenuItem::operator=(class QStyleOptionMenuItem const &) + ?setModel@QListWidget@@EAEXPAVQAbstractItemModel@@@Z @ 10473 NONAME ; void QListWidget::setModel(class QAbstractItemModel *) + ?write@QPictureIO@@QAE_NXZ @ 10474 NONAME ; bool QPictureIO::write(void) + ??_EQWindowsStyle@@UAE@I@Z @ 10475 NONAME ; QWindowsStyle::~QWindowsStyle(unsigned int) + ?selectAll@QLineEdit@@QAEXXZ @ 10476 NONAME ; void QLineEdit::selectAll(void) + ?setFormat@QTextDocumentWriter@@QAEXABVQByteArray@@@Z @ 10477 NONAME ; void QTextDocumentWriter::setFormat(class QByteArray const &) + ?sectionSizeFromContents@QHeaderView@@MBE?AVQSize@@H@Z @ 10478 NONAME ; class QSize QHeaderView::sectionSizeFromContents(int) const + ?tabsClosable@QTabWidget@@QBE_NXZ @ 10479 NONAME ; bool QTabWidget::tabsClosable(void) const + ?cellClicked@QTableWidget@@IAEXHH@Z @ 10480 NONAME ; void QTableWidget::cellClicked(int, int) + ?compression@QImageWriter@@QBEHXZ @ 10481 NONAME ; int QImageWriter::compression(void) const + ?key@QKeyEventTransition@@QBEHXZ @ 10482 NONAME ; int QKeyEventTransition::key(void) const + ?setCornerButtonEnabled@QTableView@@QAEX_N@Z @ 10483 NONAME ; void QTableView::setCornerButtonEnabled(bool) + ?createHeuristicMask@QPixmap@@QBE?AVQBitmap@@_N@Z @ 10484 NONAME ; class QBitmap QPixmap::createHeuristicMask(bool) const + ?model@QProxyModel@@QBEPAVQAbstractItemModel@@XZ @ 10485 NONAME ; class QAbstractItemModel * QProxyModel::model(void) const + ?count@QGraphicsGridLayout@@UBEHXZ @ 10486 NONAME ; int QGraphicsGridLayout::count(void) const + ?toHsv@QColor@@QBE?AV1@XZ @ 10487 NONAME ; class QColor QColor::toHsv(void) const + ?maximumHeight@QWidget@@QBEHXZ @ 10488 NONAME ; int QWidget::maximumHeight(void) const + ?setContentsMargins@QGraphicsWidget@@QAEXMMMM@Z @ 10489 NONAME ; void QGraphicsWidget::setContentsMargins(float, float, float, float) + ??0QDragResponseEvent@@QAE@_N@Z @ 10490 NONAME ; QDragResponseEvent::QDragResponseEvent(bool) + ?insertLayout@QBoxLayout@@QAEXHPAVQLayout@@H@Z @ 10491 NONAME ; void QBoxLayout::insertLayout(int, class QLayout *, int) + ?graphicsEffect@QGraphicsItem@@QBEPAVQGraphicsEffect@@XZ @ 10492 NONAME ; class QGraphicsEffect * QGraphicsItem::graphicsEffect(void) const + ??_EQGraphicsScale@@UAE@I@Z @ 10493 NONAME ; QGraphicsScale::~QGraphicsScale(unsigned int) + ??6@YA?AVQDebug@@V0@V?$QFlags@W4GraphicsItemFlag@QGraphicsItem@@@@@Z @ 10494 NONAME ; class QDebug operator<<(class QDebug, class QFlags) + ?setDevice@QMovie@@QAEXPAVQIODevice@@@Z @ 10495 NONAME ; void QMovie::setDevice(class QIODevice *) + ??_EQGraphicsSceneMouseEvent@@UAE@I@Z @ 10496 NONAME ; QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent(unsigned int) + ?trUtf8@QSplashScreen@@SA?AVQString@@PBD0@Z @ 10497 NONAME ; class QString QSplashScreen::trUtf8(char const *, char const *) + ?metaObject@QUndoGroup@@UBEPBUQMetaObject@@XZ @ 10498 NONAME ; struct QMetaObject const * QUndoGroup::metaObject(void) const + ?inputContext@QApplication@@QBEPAVQInputContext@@XZ @ 10499 NONAME ; class QInputContext * QApplication::inputContext(void) const + ?insertRow@QStandardItemModel@@QAE_NHABVQModelIndex@@@Z @ 10500 NONAME ; bool QStandardItemModel::insertRow(int, class QModelIndex const &) + ?clearForeground@QTextFormat@@QAEXXZ @ 10501 NONAME ; void QTextFormat::clearForeground(void) + ??0QAbstractSpinBox@@IAE@AAVQAbstractSpinBoxPrivate@@PAVQWidget@@@Z @ 10502 NONAME ; QAbstractSpinBox::QAbstractSpinBox(class QAbstractSpinBoxPrivate &, class QWidget *) + ?maximumDateTime@QDateTimeEdit@@QBE?AVQDateTime@@XZ @ 10503 NONAME ; class QDateTime QDateTimeEdit::maximumDateTime(void) const + ?mergeCells@QTextTable@@QAEXHHHH@Z @ 10504 NONAME ; void QTextTable::mergeCells(int, int, int, int) + ?mouseReleaseEvent@QAbstractItemView@@MAEXPAVQMouseEvent@@@Z @ 10505 NONAME ; void QAbstractItemView::mouseReleaseEvent(class QMouseEvent *) + ?colorDialogSetVisible@QGuiPlatformPlugin@@UAE_NPAVQColorDialog@@_N@Z @ 10506 NONAME ; bool QGuiPlatformPlugin::colorDialogSetVisible(class QColorDialog *, bool) + ?extension@QGraphicsPolygonItem@@MBE?AVQVariant@@ABV2@@Z @ 10507 NONAME ; class QVariant QGraphicsPolygonItem::extension(class QVariant const &) const + ?setVerticalStretch@QSizePolicy@@QAEXE@Z @ 10508 NONAME ; void QSizePolicy::setVerticalStretch(unsigned char) + ?setOptions@QItemDelegate@@IBE?AVQStyleOptionViewItem@@ABVQModelIndex@@ABV2@@Z @ 10509 NONAME ; class QStyleOptionViewItem QItemDelegate::setOptions(class QModelIndex const &, class QStyleOptionViewItem const &) const + ?d_func@QRubberBand@@ABEPBVQRubberBandPrivate@@XZ @ 10510 NONAME ; class QRubberBandPrivate const * QRubberBand::d_func(void) const + ?setInputMask@QLineControl@@QAEXABVQString@@@Z @ 10511 NONAME ; void QLineControl::setInputMask(class QString const &) + ?verticalOffset@QColumnView@@MBEHXZ @ 10512 NONAME ; int QColumnView::verticalOffset(void) const + ??1QRadialGradient@@QAE@XZ @ 10513 NONAME ; QRadialGradient::~QRadialGradient(void) + ?qt_metacall@QStandardItemModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10514 NONAME ; int QStandardItemModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QFont@@QAE@XZ @ 10515 NONAME ; QFont::QFont(void) + ?setTransform@QGraphicsView@@QAEXABVQTransform@@_N@Z @ 10516 NONAME ; void QGraphicsView::setTransform(class QTransform const &, bool) + ?screenPos@QGraphicsSceneMouseEvent@@QBE?AVQPoint@@XZ @ 10517 NONAME ; class QPoint QGraphicsSceneMouseEvent::screenPos(void) const + ?spread@QGradient@@QBE?AW4Spread@1@XZ @ 10518 NONAME ; enum QGradient::Spread QGradient::spread(void) const + ?insertRow@QTableWidget@@QAEXH@Z @ 10519 NONAME ; void QTableWidget::insertRow(int) + ?itemAt@QGraphicsScene@@QBEPAVQGraphicsItem@@ABVQPointF@@ABVQTransform@@@Z @ 10520 NONAME ; class QGraphicsItem * QGraphicsScene::itemAt(class QPointF const &, class QTransform const &) const + ?paintEvent@QCheckBox@@MAEXPAVQPaintEvent@@@Z @ 10521 NONAME ; void QCheckBox::paintEvent(class QPaintEvent *) + ?timerEvent@QTextEdit@@MAEXPAVQTimerEvent@@@Z @ 10522 NONAME ; void QTextEdit::timerEvent(class QTimerEvent *) + ?blurHint@QGraphicsBloomEffect@@QBE?AW4RenderHint@Qt@@XZ @ 10523 NONAME ; enum Qt::RenderHint QGraphicsBloomEffect::blurHint(void) const + ?setInterpolationMode@QGradient@@QAEXW4InterpolationMode@1@@Z @ 10524 NONAME ; void QGradient::setInterpolationMode(enum QGradient::InterpolationMode) + ?eraseRect@QPainter@@QAEXABVQRect@@@Z @ 10525 NONAME ; void QPainter::eraseRect(class QRect const &) + ?tr@QDesktopWidget@@SA?AVQString@@PBD0H@Z @ 10526 NONAME ; class QString QDesktopWidget::tr(char const *, char const *, int) + ?drawPixmap@QPainter@@QAEXHHHHABVQPixmap@@HHHH@Z @ 10527 NONAME ; void QPainter::drawPixmap(int, int, int, int, class QPixmap const &, int, int, int, int) + ?HandleCommandL@QS60MainAppUi@@UAEXH@Z @ 10528 NONAME ; void QS60MainAppUi::HandleCommandL(int) + ?minimum@QProgressDialog@@QBEHXZ @ 10529 NONAME ; int QProgressDialog::minimum(void) const + ?keyPressEvent@QTextBrowser@@MAEXPAVQKeyEvent@@@Z @ 10530 NONAME ; void QTextBrowser::keyPressEvent(class QKeyEvent *) + ?trUtf8@QDialog@@SA?AVQString@@PBD0H@Z @ 10531 NONAME ; class QString QDialog::trUtf8(char const *, char const *, int) + ?viewTransformEnabled@QPainter@@QBE_NXZ @ 10532 NONAME ; bool QPainter::viewTransformEnabled(void) const + ??AQKeySequence@@QBEHI@Z @ 10533 NONAME ; int QKeySequence::operator[](unsigned int) const + ?mouseMoveEvent@QAbstractButton@@MAEXPAVQMouseEvent@@@Z @ 10534 NONAME ; void QAbstractButton::mouseMoveEvent(class QMouseEvent *) + ?setFilterKeyColumn@QSortFilterProxyModel@@QAEXH@Z @ 10535 NONAME ; void QSortFilterProxyModel::setFilterKeyColumn(int) + ?hasVisitedPage@QWizard@@QBE_NH@Z @ 10536 NONAME ; bool QWizard::hasVisitedPage(int) const + ?setOffset@QGraphicsDropShadowEffect@@QAEXABVQPointF@@@Z @ 10537 NONAME ; void QGraphicsDropShadowEffect::setOffset(class QPointF const &) + ?hideEvent@QAbstractSpinBox@@MAEXPAVQHideEvent@@@Z @ 10538 NONAME ; void QAbstractSpinBox::hideEvent(class QHideEvent *) + ?setData@QTableWidgetItem@@UAEXHABVQVariant@@@Z @ 10539 NONAME ; void QTableWidgetItem::setData(int, class QVariant const &) + ?setBlurRadius@QGraphicsBloomEffect@@QAEXH@Z @ 10540 NONAME ; void QGraphicsBloomEffect::setBlurRadius(int) + ?qt_metacast@QAbstractProxyModel@@UAEPAXPBD@Z @ 10541 NONAME ; void * QAbstractProxyModel::qt_metacast(char const *) + ?setModelColumn@QListView@@QAEXH@Z @ 10542 NONAME ; void QListView::setModelColumn(int) + ?addDockWidget@QMainWindow@@QAEXW4DockWidgetArea@Qt@@PAVQDockWidget@@W4Orientation@3@@Z @ 10543 NONAME ; void QMainWindow::addDockWidget(enum Qt::DockWidgetArea, class QDockWidget *, enum Qt::Orientation) + ?setVisible@QGraphicsItem@@QAEX_N@Z @ 10544 NONAME ; void QGraphicsItem::setVisible(bool) + ?setItemDelegate@QComboBox@@QAEXPAVQAbstractItemDelegate@@@Z @ 10545 NONAME ; void QComboBox::setItemDelegate(class QAbstractItemDelegate *) + ?suffix@QDoubleSpinBox@@QBE?AVQString@@XZ @ 10546 NONAME ; class QString QDoubleSpinBox::suffix(void) const + ??MQFont@@QBE_NABV0@@Z @ 10547 NONAME ; bool QFont::operator<(class QFont const &) const + ?drawTiledPixmap@QPainter@@QAEXABVQRect@@ABVQPixmap@@ABVQPoint@@@Z @ 10548 NONAME ; void QPainter::drawTiledPixmap(class QRect const &, class QPixmap const &, class QPoint const &) + ??0QMatrix4x4@@QAE@XZ @ 10549 NONAME ; QMatrix4x4::QMatrix4x4(void) + ?setMenuBar@QMainWindow@@QAEXPAVQMenuBar@@@Z @ 10550 NONAME ; void QMainWindow::setMenuBar(class QMenuBar *) + ?resize@QGraphicsWidget@@QAEXABVQSizeF@@@Z @ 10551 NONAME ; void QGraphicsWidget::resize(class QSizeF const &) + ?trUtf8@QMouseEventTransition@@SA?AVQString@@PBD0H@Z @ 10552 NONAME ; class QString QMouseEventTransition::trUtf8(char const *, char const *, int) + ?isEnabled@QStandardItem@@QBE_NXZ @ 10553 NONAME ; bool QStandardItem::isEnabled(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQPalette@@@Z @ 10554 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPalette &) + ?keyReleaseEvent@QTextEdit@@MAEXPAVQKeyEvent@@@Z @ 10555 NONAME ; void QTextEdit::keyReleaseEvent(class QKeyEvent *) + ?sizeHint@QComboBox@@UBE?AVQSize@@XZ @ 10556 NONAME ; class QSize QComboBox::sizeHint(void) const + ?currentImageNumber@QImageIOHandler@@UBEHXZ @ 10557 NONAME ; int QImageIOHandler::currentImageNumber(void) const + ?setWhatsThis@QShortcut@@QAEXABVQString@@@Z @ 10558 NONAME ; void QShortcut::setWhatsThis(class QString const &) + ?trUtf8@QGraphicsScale@@SA?AVQString@@PBD0H@Z @ 10559 NONAME ; class QString QGraphicsScale::trUtf8(char const *, char const *, int) + ?setW@QVector4D@@QAEXM@Z @ 10560 NONAME ; void QVector4D::setW(float) + ?sectionResized@QHeaderView@@IAEXHHH@Z @ 10561 NONAME ; void QHeaderView::sectionResized(int, int, int) + ?draw@QTextLayout@@QBEXPAVQPainter@@ABVQPointF@@ABV?$QVector@UFormatRange@QTextLayout@@@@ABVQRectF@@@Z @ 10562 NONAME ; void QTextLayout::draw(class QPainter *, class QPointF const &, class QVector const &, class QRectF const &) const + ?alphaChannel@QImage@@QBE?AV1@XZ @ 10563 NONAME ; class QImage QImage::alphaChannel(void) const + ?minimumSizeHint@QDialog@@UBE?AVQSize@@XZ @ 10564 NONAME ; class QSize QDialog::minimumSizeHint(void) const + ?supportedDropActions@QListWidget@@MBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 10565 NONAME ; class QFlags QListWidget::supportedDropActions(void) const + ?startDragDistance@QApplication@@SAHXZ @ 10566 NONAME ; int QApplication::startDragDistance(void) + ??9QTextFormat@@QBE_NABV0@@Z @ 10567 NONAME ; bool QTextFormat::operator!=(class QTextFormat const &) const + ?minimumTime@QDateTimeEdit@@QBE?AVQTime@@XZ @ 10568 NONAME ; class QTime QDateTimeEdit::minimumTime(void) const + ?isRotating@QTransform@@QBE_NXZ @ 10569 NONAME ; bool QTransform::isRotating(void) const + ?justify@QTextEngine@@QAEXABUQScriptLine@@@Z @ 10570 NONAME ; void QTextEngine::justify(struct QScriptLine const &) + ?metaObject@QToolBar@@UBEPBUQMetaObject@@XZ @ 10571 NONAME ; struct QMetaObject const * QToolBar::metaObject(void) const + ?indexAt@QTableView@@UBE?AVQModelIndex@@ABVQPoint@@@Z @ 10572 NONAME ; class QModelIndex QTableView::indexAt(class QPoint const &) const + ?qt_metacast@QTableWidget@@UAEPAXPBD@Z @ 10573 NONAME ; void * QTableWidget::qt_metacast(char const *) + ?substitute@QFont@@SA?AVQString@@ABV2@@Z @ 10574 NONAME ; class QString QFont::substitute(class QString const &) + ??0QStyleOptionToolButton@@QAE@ABV0@@Z @ 10575 NONAME ; QStyleOptionToolButton::QStyleOptionToolButton(class QStyleOptionToolButton const &) + ??_EQTextFrame@@UAE@I@Z @ 10576 NONAME ; QTextFrame::~QTextFrame(unsigned int) + ?mergeCells@QTextTable@@QAEXABVQTextCursor@@@Z @ 10577 NONAME ; void QTextTable::mergeCells(class QTextCursor const &) + ??XQMatrix4x4@@QAEAAV0@M@Z @ 10578 NONAME ; class QMatrix4x4 & QMatrix4x4::operator*=(float) + ?stepDown@QAbstractSpinBox@@QAEXXZ @ 10579 NONAME ; void QAbstractSpinBox::stepDown(void) + ?minimumSize@QSpacerItem@@UBE?AVQSize@@XZ @ 10580 NONAME ; class QSize QSpacerItem::minimumSize(void) const + ?dockWidgetArea@QMainWindow@@QBE?AW4DockWidgetArea@Qt@@PAVQDockWidget@@@Z @ 10581 NONAME ; enum Qt::DockWidgetArea QMainWindow::dockWidgetArea(class QDockWidget *) const + ?activeAction@QMenuBar@@QBEPAVQAction@@XZ @ 10582 NONAME ; class QAction * QMenuBar::activeAction(void) const + ??1QUndoCommand@@UAE@XZ @ 10583 NONAME ; QUndoCommand::~QUndoCommand(void) + ?setSpacing@QGraphicsLinearLayout@@QAEXM@Z @ 10584 NONAME ; void QGraphicsLinearLayout::setSpacing(float) + ?mapToParent@QGraphicsItem@@QBE?AVQPointF@@ABV2@@Z @ 10585 NONAME ; class QPointF QGraphicsItem::mapToParent(class QPointF const &) const + ?mousePressEvent@QAbstractItemView@@MAEXPAVQMouseEvent@@@Z @ 10586 NONAME ; void QAbstractItemView::mousePressEvent(class QMouseEvent *) + ?cacheMode@QMovie@@QAE?AW4CacheMode@1@XZ @ 10587 NONAME ; enum QMovie::CacheMode QMovie::cacheMode(void) + ?setBackgroundColor@QTableWidgetItem@@QAEXABVQColor@@@Z @ 10588 NONAME ; void QTableWidgetItem::setBackgroundColor(class QColor const &) + ??0QApplication@@IAE@P6APAVCApaApplication@@XZAAHPAPAD@Z @ 10589 NONAME ; QApplication::QApplication(class CApaApplication * (*)(void), int &, char * *) + ?charFormat@QTextBlock@@QBE?AVQTextCharFormat@@XZ @ 10590 NONAME ; class QTextCharFormat QTextBlock::charFormat(void) const + ?activate@QGraphicsLayout@@QAEXXZ @ 10591 NONAME ; void QGraphicsLayout::activate(void) + ?sizeHint@QListWidgetItem@@QBE?AVQSize@@XZ @ 10592 NONAME ; class QSize QListWidgetItem::sizeHint(void) const + ?device@QImageWriter@@QBEPAVQIODevice@@XZ @ 10593 NONAME ; class QIODevice * QImageWriter::device(void) const + ?acceptDrops@QWidget@@QBE_NXZ @ 10594 NONAME ; bool QWidget::acceptDrops(void) const + ?sectionsMoved@QHeaderView@@QBE_NXZ @ 10595 NONAME ; bool QHeaderView::sectionsMoved(void) const + ?menuBar@QLayout@@QBEPAVQWidget@@XZ @ 10596 NONAME ; class QWidget * QLayout::menuBar(void) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQPolygonF@@W4ItemSelectionMode@Qt@@W4SortOrder@5@ABVQTransform@@@Z @ 10597 NONAME ; class QList QGraphicsScene::items(class QPolygonF const &, enum Qt::ItemSelectionMode, enum Qt::SortOrder, class QTransform const &) const + ?substitutions@QFont@@SA?AVQStringList@@XZ @ 10598 NONAME ; class QStringList QFont::substitutions(void) + ?DoCommitFepInlineEditL@QCoeFepInputContext@@EAEXXZ @ 10599 NONAME ; void QCoeFepInputContext::DoCommitFepInlineEditL(void) + ?rootPath@QFileSystemModel@@QBE?AVQString@@XZ @ 10600 NONAME ; class QString QFileSystemModel::rootPath(void) const + ?documentSizeChanged@QTextControl@@IAEXABVQSizeF@@@Z @ 10601 NONAME ; void QTextControl::documentSizeChanged(class QSizeF const &) + ??1QScrollArea@@UAE@XZ @ 10602 NONAME ; QScrollArea::~QScrollArea(void) + ?tr@QClipboard@@SA?AVQString@@PBD0H@Z @ 10603 NONAME ; class QString QClipboard::tr(char const *, char const *, int) + ?app_strut@QApplicationPrivate@@2VQSize@@A @ 10604 NONAME ; class QSize QApplicationPrivate::app_strut + ?windowRole@QWidget@@QBE?AVQString@@XZ @ 10605 NONAME ; class QString QWidget::windowRole(void) const + ??XQQuaternion@@QAEAAV0@ABV0@@Z @ 10606 NONAME ; class QQuaternion & QQuaternion::operator*=(class QQuaternion const &) + ??0QImage@@QAE@PAEHHW4Format@0@@Z @ 10607 NONAME ; QImage::QImage(unsigned char *, int, int, enum QImage::Format) + ?status@QPictureIO@@QBEHXZ @ 10608 NONAME ; int QPictureIO::status(void) const + ??_EQPixmapData@@UAE@I@Z @ 10609 NONAME ; QPixmapData::~QPixmapData(unsigned int) + ?reset@QProgressBar@@QAEXXZ @ 10610 NONAME ; void QProgressBar::reset(void) + ??0QFocusFrame@@QAE@PAVQWidget@@@Z @ 10611 NONAME ; QFocusFrame::QFocusFrame(class QWidget *) + ?setSizePolicy@QWidget@@QAEXW4Policy@QSizePolicy@@0@Z @ 10612 NONAME ; void QWidget::setSizePolicy(enum QSizePolicy::Policy, enum QSizePolicy::Policy) + ?d_func@QDialog@@AAEPAVQDialogPrivate@@XZ @ 10613 NONAME ; class QDialogPrivate * QDialog::d_func(void) + ?back@QWizard@@QAEXXZ @ 10614 NONAME ; void QWizard::back(void) + ?reason@QFocusEvent@@QBE?AW4FocusReason@Qt@@XZ @ 10615 NONAME ; enum Qt::FocusReason QFocusEvent::reason(void) const + ?undo@QTextControl@@QAEXXZ @ 10616 NONAME ; void QTextControl::undo(void) + ?fromHsv@QColor@@SA?AV1@HHHH@Z @ 10617 NONAME ; class QColor QColor::fromHsv(int, int, int, int) + ?reset@QCoeFepInputContext@@UAEXXZ @ 10618 NONAME ; void QCoeFepInputContext::reset(void) + ?load@QImage@@QAE_NABVQString@@PBD@Z @ 10619 NONAME ; bool QImage::load(class QString const &, char const *) + ?staticMetaObject@QProxyStyle@@2UQMetaObject@@B @ 10620 NONAME ; struct QMetaObject const QProxyStyle::staticMetaObject + ?translate@QMatrix4x4@@QAEAAV1@MMM@Z @ 10621 NONAME ; class QMatrix4x4 & QMatrix4x4::translate(float, float, float) + ?setShowGrid@QTableView@@QAEX_N@Z @ 10622 NONAME ; void QTableView::setShowGrid(bool) + ?allowedAreas@QToolBar@@QBE?AV?$QFlags@W4ToolBarArea@Qt@@@@XZ @ 10623 NONAME ; class QFlags QToolBar::allowedAreas(void) const + ?addAction@QMenu@@QAEPAVQAction@@ABVQIcon@@ABVQString@@@Z @ 10624 NONAME ; class QAction * QMenu::addAction(class QIcon const &, class QString const &) + ?fileDialogSetVisible@QGuiPlatformPlugin@@UAE_NPAVQFileDialog@@_N@Z @ 10625 NONAME ; bool QGuiPlatformPlugin::fileDialogSetVisible(class QFileDialog *, bool) + ?isActivated@QGraphicsLayout@@QBE_NXZ @ 10626 NONAME ; bool QGraphicsLayout::isActivated(void) const + ?coefficients@QBezier@@SAXMAAM000@Z @ 10627 NONAME ; void QBezier::coefficients(float, float &, float &, float &, float &) + ?setEnabledHelper@QGraphicsItemPrivate@@QAEX_N00@Z @ 10628 NONAME ; void QGraphicsItemPrivate::setEnabledHelper(bool, bool, bool) + ?headerData@QFileSystemModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 10629 NONAME ; class QVariant QFileSystemModel::headerData(int, enum Qt::Orientation, int) const + ?qt_metacast@QPictureFormatPlugin@@UAEPAXPBD@Z @ 10630 NONAME ; void * QPictureFormatPlugin::qt_metacast(char const *) + ?removeRows@QStandardItem@@QAEXHH@Z @ 10631 NONAME ; void QStandardItem::removeRows(int, int) + ?columnCount@QSortFilterProxyModel@@UBEHABVQModelIndex@@@Z @ 10632 NONAME ; int QSortFilterProxyModel::columnCount(class QModelIndex const &) const + ?setId@TouchPoint@QTouchEvent@@QAEXH@Z @ 10633 NONAME ; void QTouchEvent::TouchPoint::setId(int) + ?stackUnder@QWidget@@QAEXPAV1@@Z @ 10634 NONAME ; void QWidget::stackUnder(class QWidget *) + ?drawEllipse@QPainter@@QAEXABVQPoint@@HH@Z @ 10635 NONAME ; void QPainter::drawEllipse(class QPoint const &, int, int) + ?advance@QGraphicsScene@@QAEXXZ @ 10636 NONAME ; void QGraphicsScene::advance(void) + ?setPalette_helper@QWidgetPrivate@@QAEXABVQPalette@@@Z @ 10637 NONAME ; void QWidgetPrivate::setPalette_helper(class QPalette const &) + ?childAt@QWidget@@QBEPAV1@HH@Z @ 10638 NONAME ; class QWidget * QWidget::childAt(int, int) const + ??0QPixmapDropShadowFilter@@QAE@PAVQObject@@@Z @ 10639 NONAME ; QPixmapDropShadowFilter::QPixmapDropShadowFilter(class QObject *) + ?removeGlyphFromCache@QFontEngine@@UAEXI@Z @ 10640 NONAME ; void QFontEngine::removeGlyphFromCache(unsigned int) + ?staticMetaObject@QFileDialog@@2UQMetaObject@@B @ 10641 NONAME ; struct QMetaObject const QFileDialog::staticMetaObject + ?textValue@QInputDialog@@QBE?AVQString@@XZ @ 10642 NONAME ; class QString QInputDialog::textValue(void) const + ?staticMetaObject@QStatusBar@@2UQMetaObject@@B @ 10643 NONAME ; struct QMetaObject const QStatusBar::staticMetaObject + ?resetFormAlignment@QFormLayout@@AAEXXZ @ 10644 NONAME ; void QFormLayout::resetFormAlignment(void) + ?setPreeditArea@QTextLayout@@QAEXHABVQString@@@Z @ 10645 NONAME ; void QTextLayout::setPreeditArea(int, class QString const &) + ?keyReleaseEvent@QGraphicsTextItem@@MAEXPAVQKeyEvent@@@Z @ 10646 NONAME ; void QGraphicsTextItem::keyReleaseEvent(class QKeyEvent *) + ?yOffset@QGraphicsDropShadowEffect@@QBEMXZ @ 10647 NONAME ; float QGraphicsDropShadowEffect::yOffset(void) const + ?cursorWidth@QLineControl@@QBEHXZ @ 10648 NONAME ; int QLineControl::cursorWidth(void) const + ?fromRgbF@QColor@@SA?AV1@MMMM@Z @ 10649 NONAME ; class QColor QColor::fromRgbF(float, float, float, float) + ?widget@QCompleter@@QBEPAVQWidget@@XZ @ 10650 NONAME ; class QWidget * QCompleter::widget(void) const + ??BQVector4D@@QBE?AVQVariant@@XZ @ 10651 NONAME ; QVector4D::operator class QVariant(void) const + ?document@QTextCursor@@QBEPAVQTextDocument@@XZ @ 10652 NONAME ; class QTextDocument * QTextCursor::document(void) const + ?create@QImageData@@SAPAU1@PAEHHHW4Format@QImage@@_N@Z @ 10653 NONAME ; struct QImageData * QImageData::create(unsigned char *, int, int, int, enum QImage::Format, bool) + ?map@QMatrix@@QBE?AVQPointF@@ABV2@@Z @ 10654 NONAME ; class QPointF QMatrix::map(class QPointF const &) const + ?ensureVisible@QScrollArea@@QAEXHHHH@Z @ 10655 NONAME ; void QScrollArea::ensureVisible(int, int, int, int) + ?tr@QStyle@@SA?AVQString@@PBD0H@Z @ 10656 NONAME ; class QString QStyle::tr(char const *, char const *, int) + ?setMaximum@QDoubleSpinBox@@QAEXN@Z @ 10657 NONAME ; void QDoubleSpinBox::setMaximum(double) + ??5@YAAAVQDataStream@@AAV0@AAVQTableWidgetItem@@@Z @ 10658 NONAME ; class QDataStream & operator>>(class QDataStream &, class QTableWidgetItem &) + ?map@QTransform@@QBE?AVQPolygonF@@ABV2@@Z @ 10659 NONAME ; class QPolygonF QTransform::map(class QPolygonF const &) const + ?setMaxLength@QLineEdit@@QAEXH@Z @ 10660 NONAME ; void QLineEdit::setMaxLength(int) + ?d_func@QWidget@@AAEPAVQWidgetPrivate@@XZ @ 10661 NONAME ; class QWidgetPrivate * QWidget::d_func(void) + ??0QUndoStack@@QAE@PAVQObject@@@Z @ 10662 NONAME ; QUndoStack::QUndoStack(class QObject *) + ?updateGeometry@QGraphicsLayout@@UAEXXZ @ 10663 NONAME ; void QGraphicsLayout::updateGeometry(void) + ?setTimeSpec@QDateTimeEdit@@QAEXW4TimeSpec@Qt@@@Z @ 10664 NONAME ; void QDateTimeEdit::setTimeSpec(enum Qt::TimeSpec) + ?type@QFileIconProvider@@UBE?AVQString@@ABVQFileInfo@@@Z @ 10665 NONAME ; class QString QFileIconProvider::type(class QFileInfo const &) const + ?tr@QGraphicsScale@@SA?AVQString@@PBD0@Z @ 10666 NONAME ; class QString QGraphicsScale::tr(char const *, char const *) + ??_EQIconEngineV2@@UAE@I@Z @ 10667 NONAME ; QIconEngineV2::~QIconEngineV2(unsigned int) + ?findItems@QListWidget@@QBE?AV?$QList@PAVQListWidgetItem@@@@ABVQString@@V?$QFlags@W4MatchFlag@Qt@@@@@Z @ 10668 NONAME ; class QList QListWidget::findItems(class QString const &, class QFlags) const + ?qt_metacast@QGraphicsProxyWidget@@UAEPAXPBD@Z @ 10669 NONAME ; void * QGraphicsProxyWidget::qt_metacast(char const *) + ?font@QTreeWidgetItem@@QBE?AVQFont@@H@Z @ 10670 NONAME ; class QFont QTreeWidgetItem::font(int) const + ??0QStyleOptionProgressBarV2@@QAE@XZ @ 10671 NONAME ; QStyleOptionProgressBarV2::QStyleOptionProgressBarV2(void) + ?trUtf8@QProxyStyle@@SA?AVQString@@PBD0H@Z @ 10672 NONAME ; class QString QProxyStyle::trUtf8(char const *, char const *, int) + ?setHeaderLabel@QTreeWidget@@QAEXABVQString@@@Z @ 10673 NONAME ; void QTreeWidget::setHeaderLabel(class QString const &) + ??0QGraphicsScene@@QAE@PAVQObject@@@Z @ 10674 NONAME ; QGraphicsScene::QGraphicsScene(class QObject *) + ?focusNextPrevChild@QGraphicsView@@MAE_N_N@Z @ 10675 NONAME ; bool QGraphicsView::focusNextPrevChild(bool) + ?format@QImage@@QBE?AW4Format@1@XZ @ 10676 NONAME ; enum QImage::Format QImage::format(void) const + ??_EQSessionManager@@UAE@I@Z @ 10677 NONAME ; QSessionManager::~QSessionManager(unsigned int) + ?ensureVisible@QGraphicsView@@QAEXPBVQGraphicsItem@@HH@Z @ 10678 NONAME ; void QGraphicsView::ensureVisible(class QGraphicsItem const *, int, int) + ?buttonDownScreenPos@QGraphicsSceneMouseEvent@@QBE?AVQPoint@@W4MouseButton@Qt@@@Z @ 10679 NONAME ; class QPoint QGraphicsSceneMouseEvent::buttonDownScreenPos(enum Qt::MouseButton) const + ??0QStyleOptionViewItemV4@@QAE@ABVQStyleOptionViewItem@@@Z @ 10680 NONAME ; QStyleOptionViewItemV4::QStyleOptionViewItemV4(class QStyleOptionViewItem const &) + ?setSorting@QDirModel@@QAEXV?$QFlags@W4SortFlag@QDir@@@@@Z @ 10681 NONAME ; void QDirModel::setSorting(class QFlags) + ?isEmpty@QVectorPath@@QBE_NXZ @ 10682 NONAME ; bool QVectorPath::isEmpty(void) const + ??1QFocusFrame@@UAE@XZ @ 10683 NONAME ; QFocusFrame::~QFocusFrame(void) + ?mouseDoubleClickEvent@QLineEdit@@MAEXPAVQMouseEvent@@@Z @ 10684 NONAME ; void QLineEdit::mouseDoubleClickEvent(class QMouseEvent *) + ??0QProxyModel@@QAE@PAVQObject@@@Z @ 10685 NONAME ; QProxyModel::QProxyModel(class QObject *) + ?minimumSizeHint@QDial@@UBE?AVQSize@@XZ @ 10686 NONAME ; class QSize QDial::minimumSizeHint(void) const + ?qt_image_cleanup_hook@@3P6AXH@ZA @ 10687 NONAME ; void (*qt_image_cleanup_hook)(int) + ?staticMetaObject@QSyntaxHighlighter@@2UQMetaObject@@B @ 10688 NONAME ; struct QMetaObject const QSyntaxHighlighter::staticMetaObject + ?controlTypes@QLayoutItem@@QBE?AV?$QFlags@W4ControlType@QSizePolicy@@@@XZ @ 10689 NONAME ; class QFlags QLayoutItem::controlTypes(void) const + ?options@QWizard@@QBE?AV?$QFlags@W4WizardOption@QWizard@@@@XZ @ 10690 NONAME ; class QFlags QWizard::options(void) const + ?visualRegionForSelection@QTableView@@MBE?AVQRegion@@ABVQItemSelection@@@Z @ 10691 NONAME ; class QRegion QTableView::visualRegionForSelection(class QItemSelection const &) const + ?applyFormat@QCoeFepInputContext@@AAEXPAV?$QList@VAttribute@QInputMethodEvent@@@@@Z @ 10692 NONAME ; void QCoeFepInputContext::applyFormat(class QList *) + ??1QFontMetrics@@QAE@XZ @ 10693 NONAME ; QFontMetrics::~QFontMetrics(void) + ?setWindowRole@QWidget@@QAEXABVQString@@@Z @ 10694 NONAME ; void QWidget::setWindowRole(class QString const &) + ??0QTextTable@@QAE@PAVQTextDocument@@@Z @ 10695 NONAME ; QTextTable::QTextTable(class QTextDocument *) + ?getItem@QInputDialog@@SA?AVQString@@PAVQWidget@@ABV2@1ABVQStringList@@H_NPA_NV?$QFlags@W4WindowType@Qt@@@@@Z @ 10696 NONAME ; class QString QInputDialog::getItem(class QWidget *, class QString const &, class QString const &, class QStringList const &, int, bool, bool *, class QFlags) + ?trUtf8@QPlainTextEdit@@SA?AVQString@@PBD0H@Z @ 10697 NONAME ; class QString QPlainTextEdit::trUtf8(char const *, char const *, int) + ?tr@QPanGesture@@SA?AVQString@@PBD0H@Z @ 10698 NONAME ; class QString QPanGesture::tr(char const *, char const *, int) + ?tr@QToolBox@@SA?AVQString@@PBD0H@Z @ 10699 NONAME ; class QString QToolBox::tr(char const *, char const *, int) + ?getTrueTypeGlyphIndex@QFontEngine@@SAIPBEI@Z @ 10700 NONAME ; unsigned int QFontEngine::getTrueTypeGlyphIndex(unsigned char const *, unsigned int) + ?m23@QTransform@@QBEMXZ @ 10701 NONAME ; float QTransform::m23(void) const + ?qt_metacast@QGraphicsOpacityEffect@@UAEPAXPBD@Z @ 10702 NONAME ; void * QGraphicsOpacityEffect::qt_metacast(char const *) + ??0QVector3D@@QAE@ABVQPoint@@@Z @ 10703 NONAME ; QVector3D::QVector3D(class QPoint const &) + ?fileDialogSelectFile@QGuiPlatformPlugin@@UAEXPAVQFileDialog@@ABVQString@@@Z @ 10704 NONAME ; void QGuiPlatformPlugin::fileDialogSelectFile(class QFileDialog *, class QString const &) + ?selectedItems@QTableWidget@@QAE?AV?$QList@PAVQTableWidgetItem@@@@XZ @ 10705 NONAME ; class QList QTableWidget::selectedItems(void) + ?dragMoveEvent@QWidget@@MAEXPAVQDragMoveEvent@@@Z @ 10706 NONAME ; void QWidget::dragMoveEvent(class QDragMoveEvent *) + ?started@QMovie@@IAEXXZ @ 10707 NONAME ; void QMovie::started(void) + ??_EQImageIOPlugin@@UAE@I@Z @ 10708 NONAME ; QImageIOPlugin::~QImageIOPlugin(unsigned int) + ?blurRadiusChanged@QGraphicsDropShadowEffect@@IAEXH@Z @ 10709 NONAME ; void QGraphicsDropShadowEffect::blurRadiusChanged(int) + ?contains@QPainterPath@@QBE_NABVQPointF@@@Z @ 10710 NONAME ; bool QPainterPath::contains(class QPointF const &) const + ?historyUrl@QTextBrowser@@QBE?AVQUrl@@H@Z @ 10711 NONAME ; class QUrl QTextBrowser::historyUrl(int) const + ?setLastCenterPoint@QPinchGesture@@QAEXABVQPointF@@@Z @ 10712 NONAME ; void QPinchGesture::setLastCenterPoint(class QPointF const &) + ?moveEvent@QGraphicsWidget@@MAEXPAVQGraphicsSceneMoveEvent@@@Z @ 10713 NONAME ; void QGraphicsWidget::moveEvent(class QGraphicsSceneMoveEvent *) + ??0QColor@@QAE@HHHH@Z @ 10714 NONAME ; QColor::QColor(int, int, int, int) + ?selectAll@QTextEdit@@QAEXXZ @ 10715 NONAME ; void QTextEdit::selectAll(void) + ?moveEvent@QSizeGrip@@MAEXPAVQMoveEvent@@@Z @ 10716 NONAME ; void QSizeGrip::moveEvent(class QMoveEvent *) + ?canWrite@QImageWriter@@QBE_NXZ @ 10717 NONAME ; bool QImageWriter::canWrite(void) const + ?currentItem@QTableWidget@@QBEPAVQTableWidgetItem@@XZ @ 10718 NONAME ; class QTableWidgetItem * QTableWidget::currentItem(void) const + ?ownsSelection@QClipboard@@QBE_NXZ @ 10719 NONAME ; bool QClipboard::ownsSelection(void) const + ??0QFontMetrics@@QAE@ABV0@@Z @ 10720 NONAME ; QFontMetrics::QFontMetrics(class QFontMetrics const &) + ?preeditCursor@QLineControl@@QBEHXZ @ 10721 NONAME ; int QLineControl::preeditCursor(void) const + ?cancelText@QLineControl@@QBE?AVQString@@XZ @ 10722 NONAME ; class QString QLineControl::cancelText(void) const + ??1Value@QCss@@QAE@XZ @ 10723 NONAME ; QCss::Value::~Value(void) + ?updateFont@QWidgetPrivate@@QAEXABVQFont@@@Z @ 10724 NONAME ; void QWidgetPrivate::updateFont(class QFont const &) + ?trUtf8@QTextList@@SA?AVQString@@PBD0@Z @ 10725 NONAME ; class QString QTextList::trUtf8(char const *, char const *) + ?windowFrameSectionAt@QGraphicsWidget@@MBE?AW4WindowFrameSection@Qt@@ABVQPointF@@@Z @ 10726 NONAME ; enum Qt::WindowFrameSection QGraphicsWidget::windowFrameSectionAt(class QPointF const &) const + ?text@QLabel@@QBE?AVQString@@XZ @ 10727 NONAME ; class QString QLabel::text(void) const + ?setMaximumHeight@QGraphicsLayoutItem@@QAEXM@Z @ 10728 NONAME ; void QGraphicsLayoutItem::setMaximumHeight(float) + ?initStyleOption@QMenu@@IBEXPAVQStyleOptionMenuItem@@PBVQAction@@@Z @ 10729 NONAME ; void QMenu::initStyleOption(class QStyleOptionMenuItem *, class QAction const *) const + ?parseExpr@Parser@QCss@@QAE_NPAV?$QVector@UValue@QCss@@@@@Z @ 10730 NONAME ; bool QCss::Parser::parseExpr(class QVector *) + ??5@YAAAVQDataStream@@AAV0@AAVQPaintBuffer@@@Z @ 10731 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPaintBuffer &) + ?setShapeMode@QGraphicsPixmapItem@@QAEXW4ShapeMode@1@@Z @ 10732 NONAME ; void QGraphicsPixmapItem::setShapeMode(enum QGraphicsPixmapItem::ShapeMode) + ?parentWidget@QAction@@QBEPAVQWidget@@XZ @ 10733 NONAME ; class QWidget * QAction::parentWidget(void) const + ??_EQToolBox@@UAE@I@Z @ 10734 NONAME ; QToolBox::~QToolBox(unsigned int) + ?mapToScene@QGraphicsView@@QBE?AVQPolygonF@@ABVQPolygon@@@Z @ 10735 NONAME ; class QPolygonF QGraphicsView::mapToScene(class QPolygon const &) const + ?tr@QRadioButton@@SA?AVQString@@PBD0@Z @ 10736 NONAME ; class QString QRadioButton::tr(char const *, char const *) + ?data@QAction@@QBE?AVQVariant@@XZ @ 10737 NONAME ; class QVariant QAction::data(void) const + ?childrenCombineOpacity@QGraphicsItemPrivate@@QBE_NXZ @ 10738 NONAME ; bool QGraphicsItemPrivate::childrenCombineOpacity(void) const + ?mouseReleaseEvent@QTreeView@@MAEXPAVQMouseEvent@@@Z @ 10739 NONAME ; void QTreeView::mouseReleaseEvent(class QMouseEvent *) + ?isEmpty@QPainterPath@@QBE_NXZ @ 10740 NONAME ; bool QPainterPath::isEmpty(void) const + ?windowState@QWidget@@QBE?AV?$QFlags@W4WindowState@Qt@@@@XZ @ 10741 NONAME ; class QFlags QWidget::windowState(void) const + ?attributes@QTextEngine@@QBEPBUHB_CharAttributes@@XZ @ 10742 NONAME ; struct HB_CharAttributes const * QTextEngine::attributes(void) const + ??1QMoveEvent@@UAE@XZ @ 10743 NONAME ; QMoveEvent::~QMoveEvent(void) + ?releaseWidget@QWidgetAction@@QAEXPAVQWidget@@@Z @ 10744 NONAME ; void QWidgetAction::releaseWidget(class QWidget *) + ?isNull@QImage@@QBE_NXZ @ 10745 NONAME ; bool QImage::isNull(void) const + ?setModal_sys@QWidgetPrivate@@QAEXXZ @ 10746 NONAME ; void QWidgetPrivate::setModal_sys(void) + ?fillRect@QPainter@@QAEXHHHHW4GlobalColor@Qt@@@Z @ 10747 NONAME ; void QPainter::fillRect(int, int, int, int, enum Qt::GlobalColor) + ?qt_metacast@QCheckBox@@UAEPAXPBD@Z @ 10748 NONAME ; void * QCheckBox::qt_metacast(char const *) + ?defaultSuffix@QFileDialog@@QBE?AVQString@@XZ @ 10749 NONAME ; class QString QFileDialog::defaultSuffix(void) const + ?d_func@QFocusFrame@@ABEPBVQFocusFramePrivate@@XZ @ 10750 NONAME ; class QFocusFramePrivate const * QFocusFrame::d_func(void) const + ??0QPalette@@QAE@ABVQBrush@@00000000@Z @ 10751 NONAME ; QPalette::QPalette(class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &, class QBrush const &) + ?qt_metacast@QPixmapColorizeFilter@@UAEPAXPBD@Z @ 10752 NONAME ; void * QPixmapColorizeFilter::qt_metacast(char const *) + ?setButtonText@QWizard@@QAEXW4WizardButton@1@ABVQString@@@Z @ 10753 NONAME ; void QWizard::setButtonText(enum QWizard::WizardButton, class QString const &) + ?setAlphaChannel@QRasterPixmapData@@UAEXABVQPixmap@@@Z @ 10754 NONAME ; void QRasterPixmapData::setAlphaChannel(class QPixmap const &) + ?mousePressEvent@QComboBox@@MAEXPAVQMouseEvent@@@Z @ 10755 NONAME ; void QComboBox::mousePressEvent(class QMouseEvent *) + ?indexOf@QToolBox@@QBEHPAVQWidget@@@Z @ 10756 NONAME ; int QToolBox::indexOf(class QWidget *) const + ?documentLayoutChanged@QTextDocument@@IAEXXZ @ 10757 NONAME ; void QTextDocument::documentLayoutChanged(void) + ?isAutoRepeat@QKeyEvent@@QBE_NXZ @ 10758 NONAME ; bool QKeyEvent::isAutoRepeat(void) const + ?drawFrame@QFrame@@IAEXPAVQPainter@@@Z @ 10759 NONAME ; void QFrame::drawFrame(class QPainter *) + ?cut@QLineEdit@@QAEXXZ @ 10760 NONAME ; void QLineEdit::cut(void) + ?autoRaise@QToolButton@@QBE_NXZ @ 10761 NONAME ; bool QToolButton::autoRaise(void) const + ?translate@QPainter@@QAEXMM@Z @ 10762 NONAME ; void QPainter::translate(float, float) + ?repaint_sys@QWidgetPrivate@@QAEXABVQRegion@@@Z @ 10763 NONAME ; void QWidgetPrivate::repaint_sys(class QRegion const &) + ?d_func@QDoubleValidator@@ABEPBVQDoubleValidatorPrivate@@XZ @ 10764 NONAME ; class QDoubleValidatorPrivate const * QDoubleValidator::d_func(void) const + ?trUtf8@QDoubleValidator@@SA?AVQString@@PBD0@Z @ 10765 NONAME ; class QString QDoubleValidator::trUtf8(char const *, char const *) + ?widget@QMdiSubWindow@@QBEPAVQWidget@@XZ @ 10766 NONAME ; class QWidget * QMdiSubWindow::widget(void) const + ??0QIconEnginePluginV2@@QAE@PAVQObject@@@Z @ 10767 NONAME ; QIconEnginePluginV2::QIconEnginePluginV2(class QObject *) + ?tabLayoutChange@QTabBar@@MAEXXZ @ 10768 NONAME ; void QTabBar::tabLayoutChange(void) + ??_EQSplashScreen@@UAE@I@Z @ 10769 NONAME ; QSplashScreen::~QSplashScreen(unsigned int) + ?scrollRect@QWidgetPrivate@@QAEXABVQRect@@HH@Z @ 10770 NONAME ; void QWidgetPrivate::scrollRect(class QRect const &, int, int) + ?mapRect@QMatrix@@QBE?AVQRect@@ABV2@@Z @ 10771 NONAME ; class QRect QMatrix::mapRect(class QRect const &) const + ?opaqueArea@QGraphicsSimpleTextItem@@UBE?AVQPainterPath@@XZ @ 10772 NONAME ; class QPainterPath QGraphicsSimpleTextItem::opaqueArea(void) const + ?createSysExtra@QWidgetPrivate@@QAEXXZ @ 10773 NONAME ; void QWidgetPrivate::createSysExtra(void) + ?transformationAnchor@QGraphicsView@@QBE?AW4ViewportAnchor@1@XZ @ 10774 NONAME ; enum QGraphicsView::ViewportAnchor QGraphicsView::transformationAnchor(void) const + ?syncBackingStore@QWidgetPrivate@@QAEXABVQRegion@@@Z @ 10775 NONAME ; void QWidgetPrivate::syncBackingStore(class QRegion const &) + ?setSectionHidden@QHeaderView@@QAEXH_N@Z @ 10776 NONAME ; void QHeaderView::setSectionHidden(int, bool) + ?syncState@QPaintEngine@@QAEXXZ @ 10777 NONAME ; void QPaintEngine::syncState(void) + ?insertImage@QTextCursor@@QAEXABVQString@@@Z @ 10778 NONAME ; void QTextCursor::insertImage(class QString const &) + ?setItemDelegateForRow@QAbstractItemView@@QAEXHPAVQAbstractItemDelegate@@@Z @ 10779 NONAME ; void QAbstractItemView::setItemDelegateForRow(int, class QAbstractItemDelegate *) + ?dateTextFormat@QCalendarWidget@@QBE?AVQTextCharFormat@@ABVQDate@@@Z @ 10780 NONAME ; class QTextCharFormat QCalendarWidget::dateTextFormat(class QDate const &) const + ?d_func@QCommandLinkButton@@ABEPBVQCommandLinkButtonPrivate@@XZ @ 10781 NONAME ; class QCommandLinkButtonPrivate const * QCommandLinkButton::d_func(void) const + ?setWidgetForRole@QDockWidgetLayout@@QAEXW4Role@1@PAVQWidget@@@Z @ 10782 NONAME ; void QDockWidgetLayout::setWidgetForRole(enum QDockWidgetLayout::Role, class QWidget *) + ?trUtf8@QTextDocument@@SA?AVQString@@PBD0@Z @ 10783 NONAME ; class QString QTextDocument::trUtf8(char const *, char const *) + ?toPlainText@QTextDocument@@QBE?AVQString@@XZ @ 10784 NONAME ; class QString QTextDocument::toPlainText(void) const + ?getStaticMetaObject@QGuiPlatformPlugin@@SAABUQMetaObject@@XZ @ 10785 NONAME ; struct QMetaObject const & QGuiPlatformPlugin::getStaticMetaObject(void) + ?setModified@QLineControl@@QAEX_N@Z @ 10786 NONAME ; void QLineControl::setModified(bool) + ??1QSessionManager@@EAE@XZ @ 10787 NONAME ; QSessionManager::~QSessionManager(void) + ?previewWidget@QColumnView@@QBEPAVQWidget@@XZ @ 10788 NONAME ; class QWidget * QColumnView::previewWidget(void) const + ?drawPolygon@QPainter@@QAEXPBVQPoint@@HW4FillRule@Qt@@@Z @ 10789 NONAME ; void QPainter::drawPolygon(class QPoint const *, int, enum Qt::FillRule) + ?layoutDirection@QWidget@@QBE?AW4LayoutDirection@Qt@@XZ @ 10790 NONAME ; enum Qt::LayoutDirection QWidget::layoutDirection(void) const + ?keyPressEvent@QLabel@@MAEXPAVQKeyEvent@@@Z @ 10791 NONAME ; void QLabel::keyPressEvent(class QKeyEvent *) + ?setTop@QDoubleValidator@@QAEXN@Z @ 10792 NONAME ; void QDoubleValidator::setTop(double) + ?echoMode@QLineControl@@QBEIXZ @ 10793 NONAME ; unsigned int QLineControl::echoMode(void) const + ??_EQWizardPage@@UAE@I@Z @ 10794 NONAME ; QWizardPage::~QWizardPage(unsigned int) + ??1QStyleOptionSlider@@QAE@XZ @ 10795 NONAME ; QStyleOptionSlider::~QStyleOptionSlider(void) + ?draw@QPixmapColorizeFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 10796 NONAME ; void QPixmapColorizeFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?tr@QRubberBand@@SA?AVQString@@PBD0@Z @ 10797 NONAME ; class QString QRubberBand::tr(char const *, char const *) + ??_EQGestureRecognizer@@UAE@I@Z @ 10798 NONAME ; QGestureRecognizer::~QGestureRecognizer(unsigned int) + ?insertRows@QSortFilterProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 10799 NONAME ; bool QSortFilterProxyModel::insertRows(int, int, class QModelIndex const &) + ?mousePressEvent@QLineEdit@@MAEXPAVQMouseEvent@@@Z @ 10800 NONAME ; void QLineEdit::mousePressEvent(class QMouseEvent *) + ?setFontFixedPitch@QTextCharFormat@@QAEX_N@Z @ 10801 NONAME ; void QTextCharFormat::setFontFixedPitch(bool) + ?isClean@QUndoGroup@@QBE_NXZ @ 10802 NONAME ; bool QUndoGroup::isClean(void) const + ?initStyleOption@QRubberBand@@IBEXPAVQStyleOptionRubberBand@@@Z @ 10803 NONAME ; void QRubberBand::initStyleOption(class QStyleOptionRubberBand *) const + ?loadFromData@QPixmap@@QAE_NABVQByteArray@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 10804 NONAME ; bool QPixmap::loadFromData(class QByteArray const &, char const *, class QFlags) + ??FQTreeWidgetItemIterator@@QAE?BV0@H@Z @ 10805 NONAME ; class QTreeWidgetItemIterator const QTreeWidgetItemIterator::operator--(int) + ?globalY@QHelpEvent@@QBEHXZ @ 10806 NONAME ; int QHelpEvent::globalY(void) const + ?setAutoDestruct@QPaintEngine@@AAEX_N@Z @ 10807 NONAME ; void QPaintEngine::setAutoDestruct(bool) + ?trUtf8@QEventDispatcherS60@@SA?AVQString@@PBD0H@Z @ 10808 NONAME ; class QString QEventDispatcherS60::trUtf8(char const *, char const *, int) + ?size@QFileSystemModel@@QBE_JABVQModelIndex@@@Z @ 10809 NONAME ; long long QFileSystemModel::size(class QModelIndex const &) const + ?merge@QTextFormat@@QAEXABV1@@Z @ 10810 NONAME ; void QTextFormat::merge(class QTextFormat const &) + ?openExternalLinks@QTextControl@@QBE_NXZ @ 10811 NONAME ; bool QTextControl::openExternalLinks(void) const + ?drawImage@QPainter@@QAEXHHABVQImage@@HHHHV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 10812 NONAME ; void QPainter::drawImage(int, int, class QImage const &, int, int, int, int, class QFlags) + ??0QBitmap@@QAE@ABVQString@@PBD@Z @ 10813 NONAME ; QBitmap::QBitmap(class QString const &, char const *) + ?d_func@QWidgetAction@@ABEPBVQWidgetActionPrivate@@XZ @ 10814 NONAME ; class QWidgetActionPrivate const * QWidgetAction::d_func(void) const + ?setMiterLimit@QPainterPathStroker@@QAEXM@Z @ 10815 NONAME ; void QPainterPathStroker::setMiterLimit(float) + ?minimumSizeHint@QAbstractScrollArea@@UBE?AVQSize@@XZ @ 10816 NONAME ; class QSize QAbstractScrollArea::minimumSizeHint(void) const + ?activateRecursiveHelper@QLayout@@CAXPAVQLayoutItem@@@Z @ 10817 NONAME ; void QLayout::activateRecursiveHelper(class QLayoutItem *) + ?tabWhatsThis@QTabBar@@QBE?AVQString@@H@Z @ 10818 NONAME ; class QString QTabBar::tabWhatsThis(int) const + ?getPaintContext@QTextControl@@QBE?AUPaintContext@QAbstractTextDocumentLayout@@PAVQWidget@@@Z @ 10819 NONAME ; struct QAbstractTextDocumentLayout::PaintContext QTextControl::getPaintContext(class QWidget *) const + ?mapFromScene@QGraphicsView@@QBE?AVQPoint@@MM@Z @ 10820 NONAME ; class QPoint QGraphicsView::mapFromScene(float, float) const + ?setScreenPos@QGraphicsSceneContextMenuEvent@@QAEXABVQPoint@@@Z @ 10821 NONAME ; void QGraphicsSceneContextMenuEvent::setScreenPos(class QPoint const &) + ?index@QProxyModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 10822 NONAME ; class QModelIndex QProxyModel::index(int, int, class QModelIndex const &) const + ?tr@QToolBar@@SA?AVQString@@PBD0@Z @ 10823 NONAME ; class QString QToolBar::tr(char const *, char const *) + ?labelText@QInputDialog@@QBE?AVQString@@XZ @ 10824 NONAME ; class QString QInputDialog::labelText(void) const + ?setIconSize@QComboBox@@QAEXABVQSize@@@Z @ 10825 NONAME ; void QComboBox::setIconSize(class QSize const &) + ?timerEvent@QPlainTextEdit@@MAEXPAVQTimerEvent@@@Z @ 10826 NONAME ; void QPlainTextEdit::timerEvent(class QTimerEvent *) + ?setModifiers@QGraphicsSceneDragDropEvent@@QAEXV?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 10827 NONAME ; void QGraphicsSceneDragDropEvent::setModifiers(class QFlags) + ?metaObject@QGraphicsSystemPlugin@@UBEPBUQMetaObject@@XZ @ 10828 NONAME ; struct QMetaObject const * QGraphicsSystemPlugin::metaObject(void) const + ??0QGraphicsObject@@QAE@PAVQGraphicsItem@@@Z @ 10829 NONAME ; QGraphicsObject::QGraphicsObject(class QGraphicsItem *) + ?toVector2DAffine@QVector4D@@QBE?AVQVector2D@@XZ @ 10830 NONAME ; class QVector2D QVector4D::toVector2DAffine(void) const + ?setStart@QLinearGradient@@QAEXMM@Z @ 10831 NONAME ; void QLinearGradient::setStart(float, float) + ?mapFromScene@QGraphicsView@@QBE?AVQPainterPath@@ABV2@@Z @ 10832 NONAME ; class QPainterPath QGraphicsView::mapFromScene(class QPainterPath const &) const + ?d_func@QClipboard@@AAEPAVQClipboardPrivate@@XZ @ 10833 NONAME ; class QClipboardPrivate * QClipboard::d_func(void) + ?layout@QLayout@@UAEPAV1@XZ @ 10834 NONAME ; class QLayout * QLayout::layout(void) + ?trUtf8@QShortcut@@SA?AVQString@@PBD0@Z @ 10835 NONAME ; class QString QShortcut::trUtf8(char const *, char const *) + ??0QCommandLinkButton@@QAE@PAVQWidget@@@Z @ 10836 NONAME ; QCommandLinkButton::QCommandLinkButton(class QWidget *) + ?setToolTip@QWidget@@QAEXABVQString@@@Z @ 10837 NONAME ; void QWidget::setToolTip(class QString const &) + ??1QIconEngineFactoryInterfaceV2@@UAE@XZ @ 10838 NONAME ; QIconEngineFactoryInterfaceV2::~QIconEngineFactoryInterfaceV2(void) + ?setStretchFactor@QSplitter@@QAEXHH@Z @ 10839 NONAME ; void QSplitter::setStretchFactor(int, int) + ?removeImageHook@QImagePixmapCleanupHooks@@QAEXP6AX_J@Z@Z @ 10840 NONAME ; void QImagePixmapCleanupHooks::removeImageHook(void (*)(long long)) + ?DynInitMenuBarL@QS60MainAppUi@@UAEXHPAVCEikMenuBar@@@Z @ 10841 NONAME ; void QS60MainAppUi::DynInitMenuBarL(int, class CEikMenuBar *) + ?toCharFormat@QTextFormat@@QBE?AVQTextCharFormat@@XZ @ 10842 NONAME ; class QTextCharFormat QTextFormat::toCharFormat(void) const + ?mouseMoveEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 10843 NONAME ; void QGraphicsTextItem::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?shouldSetFocus@QApplicationPrivate@@CA_NPAVQWidget@@W4FocusPolicy@Qt@@@Z @ 10844 NONAME ; bool QApplicationPrivate::shouldSetFocus(class QWidget *, enum Qt::FocusPolicy) + ?load@QPicture@@QAE_NABVQString@@PBD@Z @ 10845 NONAME ; bool QPicture::load(class QString const &, char const *) + ?qt_metacast@QMenu@@UAEPAXPBD@Z @ 10846 NONAME ; void * QMenu::qt_metacast(char const *) + ?background@QStandardItem@@QBE?AVQBrush@@XZ @ 10847 NONAME ; class QBrush QStandardItem::background(void) const + ?dropMimeData@QDirModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 10848 NONAME ; bool QDirModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?frustum@QMatrix4x4@@QAEAAV1@MMMMMM@Z @ 10849 NONAME ; class QMatrix4x4 & QMatrix4x4::frustum(float, float, float, float, float, float) + ?sectionCountChanged@QHeaderView@@IAEXHH@Z @ 10850 NONAME ; void QHeaderView::sectionCountChanged(int, int) + ??0QTableWidget@@QAE@HHPAVQWidget@@@Z @ 10851 NONAME ; QTableWidget::QTableWidget(int, int, class QWidget *) + ??0QGraphicsLayoutItem@@QAE@PAV0@_N@Z @ 10852 NONAME ; QGraphicsLayoutItem::QGraphicsLayoutItem(class QGraphicsLayoutItem *, bool) + ?currentFrameNumber@QMovie@@QBEHXZ @ 10853 NONAME ; int QMovie::currentFrameNumber(void) const + ?selectFilter@QFileDialog@@QAEXABVQString@@@Z @ 10854 NONAME ; void QFileDialog::selectFilter(class QString const &) + ?invalidate@QGraphicsScene@@QAEXABVQRectF@@V?$QFlags@W4SceneLayer@QGraphicsScene@@@@@Z @ 10855 NONAME ; void QGraphicsScene::invalidate(class QRectF const &, class QFlags) + ??0QAction@@IAE@AAVQActionPrivate@@PAVQObject@@@Z @ 10856 NONAME ; QAction::QAction(class QActionPrivate &, class QObject *) + ??0QPictureFormatPlugin@@QAE@PAVQObject@@@Z @ 10857 NONAME ; QPictureFormatPlugin::QPictureFormatPlugin(class QObject *) + ?setColumn@QMatrix4x4@@QAEXHABVQVector4D@@@Z @ 10858 NONAME ; void QMatrix4x4::setColumn(int, class QVector4D const &) + ?tr@QGraphicsProxyWidget@@SA?AVQString@@PBD0@Z @ 10859 NONAME ; class QString QGraphicsProxyWidget::tr(char const *, char const *) + ?setWidth@QTextInlineObject@@QAEXM@Z @ 10860 NONAME ; void QTextInlineObject::setWidth(float) + ?edit@QAbstractItemView@@QAEXABVQModelIndex@@@Z @ 10861 NONAME ; void QAbstractItemView::edit(class QModelIndex const &) + ??0QEventDispatcherS60@@QAE@PAVQObject@@@Z @ 10862 NONAME ; QEventDispatcherS60::QEventDispatcherS60(class QObject *) + ?qt_metacall@QValidator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10863 NONAME ; int QValidator::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QKeyEventTransition@@UAE@XZ @ 10864 NONAME ; QKeyEventTransition::~QKeyEventTransition(void) + ?qt_metacall@QDateEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10865 NONAME ; int QDateEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setNameFilterDisables@QFileSystemModel@@QAEX_N@Z @ 10866 NONAME ; void QFileSystemModel::setNameFilterDisables(bool) + ?resizeAnchor@QGraphicsView@@QBE?AW4ViewportAnchor@1@XZ @ 10867 NONAME ; enum QGraphicsView::ViewportAnchor QGraphicsView::resizeAnchor(void) const + ?scale@QMatrix4x4@@QAEAAV1@M@Z @ 10868 NONAME ; class QMatrix4x4 & QMatrix4x4::scale(float) + ?SetStateTransferingOwnershipL@QCoeFepInputContext@@UAEXPAVCState@MCoeFepAwareTextEditor_Extension1@@VTUid@@@Z @ 10869 NONAME ; void QCoeFepInputContext::SetStateTransferingOwnershipL(class MCoeFepAwareTextEditor_Extension1::CState *, class TUid) + ??0QStyle@@QAE@XZ @ 10870 NONAME ; QStyle::QStyle(void) + ?mouseDoubleClickEvent@QHeaderView@@MAEXPAVQMouseEvent@@@Z @ 10871 NONAME ; void QHeaderView::mouseDoubleClickEvent(class QMouseEvent *) + ?addPermanentWidget@QStatusBar@@QAEXPAVQWidget@@H@Z @ 10872 NONAME ; void QStatusBar::addPermanentWidget(class QWidget *, int) + ?trUtf8@QWizardPage@@SA?AVQString@@PBD0@Z @ 10873 NONAME ; class QString QWizardPage::trUtf8(char const *, char const *) + ?sizeFromContents@QWindowsStyle@@UBE?AVQSize@@W4ContentsType@QStyle@@PBVQStyleOption@@ABV2@PBVQWidget@@@Z @ 10874 NONAME ; class QSize QWindowsStyle::sizeFromContents(enum QStyle::ContentsType, class QStyleOption const *, class QSize const &, class QWidget const *) const + ?wasCanceled@QProgressDialog@@QBE_NXZ @ 10875 NONAME ; bool QProgressDialog::wasCanceled(void) const + ??0QRegExpValidator@@QAE@ABVQRegExp@@PAVQObject@@@Z @ 10876 NONAME ; QRegExpValidator::QRegExpValidator(class QRegExp const &, class QObject *) + ?mouseReleaseEvent@QTextBrowser@@MAEXPAVQMouseEvent@@@Z @ 10877 NONAME ; void QTextBrowser::mouseReleaseEvent(class QMouseEvent *) + ?resolveAdditionalFormats@QTextEngine@@ABEXXZ @ 10878 NONAME ; void QTextEngine::resolveAdditionalFormats(void) const + ??0QFont@@AAE@PAVQFontPrivate@@@Z @ 10879 NONAME ; QFont::QFont(class QFontPrivate *) + ?underlineStyle@QTextCharFormat@@QBE?AW4UnderlineStyle@1@XZ @ 10880 NONAME ; enum QTextCharFormat::UnderlineStyle QTextCharFormat::underlineStyle(void) const + ?mappedPropertyName@QDataWidgetMapper@@QBE?AVQByteArray@@PAVQWidget@@@Z @ 10881 NONAME ; class QByteArray QDataWidgetMapper::mappedPropertyName(class QWidget *) const + ?getStaticMetaObject@QPainter@@SAABUQMetaObject@@XZ @ 10882 NONAME ; struct QMetaObject const & QPainter::getStaticMetaObject(void) + ?setAdditionalFormats@QTextLayout@@QAEXABV?$QList@UFormatRange@QTextLayout@@@@@Z @ 10883 NONAME ; void QTextLayout::setAdditionalFormats(class QList const &) + ?requestWidget@QWidgetAction@@QAEPAVQWidget@@PAV2@@Z @ 10884 NONAME ; class QWidget * QWidgetAction::requestWidget(class QWidget *) + ??0QSyntaxHighlighter@@QAE@PAVQTextDocument@@@Z @ 10885 NONAME ; QSyntaxHighlighter::QSyntaxHighlighter(class QTextDocument *) + ?setViewport@QPainter@@QAEXHHHH@Z @ 10886 NONAME ; void QPainter::setViewport(int, int, int, int) + ??0QAbstractButton@@QAE@PAVQWidget@@@Z @ 10887 NONAME ; QAbstractButton::QAbstractButton(class QWidget *) + ?metaObject@QGraphicsScale@@UBEPBUQMetaObject@@XZ @ 10888 NONAME ; struct QMetaObject const * QGraphicsScale::metaObject(void) const + ?saturationF@QColor@@QBEMXZ @ 10889 NONAME ; float QColor::saturationF(void) const + ?setRangeSelected@QTableWidget@@QAEXABVQTableWidgetSelectionRange@@_N@Z @ 10890 NONAME ; void QTableWidget::setRangeSelected(class QTableWidgetSelectionRange const &, bool) + ?supportsSelection@QClipboard@@QBE_NXZ @ 10891 NONAME ; bool QClipboard::supportsSelection(void) const + ??_EQButtonGroup@@UAE@I@Z @ 10892 NONAME ; QButtonGroup::~QButtonGroup(unsigned int) + ?rowMaximumHeight@QGraphicsGridLayout@@QBEMH@Z @ 10893 NONAME ; float QGraphicsGridLayout::rowMaximumHeight(int) const + ?setMinimum@QSpinBox@@QAEXH@Z @ 10894 NONAME ; void QSpinBox::setMinimum(int) + ?setData@QTreeWidgetItem@@UAEXHHABVQVariant@@@Z @ 10895 NONAME ; void QTreeWidgetItem::setData(int, int, class QVariant const &) + ?setStyle@QPen@@QAEXW4PenStyle@Qt@@@Z @ 10896 NONAME ; void QPen::setStyle(enum Qt::PenStyle) + ?isSortIndicatorShown@QHeaderView@@QBE_NXZ @ 10897 NONAME ; bool QHeaderView::isSortIndicatorShown(void) const + ?softKeyRole@QAction@@QBE?AW4SoftKeyRole@1@XZ @ 10898 NONAME ; enum QAction::SoftKeyRole QAction::softKeyRole(void) const + ?setRubberBandSelectionMode@QGraphicsView@@QAEXW4ItemSelectionMode@Qt@@@Z @ 10899 NONAME ; void QGraphicsView::setRubberBandSelectionMode(enum Qt::ItemSelectionMode) + ?documentTitle@QPlainTextEdit@@QBE?AVQString@@XZ @ 10900 NONAME ; class QString QPlainTextEdit::documentTitle(void) const + ?d_func@QTreeWidget@@AAEPAVQTreeWidgetPrivate@@XZ @ 10901 NONAME ; class QTreeWidgetPrivate * QTreeWidget::d_func(void) + ?tr@QHeaderView@@SA?AVQString@@PBD0@Z @ 10902 NONAME ; class QString QHeaderView::tr(char const *, char const *) + ??IQPainterPath@@QBE?AV0@ABV0@@Z @ 10903 NONAME ; class QPainterPath QPainterPath::operator&(class QPainterPath const &) const + ?setOwnedByLayout@QGraphicsLayoutItem@@IAEX_N@Z @ 10904 NONAME ; void QGraphicsLayoutItem::setOwnedByLayout(bool) + ?collidingItems@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsItem@@@@W4ItemSelectionMode@Qt@@@Z @ 10905 NONAME ; class QList QGraphicsItem::collidingItems(enum Qt::ItemSelectionMode) const + ?getStaticMetaObject@QStatusBar@@SAABUQMetaObject@@XZ @ 10906 NONAME ; struct QMetaObject const & QStatusBar::getStaticMetaObject(void) + ?qt_qwidget_data@@YAPAVQWidgetData@@PAVQWidget@@@Z @ 10907 NONAME ; class QWidgetData * qt_qwidget_data(class QWidget *) + ?tr@QItemDelegate@@SA?AVQString@@PBD0@Z @ 10908 NONAME ; class QString QItemDelegate::tr(char const *, char const *) + ?indexAt@QHeaderView@@MBE?AVQModelIndex@@ABVQPoint@@@Z @ 10909 NONAME ; class QModelIndex QHeaderView::indexAt(class QPoint const &) const + ?selectAll@QLineControl@@QAEXXZ @ 10910 NONAME ; void QLineControl::selectAll(void) + ?hasAcceptableInput@QLineEdit@@QBE_NXZ @ 10911 NONAME ; bool QLineEdit::hasAcceptableInput(void) const + ?row@QMatrix4x4@@QBE?AVQVector4D@@H@Z @ 10912 NONAME ; class QVector4D QMatrix4x4::row(int) const + ?state@QAbstractItemView@@IBE?AW4State@1@XZ @ 10913 NONAME ; enum QAbstractItemView::State QAbstractItemView::state(void) const + ??0QTransform@@AAE@_N@Z @ 10914 NONAME ; QTransform::QTransform(bool) + ?focusOutEvent@QGraphicsScene@@MAEXPAVQFocusEvent@@@Z @ 10915 NONAME ; void QGraphicsScene::focusOutEvent(class QFocusEvent *) + ?itemToolTip@QToolBox@@QBE?AVQString@@H@Z @ 10916 NONAME ; class QString QToolBox::itemToolTip(int) const + ?column@QMatrix4x4@@QBE?AVQVector4D@@H@Z @ 10917 NONAME ; class QVector4D QMatrix4x4::column(int) const + ?verticalDirection@QSwipeGesture@@QBE?AW4SwipeDirection@1@XZ @ 10918 NONAME ; enum QSwipeGesture::SwipeDirection QSwipeGesture::verticalDirection(void) const + ?lineThickness@QFontEngine@@UBE?AUQFixed@@XZ @ 10919 NONAME ; struct QFixed QFontEngine::lineThickness(void) const + ?setWidget@QDockWidget@@QAEXPAVQWidget@@@Z @ 10920 NONAME ; void QDockWidget::setWidget(class QWidget *) + ??0QMenu@@QAE@PAVQWidget@@@Z @ 10921 NONAME ; QMenu::QMenu(class QWidget *) + ?timerEvent@QAbstractItemView@@MAEXPAVQTimerEvent@@@Z @ 10922 NONAME ; void QAbstractItemView::timerEvent(class QTimerEvent *) + ?lower_sys@QWidgetPrivate@@QAEXXZ @ 10923 NONAME ; void QWidgetPrivate::lower_sys(void) + ?toolButtonStyleChanged@QMainWindow@@IAEXW4ToolButtonStyle@Qt@@@Z @ 10924 NONAME ; void QMainWindow::toolButtonStyleChanged(enum Qt::ToolButtonStyle) + ?currentIndex@QStackedLayout@@QBEHXZ @ 10925 NONAME ; int QStackedLayout::currentIndex(void) const + ?backgroundBrush@QPaintEngineState@@QBE?AVQBrush@@XZ @ 10926 NONAME ; class QBrush QPaintEngineState::backgroundBrush(void) const + ?fontFamily@QTextEdit@@QBE?AVQString@@XZ @ 10927 NONAME ; class QString QTextEdit::fontFamily(void) const + ?length@QVector4D@@QBEMXZ @ 10928 NONAME ; float QVector4D::length(void) const + ?transform@QPaintEngineState@@QBE?AVQTransform@@XZ @ 10929 NONAME ; class QTransform QPaintEngineState::transform(void) const + ?setTexture@QBrush@@QAEXABVQPixmap@@@Z @ 10930 NONAME ; void QBrush::setTexture(class QPixmap const &) + ?setTabPositions@QTextBlockFormat@@QAEXABV?$QList@UTab@QTextOption@@@@@Z @ 10931 NONAME ; void QTextBlockFormat::setTabPositions(class QList const &) + ?setAllowedAreas@QDockWidget@@QAEXV?$QFlags@W4DockWidgetArea@Qt@@@@@Z @ 10932 NONAME ; void QDockWidget::setAllowedAreas(class QFlags) + ??0QGraphicsSceneMouseEvent@@QAE@W4Type@QEvent@@@Z @ 10933 NONAME ; QGraphicsSceneMouseEvent::QGraphicsSceneMouseEvent(enum QEvent::Type) + ?initStyleOption@QGroupBox@@IBEXPAVQStyleOptionGroupBox@@@Z @ 10934 NONAME ; void QGroupBox::initStyleOption(class QStyleOptionGroupBox *) const + ?setNewPos@QGraphicsSceneMoveEvent@@QAEXABVQPointF@@@Z @ 10935 NONAME ; void QGraphicsSceneMoveEvent::setNewPos(class QPointF const &) + ?currentRow@QListWidget@@QBEHXZ @ 10936 NONAME ; int QListWidget::currentRow(void) const + ?trUtf8@QItemDelegate@@SA?AVQString@@PBD0H@Z @ 10937 NONAME ; class QString QItemDelegate::trUtf8(char const *, char const *, int) + ??1QRubberBand@@UAE@XZ @ 10938 NONAME ; QRubberBand::~QRubberBand(void) + ?isAnchor@QTextCharFormat@@QBE_NXZ @ 10939 NONAME ; bool QTextCharFormat::isAnchor(void) const + ?staticContents@QWindowSurface@@QBE?AVQRegion@@XZ @ 10940 NONAME ; class QRegion QWindowSurface::staticContents(void) const + ?loops@QSound@@QBEHXZ @ 10941 NONAME ; int QSound::loops(void) const + ?qRgb@@YAIHHH@Z @ 10942 NONAME ; unsigned int qRgb(int, int, int) + ?d_func@QListView@@AAEPAVQListViewPrivate@@XZ @ 10943 NONAME ; class QListViewPrivate * QListView::d_func(void) + ?lastPos@QGraphicsSceneHoverEvent@@QBE?AVQPointF@@XZ @ 10944 NONAME ; class QPointF QGraphicsSceneHoverEvent::lastPos(void) const + ?myComputer@QFileSystemModel@@QBE?AVQVariant@@H@Z @ 10945 NONAME ; class QVariant QFileSystemModel::myComputer(int) const + ?setTransformationMode@QGraphicsPixmapItem@@QAEXW4TransformationMode@Qt@@@Z @ 10946 NONAME ; void QGraphicsPixmapItem::setTransformationMode(enum Qt::TransformationMode) + ??1QImageWriter@@QAE@XZ @ 10947 NONAME ; QImageWriter::~QImageWriter(void) + ?qt_metacall@QAbstractButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10948 NONAME ; int QAbstractButton::qt_metacall(enum QMetaObject::Call, int, void * *) + ?parseSelector@Parser@QCss@@QAE_NPAUSelector@2@@Z @ 10949 NONAME ; bool QCss::Parser::parseSelector(struct QCss::Selector *) + ?setSortRole@QStandardItemModel@@QAEXH@Z @ 10950 NONAME ; void QStandardItemModel::setSortRole(int) + ?setFloatable@QToolBar@@QAEX_N@Z @ 10951 NONAME ; void QToolBar::setFloatable(bool) + ?maximumDate@QCalendarWidget@@QBE?AVQDate@@XZ @ 10952 NONAME ; class QDate QCalendarWidget::maximumDate(void) const + ?closeEvent@QDialog@@MAEXPAVQCloseEvent@@@Z @ 10953 NONAME ; void QDialog::closeEvent(class QCloseEvent *) + ?trUtf8@QScrollBar@@SA?AVQString@@PBD0H@Z @ 10954 NONAME ; class QString QScrollBar::trUtf8(char const *, char const *, int) + ??1QLayout@@UAE@XZ @ 10955 NONAME ; QLayout::~QLayout(void) + ?actionAt@QMenu@@QBEPAVQAction@@ABVQPoint@@@Z @ 10956 NONAME ; class QAction * QMenu::actionAt(class QPoint const &) const + ?mouseDoubleClickEvent@QPlainTextEdit@@MAEXPAVQMouseEvent@@@Z @ 10957 NONAME ; void QPlainTextEdit::mouseDoubleClickEvent(class QMouseEvent *) + ?trUtf8@QToolButton@@SA?AVQString@@PBD0H@Z @ 10958 NONAME ; class QString QToolButton::trUtf8(char const *, char const *, int) + ?d_func@QInputContext@@ABEPBVQInputContextPrivate@@XZ @ 10959 NONAME ; class QInputContextPrivate const * QInputContext::d_func(void) const + ?cursorForPosition@QPlainTextEdit@@QBE?AVQTextCursor@@ABVQPoint@@@Z @ 10960 NONAME ; class QTextCursor QPlainTextEdit::cursorForPosition(class QPoint const &) const + ?widgetForRole@QDockWidgetLayout@@QBEPAVQWidget@@W4Role@1@@Z @ 10961 NONAME ; class QWidget * QDockWidgetLayout::widgetForRole(enum QDockWidgetLayout::Role) const + ?setTransformHelper@QGraphicsItemPrivate@@QAEXABVQTransform@@@Z @ 10962 NONAME ; void QGraphicsItemPrivate::setTransformHelper(class QTransform const &) + ?cut@QTextEdit@@QAEXXZ @ 10963 NONAME ; void QTextEdit::cut(void) + ?qt_metacall@QProgressBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10964 NONAME ; int QProgressBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?question@QMessageBox@@SAHPAVQWidget@@ABVQString@@1111HH@Z @ 10965 NONAME ; int QMessageBox::question(class QWidget *, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, int, int) + ?removeAction@QWidget@@QAEXPAVQAction@@@Z @ 10966 NONAME ; void QWidget::removeAction(class QAction *) + ?lengthSquared@QQuaternion@@QBEMXZ @ 10967 NONAME ; float QQuaternion::lengthSquared(void) const + ?d_func@QGraphicsOpacityEffect@@ABEPBVQGraphicsOpacityEffectPrivate@@XZ @ 10968 NONAME ; class QGraphicsOpacityEffectPrivate const * QGraphicsOpacityEffect::d_func(void) const + ?trUtf8@QPaintBufferSignalProxy@@SA?AVQString@@PBD0H@Z @ 10969 NONAME ; class QString QPaintBufferSignalProxy::trUtf8(char const *, char const *, int) + ?staticMetaObject@QGraphicsEffect@@2UQMetaObject@@B @ 10970 NONAME ; struct QMetaObject const QGraphicsEffect::staticMetaObject + ?setRange@QIntValidator@@UAEXHH@Z @ 10971 NONAME ; void QIntValidator::setRange(int, int) + ?paintSiblingsRecursive@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABV?$QList@PAVQObject@@@@HABVQRegion@@ABVQPoint@@HPAVQPainter@@PAVQWidgetBackingStore@@@Z @ 10972 NONAME ; void QWidgetPrivate::paintSiblingsRecursive(class QPaintDevice *, class QList const &, int, class QRegion const &, class QPoint const &, int, class QPainter *, class QWidgetBackingStore *) + ?insert@QLineEdit@@QAEXABVQString@@@Z @ 10973 NONAME ; void QLineEdit::insert(class QString const &) + ?setRotationAt@QGraphicsItemAnimation@@QAEXMM@Z @ 10974 NONAME ; void QGraphicsItemAnimation::setRotationAt(float, float) + ?tr@QMouseEventTransition@@SA?AVQString@@PBD0H@Z @ 10975 NONAME ; class QString QMouseEventTransition::tr(char const *, char const *, int) + ?pt3@QBezier@@QBE?AVQPointF@@XZ @ 10976 NONAME ; class QPointF QBezier::pt3(void) const + ?tr@QS60Style@@SA?AVQString@@PBD0H@Z @ 10977 NONAME ; class QString QS60Style::tr(char const *, char const *, int) + ?languages@QInputContextFactory@@SA?AVQStringList@@ABVQString@@@Z @ 10978 NONAME ; class QStringList QInputContextFactory::languages(class QString const &) + ?trUtf8@QGraphicsEffect@@SA?AVQString@@PBD0H@Z @ 10979 NONAME ; class QString QGraphicsEffect::trUtf8(char const *, char const *, int) + ?showMessage@QStatusBar@@QAEXABVQString@@H@Z @ 10980 NONAME ; void QStatusBar::showMessage(class QString const &, int) + ?acceptMode@QFileDialog@@QBE?AW4AcceptMode@1@XZ @ 10981 NONAME ; enum QFileDialog::AcceptMode QFileDialog::acceptMode(void) const + ??_EQGraphicsBlurEffect@@UAE@I@Z @ 10982 NONAME ; QGraphicsBlurEffect::~QGraphicsBlurEffect(unsigned int) + ??0QDateTimeEdit@@QAE@PAVQWidget@@@Z @ 10983 NONAME ; QDateTimeEdit::QDateTimeEdit(class QWidget *) + ?clearSelection@QItemSelectionModel@@QAEXXZ @ 10984 NONAME ; void QItemSelectionModel::clearSelection(void) + ?tabArray@QTextOption@@QBE?AV?$QList@M@@XZ @ 10985 NONAME ; class QList QTextOption::tabArray(void) const + ?xTranslationAt@QGraphicsItemAnimation@@QBEMM@Z @ 10986 NONAME ; float QGraphicsItemAnimation::xTranslationAt(float) const + ?showEvent@QRubberBand@@MAEXPAVQShowEvent@@@Z @ 10987 NONAME ; void QRubberBand::showEvent(class QShowEvent *) + ?qt_metacall@QDirModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10988 NONAME ; int QDirModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@QDoubleSpinBox@@ABEPBVQDoubleSpinBoxPrivate@@XZ @ 10989 NONAME ; class QDoubleSpinBoxPrivate const * QDoubleSpinBox::d_func(void) const + ?objectIndex@QTextFormat@@QBEHXZ @ 10990 NONAME ; int QTextFormat::objectIndex(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQStandardItem@@@Z @ 10991 NONAME ; class QDataStream & operator>>(class QDataStream &, class QStandardItem &) + ?lightnessF@QColor@@QBEMXZ @ 10992 NONAME ; float QColor::lightnessF(void) const + ?actionGeometry@QToolBar@@QBE?AVQRect@@PAVQAction@@@Z @ 10993 NONAME ; class QRect QToolBar::actionGeometry(class QAction *) const + ?write@QTextDocumentWriter@@QAE_NPBVQTextDocument@@@Z @ 10994 NONAME ; bool QTextDocumentWriter::write(class QTextDocument const *) + ?nextCursorPosition@QTextLayout@@QBEHHW4CursorMode@1@@Z @ 10995 NONAME ; int QTextLayout::nextCursorPosition(int, enum QTextLayout::CursorMode) const + ?raise@QWidget@@QAEXXZ @ 10996 NONAME ; void QWidget::raise(void) + ?setLastNormalizedPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 10997 NONAME ; void QTouchEvent::TouchPoint::setLastNormalizedPos(class QPointF const &) + ?defaultFamily@QFont@@QBE?AVQString@@XZ @ 10998 NONAME ; class QString QFont::defaultFamily(void) const + ?setWidth@QPen@@QAEXH@Z @ 10999 NONAME ; void QPen::setWidth(int) + ?removeCellWidget@QTableWidget@@QAEXHH@Z @ 11000 NONAME ; void QTableWidget::removeCellWidget(int, int) + ?clear@QTableWidget@@QAEXXZ @ 11001 NONAME ; void QTableWidget::clear(void) + ??0QToolBox@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 11002 NONAME ; QToolBox::QToolBox(class QWidget *, class QFlags) + ?fromPlainText@QTextDocumentFragment@@SA?AV1@ABVQString@@@Z @ 11003 NONAME ; class QTextDocumentFragment QTextDocumentFragment::fromPlainText(class QString const &) + ?contains@QGraphicsRectItem@@UBE_NABVQPointF@@@Z @ 11004 NONAME ; bool QGraphicsRectItem::contains(class QPointF const &) const + ?height@QTextFrameFormat@@QBE?AVQTextLength@@XZ @ 11005 NONAME ; class QTextLength QTextFrameFormat::height(void) const + ??4QStyleOptionViewItemV3@@QAEAAV0@ABVQStyleOptionViewItem@@@Z @ 11006 NONAME ; class QStyleOptionViewItemV3 & QStyleOptionViewItemV3::operator=(class QStyleOptionViewItem const &) + ?mouseGrabberItem@QGraphicsScene@@QBEPAVQGraphicsItem@@XZ @ 11007 NONAME ; class QGraphicsItem * QGraphicsScene::mouseGrabberItem(void) const + ?toPrevious@QDataWidgetMapper@@QAEXXZ @ 11008 NONAME ; void QDataWidgetMapper::toPrevious(void) + ?toggleViewAction@QToolBar@@QBEPAVQAction@@XZ @ 11009 NONAME ; class QAction * QToolBar::toggleViewAction(void) const + ?setInputContext@QApplication@@QAEXPAVQInputContext@@@Z @ 11010 NONAME ; void QApplication::setInputContext(class QInputContext *) + ?corner@QMainWindow@@QBE?AW4DockWidgetArea@Qt@@W4Corner@3@@Z @ 11011 NONAME ; enum Qt::DockWidgetArea QMainWindow::corner(enum Qt::Corner) const + ??0QVector2D@@QAE@MM@Z @ 11012 NONAME ; QVector2D::QVector2D(float, float) + ?resizeEvent@QGroupBox@@MAEXPAVQResizeEvent@@@Z @ 11013 NONAME ; void QGroupBox::resizeEvent(class QResizeEvent *) + ?sizeHint@QSplitterHandle@@UBE?AVQSize@@XZ @ 11014 NONAME ; class QSize QSplitterHandle::sizeHint(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQPainterPath@@@Z @ 11015 NONAME ; class QDataStream & operator>>(class QDataStream &, class QPainterPath &) + ??1QStyleOptionGroupBox@@QAE@XZ @ 11016 NONAME ; QStyleOptionGroupBox::~QStyleOptionGroupBox(void) + ?toolButtonStyleChanged@QToolBar@@IAEXW4ToolButtonStyle@Qt@@@Z @ 11017 NONAME ; void QToolBar::toolButtonStyleChanged(enum Qt::ToolButtonStyle) + ?setSortingEnabled@QTreeView@@QAEX_N@Z @ 11018 NONAME ; void QTreeView::setSortingEnabled(bool) + ?size@QColormap@@QBEHXZ @ 11019 NONAME ; int QColormap::size(void) const + ?defaultWidget@QWidgetAction@@QBEPAVQWidget@@XZ @ 11020 NONAME ; class QWidget * QWidgetAction::defaultWidget(void) const + ?hoverLeaveEvent@QGraphicsTextItem@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 11021 NONAME ; void QGraphicsTextItem::hoverLeaveEvent(class QGraphicsSceneHoverEvent *) + ?metaObject@QPlainTextEdit@@UBEPBUQMetaObject@@XZ @ 11022 NONAME ; struct QMetaObject const * QPlainTextEdit::metaObject(void) const + ?setEnabled@QGraphicsEffect@@QAEX_N@Z @ 11023 NONAME ; void QGraphicsEffect::setEnabled(bool) + ?wheelEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneWheelEvent@@@Z @ 11024 NONAME ; void QGraphicsProxyWidget::wheelEvent(class QGraphicsSceneWheelEvent *) + ?trUtf8@QGroupBox@@SA?AVQString@@PBD0H@Z @ 11025 NONAME ; class QString QGroupBox::trUtf8(char const *, char const *, int) + ?metaObject@QPixmapDropShadowFilter@@UBEPBUQMetaObject@@XZ @ 11026 NONAME ; struct QMetaObject const * QPixmapDropShadowFilter::metaObject(void) const + ?qt_metacast@QFontComboBox@@UAEPAXPBD@Z @ 11027 NONAME ; void * QFontComboBox::qt_metacast(char const *) + ?applyTo@QGraphicsRotation@@UBEXPAVQMatrix4x4@@@Z @ 11028 NONAME ; void QGraphicsRotation::applyTo(class QMatrix4x4 *) const + ??9QImageTextKeyLang@@QBE_NABV0@@Z @ 11029 NONAME ; bool QImageTextKeyLang::operator!=(class QImageTextKeyLang const &) const + ?getInteger@QInputDialog@@SAHPAVQWidget@@ABVQString@@1HHHHPA_NV?$QFlags@W4WindowType@Qt@@@@@Z @ 11030 NONAME ; int QInputDialog::getInteger(class QWidget *, class QString const &, class QString const &, int, int, int, int, bool *, class QFlags) + ?itemPrototype@QTableWidget@@QBEPBVQTableWidgetItem@@XZ @ 11031 NONAME ; class QTableWidgetItem const * QTableWidget::itemPrototype(void) const + ?metaObject@QStyle@@UBEPBUQMetaObject@@XZ @ 11032 NONAME ; struct QMetaObject const * QStyle::metaObject(void) const + ?xToCursor@QTextLine@@QBEHMW4CursorPosition@1@@Z @ 11033 NONAME ; int QTextLine::xToCursor(float, enum QTextLine::CursorPosition) const + ?event@QTextControl@@MAE_NPAVQEvent@@@Z @ 11034 NONAME ; bool QTextControl::event(class QEvent *) + ?paste@QPlainTextEdit@@QAEXXZ @ 11035 NONAME ; void QPlainTextEdit::paste(void) + ?workAreaResized@QDesktopWidget@@IAEXH@Z @ 11036 NONAME ; void QDesktopWidget::workAreaResized(int) + ?toVector3D@QVector2D@@QBE?AVQVector3D@@XZ @ 11037 NONAME ; class QVector3D QVector2D::toVector3D(void) const + ?childEvent@QSplitter@@MAEXPAVQChildEvent@@@Z @ 11038 NONAME ; void QSplitter::childEvent(class QChildEvent *) + ?canRedo@QUndoStack@@QBE_NXZ @ 11039 NONAME ; bool QUndoStack::canRedo(void) const + ?averageCharWidth@QFontEngine@@UBE?AUQFixed@@XZ @ 11040 NONAME ; struct QFixed QFontEngine::averageCharWidth(void) const + ?isAboutToShow@QWidgetPrivate@@QBE_NXZ @ 11041 NONAME ; bool QWidgetPrivate::isAboutToShow(void) const + ??0QGraphicsPolygonItem@@QAE@ABVQPolygonF@@PAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 11042 NONAME ; QGraphicsPolygonItem::QGraphicsPolygonItem(class QPolygonF const &, class QGraphicsItem *, class QGraphicsScene *) + ??YQVector4D@@QAEAAV0@ABV0@@Z @ 11043 NONAME ; class QVector4D & QVector4D::operator+=(class QVector4D const &) + ?setGeometry@QGraphicsProxyWidget@@UAEXABVQRectF@@@Z @ 11044 NONAME ; void QGraphicsProxyWidget::setGeometry(class QRectF const &) + ?setDoubleClickInterval@QApplication@@SAXH@Z @ 11045 NONAME ; void QApplication::setDoubleClickInterval(int) + ?setOptions@QWizard@@QAEXV?$QFlags@W4WizardOption@QWizard@@@@@Z @ 11046 NONAME ; void QWizard::setOptions(class QFlags) + ?insertSubstitutions@QFont@@SAXABVQString@@ABVQStringList@@@Z @ 11047 NONAME ; void QFont::insertSubstitutions(class QString const &, class QStringList const &) + ?tr@QGridLayout@@SA?AVQString@@PBD0@Z @ 11048 NONAME ; class QString QGridLayout::tr(char const *, char const *) + ??9QPen@@QBE_NABV0@@Z @ 11049 NONAME ; bool QPen::operator!=(class QPen const &) const + ?forwardHistoryCount@QTextBrowser@@QBEHXZ @ 11050 NONAME ; int QTextBrowser::forwardHistoryCount(void) const + ?zScale@QGraphicsScale@@QBEMXZ @ 11051 NONAME ; float QGraphicsScale::zScale(void) const + ?modifiers@QGraphicsSceneDragDropEvent@@QBE?AV?$QFlags@W4KeyboardModifier@Qt@@@@XZ @ 11052 NONAME ; class QFlags QGraphicsSceneDragDropEvent::modifiers(void) const + ?tr@QWindowsStyle@@SA?AVQString@@PBD0@Z @ 11053 NONAME ; class QString QWindowsStyle::tr(char const *, char const *) + ?addGlyphsToPath@QFontEngine@@UAEXPAIPAUQFixedPoint@@HPAVQPainterPath@@V?$QFlags@W4RenderFlag@QTextItem@@@@@Z @ 11054 NONAME ; void QFontEngine::addGlyphsToPath(unsigned int *, struct QFixedPoint *, int, class QPainterPath *, class QFlags) + ?hsvSaturationF@QColor@@QBEMXZ @ 11055 NONAME ; float QColor::hsvSaturationF(void) const + ?minimumDuration@QProgressDialog@@QBEHXZ @ 11056 NONAME ; int QProgressDialog::minimumDuration(void) const + ??0QTextEngine@@QAE@ABVQString@@ABVQFont@@@Z @ 11057 NONAME ; QTextEngine::QTextEngine(class QString const &, class QFont const &) + ??4QStyleOptionComboBox@@QAEAAV0@ABV0@@Z @ 11058 NONAME ; class QStyleOptionComboBox & QStyleOptionComboBox::operator=(class QStyleOptionComboBox const &) + ?end@QTextDocument@@QBE?AVQTextBlock@@XZ @ 11059 NONAME ; class QTextBlock QTextDocument::end(void) const + ?inputFormatList@QPicture@@SA?AVQStringList@@XZ @ 11060 NONAME ; class QStringList QPicture::inputFormatList(void) + ?setDefaultSuffix@QFileDialog@@QAEXABVQString@@@Z @ 11061 NONAME ; void QFileDialog::setDefaultSuffix(class QString const &) + ?toImage@QPixmap@@QBE?AVQImage@@XZ @ 11062 NONAME ; class QImage QPixmap::toImage(void) const + ??1QTextDocumentWriter@@QAE@XZ @ 11063 NONAME ; QTextDocumentWriter::~QTextDocumentWriter(void) + ?fromData@QPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 11064 NONAME ; bool QPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags) + ?focusWidget@QInputContext@@QBEPAVQWidget@@XZ @ 11065 NONAME ; class QWidget * QInputContext::focusWidget(void) const + ?setItemEditorFactory@QStyledItemDelegate@@QAEXPAVQItemEditorFactory@@@Z @ 11066 NONAME ; void QStyledItemDelegate::setItemEditorFactory(class QItemEditorFactory *) + ?setBold@QFont@@QAEX_N@Z @ 11067 NONAME ; void QFont::setBold(bool) + ?sceneMatrix@QGraphicsItem@@QBE?AVQMatrix@@XZ @ 11068 NONAME ; class QMatrix QGraphicsItem::sceneMatrix(void) const + ?expandingDirections@QSizePolicy@@QBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 11069 NONAME ; class QFlags QSizePolicy::expandingDirections(void) const + ?getColor@QColorDialog@@SA?AVQColor@@ABV2@PAVQWidget@@@Z @ 11070 NONAME ; class QColor QColorDialog::getColor(class QColor const &, class QWidget *) + ?setComboBoxItems@QInputDialog@@QAEXABVQStringList@@@Z @ 11071 NONAME ; void QInputDialog::setComboBoxItems(class QStringList const &) + ?getStaticMetaObject@QStackedLayout@@SAABUQMetaObject@@XZ @ 11072 NONAME ; struct QMetaObject const & QStackedLayout::getStaticMetaObject(void) + ?mimeTypes@QTableWidget@@MBE?AVQStringList@@XZ @ 11073 NONAME ; class QStringList QTableWidget::mimeTypes(void) const + ?clipRect@QStrokerOps@@QBE?AVQRectF@@XZ @ 11074 NONAME ; class QRectF QStrokerOps::clipRect(void) const + ?caseSensitivity@QCompleter@@QBE?AW4CaseSensitivity@Qt@@XZ @ 11075 NONAME ; enum Qt::CaseSensitivity QCompleter::caseSensitivity(void) const + ?subControlRect@QCommonStyle@@UBE?AVQRect@@W4ComplexControl@QStyle@@PBVQStyleOptionComplex@@W4SubControl@4@PBVQWidget@@@Z @ 11076 NONAME ; class QRect QCommonStyle::subControlRect(enum QStyle::ComplexControl, class QStyleOptionComplex const *, enum QStyle::SubControl, class QWidget const *) const + ?staticMetaObject@QMainWindow@@2UQMetaObject@@B @ 11077 NONAME ; struct QMetaObject const QMainWindow::staticMetaObject + ??1QGraphicsSceneResizeEvent@@UAE@XZ @ 11078 NONAME ; QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent(void) + ?setCacheMode@QGraphicsItem@@QAEXW4CacheMode@1@ABVQSize@@@Z @ 11079 NONAME ; void QGraphicsItem::setCacheMode(enum QGraphicsItem::CacheMode, class QSize const &) + ?setBackgroundColor@QTreeWidgetItem@@QAEXHABVQColor@@@Z @ 11080 NONAME ; void QTreeWidgetItem::setBackgroundColor(int, class QColor const &) + ?family@QFont@@QBE?AVQString@@XZ @ 11081 NONAME ; class QString QFont::family(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQListWidgetItem@@@Z @ 11082 NONAME ; class QDataStream & operator>>(class QDataStream &, class QListWidgetItem &) + ?prepareGeometryChange@QGraphicsItem@@IAEXXZ @ 11083 NONAME ; void QGraphicsItem::prepareGeometryChange(void) + ?boundingRect@QPainter@@QAE?AVQRectF@@ABV2@ABVQString@@ABVQTextOption@@@Z @ 11084 NONAME ; class QRectF QPainter::boundingRect(class QRectF const &, class QString const &, class QTextOption const &) + ?setCorner@QMainWindow@@QAEXW4Corner@Qt@@W4DockWidgetArea@3@@Z @ 11085 NONAME ; void QMainWindow::setCorner(enum Qt::Corner, enum Qt::DockWidgetArea) + ?isSelectionRectVisible@QListView@@QBE_NXZ @ 11086 NONAME ; bool QListView::isSelectionRectVisible(void) const + ??0QTextOption@@QAE@XZ @ 11087 NONAME ; QTextOption::QTextOption(void) + ?selectedIndexes@QItemSelectionModel@@QBE?AV?$QList@VQModelIndex@@@@XZ @ 11088 NONAME ; class QList QItemSelectionModel::selectedIndexes(void) const + ?getStaticMetaObject@QTableWidget@@SAABUQMetaObject@@XZ @ 11089 NONAME ; struct QMetaObject const & QTableWidget::getStaticMetaObject(void) + ??1QStringListModel@@UAE@XZ @ 11090 NONAME ; QStringListModel::~QStringListModel(void) + ?hslSaturationF@QColor@@QBEMXZ @ 11091 NONAME ; float QColor::hslSaturationF(void) const + ?styleHint@QCommonStyle@@UBEHW4StyleHint@QStyle@@PBVQStyleOption@@PBVQWidget@@PAVQStyleHintReturn@@@Z @ 11092 NONAME ; int QCommonStyle::styleHint(enum QStyle::StyleHint, class QStyleOption const *, class QWidget const *, class QStyleHintReturn *) const + ?setFont@QTextLayout@@QAEXABVQFont@@@Z @ 11093 NONAME ; void QTextLayout::setFont(class QFont const &) + ?defineIOHandler@QPictureIO@@SAXPBD00P6AXPAV1@@ZP6AX1@Z@Z @ 11094 NONAME ; void QPictureIO::defineIOHandler(char const *, char const *, char const *, void (*)(class QPictureIO *), void (*)(class QPictureIO *)) + ?rowsRemoved@QTreeView@@IAEXABVQModelIndex@@HH@Z @ 11095 NONAME ; void QTreeView::rowsRemoved(class QModelIndex const &, int, int) + ?fixup@QDateTimeEdit@@MBEXAAVQString@@@Z @ 11096 NONAME ; void QDateTimeEdit::fixup(class QString &) const + ?isEnabled@QWidget@@QBE_NXZ @ 11097 NONAME ; bool QWidget::isEnabled(void) const + ?showExtension@QDialog@@QAEX_N@Z @ 11098 NONAME ; void QDialog::showExtension(bool) + ?closeEvent@QGraphicsWidget@@MAEXPAVQCloseEvent@@@Z @ 11099 NONAME ; void QGraphicsWidget::closeEvent(class QCloseEvent *) + ?mapToItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@MMMM@Z @ 11100 NONAME ; class QPolygonF QGraphicsItem::mapToItem(class QGraphicsItem const *, float, float, float, float) const + ?setGamma@QImageWriter@@QAEXM@Z @ 11101 NONAME ; void QImageWriter::setGamma(float) + ?currentSubWindow@QMdiArea@@QBEPAVQMdiSubWindow@@XZ @ 11102 NONAME ; class QMdiSubWindow * QMdiArea::currentSubWindow(void) const + ?trUtf8@QTreeWidget@@SA?AVQString@@PBD0H@Z @ 11103 NONAME ; class QString QTreeWidget::trUtf8(char const *, char const *, int) + ?tr@QToolBar@@SA?AVQString@@PBD0H@Z @ 11104 NONAME ; class QString QToolBar::tr(char const *, char const *, int) + ??_EQPictureFormatPlugin@@UAE@I@Z @ 11105 NONAME ; QPictureFormatPlugin::~QPictureFormatPlugin(unsigned int) + ?setExpanded@QTreeWidgetItem@@QAEX_N@Z @ 11106 NONAME ; void QTreeWidgetItem::setExpanded(bool) + ?count@QBoxLayout@@UBEHXZ @ 11107 NONAME ; int QBoxLayout::count(void) const + ??1QDragLeaveEvent@@UAE@XZ @ 11108 NONAME ; QDragLeaveEvent::~QDragLeaveEvent(void) + ?offset@QGraphicsDropShadowEffect@@QBE?AVQPointF@@XZ @ 11109 NONAME ; class QPointF QGraphicsDropShadowEffect::offset(void) const + ??1QPixmapData@@UAE@XZ @ 11110 NONAME ; QPixmapData::~QPixmapData(void) + ?expanding@QTabBar@@QBE_NXZ @ 11111 NONAME ; bool QTabBar::expanding(void) const + ??6@YAAAVQTextStream@@AAV0@ABVQSplitter@@@Z @ 11112 NONAME ; class QTextStream & operator<<(class QTextStream &, class QSplitter const &) + ??4TouchPoint@QTouchEvent@@QAEAAV01@ABV01@@Z @ 11113 NONAME ; class QTouchEvent::TouchPoint & QTouchEvent::TouchPoint::operator=(class QTouchEvent::TouchPoint const &) + ?d_func@QToolBox@@ABEPBVQToolBoxPrivate@@XZ @ 11114 NONAME ; class QToolBoxPrivate const * QToolBox::d_func(void) const + ?anchorHref@QTextCharFormat@@QBE?AVQString@@XZ @ 11115 NONAME ; class QString QTextCharFormat::anchorHref(void) const + ?bounds@QBezier@@QBE?AVQRectF@@XZ @ 11116 NONAME ; class QRectF QBezier::bounds(void) const + ?setGeometry@QRubberBand@@QAEXHHHH@Z @ 11117 NONAME ; void QRubberBand::setGeometry(int, int, int, int) + ??_EQDrag@@UAE@I@Z @ 11118 NONAME ; QDrag::~QDrag(unsigned int) + ?setSelectedSection@QDateTimeEdit@@QAEXW4Section@1@@Z @ 11119 NONAME ; void QDateTimeEdit::setSelectedSection(enum QDateTimeEdit::Section) + ??1QGraphicsScene@@UAE@XZ @ 11120 NONAME ; QGraphicsScene::~QGraphicsScene(void) + ?items@QGraphicsView@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 11121 NONAME ; class QList QGraphicsView::items(void) const + ?currentChanged@QColumnView@@MAEXABVQModelIndex@@0@Z @ 11122 NONAME ; void QColumnView::currentChanged(class QModelIndex const &, class QModelIndex const &) + ?setHeight@QTextImageFormat@@QAEXM@Z @ 11123 NONAME ; void QTextImageFormat::setHeight(float) + ?hoverMoveEvent@QGraphicsProxyWidget@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 11124 NONAME ; void QGraphicsProxyWidget::hoverMoveEvent(class QGraphicsSceneHoverEvent *) + ?qDrawWinPanel@@YAXPAVQPainter@@HHHHABVQPalette@@_NPBVQBrush@@@Z @ 11125 NONAME ; void qDrawWinPanel(class QPainter *, int, int, int, int, class QPalette const &, bool, class QBrush const *) + ?blue@QColor@@QBEHXZ @ 11126 NONAME ; int QColor::blue(void) const + ?trUtf8@QSpinBox@@SA?AVQString@@PBD0@Z @ 11127 NONAME ; class QString QSpinBox::trUtf8(char const *, char const *) + ?scale@QGraphicsItem@@QBEMXZ @ 11128 NONAME ; float QGraphicsItem::scale(void) const + ?d_func@QStyledItemDelegate@@AAEPAVQStyledItemDelegatePrivate@@XZ @ 11129 NONAME ; class QStyledItemDelegatePrivate * QStyledItemDelegate::d_func(void) + ?button@QDialogButtonBox@@QBEPAVQPushButton@@W4StandardButton@1@@Z @ 11130 NONAME ; class QPushButton * QDialogButtonBox::button(enum QDialogButtonBox::StandardButton) const + ?getStaticMetaObject@QVBoxLayout@@SAABUQMetaObject@@XZ @ 11131 NONAME ; struct QMetaObject const & QVBoxLayout::getStaticMetaObject(void) + ?id@QButtonGroup@@QBEHPAVQAbstractButton@@@Z @ 11132 NONAME ; int QButtonGroup::id(class QAbstractButton *) const + ?extension@QGraphicsLineItem@@MBE?AVQVariant@@ABV2@@Z @ 11133 NONAME ; class QVariant QGraphicsLineItem::extension(class QVariant const &) const + ?invalidate@QGraphicsScene@@QAEXMMMMV?$QFlags@W4SceneLayer@QGraphicsScene@@@@@Z @ 11134 NONAME ; void QGraphicsScene::invalidate(float, float, float, float, class QFlags) + ?initStyleOption@QMenuBar@@IBEXPAVQStyleOptionMenuItem@@PBVQAction@@@Z @ 11135 NONAME ; void QMenuBar::initStyleOption(class QStyleOptionMenuItem *, class QAction const *) const + ?qt_metacall@QGraphicsWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11136 NONAME ; int QGraphicsWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QSwipeGesture@@SA?AVQString@@PBD0H@Z @ 11137 NONAME ; class QString QSwipeGesture::tr(char const *, char const *, int) + ?d_func@QDateTimeEdit@@ABEPBVQDateTimeEditPrivate@@XZ @ 11138 NONAME ; class QDateTimeEditPrivate const * QDateTimeEdit::d_func(void) const + ?background@QWorkspace@@QBE?AVQBrush@@XZ @ 11139 NONAME ; class QBrush QWorkspace::background(void) const + ?paintEvent@QMdiArea@@MAEXPAVQPaintEvent@@@Z @ 11140 NONAME ; void QMdiArea::paintEvent(class QPaintEvent *) + ??1QInputContext@@UAE@XZ @ 11141 NONAME ; QInputContext::~QInputContext(void) + ?staticMetaObject@QCompleter@@2UQMetaObject@@B @ 11142 NONAME ; struct QMetaObject const QCompleter::staticMetaObject + ??_EQWindowStateChangeEvent@@UAE@I@Z @ 11143 NONAME ; QWindowStateChangeEvent::~QWindowStateChangeEvent(unsigned int) + ?formats@QTextEngine@@QBEPAVQTextFormatCollection@@XZ @ 11144 NONAME ; class QTextFormatCollection * QTextEngine::formats(void) const + ?mimeData@QDropEvent@@QBEPBVQMimeData@@XZ @ 11145 NONAME ; class QMimeData const * QDropEvent::mimeData(void) const + ?transformed@QPixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 11146 NONAME ; class QPixmap QPixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const + ?insertWidget@QToolBar@@QAEPAVQAction@@PAV2@PAVQWidget@@@Z @ 11147 NONAME ; class QAction * QToolBar::insertWidget(class QAction *, class QWidget *) + ?keyPressEvent@QPushButton@@MAEXPAVQKeyEvent@@@Z @ 11148 NONAME ; void QPushButton::keyPressEvent(class QKeyEvent *) + ?sizeHint@QCalendarWidget@@UBE?AVQSize@@XZ @ 11149 NONAME ; class QSize QCalendarWidget::sizeHint(void) const + ?smoothSizes@QFontDatabase@@QAE?AV?$QList@H@@ABVQString@@0@Z @ 11150 NONAME ; class QList QFontDatabase::smoothSizes(class QString const &, class QString const &) + ?sizePolicy@QGraphicsLayoutItem@@QBE?AVQSizePolicy@@XZ @ 11151 NONAME ; class QSizePolicy QGraphicsLayoutItem::sizePolicy(void) const + ?trUtf8@QListWidget@@SA?AVQString@@PBD0@Z @ 11152 NONAME ; class QString QListWidget::trUtf8(char const *, char const *) + ?fromAxisAndAngle@QQuaternion@@SA?AV1@ABVQVector3D@@M@Z @ 11153 NONAME ; class QQuaternion QQuaternion::fromAxisAndAngle(class QVector3D const &, float) + ?wordSpacing@QFont@@QBEMXZ @ 11154 NONAME ; float QFont::wordSpacing(void) const + ??_EQUndoCommand@@UAE@I@Z @ 11155 NONAME ; QUndoCommand::~QUndoCommand(unsigned int) + ?tr@QGraphicsEffectSource@@SA?AVQString@@PBD0@Z @ 11156 NONAME ; class QString QGraphicsEffectSource::tr(char const *, char const *) + ?insertTab@QTabWidget@@QAEHHPAVQWidget@@ABVQIcon@@ABVQString@@@Z @ 11157 NONAME ; int QTabWidget::insertTab(int, class QWidget *, class QIcon const &, class QString const &) + ??0QStyleHintReturn@@QAE@HH@Z @ 11158 NONAME ; QStyleHintReturn::QStyleHintReturn(int, int) + ?layout@QGraphicsWidget@@QBEPAVQGraphicsLayout@@XZ @ 11159 NONAME ; class QGraphicsLayout * QGraphicsWidget::layout(void) const + ?trUtf8@QPanGesture@@SA?AVQString@@PBD0@Z @ 11160 NONAME ; class QString QPanGesture::trUtf8(char const *, char const *) + ?d_func@QTableView@@ABEPBVQTableViewPrivate@@XZ @ 11161 NONAME ; class QTableViewPrivate const * QTableView::d_func(void) const + ?qt_metacall@QRegExpValidator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11162 NONAME ; int QRegExpValidator::qt_metacall(enum QMetaObject::Call, int, void * *) + ?width@QLineControl@@QBEHXZ @ 11163 NONAME ; int QLineControl::width(void) const + ?subtract@QRegion@@QBE?AV1@ABV1@@Z @ 11164 NONAME ; class QRegion QRegion::subtract(class QRegion const &) const + ?document@QTextEdit@@QBEPAVQTextDocument@@XZ @ 11165 NONAME ; class QTextDocument * QTextEdit::document(void) const + ?addToolBar@QMainWindow@@QAEPAVQToolBar@@ABVQString@@@Z @ 11166 NONAME ; class QToolBar * QMainWindow::addToolBar(class QString const &) + ??_5QPainterPath@@QAEAAV0@ABV0@@Z @ 11167 NONAME ; class QPainterPath & QPainterPath::operator|=(class QPainterPath const &) + ?createAlphaMask@QImage@@QBE?AV1@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 11168 NONAME ; class QImage QImage::createAlphaMask(class QFlags) const + ?textWidth@QTextDocument@@QBEMXZ @ 11169 NONAME ; float QTextDocument::textWidth(void) const + ?removeRow@QTableWidget@@QAEXH@Z @ 11170 NONAME ; void QTableWidget::removeRow(int) + ??_EQTimeEdit@@UAE@I@Z @ 11171 NONAME ; QTimeEdit::~QTimeEdit(unsigned int) + ?qt_metacall@QTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11172 NONAME ; int QTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qGray@@YAHHHH@Z @ 11173 NONAME ; int qGray(int, int, int) + ?event@QGraphicsView@@MAE_NPAVQEvent@@@Z @ 11174 NONAME ; bool QGraphicsView::event(class QEvent *) + ?mapRect@QMatrix@@QBE?AVQRectF@@ABV2@@Z @ 11175 NONAME ; class QRectF QMatrix::mapRect(class QRectF const &) const + ?textElideMode@QAbstractItemView@@QBE?AW4TextElideMode@Qt@@XZ @ 11176 NONAME ; enum Qt::TextElideMode QAbstractItemView::textElideMode(void) const + ?tr@QProgressBar@@SA?AVQString@@PBD0H@Z @ 11177 NONAME ; class QString QProgressBar::tr(char const *, char const *, int) + ?setScenePos@QGraphicsSceneHoverEvent@@QAEXABVQPointF@@@Z @ 11178 NONAME ; void QGraphicsSceneHoverEvent::setScenePos(class QPointF const &) + ?nameFilters@QFileDialog@@QBE?AVQStringList@@XZ @ 11179 NONAME ; class QStringList QFileDialog::nameFilters(void) const + ?tr@QStyle@@SA?AVQString@@PBD0@Z @ 11180 NONAME ; class QString QStyle::tr(char const *, char const *) + ?restoreOverrideCursor@QApplication@@SAXXZ @ 11181 NONAME ; void QApplication::restoreOverrideCursor(void) + ?segmentStyle@QLCDNumber@@QBE?AW4SegmentStyle@1@XZ @ 11182 NONAME ; enum QLCDNumber::SegmentStyle QLCDNumber::segmentStyle(void) const + ?shortcutContext@QAction@@QBE?AW4ShortcutContext@Qt@@XZ @ 11183 NONAME ; enum Qt::ShortcutContext QAction::shortcutContext(void) const + ?setCharFormat@QTextCursor@@QAEXABVQTextCharFormat@@@Z @ 11184 NONAME ; void QTextCursor::setCharFormat(class QTextCharFormat const &) + ?aboutQt@QMessageBox@@SAXPAVQWidget@@ABVQString@@@Z @ 11185 NONAME ; void QMessageBox::aboutQt(class QWidget *, class QString const &) + ?parseTerm@Parser@QCss@@QAE_NPAUValue@2@@Z @ 11186 NONAME ; bool QCss::Parser::parseTerm(struct QCss::Value *) + ??0QInputContextPlugin@@QAE@PAVQObject@@@Z @ 11187 NONAME ; QInputContextPlugin::QInputContextPlugin(class QObject *) + ?invalidate@QColor@@AAEXXZ @ 11188 NONAME ; void QColor::invalidate(void) + ?toTransform@QMatrix4x4@@QBE?AVQTransform@@M@Z @ 11189 NONAME ; class QTransform QMatrix4x4::toTransform(float) const + ?mouseDoubleClickEvent@QGraphicsView@@MAEXPAVQMouseEvent@@@Z @ 11190 NONAME ; void QGraphicsView::mouseDoubleClickEvent(class QMouseEvent *) + ?tr@QCommonStyle@@SA?AVQString@@PBD0H@Z @ 11191 NONAME ; class QString QCommonStyle::tr(char const *, char const *, int) + ?qt_metacall@QPaintBufferResource@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11192 NONAME ; int QPaintBufferResource::qt_metacall(enum QMetaObject::Call, int, void * *) + ?transpose@QSizePolicy@@QAEXXZ @ 11193 NONAME ; void QSizePolicy::transpose(void) + ?paintEvent@QDockWidget@@MAEXPAVQPaintEvent@@@Z @ 11194 NONAME ; void QDockWidget::paintEvent(class QPaintEvent *) + ?setDragMode@QGraphicsView@@QAEXW4DragMode@1@@Z @ 11195 NONAME ; void QGraphicsView::setDragMode(enum QGraphicsView::DragMode) + ?setReadOnly@QFileDialog@@QAEX_N@Z @ 11196 NONAME ; void QFileDialog::setReadOnly(bool) + ?spacerItem@QSpacerItem@@UAEPAV1@XZ @ 11197 NONAME ; class QSpacerItem * QSpacerItem::spacerItem(void) + ?isDefaultUp@QMenuBar@@QBE_NXZ @ 11198 NONAME ; bool QMenuBar::isDefaultUp(void) const + ?inFont@QFontMetricsF@@QBE_NVQChar@@@Z @ 11199 NONAME ; bool QFontMetricsF::inFont(class QChar) const + ??0QMainWindow@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 11200 NONAME ; QMainWindow::QMainWindow(class QWidget *, class QFlags) + ?staticMetaObject@QTreeWidget@@2UQMetaObject@@B @ 11201 NONAME ; struct QMetaObject const QTreeWidget::staticMetaObject + ?buttonSymbols@QAbstractSpinBox@@QBE?AW4ButtonSymbols@1@XZ @ 11202 NONAME ; enum QAbstractSpinBox::ButtonSymbols QAbstractSpinBox::buttonSymbols(void) const + ?highlighted@QTextBrowser@@IAEXABVQUrl@@@Z @ 11203 NONAME ; void QTextBrowser::highlighted(class QUrl const &) + ?update@QGraphicsItem@@QAEXABVQRectF@@@Z @ 11204 NONAME ; void QGraphicsItem::update(class QRectF const &) + ?colorSelected@QColorDialog@@IAEXABVQColor@@@Z @ 11205 NONAME ; void QColorDialog::colorSelected(class QColor const &) + ?d_func@QGraphicsSceneMoveEvent@@ABEPBVQGraphicsSceneMoveEventPrivate@@XZ @ 11206 NONAME ; class QGraphicsSceneMoveEventPrivate const * QGraphicsSceneMoveEvent::d_func(void) const + ?pressure@QTabletEvent@@QBEMXZ @ 11207 NONAME ; float QTabletEvent::pressure(void) const + ?rowMoved@QTableView@@IAEXHHH@Z @ 11208 NONAME ; void QTableView::rowMoved(int, int, int) + ?metaObject@QGraphicsItemAnimation@@UBEPBUQMetaObject@@XZ @ 11209 NONAME ; struct QMetaObject const * QGraphicsItemAnimation::metaObject(void) const + ?setFlags@QStandardItem@@QAEXV?$QFlags@W4ItemFlag@Qt@@@@@Z @ 11210 NONAME ; void QStandardItem::setFlags(class QFlags) + ?itemWidget@QListWidget@@QBEPAVQWidget@@PAVQListWidgetItem@@@Z @ 11211 NONAME ; class QWidget * QListWidget::itemWidget(class QListWidgetItem *) const + ?parsePage@Parser@QCss@@QAE_NPAUPageRule@2@@Z @ 11212 NONAME ; bool QCss::Parser::parsePage(struct QCss::PageRule *) + ?setFixedSize@QWidget@@QAEXABVQSize@@@Z @ 11213 NONAME ; void QWidget::setFixedSize(class QSize const &) + ?trUtf8@QWizard@@SA?AVQString@@PBD0@Z @ 11214 NONAME ; class QString QWizard::trUtf8(char const *, char const *) + ?staticMetaObject@QHBoxLayout@@2UQMetaObject@@B @ 11215 NONAME ; struct QMetaObject const QHBoxLayout::staticMetaObject + ?drawLines@QPaintEngine@@UAEXPBVQLineF@@H@Z @ 11216 NONAME ; void QPaintEngine::drawLines(class QLineF const *, int) + ?mouseMoveEvent@QMenuBar@@MAEXPAVQMouseEvent@@@Z @ 11217 NONAME ; void QMenuBar::mouseMoveEvent(class QMouseEvent *) + ??4QTableWidgetItem@@QAEAAV0@ABV0@@Z @ 11218 NONAME ; class QTableWidgetItem & QTableWidgetItem::operator=(class QTableWidgetItem const &) + ?grabMouseEvent@QGraphicsProxyWidget@@MAEXPAVQEvent@@@Z @ 11219 NONAME ; void QGraphicsProxyWidget::grabMouseEvent(class QEvent *) + ?canPaste@QTextControl@@QBE_NXZ @ 11220 NONAME ; bool QTextControl::canPaste(void) const + ??8QBrush@@QBE_NABV0@@Z @ 11221 NONAME ; bool QBrush::operator==(class QBrush const &) const + ?flags@QTreeWidgetItem@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@XZ @ 11222 NONAME ; class QFlags QTreeWidgetItem::flags(void) const + ?pt1@QBezier@@QBE?AVQPointF@@XZ @ 11223 NONAME ; class QPointF QBezier::pt1(void) const + ??0QAbstractSlider@@QAE@PAVQWidget@@@Z @ 11224 NONAME ; QAbstractSlider::QAbstractSlider(class QWidget *) + ?setIconPixmap@QMessageBox@@QAEXABVQPixmap@@@Z @ 11225 NONAME ; void QMessageBox::setIconPixmap(class QPixmap const &) + ?extra@QGraphicsItemPrivate@@QBE?AVQVariant@@W4Extra@1@@Z @ 11226 NONAME ; class QVariant QGraphicsItemPrivate::extra(enum QGraphicsItemPrivate::Extra) const + ?setDashPattern@QDashStroker@@QAEXABV?$QVector@M@@@Z @ 11227 NONAME ; void QDashStroker::setDashPattern(class QVector const &) + ?mousePressEvent@QAbstractScrollArea@@MAEXPAVQMouseEvent@@@Z @ 11228 NONAME ; void QAbstractScrollArea::mousePressEvent(class QMouseEvent *) + ?paint@QGraphicsPathItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 11229 NONAME ; void QGraphicsPathItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?valid@QImage@@QBE_NABVQPoint@@@Z @ 11230 NONAME ; bool QImage::valid(class QPoint const &) const + ?matrixEnabled@QPainter@@QBE_NXZ @ 11231 NONAME ; bool QPainter::matrixEnabled(void) const + ?tickPosition@QSlider@@QBE?AW4TickPosition@1@XZ @ 11232 NONAME ; enum QSlider::TickPosition QSlider::tickPosition(void) const + ?tabToolTip@QTabWidget@@QBE?AVQString@@H@Z @ 11233 NONAME ; class QString QTabWidget::tabToolTip(int) const + ?saveGeometry@QWidget@@QBE?AVQByteArray@@XZ @ 11234 NONAME ; class QByteArray QWidget::saveGeometry(void) const + ?mapRectToParent@QGraphicsItem@@QBE?AVQRectF@@MMMM@Z @ 11235 NONAME ; class QRectF QGraphicsItem::mapRectToParent(float, float, float, float) const + ?staticMetaObject@QGraphicsColorizeEffect@@2UQMetaObject@@B @ 11236 NONAME ; struct QMetaObject const QGraphicsColorizeEffect::staticMetaObject + ?actionEvent@QMenu@@MAEXPAVQActionEvent@@@Z @ 11237 NONAME ; void QMenu::actionEvent(class QActionEvent *) + ?testMedium@Parser@QCss@@QAE_NXZ @ 11238 NONAME ; bool QCss::Parser::testMedium(void) + ?strokeWidth@QStroker@@QBEMXZ @ 11239 NONAME ; float QStroker::strokeWidth(void) const + ?setSingleStep@QDoubleSpinBox@@QAEXN@Z @ 11240 NONAME ; void QDoubleSpinBox::setSingleStep(double) + ?hasFrame@QComboBox@@QBE_NXZ @ 11241 NONAME ; bool QComboBox::hasFrame(void) const + ?qt_metacall@QGraphicsSystemPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11242 NONAME ; int QGraphicsSystemPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tile@QWorkspace@@QAEXXZ @ 11243 NONAME ; void QWorkspace::tile(void) + ?paint@QGraphicsSimpleTextItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 11244 NONAME ; void QGraphicsSimpleTextItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?setMiterLimit@QPen@@QAEXM@Z @ 11245 NONAME ; void QPen::setMiterLimit(float) + ?lastPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 11246 NONAME ; class QPointF QTouchEvent::TouchPoint::lastPos(void) const + ?emitAboutToDestroy@QPaintBufferSignalProxy@@QAEXPBVQPaintBufferPrivate@@@Z @ 11247 NONAME ; void QPaintBufferSignalProxy::emitAboutToDestroy(class QPaintBufferPrivate const *) + ?unpolish@QS60Style@@UAEXPAVQApplication@@@Z @ 11248 NONAME ; void QS60Style::unpolish(class QApplication *) + ?d_func@QToolBar@@ABEPBVQToolBarPrivate@@XZ @ 11249 NONAME ; class QToolBarPrivate const * QToolBar::d_func(void) const + ?addMenu@QMenu@@QAEPAV1@ABVQString@@@Z @ 11250 NONAME ; class QMenu * QMenu::addMenu(class QString const &) + ??0QStyledItemDelegate@@QAE@PAVQObject@@@Z @ 11251 NONAME ; QStyledItemDelegate::QStyledItemDelegate(class QObject *) + ?d_func@QPainterPathStroker@@ABEPBVQPainterPathStrokerPrivate@@XZ @ 11252 NONAME ; class QPainterPathStrokerPrivate const * QPainterPathStroker::d_func(void) const + ?setPos@TouchPoint@QTouchEvent@@QAEXABVQPointF@@@Z @ 11253 NONAME ; void QTouchEvent::TouchPoint::setPos(class QPointF const &) + ?letterSpacingType@QFont@@QBE?AW4SpacingType@1@XZ @ 11254 NONAME ; enum QFont::SpacingType QFont::letterSpacingType(void) const + ?tr@QComboBox@@SA?AVQString@@PBD0@Z @ 11255 NONAME ; class QString QComboBox::tr(char const *, char const *) + ?tr@QColorDialog@@SA?AVQString@@PBD0H@Z @ 11256 NONAME ; class QString QColorDialog::tr(char const *, char const *, int) + ?staticMetaObject@QProxyModel@@2UQMetaObject@@B @ 11257 NONAME ; struct QMetaObject const QProxyModel::staticMetaObject + ?isNativeMenuBar@QMenuBar@@QBE_NXZ @ 11258 NONAME ; bool QMenuBar::isNativeMenuBar(void) const + ?displayName@QInputContextFactory@@SA?AVQString@@ABV2@@Z @ 11259 NONAME ; class QString QInputContextFactory::displayName(class QString const &) + ?toReversed@QPainterPath@@QBE?AV1@XZ @ 11260 NONAME ; class QPainterPath QPainterPath::toReversed(void) const + ?patternForStyle@QDashStroker@@SA?AV?$QVector@M@@W4PenStyle@Qt@@@Z @ 11261 NONAME ; class QVector QDashStroker::patternForStyle(enum Qt::PenStyle) + ?indexesMoved@QListView@@IAEXABV?$QList@VQModelIndex@@@@@Z @ 11262 NONAME ; void QListView::indexesMoved(class QList const &) + ?layoutSpacingImplementation@QStyle@@IBEHW4ControlType@QSizePolicy@@0W4Orientation@Qt@@PBVQStyleOption@@PBVQWidget@@@Z @ 11263 NONAME ; int QStyle::layoutSpacingImplementation(enum QSizePolicy::ControlType, enum QSizePolicy::ControlType, enum Qt::Orientation, class QStyleOption const *, class QWidget const *) const + ?event@QDialog@@MAE_NPAVQEvent@@@Z @ 11264 NONAME ; bool QDialog::event(class QEvent *) + ?insertRow@QStandardItemModel@@QAEXHABV?$QList@PAVQStandardItem@@@@@Z @ 11265 NONAME ; void QStandardItemModel::insertRow(int, class QList const &) + ?trUtf8@QCalendarWidget@@SA?AVQString@@PBD0H@Z @ 11266 NONAME ; class QString QCalendarWidget::trUtf8(char const *, char const *, int) + ?translated@QRegion@@QBE?AV1@ABVQPoint@@@Z @ 11267 NONAME ; class QRegion QRegion::translated(class QPoint const &) const + ?setDynamicSortFilter@QSortFilterProxyModel@@QAEX_N@Z @ 11268 NONAME ; void QSortFilterProxyModel::setDynamicSortFilter(bool) + ?rehighlightBlock@QSyntaxHighlighter@@QAEXABVQTextBlock@@@Z @ 11269 NONAME ; void QSyntaxHighlighter::rehighlightBlock(class QTextBlock const &) + ??1QStyleOptionFrameV2@@QAE@XZ @ 11270 NONAME ; QStyleOptionFrameV2::~QStyleOptionFrameV2(void) + ?toPoint@QVector2D@@QBE?AVQPoint@@XZ @ 11271 NONAME ; class QPoint QVector2D::toPoint(void) const + ?setFormat@QSyntaxHighlighter@@IAEXHHABVQTextCharFormat@@@Z @ 11272 NONAME ; void QSyntaxHighlighter::setFormat(int, int, class QTextCharFormat const &) + ?update@QGraphicsTransform@@IAEXXZ @ 11273 NONAME ; void QGraphicsTransform::update(void) + ?setRotation@QGraphicsItem@@QAEXM@Z @ 11274 NONAME ; void QGraphicsItem::setRotation(float) + ?type@QTransform@@QBE?AW4TransformationType@1@XZ @ 11275 NONAME ; enum QTransform::TransformationType QTransform::type(void) const + ??1QInputMethodEvent@@UAE@XZ @ 11276 NONAME ; QInputMethodEvent::~QInputMethodEvent(void) + ?errorSymbol@Parser@QCss@@QAE?AUSymbol@2@XZ @ 11277 NONAME ; struct QCss::Symbol QCss::Parser::errorSymbol(void) + ??4QTextFormat@@QAEAAV0@ABV0@@Z @ 11278 NONAME ; class QTextFormat & QTextFormat::operator=(class QTextFormat const &) + ?addItem@QListWidget@@QAEXABVQString@@@Z @ 11279 NONAME ; void QListWidget::addItem(class QString const &) + ?isVisible@QActionGroup@@QBE_NXZ @ 11280 NONAME ; bool QActionGroup::isVisible(void) const + ?remove@QPaintBufferResource@@QAEXPBVQPaintBufferPrivate@@@Z @ 11281 NONAME ; void QPaintBufferResource::remove(class QPaintBufferPrivate const *) + ?copy@QImage@@QBE?AV1@HHHH@Z @ 11282 NONAME ; class QImage QImage::copy(int, int, int, int) const + ?proposedAction@QGraphicsSceneDragDropEvent@@QBE?AW4DropAction@Qt@@XZ @ 11283 NONAME ; enum Qt::DropAction QGraphicsSceneDragDropEvent::proposedAction(void) const + ?descent@QTextItem@@QBEMXZ @ 11284 NONAME ; float QTextItem::descent(void) const + ?event@QSizeGrip@@MAE_NPAVQEvent@@@Z @ 11285 NONAME ; bool QSizeGrip::event(class QEvent *) + ?subWindowList@QMdiArea@@QBE?AV?$QList@PAVQMdiSubWindow@@@@W4WindowOrder@1@@Z @ 11286 NONAME ; class QList QMdiArea::subWindowList(enum QMdiArea::WindowOrder) const + ?qt_metacast@QGraphicsEffectSource@@UAEPAXPBD@Z @ 11287 NONAME ; void * QGraphicsEffectSource::qt_metacast(char const *) + ?trUtf8@QGraphicsSystemPlugin@@SA?AVQString@@PBD0@Z @ 11288 NONAME ; class QString QGraphicsSystemPlugin::trUtf8(char const *, char const *) + ?cursorPositionChanged@QTextDocument@@IAEXABVQTextCursor@@@Z @ 11289 NONAME ; void QTextDocument::cursorPositionChanged(class QTextCursor const &) + ?supportsExtension@QGraphicsPathItem@@MBE_NW4Extension@QGraphicsItem@@@Z @ 11290 NONAME ; bool QGraphicsPathItem::supportsExtension(enum QGraphicsItem::Extension) const + ?addRegion@QPainterPath@@QAEXABVQRegion@@@Z @ 11291 NONAME ; void QPainterPath::addRegion(class QRegion const &) + ?setColor@QPalette@@QAEXW4ColorGroup@1@W4ColorRole@1@ABVQColor@@@Z @ 11292 NONAME ; void QPalette::setColor(enum QPalette::ColorGroup, enum QPalette::ColorRole, class QColor const &) + ??_EQGraphicsLayoutItem@@UAE@I@Z @ 11293 NONAME ; QGraphicsLayoutItem::~QGraphicsLayoutItem(unsigned int) + ?setHeaderTextFormat@QCalendarWidget@@QAEXABVQTextCharFormat@@@Z @ 11294 NONAME ; void QCalendarWidget::setHeaderTextFormat(class QTextCharFormat const &) + ?d_func@QAbstractButton@@AAEPAVQAbstractButtonPrivate@@XZ @ 11295 NONAME ; class QAbstractButtonPrivate * QAbstractButton::d_func(void) + ?height@QTextInlineObject@@QBEMXZ @ 11296 NONAME ; float QTextInlineObject::height(void) const + ?drawBackground@QGraphicsView@@MAEXPAVQPainter@@ABVQRectF@@@Z @ 11297 NONAME ; void QGraphicsView::drawBackground(class QPainter *, class QRectF const &) + ?extension@QGraphicsRectItem@@MBE?AVQVariant@@ABV2@@Z @ 11298 NONAME ; class QVariant QGraphicsRectItem::extension(class QVariant const &) const + ??5@YAAAVQDataStream@@AAV0@AAVQImage@@@Z @ 11299 NONAME ; class QDataStream & operator>>(class QDataStream &, class QImage &) + ??_EQHideEvent@@UAE@I@Z @ 11300 NONAME ; QHideEvent::~QHideEvent(unsigned int) + ?indexOfTopLevelItem@QTreeWidget@@QBEHPAVQTreeWidgetItem@@@Z @ 11301 NONAME ; int QTreeWidget::indexOfTopLevelItem(class QTreeWidgetItem *) const + ??9QTextBlock@@QBE_NABV0@@Z @ 11302 NONAME ; bool QTextBlock::operator!=(class QTextBlock const &) const + ?formatIndex@QAbstractTextDocumentLayout@@IAEHH@Z @ 11303 NONAME ; int QAbstractTextDocumentLayout::formatIndex(int) + ?setCellSpacing@QTextTableFormat@@QAEXM@Z @ 11304 NONAME ; void QTextTableFormat::setCellSpacing(float) + ?previousInFocusChain@QWidget@@QBEPAV1@XZ @ 11305 NONAME ; class QWidget * QWidget::previousInFocusChain(void) const + ?tr@QPlainTextDocumentLayout@@SA?AVQString@@PBD0@Z @ 11306 NONAME ; class QString QPlainTextDocumentLayout::tr(char const *, char const *) + ??0QFileDialog@@QAE@PAVQWidget@@ABVQString@@11@Z @ 11307 NONAME ; QFileDialog::QFileDialog(class QWidget *, class QString const &, class QString const &, class QString const &) + ??4QColor@@QAEAAV0@W4GlobalColor@Qt@@@Z @ 11308 NONAME ; class QColor & QColor::operator=(enum Qt::GlobalColor) + ?model@QItemSelectionRange@@QBEPBVQAbstractItemModel@@XZ @ 11309 NONAME ; class QAbstractItemModel const * QItemSelectionRange::model(void) const + ?toggled@QAction@@IAEX_N@Z @ 11310 NONAME ; void QAction::toggled(bool) + ?setHorizontalHeaderItem@QStandardItemModel@@QAEXHPAVQStandardItem@@@Z @ 11311 NONAME ; void QStandardItemModel::setHorizontalHeaderItem(int, class QStandardItem *) + ?drawTiledPixmap@QPainter@@QAEXABVQRectF@@ABVQPixmap@@ABVQPointF@@@Z @ 11312 NONAME ; void QPainter::drawTiledPixmap(class QRectF const &, class QPixmap const &, class QPointF const &) + ?d_func@QMainWindow@@ABEPBVQMainWindowPrivate@@XZ @ 11313 NONAME ; class QMainWindowPrivate const * QMainWindow::d_func(void) const + ?windowModality@QWidget@@QBE?AW4WindowModality@Qt@@XZ @ 11314 NONAME ; enum Qt::WindowModality QWidget::windowModality(void) const + ?d_func@QColumnView@@ABEPBVQColumnViewPrivate@@XZ @ 11315 NONAME ; class QColumnViewPrivate const * QColumnView::d_func(void) const + ?currentCharFormatChanged@QTextEdit@@IAEXABVQTextCharFormat@@@Z @ 11316 NONAME ; void QTextEdit::currentCharFormatChanged(class QTextCharFormat const &) + ?textColor@QTableWidgetItem@@QBE?AVQColor@@XZ @ 11317 NONAME ; class QColor QTableWidgetItem::textColor(void) const + ?depth@QGraphicsItemPrivate@@QBEHXZ @ 11318 NONAME ; int QGraphicsItemPrivate::depth(void) const + ??1Symbol@QCss@@QAE@XZ @ 11319 NONAME ; QCss::Symbol::~Symbol(void) + ?standardButtons@QDialogButtonBox@@QBE?AV?$QFlags@W4StandardButton@QDialogButtonBox@@@@XZ @ 11320 NONAME ; class QFlags QDialogButtonBox::standardButtons(void) const + ?trUtf8@QGraphicsTextItem@@SA?AVQString@@PBD0H@Z @ 11321 NONAME ; class QString QGraphicsTextItem::trUtf8(char const *, char const *, int) + ?paintEvent@QPlainTextEdit@@MAEXPAVQPaintEvent@@@Z @ 11322 NONAME ; void QPlainTextEdit::paintEvent(class QPaintEvent *) + ??0QGraphicsLineItem@@QAE@MMMMPAVQGraphicsItem@@PAVQGraphicsScene@@@Z @ 11323 NONAME ; QGraphicsLineItem::QGraphicsLineItem(float, float, float, float, class QGraphicsItem *, class QGraphicsScene *) + ?inPopupMode@QApplicationPrivate@@QBE_NXZ @ 11324 NONAME ; bool QApplicationPrivate::inPopupMode(void) const + ??1QButtonGroup@@UAE@XZ @ 11325 NONAME ; QButtonGroup::~QButtonGroup(void) + ?toString@QKeySequence@@QBE?AVQString@@W4SequenceFormat@1@@Z @ 11326 NONAME ; class QString QKeySequence::toString(enum QKeySequence::SequenceFormat) const + ?wheelEvent@QWorkspace@@MAEXPAVQWheelEvent@@@Z @ 11327 NONAME ; void QWorkspace::wheelEvent(class QWheelEvent *) + ?transformed@QImage@@QBE?AV1@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 11328 NONAME ; class QImage QImage::transformed(class QTransform const &, enum Qt::TransformationMode) const + ?y@QVector3D@@QBEMXZ @ 11329 NONAME ; float QVector3D::y(void) const + ?setOptions@QInputDialog@@QAEXV?$QFlags@W4InputDialogOption@QInputDialog@@@@@Z @ 11330 NONAME ; void QInputDialog::setOptions(class QFlags) + ?childItems@QGraphicsItem@@QBE?AV?$QList@PAVQGraphicsItem@@@@XZ @ 11331 NONAME ; class QList QGraphicsItem::childItems(void) const + ?isClipped@QGraphicsItem@@QBE_NXZ @ 11332 NONAME ; bool QGraphicsItem::isClipped(void) const + ?createDefaultWindowSurface@QWidgetPrivate@@QAEPAVQWindowSurface@@XZ @ 11333 NONAME ; class QWindowSurface * QWidgetPrivate::createDefaultWindowSurface(void) + ?opacityMask@QGraphicsOpacityEffect@@QBE?AVQBrush@@XZ @ 11334 NONAME ; class QBrush QGraphicsOpacityEffect::opacityMask(void) const + ?removeSelectedText@QLineControl@@AAEXXZ @ 11335 NONAME ; void QLineControl::removeSelectedText(void) + ?drawPixmap@QPainter@@QAEXABVQPoint@@ABVQPixmap@@@Z @ 11336 NONAME ; void QPainter::drawPixmap(class QPoint const &, class QPixmap const &) + ??0QStringListModel@@QAE@PAVQObject@@@Z @ 11337 NONAME ; QStringListModel::QStringListModel(class QObject *) + ??0QVector3D@@QAE@ABVQPointF@@@Z @ 11338 NONAME ; QVector3D::QVector3D(class QPointF const &) + ?selectedRanges@QTableWidget@@QBE?AV?$QList@VQTableWidgetSelectionRange@@@@XZ @ 11339 NONAME ; class QList QTableWidget::selectedRanges(void) const + ?pen@QPainter@@QBEABVQPen@@XZ @ 11340 NONAME ; class QPen const & QPainter::pen(void) const + ?staticMetaObject@QTextDocument@@2UQMetaObject@@B @ 11341 NONAME ; struct QMetaObject const QTextDocument::staticMetaObject + ?maximum@QAbstractSlider@@QBEHXZ @ 11342 NONAME ; int QAbstractSlider::maximum(void) const + ??4QFont@@QAEAAV0@ABV0@@Z @ 11343 NONAME ; class QFont & QFont::operator=(class QFont const &) + ??0QItemSelection@@QAE@XZ @ 11344 NONAME ; QItemSelection::QItemSelection(void) + ?setWindowModality@QMessageBox@@QAEXW4WindowModality@Qt@@@Z @ 11345 NONAME ; void QMessageBox::setWindowModality(enum Qt::WindowModality) + ?setYScale@QGraphicsScale@@QAEXM@Z @ 11346 NONAME ; void QGraphicsScale::setYScale(float) + ?getStaticMetaObject@QMdiArea@@SAABUQMetaObject@@XZ @ 11347 NONAME ; struct QMetaObject const & QMdiArea::getStaticMetaObject(void) + ??0QHeaderView@@IAE@AAVQHeaderViewPrivate@@W4Orientation@Qt@@PAVQWidget@@@Z @ 11348 NONAME ; QHeaderView::QHeaderView(class QHeaderViewPrivate &, enum Qt::Orientation, class QWidget *) + ?paint@QGraphicsWidget@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 11349 NONAME ; void QGraphicsWidget::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?setInvertedAppearance@QProgressBar@@QAEX_N@Z @ 11350 NONAME ; void QProgressBar::setInvertedAppearance(bool) + ?setTextIndent@QTextBlockFormat@@QAEXM@Z @ 11351 NONAME ; void QTextBlockFormat::setTextIndent(float) + ?device@QPainter@@QBEPAVQPaintDevice@@XZ @ 11352 NONAME ; class QPaintDevice * QPainter::device(void) const + ?createEditor@QItemDelegate@@UBEPAVQWidget@@PAV2@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 11353 NONAME ; class QWidget * QItemDelegate::createEditor(class QWidget *, class QStyleOptionViewItem const &, class QModelIndex const &) const + ?qt_metacast@QImageIOPlugin@@UAEPAXPBD@Z @ 11354 NONAME ; void * QImageIOPlugin::qt_metacast(char const *) + ?subtracted@QPolygon@@QBE?AV1@ABV1@@Z @ 11355 NONAME ; class QPolygon QPolygon::subtracted(class QPolygon const &) const + ?setTransformationAnchor@QGraphicsView@@QAEXW4ViewportAnchor@1@@Z @ 11356 NONAME ; void QGraphicsView::setTransformationAnchor(enum QGraphicsView::ViewportAnchor) + ?stateChanged@QMovie@@IAEXW4MovieState@1@@Z @ 11357 NONAME ; void QMovie::stateChanged(enum QMovie::MovieState) + ?staticMetaObject@QWidgetAction@@2UQMetaObject@@B @ 11358 NONAME ; struct QMetaObject const QWidgetAction::staticMetaObject + ?useDesignMetrics@QTextOption@@QBE_NXZ @ 11359 NONAME ; bool QTextOption::useDesignMetrics(void) const + ?d_func@QSplitterHandle@@ABEPBVQSplitterHandlePrivate@@XZ @ 11360 NONAME ; class QSplitterHandlePrivate const * QSplitterHandle::d_func(void) const + ??1QFileDialog@@UAE@XZ @ 11361 NONAME ; QFileDialog::~QFileDialog(void) + ?format@QTextEngine@@QBE?AVQTextCharFormat@@PBUQScriptItem@@@Z @ 11362 NONAME ; class QTextCharFormat QTextEngine::format(struct QScriptItem const *) const + ?isActive@QWidgetResizeHandler@@QBE_NXZ @ 11363 NONAME ; bool QWidgetResizeHandler::isActive(void) const + ?insertBlock@QTextCursor@@QAEXABVQTextBlockFormat@@@Z @ 11364 NONAME ; void QTextCursor::insertBlock(class QTextBlockFormat const &) + ??0QMatrix@@QAE@ABV0@@Z @ 11365 NONAME ; QMatrix::QMatrix(class QMatrix const &) + ?stationaryYPoints@QBezier@@QBEHAAM0@Z @ 11366 NONAME ; int QBezier::stationaryYPoints(float &, float &) const + ?hidePopup@QComboBox@@UAEXXZ @ 11367 NONAME ; void QComboBox::hidePopup(void) + ?indentWidth@QTextDocument@@QBEMXZ @ 11368 NONAME ; float QTextDocument::indentWidth(void) const + ?tr@QEventDispatcherS60@@SA?AVQString@@PBD0H@Z @ 11369 NONAME ; class QString QEventDispatcherS60::tr(char const *, char const *, int) + ?selectionRect@QTextControl@@QBE?AVQRectF@@XZ @ 11370 NONAME ; class QRectF QTextControl::selectionRect(void) const + ?setAxis@QGraphicsRotation@@QAEXABVQVector3D@@@Z @ 11371 NONAME ; void QGraphicsRotation::setAxis(class QVector3D const &) + ?closePersistentEditor@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 11372 NONAME ; void QTreeWidget::closePersistentEditor(class QTreeWidgetItem *, int) + ?filterRegExp@QSortFilterProxyModel@@QBE?AVQRegExp@@XZ @ 11373 NONAME ; class QRegExp QSortFilterProxyModel::filterRegExp(void) const + ?metaObject@QTabWidget@@UBEPBUQMetaObject@@XZ @ 11374 NONAME ; struct QMetaObject const * QTabWidget::metaObject(void) const + ??1QSymbianEvent@@QAE@XZ @ 11375 NONAME ; QSymbianEvent::~QSymbianEvent(void) + ?preeditAreaText@QLineControl@@QBE?AVQString@@XZ @ 11376 NONAME ; class QString QLineControl::preeditAreaText(void) const + ?swapSections@QHeaderView@@QAEXHH@Z @ 11377 NONAME ; void QHeaderView::swapSections(int, int) + ??8QImageTextKeyLang@@QBE_NABV0@@Z @ 11378 NONAME ; bool QImageTextKeyLang::operator==(class QImageTextKeyLang const &) const + ?qt_metacast@QTextObject@@UAEPAXPBD@Z @ 11379 NONAME ; void * QTextObject::qt_metacast(char const *) + ??0QCommandLinkButton@@QAE@ABVQString@@PAVQWidget@@@Z @ 11380 NONAME ; QCommandLinkButton::QCommandLinkButton(class QString const &, class QWidget *) + ?itemData@QStandardItemModel@@UBE?AV?$QMap@HVQVariant@@@@ABVQModelIndex@@@Z @ 11381 NONAME ; class QMap QStandardItemModel::itemData(class QModelIndex const &) const + ?shortcuts@QAction@@QBE?AV?$QList@VQKeySequence@@@@XZ @ 11382 NONAME ; class QList QAction::shortcuts(void) const + ?collapseItem@QTreeWidget@@QAEXPBVQTreeWidgetItem@@@Z @ 11383 NONAME ; void QTreeWidget::collapseItem(class QTreeWidgetItem const *) + ?labelForField@QFormLayout@@QBEPAVQWidget@@PAVQLayout@@@Z @ 11384 NONAME ; class QWidget * QFormLayout::labelForField(class QLayout *) const + ?getPaintContext@QPlainTextEdit@@IBE?AUPaintContext@QAbstractTextDocumentLayout@@XZ @ 11385 NONAME ; struct QAbstractTextDocumentLayout::PaintContext QPlainTextEdit::getPaintContext(void) const + ?setTotalOffset@QPanGesture@@QAEXABVQPointF@@@Z @ 11386 NONAME ; void QPanGesture::setTotalOffset(class QPointF const &) + ?tr@QProxyStyle@@SA?AVQString@@PBD0H@Z @ 11387 NONAME ; class QString QProxyStyle::tr(char const *, char const *, int) + ?mouseMoveEvent@QListView@@MAEXPAVQMouseEvent@@@Z @ 11388 NONAME ; void QListView::mouseMoveEvent(class QMouseEvent *) + ?minimumDate@QDateTimeEdit@@QBE?AVQDate@@XZ @ 11389 NONAME ; class QDate QDateTimeEdit::minimumDate(void) const + ?qt_metacast@QLabel@@UAEPAXPBD@Z @ 11390 NONAME ; void * QLabel::qt_metacast(char const *) + ?clearSelection@QGraphicsScene@@QAEXXZ @ 11391 NONAME ; void QGraphicsScene::clearSelection(void) + ?mapToScene@QGraphicsItem@@QBE?AVQPainterPath@@ABV2@@Z @ 11392 NONAME ; class QPainterPath QGraphicsItem::mapToScene(class QPainterPath const &) const + ?tr@QCommandLinkButton@@SA?AVQString@@PBD0H@Z @ 11393 NONAME ; class QString QCommandLinkButton::tr(char const *, char const *, int) + ?size@QWidget@@QBE?AVQSize@@XZ @ 11394 NONAME ; class QSize QWidget::size(void) const + ?setFilterRole@QSortFilterProxyModel@@QAEXH@Z @ 11395 NONAME ; void QSortFilterProxyModel::setFilterRole(int) + ?drawPie@QPainter@@QAEXABVQRect@@HH@Z @ 11396 NONAME ; void QPainter::drawPie(class QRect const &, int, int) + ?setWindowOpacity@QWidget@@QAEXM@Z @ 11397 NONAME ; void QWidget::setWindowOpacity(float) + ?staticMetaObject@QUndoStack@@2UQMetaObject@@B @ 11398 NONAME ; struct QMetaObject const QUndoStack::staticMetaObject + ?exec@QMenu@@SAPAVQAction@@V?$QList@PAVQAction@@@@ABVQPoint@@PAV2@@Z @ 11399 NONAME ; class QAction * QMenu::exec(class QList, class QPoint const &, class QAction *) + ?staticMetaObject@QToolBar@@2UQMetaObject@@B @ 11400 NONAME ; struct QMetaObject const QToolBar::staticMetaObject + ?setPosition@QTextLine@@QAEXABVQPointF@@@Z @ 11401 NONAME ; void QTextLine::setPosition(class QPointF const &) + ?topLevelWidget@QGraphicsItem@@QBEPAVQGraphicsWidget@@XZ @ 11402 NONAME ; class QGraphicsWidget * QGraphicsItem::topLevelWidget(void) const + ?setBlurRadius@QGraphicsBlurEffect@@QAEXH@Z @ 11403 NONAME ; void QGraphicsBlurEffect::setBlurRadius(int) + ?fromRgba@QColor@@SA?AV1@I@Z @ 11404 NONAME ; class QColor QColor::fromRgba(unsigned int) + ?isValid@QTextFormat@@QBE_NXZ @ 11405 NONAME ; bool QTextFormat::isValid(void) const + ??0QMatrix4x4@@AAE@H@Z @ 11406 NONAME ; QMatrix4x4::QMatrix4x4(int) + ??0QStandardItem@@QAE@XZ @ 11407 NONAME ; QStandardItem::QStandardItem(void) + ?setNonBreakableLines@QTextBlockFormat@@QAEX_N@Z @ 11408 NONAME ; void QTextBlockFormat::setNonBreakableLines(bool) + ?dragDropMode@QAbstractItemView@@QBE?AW4DragDropMode@1@XZ @ 11409 NONAME ; enum QAbstractItemView::DragDropMode QAbstractItemView::dragDropMode(void) const + ?d_func@QMdiArea@@ABEPBVQMdiAreaPrivate@@XZ @ 11410 NONAME ; class QMdiAreaPrivate const * QMdiArea::d_func(void) const + ?expandingDirections@QWidgetItem@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 11411 NONAME ; class QFlags QWidgetItem::expandingDirections(void) const + ?metaObject@QTableView@@UBEPBUQMetaObject@@XZ @ 11412 NONAME ; struct QMetaObject const * QTableView::metaObject(void) const + ?setDetailedText@QMessageBox@@QAEXABVQString@@@Z @ 11413 NONAME ; void QMessageBox::setDetailedText(class QString const &) + ?count@QStackedLayout@@UBEHXZ @ 11414 NONAME ; int QStackedLayout::count(void) const + ?unpolish@QStyle@@UAEXPAVQWidget@@@Z @ 11415 NONAME ; void QStyle::unpolish(class QWidget *) + ??0QStyleOptionHeader@@QAE@XZ @ 11416 NONAME ; QStyleOptionHeader::QStyleOptionHeader(void) + ?toSubpathPolygons@QPainterPath@@QBE?AV?$QList@VQPolygonF@@@@ABVQMatrix@@@Z @ 11417 NONAME ; class QList QPainterPath::toSubpathPolygons(class QMatrix const &) const + ?copy@QPixmapData@@UAEXPBV1@ABVQRect@@@Z @ 11418 NONAME ; void QPixmapData::copy(class QPixmapData const *, class QRect const &) + ?setGeometry@QGraphicsWidget@@QAEXMMMM@Z @ 11419 NONAME ; void QGraphicsWidget::setGeometry(float, float, float, float) + ?create@QStyleFactory@@SAPAVQStyle@@ABVQString@@@Z @ 11420 NONAME ; class QStyle * QStyleFactory::create(class QString const &) + ??0QCheckBox@@QAE@PAVQWidget@@@Z @ 11421 NONAME ; QCheckBox::QCheckBox(class QWidget *) + ?toggled@QGroupBox@@IAEX_N@Z @ 11422 NONAME ; void QGroupBox::toggled(bool) + ?setEnabled@QStandardItem@@QAEX_N@Z @ 11423 NONAME ; void QStandardItem::setEnabled(bool) + ??_EQDial@@UAE@I@Z @ 11424 NONAME ; QDial::~QDial(unsigned int) + ?stackUnder_sys@QWidgetPrivate@@QAEXPAVQWidget@@@Z @ 11425 NONAME ; void QWidgetPrivate::stackUnder_sys(class QWidget *) + ?logicalDpiX@QPaintDevice@@QBEHXZ @ 11426 NONAME ; int QPaintDevice::logicalDpiX(void) const + ??0QStyleOptionTabBarBase@@QAE@XZ @ 11427 NONAME ; QStyleOptionTabBarBase::QStyleOptionTabBarBase(void) + ??_EQStyleFactoryInterface@@UAE@I@Z @ 11428 NONAME ; QStyleFactoryInterface::~QStyleFactoryInterface(unsigned int) + ?isTranslating@QTransform@@QBE_NXZ @ 11429 NONAME ; bool QTransform::isTranslating(void) const + ??0QGraphicsWidget@@QAE@PAVQGraphicsItem@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 11430 NONAME ; QGraphicsWidget::QGraphicsWidget(class QGraphicsItem *, class QFlags) + ??0QPainterReplayer@@QAE@XZ @ 11431 NONAME ; QPainterReplayer::QPainterReplayer(void) + ?setGeometry@QGraphicsAnchorLayout@@UAEXABVQRectF@@@Z @ 11432 NONAME ; void QGraphicsAnchorLayout::setGeometry(class QRectF const &) + ?insert@QPixmapCache@@SA?AVKey@1@ABVQPixmap@@@Z @ 11433 NONAME ; class QPixmapCache::Key QPixmapCache::insert(class QPixmap const &) + ?intValue@QInputDialog@@QBEHXZ @ 11434 NONAME ; int QInputDialog::intValue(void) const + ?repaint@QWidget@@QAEXABVQRect@@@Z @ 11435 NONAME ; void QWidget::repaint(class QRect const &) + ?textChanged@QTextEdit@@IAEXXZ @ 11436 NONAME ; void QTextEdit::textChanged(void) + ?d_func@QListView@@ABEPBVQListViewPrivate@@XZ @ 11437 NONAME ; class QListViewPrivate const * QListView::d_func(void) const + ?format@QImageIOHandler@@QBE?AVQByteArray@@XZ @ 11438 NONAME ; class QByteArray QImageIOHandler::format(void) const + ?isCopyOf@QTextCursor@@QBE_NABV1@@Z @ 11439 NONAME ; bool QTextCursor::isCopyOf(class QTextCursor const &) const + ??0QStyleOptionComplex@@QAE@ABV0@@Z @ 11440 NONAME ; QStyleOptionComplex::QStyleOptionComplex(class QStyleOptionComplex const &) + ?d_func@QGraphicsSceneHoverEvent@@ABEPBVQGraphicsSceneHoverEventPrivate@@XZ @ 11441 NONAME ; class QGraphicsSceneHoverEventPrivate const * QGraphicsSceneHoverEvent::d_func(void) const + ?getStaticMetaObject@QPixmapColorizeFilter@@SAABUQMetaObject@@XZ @ 11442 NONAME ; struct QMetaObject const & QPixmapColorizeFilter::getStaticMetaObject(void) + ??_EQPolygonF@@QAE@I@Z @ 11443 NONAME ; QPolygonF::~QPolygonF(unsigned int) + ?horizontalScrollBar@QAbstractScrollArea@@QBEPAVQScrollBar@@XZ @ 11444 NONAME ; class QScrollBar * QAbstractScrollArea::horizontalScrollBar(void) const + ?trUtf8@QStackedLayout@@SA?AVQString@@PBD0@Z @ 11445 NONAME ; class QString QStackedLayout::trUtf8(char const *, char const *) + ?setState@QAbstractItemView@@IAEXW4State@1@@Z @ 11446 NONAME ; void QAbstractItemView::setState(enum QAbstractItemView::State) + ?indexFromItem@QListWidget@@IBE?AVQModelIndex@@PAVQListWidgetItem@@@Z @ 11447 NONAME ; class QModelIndex QListWidget::indexFromItem(class QListWidgetItem *) const + ?items@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@W4SortOrder@Qt@@@Z @ 11448 NONAME ; class QList QGraphicsScene::items(enum Qt::SortOrder) const + ?mapRect@QTransform@@QBE?AVQRectF@@ABV2@@Z @ 11449 NONAME ; class QRectF QTransform::mapRect(class QRectF const &) const + ?scrollContentsBy@QMdiArea@@MAEXHH@Z @ 11450 NONAME ; void QMdiArea::scrollContentsBy(int, int) + ?trUtf8@QAbstractButton@@SA?AVQString@@PBD0H@Z @ 11451 NONAME ; class QString QAbstractButton::trUtf8(char const *, char const *, int) + ?d_func@QCommandLinkButton@@AAEPAVQCommandLinkButtonPrivate@@XZ @ 11452 NONAME ; class QCommandLinkButtonPrivate * QCommandLinkButton::d_func(void) + ?addAction@QMenu@@QAEPAVQAction@@ABVQString@@PBVQObject@@PBDABVQKeySequence@@@Z @ 11453 NONAME ; class QAction * QMenu::addAction(class QString const &, class QObject const *, char const *, class QKeySequence const &) + ?tr@QTabWidget@@SA?AVQString@@PBD0@Z @ 11454 NONAME ; class QString QTabWidget::tr(char const *, char const *) + ?addToPolygonMixed@QBezier@@QBEXPAVQPolygonF@@@Z @ 11455 NONAME ; void QBezier::addToPolygonMixed(class QPolygonF *) const + ?command@QUndoStack@@QBEPBVQUndoCommand@@H@Z @ 11456 NONAME ; class QUndoCommand const * QUndoStack::command(int) const + ?tr@QGraphicsPixelizeEffect@@SA?AVQString@@PBD0H@Z @ 11457 NONAME ; class QString QGraphicsPixelizeEffect::tr(char const *, char const *, int) + ?data@QStandardItem@@UBE?AVQVariant@@H@Z @ 11458 NONAME ; class QVariant QStandardItem::data(int) const + ?focusItem@QGraphicsScene@@QBEPAVQGraphicsItem@@XZ @ 11459 NONAME ; class QGraphicsItem * QGraphicsScene::focusItem(void) const + ?delta@QWheelEvent@@QBEHXZ @ 11460 NONAME ; int QWheelEvent::delta(void) const + ?tr@QColumnView@@SA?AVQString@@PBD0@Z @ 11461 NONAME ; class QString QColumnView::tr(char const *, char const *) + ?tr@QAbstractTextDocumentLayout@@SA?AVQString@@PBD0@Z @ 11462 NONAME ; class QString QAbstractTextDocumentLayout::tr(char const *, char const *) + ?event@QToolBar@@MAE_NPAVQEvent@@@Z @ 11463 NONAME ; bool QToolBar::event(class QEvent *) + ?drawComplexControl@QProxyStyle@@UBEXW4ComplexControl@QStyle@@PBVQStyleOptionComplex@@PAVQPainter@@PBVQWidget@@@Z @ 11464 NONAME ; void QProxyStyle::drawComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPainter *, class QWidget const *) const + ?index@QStandardItemModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 11465 NONAME ; class QModelIndex QStandardItemModel::index(int, int, class QModelIndex const &) const + ?cursorPositionChanged@QLineControl@@IAEXHH@Z @ 11466 NONAME ; void QLineControl::cursorPositionChanged(int, int) + ?map@QMatrix@@QBE?AVQPolygonF@@ABV2@@Z @ 11467 NONAME ; class QPolygonF QMatrix::map(class QPolygonF const &) const + ??1QDragResponseEvent@@UAE@XZ @ 11468 NONAME ; QDragResponseEvent::~QDragResponseEvent(void) + ?setFillRule@QGraphicsPolygonItem@@QAEXW4FillRule@Qt@@@Z @ 11469 NONAME ; void QGraphicsPolygonItem::setFillRule(enum Qt::FillRule) + ??0QColor@@QAE@W4GlobalColor@Qt@@@Z @ 11470 NONAME ; QColor::QColor(enum Qt::GlobalColor) + ?minimumHeightForWidth@QGridLayout@@UBEHH@Z @ 11471 NONAME ; int QGridLayout::minimumHeightForWidth(int) const + ?setOptions@QFileDialog@@QAEXV?$QFlags@W4Option@QFileDialog@@@@@Z @ 11472 NONAME ; void QFileDialog::setOptions(class QFlags) + ?mouseMoveEvent@QLabel@@MAEXPAVQMouseEvent@@@Z @ 11473 NONAME ; void QLabel::mouseMoveEvent(class QMouseEvent *) + ?setCurrentFont@QTextEdit@@QAEXABVQFont@@@Z @ 11474 NONAME ; void QTextEdit::setCurrentFont(class QFont const &) + ?setCellWidget@QTableWidget@@QAEXHHPAVQWidget@@@Z @ 11475 NONAME ; void QTableWidget::setCellWidget(int, int, class QWidget *) + ?trUtf8@QTextObject@@SA?AVQString@@PBD0@Z @ 11476 NONAME ; class QString QTextObject::trUtf8(char const *, char const *) + ?fill@QRasterPixmapData@@UAEXABVQColor@@@Z @ 11477 NONAME ; void QRasterPixmapData::fill(class QColor const &) + ?isValid@QTextListFormat@@QBE_NXZ @ 11478 NONAME ; bool QTextListFormat::isValid(void) const + ?getStaticMetaObject@QTabBar@@SAABUQMetaObject@@XZ @ 11479 NONAME ; struct QMetaObject const & QTabBar::getStaticMetaObject(void) + ?tabInserted@QTabBar@@MAEXH@Z @ 11480 NONAME ; void QTabBar::tabInserted(int) + ?isEmpty@QTextDocumentFragment@@QBE_NXZ @ 11481 NONAME ; bool QTextDocumentFragment::isEmpty(void) const + ?staticMetaObject@QFontComboBox@@2UQMetaObject@@B @ 11482 NONAME ; struct QMetaObject const QFontComboBox::staticMetaObject + ?setEditable@QStandardItem@@QAEX_N@Z @ 11483 NONAME ; void QStandardItem::setEditable(bool) + ?padding@QTextFrameFormat@@QBEMXZ @ 11484 NONAME ; float QTextFrameFormat::padding(void) const + ?activeWindow@QGraphicsScene@@QBEPAVQGraphicsWidget@@XZ @ 11485 NONAME ; class QGraphicsWidget * QGraphicsScene::activeWindow(void) const + ?rowEnd@QTextTable@@QBE?AVQTextCursor@@ABV2@@Z @ 11486 NONAME ; class QTextCursor QTextTable::rowEnd(class QTextCursor const &) const + ?staticMetaObject@QGraphicsSystemPlugin@@2UQMetaObject@@B @ 11487 NONAME ; struct QMetaObject const QGraphicsSystemPlugin::staticMetaObject + ?setSpacing@QFormLayout@@QAEXH@Z @ 11488 NONAME ; void QFormLayout::setSpacing(int) + ?pos@QTabletEvent@@QBEABVQPoint@@XZ @ 11489 NONAME ; class QPoint const & QTabletEvent::pos(void) const + ??0QGraphicsLayout@@QAE@PAVQGraphicsLayoutItem@@@Z @ 11490 NONAME ; QGraphicsLayout::QGraphicsLayout(class QGraphicsLayoutItem *) + ?setHsl@QColor@@QAEXHHHH@Z @ 11491 NONAME ; void QColor::setHsl(int, int, int, int) + ?paintEngine@QPixmap@@UBEPAVQPaintEngine@@XZ @ 11492 NONAME ; class QPaintEngine * QPixmap::paintEngine(void) const + ?viewMode@QFileDialog@@QBE?AW4ViewMode@1@XZ @ 11493 NONAME ; enum QFileDialog::ViewMode QFileDialog::viewMode(void) const + ??0QPolygon@@QAE@ABVQRect@@_N@Z @ 11494 NONAME ; QPolygon::QPolygon(class QRect const &, bool) + ?critical@QMessageBox@@SAHPAVQWidget@@ABVQString@@1111HH@Z @ 11495 NONAME ; int QMessageBox::critical(class QWidget *, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, int, int) + ??0QImage@@QAE@PBEHHHW4Format@0@@Z @ 11496 NONAME ; QImage::QImage(unsigned char const *, int, int, int, enum QImage::Format) + ??0QStyleOptionDockWidget@@QAE@ABV0@@Z @ 11497 NONAME ; QStyleOptionDockWidget::QStyleOptionDockWidget(class QStyleOptionDockWidget const &) + ?showMaximized@QWidget@@QAEXXZ @ 11498 NONAME ; void QWidget::showMaximized(void) + ?setFrame@QAbstractSpinBox@@QAEX_N@Z @ 11499 NONAME ; void QAbstractSpinBox::setFrame(bool) + ?eventFilter@QMdiArea@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 11500 NONAME ; bool QMdiArea::eventFilter(class QObject *, class QEvent *) + ?reason@QGraphicsSceneContextMenuEvent@@QBE?AW4Reason@1@XZ @ 11501 NONAME ; enum QGraphicsSceneContextMenuEvent::Reason QGraphicsSceneContextMenuEvent::reason(void) const + ?qSmartSpacing@@YAHPBVQLayout@@W4PixelMetric@QStyle@@@Z @ 11502 NONAME ; int qSmartSpacing(class QLayout const *, enum QStyle::PixelMetric) + ?clearProperty@QTextFormat@@QAEXH@Z @ 11503 NONAME ; void QTextFormat::clearProperty(int) + ?qt_metacall@QInputDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11504 NONAME ; int QInputDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ?classId@QPixmapData@@QBE?AW4ClassId@1@XZ @ 11505 NONAME ; enum QPixmapData::ClassId QPixmapData::classId(void) const + ?setStyle_helper@QWidgetPrivate@@QAEXPAVQStyle@@_N1@Z @ 11506 NONAME ; void QWidgetPrivate::setStyle_helper(class QStyle *, bool, bool) + ??0QVector2D@@QAE@XZ @ 11507 NONAME ; QVector2D::QVector2D(void) + ?about@QMessageBox@@SAXPAVQWidget@@ABVQString@@1@Z @ 11508 NONAME ; void QMessageBox::about(class QWidget *, class QString const &, class QString const &) + ?valueChanged@QProgressBar@@IAEXH@Z @ 11509 NONAME ; void QProgressBar::valueChanged(int) + ?staticMetaObject@QSplitter@@2UQMetaObject@@B @ 11510 NONAME ; struct QMetaObject const QSplitter::staticMetaObject + ?getContentsMargins@QGraphicsWidget@@UBEXPAM000@Z @ 11511 NONAME ; void QGraphicsWidget::getContentsMargins(float *, float *, float *, float *) const + ?setMaximumSize@QGraphicsLayoutItem@@QAEXMM@Z @ 11512 NONAME ; void QGraphicsLayoutItem::setMaximumSize(float, float) + ?setShortcutAutoRepeat@QWidget@@QAEXH_N@Z @ 11513 NONAME ; void QWidget::setShortcutAutoRepeat(int, bool) + ??0QStyleOptionTab@@QAE@XZ @ 11514 NONAME ; QStyleOptionTab::QStyleOptionTab(void) + ?resizeEvent@QDesktopWidget@@MAEXPAVQResizeEvent@@@Z @ 11515 NONAME ; void QDesktopWidget::resizeEvent(class QResizeEvent *) + ?textureMapForGlyph@QTextureGlyphCache@@QBE?AVQImage@@I@Z @ 11516 NONAME ; class QImage QTextureGlyphCache::textureMapForGlyph(unsigned int) const + ?shape@QGraphicsItem@@UBE?AVQPainterPath@@XZ @ 11517 NONAME ; class QPainterPath QGraphicsItem::shape(void) const + ?animate_combo@QApplicationPrivate@@2_NA @ 11518 NONAME ; bool QApplicationPrivate::animate_combo + ?metaObject@QAbstractItemView@@UBEPBUQMetaObject@@XZ @ 11519 NONAME ; struct QMetaObject const * QAbstractItemView::metaObject(void) const + ?mouseReleaseEvent@QGroupBox@@MAEXPAVQMouseEvent@@@Z @ 11520 NONAME ; void QGroupBox::mouseReleaseEvent(class QMouseEvent *) + ?setItemEditorFactory@QItemDelegate@@QAEXPAVQItemEditorFactory@@@Z @ 11521 NONAME ; void QItemDelegate::setItemEditorFactory(class QItemEditorFactory *) + ?d_func@QAbstractScrollArea@@ABEPBVQAbstractScrollAreaPrivate@@XZ @ 11522 NONAME ; class QAbstractScrollAreaPrivate const * QAbstractScrollArea::d_func(void) const + ??0QAction@@QAE@ABVQString@@PAVQObject@@@Z @ 11523 NONAME ; QAction::QAction(class QString const &, class QObject *) + ?exec@QDialog@@QAEHXZ @ 11524 NONAME ; int QDialog::exec(void) + ?qt_metacall@QTextControl@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11525 NONAME ; int QTextControl::qt_metacall(enum QMetaObject::Call, int, void * *) + ?cleanUp@QBrush@@AAEXPAUQBrushData@@@Z @ 11526 NONAME ; void QBrush::cleanUp(struct QBrushData *) + ?qt_metacast@QSizeGrip@@UAEPAXPBD@Z @ 11527 NONAME ; void * QSizeGrip::qt_metacast(char const *) + ?staticMetaObject@QAbstractSlider@@2UQMetaObject@@B @ 11528 NONAME ; struct QMetaObject const QAbstractSlider::staticMetaObject + ?dragEnterEvent@QAbstractItemView@@MAEXPAVQDragEnterEvent@@@Z @ 11529 NONAME ; void QAbstractItemView::dragEnterEvent(class QDragEnterEvent *) + ?windowFilePath@QWidget@@QBE?AVQString@@XZ @ 11530 NONAME ; class QString QWidget::windowFilePath(void) const + ?setNum@QLabel@@QAEXN@Z @ 11531 NONAME ; void QLabel::setNum(double) + ?blueF@QColor@@QBEMXZ @ 11532 NONAME ; float QColor::blueF(void) const + ?orientation@QProgressBar@@QBE?AW4Orientation@Qt@@XZ @ 11533 NONAME ; enum Qt::Orientation QProgressBar::orientation(void) const + ?linkActivated@QGraphicsTextItem@@IAEXABVQString@@@Z @ 11534 NONAME ; void QGraphicsTextItem::linkActivated(class QString const &) + ?endPaint@QWindowSurface@@UAEXABVQRegion@@@Z @ 11535 NONAME ; void QWindowSurface::endPaint(class QRegion const &) + ?addRow@QFormLayout@@QAEXABVQString@@PAVQLayout@@@Z @ 11536 NONAME ; void QFormLayout::addRow(class QString const &, class QLayout *) + ?copy@QPixmap@@QBE?AV1@HHHH@Z @ 11537 NONAME ; class QPixmap QPixmap::copy(int, int, int, int) const + ?repaint@QWidget@@QAEXXZ @ 11538 NONAME ; void QWidget::repaint(void) + ?setStyle@QApplication@@SAXPAVQStyle@@@Z @ 11539 NONAME ; void QApplication::setStyle(class QStyle *) + ?mapSelectionToSource@QSortFilterProxyModel@@UBE?AVQItemSelection@@ABV2@@Z @ 11540 NONAME ; class QItemSelection QSortFilterProxyModel::mapSelectionToSource(class QItemSelection const &) const + ?doubleClicked@QAbstractItemView@@IAEXABVQModelIndex@@@Z @ 11541 NONAME ; void QAbstractItemView::doubleClicked(class QModelIndex const &) + ?insertPlainText@QTextControl@@QAEXABVQString@@@Z @ 11542 NONAME ; void QTextControl::insertPlainText(class QString const &) + ?frameAt@QTextDocument@@QBEPAVQTextFrame@@H@Z @ 11543 NONAME ; class QTextFrame * QTextDocument::frameAt(int) const + ?keyReleaseEvent@QWidget@@MAEXPAVQKeyEvent@@@Z @ 11544 NONAME ; void QWidget::keyReleaseEvent(class QKeyEvent *) + ??0QCursor@@QAE@ABV0@@Z @ 11545 NONAME ; QCursor::QCursor(class QCursor const &) + ?keyReleaseEvent@QGraphicsScene@@MAEXPAVQKeyEvent@@@Z @ 11546 NONAME ; void QGraphicsScene::keyReleaseEvent(class QKeyEvent *) + ?tr@QCoeFepInputContext@@SA?AVQString@@PBD0@Z @ 11547 NONAME ; class QString QCoeFepInputContext::tr(char const *, char const *) + ?pos@QContextMenuEvent@@QBEABVQPoint@@XZ @ 11548 NONAME ; class QPoint const & QContextMenuEvent::pos(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQCursor@@@Z @ 11549 NONAME ; class QDataStream & operator>>(class QDataStream &, class QCursor &) + ??_EQTextObject@@UAE@I@Z @ 11550 NONAME ; QTextObject::~QTextObject(unsigned int) + ??OQKeySequence@@QBE_NABV0@@Z @ 11551 NONAME ; bool QKeySequence::operator>(class QKeySequence const &) const + ?eventTest@QKeyEventTransition@@MAE_NPAVQEvent@@@Z @ 11552 NONAME ; bool QKeyEventTransition::eventTest(class QEvent *) + ?layout@QLayoutItem@@UAEPAVQLayout@@XZ @ 11553 NONAME ; class QLayout * QLayoutItem::layout(void) + ?tr@QSizeGrip@@SA?AVQString@@PBD0H@Z @ 11554 NONAME ; class QString QSizeGrip::tr(char const *, char const *, int) + ??1QGraphicsPixmapItem@@UAE@XZ @ 11555 NONAME ; QGraphicsPixmapItem::~QGraphicsPixmapItem(void) + ?sliderPressed@QAbstractSlider@@IAEXXZ @ 11556 NONAME ; void QAbstractSlider::sliderPressed(void) + ??MQKeySequence@@QBE_NABV0@@Z @ 11557 NONAME ; bool QKeySequence::operator<(class QKeySequence const &) const + ?addItem@QGridLayout@@MAEXPAVQLayoutItem@@@Z @ 11558 NONAME ; void QGridLayout::addItem(class QLayoutItem *) + ?map@QTransform@@QBEXMMPAM0@Z @ 11559 NONAME ; void QTransform::map(float, float, float *, float *) const + ?metaObject@QItemSelectionModel@@UBEPBUQMetaObject@@XZ @ 11560 NONAME ; struct QMetaObject const * QItemSelectionModel::metaObject(void) const + ??0QGesture@@QAE@PAVQObject@@@Z @ 11561 NONAME ; QGesture::QGesture(class QObject *) + ?d_func@QFrame@@ABEPBVQFramePrivate@@XZ @ 11562 NONAME ; class QFramePrivate const * QFrame::d_func(void) const + ?map@QTransform@@QBE?AVQLineF@@ABV2@@Z @ 11563 NONAME ; class QLineF QTransform::map(class QLineF const &) const + ?addCommand@QLineControl@@AAEXABUCommand@1@@Z @ 11564 NONAME ; void QLineControl::addCommand(struct QLineControl::Command const &) + ??1QIconEngineV2@@UAE@XZ @ 11565 NONAME ; QIconEngineV2::~QIconEngineV2(void) + ?pixelType@QPixmapData@@QBE?AW4PixelType@1@XZ @ 11566 NONAME ; enum QPixmapData::PixelType QPixmapData::pixelType(void) const + ?end@QLineControl@@QAEX_N@Z @ 11567 NONAME ; void QLineControl::end(bool) + ?itemIsUntransformable@QGraphicsItemPrivate@@QBE_NXZ @ 11568 NONAME ; bool QGraphicsItemPrivate::itemIsUntransformable(void) const + ?app_font@QApplicationPrivate@@0PAVQFont@@A @ 11569 NONAME ; class QFont * QApplicationPrivate::app_font + ?removeWidget@QStackedWidget@@QAEXPAVQWidget@@@Z @ 11570 NONAME ; void QStackedWidget::removeWidget(class QWidget *) + ?heightForWidth@QMenuBar@@UBEHH@Z @ 11571 NONAME ; int QMenuBar::heightForWidth(int) const + ?isTabEnabled@QTabBar@@QBE_NH@Z @ 11572 NONAME ; bool QTabBar::isTabEnabled(int) const + ?spanAngle@QGraphicsEllipseItem@@QBEHXZ @ 11573 NONAME ; int QGraphicsEllipseItem::spanAngle(void) const + ?setDropIndicatorShown@QAbstractItemView@@QAEX_N@Z @ 11574 NONAME ; void QAbstractItemView::setDropIndicatorShown(bool) + ?paintEvent@QSlider@@MAEXPAVQPaintEvent@@@Z @ 11575 NONAME ; void QSlider::paintEvent(class QPaintEvent *) + ?keyboardInputLocale@QApplication@@SA?AVQLocale@@XZ @ 11576 NONAME ; class QLocale QApplication::keyboardInputLocale(void) + ?setHandlesChildEvents@QGraphicsItem@@QAEX_N@Z @ 11577 NONAME ; void QGraphicsItem::setHandlesChildEvents(bool) + ?d_func@QAbstractProxyModel@@AAEPAVQAbstractProxyModelPrivate@@XZ @ 11578 NONAME ; class QAbstractProxyModelPrivate * QAbstractProxyModel::d_func(void) + ??0QColor@@QAE@I@Z @ 11579 NONAME ; QColor::QColor(unsigned int) + ??ZQPainterPath@@QAEAAV0@ABV0@@Z @ 11580 NONAME ; class QPainterPath & QPainterPath::operator-=(class QPainterPath const &) + ?normalVector@QBezier@@QBE?AVQPointF@@M@Z @ 11581 NONAME ; class QPointF QBezier::normalVector(float) const + ?setDefaultFactory@QItemEditorFactory@@SAXPAV1@@Z @ 11582 NONAME ; void QItemEditorFactory::setDefaultFactory(class QItemEditorFactory *) + ??1QSlider@@UAE@XZ @ 11583 NONAME ; QSlider::~QSlider(void) + ?findItems@QTreeWidget@@QBE?AV?$QList@PAVQTreeWidgetItem@@@@ABVQString@@V?$QFlags@W4MatchFlag@Qt@@@@H@Z @ 11584 NONAME ; class QList QTreeWidget::findItems(class QString const &, class QFlags, int) const + ?isHidden@QWidget@@QBE_NXZ @ 11585 NONAME ; bool QWidget::isHidden(void) const + ??1QStyleOptionToolBar@@QAE@XZ @ 11586 NONAME ; QStyleOptionToolBar::~QStyleOptionToolBar(void) + ?removeAction@QActionGroup@@QAEXPAVQAction@@@Z @ 11587 NONAME ; void QActionGroup::removeAction(class QAction *) + ?setHorizontalSpacing@QGraphicsAnchorLayout@@QAEXM@Z @ 11588 NONAME ; void QGraphicsAnchorLayout::setHorizontalSpacing(float) + ?screenNumber@QDesktopWidget@@QBEHABVQPoint@@@Z @ 11589 NONAME ; int QDesktopWidget::screenNumber(class QPoint const &) const + ?updateFrameStrut@QWidgetPrivate@@QAEXXZ @ 11590 NONAME ; void QWidgetPrivate::updateFrameStrut(void) + ?layoutSpacingImplementation@QProxyStyle@@IBEHW4ControlType@QSizePolicy@@0W4Orientation@Qt@@PBVQStyleOption@@PBVQWidget@@@Z @ 11591 NONAME ; int QProxyStyle::layoutSpacingImplementation(enum QSizePolicy::ControlType, enum QSizePolicy::ControlType, enum Qt::Orientation, class QStyleOption const *, class QWidget const *) const + ?setFixedWidth@QWidget@@QAEXH@Z @ 11592 NONAME ; void QWidget::setFixedWidth(int) + ?draw@QGraphicsOpacityEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 11593 NONAME ; void QGraphicsOpacityEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?setBrushOrigin@QPainter@@QAEXABVQPointF@@@Z @ 11594 NONAME ; void QPainter::setBrushOrigin(class QPointF const &) + ?detach@QPainterPath@@AAEXXZ @ 11595 NONAME ; void QPainterPath::detach(void) + ?type@QTableWidgetItem@@QBEHXZ @ 11596 NONAME ; int QTableWidgetItem::type(void) const + ?getStaticMetaObject@QFontDatabase@@SAABUQMetaObject@@XZ @ 11597 NONAME ; struct QMetaObject const & QFontDatabase::getStaticMetaObject(void) + ?translate@QTransform@@QAEAAV1@MM@Z @ 11598 NONAME ; class QTransform & QTransform::translate(float, float) + ?sliderPositionFromValue@QStyle@@SAHHHHH_N@Z @ 11599 NONAME ; int QStyle::sliderPositionFromValue(int, int, int, int, bool) + ?text@QAbstractSpinBox@@QBE?AVQString@@XZ @ 11600 NONAME ; class QString QAbstractSpinBox::text(void) const + ?setAttribute@QGraphicsWidget@@QAEXW4WidgetAttribute@Qt@@_N@Z @ 11601 NONAME ; void QGraphicsWidget::setAttribute(enum Qt::WidgetAttribute, bool) + ?setRootIndex@QTreeView@@UAEXABVQModelIndex@@@Z @ 11602 NONAME ; void QTreeView::setRootIndex(class QModelIndex const &) + ?depth@QPaintDevice@@QBEHXZ @ 11603 NONAME ; int QPaintDevice::depth(void) const + ?arcMoveTo@QPainterPath@@QAEXABVQRectF@@M@Z @ 11604 NONAME ; void QPainterPath::arcMoveTo(class QRectF const &, float) + ?isValid@QTextFragment@@QBE_NXZ @ 11605 NONAME ; bool QTextFragment::isValid(void) const + ?isShaded@QMdiSubWindow@@QBE_NXZ @ 11606 NONAME ; bool QMdiSubWindow::isShaded(void) const + ?objectFormat@QTextFormatCollection@@QBE?AVQTextFormat@@H@Z @ 11607 NONAME ; class QTextFormat QTextFormatCollection::objectFormat(int) const + ?selectedFilter@QFileDialog@@QBE?AVQString@@XZ @ 11608 NONAME ; class QString QFileDialog::selectedFilter(void) const + ?trUtf8@QShortcut@@SA?AVQString@@PBD0H@Z @ 11609 NONAME ; class QString QShortcut::trUtf8(char const *, char const *, int) + ?setIconSize@QTabWidget@@QAEXABVQSize@@@Z @ 11610 NONAME ; void QTabWidget::setIconSize(class QSize const &) + ?tr@QPaintBufferResource@@SA?AVQString@@PBD0H@Z @ 11611 NONAME ; class QString QPaintBufferResource::tr(char const *, char const *, int) + ?mapRectFromParent@QGraphicsItem@@QBE?AVQRectF@@ABV2@@Z @ 11612 NONAME ; class QRectF QGraphicsItem::mapRectFromParent(class QRectF const &) const + ??0QS60MainAppUi@@QAE@XZ @ 11613 NONAME ; QS60MainAppUi::QS60MainAppUi(void) + ??1QGraphicsSimpleTextItem@@UAE@XZ @ 11614 NONAME ; QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem(void) + ?activated@QAbstractItemView@@IAEXABVQModelIndex@@@Z @ 11615 NONAME ; void QAbstractItemView::activated(class QModelIndex const &) + ?drawPoints@QPainter@@QAEXPBVQPointF@@H@Z @ 11616 NONAME ; void QPainter::drawPoints(class QPointF const *, int) + ?font@QAction@@QBE?AVQFont@@XZ @ 11617 NONAME ; class QFont QAction::font(void) const + ?screenPos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 11618 NONAME ; class QPointF QTouchEvent::TouchPoint::screenPos(void) const + ?setCoordinateMode@QGradient@@QAEXW4CoordinateMode@1@@Z @ 11619 NONAME ; void QGradient::setCoordinateMode(enum QGradient::CoordinateMode) + ?setAutoRepeatDelay@QAbstractButton@@QAEXH@Z @ 11620 NONAME ; void QAbstractButton::setAutoRepeatDelay(int) + ?toSymbianCFbsBitmap@QPixmap@@QBEPAVCFbsBitmap@@XZ @ 11621 NONAME ; class CFbsBitmap * QPixmap::toSymbianCFbsBitmap(void) const + ?iconSize@QAbstractButton@@QBE?AVQSize@@XZ @ 11622 NONAME ; class QSize QAbstractButton::iconSize(void) const + ?setIndentation@QTreeView@@QAEXH@Z @ 11623 NONAME ; void QTreeView::setIndentation(int) + ?setExtension@QGraphicsItem@@MAEXW4Extension@1@ABVQVariant@@@Z @ 11624 NONAME ; void QGraphicsItem::setExtension(enum QGraphicsItem::Extension, class QVariant const &) + ??9QKeySequence@@QBE_NABV0@@Z @ 11625 NONAME ; bool QKeySequence::operator!=(class QKeySequence const &) const + ?type@QTreeWidgetItem@@QBEHXZ @ 11626 NONAME ; int QTreeWidgetItem::type(void) const + ?setMatrix@QGraphicsItem@@QAEXABVQMatrix@@_N@Z @ 11627 NONAME ; void QGraphicsItem::setMatrix(class QMatrix const &, bool) + ?autoCompletion@QComboBox@@QBE_NXZ @ 11628 NONAME ; bool QComboBox::autoCompletion(void) const + ?tabKeyNavigation@QAbstractItemView@@QBE_NXZ @ 11629 NONAME ; bool QAbstractItemView::tabKeyNavigation(void) const + ?metaObject@QGraphicsBlurEffect@@UBEPBUQMetaObject@@XZ @ 11630 NONAME ; struct QMetaObject const * QGraphicsBlurEffect::metaObject(void) const + ?sliderChange@QScrollBar@@MAEXW4SliderChange@QAbstractSlider@@@Z @ 11631 NONAME ; void QScrollBar::sliderChange(enum QAbstractSlider::SliderChange) + ?count@QGridLayout@@UBEHXZ @ 11632 NONAME ; int QGridLayout::count(void) const + ?highlighted@QComboBox@@IAEXH@Z @ 11633 NONAME ; void QComboBox::highlighted(int) + ?qt_metacall@QFormLayout@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11634 NONAME ; int QFormLayout::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trueMatrix@QImage@@SA?AVQMatrix@@ABV2@HH@Z @ 11635 NONAME ; class QMatrix QImage::trueMatrix(class QMatrix const &, int, int) + ??0QBrush@@QAE@ABV0@@Z @ 11636 NONAME ; QBrush::QBrush(class QBrush const &) + ?showEvent@QSizeGrip@@MAEXPAVQShowEvent@@@Z @ 11637 NONAME ; void QSizeGrip::showEvent(class QShowEvent *) + ?tr@QPinchGesture@@SA?AVQString@@PBD0H@Z @ 11638 NONAME ; class QString QPinchGesture::tr(char const *, char const *, int) + ?setTickInterval@QSlider@@QAEXH@Z @ 11639 NONAME ; void QSlider::setTickInterval(int) + ??0QIcon@@QAE@ABVQString@@@Z @ 11640 NONAME ; QIcon::QIcon(class QString const &) + ??0QStyleOptionQ3ListView@@QAE@XZ @ 11641 NONAME ; QStyleOptionQ3ListView::QStyleOptionQ3ListView(void) + ??0QProgressBar@@QAE@PAVQWidget@@@Z @ 11642 NONAME ; QProgressBar::QProgressBar(class QWidget *) + ?leftColumn@QTableWidgetSelectionRange@@QBEHXZ @ 11643 NONAME ; int QTableWidgetSelectionRange::leftColumn(void) const + ?opaqueResize@QSplitterHandle@@QBE_NXZ @ 11644 NONAME ; bool QSplitterHandle::opaqueResize(void) const + ?rejected@QDialog@@IAEXXZ @ 11645 NONAME ; void QDialog::rejected(void) + ?emSquareSize@QFontEngine@@UBE?AUQFixed@@XZ @ 11646 NONAME ; struct QFixed QFontEngine::emSquareSize(void) const + ??0QColorDialog@@QAE@ABVQColor@@PAVQWidget@@@Z @ 11647 NONAME ; QColorDialog::QColorDialog(class QColor const &, class QWidget *) + ?ensureVisible@QGraphicsItem@@QAEXMMMMHH@Z @ 11648 NONAME ; void QGraphicsItem::ensureVisible(float, float, float, float, int, int) + ?frameSize@QWidget@@QBE?AVQSize@@XZ @ 11649 NONAME ; class QSize QWidget::frameSize(void) const + ?map@QMatrix4x4@@QBE?AVQPoint@@ABV2@@Z @ 11650 NONAME ; class QPoint QMatrix4x4::map(class QPoint const &) const + ?setCurrentWidget@QStackedWidget@@QAEXPAVQWidget@@@Z @ 11651 NONAME ; void QStackedWidget::setCurrentWidget(class QWidget *) + ?setDoubleMinimum@QInputDialog@@QAEXN@Z @ 11652 NONAME ; void QInputDialog::setDoubleMinimum(double) + ?button@QMessageBox@@QBEPAVQAbstractButton@@W4StandardButton@1@@Z @ 11653 NONAME ; class QAbstractButton * QMessageBox::button(enum QMessageBox::StandardButton) const + ??0QShortcut@@QAE@ABVQKeySequence@@PAVQWidget@@PBD2W4ShortcutContext@Qt@@@Z @ 11654 NONAME ; QShortcut::QShortcut(class QKeySequence const &, class QWidget *, char const *, char const *, enum Qt::ShortcutContext) + ?isVisibleTo@QWidget@@QBE_NPAV1@@Z @ 11655 NONAME ; bool QWidget::isVisibleTo(class QWidget *) const + ?qt_metacall@QAbstractSlider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11656 NONAME ; int QAbstractSlider::qt_metacall(enum QMetaObject::Call, int, void * *) + ?ownsMode@QClipboard@@ABE_NW4Mode@1@@Z @ 11657 NONAME ; bool QClipboard::ownsMode(enum QClipboard::Mode) const + ?isReadOnly@QAbstractSpinBox@@QBE_NXZ @ 11658 NONAME ; bool QAbstractSpinBox::isReadOnly(void) const + ??0QStyleOptionDockWidget@@QAE@XZ @ 11659 NONAME ; QStyleOptionDockWidget::QStyleOptionDockWidget(void) + ?dropEvent@QListView@@MAEXPAVQDropEvent@@@Z @ 11660 NONAME ; void QListView::dropEvent(class QDropEvent *) + ?cleanupPage@QWizard@@MAEXH@Z @ 11661 NONAME ; void QWizard::cleanupPage(int) + ?dropEvent@QAbstractItemView@@MAEXPAVQDropEvent@@@Z @ 11662 NONAME ; void QAbstractItemView::dropEvent(class QDropEvent *) + ?ortho@QMatrix4x4@@QAEAAV1@ABVQRect@@@Z @ 11663 NONAME ; class QMatrix4x4 & QMatrix4x4::ortho(class QRect const &) + ?setForeground@QStandardItem@@QAEXABVQBrush@@@Z @ 11664 NONAME ; void QStandardItem::setForeground(class QBrush const &) + ?isDockNestingEnabled@QMainWindow@@QBE_NXZ @ 11665 NONAME ; bool QMainWindow::isDockNestingEnabled(void) const + ??_EQTessellator@@UAE@I@Z @ 11666 NONAME ; QTessellator::~QTessellator(unsigned int) + ??_EQPixmapFilter@@UAE@I@Z @ 11667 NONAME ; QPixmapFilter::~QPixmapFilter(unsigned int) + ?tr@QToolButton@@SA?AVQString@@PBD0H@Z @ 11668 NONAME ; class QString QToolButton::tr(char const *, char const *, int) + ?inputMethodQuery@QGraphicsView@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 11669 NONAME ; class QVariant QGraphicsView::inputMethodQuery(enum Qt::InputMethodQuery) const + ?opacityChanged@QGraphicsOpacityEffect@@IAEXM@Z @ 11670 NONAME ; void QGraphicsOpacityEffect::opacityChanged(float) + ?setProperty@QTextFormat@@QAEXHABVQVariant@@@Z @ 11671 NONAME ; void QTextFormat::setProperty(int, class QVariant const &) + ?testOption@QWizard@@QBE_NW4WizardOption@1@@Z @ 11672 NONAME ; bool QWizard::testOption(enum QWizard::WizardOption) const + ?isUnderMouse@QGraphicsItem@@QBE_NXZ @ 11673 NONAME ; bool QGraphicsItem::isUnderMouse(void) const + ?setEditFocus@QWidget@@QAEX_N@Z @ 11674 NONAME ; void QWidget::setEditFocus(bool) + ?bottomRight@QItemSelectionRange@@QBE?AVQModelIndex@@XZ @ 11675 NONAME ; class QModelIndex QItemSelectionRange::bottomRight(void) const + ??EQTreeWidgetItemIterator@@QAE?BV0@H@Z @ 11676 NONAME ; class QTreeWidgetItemIterator const QTreeWidgetItemIterator::operator++(int) + ?d_func@QPixmapFilter@@AAEPAVQPixmapFilterPrivate@@XZ @ 11677 NONAME ; class QPixmapFilterPrivate * QPixmapFilter::d_func(void) + ?allFormats@QTextDocument@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 11678 NONAME ; class QVector QTextDocument::allFormats(void) const + ?setMiterLimit@QDashStroker@@QAEXM@Z @ 11679 NONAME ; void QDashStroker::setMiterLimit(float) + ?d_func@QSplitter@@AAEPAVQSplitterPrivate@@XZ @ 11680 NONAME ; class QSplitterPrivate * QSplitter::d_func(void) + ?autoFillBackground@QWidget@@QBE_NXZ @ 11681 NONAME ; bool QWidget::autoFillBackground(void) const + ?toVector2D@QVector4D@@QBE?AVQVector2D@@XZ @ 11682 NONAME ; class QVector2D QVector4D::toVector2D(void) const + ?setPlainText@QTextDocument@@QAEXABVQString@@@Z @ 11683 NONAME ; void QTextDocument::setPlainText(class QString const &) + ?getStaticMetaObject@QSessionManager@@SAABUQMetaObject@@XZ @ 11684 NONAME ; struct QMetaObject const & QSessionManager::getStaticMetaObject(void) + ?hasExtendedInfo@QMouseEvent@@QBE_NXZ @ 11685 NONAME ; bool QMouseEvent::hasExtendedInfo(void) const + ?setGreen@QColor@@QAEXH@Z @ 11686 NONAME ; void QColor::setGreen(int) + ?scenePos@QGraphicsSceneWheelEvent@@QBE?AVQPointF@@XZ @ 11687 NONAME ; class QPointF QGraphicsSceneWheelEvent::scenePos(void) const + ?animateClick@QAbstractButton@@QAEXH@Z @ 11688 NONAME ; void QAbstractButton::animateClick(int) + ?insertColumns@QStandardItemModel@@UAE_NHHABVQModelIndex@@@Z @ 11689 NONAME ; bool QStandardItemModel::insertColumns(int, int, class QModelIndex const &) + ?intStep@QInputDialog@@QBEHXZ @ 11690 NONAME ; int QInputDialog::intStep(void) const + ?load@QImage@@QAE_NPAVQIODevice@@PBD@Z @ 11691 NONAME ; bool QImage::load(class QIODevice *, char const *) + ?addChildLayout@QLayout@@IAEXPAV1@@Z @ 11692 NONAME ; void QLayout::addChildLayout(class QLayout *) + ?numColors@QPaintDevice@@QBEHXZ @ 11693 NONAME ; int QPaintDevice::numColors(void) const + ?setTextColor@QListWidgetItem@@QAEXABVQColor@@@Z @ 11694 NONAME ; void QListWidgetItem::setTextColor(class QColor const &) + ?replacementLength@QInputMethodEvent@@QBEHXZ @ 11695 NONAME ; int QInputMethodEvent::replacementLength(void) const + ?setDecimals@QDoubleSpinBox@@QAEXH@Z @ 11696 NONAME ; void QDoubleSpinBox::setDecimals(int) + ?actionGroup@QAction@@QBEPAVQActionGroup@@XZ @ 11697 NONAME ; class QActionGroup * QAction::actionGroup(void) const + ?editorEvent@QStyledItemDelegate@@MAE_NPAVQEvent@@PAVQAbstractItemModel@@ABVQStyleOptionViewItem@@ABVQModelIndex@@@Z @ 11698 NONAME ; bool QStyledItemDelegate::editorEvent(class QEvent *, class QAbstractItemModel *, class QStyleOptionViewItem const &, class QModelIndex const &) + ?d_func@QScrollArea@@AAEPAVQScrollAreaPrivate@@XZ @ 11699 NONAME ; class QScrollAreaPrivate * QScrollArea::d_func(void) + ?minimumSize@QFormLayout@@UBE?AVQSize@@XZ @ 11700 NONAME ; class QSize QFormLayout::minimumSize(void) const + ?setAlphaChannel@QPixmapData@@UAEXABVQPixmap@@@Z @ 11701 NONAME ; void QPixmapData::setAlphaChannel(class QPixmap const &) + ??0QDirModel@@IAE@AAVQDirModelPrivate@@PAVQObject@@@Z @ 11702 NONAME ; QDirModel::QDirModel(class QDirModelPrivate &, class QObject *) + ?palette@QApplication@@SA?AVQPalette@@PBVQWidget@@@Z @ 11703 NONAME ; class QPalette QApplication::palette(class QWidget const *) + ?setAlignment@QLayout@@QAE_NPAV1@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 11704 NONAME ; bool QLayout::setAlignment(class QLayout *, class QFlags) + ?qt_metacast@QUndoGroup@@UAEPAXPBD@Z @ 11705 NONAME ; void * QUndoGroup::qt_metacast(char const *) + ?addEllipse@QPainterPath@@QAEXABVQPointF@@MM@Z @ 11706 NONAME ; void QPainterPath::addEllipse(class QPointF const &, float, float) + ?metaObject@QAction@@UBEPBUQMetaObject@@XZ @ 11707 NONAME ; struct QMetaObject const * QAction::metaObject(void) const + ?tabStopWidth@QTextEdit@@QBEHXZ @ 11708 NONAME ; int QTextEdit::tabStopWidth(void) const + ?opacityMaskChanged@QGraphicsOpacityEffect@@IAEXABVQBrush@@@Z @ 11709 NONAME ; void QGraphicsOpacityEffect::opacityMaskChanged(class QBrush const &) + ?qt_metacast@QMouseEventTransition@@UAEPAXPBD@Z @ 11710 NONAME ; void * QMouseEventTransition::qt_metacast(char const *) + ?setAcceptTouchEvents@QGraphicsItem@@QAEX_N@Z @ 11711 NONAME ; void QGraphicsItem::setAcceptTouchEvents(bool) + ??BQBitmap@@QBE?AVQVariant@@XZ @ 11712 NONAME ; QBitmap::operator class QVariant(void) const + ?setItemSelected@QListWidget@@QAEXPBVQListWidgetItem@@_N@Z @ 11713 NONAME ; void QListWidget::setItemSelected(class QListWidgetItem const *, bool) + ?indexForFormat@QTextFormatCollection@@QAEHABVQTextFormat@@@Z @ 11714 NONAME ; int QTextFormatCollection::indexForFormat(class QTextFormat const &) + ?setStartCenterPoint@QPinchGesture@@QAEXABVQPointF@@@Z @ 11715 NONAME ; void QPinchGesture::setStartCenterPoint(class QPointF const &) + ?toolButtonStyle@QMainWindow@@QBE?AW4ToolButtonStyle@Qt@@XZ @ 11716 NONAME ; enum Qt::ToolButtonStyle QMainWindow::toolButtonStyle(void) const + ??0QRegExpValidator@@QAE@PAVQObject@@@Z @ 11717 NONAME ; QRegExpValidator::QRegExpValidator(class QObject *) + ?restoreState@QFileDialog@@QAE_NABVQByteArray@@@Z @ 11718 NONAME ; bool QFileDialog::restoreState(class QByteArray const &) + ?resizeMode@QListView@@QBE?AW4ResizeMode@1@XZ @ 11719 NONAME ; enum QListView::ResizeMode QListView::resizeMode(void) const + ?dropEvent@QWidget@@MAEXPAVQDropEvent@@@Z @ 11720 NONAME ; void QWidget::dropEvent(class QDropEvent *) + ?verticalScrollBarPolicy@QAbstractScrollArea@@QBE?AW4ScrollBarPolicy@Qt@@XZ @ 11721 NONAME ; enum Qt::ScrollBarPolicy QAbstractScrollArea::verticalScrollBarPolicy(void) const + ?isTearOffMenuVisible@QMenu@@QBE_NXZ @ 11722 NONAME ; bool QMenu::isTearOffMenuVisible(void) const + ?coordinateOffset@QPaintEngine@@UBE?AVQPoint@@XZ @ 11723 NONAME ; class QPoint QPaintEngine::coordinateOffset(void) const + ?setTextColor@QTableWidgetItem@@QAEXABVQColor@@@Z @ 11724 NONAME ; void QTableWidgetItem::setTextColor(class QColor const &) + ?column@QTextTableCell@@QBEHXZ @ 11725 NONAME ; int QTextTableCell::column(void) const + ??0QLCDNumber@@QAE@PAVQWidget@@@Z @ 11726 NONAME ; QLCDNumber::QLCDNumber(class QWidget *) + ?expandingDirections@QFormLayout@@UBE?AV?$QFlags@W4Orientation@Qt@@@@XZ @ 11727 NONAME ; class QFlags QFormLayout::expandingDirections(void) const + ?setTabShape@QMainWindow@@QAEXW4TabShape@QTabWidget@@@Z @ 11728 NONAME ; void QMainWindow::setTabShape(enum QTabWidget::TabShape) + ?extension@QGraphicsPixmapItem@@MBE?AVQVariant@@ABV2@@Z @ 11729 NONAME ; class QVariant QGraphicsPixmapItem::extension(class QVariant const &) const + ??0QColormap@@AAE@XZ @ 11730 NONAME ; QColormap::QColormap(void) + ?backgroundColor@QMovie@@QBE?AVQColor@@XZ @ 11731 NONAME ; class QColor QMovie::backgroundColor(void) const + ?setCacheMode@QGraphicsView@@QAEXV?$QFlags@W4CacheModeFlag@QGraphicsView@@@@@Z @ 11732 NONAME ; void QGraphicsView::setCacheMode(class QFlags) + ?text@QTextBlock@@QBE?AVQString@@XZ @ 11733 NONAME ; class QString QTextBlock::text(void) const + ?addFile@QIconEngine@@UAEXABVQString@@ABVQSize@@W4Mode@QIcon@@W4State@5@@Z @ 11734 NONAME ; void QIconEngine::addFile(class QString const &, class QSize const &, enum QIcon::Mode, enum QIcon::State) + ?tr@QTabBar@@SA?AVQString@@PBD0@Z @ 11735 NONAME ; class QString QTabBar::tr(char const *, char const *) + ?setBottomPadding@QTextTableCellFormat@@QAEXM@Z @ 11736 NONAME ; void QTextTableCellFormat::setBottomPadding(float) + ??1QTabletEvent@@UAE@XZ @ 11737 NONAME ; QTabletEvent::~QTabletEvent(void) + ?setData@QStringListModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 11738 NONAME ; bool QStringListModel::setData(class QModelIndex const &, class QVariant const &, int) + ?setWindowIconText_helper@QWidgetPrivate@@QAEXABVQString@@@Z @ 11739 NONAME ; void QWidgetPrivate::setWindowIconText_helper(class QString const &) + ?tr@QStatusBar@@SA?AVQString@@PBD0H@Z @ 11740 NONAME ; class QString QStatusBar::tr(char const *, char const *, int) + ?createRedoAction@QUndoStack@@QBEPAVQAction@@PAVQObject@@ABVQString@@@Z @ 11741 NONAME ; class QAction * QUndoStack::createRedoAction(class QObject *, class QString const &) const + ?getTextMargins@QLineEdit@@QBEXPAH000@Z @ 11742 NONAME ; void QLineEdit::getTextMargins(int *, int *, int *, int *) const + ?index@QDirModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 11743 NONAME ; class QModelIndex QDirModel::index(int, int, class QModelIndex const &) const + ??9QSizePolicy@@QBE_NABV0@@Z @ 11744 NONAME ; bool QSizePolicy::operator!=(class QSizePolicy const &) const + ?selectAll@QTreeView@@UAEXXZ @ 11745 NONAME ; void QTreeView::selectAll(void) + ?preeditString@QInputMethodEvent@@QBEABVQString@@XZ @ 11746 NONAME ; class QString const & QInputMethodEvent::preeditString(void) const + ?trUtf8@QCommandLinkButton@@SA?AVQString@@PBD0H@Z @ 11747 NONAME ; class QString QCommandLinkButton::trUtf8(char const *, char const *, int) + ?addWidget@QStatusBar@@QAEXPAVQWidget@@H@Z @ 11748 NONAME ; void QStatusBar::addWidget(class QWidget *, int) + ?metaObject@QListView@@UBEPBUQMetaObject@@XZ @ 11749 NONAME ; struct QMetaObject const * QListView::metaObject(void) const + ?contextMenuEvent@QComboBox@@MAEXPAVQContextMenuEvent@@@Z @ 11750 NONAME ; void QComboBox::contextMenuEvent(class QContextMenuEvent *) + ?hover@QAction@@QAEXXZ @ 11751 NONAME ; void QAction::hover(void) + ?setAcceleration@QPanGesture@@QAEXM@Z @ 11752 NONAME ; void QPanGesture::setAcceleration(float) + ?decoration@QItemDelegate@@IBE?AVQPixmap@@ABVQStyleOptionViewItem@@ABVQVariant@@@Z @ 11753 NONAME ; class QPixmap QItemDelegate::decoration(class QStyleOptionViewItem const &, class QVariant const &) const + ?resizeEvent@QSplitter@@MAEXPAVQResizeEvent@@@Z @ 11754 NONAME ; void QSplitter::resizeEvent(class QResizeEvent *) + ?tr@QGraphicsTransform@@SA?AVQString@@PBD0@Z @ 11755 NONAME ; class QString QGraphicsTransform::tr(char const *, char const *) + ?addTopLevelItems@QTreeWidget@@QAEXABV?$QList@PAVQTreeWidgetItem@@@@@Z @ 11756 NONAME ; void QTreeWidget::addTopLevelItems(class QList const &) + ?mimeData@QSortFilterProxyModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 11757 NONAME ; class QMimeData * QSortFilterProxyModel::mimeData(class QList const &) const + ?map@QMatrix@@QBE?AVQLineF@@ABV2@@Z @ 11758 NONAME ; class QLineF QMatrix::map(class QLineF const &) const + ?qt_metacast@QRubberBand@@UAEPAXPBD@Z @ 11759 NONAME ; void * QRubberBand::qt_metacast(char const *) + ??1QFileIconProvider@@UAE@XZ @ 11760 NONAME ; QFileIconProvider::~QFileIconProvider(void) + ?standardIconImplementation@QCommonStyle@@IBE?AVQIcon@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 11761 NONAME ; class QIcon QCommonStyle::standardIconImplementation(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ?appendRow@QStandardItem@@QAEXABV?$QList@PAVQStandardItem@@@@@Z @ 11762 NONAME ; void QStandardItem::appendRow(class QList const &) + ?createStandardContextMenu@QPlainTextEdit@@QAEPAVQMenu@@XZ @ 11763 NONAME ; class QMenu * QPlainTextEdit::createStandardContextMenu(void) + ?resizeEvent@QStatusBar@@MAEXPAVQResizeEvent@@@Z @ 11764 NONAME ; void QStatusBar::resizeEvent(class QResizeEvent *) + ?type@QGraphicsPathItem@@UBEHXZ @ 11765 NONAME ; int QGraphicsPathItem::type(void) const + ?trUtf8@QPixmapConvolutionFilter@@SA?AVQString@@PBD0@Z @ 11766 NONAME ; class QString QPixmapConvolutionFilter::trUtf8(char const *, char const *) + ?qt_metacall@QGraphicsEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11767 NONAME ; int QGraphicsEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setFileName@QTextDocumentWriter@@QAEXABVQString@@@Z @ 11768 NONAME ; void QTextDocumentWriter::setFileName(class QString const &) + ?setToolTip@QTreeWidgetItem@@QAEXHABVQString@@@Z @ 11769 NONAME ; void QTreeWidgetItem::setToolTip(int, class QString const &) + ??0QGraphicsScene@@QAE@MMMMPAVQObject@@@Z @ 11770 NONAME ; QGraphicsScene::QGraphicsScene(float, float, float, float, class QObject *) + ?pointSizeF@QFontInfo@@QBEMXZ @ 11771 NONAME ; float QFontInfo::pointSizeF(void) const + ?resetFieldGrowthPolicy@QFormLayout@@AAEXXZ @ 11772 NONAME ; void QFormLayout::resetFieldGrowthPolicy(void) + ?fromHslF@QColor@@SA?AV1@MMMM@Z @ 11773 NONAME ; class QColor QColor::fromHslF(float, float, float, float) + ?lineWidth@QFontMetricsF@@QBEMXZ @ 11774 NONAME ; float QFontMetricsF::lineWidth(void) const + ??0QTreeWidgetItemIterator@@QAE@ABV0@@Z @ 11775 NONAME ; QTreeWidgetItemIterator::QTreeWidgetItemIterator(class QTreeWidgetItemIterator const &) + ?scale@QGraphicsView@@QAEXMM@Z @ 11776 NONAME ; void QGraphicsView::scale(float, float) + ?tabChangesFocus@QTextEdit@@QBE_NXZ @ 11777 NONAME ; bool QTextEdit::tabChangesFocus(void) const + ?setScreenPos@QGraphicsSceneHoverEvent@@QAEXABVQPoint@@@Z @ 11778 NONAME ; void QGraphicsSceneHoverEvent::setScreenPos(class QPoint const &) + ??0QStyleOptionTab@@QAE@ABV0@@Z @ 11779 NONAME ; QStyleOptionTab::QStyleOptionTab(class QStyleOptionTab const &) + ?isNull@QPixmapData@@QBE_NXZ @ 11780 NONAME ; bool QPixmapData::isNull(void) const + ?screenPos@QGraphicsSceneContextMenuEvent@@QBE?AVQPoint@@XZ @ 11781 NONAME ; class QPoint QGraphicsSceneContextMenuEvent::screenPos(void) const + ?inputMethodQuery@QGraphicsTextItem@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 11782 NONAME ; class QVariant QGraphicsTextItem::inputMethodQuery(enum Qt::InputMethodQuery) const + ?inputFormats@QPicture@@SA?AV?$QList@VQByteArray@@@@XZ @ 11783 NONAME ; class QList QPicture::inputFormats(void) + ?inverted@QTransform@@QBE?AV1@PA_N@Z @ 11784 NONAME ; class QTransform QTransform::inverted(bool *) const + ?addWindow@QWorkspace@@QAEPAVQWidget@@PAV2@V?$QFlags@W4WindowType@Qt@@@@@Z @ 11785 NONAME ; class QWidget * QWorkspace::addWindow(class QWidget *, class QFlags) + ?focusOutEvent@QPlainTextEdit@@MAEXPAVQFocusEvent@@@Z @ 11786 NONAME ; void QPlainTextEdit::focusOutEvent(class QFocusEvent *) + ??_EQItemEditorCreatorBase@@UAE@I@Z @ 11787 NONAME ; QItemEditorCreatorBase::~QItemEditorCreatorBase(unsigned int) + ?capStyleMode@QStroker@@QBE?AW4LineJoinMode@1@XZ @ 11788 NONAME ; enum QStroker::LineJoinMode QStroker::capStyleMode(void) const + ?filterEvent@QCoeFepInputContext@@UAE_NPBVQEvent@@@Z @ 11789 NONAME ; bool QCoeFepInputContext::filterEvent(class QEvent const *) + ??HQRegion@@QBE?BV0@ABV0@@Z @ 11790 NONAME ; class QRegion const QRegion::operator+(class QRegion const &) const + ?revert@QAbstractProxyModel@@UAEXXZ @ 11791 NONAME ; void QAbstractProxyModel::revert(void) + ??0QPainterState@@QAE@PBV0@@Z @ 11792 NONAME ; QPainterState::QPainterState(class QPainterState const *) + ?setGlyphCache@QFontEngine@@QAEXW4Type@QFontEngineGlyphCache@@PAV3@@Z @ 11793 NONAME ; void QFontEngine::setGlyphCache(enum QFontEngineGlyphCache::Type, class QFontEngineGlyphCache *) + ?insertChild@QTreeWidgetItem@@QAEXHPAV1@@Z @ 11794 NONAME ; void QTreeWidgetItem::insertChild(int, class QTreeWidgetItem *) + ?lineTo@QPainterPath@@QAEXMM@Z @ 11795 NONAME ; void QPainterPath::lineTo(float, float) + ??0QFontDialog@@QAE@PAVQWidget@@@Z @ 11796 NONAME ; QFontDialog::QFontDialog(class QWidget *) + ?tr@QActionGroup@@SA?AVQString@@PBD0H@Z @ 11797 NONAME ; class QString QActionGroup::tr(char const *, char const *, int) + ?event@QShortcut@@MAE_NPAVQEvent@@@Z @ 11798 NONAME ; bool QShortcut::event(class QEvent *) + ?insertColumn@QStandardItemModel@@QAE_NHABVQModelIndex@@@Z @ 11799 NONAME ; bool QStandardItemModel::insertColumn(int, class QModelIndex const &) + ?clearMessage@QStatusBar@@QAEXXZ @ 11800 NONAME ; void QStatusBar::clearMessage(void) + ?tr@QGraphicsBlurEffect@@SA?AVQString@@PBD0@Z @ 11801 NONAME ; class QString QGraphicsBlurEffect::tr(char const *, char const *) + ?tabShape@QTabWidget@@QBE?AW4TabShape@1@XZ @ 11802 NONAME ; enum QTabWidget::TabShape QTabWidget::tabShape(void) const + ?setFamily@QFont@@QAEXABVQString@@@Z @ 11803 NONAME ; void QFont::setFamily(class QString const &) + ??0QImage@@QAE@ABVQString@@PBD@Z @ 11804 NONAME ; QImage::QImage(class QString const &, char const *) + ??4QPalette@@QAEAAV0@ABV0@@Z @ 11805 NONAME ; class QPalette & QPalette::operator=(class QPalette const &) + ??0QSizePolicy@@QAE@W4Policy@0@0W4ControlType@0@@Z @ 11806 NONAME ; QSizePolicy::QSizePolicy(enum QSizePolicy::Policy, enum QSizePolicy::Policy, enum QSizePolicy::ControlType) + ??0QPlainTextDocumentLayout@@QAE@PAVQTextDocument@@@Z @ 11807 NONAME ; QPlainTextDocumentLayout::QPlainTextDocumentLayout(class QTextDocument *) + ?metaObject@QMenuBar@@UBEPBUQMetaObject@@XZ @ 11808 NONAME ; struct QMetaObject const * QMenuBar::metaObject(void) const + ?d_func@QItemDelegate@@AAEPAVQItemDelegatePrivate@@XZ @ 11809 NONAME ; class QItemDelegatePrivate * QItemDelegate::d_func(void) + ?fillRect@QPainter@@QAEXABVQRectF@@W4BrushStyle@Qt@@@Z @ 11810 NONAME ; void QPainter::fillRect(class QRectF const &, enum Qt::BrushStyle) + ?itemAt@QBoxLayout@@UBEPAVQLayoutItem@@H@Z @ 11811 NONAME ; class QLayoutItem * QBoxLayout::itemAt(int) const + ?tr@QTreeWidget@@SA?AVQString@@PBD0H@Z @ 11812 NONAME ; class QString QTreeWidget::tr(char const *, char const *, int) + ?setMode@QLCDNumber@@QAEXW4Mode@1@@Z @ 11813 NONAME ; void QLCDNumber::setMode(enum QLCDNumber::Mode) + ?shape@QGraphicsPathItem@@UBE?AVQPainterPath@@XZ @ 11814 NONAME ; class QPainterPath QGraphicsPathItem::shape(void) const + ?drawPrimitive@QS60Style@@UBEXW4PrimitiveElement@QStyle@@PBVQStyleOption@@PAVQPainter@@PBVQWidget@@@Z @ 11815 NONAME ; void QS60Style::drawPrimitive(enum QStyle::PrimitiveElement, class QStyleOption const *, class QPainter *, class QWidget const *) const + ??0QPainterPathStroker@@QAE@XZ @ 11816 NONAME ; QPainterPathStroker::QPainterPathStroker(void) + ??1QStyledItemDelegate@@UAE@XZ @ 11817 NONAME ; QStyledItemDelegate::~QStyledItemDelegate(void) + ?setStatusTip@QStandardItem@@QAEXABVQString@@@Z @ 11818 NONAME ; void QStandardItem::setStatusTip(class QString const &) + ?findBlock@QTextDocument@@QBE?AVQTextBlock@@H@Z @ 11819 NONAME ; class QTextBlock QTextDocument::findBlock(int) const + ?resolve@QFont@@QBEIXZ @ 11820 NONAME ; unsigned int QFont::resolve(void) const + ?tr@QIntValidator@@SA?AVQString@@PBD0H@Z @ 11821 NONAME ; class QString QIntValidator::tr(char const *, char const *, int) + ?setY@QQuaternion@@QAEXM@Z @ 11822 NONAME ; void QQuaternion::setY(float) + ?setWidth@QTextFrameFormat@@QAEXABVQTextLength@@@Z @ 11823 NONAME ; void QTextFrameFormat::setWidth(class QTextLength const &) + ?supportedDropActions@QSortFilterProxyModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 11824 NONAME ; class QFlags QSortFilterProxyModel::supportedDropActions(void) const + ?getStaticMetaObject@QBoxLayout@@SAABUQMetaObject@@XZ @ 11825 NONAME ; struct QMetaObject const & QBoxLayout::getStaticMetaObject(void) + ??1QColorDialog@@UAE@XZ @ 11826 NONAME ; QColorDialog::~QColorDialog(void) + ?metaObject@QGraphicsRotation@@UBEPBUQMetaObject@@XZ @ 11827 NONAME ; struct QMetaObject const * QGraphicsRotation::metaObject(void) const + ?sizeHint@QBoxLayout@@UBE?AVQSize@@XZ @ 11828 NONAME ; class QSize QBoxLayout::sizeHint(void) const + ?setCompleter@QLineEdit@@QAEXPAVQCompleter@@@Z @ 11829 NONAME ; void QLineEdit::setCompleter(class QCompleter *) + ?trUtf8@QFileSystemModel@@SA?AVQString@@PBD0@Z @ 11830 NONAME ; class QString QFileSystemModel::trUtf8(char const *, char const *) + ?d_func@QStyle@@ABEPBVQStylePrivate@@XZ @ 11831 NONAME ; class QStylePrivate const * QStyle::d_func(void) const + ?event@QPlainTextEdit@@MAE_NPAVQEvent@@@Z @ 11832 NONAME ; bool QPlainTextEdit::event(class QEvent *) + ?headerRowCount@QTextTableFormat@@QBEHXZ @ 11833 NONAME ; int QTextTableFormat::headerRowCount(void) const + ?event@QAbstractScrollArea@@MAE_NPAVQEvent@@@Z @ 11834 NONAME ; bool QAbstractScrollArea::event(class QEvent *) + ?setScenePos@QGraphicsSceneHelpEvent@@QAEXABVQPointF@@@Z @ 11835 NONAME ; void QGraphicsSceneHelpEvent::setScenePos(class QPointF const &) + ?setRowStretch@QGridLayout@@QAEXHH@Z @ 11836 NONAME ; void QGridLayout::setRowStretch(int, int) + ?d_func@QStandardItem@@AAEPAVQStandardItemPrivate@@XZ @ 11837 NONAME ; class QStandardItemPrivate * QStandardItem::d_func(void) + ?reparentChildren@QWidgetPrivate@@QAEXXZ @ 11838 NONAME ; void QWidgetPrivate::reparentChildren(void) + ?startScenePos@TouchPoint@QTouchEvent@@QBE?AVQPointF@@XZ @ 11839 NONAME ; class QPointF QTouchEvent::TouchPoint::startScenePos(void) const + ?pixmap@QIcon@@QBE?AVQPixmap@@HW4Mode@1@W4State@1@@Z @ 11840 NONAME ; class QPixmap QIcon::pixmap(int, enum QIcon::Mode, enum QIcon::State) const + ?setOrigin@QGraphicsRotation@@QAEXABVQVector3D@@@Z @ 11841 NONAME ; void QGraphicsRotation::setOrigin(class QVector3D const &) + ?length@QTextEngine@@QBEHH@Z @ 11842 NONAME ; int QTextEngine::length(int) const + ??0QTextTableCell@@AAE@PBVQTextTable@@H@Z @ 11843 NONAME ; QTextTableCell::QTextTableCell(class QTextTable const *, int) + ?showEvent@QStatusBar@@MAEXPAVQShowEvent@@@Z @ 11844 NONAME ; void QStatusBar::showEvent(class QShowEvent *) + ??4Key@QPixmapCache@@QAEAAV01@ABV01@@Z @ 11845 NONAME ; class QPixmapCache::Key & QPixmapCache::Key::operator=(class QPixmapCache::Key const &) + ?sizeHint@QTabBar@@UBE?AVQSize@@XZ @ 11846 NONAME ; class QSize QTabBar::sizeHint(void) const + ?contextMenuEvent@QAbstractSpinBox@@MAEXPAVQContextMenuEvent@@@Z @ 11847 NONAME ; void QAbstractSpinBox::contextMenuEvent(class QContextMenuEvent *) + ?mask@QPixmapData@@UBE?AVQBitmap@@XZ @ 11848 NONAME ; class QBitmap QPixmapData::mask(void) const + ??0QDateEdit@@QAE@PAVQWidget@@@Z @ 11849 NONAME ; QDateEdit::QDateEdit(class QWidget *) + ?insertToolBarBreak@QMainWindow@@QAEXPAVQToolBar@@@Z @ 11850 NONAME ; void QMainWindow::insertToolBarBreak(class QToolBar *) + ?d_func@QTextDocument@@ABEPBVQTextDocumentPrivate@@XZ @ 11851 NONAME ; class QTextDocumentPrivate const * QTextDocument::d_func(void) const + ?setBlurHint@QPixmapBlurFilter@@QAEXW4RenderHint@Qt@@@Z @ 11852 NONAME ; void QPixmapBlurFilter::setBlurHint(enum Qt::RenderHint) + ?trUtf8@QGraphicsPixelizeEffect@@SA?AVQString@@PBD0@Z @ 11853 NONAME ; class QString QGraphicsPixelizeEffect::trUtf8(char const *, char const *) + ?adjustSize@QGraphicsTextItem@@QAEXXZ @ 11854 NONAME ; void QGraphicsTextItem::adjustSize(void) + ??0QTextDocumentFragment@@QAE@PBVQTextDocument@@@Z @ 11855 NONAME ; QTextDocumentFragment::QTextDocumentFragment(class QTextDocument const *) + ?lastResortFamily@QFont@@QBE?AVQString@@XZ @ 11856 NONAME ; class QString QFont::lastResortFamily(void) const + ?setDragDropOverwriteMode@QAbstractItemView@@QAEX_N@Z @ 11857 NONAME ; void QAbstractItemView::setDragDropOverwriteMode(bool) + ??4QColor@@QAEAAV0@ABV0@@Z @ 11858 NONAME ; class QColor & QColor::operator=(class QColor const &) + ?editItem@QTreeWidget@@QAEXPAVQTreeWidgetItem@@H@Z @ 11859 NONAME ; void QTreeWidget::editItem(class QTreeWidgetItem *, int) + ?scrollContentsBy@QColumnView@@MAEXHH@Z @ 11860 NONAME ; void QColumnView::scrollContentsBy(int, int) + ?app_icon@QApplicationPrivate@@2PAVQIcon@@A @ 11861 NONAME ; class QIcon * QApplicationPrivate::app_icon + ?pos@QWidget@@QBE?AVQPoint@@XZ @ 11862 NONAME ; class QPoint QWidget::pos(void) const + ?qt_metacall@QStatusBar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11863 NONAME ; int QStatusBar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?drawPoints@QPainter@@QAEXABVQPolygon@@@Z @ 11864 NONAME ; void QPainter::drawPoints(class QPolygon const &) + ??0QWheelEvent@@QAE@ABVQPoint@@HV?$QFlags@W4MouseButton@Qt@@@@V?$QFlags@W4KeyboardModifier@Qt@@@@W4Orientation@Qt@@@Z @ 11865 NONAME ; QWheelEvent::QWheelEvent(class QPoint const &, int, class QFlags, class QFlags, enum Qt::Orientation) + ?minimumSizeHint@QProgressBar@@UBE?AVQSize@@XZ @ 11866 NONAME ; class QSize QProgressBar::minimumSizeHint(void) const + ??1QStyleOptionProgressBarV2@@QAE@XZ @ 11867 NONAME ; QStyleOptionProgressBarV2::~QStyleOptionProgressBarV2(void) + ?mid@QPalette@@QBEABVQBrush@@XZ @ 11868 NONAME ; class QBrush const & QPalette::mid(void) const + ?setCornerWidget@QMenuBar@@QAEXPAVQWidget@@W4Corner@Qt@@@Z @ 11869 NONAME ; void QMenuBar::setCornerWidget(class QWidget *, enum Qt::Corner) + ?background@QTreeWidgetItem@@QBE?AVQBrush@@H@Z @ 11870 NONAME ; class QBrush QTreeWidgetItem::background(int) const + ?getStaticMetaObject@QLabel@@SAABUQMetaObject@@XZ @ 11871 NONAME ; struct QMetaObject const & QLabel::getStaticMetaObject(void) + ?process@QPaintEngineExReplayer@@QAEXABUQPaintBufferCommand@@@Z @ 11872 NONAME ; void QPaintEngineExReplayer::process(struct QPaintBufferCommand const &) + ?trUtf8@QWizard@@SA?AVQString@@PBD0H@Z @ 11873 NONAME ; class QString QWizard::trUtf8(char const *, char const *, int) + ?mousePressEvent@QMenuBar@@MAEXPAVQMouseEvent@@@Z @ 11874 NONAME ; void QMenuBar::mousePressEvent(class QMouseEvent *) + ?resolveSymlinks@QFileSystemModel@@QBE_NXZ @ 11875 NONAME ; bool QFileSystemModel::resolveSymlinks(void) const + ?itemFromIndex@QTableWidget@@IBEPAVQTableWidgetItem@@ABVQModelIndex@@@Z @ 11876 NONAME ; class QTableWidgetItem * QTableWidget::itemFromIndex(class QModelIndex const &) const + ?commitData@QApplication@@UAEXAAVQSessionManager@@@Z @ 11877 NONAME ; void QApplication::commitData(class QSessionManager &) + ?draw@QGraphicsPixelizeEffect@@MAEXPAVQPainter@@PAVQGraphicsEffectSource@@@Z @ 11878 NONAME ; void QGraphicsPixelizeEffect::draw(class QPainter *, class QGraphicsEffectSource *) + ?updateState@QPaintEngineEx@@UAEXABVQPaintEngineState@@@Z @ 11879 NONAME ; void QPaintEngineEx::updateState(class QPaintEngineState const &) + ?qt_metacall@QTextFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11880 NONAME ; int QTextFrame::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QImageIOPlugin@@SAABUQMetaObject@@XZ @ 11881 NONAME ; struct QMetaObject const & QImageIOPlugin::getStaticMetaObject(void) + ?trUtf8@QCoeFepInputContext@@SA?AVQString@@PBD0@Z @ 11882 NONAME ; class QString QCoeFepInputContext::trUtf8(char const *, char const *) + ?autoExclusive@QAbstractButton@@QBE_NXZ @ 11883 NONAME ; bool QAbstractButton::autoExclusive(void) const + ??1QGraphicsEffectSource@@UAE@XZ @ 11884 NONAME ; QGraphicsEffectSource::~QGraphicsEffectSource(void) + ?mapRectToScene@QGraphicsItem@@QBE?AVQRectF@@MMMM@Z @ 11885 NONAME ; class QRectF QGraphicsItem::mapRectToScene(float, float, float, float) const + ??1QToolBarChangeEvent@@UAE@XZ @ 11886 NONAME ; QToolBarChangeEvent::~QToolBarChangeEvent(void) + ?strengthChanged@QGraphicsGrayscaleEffect@@IAEXM@Z @ 11887 NONAME ; void QGraphicsGrayscaleEffect::strengthChanged(float) + ?sizeHintChanged@QAbstractItemDelegate@@IAEXABVQModelIndex@@@Z @ 11888 NONAME ; void QAbstractItemDelegate::sizeHintChanged(class QModelIndex const &) + ?setModel@QColumnView@@UAEXPAVQAbstractItemModel@@@Z @ 11889 NONAME ; void QColumnView::setModel(class QAbstractItemModel *) + ?dy@QMatrix@@QBEMXZ @ 11890 NONAME ; float QMatrix::dy(void) const + ?sortRole@QStandardItemModel@@QBEHXZ @ 11891 NONAME ; int QStandardItemModel::sortRole(void) const + ?sortIndicatorOrder@QHeaderView@@QBE?AW4SortOrder@Qt@@XZ @ 11892 NONAME ; enum Qt::SortOrder QHeaderView::sortIndicatorOrder(void) const + ??0QStyleOptionViewItemV4@@IAE@H@Z @ 11893 NONAME ; QStyleOptionViewItemV4::QStyleOptionViewItemV4(int) + ?staticMetaObject@QItemSelectionModel@@2UQMetaObject@@B @ 11894 NONAME ; struct QMetaObject const QItemSelectionModel::staticMetaObject + ?focusWidget@QApplication@@SAPAVQWidget@@XZ @ 11895 NONAME ; class QWidget * QApplication::focusWidget(void) + ?setUsesScrollButtons@QTabWidget@@QAEX_N@Z @ 11896 NONAME ; void QTabWidget::setUsesScrollButtons(bool) + ?id@TouchPoint@QTouchEvent@@QBEHXZ @ 11897 NONAME ; int QTouchEvent::TouchPoint::id(void) const + ?setOldPos@QGraphicsSceneMoveEvent@@QAEXABVQPointF@@@Z @ 11898 NONAME ; void QGraphicsSceneMoveEvent::setOldPos(class QPointF const &) + ??0QStyleOptionViewItemV3@@QAE@XZ @ 11899 NONAME ; QStyleOptionViewItemV3::QStyleOptionViewItemV3(void) + ?fromSymbianRSgImage@QPixmap@@SA?AV1@PAVRSgImage@@@Z @ 11900 NONAME ; class QPixmap QPixmap::fromSymbianRSgImage(class RSgImage *) + ?m11@QMatrix@@QBEMXZ @ 11901 NONAME ; float QMatrix::m11(void) const + ?setMimeData@QGraphicsSceneDragDropEvent@@QAEXPBVQMimeData@@@Z @ 11902 NONAME ; void QGraphicsSceneDragDropEvent::setMimeData(class QMimeData const *) + ?toolTip@QStandardItem@@QBE?AVQString@@XZ @ 11903 NONAME ; class QString QStandardItem::toolTip(void) const + ?sort@QDirModel@@UAEXHW4SortOrder@Qt@@@Z @ 11904 NONAME ; void QDirModel::sort(int, enum Qt::SortOrder) + ??0QTreeWidgetItem@@QAE@PAVQTreeWidget@@H@Z @ 11905 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QTreeWidget *, int) + ?setCurrentIndex@QComboBox@@QAEXH@Z @ 11906 NONAME ; void QComboBox::setCurrentIndex(int) + ?setTextDirection@QTextOption@@QAEXW4LayoutDirection@Qt@@@Z @ 11907 NONAME ; void QTextOption::setTextDirection(enum Qt::LayoutDirection) + ?sectionText@QDateTimeEdit@@QBE?AVQString@@W4Section@1@@Z @ 11908 NONAME ; class QString QDateTimeEdit::sectionText(enum QDateTimeEdit::Section) const + ?qt_metacast@QTreeWidget@@UAEPAXPBD@Z @ 11909 NONAME ; void * QTreeWidget::qt_metacast(char const *) + ?mapRectFromItem@QGraphicsItem@@QBE?AVQRectF@@PBV1@MMMM@Z @ 11910 NONAME ; class QRectF QGraphicsItem::mapRectFromItem(class QGraphicsItem const *, float, float, float, float) const + ?hasFeature@QPaintEngine@@QBE_NV?$QFlags@W4PaintEngineFeature@QPaintEngine@@@@@Z @ 11911 NONAME ; bool QPaintEngine::hasFeature(class QFlags) const + ?trUtf8@QItemDelegate@@SA?AVQString@@PBD0@Z @ 11912 NONAME ; class QString QItemDelegate::trUtf8(char const *, char const *) + ?qt_metacall@QFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11913 NONAME ; int QFrame::qt_metacall(enum QMetaObject::Call, int, void * *) + ?submitPolicy@QDataWidgetMapper@@QBE?AW4SubmitPolicy@1@XZ @ 11914 NONAME ; enum QDataWidgetMapper::SubmitPolicy QDataWidgetMapper::submitPolicy(void) const + ??1QGraphicsSystem@@UAE@XZ @ 11915 NONAME ; QGraphicsSystem::~QGraphicsSystem(void) + ?setSceneRect@QGraphicsView@@QAEXABVQRectF@@@Z @ 11916 NONAME ; void QGraphicsView::setSceneRect(class QRectF const &) + ?setStyleProperty@QS60Style@@QAEXPBDABVQVariant@@@Z @ 11917 NONAME ; void QS60Style::setStyleProperty(char const *, class QVariant const &) + ?hasExtendedInfo@QKeyEvent@@QBE_NXZ @ 11918 NONAME ; bool QKeyEvent::hasExtendedInfo(void) const + ?pen@QGraphicsLineItem@@QBE?AVQPen@@XZ @ 11919 NONAME ; class QPen QGraphicsLineItem::pen(void) const + ?standardPixmap@QCommonStyle@@UBE?AVQPixmap@@W4StandardPixmap@QStyle@@PBVQStyleOption@@PBVQWidget@@@Z @ 11920 NONAME ; class QPixmap QCommonStyle::standardPixmap(enum QStyle::StandardPixmap, class QStyleOption const *, class QWidget const *) const + ??4QFontMetrics@@QAEAAV0@ABV0@@Z @ 11921 NONAME ; class QFontMetrics & QFontMetrics::operator=(class QFontMetrics const &) + ?pixel@QColormap@@QBEIABVQColor@@@Z @ 11922 NONAME ; unsigned int QColormap::pixel(class QColor const &) const + ?qt_metacall@QSizeGrip@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11923 NONAME ; int QSizeGrip::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QValidator@@SAABUQMetaObject@@XZ @ 11924 NONAME ; struct QMetaObject const & QValidator::getStaticMetaObject(void) + ?mapToItem@QGraphicsItem@@QBE?AVQPainterPath@@PBV1@ABV2@@Z @ 11925 NONAME ; class QPainterPath QGraphicsItem::mapToItem(class QGraphicsItem const *, class QPainterPath const &) const + ?isVirtualDesktop@QDesktopWidget@@QBE_NXZ @ 11926 NONAME ; bool QDesktopWidget::isVirtualDesktop(void) const + ?find@QWidget@@SAPAV1@PAVCCoeControl@@@Z @ 11927 NONAME ; class QWidget * QWidget::find(class CCoeControl *) + ??0QWindowStateChangeEvent@@QAE@V?$QFlags@W4WindowState@Qt@@@@_N@Z @ 11928 NONAME ; QWindowStateChangeEvent::QWindowStateChangeEvent(class QFlags, bool) + ?setResizeMode@QHeaderView@@QAEXHW4ResizeMode@1@@Z @ 11929 NONAME ; void QHeaderView::setResizeMode(int, enum QHeaderView::ResizeMode) + ?parentItem@QGraphicsItem@@QBEPAV1@XZ @ 11930 NONAME ; class QGraphicsItem * QGraphicsItem::parentItem(void) const + ?supportedDropActions@QDirModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 11931 NONAME ; class QFlags QDirModel::supportedDropActions(void) const + ?setPath@QMouseEventTransition@@QAEXABVQPainterPath@@@Z @ 11932 NONAME ; void QMouseEventTransition::setPath(class QPainterPath const &) + ?showStatusText@QAction@@QAE_NPAVQWidget@@@Z @ 11933 NONAME ; bool QAction::showStatusText(class QWidget *) + ?setAlignment@QAbstractSpinBox@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 11934 NONAME ; void QAbstractSpinBox::setAlignment(class QFlags) + ??0QPalette@@QAE@ABVQColor@@@Z @ 11935 NONAME ; QPalette::QPalette(class QColor const &) + ?icon@QMessageBox@@QBE?AW4Icon@1@XZ @ 11936 NONAME ; enum QMessageBox::Icon QMessageBox::icon(void) const + ?setRootIndex@QDataWidgetMapper@@QAEXABVQModelIndex@@@Z @ 11937 NONAME ; void QDataWidgetMapper::setRootIndex(class QModelIndex const &) + ?focusChanged@QApplication@@IAEXPAVQWidget@@0@Z @ 11938 NONAME ; void QApplication::focusChanged(class QWidget *, class QWidget *) + ?writingSystemSample@QFontDatabase@@SA?AVQString@@W4WritingSystem@1@@Z @ 11939 NONAME ; class QString QFontDatabase::writingSystemSample(enum QFontDatabase::WritingSystem) + ?staticMetaObject@QTabBar@@2UQMetaObject@@B @ 11940 NONAME ; struct QMetaObject const QTabBar::staticMetaObject + ?resizeEvent@QScrollArea@@MAEXPAVQResizeEvent@@@Z @ 11941 NONAME ; void QScrollArea::resizeEvent(class QResizeEvent *) + ??0QErrorMessage@@QAE@PAVQWidget@@@Z @ 11942 NONAME ; QErrorMessage::QErrorMessage(class QWidget *) + ?open@QFileDialog@@QAEXPAVQObject@@PBD@Z @ 11943 NONAME ; void QFileDialog::open(class QObject *, char const *) + ?d_func@QDockWidget@@ABEPBVQDockWidgetPrivate@@XZ @ 11944 NONAME ; class QDockWidgetPrivate const * QDockWidget::d_func(void) const + ?inputMethodEvent@QGraphicsScene@@MAEXPAVQInputMethodEvent@@@Z @ 11945 NONAME ; void QGraphicsScene::inputMethodEvent(class QInputMethodEvent *) + ?initStyleOption@QGraphicsItemPrivate@@QBEXPAVQStyleOptionGraphicsItem@@ABVQTransform@@ABVQRegion@@_N@Z @ 11946 NONAME ; void QGraphicsItemPrivate::initStyleOption(class QStyleOptionGraphicsItem *, class QTransform const &, class QRegion const &, bool) const + ?statusTip@QTreeWidgetItem@@QBE?AVQString@@H@Z @ 11947 NONAME ; class QString QTreeWidgetItem::statusTip(int) const + ?emitCubicTo@QStroker@@QAEXMMMMMM@Z @ 11948 NONAME ; void QStroker::emitCubicTo(float, float, float, float, float, float) + ?ignore@QDragMoveEvent@@QAEXXZ @ 11949 NONAME ; void QDragMoveEvent::ignore(void) + ?convolutionKernel@QPixmapConvolutionFilter@@ABEPBMXZ @ 11950 NONAME ; float const * QPixmapConvolutionFilter::convolutionKernel(void) const + ?d_func@QPainterPath@@ABEPAVQPainterPathData@@XZ @ 11951 NONAME ; class QPainterPathData * QPainterPath::d_func(void) const + ?startAngle@QGraphicsEllipseItem@@QBEHXZ @ 11952 NONAME ; int QGraphicsEllipseItem::startAngle(void) const + ?qGreen@@YAHI@Z @ 11953 NONAME ; int qGreen(unsigned int) + ??_EQTextEdit@@UAE@I@Z @ 11954 NONAME ; QTextEdit::~QTextEdit(unsigned int) + ?deactivateWidgetCleanup@QWidgetPrivate@@QAEXXZ @ 11955 NONAME ; void QWidgetPrivate::deactivateWidgetCleanup(void) + ?rowStart@QTextTable@@QBE?AVQTextCursor@@ABV2@@Z @ 11956 NONAME ; class QTextCursor QTextTable::rowStart(class QTextCursor const &) const + ?staticMetaObject@QPixmapBlurFilter@@2UQMetaObject@@B @ 11957 NONAME ; struct QMetaObject const QPixmapBlurFilter::staticMetaObject + ?d_func@QAction@@ABEPBVQActionPrivate@@XZ @ 11958 NONAME ; class QActionPrivate const * QAction::d_func(void) const + ?handlerForObject@QAbstractTextDocumentLayout@@QBEPAVQTextObjectInterface@@H@Z @ 11959 NONAME ; class QTextObjectInterface * QAbstractTextDocumentLayout::handlerForObject(int) const + ??0Value@QCss@@QAE@XZ @ 11960 NONAME ; QCss::Value::Value(void) + ?setCurrentSectionIndex@QDateTimeEdit@@QAEXH@Z @ 11961 NONAME ; void QDateTimeEdit::setCurrentSectionIndex(int) + ?getStaticMetaObject@QInputDialog@@SAABUQMetaObject@@XZ @ 11962 NONAME ; struct QMetaObject const & QInputDialog::getStaticMetaObject(void) + ?adjustSize@QGraphicsWidget@@QAEXXZ @ 11963 NONAME ; void QGraphicsWidget::adjustSize(void) + ?qt_metacall@QSyntaxHighlighter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11964 NONAME ; int QSyntaxHighlighter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QActionGroup@@SA?AVQString@@PBD0@Z @ 11965 NONAME ; class QString QActionGroup::trUtf8(char const *, char const *) + ?setDotsPerMeterX@QImage@@QAEXH@Z @ 11966 NONAME ; void QImage::setDotsPerMeterX(int) + ??0StyleSelector@QCss@@QAE@XZ @ 11967 NONAME ; QCss::StyleSelector::StyleSelector(void) + ?stretchFactor@QGraphicsLinearLayout@@QBEHPAVQGraphicsLayoutItem@@@Z @ 11968 NONAME ; int QGraphicsLinearLayout::stretchFactor(class QGraphicsLayoutItem *) const + ?itemAt@QGraphicsScene@@QBEPAVQGraphicsItem@@MM@Z @ 11969 NONAME ; class QGraphicsItem * QGraphicsScene::itemAt(float, float) const + ?width@QPainterPathStroker@@QBEMXZ @ 11970 NONAME ; float QPainterPathStroker::width(void) const + ?drawRoundedRect@QPainter@@QAEXABVQRectF@@MMW4SizeMode@Qt@@@Z @ 11971 NONAME ; void QPainter::drawRoundedRect(class QRectF const &, float, float, enum Qt::SizeMode) + ?unite@QRegion@@QBE?AV1@ABV1@@Z @ 11972 NONAME ; class QRegion QRegion::unite(class QRegion const &) const + ?getSfntTableData@QFontEngine@@UBE_NIPAEPAI@Z @ 11973 NONAME ; bool QFontEngine::getSfntTableData(unsigned int, unsigned char *, unsigned int *) const + ?features@QDockWidget@@QBE?AV?$QFlags@W4DockWidgetFeature@QDockWidget@@@@XZ @ 11974 NONAME ; class QFlags QDockWidget::features(void) const + ??0QStyleOptionGraphicsItem@@IAE@H@Z @ 11975 NONAME ; QStyleOptionGraphicsItem::QStyleOptionGraphicsItem(int) + ?drawPoint@QPainter@@QAEXABVQPointF@@@Z @ 11976 NONAME ; void QPainter::drawPoint(class QPointF const &) + ??6@YA?AVQDebug@@V0@PBVQEvent@@@Z @ 11977 NONAME ; class QDebug operator<<(class QDebug, class QEvent const *) + ?setFontStrikeOut@QTextCharFormat@@QAEX_N@Z @ 11978 NONAME ; void QTextCharFormat::setFontStrikeOut(bool) + ?scrollTo@QListView@@UAEXABVQModelIndex@@W4ScrollHint@QAbstractItemView@@@Z @ 11979 NONAME ; void QListView::scrollTo(class QModelIndex const &, enum QAbstractItemView::ScrollHint) + ?setBoundingRect@QPicture@@QAEXABVQRect@@@Z @ 11980 NONAME ; void QPicture::setBoundingRect(class QRect const &) + ?adjustFlags@QWidgetPrivate@@SAXAAV?$QFlags@W4WindowType@Qt@@@@PAVQWidget@@@Z @ 11981 NONAME ; void QWidgetPrivate::adjustFlags(class QFlags &, class QWidget *) + ??4QPicture@@QAEAAV0@ABV0@@Z @ 11982 NONAME ; class QPicture & QPicture::operator=(class QPicture const &) + ?initStyleOption@QToolButton@@IBEXPAVQStyleOptionToolButton@@@Z @ 11983 NONAME ; void QToolButton::initStyleOption(class QStyleOptionToolButton *) const + ?setSmallDecimalPoint@QLCDNumber@@QAEX_N@Z @ 11984 NONAME ; void QLCDNumber::setSmallDecimalPoint(bool) + ?setFinalPage@QWizardPage@@QAEX_N@Z @ 11985 NONAME ; void QWizardPage::setFinalPage(bool) + ?setHighlightSections@QHeaderView@@QAEX_N@Z @ 11986 NONAME ; void QHeaderView::setHighlightSections(bool) + ?inputMethodQuery@QComboBox@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 11987 NONAME ; class QVariant QComboBox::inputMethodQuery(enum Qt::InputMethodQuery) const + ?accepted@QLineControl@@IAEXXZ @ 11988 NONAME ; void QLineControl::accepted(void) + ?qt_metacall@QPictureFormatPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11989 NONAME ; int QPictureFormatPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setWindowIconText_sys@QWidgetPrivate@@QAEXABVQString@@@Z @ 11990 NONAME ; void QWidgetPrivate::setWindowIconText_sys(class QString const &) + ?d_func@QGraphicsSceneHoverEvent@@AAEPAVQGraphicsSceneHoverEventPrivate@@XZ @ 11991 NONAME ; class QGraphicsSceneHoverEventPrivate * QGraphicsSceneHoverEvent::d_func(void) + ?applyTo@QGraphicsScale@@UBEXPAVQMatrix4x4@@@Z @ 11992 NONAME ; void QGraphicsScale::applyTo(class QMatrix4x4 *) const + ?fontPointSize@QTextCharFormat@@QBEMXZ @ 11993 NONAME ; float QTextCharFormat::fontPointSize(void) const + ??1QMdiSubWindow@@UAE@XZ @ 11994 NONAME ; QMdiSubWindow::~QMdiSubWindow(void) + ??1QStyleOptionTab@@QAE@XZ @ 11995 NONAME ; QStyleOptionTab::~QStyleOptionTab(void) + ?fromTheme@QIcon@@SA?AV1@ABVQString@@ABV1@@Z @ 11996 NONAME ; class QIcon QIcon::fromTheme(class QString const &, class QIcon const &) + ?setPixmap@QGraphicsPixmapItem@@QAEXABVQPixmap@@@Z @ 11997 NONAME ; void QGraphicsPixmapItem::setPixmap(class QPixmap const &) + ?intersected@QItemSelectionRange@@QBE?AV1@ABV1@@Z @ 11998 NONAME ; class QItemSelectionRange QItemSelectionRange::intersected(class QItemSelectionRange const &) const + ?addStretch@QGraphicsLinearLayout@@QAEXH@Z @ 11999 NONAME ; void QGraphicsLinearLayout::addStretch(int) + ?setAccepted@QGestureEvent@@QAEXPAVQGesture@@_N@Z @ 12000 NONAME ; void QGestureEvent::setAccepted(class QGesture *, bool) + ?setLayoutDirection@QGraphicsWidget@@QAEXW4LayoutDirection@Qt@@@Z @ 12001 NONAME ; void QGraphicsWidget::setLayoutDirection(enum Qt::LayoutDirection) + ?getGlyphPositions@QFontEngine@@QAEXABUQGlyphLayout@@ABVQTransform@@V?$QFlags@W4RenderFlag@QTextItem@@@@AAV?$QVarLengthArray@I$0BAA@@@AAV?$QVarLengthArray@UQFixedPoint@@$0BAA@@@@Z @ 12002 NONAME ; void QFontEngine::getGlyphPositions(struct QGlyphLayout const &, class QTransform const &, class QFlags, class QVarLengthArray &, class QVarLengthArray &) + ??0QGraphicsAnchor@@AAE@PAVQGraphicsAnchorLayout@@@Z @ 12003 NONAME ; QGraphicsAnchor::QGraphicsAnchor(class QGraphicsAnchorLayout *) + ?textList@QImage@@QBE?AV?$QList@VQImageTextKeyLang@@@@XZ @ 12004 NONAME ; class QList QImage::textList(void) const + ?leaveEvent@QMdiSubWindow@@MAEXPAVQEvent@@@Z @ 12005 NONAME ; void QMdiSubWindow::leaveEvent(class QEvent *) + ?qt_metacast@QInputDialog@@UAEPAXPBD@Z @ 12006 NONAME ; void * QInputDialog::qt_metacast(char const *) + ?maxLength@QLineControl@@QBEHXZ @ 12007 NONAME ; int QLineControl::maxLength(void) const + ?setFocalPoint@QRadialGradient@@QAEXABVQPointF@@@Z @ 12008 NONAME ; void QRadialGradient::setFocalPoint(class QPointF const &) + ?setButtonLayout@QWizard@@QAEXABV?$QList@W4WizardButton@QWizard@@@@@Z @ 12009 NONAME ; void QWizard::setButtonLayout(class QList const &) + ?qt_metacast@QGraphicsRotation@@UAEPAXPBD@Z @ 12010 NONAME ; void * QGraphicsRotation::qt_metacast(char const *) + ?setSliderPosition@QAbstractSlider@@QAEXH@Z @ 12011 NONAME ; void QAbstractSlider::setSliderPosition(int) + ?setText@QImage@@QAEXPBD0ABVQString@@@Z @ 12012 NONAME ; void QImage::setText(char const *, char const *, class QString const &) + ??_EQEventDispatcherS60@@UAE@I@Z @ 12013 NONAME ; QEventDispatcherS60::~QEventDispatcherS60(unsigned int) + ??0QSwipeGesture@@QAE@PAVQObject@@@Z @ 12014 NONAME ; QSwipeGesture::QSwipeGesture(class QObject *) + ?d_func@QGraphicsEffect@@ABEPBVQGraphicsEffectPrivate@@XZ @ 12015 NONAME ; class QGraphicsEffectPrivate const * QGraphicsEffect::d_func(void) const + ?block@QTextCursor@@QBE?AVQTextBlock@@XZ @ 12016 NONAME ; class QTextBlock QTextCursor::block(void) const + ?boundingRect@QGraphicsRectItem@@UBE?AVQRectF@@XZ @ 12017 NONAME ; class QRectF QGraphicsRectItem::boundingRect(void) const + ??0QTextCharFormat@@IAE@ABVQTextFormat@@@Z @ 12018 NONAME ; QTextCharFormat::QTextCharFormat(class QTextFormat const &) + ??_EQTabletEvent@@UAE@I@Z @ 12019 NONAME ; QTabletEvent::~QTabletEvent(unsigned int) + ?getStaticMetaObject@QTextFormat@@SAABUQMetaObject@@XZ @ 12020 NONAME ; struct QMetaObject const & QTextFormat::getStaticMetaObject(void) + ?verticalHeaderItem@QStandardItemModel@@QBEPAVQStandardItem@@H@Z @ 12021 NONAME ; class QStandardItem * QStandardItemModel::verticalHeaderItem(int) const + ?isVisibleTo@QGraphicsItem@@QBE_NPBV1@@Z @ 12022 NONAME ; bool QGraphicsItem::isVisibleTo(class QGraphicsItem const *) const + ??0QMatrix4x4@@QAE@PBMHH@Z @ 12023 NONAME ; QMatrix4x4::QMatrix4x4(float const *, int, int) + ?removeColumns@QSortFilterProxyModel@@UAE_NHHABVQModelIndex@@@Z @ 12024 NONAME ; bool QSortFilterProxyModel::removeColumns(int, int, class QModelIndex const &) + ?draw@QPaintBuffer@@QBEXPAVQPainter@@H@Z @ 12025 NONAME ; void QPaintBuffer::draw(class QPainter *, int) const + ?d_func@QSessionManager@@AAEPAVQSessionManagerPrivate@@XZ @ 12026 NONAME ; class QSessionManagerPrivate * QSessionManager::d_func(void) + ?find@QTextDocument@@QBE?AVQTextCursor@@ABVQRegExp@@ABV2@V?$QFlags@W4FindFlag@QTextDocument@@@@@Z @ 12027 NONAME ; class QTextCursor QTextDocument::find(class QRegExp const &, class QTextCursor const &, class QFlags) const + ?tr@QAbstractItemDelegate@@SA?AVQString@@PBD0@Z @ 12028 NONAME ; class QString QAbstractItemDelegate::tr(char const *, char const *) + ?titleHeight@QDockWidgetLayout@@QBEHXZ @ 12029 NONAME ; int QDockWidgetLayout::titleHeight(void) const + ?setTabKeyNavigation@QAbstractItemView@@QAEX_N@Z @ 12030 NONAME ; void QAbstractItemView::setTabKeyNavigation(bool) + ?dragMoveEvent@QGraphicsView@@MAEXPAVQDragMoveEvent@@@Z @ 12031 NONAME ; void QGraphicsView::dragMoveEvent(class QDragMoveEvent *) + ?blurHint@QGraphicsBlurEffect@@QBE?AW4RenderHint@Qt@@XZ @ 12032 NONAME ; enum Qt::RenderHint QGraphicsBlurEffect::blurHint(void) const + ?currentBlockState@QSyntaxHighlighter@@IBEHXZ @ 12033 NONAME ; int QSyntaxHighlighter::currentBlockState(void) const + ?takeHorizontalHeaderItem@QStandardItemModel@@QAEPAVQStandardItem@@H@Z @ 12034 NONAME ; class QStandardItem * QStandardItemModel::takeHorizontalHeaderItem(int) + ?setWidgetResizable@QScrollArea@@QAEX_N@Z @ 12035 NONAME ; void QScrollArea::setWidgetResizable(bool) + ?setTextOption@QTextLayout@@QAEXABVQTextOption@@@Z @ 12036 NONAME ; void QTextLayout::setTextOption(class QTextOption const &) + ?collidingItems@QGraphicsScene@@QBE?AV?$QList@PAVQGraphicsItem@@@@PBVQGraphicsItem@@W4ItemSelectionMode@Qt@@@Z @ 12037 NONAME ; class QList QGraphicsScene::collidingItems(class QGraphicsItem const *, enum Qt::ItemSelectionMode) const + ??_EQContextMenuEvent@@UAE@I@Z @ 12038 NONAME ; QContextMenuEvent::~QContextMenuEvent(unsigned int) + ?title@QMenu@@QBE?AVQString@@XZ @ 12039 NONAME ; class QString QMenu::title(void) const + ?setWindowFlags@QGraphicsWidget@@QAEXV?$QFlags@W4WindowType@Qt@@@@@Z @ 12040 NONAME ; void QGraphicsWidget::setWindowFlags(class QFlags) + ?tr@QButtonGroup@@SA?AVQString@@PBD0H@Z @ 12041 NONAME ; class QString QButtonGroup::tr(char const *, char const *, int) + ?removeWidget@QLayout@@QAEXPAVQWidget@@@Z @ 12042 NONAME ; void QLayout::removeWidget(class QWidget *) + ?drawLines@QPainter@@QAEXABV?$QVector@VQPoint@@@@@Z @ 12043 NONAME ; void QPainter::drawLines(class QVector const &) + ?resize@QRubberBand@@QAEXABVQSize@@@Z @ 12044 NONAME ; void QRubberBand::resize(class QSize const &) + ?trUtf8@QFontDialog@@SA?AVQString@@PBD0H@Z @ 12045 NONAME ; class QString QFontDialog::trUtf8(char const *, char const *, int) + ?overline@QFont@@QBE_NXZ @ 12046 NONAME ; bool QFont::overline(void) const + ?cacheMode@QGraphicsItem@@QBE?AW4CacheMode@1@XZ @ 12047 NONAME ; enum QGraphicsItem::CacheMode QGraphicsItem::cacheMode(void) const + ?event@QS60Style@@UAE_NPAVQEvent@@@Z @ 12048 NONAME ; bool QS60Style::event(class QEvent *) + ?addRoundedRect@QPainterPath@@QAEXMMMMMMW4SizeMode@Qt@@@Z @ 12049 NONAME ; void QPainterPath::addRoundedRect(float, float, float, float, float, float, enum Qt::SizeMode) + ?lastCursorPosition@QTextTableCell@@QBE?AVQTextCursor@@XZ @ 12050 NONAME ; class QTextCursor QTextTableCell::lastCursorPosition(void) const + ?toTableCellFormat@QTextFormat@@QBE?AVQTextTableCellFormat@@XZ @ 12051 NONAME ; class QTextTableCellFormat QTextFormat::toTableCellFormat(void) const + ?setFocusWidget@QCoeFepInputContext@@UAEXPAVQWidget@@@Z @ 12052 NONAME ; void QCoeFepInputContext::setFocusWidget(class QWidget *) + ?stretch@QBoxLayout@@QBEHH@Z @ 12053 NONAME ; int QBoxLayout::stretch(int) const + ?setColumnHidden@QTableView@@QAEXH_N@Z @ 12054 NONAME ; void QTableView::setColumnHidden(int, bool) + ??Eiterator@QTextBlock@@QAE?AV01@H@Z @ 12055 NONAME ; class QTextBlock::iterator QTextBlock::iterator::operator++(int) + ?acceptProposedAction@QGraphicsSceneDragDropEvent@@QAEXXZ @ 12056 NONAME ; void QGraphicsSceneDragDropEvent::acceptProposedAction(void) + ?trUtf8@QWindowsStyle@@SA?AVQString@@PBD0@Z @ 12057 NONAME ; class QString QWindowsStyle::trUtf8(char const *, char const *) + ?write@QTreeWidgetItem@@UBEXAAVQDataStream@@@Z @ 12058 NONAME ; void QTreeWidgetItem::write(class QDataStream &) const + ?setPadding@QTextFrameFormat@@QAEXM@Z @ 12059 NONAME ; void QTextFrameFormat::setPadding(float) + ?columnSpan@QTableView@@QBEHHH@Z @ 12060 NONAME ; int QTableView::columnSpan(int, int) const + ?isAmbiguous@QShortcutEvent@@QAE_NXZ @ 12061 NONAME ; bool QShortcutEvent::isAmbiguous(void) + ?setHtml@QTextControl@@QAEXABVQString@@@Z @ 12062 NONAME ; void QTextControl::setHtml(class QString const &) + ?setMinimum@QDoubleSpinBox@@QAEXN@Z @ 12063 NONAME ; void QDoubleSpinBox::setMinimum(double) + ?rowMinimumHeight@QGridLayout@@QBEHH@Z @ 12064 NONAME ; int QGridLayout::rowMinimumHeight(int) const + ?wheelEvent@QPlainTextEdit@@MAEXPAVQWheelEvent@@@Z @ 12065 NONAME ; void QPlainTextEdit::wheelEvent(class QWheelEvent *) + ?dateTimeFromText@QDateTimeEdit@@MBE?AVQDateTime@@ABVQString@@@Z @ 12066 NONAME ; class QDateTime QDateTimeEdit::dateTimeFromText(class QString const &) const + ?setWindowSurface@QWidget@@QAEXPAVQWindowSurface@@@Z @ 12067 NONAME ; void QWidget::setWindowSurface(class QWindowSurface *) + ?setInputContext@QWidget@@QAEXPAVQInputContext@@@Z @ 12068 NONAME ; void QWidget::setInputContext(class QInputContext *) + ?begin@QTextBlock@@QBE?AViterator@1@XZ @ 12069 NONAME ; class QTextBlock::iterator QTextBlock::begin(void) const + ??1QWindowStateChangeEvent@@UAE@XZ @ 12070 NONAME ; QWindowStateChangeEvent::~QWindowStateChangeEvent(void) + ?setValue@QDoubleSpinBox@@QAEXN@Z @ 12071 NONAME ; void QDoubleSpinBox::setValue(double) + ??0QStyleOptionToolBoxV2@@IAE@H@Z @ 12072 NONAME ; QStyleOptionToolBoxV2::QStyleOptionToolBoxV2(int) + ??1QStyleOptionSpinBox@@QAE@XZ @ 12073 NONAME ; QStyleOptionSpinBox::~QStyleOptionSpinBox(void) + ?itemRemoved@QToolBox@@MAEXH@Z @ 12074 NONAME ; void QToolBox::itemRemoved(int) + ?maximumSize@QLayout@@UBE?AVQSize@@XZ @ 12075 NONAME ; class QSize QLayout::maximumSize(void) const + ?event@QDateTimeEdit@@UAE_NPAVQEvent@@@Z @ 12076 NONAME ; bool QDateTimeEdit::event(class QEvent *) + ?tr@QStylePlugin@@SA?AVQString@@PBD0H@Z @ 12077 NONAME ; class QString QStylePlugin::tr(char const *, char const *, int) + ?setSelectedDate@QCalendarWidget@@QAEXABVQDate@@@Z @ 12078 NONAME ; void QCalendarWidget::setSelectedDate(class QDate const &) + ?exec@QDrag@@QAE?AW4DropAction@Qt@@V?$QFlags@W4DropAction@Qt@@@@W423@@Z @ 12079 NONAME ; enum Qt::DropAction QDrag::exec(class QFlags, enum Qt::DropAction) + ?setSpan@QTableView@@QAEXHHHH@Z @ 12080 NONAME ; void QTableView::setSpan(int, int, int, int) + ?setColumnCount@QStandardItem@@QAEXH@Z @ 12081 NONAME ; void QStandardItem::setColumnCount(int) + ?drawComplexControl@QS60Style@@UBEXW4ComplexControl@QStyle@@PBVQStyleOptionComplex@@PAVQPainter@@PBVQWidget@@@Z @ 12082 NONAME ; void QS60Style::drawComplexControl(enum QStyle::ComplexControl, class QStyleOptionComplex const *, class QPainter *, class QWidget const *) const + ?globalPos@QMouseEvent@@QBEABVQPoint@@XZ @ 12083 NONAME ; class QPoint const & QMouseEvent::globalPos(void) const + ?insertWidget@QStackedLayout@@QAEHHPAVQWidget@@@Z @ 12084 NONAME ; int QStackedLayout::insertWidget(int, class QWidget *) + ?leftMargin@QTextFrameFormat@@QBEMXZ @ 12085 NONAME ; float QTextFrameFormat::leftMargin(void) const + ?qt_metacall@QTreeView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12086 NONAME ; int QTreeView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?ascent@QTextInlineObject@@QBEMXZ @ 12087 NONAME ; float QTextInlineObject::ascent(void) const + ?qt_metacall@QApplication@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12088 NONAME ; int QApplication::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qDrawShadePanel@@YAXPAVQPainter@@ABVQRect@@ABVQPalette@@_NHPBVQBrush@@@Z @ 12089 NONAME ; void qDrawShadePanel(class QPainter *, class QRect const &, class QPalette const &, bool, int, class QBrush const *) + ??9QTransform@@QBE_NABV0@@Z @ 12090 NONAME ; bool QTransform::operator!=(class QTransform const &) const + ?cursorPositionChanged@QTextControl@@IAEXXZ @ 12091 NONAME ; void QTextControl::cursorPositionChanged(void) + ?verticalScrollbarAction@QAbstractItemView@@MAEXH@Z @ 12092 NONAME ; void QAbstractItemView::verticalScrollbarAction(int) + ?containsPoint@QPolygonF@@QBE_NABVQPointF@@W4FillRule@Qt@@@Z @ 12093 NONAME ; bool QPolygonF::containsPoint(class QPointF const &, enum Qt::FillRule) const + ?setFontLetterSpacing@QTextCharFormat@@QAEXM@Z @ 12094 NONAME ; void QTextCharFormat::setFontLetterSpacing(float) + ?insertRow@QStandardItemModel@@QAEXHPAVQStandardItem@@@Z @ 12095 NONAME ; void QStandardItemModel::insertRow(int, class QStandardItem *) + ??0QFontMetrics@@QAE@ABVQFont@@@Z @ 12096 NONAME ; QFontMetrics::QFontMetrics(class QFont const &) + ?fromCmyk@QColor@@SA?AV1@HHHHH@Z @ 12097 NONAME ; class QColor QColor::fromCmyk(int, int, int, int, int) + ?setOpacity@QGraphicsItem@@QAEXM@Z @ 12098 NONAME ; void QGraphicsItem::setOpacity(float) + ?clear@QItemSelectionModel@@UAEXXZ @ 12099 NONAME ; void QItemSelectionModel::clear(void) + ?trUtf8@QPixmapColorizeFilter@@SA?AVQString@@PBD0H@Z @ 12100 NONAME ; class QString QPixmapColorizeFilter::trUtf8(char const *, char const *, int) + ?isUndoAvailable@QLineEdit@@QBE_NXZ @ 12101 NONAME ; bool QLineEdit::isUndoAvailable(void) const + ?currentRowChanged@QItemSelectionModel@@IAEXABVQModelIndex@@0@Z @ 12102 NONAME ; void QItemSelectionModel::currentRowChanged(class QModelIndex const &, class QModelIndex const &) + ?createMimeDataFromSelection@QTextEdit@@MBEPAVQMimeData@@XZ @ 12103 NONAME ; class QMimeData * QTextEdit::createMimeDataFromSelection(void) const + ??1QApplicationPrivate@@UAE@XZ @ 12104 NONAME ; QApplicationPrivate::~QApplicationPrivate(void) + ??4QStyleOptionTabV2@@QAEAAV0@ABVQStyleOptionTab@@@Z @ 12105 NONAME ; class QStyleOptionTabV2 & QStyleOptionTabV2::operator=(class QStyleOptionTab const &) + ?fillRect@QPainter@@QAEXABVQRect@@ABVQColor@@@Z @ 12106 NONAME ; void QPainter::fillRect(class QRect const &, class QColor const &) + ??9QTextFragment@@QBE_NABV0@@Z @ 12107 NONAME ; bool QTextFragment::operator!=(class QTextFragment const &) const + ?dotProduct@QVector2D@@SAMABV1@0@Z @ 12108 NONAME ; float QVector2D::dotProduct(class QVector2D const &, class QVector2D const &) + ?setHtml@QTextEdit@@QAEXABVQString@@@Z @ 12109 NONAME ; void QTextEdit::setHtml(class QString const &) + ??0QRasterPixmapData@@QAE@W4PixelType@QPixmapData@@@Z @ 12110 NONAME ; QRasterPixmapData::QRasterPixmapData(enum QPixmapData::PixelType) + ?microFocusChanged@QTextControl@@IAEXXZ @ 12111 NONAME ; void QTextControl::microFocusChanged(void) + ?setContext@QShortcut@@QAEXW4ShortcutContext@Qt@@@Z @ 12112 NONAME ; void QShortcut::setContext(enum Qt::ShortcutContext) + ?opaqueArea@QGraphicsTextItem@@UBE?AVQPainterPath@@XZ @ 12113 NONAME ; class QPainterPath QGraphicsTextItem::opaqueArea(void) const + ?tabText@QTabBar@@QBE?AVQString@@H@Z @ 12114 NONAME ; class QString QTabBar::tabText(int) const + ?getSaveFileName@QFileDialog@@SA?AVQString@@PAVQWidget@@ABV2@11PAV2@V?$QFlags@W4Option@QFileDialog@@@@@Z @ 12115 NONAME ; class QString QFileDialog::getSaveFileName(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?intersects@QPainterPath@@QBE_NABV1@@Z @ 12116 NONAME ; bool QPainterPath::intersects(class QPainterPath const &) const + ?keyReleaseEvent@QGraphicsView@@MAEXPAVQKeyEvent@@@Z @ 12117 NONAME ; void QGraphicsView::keyReleaseEvent(class QKeyEvent *) + ??_EQGraphicsDropShadowEffect@@UAE@I@Z @ 12118 NONAME ; QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect(unsigned int) + ?setData@QAbstractProxyModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 12119 NONAME ; bool QAbstractProxyModel::setData(class QModelIndex const &, class QVariant const &, int) + ?selectionStart@QTextCursor@@QBEHXZ @ 12120 NONAME ; int QTextCursor::selectionStart(void) const + ?color@QImage@@QBEIH@Z @ 12121 NONAME ; unsigned int QImage::color(int) const + ?event@QToolBox@@MAE_NPAVQEvent@@@Z @ 12122 NONAME ; bool QToolBox::event(class QEvent *) + ?filterKeyColumn@QSortFilterProxyModel@@QBEHXZ @ 12123 NONAME ; int QSortFilterProxyModel::filterKeyColumn(void) const + ?devType@QPaintDevice@@UBEHXZ @ 12124 NONAME ; int QPaintDevice::devType(void) const + ?setOverwriteMode@QTextControl@@QAEX_N@Z @ 12125 NONAME ; void QTextControl::setOverwriteMode(bool) + ?qt_metacast@QGraphicsScale@@UAEPAXPBD@Z @ 12126 NONAME ; void * QGraphicsScale::qt_metacast(char const *) + ??1QItemSelectionModel@@UAE@XZ @ 12127 NONAME ; QItemSelectionModel::~QItemSelectionModel(void) + ?addAction@QGraphicsWidget@@QAEXPAVQAction@@@Z @ 12128 NONAME ; void QGraphicsWidget::addAction(class QAction *) + ?bspTreeDepth@QGraphicsScene@@QBEHXZ @ 12129 NONAME ; int QGraphicsScene::bspTreeDepth(void) const + ?itemChanged@QTreeWidgetItem@@AAEXXZ @ 12130 NONAME ; void QTreeWidgetItem::itemChanged(void) + ?textOption@QTextLayout@@QBE?AVQTextOption@@XZ @ 12131 NONAME ; class QTextOption QTextLayout::textOption(void) const + ?icon@QFileIconProvider@@UBE?AVQIcon@@W4IconType@1@@Z @ 12132 NONAME ; class QIcon QFileIconProvider::icon(enum QFileIconProvider::IconType) const + ?tableCellColumnSpan@QTextCharFormat@@QBEHXZ @ 12133 NONAME ; int QTextCharFormat::tableCellColumnSpan(void) const + ?sizeHint@QLineEdit@@UBE?AVQSize@@XZ @ 12134 NONAME ; class QSize QLineEdit::sizeHint(void) const + ??OQTextCursor@@QBE_NABV0@@Z @ 12135 NONAME ; bool QTextCursor::operator>(class QTextCursor const &) const + ?setModelColumn@QComboBox@@QAEXH@Z @ 12136 NONAME ; void QComboBox::setModelColumn(int) + ??9QTextCursor@@QBE_NABV0@@Z @ 12137 NONAME ; bool QTextCursor::operator!=(class QTextCursor const &) const + ??_EQPixmapConvolutionFilter@@UAE@I@Z @ 12138 NONAME ; QPixmapConvolutionFilter::~QPixmapConvolutionFilter(unsigned int) + ?setRed@QColor@@QAEXH@Z @ 12139 NONAME ; void QColor::setRed(int) + ?trUtf8@QAbstractTextDocumentLayout@@SA?AVQString@@PBD0@Z @ 12140 NONAME ; class QString QAbstractTextDocumentLayout::trUtf8(char const *, char const *) + ?viewportUpdateMode@QGraphicsView@@QBE?AW4ViewportUpdateMode@1@XZ @ 12141 NONAME ; enum QGraphicsView::ViewportUpdateMode QGraphicsView::viewportUpdateMode(void) const + ?state@QPaintEngineState@@QBE?AV?$QFlags@W4DirtyFlag@QPaintEngine@@@@XZ @ 12142 NONAME ; class QFlags QPaintEngineState::state(void) const + ?viewMode@QMdiArea@@QBE?AW4ViewMode@1@XZ @ 12143 NONAME ; enum QMdiArea::ViewMode QMdiArea::viewMode(void) const + ?setFirstColumnSpanned@QTreeWidgetItem@@QAEX_N@Z @ 12144 NONAME ; void QTreeWidgetItem::setFirstColumnSpanned(bool) + ?trUtf8@QCheckBox@@SA?AVQString@@PBD0@Z @ 12145 NONAME ; class QString QCheckBox::trUtf8(char const *, char const *) + ?trUtf8@QTableView@@SA?AVQString@@PBD0@Z @ 12146 NONAME ; class QString QTableView::trUtf8(char const *, char const *) + ?setAccessibleText@QStandardItem@@QAEXABVQString@@@Z @ 12147 NONAME ; void QStandardItem::setAccessibleText(class QString const &) + ?setAlignment@QTextEdit@@QAEXV?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 12148 NONAME ; void QTextEdit::setAlignment(class QFlags) + ?keyboard_input_time@QApplicationPrivate@@2HA @ 12149 NONAME ; int QApplicationPrivate::keyboard_input_time + ?contextMenuEvent@QLineEdit@@MAEXPAVQContextMenuEvent@@@Z @ 12150 NONAME ; void QLineEdit::contextMenuEvent(class QContextMenuEvent *) + ??6@YAAAVQDataStream@@AAV0@ABVQListWidgetItem@@@Z @ 12151 NONAME ; class QDataStream & operator<<(class QDataStream &, class QListWidgetItem const &) + ?trUtf8@QGraphicsBlurEffect@@SA?AVQString@@PBD0@Z @ 12152 NONAME ; class QString QGraphicsBlurEffect::trUtf8(char const *, char const *) + ?setPaintDevice@QPaintEngine@@QAEXPAVQPaintDevice@@@Z @ 12153 NONAME ; void QPaintEngine::setPaintDevice(class QPaintDevice *) + ?clone@QStandardItem@@UBEPAV1@XZ @ 12154 NONAME ; class QStandardItem * QStandardItem::clone(void) const + ?resizeInlineObject@QAbstractTextDocumentLayout@@MAEXVQTextInlineObject@@HABVQTextFormat@@@Z @ 12155 NONAME ; void QAbstractTextDocumentLayout::resizeInlineObject(class QTextInlineObject, int, class QTextFormat const &) + ?flags@QAbstractProxyModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 12156 NONAME ; class QFlags QAbstractProxyModel::flags(class QModelIndex const &) const + ?scrollContentsBy@QTreeView@@MAEXHH@Z @ 12157 NONAME ; void QTreeView::scrollContentsBy(int, int) + ?setVerticalSpacing@QGraphicsGridLayout@@QAEXM@Z @ 12158 NONAME ; void QGraphicsGridLayout::setVerticalSpacing(float) + ?setVerticalStepsPerItem@QAbstractItemView@@IAEXH@Z @ 12159 NONAME ; void QAbstractItemView::setVerticalStepsPerItem(int) + ?widget@QStackedLayout@@QBEPAVQWidget@@H@Z @ 12160 NONAME ; class QWidget * QStackedLayout::widget(int) const + ?openExternalLinks@QLabel@@QBE_NXZ @ 12161 NONAME ; bool QLabel::openExternalLinks(void) const + ?setLoops@QSound@@QAEXH@Z @ 12162 NONAME ; void QSound::setLoops(int) + ?getStaticMetaObject@QItemSelectionModel@@SAABUQMetaObject@@XZ @ 12163 NONAME ; struct QMetaObject const & QItemSelectionModel::getStaticMetaObject(void) + ?setCancelText@QLineControl@@QAEXABVQString@@@Z @ 12164 NONAME ; void QLineControl::setCancelText(class QString const &) + ?scale@QGraphicsItem@@QAEXMM@Z @ 12165 NONAME ; void QGraphicsItem::scale(float, float) + ?point@QPolygon@@QBEXHPAH0@Z @ 12166 NONAME ; void QPolygon::point(int, int *, int *) const + ??0QMovie@@QAE@PAVQObject@@@Z @ 12167 NONAME ; QMovie::QMovie(class QObject *) + ?d_func@QSplitter@@ABEPBVQSplitterPrivate@@XZ @ 12168 NONAME ; class QSplitterPrivate const * QSplitter::d_func(void) const + ??_EQWidget@@UAE@I@Z @ 12169 NONAME ; QWidget::~QWidget(unsigned int) + ?sizeHint@QProgressDialog@@UBE?AVQSize@@XZ @ 12170 NONAME ; class QSize QProgressDialog::sizeHint(void) const + ?x@QGraphicsItem@@QBEMXZ @ 12171 NONAME ; float QGraphicsItem::x(void) const + ?paintBackground@QWidgetPrivate@@QBEXPAVQPainter@@ABVQRegion@@H@Z @ 12172 NONAME ; void QWidgetPrivate::paintBackground(class QPainter *, class QRegion const &, int) const + ?metaObject@QGraphicsView@@UBEPBUQMetaObject@@XZ @ 12173 NONAME ; struct QMetaObject const * QGraphicsView::metaObject(void) const + ?setEmptyLabel@QUndoView@@QAEXABVQString@@@Z @ 12174 NONAME ; void QUndoView::setEmptyLabel(class QString const &) + ?event@QHeaderView@@MAE_NPAVQEvent@@@Z @ 12175 NONAME ; bool QHeaderView::event(class QEvent *) + ?pen@QAbstractGraphicsShapeItem@@QBE?AVQPen@@XZ @ 12176 NONAME ; class QPen QAbstractGraphicsShapeItem::pen(void) const + ?metaObject@QFontComboBox@@UBEPBUQMetaObject@@XZ @ 12177 NONAME ; struct QMetaObject const * QFontComboBox::metaObject(void) const + ?toPolygon@QPolygonF@@QBE?AVQPolygon@@XZ @ 12178 NONAME ; class QPolygon QPolygonF::toPolygon(void) const + ?oldPos@QGraphicsSceneMoveEvent@@QBE?AVQPointF@@XZ @ 12179 NONAME ; class QPointF QGraphicsSceneMoveEvent::oldPos(void) const + ?acceptRichText@QTextEdit@@QBE_NXZ @ 12180 NONAME ; bool QTextEdit::acceptRichText(void) const + ??0QTextLength@@QAE@W4Type@0@M@Z @ 12181 NONAME ; QTextLength::QTextLength(enum QTextLength::Type, float) + ?setWinding@QTessellator@@QAEX_N@Z @ 12182 NONAME ; void QTessellator::setWinding(bool) + ?setSelectionModel@QAbstractItemView@@UAEXPAVQItemSelectionModel@@@Z @ 12183 NONAME ; void QAbstractItemView::setSelectionModel(class QItemSelectionModel *) + ?activateWindow@QWidget@@QAEXXZ @ 12184 NONAME ; void QWidget::activateWindow(void) + ?pos@QGraphicsSceneMouseEvent@@QBE?AVQPointF@@XZ @ 12185 NONAME ; class QPointF QGraphicsSceneMouseEvent::pos(void) const + ?trUtf8@QProgressBar@@SA?AVQString@@PBD0H@Z @ 12186 NONAME ; class QString QProgressBar::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@QFrame@@SAABUQMetaObject@@XZ @ 12187 NONAME ; struct QMetaObject const & QFrame::getStaticMetaObject(void) + ?orientation@QDialogButtonBox@@QBE?AW4Orientation@Qt@@XZ @ 12188 NONAME ; enum Qt::Orientation QDialogButtonBox::orientation(void) const + ?globalPos@QHelpEvent@@QBEABVQPoint@@XZ @ 12189 NONAME ; class QPoint const & QHelpEvent::globalPos(void) const + ?initializeColumn@QColumnView@@IBEXPAVQAbstractItemView@@@Z @ 12190 NONAME ; void QColumnView::initializeColumn(class QAbstractItemView *) const + ?keyboardPageStep@QMdiSubWindow@@QBEHXZ @ 12191 NONAME ; int QMdiSubWindow::keyboardPageStep(void) const + ?setTextColor@QTreeWidgetItem@@QAEXHABVQColor@@@Z @ 12192 NONAME ; void QTreeWidgetItem::setTextColor(int, class QColor const &) + ?addOutlineToPath@QFontEngine@@UAEXMMABUQGlyphLayout@@PAVQPainterPath@@V?$QFlags@W4RenderFlag@QTextItem@@@@@Z @ 12193 NONAME ; void QFontEngine::addOutlineToPath(float, float, struct QGlyphLayout const &, class QPainterPath *, class QFlags) + ?hideRow@QTableView@@QAEXH@Z @ 12194 NONAME ; void QTableView::hideRow(int) + ?lookAt@QMatrix4x4@@QAEAAV1@ABVQVector3D@@00@Z @ 12195 NONAME ; class QMatrix4x4 & QMatrix4x4::lookAt(class QVector3D const &, class QVector3D const &, class QVector3D const &) + ?takeTopLevelItem@QTreeWidget@@QAEPAVQTreeWidgetItem@@H@Z @ 12196 NONAME ; class QTreeWidgetItem * QTreeWidget::takeTopLevelItem(int) + ?setPopupMode@QToolButton@@QAEXW4ToolButtonPopupMode@1@@Z @ 12197 NONAME ; void QToolButton::setPopupMode(enum QToolButton::ToolButtonPopupMode) + ?setDragEnabled@QStandardItem@@QAEX_N@Z @ 12198 NONAME ; void QStandardItem::setDragEnabled(bool) + ?xTilt@QTabletEvent@@QBEHXZ @ 12199 NONAME ; int QTabletEvent::xTilt(void) const + ?useSizeCache@QWidgetItemV2@@ABE_NXZ @ 12200 NONAME ; bool QWidgetItemV2::useSizeCache(void) const + ?cursorPositionChanged@QPlainTextEdit@@IAEXXZ @ 12201 NONAME ; void QPlainTextEdit::cursorPositionChanged(void) + ?trUtf8@QCommonStyle@@SA?AVQString@@PBD0H@Z @ 12202 NONAME ; class QString QCommonStyle::trUtf8(char const *, char const *, int) + ?rowCount@QFormLayout@@QBEHXZ @ 12203 NONAME ; int QFormLayout::rowCount(void) const + ?setStyle@QFont@@QAEXW4Style@1@@Z @ 12204 NONAME ; void QFont::setStyle(enum QFont::Style) + ?maximumSize@QGraphicsLayoutItem@@QBE?AVQSizeF@@XZ @ 12205 NONAME ; class QSizeF QGraphicsLayoutItem::maximumSize(void) const + ?paintEvent@QSplitterHandle@@MAEXPAVQPaintEvent@@@Z @ 12206 NONAME ; void QSplitterHandle::paintEvent(class QPaintEvent *) + ?cursor_flash_time@QApplicationPrivate@@2HA @ 12207 NONAME ; int QApplicationPrivate::cursor_flash_time + ?hovered@QAction@@IAEXXZ @ 12208 NONAME ; void QAction::hovered(void) + ?drawPixmap@QPainter@@QAEXHHABVQPixmap@@@Z @ 12209 NONAME ; void QPainter::drawPixmap(int, int, class QPixmap const &) + ?heightForWidth@QFormLayout@@UBEHH@Z @ 12210 NONAME ; int QFormLayout::heightForWidth(int) const + ?pixmap@QIcon@@QBE?AVQPixmap@@HHW4Mode@1@W4State@1@@Z @ 12211 NONAME ; class QPixmap QIcon::pixmap(int, int, enum QIcon::Mode, enum QIcon::State) const + ??BQIcon@@QBE?AVQVariant@@XZ @ 12212 NONAME ; QIcon::operator class QVariant(void) const + ?menuBar@QMainWindow@@QBEPAVQMenuBar@@XZ @ 12213 NONAME ; class QMenuBar * QMainWindow::menuBar(void) const + ?trUtf8@QSplitter@@SA?AVQString@@PBD0@Z @ 12214 NONAME ; class QString QSplitter::trUtf8(char const *, char const *) + ?clear@QLineEdit@@QAEXXZ @ 12215 NONAME ; void QLineEdit::clear(void) + ?doItemsLayout@QHeaderView@@UAEXXZ @ 12216 NONAME ; void QHeaderView::doItemsLayout(void) + ?defaultSectionSize@QHeaderView@@QBEHXZ @ 12217 NONAME ; int QHeaderView::defaultSectionSize(void) const + ?setDefaultButton@QMessageBox@@QAEXW4StandardButton@1@@Z @ 12218 NONAME ; void QMessageBox::setDefaultButton(enum QMessageBox::StandardButton) + ?charWidth@QFontMetrics@@QBEHABVQString@@H@Z @ 12219 NONAME ; int QFontMetrics::charWidth(class QString const &, int) const + ?text@QTextLayout@@QBE?AVQString@@XZ @ 12220 NONAME ; class QString QTextLayout::text(void) const + ?setItemPrototype@QTableWidget@@QAEXPBVQTableWidgetItem@@@Z @ 12221 NONAME ; void QTableWidget::setItemPrototype(class QTableWidgetItem const *) + ?d_func@QPicture@@AAEPAVQPicturePrivate@@XZ @ 12222 NONAME ; class QPicturePrivate * QPicture::d_func(void) + ?setCursorWidth@QTextEdit@@QAEXH@Z @ 12223 NONAME ; void QTextEdit::setCursorWidth(int) + ?insertRows@QTextTable@@QAEXHH@Z @ 12224 NONAME ; void QTextTable::insertRows(int, int) + ?isObscuredBy@QGraphicsSimpleTextItem@@UBE_NPBVQGraphicsItem@@@Z @ 12225 NONAME ; bool QGraphicsSimpleTextItem::isObscuredBy(class QGraphicsItem const *) const + ?setAutoDefault@QPushButton@@QAEX_N@Z @ 12226 NONAME ; void QPushButton::setAutoDefault(bool) + ?initialize@QApplicationPrivate@@QAEXXZ @ 12227 NONAME ; void QApplicationPrivate::initialize(void) + ?stopAutoScroll@QAbstractItemView@@IAEXXZ @ 12228 NONAME ; void QAbstractItemView::stopAutoScroll(void) + ?insertImage@QTextCursor@@QAEXABVQTextImageFormat@@@Z @ 12229 NONAME ; void QTextCursor::insertImage(class QTextImageFormat const &) + ?setPicture@QPictureIO@@QAEXABVQPicture@@@Z @ 12230 NONAME ; void QPictureIO::setPicture(class QPicture const &) + ?metaObject@QAbstractProxyModel@@UBEPBUQMetaObject@@XZ @ 12231 NONAME ; struct QMetaObject const * QAbstractProxyModel::metaObject(void) const + ?brush@QPainter@@QBEABVQBrush@@XZ @ 12232 NONAME ; class QBrush const & QPainter::brush(void) const + ?process@QPainterReplayer@@QAEXABUQPaintBufferCommand@@@Z @ 12233 NONAME ; void QPainterReplayer::process(struct QPaintBufferCommand const &) + ?staticMetaObject@QAbstractItemView@@2UQMetaObject@@B @ 12234 NONAME ; struct QMetaObject const QAbstractItemView::staticMetaObject + ?createRecursively@QWidgetPrivate@@QAEXXZ @ 12235 NONAME ; void QWidgetPrivate::createRecursively(void) + ?drawLines@QPaintEngineEx@@UAEXPBVQLine@@H@Z @ 12236 NONAME ; void QPaintEngineEx::drawLines(class QLine const *, int) + ??1QStyleFactoryInterface@@UAE@XZ @ 12237 NONAME ; QStyleFactoryInterface::~QStyleFactoryInterface(void) + ??_EQTextBlockUserData@@UAE@I@Z @ 12238 NONAME ; QTextBlockUserData::~QTextBlockUserData(unsigned int) + ?init@Parser@QCss@@QAEXABVQString@@_N@Z @ 12239 NONAME ; void QCss::Parser::init(class QString const &, bool) + ?reload@QTextBrowser@@UAEXXZ @ 12240 NONAME ; void QTextBrowser::reload(void) + ?qDrawWinPanel@@YAXPAVQPainter@@ABVQRect@@ABVQPalette@@_NPBVQBrush@@@Z @ 12241 NONAME ; void qDrawWinPanel(class QPainter *, class QRect const &, class QPalette const &, bool, class QBrush const *) + ?count@QStackedWidget@@QBEHXZ @ 12242 NONAME ; int QStackedWidget::count(void) const + ?tabPosition@QMdiArea@@QBE?AW4TabPosition@QTabWidget@@XZ @ 12243 NONAME ; enum QTabWidget::TabPosition QMdiArea::tabPosition(void) const + ?pixmapData@QPixmap@@QBEPAVQPixmapData@@XZ @ 12244 NONAME ; class QPixmapData * QPixmap::pixmapData(void) const + ?fixedPitch@QFontInfo@@QBE_NXZ @ 12245 NONAME ; bool QFontInfo::fixedPitch(void) const + ?geometry@QWidget@@QBEABVQRect@@XZ @ 12246 NONAME ; class QRect const & QWidget::geometry(void) const + ?position@QTextFrameFormat@@QBE?AW4Position@1@XZ @ 12247 NONAME ; enum QTextFrameFormat::Position QTextFrameFormat::position(void) const + ?toRgb@QColor@@QBE?AV1@XZ @ 12248 NONAME ; class QColor QColor::toRgb(void) const + ?trUtf8@QErrorMessage@@SA?AVQString@@PBD0H@Z @ 12249 NONAME ; class QString QErrorMessage::trUtf8(char const *, char const *, int) + ?addToolBar@QMainWindow@@QAEXW4ToolBarArea@Qt@@PAVQToolBar@@@Z @ 12250 NONAME ; void QMainWindow::addToolBar(enum Qt::ToolBarArea, class QToolBar *) + ?end@QTextBlock@@QBE?AViterator@1@XZ @ 12251 NONAME ; class QTextBlock::iterator QTextBlock::end(void) const + ??0QDoubleValidator@@QAE@NNHPAVQObject@@@Z @ 12252 NONAME ; QDoubleValidator::QDoubleValidator(double, double, int, class QObject *) + ??6@YA?AVQDebug@@V0@ABVQVector4D@@@Z @ 12253 NONAME ; class QDebug operator<<(class QDebug, class QVector4D const &) + ?setOpacity@QGraphicsOpacityEffect@@QAEXM@Z @ 12254 NONAME ; void QGraphicsOpacityEffect::setOpacity(float) + ?source@QDropEvent@@QBEPAVQWidget@@XZ @ 12255 NONAME ; class QWidget * QDropEvent::source(void) const + ?setOffset@QImage@@QAEXABVQPoint@@@Z @ 12256 NONAME ; void QImage::setOffset(class QPoint const &) + ?paintEvent@QRubberBand@@MAEXPAVQPaintEvent@@@Z @ 12257 NONAME ; void QRubberBand::paintEvent(class QPaintEvent *) + ?setFont@QAction@@QAEXABVQFont@@@Z @ 12258 NONAME ; void QAction::setFont(class QFont const &) + ?leaveWhatsThisMode@QWhatsThis@@SAXXZ @ 12259 NONAME ; void QWhatsThis::leaveWhatsThisMode(void) + ??0QImage@@QAE@ABV0@@Z @ 12260 NONAME ; QImage::QImage(class QImage const &) + ?draw@QPaintEngineEx@@UAEXABVQVectorPath@@@Z @ 12261 NONAME ; void QPaintEngineEx::draw(class QVectorPath const &) + ?setIndent@QLabel@@QAEXH@Z @ 12262 NONAME ; void QLabel::setIndent(int) + ?document@QTextControl@@QBEPAVQTextDocument@@XZ @ 12263 NONAME ; class QTextDocument * QTextControl::document(void) const + ??0QTextOption@@QAE@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 12264 NONAME ; QTextOption::QTextOption(class QFlags) + ?icon@QListWidgetItem@@QBE?AVQIcon@@XZ @ 12265 NONAME ; class QIcon QListWidgetItem::icon(void) const + ?trUtf8@QImageIOPlugin@@SA?AVQString@@PBD0@Z @ 12266 NONAME ; class QString QImageIOPlugin::trUtf8(char const *, char const *) + ?styleChange@QWidget@@MAEXAAVQStyle@@@Z @ 12267 NONAME ; void QWidget::styleChange(class QStyle &) + ?qt_metacall@QDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12268 NONAME ; int QDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ?inputContext@QWidgetPrivate@@QBEPAVQInputContext@@XZ @ 12269 NONAME ; class QInputContext * QWidgetPrivate::inputContext(void) const + ?d_func@QErrorMessage@@AAEPAVQErrorMessagePrivate@@XZ @ 12270 NONAME ; class QErrorMessagePrivate * QErrorMessage::d_func(void) + ?HandleStatusPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12271 NONAME ; void QS60MainAppUi::HandleStatusPaneSizeChange(void) + ?getStaticMetaObject@QPixmapConvolutionFilter@@SAABUQMetaObject@@XZ @ 12272 NONAME ; struct QMetaObject const & QPixmapConvolutionFilter::getStaticMetaObject(void) + ?foreground@QTableWidgetItem@@QBE?AVQBrush@@XZ @ 12273 NONAME ; class QBrush QTableWidgetItem::foreground(void) const + ?childCount@QTreeWidgetItem@@QBEHXZ @ 12274 NONAME ; int QTreeWidgetItem::childCount(void) const + ?focusNextPrevChild@QGraphicsWidget@@MAE_N_N@Z @ 12275 NONAME ; bool QGraphicsWidget::focusNextPrevChild(bool) + ?highlighted@QComboBox@@IAEXABVQString@@@Z @ 12276 NONAME ; void QComboBox::highlighted(class QString const &) + ?setPossibleActions@QGraphicsSceneDragDropEvent@@QAEXV?$QFlags@W4DropAction@Qt@@@@@Z @ 12277 NONAME ; void QGraphicsSceneDragDropEvent::setPossibleActions(class QFlags) + ?trUtf8@QColorDialog@@SA?AVQString@@PBD0H@Z @ 12278 NONAME ; class QString QColorDialog::trUtf8(char const *, char const *, int) + ?changeEvent@QToolBox@@MAEXPAVQEvent@@@Z @ 12279 NONAME ; void QToolBox::changeEvent(class QEvent *) + ?setOffset@QGraphicsDropShadowEffect@@QAEXM@Z @ 12280 NONAME ; void QGraphicsDropShadowEffect::setOffset(float) + ?d_func@QColorDialog@@ABEPBVQColorDialogPrivate@@XZ @ 12281 NONAME ; class QColorDialogPrivate const * QColorDialog::d_func(void) const + ??_EQDateTimeEdit@@UAE@I@Z @ 12282 NONAME ; QDateTimeEdit::~QDateTimeEdit(unsigned int) + ?setBoundary@QTextEngine@@ABEXH@Z @ 12283 NONAME ; void QTextEngine::setBoundary(int) const + ?sizeHint@QStackedLayout@@UBE?AVQSize@@XZ @ 12284 NONAME ; class QSize QStackedLayout::sizeHint(void) const + ?notchSize@QDial@@QBEHXZ @ 12285 NONAME ; int QDial::notchSize(void) const + ?rejected@QDialogButtonBox@@IAEXXZ @ 12286 NONAME ; void QDialogButtonBox::rejected(void) + ??_EQSound@@UAE@I@Z @ 12287 NONAME ; QSound::~QSound(unsigned int) + ?mapFromItem@QGraphicsItem@@QBE?AVQPainterPath@@PBV1@ABV2@@Z @ 12288 NONAME ; class QPainterPath QGraphicsItem::mapFromItem(class QGraphicsItem const *, class QPainterPath const &) const + ?elidedText@QFontMetricsF@@QBE?AVQString@@ABV2@W4TextElideMode@Qt@@MH@Z @ 12289 NONAME ; class QString QFontMetricsF::elidedText(class QString const &, enum Qt::TextElideMode, float, int) const + ?isEmpty@QRegion@@QBE_NXZ @ 12290 NONAME ; bool QRegion::isEmpty(void) const + ??0QStyleOptionFrameV2@@QAE@ABVQStyleOptionFrame@@@Z @ 12291 NONAME ; QStyleOptionFrameV2::QStyleOptionFrameV2(class QStyleOptionFrame const &) + ??0QGraphicsEffect@@IAE@AAVQGraphicsEffectPrivate@@PAVQObject@@@Z @ 12292 NONAME ; QGraphicsEffect::QGraphicsEffect(class QGraphicsEffectPrivate &, class QObject *) + ?setAutoExpandDelay@QTreeView@@QAEXH@Z @ 12293 NONAME ; void QTreeView::setAutoExpandDelay(int) + ?setAlignment@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@V?$QFlags@W4AlignmentFlag@Qt@@@@@Z @ 12294 NONAME ; void QGraphicsGridLayout::setAlignment(class QGraphicsLayoutItem *, class QFlags) + ??YQVector3D@@QAEAAV0@ABV0@@Z @ 12295 NONAME ; class QVector3D & QVector3D::operator+=(class QVector3D const &) + ?qt_metacall@QDataWidgetMapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12296 NONAME ; int QDataWidgetMapper::qt_metacall(enum QMetaObject::Call, int, void * *) + ?sortByColumn@QTableView@@QAEXHW4SortOrder@Qt@@@Z @ 12297 NONAME ; void QTableView::sortByColumn(int, enum Qt::SortOrder) + ?qt_filedialog_open_filenames_hook@@3P6A?AVQStringList@@PAVQWidget@@ABVQString@@11PAV3@V?$QFlags@W4Option@QFileDialog@@@@@ZA @ 12298 NONAME ; class QStringList (*qt_filedialog_open_filenames_hook)(class QWidget *, class QString const &, class QString const &, class QString const &, class QString *, class QFlags) + ?emitDataChanged@QTreeWidgetItem@@IAEXXZ @ 12299 NONAME ; void QTreeWidgetItem::emitDataChanged(void) + ??8QPen@@QBE_NABV0@@Z @ 12300 NONAME ; bool QPen::operator==(class QPen const &) const + ?setFilterFixedString@QSortFilterProxyModel@@QAEXABVQString@@@Z @ 12301 NONAME ; void QSortFilterProxyModel::setFilterFixedString(class QString const &) + ?completionPrefix@QCompleter@@QBE?AVQString@@XZ @ 12302 NONAME ; class QString QCompleter::completionPrefix(void) const + ??1Parser@QCss@@QAE@XZ @ 12303 NONAME ; QCss::Parser::~Parser(void) + ?setFormat@QSyntaxHighlighter@@IAEXHHABVQColor@@@Z @ 12304 NONAME ; void QSyntaxHighlighter::setFormat(int, int, class QColor const &) + ?d_func@QPlainTextDocumentLayout@@ABEPBVQPlainTextDocumentLayoutPrivate@@XZ @ 12305 NONAME ; class QPlainTextDocumentLayoutPrivate const * QPlainTextDocumentLayout::d_func(void) const + ?addRect@QPainterPath@@QAEXMMMM@Z @ 12306 NONAME ; void QPainterPath::addRect(float, float, float, float) + ?focusInEvent@QMenuBar@@MAEXPAVQFocusEvent@@@Z @ 12307 NONAME ; void QMenuBar::focusInEvent(class QFocusEvent *) + ?suffix@QSpinBox@@QBE?AVQString@@XZ @ 12308 NONAME ; class QString QSpinBox::suffix(void) const + ?exec@QDrag@@QAE?AW4DropAction@Qt@@V?$QFlags@W4DropAction@Qt@@@@@Z @ 12309 NONAME ; enum Qt::DropAction QDrag::exec(class QFlags) + ??1QWhatsThisClickedEvent@@UAE@XZ @ 12310 NONAME ; QWhatsThisClickedEvent::~QWhatsThisClickedEvent(void) + ?contains@QItemSelectionRange@@QBE_NHHABVQModelIndex@@@Z @ 12311 NONAME ; bool QItemSelectionRange::contains(int, int, class QModelIndex const &) const + ?setResult@QDialog@@QAEXH@Z @ 12312 NONAME ; void QDialog::setResult(int) + ?registerHandler@QAbstractTextDocumentLayout@@QAEXHPAVQObject@@@Z @ 12313 NONAME ; void QAbstractTextDocumentLayout::registerHandler(int, class QObject *) + ?invalidateFilter@QSortFilterProxyModel@@IAEXXZ @ 12314 NONAME ; void QSortFilterProxyModel::invalidateFilter(void) + ?tr@QMenuBar@@SA?AVQString@@PBD0H@Z @ 12315 NONAME ; class QString QMenuBar::tr(char const *, char const *, int) + ?toHtml@QTextControl@@QBE?AVQString@@XZ @ 12316 NONAME ; class QString QTextControl::toHtml(void) const + ?text@QUndoCommand@@QBE?AVQString@@XZ @ 12317 NONAME ; class QString QUndoCommand::text(void) const + ?scale@QTransform@@QAEAAV1@MM@Z @ 12318 NONAME ; class QTransform & QTransform::scale(float, float) + ?normal@QVector3D@@SA?AV1@ABV1@0@Z @ 12319 NONAME ; class QVector3D QVector3D::normal(class QVector3D const &, class QVector3D const &) + ?revision@QTextDocument@@QBEHXZ @ 12320 NONAME ; int QTextDocument::revision(void) const + ?warning@QMessageBox@@SAHPAVQWidget@@ABVQString@@1W4StandardButton@1@2@Z @ 12321 NONAME ; int QMessageBox::warning(class QWidget *, class QString const &, class QString const &, enum QMessageBox::StandardButton, enum QMessageBox::StandardButton) + ??1QStatusTipEvent@@UAE@XZ @ 12322 NONAME ; QStatusTipEvent::~QStatusTipEvent(void) + ?palette@QTextControl@@QBE?AVQPalette@@XZ @ 12323 NONAME ; class QPalette QTextControl::palette(void) const + ?setCurrentFont@QFontComboBox@@QAEXABVQFont@@@Z @ 12324 NONAME ; void QFontComboBox::setCurrentFont(class QFont const &) + ?scroll@QPixmapData@@UAE_NHHABVQRect@@@Z @ 12325 NONAME ; bool QPixmapData::scroll(int, int, class QRect const &) + ?emitLastWindowClosed@QApplicationPrivate@@SAXXZ @ 12326 NONAME ; void QApplicationPrivate::emitLastWindowClosed(void) + ?event@QPushButton@@MAE_NPAVQEvent@@@Z @ 12327 NONAME ; bool QPushButton::event(class QEvent *) + ?focusOutEvent@QAbstractButton@@MAEXPAVQFocusEvent@@@Z @ 12328 NONAME ; void QAbstractButton::focusOutEvent(class QFocusEvent *) + ?getStaticMetaObject@QPaintBufferSignalProxy@@SAABUQMetaObject@@XZ @ 12329 NONAME ; struct QMetaObject const & QPaintBufferSignalProxy::getStaticMetaObject(void) + ?isEnabled@QGraphicsItem@@QBE_NXZ @ 12330 NONAME ; bool QGraphicsItem::isEnabled(void) const + ?setStyle@QGraphicsWidget@@QAEXPAVQStyle@@@Z @ 12331 NONAME ; void QGraphicsWidget::setStyle(class QStyle *) + ?setPlainText@QGraphicsTextItem@@QAEXABVQString@@@Z @ 12332 NONAME ; void QGraphicsTextItem::setPlainText(class QString const &) + ?removeWidget@QStatusBar@@QAEXPAVQWidget@@@Z @ 12333 NONAME ; void QStatusBar::removeWidget(class QWidget *) + ??0QImageTextKeyLang@@QAE@PBD0@Z @ 12334 NONAME ; QImageTextKeyLang::QImageTextKeyLang(char const *, char const *) + ?isDetached@QPixmap@@QBE_NXZ @ 12335 NONAME ; bool QPixmap::isDetached(void) const + ?moveCursor@QColumnView@@MAE?AVQModelIndex@@W4CursorAction@QAbstractItemView@@V?$QFlags@W4KeyboardModifier@Qt@@@@@Z @ 12336 NONAME ; class QModelIndex QColumnView::moveCursor(enum QAbstractItemView::CursorAction, class QFlags) + ?getStaticMetaObject@QRubberBand@@SAABUQMetaObject@@XZ @ 12337 NONAME ; struct QMetaObject const & QRubberBand::getStaticMetaObject(void) + ?setPlainText@QPlainTextEdit@@QAEXABVQString@@@Z @ 12338 NONAME ; void QPlainTextEdit::setPlainText(class QString const &) + ?comboBoxItems@QInputDialog@@QBE?AVQStringList@@XZ @ 12339 NONAME ; class QStringList QInputDialog::comboBoxItems(void) const + ?qGray@@YAHI@Z @ 12340 NONAME ; int qGray(unsigned int) + ?wheelEvent@QAbstractSpinBox@@MAEXPAVQWheelEvent@@@Z @ 12341 NONAME ; void QAbstractSpinBox::wheelEvent(class QWheelEvent *) + ?updateBlock@QAbstractTextDocumentLayout@@IAEXABVQTextBlock@@@Z @ 12342 NONAME ; void QAbstractTextDocumentLayout::updateBlock(class QTextBlock const &) + ?pageCount@QPlainTextDocumentLayout@@UBEHXZ @ 12343 NONAME ; int QPlainTextDocumentLayout::pageCount(void) const + ?selectionChanged@QTableView@@MAEXABVQItemSelection@@0@Z @ 12344 NONAME ; void QTableView::selectionChanged(class QItemSelection const &, class QItemSelection const &) + ?cleanUp@QRegion@@CAXPAUQRegionData@1@@Z @ 12345 NONAME ; void QRegion::cleanUp(struct QRegion::QRegionData *) + ??0QWidgetItemV2@@QAE@PAVQWidget@@@Z @ 12346 NONAME ; QWidgetItemV2::QWidgetItemV2(class QWidget *) + ?getStaticMetaObject@QDirModel@@SAABUQMetaObject@@XZ @ 12347 NONAME ; struct QMetaObject const & QDirModel::getStaticMetaObject(void) + ?sizeHint@QMdiArea@@UBE?AVQSize@@XZ @ 12348 NONAME ; class QSize QMdiArea::sizeHint(void) const + ?customButtonClicked@QWizard@@IAEXH@Z @ 12349 NONAME ; void QWizard::customButtonClicked(int) + ?trUtf8@QMessageBox@@SA?AVQString@@PBD0@Z @ 12350 NONAME ; class QString QMessageBox::trUtf8(char const *, char const *) + ?getStaticMetaObject@QMovie@@SAABUQMetaObject@@XZ @ 12351 NONAME ; struct QMetaObject const & QMovie::getStaticMetaObject(void) + ?clear@QToolBar@@QAEXXZ @ 12352 NONAME ; void QToolBar::clear(void) + ?insertImage@QTextCursor@@QAEXABVQTextImageFormat@@W4Position@QTextFrameFormat@@@Z @ 12353 NONAME ; void QTextCursor::insertImage(class QTextImageFormat const &, enum QTextFrameFormat::Position) + ?event@QWizard@@MAE_NPAVQEvent@@@Z @ 12354 NONAME ; bool QWizard::event(class QEvent *) + ?qt_metacast@QIconEnginePlugin@@UAEPAXPBD@Z @ 12355 NONAME ; void * QIconEnginePlugin::qt_metacast(char const *) + ?drawRoundedRect@QPainter@@QAEXHHHHMMW4SizeMode@Qt@@@Z @ 12356 NONAME ; void QPainter::drawRoundedRect(int, int, int, int, float, float, enum Qt::SizeMode) + ?polish@QStyle@@UAEXPAVQApplication@@@Z @ 12357 NONAME ; void QStyle::polish(class QApplication *) + ?sceneRect@TouchPoint@QTouchEvent@@QBE?AVQRectF@@XZ @ 12358 NONAME ; class QRectF QTouchEvent::TouchPoint::sceneRect(void) const + ?getStaticMetaObject@QRadioButton@@SAABUQMetaObject@@XZ @ 12359 NONAME ; struct QMetaObject const & QRadioButton::getStaticMetaObject(void) + ?ungrabMouse@QGraphicsItem@@QAEXXZ @ 12360 NONAME ; void QGraphicsItem::ungrabMouse(void) + ?ownsFindBuffer@QClipboard@@QBE_NXZ @ 12361 NONAME ; bool QClipboard::ownsFindBuffer(void) const + ?getStaticMetaObject@QGraphicsScene@@SAABUQMetaObject@@XZ @ 12362 NONAME ; struct QMetaObject const & QGraphicsScene::getStaticMetaObject(void) + ?setSearchPaths@QTextBrowser@@QAEXABVQStringList@@@Z @ 12363 NONAME ; void QTextBrowser::setSearchPaths(class QStringList const &) + ?trUtf8@QGraphicsColorizeEffect@@SA?AVQString@@PBD0H@Z @ 12364 NONAME ; class QString QGraphicsColorizeEffect::trUtf8(char const *, char const *, int) + ?sectionDoubleClicked@QHeaderView@@IAEXH@Z @ 12365 NONAME ; void QHeaderView::sectionDoubleClicked(int) + ?popup@QMenu@@QAEXABVQPoint@@PAVQAction@@@Z @ 12366 NONAME ; void QMenu::popup(class QPoint const &, class QAction *) + ?setToolButtonStyle@QMainWindow@@QAEXW4ToolButtonStyle@Qt@@@Z @ 12367 NONAME ; void QMainWindow::setToolButtonStyle(enum Qt::ToolButtonStyle) + ?updateSceneTransformFromParent@QGraphicsItemPrivate@@UAEXXZ @ 12368 NONAME ; void QGraphicsItemPrivate::updateSceneTransformFromParent(void) + ?setGlobalStrut@QApplication@@SAXABVQSize@@@Z @ 12369 NONAME ; void QApplication::setGlobalStrut(class QSize const &) + ?isFullScreen@QWidget@@QBE_NXZ @ 12370 NONAME ; bool QWidget::isFullScreen(void) const + ??6@YA?AVQDebug@@V0@W4GraphicsItemFlag@QGraphicsItem@@@Z @ 12371 NONAME ; class QDebug operator<<(class QDebug, enum QGraphicsItem::GraphicsItemFlag) + ?currentList@QTextCursor@@QBEPAVQTextList@@XZ @ 12372 NONAME ; class QTextList * QTextCursor::currentList(void) const + ?select@QTextCursor@@QAEXW4SelectionType@1@@Z @ 12373 NONAME ; void QTextCursor::select(enum QTextCursor::SelectionType) + ?parent@QStandardItem@@QBEPAV1@XZ @ 12374 NONAME ; class QStandardItem * QStandardItem::parent(void) const + ?setStretch@QFont@@QAEXH@Z @ 12375 NONAME ; void QFont::setStretch(int) + ?qt_metacast@QSplitterHandle@@UAEPAXPBD@Z @ 12376 NONAME ; void * QSplitterHandle::qt_metacast(char const *) + ?setGreenF@QColor@@QAEXM@Z @ 12377 NONAME ; void QColor::setGreenF(float) + ?tr@QWizardPage@@SA?AVQString@@PBD0@Z @ 12378 NONAME ; class QString QWizardPage::tr(char const *, char const *) + ?setQuality@QPictureIO@@QAEXH@Z @ 12379 NONAME ; void QPictureIO::setQuality(int) + ?createCompatiblePixmapData@QPixmapData@@UBEPAV1@XZ @ 12380 NONAME ; class QPixmapData * QPixmapData::createCompatiblePixmapData(void) const + ?setMenuBar@QLayout@@QAEXPAVQWidget@@@Z @ 12381 NONAME ; void QLayout::setMenuBar(class QWidget *) + ?removeSubWindow@QMdiArea@@QAEXPAVQWidget@@@Z @ 12382 NONAME ; void QMdiArea::removeSubWindow(class QWidget *) + ??1QProgressDialog@@UAE@XZ @ 12383 NONAME ; QProgressDialog::~QProgressDialog(void) + ?isTransformed@QGraphicsView@@QBE_NXZ @ 12384 NONAME ; bool QGraphicsView::isTransformed(void) const + ?clearPropertyFlags@QListView@@QAEXXZ @ 12385 NONAME ; void QListView::clearPropertyFlags(void) + ?keyPressEvent@QMenu@@MAEXPAVQKeyEvent@@@Z @ 12386 NONAME ; void QMenu::keyPressEvent(class QKeyEvent *) + ?cacheStatistics@QFont@@SAXXZ @ 12387 NONAME ; void QFont::cacheStatistics(void) + ?tr@QMovie@@SA?AVQString@@PBD0H@Z @ 12388 NONAME ; class QString QMovie::tr(char const *, char const *, int) + ?qt_metacall@QWizardPage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12389 NONAME ; int QWizardPage::qt_metacall(enum QMetaObject::Call, int, void * *) + ?sort@QProxyModel@@UAEXHW4SortOrder@Qt@@@Z @ 12390 NONAME ; void QProxyModel::sort(int, enum Qt::SortOrder) + ?connectToModel@QProxyModel@@IBEXPBVQAbstractItemModel@@@Z @ 12391 NONAME ; void QProxyModel::connectToModel(class QAbstractItemModel const *) const + ?trUtf8@QWidgetResizeHandler@@SA?AVQString@@PBD0H@Z @ 12392 NONAME ; class QString QWidgetResizeHandler::trUtf8(char const *, char const *, int) + ?itemExpanded@QTreeWidget@@IAEXPAVQTreeWidgetItem@@@Z @ 12393 NONAME ; void QTreeWidget::itemExpanded(class QTreeWidgetItem *) + ?widget@QLayoutItem@@UAEPAVQWidget@@XZ @ 12394 NONAME ; class QWidget * QLayoutItem::widget(void) + ?setTabPosition@QMainWindow@@QAEXV?$QFlags@W4DockWidgetArea@Qt@@@@W4TabPosition@QTabWidget@@@Z @ 12395 NONAME ; void QMainWindow::setTabPosition(class QFlags, enum QTabWidget::TabPosition) + ?qt_metacast@QDoubleValidator@@UAEPAXPBD@Z @ 12396 NONAME ; void * QDoubleValidator::qt_metacast(char const *) + ?itemEntered@QListWidget@@IAEXPAVQListWidgetItem@@@Z @ 12397 NONAME ; void QListWidget::itemEntered(class QListWidgetItem *) + ??TQRegion@@QBE?BV0@ABV0@@Z @ 12398 NONAME ; class QRegion const QRegion::operator^(class QRegion const &) const + ?hideEvent@QWorkspace@@MAEXPAVQHideEvent@@@Z @ 12399 NONAME ; void QWorkspace::hideEvent(class QHideEvent *) + ?hideText@QToolTip@@SAXXZ @ 12400 NONAME ; void QToolTip::hideText(void) + ?autoClose@QProgressDialog@@QBE_NXZ @ 12401 NONAME ; bool QProgressDialog::autoClose(void) const + ?fitInView@QGraphicsView@@QAEXABVQRectF@@W4AspectRatioMode@Qt@@@Z @ 12402 NONAME ; void QGraphicsView::fitInView(class QRectF const &, enum Qt::AspectRatioMode) + ?mightBeRichText@Qt@@YA_NABVQString@@@Z @ 12403 NONAME ; bool Qt::mightBeRichText(class QString const &) + ??6@YAAAVQDataStream@@AAV0@ABVQTextFormat@@@Z @ 12404 NONAME ; class QDataStream & operator<<(class QDataStream &, class QTextFormat const &) + ?setBlockCharFormat@QTextCursor@@QAEXABVQTextCharFormat@@@Z @ 12405 NONAME ; void QTextCursor::setBlockCharFormat(class QTextCharFormat const &) + ??6@YA?AVQDebug@@V0@ABVQRegion@@@Z @ 12406 NONAME ; class QDebug operator<<(class QDebug, class QRegion const &) + ?Extension1@QCoeFepInputContext@@EAEPAVMCoeFepAwareTextEditor_Extension1@@AAH@Z @ 12407 NONAME ; class MCoeFepAwareTextEditor_Extension1 * QCoeFepInputContext::Extension1(int &) + ?tr@QUndoView@@SA?AVQString@@PBD0H@Z @ 12408 NONAME ; class QString QUndoView::tr(char const *, char const *, int) + ?sortByColumn@QTableView@@QAEXH@Z @ 12409 NONAME ; void QTableView::sortByColumn(int) + ?supportedDropActions@QStringListModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 12410 NONAME ; class QFlags QStringListModel::supportedDropActions(void) const + ?dropAction@QGraphicsSceneDragDropEvent@@QBE?AW4DropAction@Qt@@XZ @ 12411 NONAME ; enum Qt::DropAction QGraphicsSceneDragDropEvent::dropAction(void) const + ??0QStandardItem@@QAE@ABVQString@@@Z @ 12412 NONAME ; QStandardItem::QStandardItem(class QString const &) + ?trUtf8@QHBoxLayout@@SA?AVQString@@PBD0H@Z @ 12413 NONAME ; class QString QHBoxLayout::trUtf8(char const *, char const *, int) + ?button@QPalette@@QBEABVQBrush@@XZ @ 12414 NONAME ; class QBrush const & QPalette::button(void) const + ?qt_metacast@QStyle@@UAEPAXPBD@Z @ 12415 NONAME ; void * QStyle::qt_metacast(char const *) + ?child@QUndoCommand@@QBEPBV1@H@Z @ 12416 NONAME ; class QUndoCommand const * QUndoCommand::child(int) const + ?setGeometry@QFormLayout@@UAEXABVQRect@@@Z @ 12417 NONAME ; void QFormLayout::setGeometry(class QRect const &) + ?verticalSpacing@QGridLayout@@QBEHXZ @ 12418 NONAME ; int QGridLayout::verticalSpacing(void) const + ?undoText@QUndoGroup@@QBE?AVQString@@XZ @ 12419 NONAME ; class QString QUndoGroup::undoText(void) const + ??0QImagePixmapCleanupHooks@@QAE@XZ @ 12420 NONAME ; QImagePixmapCleanupHooks::QImagePixmapCleanupHooks(void) + ?setOrientation@QDialog@@QAEXW4Orientation@Qt@@@Z @ 12421 NONAME ; void QDialog::setOrientation(enum Qt::Orientation) + ?testRenderHint@QPainter@@QBE_NW4RenderHint@1@@Z @ 12422 NONAME ; bool QPainter::testRenderHint(enum QPainter::RenderHint) const + ?staticMetaObject@QSplitterHandle@@2UQMetaObject@@B @ 12423 NONAME ; struct QMetaObject const QSplitterHandle::staticMetaObject + ??1QPictureFormatPlugin@@UAE@XZ @ 12424 NONAME ; QPictureFormatPlugin::~QPictureFormatPlugin(void) + ?clear@QTextEdit@@QAEXXZ @ 12425 NONAME ; void QTextEdit::clear(void) + ?pixel@QImage@@QBEIHH@Z @ 12426 NONAME ; unsigned int QImage::pixel(int, int) const + ?undo@QUndoGroup@@QAEXXZ @ 12427 NONAME ; void QUndoGroup::undo(void) + ?setQuality@QImageWriter@@QAEXH@Z @ 12428 NONAME ; void QImageWriter::setQuality(int) + ??0QDialogButtonBox@@QAE@V?$QFlags@W4StandardButton@QDialogButtonBox@@@@W4Orientation@Qt@@PAVQWidget@@@Z @ 12429 NONAME ; QDialogButtonBox::QDialogButtonBox(class QFlags, enum Qt::Orientation, class QWidget *) + ?historyChanged@QTextBrowser@@IAEXXZ @ 12430 NONAME ; void QTextBrowser::historyChanged(void) + ?lineEdit@QComboBox@@QBEPAVQLineEdit@@XZ @ 12431 NONAME ; class QLineEdit * QComboBox::lineEdit(void) const + ?setStartDragDistance@QApplication@@SAXH@Z @ 12432 NONAME ; void QApplication::setStartDragDistance(int) + ?setItemDelegate@QAbstractItemView@@QAEXPAVQAbstractItemDelegate@@@Z @ 12433 NONAME ; void QAbstractItemView::setItemDelegate(class QAbstractItemDelegate *) + ?frameStrut@QWidgetPrivate@@QBE?AVQRect@@XZ @ 12434 NONAME ; class QRect QWidgetPrivate::frameStrut(void) const + ?tr@QErrorMessage@@SA?AVQString@@PBD0@Z @ 12435 NONAME ; class QString QErrorMessage::tr(char const *, char const *) + ?d_func@QTextTable@@AAEPAVQTextTablePrivate@@XZ @ 12436 NONAME ; class QTextTablePrivate * QTextTable::d_func(void) + ?defaultStyleSheet@QTextDocument@@QBE?AVQString@@XZ @ 12437 NONAME ; class QString QTextDocument::defaultStyleSheet(void) const + ?width@QItemSelectionRange@@QBEHXZ @ 12438 NONAME ; int QItemSelectionRange::width(void) const + ?d_func@QGestureEvent@@AAEPAVQGestureEventPrivate@@XZ @ 12439 NONAME ; class QGestureEventPrivate * QGestureEvent::d_func(void) + ?trUtf8@QDataWidgetMapper@@SA?AVQString@@PBD0@Z @ 12440 NONAME ; class QString QDataWidgetMapper::trUtf8(char const *, char const *) + ?staticMetaObject@QActionGroup@@2UQMetaObject@@B @ 12441 NONAME ; struct QMetaObject const QActionGroup::staticMetaObject + ?setDashPattern@QPainterPathStroker@@QAEXW4PenStyle@Qt@@@Z @ 12442 NONAME ; void QPainterPathStroker::setDashPattern(enum Qt::PenStyle) + ?setCurrentWidget@QToolBox@@QAEXPAVQWidget@@@Z @ 12443 NONAME ; void QToolBox::setCurrentWidget(class QWidget *) + ?frameRect@QFrame@@QBE?AVQRect@@XZ @ 12444 NONAME ; class QRect QFrame::frameRect(void) const + ?trUtf8@QGraphicsAnchor@@SA?AVQString@@PBD0H@Z @ 12445 NONAME ; class QString QGraphicsAnchor::trUtf8(char const *, char const *, int) + ?declarationsForNode@StyleSelector@QCss@@QAE?AV?$QVector@UDeclaration@QCss@@@@TNodePtr@12@PBD@Z @ 12446 NONAME ; class QVector QCss::StyleSelector::declarationsForNode(union QCss::StyleSelector::NodePtr, char const *) + ?fileName@QFileSystemModel@@QBE?AVQString@@ABVQModelIndex@@@Z @ 12447 NONAME ; class QString QFileSystemModel::fileName(class QModelIndex const &) const + ?itemSpacing@QGraphicsLinearLayout@@QBEMH@Z @ 12448 NONAME ; float QGraphicsLinearLayout::itemSpacing(int) const + ?fromData@QBitmap@@SA?AV1@ABVQSize@@PBEW4Format@QImage@@@Z @ 12449 NONAME ; class QBitmap QBitmap::fromData(class QSize const &, unsigned char const *, enum QImage::Format) + ?qt_metacall@QTextObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12450 NONAME ; int QTextObject::qt_metacall(enum QMetaObject::Call, int, void * *) + ?verticalScrollbarValueChanged@QAbstractItemView@@MAEXH@Z @ 12451 NONAME ; void QAbstractItemView::verticalScrollbarValueChanged(int) + ?xOffset@QGraphicsDropShadowEffect@@QBEMXZ @ 12452 NONAME ; float QGraphicsDropShadowEffect::xOffset(void) const + ?availableSizes@QIconEngineV2@@QAE?AV?$QList@VQSize@@@@W4Mode@QIcon@@W4State@4@@Z @ 12453 NONAME ; class QList QIconEngineV2::availableSizes(enum QIcon::Mode, enum QIcon::State) + ?getStaticMetaObject@QSortFilterProxyModel@@SAABUQMetaObject@@XZ @ 12454 NONAME ; struct QMetaObject const & QSortFilterProxyModel::getStaticMetaObject(void) + ?restoreState@QHeaderView@@QAE_NABVQByteArray@@@Z @ 12455 NONAME ; bool QHeaderView::restoreState(class QByteArray const &) + ??0QStyleOptionToolBar@@QAE@ABV0@@Z @ 12456 NONAME ; QStyleOptionToolBar::QStyleOptionToolBar(class QStyleOptionToolBar const &) + ?brushProperty@QTextFormat@@QBE?AVQBrush@@H@Z @ 12457 NONAME ; class QBrush QTextFormat::brushProperty(int) const + ?topLevelAt@QApplication@@SAPAVQWidget@@HH@Z @ 12458 NONAME ; class QWidget * QApplication::topLevelAt(int, int) + ?setSortingEnabled@QTreeWidget@@QAEX_N@Z @ 12459 NONAME ; void QTreeWidget::setSortingEnabled(bool) + ?usesScrollButtons@QTabWidget@@QBE_NXZ @ 12460 NONAME ; bool QTabWidget::usesScrollButtons(void) const + ?changeEvent@QAbstractButton@@MAEXPAVQEvent@@@Z @ 12461 NONAME ; void QAbstractButton::changeEvent(class QEvent *) + ?addRow@QFormLayout@@QAEXABVQString@@PAVQWidget@@@Z @ 12462 NONAME ; void QFormLayout::addRow(class QString const &, class QWidget *) + ?addPath@QGraphicsScene@@QAEPAVQGraphicsPathItem@@ABVQPainterPath@@ABVQPen@@ABVQBrush@@@Z @ 12463 NONAME ; class QGraphicsPathItem * QGraphicsScene::addPath(class QPainterPath const &, class QPen const &, class QBrush const &) + ?d_func@QDataWidgetMapper@@ABEPBVQDataWidgetMapperPrivate@@XZ @ 12464 NONAME ; class QDataWidgetMapperPrivate const * QDataWidgetMapper::d_func(void) const + ?trUtf8@QDial@@SA?AVQString@@PBD0H@Z @ 12465 NONAME ; class QString QDial::trUtf8(char const *, char const *, int) + ?sizeHint@QSlider@@UBE?AVQSize@@XZ @ 12466 NONAME ; class QSize QSlider::sizeHint(void) const + ?totalHeightForWidth@QLayout@@QBEHH@Z @ 12467 NONAME ; int QLayout::totalHeightForWidth(int) const + ?itemFromIndex@QTreeWidget@@IBEPAVQTreeWidgetItem@@ABVQModelIndex@@@Z @ 12468 NONAME ; class QTreeWidgetItem * QTreeWidget::itemFromIndex(class QModelIndex const &) const + ?tr@QAction@@SA?AVQString@@PBD0H@Z @ 12469 NONAME ; class QString QAction::tr(char const *, char const *, int) + ?app_cspec@QApplicationPrivate@@2HA @ 12470 NONAME ; int QApplicationPrivate::app_cspec + ?mapFromWS@QWidgetPrivate@@QBE?AVQRect@@ABV2@@Z @ 12471 NONAME ; class QRect QWidgetPrivate::mapFromWS(class QRect const &) const + ?mouseMoveEvent@QTextEdit@@MAEXPAVQMouseEvent@@@Z @ 12472 NONAME ; void QTextEdit::mouseMoveEvent(class QMouseEvent *) + ?opaqueArea@QGraphicsPixmapItem@@UBE?AVQPainterPath@@XZ @ 12473 NONAME ; class QPainterPath QGraphicsPixmapItem::opaqueArea(void) const + ?calculateTabWidth@QTextEngine@@QBE?AUQFixed@@HU2@@Z @ 12474 NONAME ; struct QFixed QTextEngine::calculateTabWidth(int, struct QFixed) const + ?getStaticMetaObject@QHeaderView@@SAABUQMetaObject@@XZ @ 12475 NONAME ; struct QMetaObject const & QHeaderView::getStaticMetaObject(void) + ?isCommitPage@QWizardPage@@QBE_NXZ @ 12476 NONAME ; bool QWizardPage::isCommitPage(void) const + ?insertRow@QStandardItem@@QAEXHABV?$QList@PAVQStandardItem@@@@@Z @ 12477 NONAME ; void QStandardItem::insertRow(int, class QList const &) + ?row@QTextTableCell@@QBEHXZ @ 12478 NONAME ; int QTextTableCell::row(void) const + ?addRect@QGraphicsScene@@QAEPAVQGraphicsRectItem@@MMMMABVQPen@@ABVQBrush@@@Z @ 12479 NONAME ; class QGraphicsRectItem * QGraphicsScene::addRect(float, float, float, float, class QPen const &, class QBrush const &) + ??0QTableWidgetItem@@QAE@ABVQString@@H@Z @ 12480 NONAME ; QTableWidgetItem::QTableWidgetItem(class QString const &, int) + ?tr@QScrollBar@@SA?AVQString@@PBD0H@Z @ 12481 NONAME ; class QString QScrollBar::tr(char const *, char const *, int) + ?trUtf8@QGuiPlatformPlugin@@SA?AVQString@@PBD0@Z @ 12482 NONAME ; class QString QGuiPlatformPlugin::trUtf8(char const *, char const *) + ?tr@QDateTimeEdit@@SA?AVQString@@PBD0@Z @ 12483 NONAME ; class QString QDateTimeEdit::tr(char const *, char const *) + ?createState@QPaintEngineEx@@UBEPAVQPainterState@@PAV2@@Z @ 12484 NONAME ; class QPainterState * QPaintEngineEx::createState(class QPainterState *) const + ??0QTreeWidgetItem@@QAE@ABVQStringList@@H@Z @ 12485 NONAME ; QTreeWidgetItem::QTreeWidgetItem(class QStringList const &, int) + ?stripString@QLineControl@@ABE?AVQString@@ABV2@@Z @ 12486 NONAME ; class QString QLineControl::stripString(class QString const &) const + ?drawPicture@QPainter@@QAEXHHABVQPicture@@@Z @ 12487 NONAME ; void QPainter::drawPicture(int, int, class QPicture const &) + ?itemAt@QGraphicsScene@@QBEPAVQGraphicsItem@@MMABVQTransform@@@Z @ 12488 NONAME ; class QGraphicsItem * QGraphicsScene::itemAt(float, float, class QTransform const &) const + ?whatsThis@QAction@@QBE?AVQString@@XZ @ 12489 NONAME ; class QString QAction::whatsThis(void) const + ?displayFormat@QDateTimeEdit@@QBE?AVQString@@XZ @ 12490 NONAME ; class QString QDateTimeEdit::displayFormat(void) const + ?d_func@QGraphicsGridLayout@@ABEPBVQGraphicsGridLayoutPrivate@@XZ @ 12491 NONAME ; class QGraphicsGridLayoutPrivate const * QGraphicsGridLayout::d_func(void) const + ??0QTextLine@@AAE@HPAVQTextEngine@@@Z @ 12492 NONAME ; QTextLine::QTextLine(int, class QTextEngine *) + ?staticMetaObject@QItemDelegate@@2UQMetaObject@@B @ 12493 NONAME ; struct QMetaObject const QItemDelegate::staticMetaObject + ??1QFrame@@UAE@XZ @ 12494 NONAME ; QFrame::~QFrame(void) + ?charFormat@QTextFragment@@QBE?AVQTextCharFormat@@XZ @ 12495 NONAME ; class QTextCharFormat QTextFragment::charFormat(void) const + ?y@QMouseEvent@@QBEHXZ @ 12496 NONAME ; int QMouseEvent::y(void) const + ?setWidth@QTextFrameFormat@@QAEXM@Z @ 12497 NONAME ; void QTextFrameFormat::setWidth(float) + ?write@QStandardItem@@UBEXAAVQDataStream@@@Z @ 12498 NONAME ; void QStandardItem::write(class QDataStream &) const + ?updateCacheIfNecessary@QWidgetItemV2@@ABEXXZ @ 12499 NONAME ; void QWidgetItemV2::updateCacheIfNecessary(void) const + ?currentColor@QColorDialog@@QBE?AVQColor@@XZ @ 12500 NONAME ; class QColor QColorDialog::currentColor(void) const + ?mapToSource@QSortFilterProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 12501 NONAME ; class QModelIndex QSortFilterProxyModel::mapToSource(class QModelIndex const &) const + ?parent@QFileSystemModel@@UBE?AVQModelIndex@@ABV2@@Z @ 12502 NONAME ; class QModelIndex QFileSystemModel::parent(class QModelIndex const &) const + ?layoutDirection@QLineControl@@QBE?AW4LayoutDirection@Qt@@XZ @ 12503 NONAME ; enum Qt::LayoutDirection QLineControl::layoutDirection(void) const + ?data@QSortFilterProxyModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 12504 NONAME ; class QVariant QSortFilterProxyModel::data(class QModelIndex const &, int) const + ?setEditTriggers@QAbstractItemView@@QAEXV?$QFlags@W4EditTrigger@QAbstractItemView@@@@@Z @ 12505 NONAME ; void QAbstractItemView::setEditTriggers(class QFlags) + ??1QGraphicsPathItem@@UAE@XZ @ 12506 NONAME ; QGraphicsPathItem::~QGraphicsPathItem(void) + ?event@QGraphicsScene@@MAE_NPAVQEvent@@@Z @ 12507 NONAME ; bool QGraphicsScene::event(class QEvent *) + ?mapToItem@QGraphicsItem@@QBE?AVQPolygonF@@PBV1@ABV2@@Z @ 12508 NONAME ; class QPolygonF QGraphicsItem::mapToItem(class QGraphicsItem const *, class QPolygonF const &) const + ?tr@QIconEnginePluginV2@@SA?AVQString@@PBD0@Z @ 12509 NONAME ; class QString QIconEnginePluginV2::tr(char const *, char const *) + ?tabCloseRequested@QTabWidget@@IAEXH@Z @ 12510 NONAME ; void QTabWidget::tabCloseRequested(int) + ?addPixmapDestructionHook@QImagePixmapCleanupHooks@@QAEXP6AXPAVQPixmap@@@Z@Z @ 12511 NONAME ; void QImagePixmapCleanupHooks::addPixmapDestructionHook(void (*)(class QPixmap *)) + ?associatedGraphicsWidgets@QAction@@QBE?AV?$QList@PAVQGraphicsWidget@@@@XZ @ 12512 NONAME ; class QList QAction::associatedGraphicsWidgets(void) const + ?start@QLineControl@@QBEHXZ @ 12513 NONAME ; int QLineControl::start(void) const + ?mousePressEvent@QGraphicsItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12514 NONAME ; void QGraphicsItem::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?takeChild@QStandardItem@@QAEPAV1@HH@Z @ 12515 NONAME ; class QStandardItem * QStandardItem::takeChild(int, int) + ?tr@QPixmapColorizeFilter@@SA?AVQString@@PBD0H@Z @ 12516 NONAME ; class QString QPixmapColorizeFilter::tr(char const *, char const *, int) + ?standardButtons@QMessageBox@@QBE?AV?$QFlags@W4StandardButton@QMessageBox@@@@XZ @ 12517 NONAME ; class QFlags QMessageBox::standardButtons(void) const + ?inputMethodQuery@QPlainTextEdit@@MBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 12518 NONAME ; class QVariant QPlainTextEdit::inputMethodQuery(enum Qt::InputMethodQuery) const + ?setBackgroundBrush@QGraphicsView@@QAEXABVQBrush@@@Z @ 12519 NONAME ; void QGraphicsView::setBackgroundBrush(class QBrush const &) + ?scanLine@QImage@@QBEPBEH@Z @ 12520 NONAME ; unsigned char const * QImage::scanLine(int) const + ??1QIconEnginePluginV2@@UAE@XZ @ 12521 NONAME ; QIconEnginePluginV2::~QIconEnginePluginV2(void) + ?lineSpacing@QFontMetricsF@@QBEMXZ @ 12522 NONAME ; float QFontMetricsF::lineSpacing(void) const + ?description@QCommandLinkButton@@QBE?AVQString@@XZ @ 12523 NONAME ; class QString QCommandLinkButton::description(void) const + ?showEvent@QDialog@@MAEXPAVQShowEvent@@@Z @ 12524 NONAME ; void QDialog::showEvent(class QShowEvent *) + ?actualSize@QIcon@@QBE?AVQSize@@ABV2@W4Mode@1@W4State@1@@Z @ 12525 NONAME ; class QSize QIcon::actualSize(class QSize const &, enum QIcon::Mode, enum QIcon::State) const + ?trUtf8@QTextBlockGroup@@SA?AVQString@@PBD0H@Z @ 12526 NONAME ; class QString QTextBlockGroup::trUtf8(char const *, char const *, int) + ??4QStyleOptionTabV3@@QAEAAV0@ABVQStyleOptionTab@@@Z @ 12527 NONAME ; class QStyleOptionTabV3 & QStyleOptionTabV3::operator=(class QStyleOptionTab const &) + ?handlesChildEvents@QGraphicsItem@@QBE_NXZ @ 12528 NONAME ; bool QGraphicsItem::handlesChildEvents(void) const + ?qt_metacast@QPanGesture@@UAEPAXPBD@Z @ 12529 NONAME ; void * QPanGesture::qt_metacast(char const *) + ??_0QVector2D@@QAEAAV0@M@Z @ 12530 NONAME ; class QVector2D & QVector2D::operator/=(float) + ?event@QScrollArea@@MAE_NPAVQEvent@@@Z @ 12531 NONAME ; bool QScrollArea::event(class QEvent *) + ?maximumSize@QSpacerItem@@UBE?AVQSize@@XZ @ 12532 NONAME ; class QSize QSpacerItem::maximumSize(void) const + ?parseFontName@QFontDatabase@@CAXABVQString@@AAV2@1@Z @ 12533 NONAME ; void QFontDatabase::parseFontName(class QString const &, class QString &, class QString &) + ?setInputMethodHints@QGraphicsItem@@QAEXV?$QFlags@W4InputMethodHint@Qt@@@@@Z @ 12534 NONAME ; void QGraphicsItem::setInputMethodHints(class QFlags) + ?setSortCaseSensitivity@QSortFilterProxyModel@@QAEXW4CaseSensitivity@Qt@@@Z @ 12535 NONAME ; void QSortFilterProxyModel::setSortCaseSensitivity(enum Qt::CaseSensitivity) + ?proxy@QStyle@@QBEPBV1@XZ @ 12536 NONAME ; class QStyle const * QStyle::proxy(void) const + ?setFocusHelper@QGraphicsItemPrivate@@QAEXW4FocusReason@Qt@@_N@Z @ 12537 NONAME ; void QGraphicsItemPrivate::setFocusHelper(enum Qt::FocusReason, bool) + ?trUtf8@QSessionManager@@SA?AVQString@@PBD0@Z @ 12538 NONAME ; class QString QSessionManager::trUtf8(char const *, char const *) + ?loadResource@QTextEdit@@UAE?AVQVariant@@HABVQUrl@@@Z @ 12539 NONAME ; class QVariant QTextEdit::loadResource(int, class QUrl const &) + ??0QStyleOptionDockWidgetV2@@IAE@H@Z @ 12540 NONAME ; QStyleOptionDockWidgetV2::QStyleOptionDockWidgetV2(int) + ??0QSplitter@@QAE@PAVQWidget@@@Z @ 12541 NONAME ; QSplitter::QSplitter(class QWidget *) + ?DocumentLengthForFep@QCoeFepInputContext@@UBEHXZ @ 12542 NONAME ; int QCoeFepInputContext::DocumentLengthForFep(void) const + ??0QShowEvent@@QAE@XZ @ 12543 NONAME ; QShowEvent::QShowEvent(void) + diff --git a/src/s60installs/bwins/QtMultimediau.def b/src/s60installs/bwins/QtMultimediau.def new file mode 100644 index 0000000..deae752 --- /dev/null +++ b/src/s60installs/bwins/QtMultimediau.def @@ -0,0 +1,273 @@ +EXPORTS + ?format@QAudioInput@@QBE?AVQAudioFormat@@XZ @ 1 NONAME ; class QAudioFormat QAudioInput::format(void) const + ??9QAudioFormat@@QBE_NABV0@@Z @ 2 NONAME ; bool QAudioFormat::operator!=(class QAudioFormat const &) const + ?totalTime@QAudioInput@@QBE_JXZ @ 3 NONAME ; long long QAudioInput::totalTime(void) const + ?tr@QAudioEnginePlugin@@SA?AVQString@@PBD0@Z @ 4 NONAME ; class QString QAudioEnginePlugin::tr(char const *, char const *) + ?isMapped@QVideoFrame@@QBE_NXZ @ 5 NONAME ; bool QVideoFrame::isMapped(void) const + ?staticMetaObject@QAudioInput@@2UQMetaObject@@B @ 6 NONAME ; struct QMetaObject const QAudioInput::staticMetaObject + ??8QAudioFormat@@QBE_NABV0@@Z @ 7 NONAME ; bool QAudioFormat::operator==(class QAudioFormat const &) const + ?tr@QAudioOutput@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString QAudioOutput::tr(char const *, char const *) + ?tr@QAbstractVideoSurface@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString QAbstractVideoSurface::tr(char const *, char const *) + ?width@QVideoFrame@@QBEHXZ @ 10 NONAME ; int QVideoFrame::width(void) const + ?setFrameSize@QVideoSurfaceFormat@@QAEXABVQSize@@W4ViewportMode@1@@Z @ 11 NONAME ; void QVideoSurfaceFormat::setFrameSize(class QSize const &, enum QVideoSurfaceFormat::ViewportMode) + ?trUtf8@QAbstractAudioInput@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString QAbstractAudioInput::trUtf8(char const *, char const *, int) + ?metaObject@QAbstractAudioDeviceInfo@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * QAbstractAudioDeviceInfo::metaObject(void) const + ?isFormatSupported@QAbstractVideoSurface@@UBE_NABVQVideoSurfaceFormat@@PAV2@@Z @ 14 NONAME ; bool QAbstractVideoSurface::isFormatSupported(class QVideoSurfaceFormat const &, class QVideoSurfaceFormat *) const + ?setFieldType@QVideoFrame@@QAEXW4FieldType@1@@Z @ 15 NONAME ; void QVideoFrame::setFieldType(enum QVideoFrame::FieldType) + ?trUtf8@QAbstractAudioDeviceInfo@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString QAbstractAudioDeviceInfo::trUtf8(char const *, char const *) + ?tr@QAbstractAudioOutput@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString QAbstractAudioOutput::tr(char const *, char const *) + ??4QAudioDeviceInfo@@QAEAAV0@ABV0@@Z @ 18 NONAME ; class QAudioDeviceInfo & QAudioDeviceInfo::operator=(class QAudioDeviceInfo const &) + ??0QVideoFrame@@QAE@XZ @ 19 NONAME ; QVideoFrame::QVideoFrame(void) + ?state@QAudioOutput@@QBE?AW4State@QAudio@@XZ @ 20 NONAME ; enum QAudio::State QAudioOutput::state(void) const + ?qt_metacall@QAbstractAudioDeviceInfo@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 21 NONAME ; int QAbstractAudioDeviceInfo::qt_metacall(enum QMetaObject::Call, int, void * *) + ?deviceName@QAudioDeviceInfo@@QBE?AVQString@@XZ @ 22 NONAME ; class QString QAudioDeviceInfo::deviceName(void) const + ?start@QAudioOutput@@QAEPAVQIODevice@@PAV2@@Z @ 23 NONAME ; class QIODevice * QAudioOutput::start(class QIODevice *) + ?start@QAudioInput@@QAEPAVQIODevice@@PAV2@@Z @ 24 NONAME ; class QIODevice * QAudioInput::start(class QIODevice *) + ?setBufferSize@QAudioOutput@@QAEXH@Z @ 25 NONAME ; void QAudioOutput::setBufferSize(int) + ??6@YA?AVQDebug@@V0@ABVQVideoSurfaceFormat@@@Z @ 26 NONAME ; class QDebug operator<<(class QDebug, class QVideoSurfaceFormat const &) + ??_EQAbstractVideoSurface@@UAE@I@Z @ 27 NONAME ; QAbstractVideoSurface::~QAbstractVideoSurface(unsigned int) + ??0QAbstractVideoBuffer@@IAE@AAVQAbstractVideoBufferPrivate@@W4HandleType@0@@Z @ 28 NONAME ; QAbstractVideoBuffer::QAbstractVideoBuffer(class QAbstractVideoBufferPrivate &, enum QAbstractVideoBuffer::HandleType) + ?qt_metacall@QAudioInput@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int QAudioInput::qt_metacall(enum QMetaObject::Call, int, void * *) + ??4QVideoSurfaceFormat@@QAEAAV0@ABV0@@Z @ 30 NONAME ; class QVideoSurfaceFormat & QVideoSurfaceFormat::operator=(class QVideoSurfaceFormat const &) + ??1QAbstractVideoBuffer@@UAE@XZ @ 31 NONAME ; QAbstractVideoBuffer::~QAbstractVideoBuffer(void) + ?stop@QAudioOutput@@QAEXXZ @ 32 NONAME ; void QAudioOutput::stop(void) + ?setYuvColorSpace@QVideoSurfaceFormat@@QAEXW4YuvColorSpace@1@@Z @ 33 NONAME ; void QVideoSurfaceFormat::setYuvColorSpace(enum QVideoSurfaceFormat::YuvColorSpace) + ?bytesFree@QAudioOutput@@QBEHXZ @ 34 NONAME ; int QAudioOutput::bytesFree(void) const + ?trUtf8@QAbstractAudioOutput@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString QAbstractAudioOutput::trUtf8(char const *, char const *, int) + ??9QVideoSurfaceFormat@@QBE_NABV0@@Z @ 36 NONAME ; bool QVideoSurfaceFormat::operator!=(class QVideoSurfaceFormat const &) const + ?size@QVideoFrame@@QBE?AVQSize@@XZ @ 37 NONAME ; class QSize QVideoFrame::size(void) const + ?d_func@QAbstractVideoSurface@@AAEPAVQAbstractVideoSurfacePrivate@@XZ @ 38 NONAME ; class QAbstractVideoSurfacePrivate * QAbstractVideoSurface::d_func(void) + ?qt_metacall@QAudioEnginePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 39 NONAME ; int QAudioEnginePlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EQMemoryVideoBuffer@@UAE@I@Z @ 40 NONAME ; QMemoryVideoBuffer::~QMemoryVideoBuffer(unsigned int) + ??0QAbstractAudioInput@@QAE@XZ @ 41 NONAME ; QAbstractAudioInput::QAbstractAudioInput(void) + ?bits@QVideoFrame@@QBEPBEXZ @ 42 NONAME ; unsigned char const * QVideoFrame::bits(void) const + ?supportedFormatsChanged@QAbstractVideoSurface@@IAEXXZ @ 43 NONAME ; void QAbstractVideoSurface::supportedFormatsChanged(void) + ?mapMode@QVideoFrame@@QBE?AW4MapMode@QAbstractVideoBuffer@@XZ @ 44 NONAME ; enum QAbstractVideoBuffer::MapMode QVideoFrame::mapMode(void) const + ?trUtf8@QAbstractAudioInput@@SA?AVQString@@PBD0@Z @ 45 NONAME ; class QString QAbstractAudioInput::trUtf8(char const *, char const *) + ?trUtf8@QAudioOutput@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString QAudioOutput::trUtf8(char const *, char const *) + ?setSampleType@QAudioFormat@@QAEXW4SampleType@1@@Z @ 47 NONAME ; void QAudioFormat::setSampleType(enum QAudioFormat::SampleType) + ?format@QAudioOutput@@QBE?AVQAudioFormat@@XZ @ 48 NONAME ; class QAudioFormat QAudioOutput::format(void) const + ?property@QVideoSurfaceFormat@@QBE?AVQVariant@@PBD@Z @ 49 NONAME ; class QVariant QVideoSurfaceFormat::property(char const *) const + ?qt_metacast@QAudioOutput@@UAEPAXPBD@Z @ 50 NONAME ; void * QAudioOutput::qt_metacast(char const *) + ??_EQAudioOutput@@UAE@I@Z @ 51 NONAME ; QAudioOutput::~QAudioOutput(unsigned int) + ?yuvColorSpace@QVideoSurfaceFormat@@QBE?AW4YuvColorSpace@1@XZ @ 52 NONAME ; enum QVideoSurfaceFormat::YuvColorSpace QVideoSurfaceFormat::yuvColorSpace(void) const + ?supportedSampleTypes@QAudioDeviceInfo@@QBE?AV?$QList@W4SampleType@QAudioFormat@@@@XZ @ 53 NONAME ; class QList QAudioDeviceInfo::supportedSampleTypes(void) const + ?sizeHint@QVideoSurfaceFormat@@QBE?AVQSize@@XZ @ 54 NONAME ; class QSize QVideoSurfaceFormat::sizeHint(void) const + ?setError@QAbstractVideoSurface@@IAEXW4Error@1@@Z @ 55 NONAME ; void QAbstractVideoSurface::setError(enum QAbstractVideoSurface::Error) + ?qt_metacall@QAbstractAudioInput@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 56 NONAME ; int QAbstractAudioInput::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isWritable@QVideoFrame@@QBE_NXZ @ 57 NONAME ; bool QVideoFrame::isWritable(void) const + ?sampleType@QAudioFormat@@QBE?AW4SampleType@1@XZ @ 58 NONAME ; enum QAudioFormat::SampleType QAudioFormat::sampleType(void) const + ??0QAudioOutput@@QAE@ABVQAudioFormat@@PAVQObject@@@Z @ 59 NONAME ; QAudioOutput::QAudioOutput(class QAudioFormat const &, class QObject *) + ?d_func@QMemoryVideoBuffer@@AAEPAVQMemoryVideoBufferPrivate@@XZ @ 60 NONAME ; class QMemoryVideoBufferPrivate * QMemoryVideoBuffer::d_func(void) + ?setProperty@QVideoSurfaceFormat@@QAEXPBDABVQVariant@@@Z @ 61 NONAME ; void QVideoSurfaceFormat::setProperty(char const *, class QVariant const &) + ?pixelFormat@QVideoFrame@@QBE?AW4PixelFormat@1@XZ @ 62 NONAME ; enum QVideoFrame::PixelFormat QVideoFrame::pixelFormat(void) const + ?mapMode@QMemoryVideoBuffer@@UBE?AW4MapMode@QAbstractVideoBuffer@@XZ @ 63 NONAME ; enum QAbstractVideoBuffer::MapMode QMemoryVideoBuffer::mapMode(void) const + ?qt_metacall@QAudioOutput@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 64 NONAME ; int QAudioOutput::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fieldType@QVideoFrame@@QBE?AW4FieldType@1@XZ @ 65 NONAME ; enum QVideoFrame::FieldType QVideoFrame::fieldType(void) const + ?staticMetaObject@QAbstractAudioInput@@2UQMetaObject@@B @ 66 NONAME ; struct QMetaObject const QAbstractAudioInput::staticMetaObject + ?tr@QAbstractAudioInput@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString QAbstractAudioInput::tr(char const *, char const *) + ?setByteOrder@QAudioFormat@@QAEXW4Endian@1@@Z @ 68 NONAME ; void QAudioFormat::setByteOrder(enum QAudioFormat::Endian) + ?qt_metacast@QAbstractAudioDeviceInfo@@UAEPAXPBD@Z @ 69 NONAME ; void * QAbstractAudioDeviceInfo::qt_metacast(char const *) + ?staticMetaObject@QAudioEnginePlugin@@2UQMetaObject@@B @ 70 NONAME ; struct QMetaObject const QAudioEnginePlugin::staticMetaObject + ??_EQAudioInput@@UAE@I@Z @ 71 NONAME ; QAudioInput::~QAudioInput(unsigned int) + ?clock@QAudioInput@@QBE_JXZ @ 72 NONAME ; long long QAudioInput::clock(void) const + ?setPixelAspectRatio@QVideoSurfaceFormat@@QAEXABVQSize@@@Z @ 73 NONAME ; void QVideoSurfaceFormat::setPixelAspectRatio(class QSize const &) + ?isNull@QAudioFormat@@QBE_NXZ @ 74 NONAME ; bool QAudioFormat::isNull(void) const + ?supportedChannels@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 75 NONAME ; class QList QAudioDeviceInfo::supportedChannels(void) const + ?getStaticMetaObject@QAudioOutput@@SAABUQMetaObject@@XZ @ 76 NONAME ; struct QMetaObject const & QAudioOutput::getStaticMetaObject(void) + ?stateChanged@QAbstractAudioOutput@@IAEXW4State@QAudio@@@Z @ 77 NONAME ; void QAbstractAudioOutput::stateChanged(enum QAudio::State) + ?d_func@QImageVideoBuffer@@AAEPAVQImageVideoBufferPrivate@@XZ @ 78 NONAME ; class QImageVideoBufferPrivate * QImageVideoBuffer::d_func(void) + ?unmap@QVideoFrame@@QAEXXZ @ 79 NONAME ; void QVideoFrame::unmap(void) + ?staticMetaObject@QAbstractAudioOutput@@2UQMetaObject@@B @ 80 NONAME ; struct QMetaObject const QAbstractAudioOutput::staticMetaObject + ?qt_metacast@QAbstractAudioInput@@UAEPAXPBD@Z @ 81 NONAME ; void * QAbstractAudioInput::qt_metacast(char const *) + ?byteOrder@QAudioFormat@@QBE?AW4Endian@1@XZ @ 82 NONAME ; enum QAudioFormat::Endian QAudioFormat::byteOrder(void) const + ??_EQAbstractAudioOutput@@UAE@I@Z @ 83 NONAME ; QAbstractAudioOutput::~QAbstractAudioOutput(unsigned int) + ?error@QAbstractVideoSurface@@QBE?AW4Error@1@XZ @ 84 NONAME ; enum QAbstractVideoSurface::Error QAbstractVideoSurface::error(void) const + ?d_func@QAbstractVideoBuffer@@ABEPBVQAbstractVideoBufferPrivate@@XZ @ 85 NONAME ; class QAbstractVideoBufferPrivate const * QAbstractVideoBuffer::d_func(void) const + ?setScanLineDirection@QVideoSurfaceFormat@@QAEXW4Direction@1@@Z @ 86 NONAME ; void QVideoSurfaceFormat::setScanLineDirection(enum QVideoSurfaceFormat::Direction) + ?supportedSampleSizes@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 87 NONAME ; class QList QAudioDeviceInfo::supportedSampleSizes(void) const + ??1QAudioDeviceInfo@@QAE@XZ @ 88 NONAME ; QAudioDeviceInfo::~QAudioDeviceInfo(void) + ??1QMemoryVideoBuffer@@UAE@XZ @ 89 NONAME ; QMemoryVideoBuffer::~QMemoryVideoBuffer(void) + ?nearestFormat@QAudioDeviceInfo@@QBE?AVQAudioFormat@@ABV2@@Z @ 90 NONAME ; class QAudioFormat QAudioDeviceInfo::nearestFormat(class QAudioFormat const &) const + ??0QVideoSurfaceFormat@@QAE@XZ @ 91 NONAME ; QVideoSurfaceFormat::QVideoSurfaceFormat(void) + ?trUtf8@QAudioOutput@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString QAudioOutput::trUtf8(char const *, char const *, int) + ?numBytes@QVideoFrame@@QBEHXZ @ 93 NONAME ; int QVideoFrame::numBytes(void) const + ?isFormatSupported@QAudioDeviceInfo@@QBE_NABVQAudioFormat@@@Z @ 94 NONAME ; bool QAudioDeviceInfo::isFormatSupported(class QAudioFormat const &) const + ?isNull@QAudioDeviceInfo@@QBE_NXZ @ 95 NONAME ; bool QAudioDeviceInfo::isNull(void) const + ?supportedByteOrders@QAudioDeviceInfo@@QBE?AV?$QList@W4Endian@QAudioFormat@@@@XZ @ 96 NONAME ; class QList QAudioDeviceInfo::supportedByteOrders(void) const + ??0QAudioEngineFactoryInterface@@QAE@XZ @ 97 NONAME ; QAudioEngineFactoryInterface::QAudioEngineFactoryInterface(void) + ?stop@QAudioInput@@QAEXXZ @ 98 NONAME ; void QAudioInput::stop(void) + ??0QVideoFrame@@QAE@ABVQImage@@@Z @ 99 NONAME ; QVideoFrame::QVideoFrame(class QImage const &) + ?setFrequency@QAudioFormat@@QAEXH@Z @ 100 NONAME ; void QAudioFormat::setFrequency(int) + ?realm@QAudioDeviceInfo@@ABE?AVQString@@XZ @ 101 NONAME ; class QString QAudioDeviceInfo::realm(void) const + ?notify@QAbstractAudioInput@@IAEXXZ @ 102 NONAME ; void QAbstractAudioInput::notify(void) + ?setPixelAspectRatio@QVideoSurfaceFormat@@QAEXHH@Z @ 103 NONAME ; void QVideoSurfaceFormat::setPixelAspectRatio(int, int) + ?getStaticMetaObject@QAbstractAudioDeviceInfo@@SAABUQMetaObject@@XZ @ 104 NONAME ; struct QMetaObject const & QAbstractAudioDeviceInfo::getStaticMetaObject(void) + ?notify@QAbstractAudioOutput@@IAEXXZ @ 105 NONAME ; void QAbstractAudioOutput::notify(void) + ?handle@QVideoFrame@@QBE?AVQVariant@@XZ @ 106 NONAME ; class QVariant QVideoFrame::handle(void) const + ?equivalentPixelFormat@QVideoFrame@@SA?AW4PixelFormat@1@W4Format@QImage@@@Z @ 107 NONAME ; enum QVideoFrame::PixelFormat QVideoFrame::equivalentPixelFormat(enum QImage::Format) + ?setNotifyInterval@QAudioInput@@QAEXH@Z @ 108 NONAME ; void QAudioInput::setNotifyInterval(int) + ?getStaticMetaObject@QAudioEnginePlugin@@SAABUQMetaObject@@XZ @ 109 NONAME ; struct QMetaObject const & QAudioEnginePlugin::getStaticMetaObject(void) + ??0QVideoFrame@@QAE@PAVQAbstractVideoBuffer@@ABVQSize@@W4PixelFormat@0@@Z @ 110 NONAME ; QVideoFrame::QVideoFrame(class QAbstractVideoBuffer *, class QSize const &, enum QVideoFrame::PixelFormat) + ?notifyInterval@QAudioOutput@@QBEHXZ @ 111 NONAME ; int QAudioOutput::notifyInterval(void) const + ??1QImageVideoBuffer@@UAE@XZ @ 112 NONAME ; QImageVideoBuffer::~QImageVideoBuffer(void) + ??1QAbstractAudioDeviceInfo@@UAE@XZ @ 113 NONAME ; QAbstractAudioDeviceInfo::~QAbstractAudioDeviceInfo(void) + ?staticMetaObject@QAudioOutput@@2UQMetaObject@@B @ 114 NONAME ; struct QMetaObject const QAudioOutput::staticMetaObject + ?propertyNames@QVideoSurfaceFormat@@QBE?AV?$QList@VQByteArray@@@@XZ @ 115 NONAME ; class QList QVideoSurfaceFormat::propertyNames(void) const + ??1QAudioEnginePlugin@@UAE@XZ @ 116 NONAME ; QAudioEnginePlugin::~QAudioEnginePlugin(void) + ??0QImageVideoBuffer@@QAE@ABVQImage@@@Z @ 117 NONAME ; QImageVideoBuffer::QImageVideoBuffer(class QImage const &) + ?frameSize@QVideoSurfaceFormat@@QBE?AVQSize@@XZ @ 118 NONAME ; class QSize QVideoSurfaceFormat::frameSize(void) const + ?bits@QVideoFrame@@QAEPAEXZ @ 119 NONAME ; unsigned char * QVideoFrame::bits(void) + ?trUtf8@QAudioEnginePlugin@@SA?AVQString@@PBD0H@Z @ 120 NONAME ; class QString QAudioEnginePlugin::trUtf8(char const *, char const *, int) + ??_EQAbstractAudioInput@@UAE@I@Z @ 121 NONAME ; QAbstractAudioInput::~QAbstractAudioInput(unsigned int) + ?error@QAudioOutput@@QBE?AW4Error@QAudio@@XZ @ 122 NONAME ; enum QAudio::Error QAudioOutput::error(void) const + ?d_func@QMemoryVideoBuffer@@ABEPBVQMemoryVideoBufferPrivate@@XZ @ 123 NONAME ; class QMemoryVideoBufferPrivate const * QMemoryVideoBuffer::d_func(void) const + ?pixelAspectRatio@QVideoSurfaceFormat@@QBE?AVQSize@@XZ @ 124 NONAME ; class QSize QVideoSurfaceFormat::pixelAspectRatio(void) const + ?isValid@QVideoFrame@@QBE_NXZ @ 125 NONAME ; bool QVideoFrame::isValid(void) const + ??4QAudioFormat@@QAEAAV0@ABV0@@Z @ 126 NONAME ; class QAudioFormat & QAudioFormat::operator=(class QAudioFormat const &) + ?isReadable@QVideoFrame@@QBE_NXZ @ 127 NONAME ; bool QVideoFrame::isReadable(void) const + ?totalTime@QAudioOutput@@QBE_JXZ @ 128 NONAME ; long long QAudioOutput::totalTime(void) const + ?qt_metacall@QAbstractAudioOutput@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 129 NONAME ; int QAbstractAudioOutput::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QAudioOutput@@QAE@ABVQAudioDeviceInfo@@ABVQAudioFormat@@PAVQObject@@@Z @ 130 NONAME ; QAudioOutput::QAudioOutput(class QAudioDeviceInfo const &, class QAudioFormat const &, class QObject *) + ??0QAudioInput@@QAE@ABVQAudioDeviceInfo@@ABVQAudioFormat@@PAVQObject@@@Z @ 131 NONAME ; QAudioInput::QAudioInput(class QAudioDeviceInfo const &, class QAudioFormat const &, class QObject *) + ?notify@QAudioInput@@IAEXXZ @ 132 NONAME ; void QAudioInput::notify(void) + ?periodSize@QAudioOutput@@QBEHXZ @ 133 NONAME ; int QAudioOutput::periodSize(void) const + ?tr@QAudioInput@@SA?AVQString@@PBD0H@Z @ 134 NONAME ; class QString QAudioInput::tr(char const *, char const *, int) + ??0QAudioDeviceInfo@@QAE@XZ @ 135 NONAME ; QAudioDeviceInfo::QAudioDeviceInfo(void) + ?setCodec@QAudioFormat@@QAEXABVQString@@@Z @ 136 NONAME ; void QAudioFormat::setCodec(class QString const &) + ?tr@QAudioEnginePlugin@@SA?AVQString@@PBD0H@Z @ 137 NONAME ; class QString QAudioEnginePlugin::tr(char const *, char const *, int) + ?deviceList@QAudioDeviceInfo@@SA?AV?$QList@VQAudioDeviceInfo@@@@W4Mode@QAudio@@@Z @ 138 NONAME ; class QList QAudioDeviceInfo::deviceList(enum QAudio::Mode) + ?pixelFormat@QVideoSurfaceFormat@@QBE?AW4PixelFormat@QVideoFrame@@XZ @ 139 NONAME ; enum QVideoFrame::PixelFormat QVideoSurfaceFormat::pixelFormat(void) const + ?handleType@QVideoSurfaceFormat@@QBE?AW4HandleType@QAbstractVideoBuffer@@XZ @ 140 NONAME ; enum QAbstractVideoBuffer::HandleType QVideoSurfaceFormat::handleType(void) const + ?clock@QAudioOutput@@QBE_JXZ @ 141 NONAME ; long long QAudioOutput::clock(void) const + ?map@QMemoryVideoBuffer@@UAEPAEW4MapMode@QAbstractVideoBuffer@@PAH1@Z @ 142 NONAME ; unsigned char * QMemoryVideoBuffer::map(enum QAbstractVideoBuffer::MapMode, int *, int *) + ?setNotifyInterval@QAudioOutput@@QAEXH@Z @ 143 NONAME ; void QAudioOutput::setNotifyInterval(int) + ?start@QAbstractVideoSurface@@UAE_NABVQVideoSurfaceFormat@@@Z @ 144 NONAME ; bool QAbstractVideoSurface::start(class QVideoSurfaceFormat const &) + ?staticMetaObject@QAbstractVideoSurface@@2UQMetaObject@@B @ 145 NONAME ; struct QMetaObject const QAbstractVideoSurface::staticMetaObject + ?trUtf8@QAbstractVideoSurface@@SA?AVQString@@PBD0@Z @ 146 NONAME ; class QString QAbstractVideoSurface::trUtf8(char const *, char const *) + ?state@QAudioInput@@QBE?AW4State@QAudio@@XZ @ 147 NONAME ; enum QAudio::State QAudioInput::state(void) const + ?tr@QAbstractAudioInput@@SA?AVQString@@PBD0H@Z @ 148 NONAME ; class QString QAbstractAudioInput::tr(char const *, char const *, int) + ??0QAbstractAudioDeviceInfo@@QAE@XZ @ 149 NONAME ; QAbstractAudioDeviceInfo::QAbstractAudioDeviceInfo(void) + ??0QVideoSurfaceFormat@@QAE@ABV0@@Z @ 150 NONAME ; QVideoSurfaceFormat::QVideoSurfaceFormat(class QVideoSurfaceFormat const &) + ?trUtf8@QAbstractAudioOutput@@SA?AVQString@@PBD0@Z @ 151 NONAME ; class QString QAbstractAudioOutput::trUtf8(char const *, char const *) + ?setStartTime@QVideoFrame@@QAEX_J@Z @ 152 NONAME ; void QVideoFrame::setStartTime(long long) + ?unmap@QMemoryVideoBuffer@@UAEXXZ @ 153 NONAME ; void QMemoryVideoBuffer::unmap(void) + ??_EQAbstractAudioDeviceInfo@@UAE@I@Z @ 154 NONAME ; QAbstractAudioDeviceInfo::~QAbstractAudioDeviceInfo(unsigned int) + ?setSampleSize@QAudioFormat@@QAEXH@Z @ 155 NONAME ; void QAudioFormat::setSampleSize(int) + ?stop@QAbstractVideoSurface@@UAEXXZ @ 156 NONAME ; void QAbstractVideoSurface::stop(void) + ?mode@QAudioDeviceInfo@@ABE?AW4Mode@QAudio@@XZ @ 157 NONAME ; enum QAudio::Mode QAudioDeviceInfo::mode(void) const + ?surfaceFormat@QAbstractVideoSurface@@QBE?AVQVideoSurfaceFormat@@XZ @ 158 NONAME ; class QVideoSurfaceFormat QAbstractVideoSurface::surfaceFormat(void) const + ?metaObject@QAbstractAudioOutput@@UBEPBUQMetaObject@@XZ @ 159 NONAME ; struct QMetaObject const * QAbstractAudioOutput::metaObject(void) const + ?trUtf8@QAbstractAudioDeviceInfo@@SA?AVQString@@PBD0H@Z @ 160 NONAME ; class QString QAbstractAudioDeviceInfo::trUtf8(char const *, char const *, int) + ??0QAudioFormat@@QAE@ABV0@@Z @ 161 NONAME ; QAudioFormat::QAudioFormat(class QAudioFormat const &) + ?viewport@QVideoSurfaceFormat@@QBE?AVQRect@@XZ @ 162 NONAME ; class QRect QVideoSurfaceFormat::viewport(void) const + ?bufferSize@QAudioInput@@QBEHXZ @ 163 NONAME ; int QAudioInput::bufferSize(void) const + ?resume@QAudioInput@@QAEXXZ @ 164 NONAME ; void QAudioInput::resume(void) + ?d_func@QImageVideoBuffer@@ABEPBVQImageVideoBufferPrivate@@XZ @ 165 NONAME ; class QImageVideoBufferPrivate const * QImageVideoBuffer::d_func(void) const + ??0QVideoSurfaceFormat@@QAE@ABVQSize@@W4PixelFormat@QVideoFrame@@W4HandleType@QAbstractVideoBuffer@@@Z @ 166 NONAME ; QVideoSurfaceFormat::QVideoSurfaceFormat(class QSize const &, enum QVideoFrame::PixelFormat, enum QAbstractVideoBuffer::HandleType) + ?bytesReady@QAudioInput@@QBEHXZ @ 167 NONAME ; int QAudioInput::bytesReady(void) const + ?error@QAudioInput@@QBE?AW4Error@QAudio@@XZ @ 168 NONAME ; enum QAudio::Error QAudioInput::error(void) const + ??0QAbstractVideoSurface@@QAE@PAVQObject@@@Z @ 169 NONAME ; QAbstractVideoSurface::QAbstractVideoSurface(class QObject *) + ?frameHeight@QVideoSurfaceFormat@@QBEHXZ @ 170 NONAME ; int QVideoSurfaceFormat::frameHeight(void) const + ?unmap@QImageVideoBuffer@@UAEXXZ @ 171 NONAME ; void QImageVideoBuffer::unmap(void) + ?tr@QAbstractAudioOutput@@SA?AVQString@@PBD0H@Z @ 172 NONAME ; class QString QAbstractAudioOutput::tr(char const *, char const *, int) + ?setFrameSize@QVideoSurfaceFormat@@QAEXHHW4ViewportMode@1@@Z @ 173 NONAME ; void QVideoSurfaceFormat::setFrameSize(int, int, enum QVideoSurfaceFormat::ViewportMode) + ??1QAbstractAudioInput@@UAE@XZ @ 174 NONAME ; QAbstractAudioInput::~QAbstractAudioInput(void) + ?setViewport@QVideoSurfaceFormat@@QAEXABVQRect@@@Z @ 175 NONAME ; void QVideoSurfaceFormat::setViewport(class QRect const &) + ?tr@QAbstractAudioDeviceInfo@@SA?AVQString@@PBD0H@Z @ 176 NONAME ; class QString QAbstractAudioDeviceInfo::tr(char const *, char const *, int) + ??1QAudioInput@@UAE@XZ @ 177 NONAME ; QAudioInput::~QAudioInput(void) + ?staticMetaObject@QAbstractAudioDeviceInfo@@2UQMetaObject@@B @ 178 NONAME ; struct QMetaObject const QAbstractAudioDeviceInfo::staticMetaObject + ??_EQAudioEnginePlugin@@UAE@I@Z @ 179 NONAME ; QAudioEnginePlugin::~QAudioEnginePlugin(unsigned int) + ?setEndTime@QVideoFrame@@QAEX_J@Z @ 180 NONAME ; void QVideoFrame::setEndTime(long long) + ?trUtf8@QAudioInput@@SA?AVQString@@PBD0H@Z @ 181 NONAME ; class QString QAudioInput::trUtf8(char const *, char const *, int) + ??0QVideoFrame@@QAE@ABV0@@Z @ 182 NONAME ; QVideoFrame::QVideoFrame(class QVideoFrame const &) + ?handleType@QVideoFrame@@QBE?AW4HandleType@QAbstractVideoBuffer@@XZ @ 183 NONAME ; enum QAbstractVideoBuffer::HandleType QVideoFrame::handleType(void) const + ?mapMode@QImageVideoBuffer@@UBE?AW4MapMode@QAbstractVideoBuffer@@XZ @ 184 NONAME ; enum QAbstractVideoBuffer::MapMode QImageVideoBuffer::mapMode(void) const + ?trUtf8@QAbstractVideoSurface@@SA?AVQString@@PBD0H@Z @ 185 NONAME ; class QString QAbstractVideoSurface::trUtf8(char const *, char const *, int) + ?tr@QAudioOutput@@SA?AVQString@@PBD0H@Z @ 186 NONAME ; class QString QAudioOutput::tr(char const *, char const *, int) + ?setChannels@QAudioFormat@@QAEXH@Z @ 187 NONAME ; void QAudioFormat::setChannels(int) + ?bufferSize@QAudioOutput@@QBEHXZ @ 188 NONAME ; int QAudioOutput::bufferSize(void) const + ?supportedCodecs@QAudioDeviceInfo@@QBE?AVQStringList@@XZ @ 189 NONAME ; class QStringList QAudioDeviceInfo::supportedCodecs(void) const + ?map@QVideoFrame@@QAE_NW4MapMode@QAbstractVideoBuffer@@@Z @ 190 NONAME ; bool QVideoFrame::map(enum QAbstractVideoBuffer::MapMode) + ?tr@QAbstractVideoSurface@@SA?AVQString@@PBD0H@Z @ 191 NONAME ; class QString QAbstractVideoSurface::tr(char const *, char const *, int) + ?periodSize@QAudioInput@@QBEHXZ @ 192 NONAME ; int QAudioInput::periodSize(void) const + ?setFrameRate@QVideoSurfaceFormat@@QAEXM@Z @ 193 NONAME ; void QVideoSurfaceFormat::setFrameRate(float) + ?equivalentImageFormat@QVideoFrame@@SA?AW4Format@QImage@@W4PixelFormat@1@@Z @ 194 NONAME ; enum QImage::Format QVideoFrame::equivalentImageFormat(enum QVideoFrame::PixelFormat) + ?handle@QAudioDeviceInfo@@ABE?AVQByteArray@@XZ @ 195 NONAME ; class QByteArray QAudioDeviceInfo::handle(void) const + ?startedChanged@QAbstractVideoSurface@@IAEX_N@Z @ 196 NONAME ; void QAbstractVideoSurface::startedChanged(bool) + ??0QVideoFrame@@QAE@HABVQSize@@HW4PixelFormat@0@@Z @ 197 NONAME ; QVideoFrame::QVideoFrame(int, class QSize const &, int, enum QVideoFrame::PixelFormat) + ?handle@QAbstractVideoBuffer@@UBE?AVQVariant@@XZ @ 198 NONAME ; class QVariant QAbstractVideoBuffer::handle(void) const + ?handleType@QAbstractVideoBuffer@@QBE?AW4HandleType@1@XZ @ 199 NONAME ; enum QAbstractVideoBuffer::HandleType QAbstractVideoBuffer::handleType(void) const + ?height@QVideoFrame@@QBEHXZ @ 200 NONAME ; int QVideoFrame::height(void) const + ?sampleSize@QAudioFormat@@QBEHXZ @ 201 NONAME ; int QAudioFormat::sampleSize(void) const + ??0QAudioFormat@@QAE@XZ @ 202 NONAME ; QAudioFormat::QAudioFormat(void) + ??0QAbstractVideoBuffer@@QAE@W4HandleType@0@@Z @ 203 NONAME ; QAbstractVideoBuffer::QAbstractVideoBuffer(enum QAbstractVideoBuffer::HandleType) + ??0QAudioDeviceInfo@@AAE@ABVQString@@ABVQByteArray@@W4Mode@QAudio@@@Z @ 204 NONAME ; QAudioDeviceInfo::QAudioDeviceInfo(class QString const &, class QByteArray const &, enum QAudio::Mode) + ?endTime@QVideoFrame@@QBE_JXZ @ 205 NONAME ; long long QVideoFrame::endTime(void) const + ?startTime@QVideoFrame@@QBE_JXZ @ 206 NONAME ; long long QVideoFrame::startTime(void) const + ?defaultOutputDevice@QAudioDeviceInfo@@SA?AV1@XZ @ 207 NONAME ; class QAudioDeviceInfo QAudioDeviceInfo::defaultOutputDevice(void) + ??1QAbstractVideoSurface@@UAE@XZ @ 208 NONAME ; QAbstractVideoSurface::~QAbstractVideoSurface(void) + ?suspend@QAudioOutput@@QAEXXZ @ 209 NONAME ; void QAudioOutput::suspend(void) + ?metaObject@QAudioOutput@@UBEPBUQMetaObject@@XZ @ 210 NONAME ; struct QMetaObject const * QAudioOutput::metaObject(void) const + ?metaObject@QAudioEnginePlugin@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * QAudioEnginePlugin::metaObject(void) const + ??0QAbstractAudioOutput@@QAE@XZ @ 212 NONAME ; QAbstractAudioOutput::QAbstractAudioOutput(void) + ?stateChanged@QAbstractAudioInput@@IAEXW4State@QAudio@@@Z @ 213 NONAME ; void QAbstractAudioInput::stateChanged(enum QAudio::State) + ?bytesPerLine@QVideoFrame@@QBEHXZ @ 214 NONAME ; int QVideoFrame::bytesPerLine(void) const + ?codec@QAudioFormat@@QBE?AVQString@@XZ @ 215 NONAME ; class QString QAudioFormat::codec(void) const + ?metaObject@QAbstractVideoSurface@@UBEPBUQMetaObject@@XZ @ 216 NONAME ; struct QMetaObject const * QAbstractVideoSurface::metaObject(void) const + ?getStaticMetaObject@QAbstractAudioInput@@SAABUQMetaObject@@XZ @ 217 NONAME ; struct QMetaObject const & QAbstractAudioInput::getStaticMetaObject(void) + ??0QMemoryVideoBuffer@@QAE@ABVQByteArray@@H@Z @ 218 NONAME ; QMemoryVideoBuffer::QMemoryVideoBuffer(class QByteArray const &, int) + ?d_func@QAbstractVideoBuffer@@AAEPAVQAbstractVideoBufferPrivate@@XZ @ 219 NONAME ; class QAbstractVideoBufferPrivate * QAbstractVideoBuffer::d_func(void) + ?getStaticMetaObject@QAbstractAudioOutput@@SAABUQMetaObject@@XZ @ 220 NONAME ; struct QMetaObject const & QAbstractAudioOutput::getStaticMetaObject(void) + ?trUtf8@QAudioEnginePlugin@@SA?AVQString@@PBD0@Z @ 221 NONAME ; class QString QAudioEnginePlugin::trUtf8(char const *, char const *) + ??_EQAudioEngineFactoryInterface@@UAE@I@Z @ 222 NONAME ; QAudioEngineFactoryInterface::~QAudioEngineFactoryInterface(unsigned int) + ??0QAbstractVideoSurface@@IAE@AAVQAbstractVideoSurfacePrivate@@PAVQObject@@@Z @ 223 NONAME ; QAbstractVideoSurface::QAbstractVideoSurface(class QAbstractVideoSurfacePrivate &, class QObject *) + ?qt_metacast@QAbstractVideoSurface@@UAEPAXPBD@Z @ 224 NONAME ; void * QAbstractVideoSurface::qt_metacast(char const *) + ?frequency@QAudioFormat@@QBEHXZ @ 225 NONAME ; int QAudioFormat::frequency(void) const + ?map@QImageVideoBuffer@@UAEPAEW4MapMode@QAbstractVideoBuffer@@PAH1@Z @ 226 NONAME ; unsigned char * QImageVideoBuffer::map(enum QAbstractVideoBuffer::MapMode, int *, int *) + ?reset@QAudioInput@@QAEXXZ @ 227 NONAME ; void QAudioInput::reset(void) + ??_EQImageVideoBuffer@@UAE@I@Z @ 228 NONAME ; QImageVideoBuffer::~QImageVideoBuffer(unsigned int) + ?setBufferSize@QAudioInput@@QAEXH@Z @ 229 NONAME ; void QAudioInput::setBufferSize(int) + ?qt_metacast@QAudioEnginePlugin@@UAEPAXPBD@Z @ 230 NONAME ; void * QAudioEnginePlugin::qt_metacast(char const *) + ??1QAudioEngineFactoryInterface@@UAE@XZ @ 231 NONAME ; QAudioEngineFactoryInterface::~QAudioEngineFactoryInterface(void) + ?notify@QAudioOutput@@IAEXXZ @ 232 NONAME ; void QAudioOutput::notify(void) + ?stateChanged@QAudioOutput@@IAEXW4State@QAudio@@@Z @ 233 NONAME ; void QAudioOutput::stateChanged(enum QAudio::State) + ?isStarted@QAbstractVideoSurface@@QBE_NXZ @ 234 NONAME ; bool QAbstractVideoSurface::isStarted(void) const + ??0QAudioDeviceInfo@@QAE@ABV0@@Z @ 235 NONAME ; QAudioDeviceInfo::QAudioDeviceInfo(class QAudioDeviceInfo const &) + ??1QAudioOutput@@UAE@XZ @ 236 NONAME ; QAudioOutput::~QAudioOutput(void) + ?tr@QAudioInput@@SA?AVQString@@PBD0@Z @ 237 NONAME ; class QString QAudioInput::tr(char const *, char const *) + ??_EQAbstractVideoBuffer@@UAE@I@Z @ 238 NONAME ; QAbstractVideoBuffer::~QAbstractVideoBuffer(unsigned int) + ?tr@QAbstractAudioDeviceInfo@@SA?AVQString@@PBD0@Z @ 239 NONAME ; class QString QAbstractAudioDeviceInfo::tr(char const *, char const *) + ??0QAudioInput@@QAE@ABVQAudioFormat@@PAVQObject@@@Z @ 240 NONAME ; QAudioInput::QAudioInput(class QAudioFormat const &, class QObject *) + ?suspend@QAudioInput@@QAEXXZ @ 241 NONAME ; void QAudioInput::suspend(void) + ?qt_metacall@QAbstractVideoSurface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 242 NONAME ; int QAbstractVideoSurface::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isValid@QVideoSurfaceFormat@@QBE_NXZ @ 243 NONAME ; bool QVideoSurfaceFormat::isValid(void) const + ?reset@QAudioOutput@@QAEXXZ @ 244 NONAME ; void QAudioOutput::reset(void) + ?defaultInputDevice@QAudioDeviceInfo@@SA?AV1@XZ @ 245 NONAME ; class QAudioDeviceInfo QAudioDeviceInfo::defaultInputDevice(void) + ?metaObject@QAbstractAudioInput@@UBEPBUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const * QAbstractAudioInput::metaObject(void) const + ?qt_metacast@QAudioInput@@UAEPAXPBD@Z @ 247 NONAME ; void * QAudioInput::qt_metacast(char const *) + ?frameRate@QVideoSurfaceFormat@@QBEMXZ @ 248 NONAME ; float QVideoSurfaceFormat::frameRate(void) const + ??1QAudioFormat@@QAE@XZ @ 249 NONAME ; QAudioFormat::~QAudioFormat(void) + ?frameWidth@QVideoSurfaceFormat@@QBEHXZ @ 250 NONAME ; int QVideoSurfaceFormat::frameWidth(void) const + ?resume@QAudioOutput@@QAEXXZ @ 251 NONAME ; void QAudioOutput::resume(void) + ?trUtf8@QAudioInput@@SA?AVQString@@PBD0@Z @ 252 NONAME ; class QString QAudioInput::trUtf8(char const *, char const *) + ?getStaticMetaObject@QAudioInput@@SAABUQMetaObject@@XZ @ 253 NONAME ; struct QMetaObject const & QAudioInput::getStaticMetaObject(void) + ?scanLineDirection@QVideoSurfaceFormat@@QBE?AW4Direction@1@XZ @ 254 NONAME ; enum QVideoSurfaceFormat::Direction QVideoSurfaceFormat::scanLineDirection(void) const + ?d_func@QAbstractVideoSurface@@ABEPBVQAbstractVideoSurfacePrivate@@XZ @ 255 NONAME ; class QAbstractVideoSurfacePrivate const * QAbstractVideoSurface::d_func(void) const + ?getStaticMetaObject@QAbstractVideoSurface@@SAABUQMetaObject@@XZ @ 256 NONAME ; struct QMetaObject const & QAbstractVideoSurface::getStaticMetaObject(void) + ??4QVideoFrame@@QAEAAV0@ABV0@@Z @ 257 NONAME ; class QVideoFrame & QVideoFrame::operator=(class QVideoFrame const &) + ?supportedFrequencies@QAudioDeviceInfo@@QBE?AV?$QList@H@@XZ @ 258 NONAME ; class QList QAudioDeviceInfo::supportedFrequencies(void) const + ??1QVideoFrame@@QAE@XZ @ 259 NONAME ; QVideoFrame::~QVideoFrame(void) + ??0QAudioEnginePlugin@@QAE@PAVQObject@@@Z @ 260 NONAME ; QAudioEnginePlugin::QAudioEnginePlugin(class QObject *) + ?notifyInterval@QAudioInput@@QBEHXZ @ 261 NONAME ; int QAudioInput::notifyInterval(void) const + ?channels@QAudioFormat@@QBEHXZ @ 262 NONAME ; int QAudioFormat::channels(void) const + ?metaObject@QAudioInput@@UBEPBUQMetaObject@@XZ @ 263 NONAME ; struct QMetaObject const * QAudioInput::metaObject(void) const + ?surfaceFormatChanged@QAbstractVideoSurface@@IAEXABVQVideoSurfaceFormat@@@Z @ 264 NONAME ; void QAbstractVideoSurface::surfaceFormatChanged(class QVideoSurfaceFormat const &) + ?stateChanged@QAudioInput@@IAEXW4State@QAudio@@@Z @ 265 NONAME ; void QAudioInput::stateChanged(enum QAudio::State) + ??1QAbstractAudioOutput@@UAE@XZ @ 266 NONAME ; QAbstractAudioOutput::~QAbstractAudioOutput(void) + ??8QVideoSurfaceFormat@@QBE_NABV0@@Z @ 267 NONAME ; bool QVideoSurfaceFormat::operator==(class QVideoSurfaceFormat const &) const + ?preferredFormat@QAudioDeviceInfo@@QBE?AVQAudioFormat@@XZ @ 268 NONAME ; class QAudioFormat QAudioDeviceInfo::preferredFormat(void) const + ?qt_metacast@QAbstractAudioOutput@@UAEPAXPBD@Z @ 269 NONAME ; void * QAbstractAudioOutput::qt_metacast(char const *) + ??1QVideoSurfaceFormat@@QAE@XZ @ 270 NONAME ; QVideoSurfaceFormat::~QVideoSurfaceFormat(void) + ??_EQAudioDeviceInfo@@QAE@I@Z @ 271 NONAME ; QAudioDeviceInfo::~QAudioDeviceInfo(unsigned int) + diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def new file mode 100644 index 0000000..3d0f1a1 --- /dev/null +++ b/src/s60installs/bwins/QtNetworku.def @@ -0,0 +1,977 @@ +EXPORTS + ?staticMetaObject@QNetworkCookieJar@@2UQMetaObject@@B @ 1 NONAME ; struct QMetaObject const QNetworkCookieJar::staticMetaObject + ?setSslConfiguration@QNetworkReply@@QAEXABVQSslConfiguration@@@Z @ 2 NONAME ; void QNetworkReply::setSslConfiguration(class QSslConfiguration const &) + ??0QHttpHeader@@QAE@ABV0@@Z @ 3 NONAME ; QHttpHeader::QHttpHeader(class QHttpHeader const &) + ?d_func@QNetworkReply@@AAEPAVQNetworkReplyPrivate@@XZ @ 4 NONAME ; class QNetworkReplyPrivate * QNetworkReply::d_func(void) + ?setCaCertificates@QSslSocket@@QAEXABV?$QList@VQSslCertificate@@@@@Z @ 5 NONAME ; void QSslSocket::setCaCertificates(class QList const &) + ?getStaticMetaObject@QUdpSocket@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & QUdpSocket::getStaticMetaObject(void) + ??1QLocalSocket@@UAE@XZ @ 7 NONAME ; QLocalSocket::~QLocalSocket(void) + ?setSocketState@QAbstractSocket@@IAEXW4SocketState@1@@Z @ 8 NONAME ; void QAbstractSocket::setSocketState(enum QAbstractSocket::SocketState) + ?clear@QHostAddress@@QAEXXZ @ 9 NONAME ; void QHostAddress::clear(void) + ?setReadable@QUrlInfo@@UAEX_N@Z @ 10 NONAME ; void QUrlInfo::setReadable(bool) + ?hasPendingRequests@QHttp@@QBE_NXZ @ 11 NONAME ; bool QHttp::hasPendingRequests(void) const + ??0QHttpHeader@@IAE@AAVQHttpHeaderPrivate@@ABV0@@Z @ 12 NONAME ; QHttpHeader::QHttpHeader(class QHttpHeaderPrivate &, class QHttpHeader const &) + ?sslErrors@QSslSocket@@QBE?AV?$QList@VQSslError@@@@XZ @ 13 NONAME ; class QList QSslSocket::sslErrors(void) const + ?setPeerVerifyMode@QSslSocket@@QAEXW4PeerVerifyMode@1@@Z @ 14 NONAME ; void QSslSocket::setPeerVerifyMode(enum QSslSocket::PeerVerifyMode) + ??9QAuthenticator@@QBE_NABV0@@Z @ 15 NONAME ; bool QAuthenticator::operator!=(class QAuthenticator const &) const + ??0QAbstractNetworkCache@@IAE@AAVQAbstractNetworkCachePrivate@@PAVQObject@@@Z @ 16 NONAME ; QAbstractNetworkCache::QAbstractNetworkCache(class QAbstractNetworkCachePrivate &, class QObject *) + ?sslConfiguration@QNetworkRequest@@QBE?AVQSslConfiguration@@XZ @ 17 NONAME ; class QSslConfiguration QNetworkRequest::sslConfiguration(void) const + ??9QSslCipher@@QBE_NABV0@@Z @ 18 NONAME ; bool QSslCipher::operator!=(class QSslCipher const &) const + ?majorVersion@QHttpResponseHeader@@UBEHXZ @ 19 NONAME ; int QHttpResponseHeader::majorVersion(void) const + ?setCiphers@QSslSocket@@QAEXABVQString@@@Z @ 20 NONAME ; void QSslSocket::setCiphers(class QString const &) + ?requestFinished@QHttp@@IAEXH_N@Z @ 21 NONAME ; void QHttp::requestFinished(int, bool) + ?setSocketDescriptor@QTcpServer@@QAE_NH@Z @ 22 NONAME ; bool QTcpServer::setSocketDescriptor(int) + ?head@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@@Z @ 23 NONAME ; class QNetworkReply * QNetworkAccessManager::head(class QNetworkRequest const &) + ?qt_metacast@QUdpSocket@@UAEPAXPBD@Z @ 24 NONAME ; void * QUdpSocket::qt_metacast(char const *) + ??8QSslKey@@QBE_NABV0@@Z @ 25 NONAME ; bool QSslKey::operator==(class QSslKey const &) const + ??0QHttp@@QAE@ABVQString@@GPAVQObject@@@Z @ 26 NONAME ; QHttp::QHttp(class QString const &, unsigned short, class QObject *) + ?tr@QSslSocket@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString QSslSocket::tr(char const *, char const *, int) + ?scopeId@QHostAddress@@QBE?AVQString@@XZ @ 28 NONAME ; class QString QHostAddress::scopeId(void) const + ?qt_metacall@QLocalSocket@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int QLocalSocket::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setValue@QNetworkCookie@@QAEXABVQByteArray@@@Z @ 30 NONAME ; void QNetworkCookie::setValue(class QByteArray const &) + ?trUtf8@QNetworkCookieJar@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString QNetworkCookieJar::trUtf8(char const *, char const *) + ?d_func@QNetworkDiskCache@@AAEPAVQNetworkDiskCachePrivate@@XZ @ 32 NONAME ; class QNetworkDiskCachePrivate * QNetworkDiskCache::d_func(void) + ?addCaCertificates@QSslSocket@@QAEXABV?$QList@VQSslCertificate@@@@@Z @ 33 NONAME ; void QSslSocket::addCaCertificates(class QList const &) + ?readAll@QFtp@@QAE?AVQByteArray@@XZ @ 34 NONAME ; class QByteArray QFtp::readAll(void) + ?setDefaultCaCertificates@QSslSocket@@SAXABV?$QList@VQSslCertificate@@@@@Z @ 35 NONAME ; void QSslSocket::setDefaultCaCertificates(class QList const &) + ?metaDataChanged@QNetworkReply@@IAEXXZ @ 36 NONAME ; void QNetworkReply::metaDataChanged(void) + ?issuerInfo@QSslCertificate@@QBE?AVQString@@ABVQByteArray@@@Z @ 37 NONAME ; class QString QSslCertificate::issuerInfo(class QByteArray const &) const + ?expirationDate@QNetworkCookie@@QBE?AVQDateTime@@XZ @ 38 NONAME ; class QDateTime QNetworkCookie::expirationDate(void) const + ?writeData@QAbstractSocket@@MAE_JPBD_J@Z @ 39 NONAME ; long long QAbstractSocket::writeData(char const *, long long) + ?qt_metacall@QFtp@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 40 NONAME ; int QFtp::qt_metacall(enum QMetaObject::Call, int, void * *) + ?waitForReadyRead@QLocalSocket@@UAE_NH@Z @ 41 NONAME ; bool QLocalSocket::waitForReadyRead(int) + ?getStaticMetaObject@QLocalSocket@@SAABUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const & QLocalSocket::getStaticMetaObject(void) + ?bytesAvailable@QFtp@@QBE_JXZ @ 43 NONAME ; long long QFtp::bytesAvailable(void) const + ?setName@QUrlInfo@@UAEXABVQString@@@Z @ 44 NONAME ; void QUrlInfo::setName(class QString const &) + ?proxy@QAbstractSocket@@QBE?AVQNetworkProxy@@XZ @ 45 NONAME ; class QNetworkProxy QAbstractSocket::proxy(void) const + ??6@YA?AVQDebug@@V0@W4SubjectInfo@QSslCertificate@@@Z @ 46 NONAME ; class QDebug operator<<(class QDebug, enum QSslCertificate::SubjectInfo) + ?sslErrors@QNetworkAccessManager@@IAEXPAVQNetworkReply@@ABV?$QList@VQSslError@@@@@Z @ 47 NONAME ; void QNetworkAccessManager::sslErrors(class QNetworkReply *, class QList const &) + ?connected@QLocalSocket@@IAEXXZ @ 48 NONAME ; void QLocalSocket::connected(void) + ?readyRead@QHttp@@IAEXABVQHttpResponseHeader@@@Z @ 49 NONAME ; void QHttp::readyRead(class QHttpResponseHeader const &) + ?currentRequest@QHttp@@QBE?AVQHttpRequestHeader@@XZ @ 50 NONAME ; class QHttpRequestHeader QHttp::currentRequest(void) const + ?minorVersion@QHttpRequestHeader@@UBEHXZ @ 51 NONAME ; int QHttpRequestHeader::minorVersion(void) const + ?setLocalPort@QNetworkProxyQuery@@QAEXH@Z @ 52 NONAME ; void QNetworkProxyQuery::setLocalPort(int) + ?trUtf8@QSslSocket@@SA?AVQString@@PBD0H@Z @ 53 NONAME ; class QString QSslSocket::trUtf8(char const *, char const *, int) + ??4QSslError@@QAEAAV0@ABV0@@Z @ 54 NONAME ; class QSslError & QSslError::operator=(class QSslError const &) + ?trUtf8@QAbstractSocket@@SA?AVQString@@PBD0H@Z @ 55 NONAME ; class QString QAbstractSocket::trUtf8(char const *, char const *, int) + ?setDefaultCiphers@QSslSocket@@SAXABV?$QList@VQSslCipher@@@@@Z @ 56 NONAME ; void QSslSocket::setDefaultCiphers(class QList const &) + ??0QSslConfiguration@@AAE@PAVQSslConfigurationPrivate@@@Z @ 57 NONAME ; QSslConfiguration::QSslConfiguration(class QSslConfigurationPrivate *) + ?effectiveDate@QSslCertificate@@QBE?AVQDateTime@@XZ @ 58 NONAME ; class QDateTime QSslCertificate::effectiveDate(void) const + ??1QUrlInfo@@UAE@XZ @ 59 NONAME ; QUrlInfo::~QUrlInfo(void) + ??1QSslSocket@@UAE@XZ @ 60 NONAME ; QSslSocket::~QSslSocket(void) + ??1QNetworkReply@@UAE@XZ @ 61 NONAME ; QNetworkReply::~QNetworkReply(void) + ?trUtf8@QHttp@@SA?AVQString@@PBD0H@Z @ 62 NONAME ; class QString QHttp::trUtf8(char const *, char const *, int) + ?tr@QTcpSocket@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString QTcpSocket::tr(char const *, char const *, int) + ??_EQSslError@@QAE@I@Z @ 64 NONAME ; QSslError::~QSslError(unsigned int) + ?header@QNetworkReply@@QBE?AVQVariant@@W4KnownHeaders@QNetworkRequest@@@Z @ 65 NONAME ; class QVariant QNetworkReply::header(enum QNetworkRequest::KnownHeaders) const + ??1QHostInfo@@QAE@XZ @ 66 NONAME ; QHostInfo::~QHostInfo(void) + ?tr@QLocalSocket@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString QLocalSocket::tr(char const *, char const *, int) + ?isRunning@QNetworkReply@@QBE_NXZ @ 68 NONAME ; bool QNetworkReply::isRunning(void) const + ?d_func@QHttpHeader@@ABEPBVQHttpHeaderPrivate@@XZ @ 69 NONAME ; class QHttpHeaderPrivate const * QHttpHeader::d_func(void) const + ?tr@QUdpSocket@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString QUdpSocket::tr(char const *, char const *) + ?tr@QFtp@@SA?AVQString@@PBD0H@Z @ 71 NONAME ; class QString QFtp::tr(char const *, char const *, int) + ?setRawHeader@QNetworkRequest@@QAEXABVQByteArray@@0@Z @ 72 NONAME ; void QNetworkRequest::setRawHeader(class QByteArray const &, class QByteArray const &) + ?currentCommand@QFtp@@QBE?AW4Command@1@XZ @ 73 NONAME ; enum QFtp::Command QFtp::currentCommand(void) const + ?ciphers@QSslSocket@@QBE?AV?$QList@VQSslCipher@@@@XZ @ 74 NONAME ; class QList QSslSocket::ciphers(void) const + ?listen@QLocalServer@@QAE_NABVQString@@@Z @ 75 NONAME ; bool QLocalServer::listen(class QString const &) + ?contentType@QHttpHeader@@QBE?AVQString@@XZ @ 76 NONAME ; class QString QHttpHeader::contentType(void) const + ?removeServer@QLocalServer@@SA_NABVQString@@@Z @ 77 NONAME ; bool QLocalServer::removeServer(class QString const &) + ?path@QNetworkCookie@@QBE?AVQString@@XZ @ 78 NONAME ; class QString QNetworkCookie::path(void) const + ?clearPendingCommands@QFtp@@QAEXXZ @ 79 NONAME ; void QFtp::clearPendingCommands(void) + ?state@QLocalSocket@@QBE?AW4LocalSocketState@1@XZ @ 80 NONAME ; enum QLocalSocket::LocalSocketState QLocalSocket::state(void) const + ?setReadBufferSize@QLocalSocket@@QAEX_J@Z @ 81 NONAME ; void QLocalSocket::setReadBufferSize(long long) + ?getStaticMetaObject@QNetworkCookieJar@@SAABUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const & QNetworkCookieJar::getStaticMetaObject(void) + ?tr@QNetworkDiskCache@@SA?AVQString@@PBD0@Z @ 83 NONAME ; class QString QNetworkDiskCache::tr(char const *, char const *) + ?socketDescriptor@QLocalSocket@@QBEIXZ @ 84 NONAME ; unsigned int QLocalSocket::socketDescriptor(void) const + ?qt_metacall@QNetworkAccessManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int QNetworkAccessManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ?addCaCertificates@QSslSocket@@QAE_NABVQString@@W4EncodingFormat@QSsl@@W4PatternSyntax@QRegExp@@@Z @ 86 NONAME ; bool QSslSocket::addCaCertificates(class QString const &, enum QSsl::EncodingFormat, enum QRegExp::PatternSyntax) + ?isInSubnet@QHostAddress@@QBE_NABV1@H@Z @ 87 NONAME ; bool QHostAddress::isInSubnet(class QHostAddress const &, int) const + ??8QNetworkProxyQuery@@QBE_NABV0@@Z @ 88 NONAME ; bool QNetworkProxyQuery::operator==(class QNetworkProxyQuery const &) const + ?isNull@QSslKey@@QBE_NXZ @ 89 NONAME ; bool QSslKey::isNull(void) const + ?sslErrors@QHttp@@IAEXABV?$QList@VQSslError@@@@@Z @ 90 NONAME ; void QHttp::sslErrors(class QList const &) + ?newConnection@QLocalServer@@IAEXXZ @ 91 NONAME ; void QLocalServer::newConnection(void) + ?done@QHttp@@IAEX_N@Z @ 92 NONAME ; void QHttp::done(bool) + ??4QNetworkCacheMetaData@@QAEAAV0@ABV0@@Z @ 93 NONAME ; class QNetworkCacheMetaData & QNetworkCacheMetaData::operator=(class QNetworkCacheMetaData const &) + ?staticMetaObject@QTcpSocket@@2UQMetaObject@@B @ 94 NONAME ; struct QMetaObject const QTcpSocket::staticMetaObject + ??9QNetworkCookie@@QBE_NABV0@@Z @ 95 NONAME ; bool QNetworkCookie::operator!=(class QNetworkCookie const &) const + ?rawHeaderList@QNetworkRequest@@QBE?AV?$QList@VQByteArray@@@@XZ @ 96 NONAME ; class QList QNetworkRequest::rawHeaderList(void) const + ?authenticationRequired@QNetworkAccessManager@@IAEXPAVQNetworkReply@@PAVQAuthenticator@@@Z @ 97 NONAME ; void QNetworkAccessManager::authenticationRequired(class QNetworkReply *, class QAuthenticator *) + ?trUtf8@QTcpSocket@@SA?AVQString@@PBD0H@Z @ 98 NONAME ; class QString QTcpSocket::trUtf8(char const *, char const *, int) + ?trUtf8@QTcpSocket@@SA?AVQString@@PBD0@Z @ 99 NONAME ; class QString QTcpSocket::trUtf8(char const *, char const *) + ?setProtocol@QSslSocket@@QAEXW4SslProtocol@QSsl@@@Z @ 100 NONAME ; void QSslSocket::setProtocol(enum QSsl::SslProtocol) + ?atEnd@QSslSocket@@UBE_NXZ @ 101 NONAME ; bool QSslSocket::atEnd(void) const + ?staticMetaObject@QTcpServer@@2UQMetaObject@@B @ 102 NONAME ; struct QMetaObject const QTcpServer::staticMetaObject + ?publicKey@QSslCertificate@@QBE?AVQSslKey@@XZ @ 103 NONAME ; class QSslKey QSslCertificate::publicKey(void) const + ?bytesToWrite@QAbstractSocket@@UBE_JXZ @ 104 NONAME ; long long QAbstractSocket::bytesToWrite(void) const + ?getStaticMetaObject@QAbstractNetworkCache@@SAABUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const & QAbstractNetworkCache::getStaticMetaObject(void) + ?setCookiesFromUrl@QNetworkCookieJar@@UAE_NABV?$QList@VQNetworkCookie@@@@ABVQUrl@@@Z @ 106 NONAME ; bool QNetworkCookieJar::setCookiesFromUrl(class QList const &, class QUrl const &) + ?responseHeaderReceived@QHttp@@IAEXABVQHttpResponseHeader@@@Z @ 107 NONAME ; void QHttp::responseHeaderReceived(class QHttpResponseHeader const &) + ?setCache@QNetworkAccessManager@@QAEXPAVQAbstractNetworkCache@@@Z @ 108 NONAME ; void QNetworkAccessManager::setCache(class QAbstractNetworkCache *) + ?ciphers@QSslConfiguration@@QBE?AV?$QList@VQSslCipher@@@@XZ @ 109 NONAME ; class QList QSslConfiguration::ciphers(void) const + ?certificate@QSslError@@QBE?AVQSslCertificate@@XZ @ 110 NONAME ; class QSslCertificate QSslError::certificate(void) const + ?isNull@QSslConfiguration@@QBE_NXZ @ 111 NONAME ; bool QSslConfiguration::isNull(void) const + ?staticMetaObject@QLocalSocket@@2UQMetaObject@@B @ 112 NONAME ; struct QMetaObject const QLocalSocket::staticMetaObject + ?metaObject@QAbstractSocket@@UBEPBUQMetaObject@@XZ @ 113 NONAME ; struct QMetaObject const * QAbstractSocket::metaObject(void) const + ?isInSubnet@QHostAddress@@QBE_NABU?$QPair@VQHostAddress@@H@@@Z @ 114 NONAME ; bool QHostAddress::isInSubnet(struct QPair const &) const + ?setPrefixLength@QNetworkAddressEntry@@QAEXH@Z @ 115 NONAME ; void QNetworkAddressEntry::setPrefixLength(int) + ?hasContentLength@QHttpHeader@@QBE_NXZ @ 116 NONAME ; bool QHttpHeader::hasContentLength(void) const + ??4QNetworkInterface@@QAEAAV0@ABV0@@Z @ 117 NONAME ; class QNetworkInterface & QNetworkInterface::operator=(class QNetworkInterface const &) + ?waitForConnected@QSslSocket@@QAE_NH@Z @ 118 NONAME ; bool QSslSocket::waitForConnected(int) + ?staticMetaObject@QLocalServer@@2UQMetaObject@@B @ 119 NONAME ; struct QMetaObject const QLocalServer::staticMetaObject + ?metaObject@QLocalSocket@@UBEPBUQMetaObject@@XZ @ 120 NONAME ; struct QMetaObject const * QLocalSocket::metaObject(void) const + ?lastModified@QUrlInfo@@QBE?AVQDateTime@@XZ @ 121 NONAME ; class QDateTime QUrlInfo::lastModified(void) const + ?setHeader@QNetworkRequest@@QAEXW4KnownHeaders@1@ABVQVariant@@@Z @ 122 NONAME ; void QNetworkRequest::setHeader(enum QNetworkRequest::KnownHeaders, class QVariant const &) + ?setValues@QHttpHeader@@QAEXABV?$QList@U?$QPair@VQString@@V1@@@@@@Z @ 123 NONAME ; void QHttpHeader::setValues(class QList > const &) + ?setSocket@QHttp@@QAEHPAVQTcpSocket@@@Z @ 124 NONAME ; int QHttp::setSocket(class QTcpSocket *) + ?error@QAbstractSocket@@QBE?AW4SocketError@1@XZ @ 125 NONAME ; enum QAbstractSocket::SocketError QAbstractSocket::error(void) const + ?setProxyFactory@QNetworkAccessManager@@QAEXPAVQNetworkProxyFactory@@@Z @ 126 NONAME ; void QNetworkAccessManager::setProxyFactory(class QNetworkProxyFactory *) + ?hasContentType@QHttpHeader@@QBE_NXZ @ 127 NONAME ; bool QHttpHeader::hasContentType(void) const + ??9QSslCertificate@@QBE_NABV0@@Z @ 128 NONAME ; bool QSslCertificate::operator!=(class QSslCertificate const &) const + ?atEnd@QAbstractSocket@@UBE_NXZ @ 129 NONAME ; bool QAbstractSocket::atEnd(void) const + ?setPassword@QAuthenticator@@QAEXABVQString@@@Z @ 130 NONAME ; void QAuthenticator::setPassword(class QString const &) + ?tr@QAbstractNetworkCache@@SA?AVQString@@PBD0@Z @ 131 NONAME ; class QString QAbstractNetworkCache::tr(char const *, char const *) + ?algorithm@QSslKey@@QBE?AW4KeyAlgorithm@QSsl@@XZ @ 132 NONAME ; enum QSsl::KeyAlgorithm QSslKey::algorithm(void) const + ?abort@QSslSocket@@QAEXXZ @ 133 NONAME ; void QSslSocket::abort(void) + ??1QNetworkCookie@@QAE@XZ @ 134 NONAME ; QNetworkCookie::~QNetworkCookie(void) + ?stateChanged@QAbstractSocket@@IAEXW4SocketState@1@@Z @ 135 NONAME ; void QAbstractSocket::stateChanged(enum QAbstractSocket::SocketState) + ?getStaticMetaObject@QTcpServer@@SAABUQMetaObject@@XZ @ 136 NONAME ; struct QMetaObject const & QTcpServer::getStaticMetaObject(void) + ?connectToHost@QAbstractSocket@@QAEXABVQHostAddress@@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 137 NONAME ; void QAbstractSocket::connectToHost(class QHostAddress const &, unsigned short, class QFlags) + ?currentDestinationDevice@QHttp@@QBEPAVQIODevice@@XZ @ 138 NONAME ; class QIODevice * QHttp::currentDestinationDevice(void) const + ?setCaCertificates@QSslConfiguration@@QAEXABV?$QList@VQSslCertificate@@@@@Z @ 139 NONAME ; void QSslConfiguration::setCaCertificates(class QList const &) + ?hostFound@QAbstractSocket@@IAEXXZ @ 140 NONAME ; void QAbstractSocket::hostFound(void) + ?hasPendingCommands@QFtp@@QBE_NXZ @ 141 NONAME ; bool QFtp::hasPendingCommands(void) const + ?d_func@QNetworkAccessManager@@ABEPBVQNetworkAccessManagerPrivate@@XZ @ 142 NONAME ; class QNetworkAccessManagerPrivate const * QNetworkAccessManager::d_func(void) const + ?isListening@QLocalServer@@QBE_NXZ @ 143 NONAME ; bool QLocalServer::isListening(void) const + ?closeConnection@QHttp@@QAEHXZ @ 144 NONAME ; int QHttp::closeConnection(void) + ?serverPort@QTcpServer@@QBEGXZ @ 145 NONAME ; unsigned short QTcpServer::serverPort(void) const + ?setMaximumCacheSize@QNetworkDiskCache@@QAEX_J@Z @ 146 NONAME ; void QNetworkDiskCache::setMaximumCacheSize(long long) + ?dataReadProgress@QHttp@@IAEXHH@Z @ 147 NONAME ; void QHttp::dataReadProgress(int, int) + ?protocolTag@QNetworkProxyQuery@@QBE?AVQString@@XZ @ 148 NONAME ; class QString QNetworkProxyQuery::protocolTag(void) const + ?addDefaultCaCertificate@QSslSocket@@SAXABVQSslCertificate@@@Z @ 149 NONAME ; void QSslSocket::addDefaultCaCertificate(class QSslCertificate const &) + ?waitForBytesWritten@QLocalSocket@@UAE_NH@Z @ 150 NONAME ; bool QLocalSocket::waitForBytesWritten(int) + ?peerPort@QAbstractSocket@@QBEGXZ @ 151 NONAME ; unsigned short QAbstractSocket::peerPort(void) const + ??8QHostAddress@@QBE_NW4SpecialAddress@0@@Z @ 152 NONAME ; bool QHostAddress::operator==(enum QHostAddress::SpecialAddress) const + ?readBufferSize@QAbstractSocket@@QBE_JXZ @ 153 NONAME ; long long QAbstractSocket::readBufferSize(void) const + ?tr@QUdpSocket@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString QUdpSocket::tr(char const *, char const *, int) + ?remove@QFtp@@QAEHABVQString@@@Z @ 155 NONAME ; int QFtp::remove(class QString const &) + ?humanReadableName@QNetworkInterface@@QBE?AVQString@@XZ @ 156 NONAME ; class QString QNetworkInterface::humanReadableName(void) const + ??8QSslError@@QBE_NABV0@@Z @ 157 NONAME ; bool QSslError::operator==(class QSslError const &) const + ??0QHostAddress@@QAE@W4SpecialAddress@0@@Z @ 158 NONAME ; QHostAddress::QHostAddress(enum QHostAddress::SpecialAddress) + ?put@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@PAVQIODevice@@@Z @ 159 NONAME ; class QNetworkReply * QNetworkAccessManager::put(class QNetworkRequest const &, class QIODevice *) + ?peerHostName@QNetworkProxyQuery@@QBE?AVQString@@XZ @ 160 NONAME ; class QString QNetworkProxyQuery::peerHostName(void) const + ?setError@QNetworkReply@@IAEXW4NetworkError@1@ABVQString@@@Z @ 161 NONAME ; void QNetworkReply::setError(enum QNetworkReply::NetworkError, class QString const &) + ??0QHttpResponseHeader@@QAE@HABVQString@@HH@Z @ 162 NONAME ; QHttpResponseHeader::QHttpResponseHeader(int, class QString const &, int, int) + ?url@QNetworkReply@@QBE?AVQUrl@@XZ @ 163 NONAME ; class QUrl QNetworkReply::url(void) const + ?setPermissions@QUrlInfo@@UAEXH@Z @ 164 NONAME ; void QUrlInfo::setPermissions(int) + ?serverAddress@QTcpServer@@QBE?AVQHostAddress@@XZ @ 165 NONAME ; class QHostAddress QTcpServer::serverAddress(void) const + ?setAddress@QHostAddress@@QAEXPBUsockaddr@@@Z @ 166 NONAME ; void QHostAddress::setAddress(struct sockaddr const *) + ?setSocketError@QAbstractSocket@@IAEXW4SocketError@1@@Z @ 167 NONAME ; void QAbstractSocket::setSocketError(enum QAbstractSocket::SocketError) + ?setUser@QAuthenticator@@QAEXABVQString@@@Z @ 168 NONAME ; void QAuthenticator::setUser(class QString const &) + ??4QAuthenticator@@QAEAAV0@ABV0@@Z @ 169 NONAME ; class QAuthenticator & QAuthenticator::operator=(class QAuthenticator const &) + ?tr@QNetworkReply@@SA?AVQString@@PBD0H@Z @ 170 NONAME ; class QString QNetworkReply::tr(char const *, char const *, int) + ?setCapabilities@QNetworkProxy@@QAEXV?$QFlags@W4Capability@QNetworkProxy@@@@@Z @ 171 NONAME ; void QNetworkProxy::setCapabilities(class QFlags) + ?tr@QAbstractSocket@@SA?AVQString@@PBD0@Z @ 172 NONAME ; class QString QAbstractSocket::tr(char const *, char const *) + ??0QSslKey@@QAE@XZ @ 173 NONAME ; QSslKey::QSslKey(void) + ?rawCommandReply@QFtp@@IAEXHABVQString@@@Z @ 174 NONAME ; void QFtp::rawCommandReply(int, class QString const &) + ?canReadLine@QSslSocket@@UBE_NXZ @ 175 NONAME ; bool QSslSocket::canReadLine(void) const + ?d_func@QHttpResponseHeader@@AAEPAVQHttpResponseHeaderPrivate@@XZ @ 176 NONAME ; class QHttpResponseHeaderPrivate * QHttpResponseHeader::d_func(void) + ?setStatusLine@QHttpResponseHeader@@QAEXHABVQString@@HH@Z @ 177 NONAME ; void QHttpResponseHeader::setStatusLine(int, class QString const &, int, int) + ?setPeerAddress@QAbstractSocket@@IAEXABVQHostAddress@@@Z @ 178 NONAME ; void QAbstractSocket::setPeerAddress(class QHostAddress const &) + ?method@QHttpRequestHeader@@QBE?AVQString@@XZ @ 179 NONAME ; class QString QHttpRequestHeader::method(void) const + ??0QHostAddress@@QAE@ABV0@@Z @ 180 NONAME ; QHostAddress::QHostAddress(class QHostAddress const &) + ?allAddresses@QNetworkInterface@@SA?AV?$QList@VQHostAddress@@@@XZ @ 181 NONAME ; class QList QNetworkInterface::allAddresses(void) + ??0QHttpResponseHeader@@QAE@XZ @ 182 NONAME ; QHttpResponseHeader::QHttpResponseHeader(void) + ?version@QSslCertificate@@QBE?AVQByteArray@@XZ @ 183 NONAME ; class QByteArray QSslCertificate::version(void) const + ?tr@QHttp@@SA?AVQString@@PBD0@Z @ 184 NONAME ; class QString QHttp::tr(char const *, char const *) + ?d_func@QNetworkDiskCache@@ABEPBVQNetworkDiskCachePrivate@@XZ @ 185 NONAME ; class QNetworkDiskCachePrivate const * QNetworkDiskCache::d_func(void) const + ??0QNetworkCacheMetaData@@QAE@XZ @ 186 NONAME ; QNetworkCacheMetaData::QNetworkCacheMetaData(void) + ?trUtf8@QUdpSocket@@SA?AVQString@@PBD0H@Z @ 187 NONAME ; class QString QUdpSocket::trUtf8(char const *, char const *, int) + ?setAttribute@QNetworkReply@@IAEXW4Attribute@QNetworkRequest@@ABVQVariant@@@Z @ 188 NONAME ; void QNetworkReply::setAttribute(enum QNetworkRequest::Attribute, class QVariant const &) + ??9QNetworkRequest@@QBE_NABV0@@Z @ 189 NONAME ; bool QNetworkRequest::operator!=(class QNetworkRequest const &) const + ?tr@QTcpServer@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString QTcpServer::tr(char const *, char const *) + ?canReadLine@QAbstractSocket@@UBE_NXZ @ 191 NONAME ; bool QAbstractSocket::canReadLine(void) const + ?disconnectFromHostImplementation@QAbstractSocket@@IAEXXZ @ 192 NONAME ; void QAbstractSocket::disconnectFromHostImplementation(void) + ??6@YAAAVQDataStream@@AAV0@ABVQHostAddress@@@Z @ 193 NONAME ; class QDataStream & operator<<(class QDataStream &, class QHostAddress const &) + ?supportedBits@QSslCipher@@QBEHXZ @ 194 NONAME ; int QSslCipher::supportedBits(void) const + ?isSymLink@QUrlInfo@@QBE_NXZ @ 195 NONAME ; bool QUrlInfo::isSymLink(void) const + ??6@YA?AVQDebug@@V0@W4LocalSocketError@QLocalSocket@@@Z @ 196 NONAME ; class QDebug operator<<(class QDebug, enum QLocalSocket::LocalSocketError) + ?qt_metacast@QTcpSocket@@UAEPAXPBD@Z @ 197 NONAME ; void * QTcpSocket::qt_metacast(char const *) + ?serverName@QLocalSocket@@QBE?AVQString@@XZ @ 198 NONAME ; class QString QLocalSocket::serverName(void) const + ?setExpirationDate@QNetworkCacheMetaData@@QAEXABVQDateTime@@@Z @ 199 NONAME ; void QNetworkCacheMetaData::setExpirationDate(class QDateTime const &) + ??_EQNetworkDiskCache@@UAE@I@Z @ 200 NONAME ; QNetworkDiskCache::~QNetworkDiskCache(unsigned int) + ??0QUdpSocket@@QAE@PAVQObject@@@Z @ 201 NONAME ; QUdpSocket::QUdpSocket(class QObject *) + ?lastResponse@QHttp@@QBE?AVQHttpResponseHeader@@XZ @ 202 NONAME ; class QHttpResponseHeader QHttp::lastResponse(void) const + ?d_func@QTcpSocket@@AAEPAVQTcpSocketPrivate@@XZ @ 203 NONAME ; class QTcpSocketPrivate * QTcpSocket::d_func(void) + ??4QNetworkProxy@@QAEAAV0@ABV0@@Z @ 204 NONAME ; class QNetworkProxy & QNetworkProxy::operator=(class QNetworkProxy const &) + ?rawHeader@QNetworkReply@@QBE?AVQByteArray@@ABV2@@Z @ 205 NONAME ; class QByteArray QNetworkReply::rawHeader(class QByteArray const &) const + ?waitForEncrypted@QSslSocket@@QAE_NH@Z @ 206 NONAME ; bool QSslSocket::waitForEncrypted(int) + ?peerAddress@QAbstractSocket@@QBE?AVQHostAddress@@XZ @ 207 NONAME ; class QHostAddress QAbstractSocket::peerAddress(void) const + ?d_func@QTcpServer@@AAEPAVQTcpServerPrivate@@XZ @ 208 NONAME ; class QTcpServerPrivate * QTcpServer::d_func(void) + ?clear@QSslCertificate@@QAEXXZ @ 209 NONAME ; void QSslCertificate::clear(void) + ?setLastRead@QUrlInfo@@QAEXABVQDateTime@@@Z @ 210 NONAME ; void QUrlInfo::setLastRead(class QDateTime const &) + ?metaObject@QSslSocket@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * QSslSocket::metaObject(void) const + ?setUrl@QNetworkRequest@@QAEXABVQUrl@@@Z @ 212 NONAME ; void QNetworkRequest::setUrl(class QUrl const &) + ?header@QNetworkRequest@@QBE?AVQVariant@@W4KnownHeaders@1@@Z @ 213 NONAME ; class QVariant QNetworkRequest::header(enum QNetworkRequest::KnownHeaders) const + ?d_func@QAbstractSocket@@AAEPAVQAbstractSocketPrivate@@XZ @ 214 NONAME ; class QAbstractSocketPrivate * QAbstractSocket::d_func(void) + ??_EQHttpHeader@@UAE@I@Z @ 215 NONAME ; QHttpHeader::~QHttpHeader(unsigned int) + ?readData@QSslSocket@@MAE_JPAD_J@Z @ 216 NONAME ; long long QSslSocket::readData(char *, long long) + ??0QHostAddress@@QAE@XZ @ 217 NONAME ; QHostAddress::QHostAddress(void) + ?errorString@QHostInfo@@QBE?AVQString@@XZ @ 218 NONAME ; class QString QHostInfo::errorString(void) const + ?waitForDisconnected@QSslSocket@@QAE_NH@Z @ 219 NONAME ; bool QSslSocket::waitForDisconnected(int) + ?encryptedBytesWritten@QSslSocket@@IAEX_J@Z @ 220 NONAME ; void QSslSocket::encryptedBytesWritten(long long) + ?tr@QAbstractNetworkCache@@SA?AVQString@@PBD0H@Z @ 221 NONAME ; class QString QAbstractNetworkCache::tr(char const *, char const *, int) + ?setRawHeaders@QNetworkCacheMetaData@@QAEXABV?$QList@U?$QPair@VQByteArray@@V1@@@@@@Z @ 222 NONAME ; void QNetworkCacheMetaData::setRawHeaders(class QList > const &) + ??0QAuthenticator@@QAE@ABV0@@Z @ 223 NONAME ; QAuthenticator::QAuthenticator(class QAuthenticator const &) + ?downloadProgress@QNetworkReply@@IAEX_J0@Z @ 224 NONAME ; void QNetworkReply::downloadProgress(long long, long long) + ?cacheDirectory@QNetworkDiskCache@@QBE?AVQString@@XZ @ 225 NONAME ; class QString QNetworkDiskCache::cacheDirectory(void) const + ?put@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@@Z @ 226 NONAME ; class QNetworkReply * QNetworkAccessManager::put(class QNetworkRequest const &, class QByteArray const &) + ??4QHostAddress@@QAEAAV0@ABV0@@Z @ 227 NONAME ; class QHostAddress & QHostAddress::operator=(class QHostAddress const &) + ?tr@QLocalServer@@SA?AVQString@@PBD0@Z @ 228 NONAME ; class QString QLocalServer::tr(char const *, char const *) + ?setPrivateKey@QSslSocket@@QAEXABVQSslKey@@@Z @ 229 NONAME ; void QSslSocket::setPrivateKey(class QSslKey const &) + ?localPort@QAbstractSocket@@QBEGXZ @ 230 NONAME ; unsigned short QAbstractSocket::localPort(void) const + ?cookiesForUrl@QNetworkCookieJar@@UBE?AV?$QList@VQNetworkCookie@@@@ABVQUrl@@@Z @ 231 NONAME ; class QList QNetworkCookieJar::cookiesForUrl(class QUrl const &) const + ?hasPendingDatagrams@QUdpSocket@@QBE_NXZ @ 232 NONAME ; bool QUdpSocket::hasPendingDatagrams(void) const + ??0QNetworkAddressEntry@@QAE@ABV0@@Z @ 233 NONAME ; QNetworkAddressEntry::QNetworkAddressEntry(class QNetworkAddressEntry const &) + ??0QUrlInfo@@QAE@ABVQUrl@@HABVQString@@1_JABVQDateTime@@3_N44444@Z @ 234 NONAME ; QUrlInfo::QUrlInfo(class QUrl const &, int, class QString const &, class QString const &, long long, class QDateTime const &, class QDateTime const &, bool, bool, bool, bool, bool, bool) + ?commandFinished@QFtp@@IAEXH_N@Z @ 235 NONAME ; void QFtp::commandFinished(int, bool) + ??0QHostAddress@@QAE@ABVQIPv6Address@@@Z @ 236 NONAME ; QHostAddress::QHostAddress(class QIPv6Address const &) + ?supportsSsl@QSslSocket@@SA_NXZ @ 237 NONAME ; bool QSslSocket::supportsSsl(void) + ?post@QHttp@@QAEHABVQString@@ABVQByteArray@@PAVQIODevice@@@Z @ 238 NONAME ; int QHttp::post(class QString const &, class QByteArray const &, class QIODevice *) + ??8QNetworkAddressEntry@@QBE_NABV0@@Z @ 239 NONAME ; bool QNetworkAddressEntry::operator==(class QNetworkAddressEntry const &) const + ??6@YA?AVQDebug@@V0@ABVQHostAddress@@@Z @ 240 NONAME ; class QDebug operator<<(class QDebug, class QHostAddress const &) + ??9QHostAddress@@QBE_NABV0@@Z @ 241 NONAME ; bool QHostAddress::operator!=(class QHostAddress const &) const + ?qt_metacall@QLocalServer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 242 NONAME ; int QLocalServer::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QNetworkCookieJar@@QAE@PAVQObject@@@Z @ 243 NONAME ; QNetworkCookieJar::QNetworkCookieJar(class QObject *) + ?writeData@QNetworkReply@@MAE_JPBD_J@Z @ 244 NONAME ; long long QNetworkReply::writeData(char const *, long long) + ?metaObject@QTcpSocket@@UBEPBUQMetaObject@@XZ @ 245 NONAME ; struct QMetaObject const * QTcpSocket::metaObject(void) const + ??8QHostAddress@@QBE_NABV0@@Z @ 246 NONAME ; bool QHostAddress::operator==(class QHostAddress const &) const + ??6@YA?AVQDebug@@V0@ABW4SslError@QSslError@@@Z @ 247 NONAME ; class QDebug operator<<(class QDebug, enum QSslError::SslError const &) + ??0QNetworkProxy@@QAE@XZ @ 248 NONAME ; QNetworkProxy::QNetworkProxy(void) + ??1QSslCipher@@QAE@XZ @ 249 NONAME ; QSslCipher::~QSslCipher(void) + ??_EQAbstractNetworkCache@@UAE@I@Z @ 250 NONAME ; QAbstractNetworkCache::~QAbstractNetworkCache(unsigned int) + ?handle@QSslCertificate@@QBEKXZ @ 251 NONAME ; unsigned long QSslCertificate::handle(void) const + ?flags@QNetworkInterface@@QBE?AV?$QFlags@W4InterfaceFlag@QNetworkInterface@@@@XZ @ 252 NONAME ; class QFlags QNetworkInterface::flags(void) const + ?error@QHttp@@QBE?AW4Error@1@XZ @ 253 NONAME ; enum QHttp::Error QHttp::error(void) const + ?qt_metacall@QNetworkDiskCache@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 254 NONAME ; int QNetworkDiskCache::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QHttpRequestHeader@@QAE@ABVQString@@0HH@Z @ 255 NONAME ; QHttpRequestHeader::QHttpRequestHeader(class QString const &, class QString const &, int, int) + ?setCiphers@QSslConfiguration@@QAEXABV?$QList@VQSslCipher@@@@@Z @ 256 NONAME ; void QSslConfiguration::setCiphers(class QList const &) + ?setType@QNetworkProxy@@QAEXW4ProxyType@1@@Z @ 257 NONAME ; void QNetworkProxy::setType(enum QNetworkProxy::ProxyType) + ??1QTcpSocket@@UAE@XZ @ 258 NONAME ; QTcpSocket::~QTcpSocket(void) + ?abort@QHttp@@QAEXXZ @ 259 NONAME ; void QHttp::abort(void) + ?setUrl@QNetworkProxyQuery@@QAEXABVQUrl@@@Z @ 260 NONAME ; void QNetworkProxyQuery::setUrl(class QUrl const &) + ??_EQSslCipher@@QAE@I@Z @ 261 NONAME ; QSslCipher::~QSslCipher(unsigned int) + ?d_func@QAbstractNetworkCache@@ABEPBVQAbstractNetworkCachePrivate@@XZ @ 262 NONAME ; class QAbstractNetworkCachePrivate const * QAbstractNetworkCache::d_func(void) const + ??9QSslKey@@QBE_NABV0@@Z @ 263 NONAME ; bool QSslKey::operator!=(class QSslKey const &) const + ??_EQSslConfiguration@@QAE@I@Z @ 264 NONAME ; QSslConfiguration::~QSslConfiguration(unsigned int) + ?waitForDisconnected@QAbstractSocket@@QAE_NH@Z @ 265 NONAME ; bool QAbstractSocket::waitForDisconnected(int) + ??9QUrlInfo@@QBE_NABV0@@Z @ 266 NONAME ; bool QUrlInfo::operator!=(class QUrlInfo const &) const + ?readyRead@QFtp@@IAEXXZ @ 267 NONAME ; void QFtp::readyRead(void) + ??1QNetworkProxyFactory@@UAE@XZ @ 268 NONAME ; QNetworkProxyFactory::~QNetworkProxyFactory(void) + ?toIPv6Address@QHostAddress@@QBE?AVQIPv6Address@@XZ @ 269 NONAME ; class QIPv6Address QHostAddress::toIPv6Address(void) const + ?staticMetaObject@QUdpSocket@@2UQMetaObject@@B @ 270 NONAME ; struct QMetaObject const QUdpSocket::staticMetaObject + ?prefixLength@QNetworkAddressEntry@@QBEHXZ @ 271 NONAME ; int QNetworkAddressEntry::prefixLength(void) const + ??0QHttpResponseHeader@@QAE@ABVQString@@@Z @ 272 NONAME ; QHttpResponseHeader::QHttpResponseHeader(class QString const &) + ??0QNetworkInterface@@QAE@ABV0@@Z @ 273 NONAME ; QNetworkInterface::QNetworkInterface(class QNetworkInterface const &) + ?getStaticMetaObject@QNetworkAccessManager@@SAABUQMetaObject@@XZ @ 274 NONAME ; struct QMetaObject const & QNetworkAccessManager::getStaticMetaObject(void) + ??4QSslKey@@QAEAAV0@ABV0@@Z @ 275 NONAME ; class QSslKey & QSslKey::operator=(class QSslKey const &) + ?waitForBytesWritten@QAbstractSocket@@UAE_NH@Z @ 276 NONAME ; bool QAbstractSocket::waitForBytesWritten(int) + ?metaObject@QNetworkReply@@UBEPBUQMetaObject@@XZ @ 277 NONAME ; struct QMetaObject const * QNetworkReply::metaObject(void) const + ??1QSslCertificate@@QAE@XZ @ 278 NONAME ; QSslCertificate::~QSslCertificate(void) + ?listen@QTcpServer@@QAE_NABVQHostAddress@@G@Z @ 279 NONAME ; bool QTcpServer::listen(class QHostAddress const &, unsigned short) + ??1QHttpRequestHeader@@UAE@XZ @ 280 NONAME ; QHttpRequestHeader::~QHttpRequestHeader(void) + ?writeData@QSslSocket@@MAE_JPBD_J@Z @ 281 NONAME ; long long QSslSocket::writeData(char const *, long long) + ?setUser@QHttp@@QAEHABVQString@@0@Z @ 282 NONAME ; int QHttp::setUser(class QString const &, class QString const &) + ?name@QUrlInfo@@QBE?AVQString@@XZ @ 283 NONAME ; class QString QUrlInfo::name(void) const + ?trUtf8@QUdpSocket@@SA?AVQString@@PBD0@Z @ 284 NONAME ; class QString QUdpSocket::trUtf8(char const *, char const *) + ?peerVerifyMode@QSslSocket@@QBE?AW4PeerVerifyMode@1@XZ @ 285 NONAME ; enum QSslSocket::PeerVerifyMode QSslSocket::peerVerifyMode(void) const + ?serialNumber@QSslCertificate@@QBE?AVQByteArray@@XZ @ 286 NONAME ; class QByteArray QSslCertificate::serialNumber(void) const + ?isCachingProxy@QNetworkProxy@@QBE_NXZ @ 287 NONAME ; bool QNetworkProxy::isCachingProxy(void) const + ?setTransferMode@QFtp@@QAEHW4TransferMode@1@@Z @ 288 NONAME ; int QFtp::setTransferMode(enum QFtp::TransferMode) + ??0QHostAddress@@QAE@PAE@Z @ 289 NONAME ; QHostAddress::QHostAddress(unsigned char *) + ?waitForConnected@QAbstractSocket@@QAE_NH@Z @ 290 NONAME ; bool QAbstractSocket::waitForConnected(int) + ?startServerEncryption@QSslSocket@@QAEXXZ @ 291 NONAME ; void QSslSocket::startServerEncryption(void) + ?setRequest@QHttpRequestHeader@@QAEXABVQString@@0HH@Z @ 292 NONAME ; void QHttpRequestHeader::setRequest(class QString const &, class QString const &, int, int) + ?maximumCacheSize@QNetworkDiskCache@@QBE_JXZ @ 293 NONAME ; long long QNetworkDiskCache::maximumCacheSize(void) const + ?fromPath@QSslCertificate@@SA?AV?$QList@VQSslCertificate@@@@ABVQString@@W4EncodingFormat@QSsl@@W4PatternSyntax@QRegExp@@@Z @ 294 NONAME ; class QList QSslCertificate::fromPath(class QString const &, enum QSsl::EncodingFormat, enum QRegExp::PatternSyntax) + ?qt_metacall@QTcpSocket@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 295 NONAME ; int QTcpSocket::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1QNetworkRequest@@QAE@XZ @ 296 NONAME ; QNetworkRequest::~QNetworkRequest(void) + ?insert@QNetworkDiskCache@@UAEXPAVQIODevice@@@Z @ 297 NONAME ; void QNetworkDiskCache::insert(class QIODevice *) + ??1QUdpSocket@@UAE@XZ @ 298 NONAME ; QUdpSocket::~QUdpSocket(void) + ?tr@QTcpServer@@SA?AVQString@@PBD0H@Z @ 299 NONAME ; class QString QTcpServer::tr(char const *, char const *, int) + ?serverError@QLocalServer@@QBE?AW4SocketError@QAbstractSocket@@XZ @ 300 NONAME ; enum QAbstractSocket::SocketError QLocalServer::serverError(void) const + ?d_func@QLocalSocket@@AAEPAVQLocalSocketPrivate@@XZ @ 301 NONAME ; class QLocalSocketPrivate * QLocalSocket::d_func(void) + ?trUtf8@QLocalServer@@SA?AVQString@@PBD0@Z @ 302 NONAME ; class QString QLocalServer::trUtf8(char const *, char const *) + ?abortHostLookup@QHostInfo@@SAXH@Z @ 303 NONAME ; void QHostInfo::abortHostLookup(int) + ?setOwner@QUrlInfo@@UAEXABVQString@@@Z @ 304 NONAME ; void QUrlInfo::setOwner(class QString const &) + ?tr@QLocalServer@@SA?AVQString@@PBD0H@Z @ 305 NONAME ; class QString QLocalServer::tr(char const *, char const *, int) + ?close@QLocalSocket@@UAEXXZ @ 306 NONAME ; void QLocalSocket::close(void) + ??8QAuthenticator@@QBE_NABV0@@Z @ 307 NONAME ; bool QAuthenticator::operator==(class QAuthenticator const &) const + ?setSslConfiguration@QNetworkRequest@@QAEXABVQSslConfiguration@@@Z @ 308 NONAME ; void QNetworkRequest::setSslConfiguration(class QSslConfiguration const &) + ?capabilities@QNetworkProxy@@QBE?AV?$QFlags@W4Capability@QNetworkProxy@@@@XZ @ 309 NONAME ; class QFlags QNetworkProxy::capabilities(void) const + ?waitForNewConnection@QLocalServer@@QAE_NHPA_N@Z @ 310 NONAME ; bool QLocalServer::waitForNewConnection(int, bool *) + ?setLocalCertificate@QSslSocket@@QAEXABVQSslCertificate@@@Z @ 311 NONAME ; void QSslSocket::setLocalCertificate(class QSslCertificate const &) + ?addValue@QHttpHeader@@QAEXABVQString@@0@Z @ 312 NONAME ; void QHttpHeader::addValue(class QString const &, class QString const &) + ?cache@QNetworkAccessManager@@QBEPAVQAbstractNetworkCache@@XZ @ 313 NONAME ; class QAbstractNetworkCache * QNetworkAccessManager::cache(void) const + ??0QSslKey@@QAE@ABVQByteArray@@W4KeyAlgorithm@QSsl@@W4EncodingFormat@3@W4KeyType@3@0@Z @ 314 NONAME ; QSslKey::QSslKey(class QByteArray const &, enum QSsl::KeyAlgorithm, enum QSsl::EncodingFormat, enum QSsl::KeyType, class QByteArray const &) + ?toPem@QSslKey@@QBE?AVQByteArray@@ABV2@@Z @ 315 NONAME ; class QByteArray QSslKey::toPem(class QByteArray const &) const + ?tr@QNetworkAccessManager@@SA?AVQString@@PBD0@Z @ 316 NONAME ; class QString QNetworkAccessManager::tr(char const *, char const *) + ?setIp@QNetworkAddressEntry@@QAEXABVQHostAddress@@@Z @ 317 NONAME ; void QNetworkAddressEntry::setIp(class QHostAddress const &) + ?stateChanged@QHttp@@IAEXH@Z @ 318 NONAME ; void QHttp::stateChanged(int) + ?setHttpOnly@QNetworkCookie@@QAEX_N@Z @ 319 NONAME ; void QNetworkCookie::setHttpOnly(bool) + ?url@QNetworkRequest@@QBE?AVQUrl@@XZ @ 320 NONAME ; class QUrl QNetworkRequest::url(void) const + ?cd@QFtp@@QAEHABVQString@@@Z @ 321 NONAME ; int QFtp::cd(class QString const &) + ?attribute@QNetworkRequest@@QBE?AVQVariant@@W4Attribute@1@ABV2@@Z @ 322 NONAME ; class QVariant QNetworkRequest::attribute(enum QNetworkRequest::Attribute, class QVariant const &) const + ?protocol@QSslCipher@@QBE?AW4SslProtocol@QSsl@@XZ @ 323 NONAME ; enum QSsl::SslProtocol QSslCipher::protocol(void) const + ?setHostName@QHostInfo@@QAEXABVQString@@@Z @ 324 NONAME ; void QHostInfo::setHostName(class QString const &) + ??5@YAAAVQDataStream@@AAV0@AAVQNetworkCacheMetaData@@@Z @ 325 NONAME ; class QDataStream & operator>>(class QDataStream &, class QNetworkCacheMetaData &) + ?subjectInfo@QSslCertificate@@QBE?AVQString@@W4SubjectInfo@1@@Z @ 326 NONAME ; class QString QSslCertificate::subjectInfo(enum QSslCertificate::SubjectInfo) const + ??_EQNetworkAddressEntry@@QAE@I@Z @ 327 NONAME ; QNetworkAddressEntry::~QNetworkAddressEntry(unsigned int) + ?setCiphers@QSslSocket@@QAEXABV?$QList@VQSslCipher@@@@@Z @ 328 NONAME ; void QSslSocket::setCiphers(class QList const &) + ?bytesToWrite@QLocalSocket@@UBE_JXZ @ 329 NONAME ; long long QLocalSocket::bytesToWrite(void) const + ?setSize@QUrlInfo@@UAEX_J@Z @ 330 NONAME ; void QUrlInfo::setSize(long long) + ?isValid@QAbstractSocket@@QBE_NXZ @ 331 NONAME ; bool QAbstractSocket::isValid(void) const + ?qt_metacall@QNetworkCookieJar@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 332 NONAME ; int QNetworkCookieJar::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@QTcpSocket@@ABEPBVQTcpSocketPrivate@@XZ @ 333 NONAME ; class QTcpSocketPrivate const * QTcpSocket::d_func(void) const + ?state@QFtp@@QBE?AW4State@1@XZ @ 334 NONAME ; enum QFtp::State QFtp::state(void) const + ?socketOption@QAbstractSocket@@QAE?AVQVariant@@W4SocketOption@1@@Z @ 335 NONAME ; class QVariant QAbstractSocket::socketOption(enum QAbstractSocket::SocketOption) + ??0QHostAddress@@QAE@ABVQString@@@Z @ 336 NONAME ; QHostAddress::QHostAddress(class QString const &) + ?d_func@QTcpServer@@ABEPBVQTcpServerPrivate@@XZ @ 337 NONAME ; class QTcpServerPrivate const * QTcpServer::d_func(void) const + ?clear@QSslKey@@QAEXXZ @ 338 NONAME ; void QSslKey::clear(void) + ??6@YA?AVQDebug@@V0@ABVQNetworkInterface@@@Z @ 339 NONAME ; class QDebug operator<<(class QDebug, class QNetworkInterface const &) + ?contentLength@QHttpHeader@@QBEIXZ @ 340 NONAME ; unsigned int QHttpHeader::contentLength(void) const + ?sslErrors@QSslSocket@@IAEXABV?$QList@VQSslError@@@@@Z @ 341 NONAME ; void QSslSocket::sslErrors(class QList const &) + ?ignoreSslErrors@QSslSocket@@QAEXABV?$QList@VQSslError@@@@@Z @ 342 NONAME ; void QSslSocket::ignoreSslErrors(class QList const &) + ?trUtf8@QTcpServer@@SA?AVQString@@PBD0H@Z @ 343 NONAME ; class QString QTcpServer::trUtf8(char const *, char const *, int) + ?isNull@QAuthenticator@@QBE_NXZ @ 344 NONAME ; bool QAuthenticator::isNull(void) const + ?rmdir@QFtp@@QAEHABVQString@@@Z @ 345 NONAME ; int QFtp::rmdir(class QString const &) + ?greaterThan@QUrlInfo@@SA_NABV1@0H@Z @ 346 NONAME ; bool QUrlInfo::greaterThan(class QUrlInfo const &, class QUrlInfo const &, int) + ?isSecure@QNetworkCookie@@QBE_NXZ @ 347 NONAME ; bool QNetworkCookie::isSecure(void) const + ?protocolString@QSslCipher@@QBE?AVQString@@XZ @ 348 NONAME ; class QString QSslCipher::protocolString(void) const + ?d_func@QHttpResponseHeader@@ABEPBVQHttpResponseHeaderPrivate@@XZ @ 349 NONAME ; class QHttpResponseHeaderPrivate const * QHttpResponseHeader::d_func(void) const + ??8QUrlInfo@@QBE_NABV0@@Z @ 350 NONAME ; bool QUrlInfo::operator==(class QUrlInfo const &) const + ?isSequential@QLocalSocket@@UBE_NXZ @ 351 NONAME ; bool QLocalSocket::isSequential(void) const + ??6@YA?AVQDebug@@V0@ABVQSslError@@@Z @ 352 NONAME ; class QDebug operator<<(class QDebug, class QSslError const &) + ?metaObject@QLocalServer@@UBEPBUQMetaObject@@XZ @ 353 NONAME ; struct QMetaObject const * QLocalServer::metaObject(void) const + ?metaObject@QUdpSocket@@UBEPBUQMetaObject@@XZ @ 354 NONAME ; struct QMetaObject const * QUdpSocket::metaObject(void) const + ?setOriginatingObject@QNetworkRequest@@QAEXPAVQObject@@@Z @ 355 NONAME ; void QNetworkRequest::setOriginatingObject(class QObject *) + ?trUtf8@QNetworkAccessManager@@SA?AVQString@@PBD0H@Z @ 356 NONAME ; class QString QNetworkAccessManager::trUtf8(char const *, char const *, int) + ?isSequential@QAbstractSocket@@UBE_NXZ @ 357 NONAME ; bool QAbstractSocket::isSequential(void) const + ?d_func@QHttpRequestHeader@@AAEPAVQHttpRequestHeaderPrivate@@XZ @ 358 NONAME ; class QHttpRequestHeaderPrivate * QHttpRequestHeader::d_func(void) + ?proxyAuthenticationRequired@QNetworkAccessManager@@IAEXABVQNetworkProxy@@PAVQAuthenticator@@@Z @ 359 NONAME ; void QNetworkAccessManager::proxyAuthenticationRequired(class QNetworkProxy const &, class QAuthenticator *) + ?dataSendProgress@QHttp@@IAEXHH@Z @ 360 NONAME ; void QHttp::dataSendProgress(int, int) + ??0QAbstractNetworkCache@@IAE@PAVQObject@@@Z @ 361 NONAME ; QAbstractNetworkCache::QAbstractNetworkCache(class QObject *) + ?getStaticMetaObject@QLocalServer@@SAABUQMetaObject@@XZ @ 362 NONAME ; struct QMetaObject const & QLocalServer::getStaticMetaObject(void) + ?connectToHostEncrypted@QSslSocket@@QAEXABVQString@@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 363 NONAME ; void QSslSocket::connectToHostEncrypted(class QString const &, unsigned short, class QFlags) + ??0QSslConfiguration@@QAE@XZ @ 364 NONAME ; QSslConfiguration::QSslConfiguration(void) + ??0QNetworkReply@@IAE@AAVQNetworkReplyPrivate@@PAVQObject@@@Z @ 365 NONAME ; QNetworkReply::QNetworkReply(class QNetworkReplyPrivate &, class QObject *) + ?isValid@QUrlInfo@@QBE_NXZ @ 366 NONAME ; bool QUrlInfo::isValid(void) const + ?type@QNetworkProxy@@QBE?AW4ProxyType@1@XZ @ 367 NONAME ; enum QNetworkProxy::ProxyType QNetworkProxy::type(void) const + ?serverError@QTcpServer@@QBE?AW4SocketError@QAbstractSocket@@XZ @ 368 NONAME ; enum QAbstractSocket::SocketError QTcpServer::serverError(void) const + ?hasPendingConnections@QLocalServer@@UBE_NXZ @ 369 NONAME ; bool QLocalServer::hasPendingConnections(void) const + ?setProxy@QAbstractSocket@@QAEXABVQNetworkProxy@@@Z @ 370 NONAME ; void QAbstractSocket::setProxy(class QNetworkProxy const &) + ?ignoreSslErrors@QNetworkReply@@UAEXXZ @ 371 NONAME ; void QNetworkReply::ignoreSslErrors(void) + ?waitForReadyRead@QSslSocket@@UAE_NH@Z @ 372 NONAME ; bool QSslSocket::waitForReadyRead(int) + ?subjectInfo@QSslCertificate@@QBE?AVQString@@ABVQByteArray@@@Z @ 373 NONAME ; class QString QSslCertificate::subjectInfo(class QByteArray const &) const + ?digest@QSslCertificate@@QBE?AVQByteArray@@W4Algorithm@QCryptographicHash@@@Z @ 374 NONAME ; class QByteArray QSslCertificate::digest(enum QCryptographicHash::Algorithm) const + ?setDefaultConfiguration@QSslConfiguration@@SAXABV1@@Z @ 375 NONAME ; void QSslConfiguration::setDefaultConfiguration(class QSslConfiguration const &) + ??0QTcpSocket@@IAE@AAVQTcpSocketPrivate@@PAVQObject@@@Z @ 376 NONAME ; QTcpSocket::QTcpSocket(class QTcpSocketPrivate &, class QObject *) + ?getStaticMetaObject@QSslSocket@@SAABUQMetaObject@@XZ @ 377 NONAME ; struct QMetaObject const & QSslSocket::getStaticMetaObject(void) + ??0QSslCipher@@QAE@ABV0@@Z @ 378 NONAME ; QSslCipher::QSslCipher(class QSslCipher const &) + ?applicationProxy@QNetworkProxy@@SA?AV1@XZ @ 379 NONAME ; class QNetworkProxy QNetworkProxy::applicationProxy(void) + ?setScopeId@QHostAddress@@QAEXABVQString@@@Z @ 380 NONAME ; void QHostAddress::setScopeId(class QString const &) + ?errorString@QLocalServer@@QBE?AVQString@@XZ @ 381 NONAME ; class QString QLocalServer::errorString(void) const + ?get@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@@Z @ 382 NONAME ; class QNetworkReply * QNetworkAccessManager::get(class QNetworkRequest const &) + ?d_func@QFtp@@AAEPAVQFtpPrivate@@XZ @ 383 NONAME ; class QFtpPrivate * QFtp::d_func(void) + ??1QLocalServer@@UAE@XZ @ 384 NONAME ; QLocalServer::~QLocalServer(void) + ??0QHostAddress@@QAE@PBUsockaddr@@@Z @ 385 NONAME ; QHostAddress::QHostAddress(struct sockaddr const *) + ?serverName@QLocalServer@@QBE?AVQString@@XZ @ 386 NONAME ; class QString QLocalServer::serverName(void) const + ?d_func@QNetworkCookieJar@@AAEPAVQNetworkCookieJarPrivate@@XZ @ 387 NONAME ; class QNetworkCookieJarPrivate * QNetworkCookieJar::d_func(void) + ??8QNetworkCookie@@QBE_NABV0@@Z @ 388 NONAME ; bool QNetworkCookie::operator==(class QNetworkCookie const &) const + ?setRawHeader@QNetworkReply@@IAEXABVQByteArray@@0@Z @ 389 NONAME ; void QNetworkReply::setRawHeader(class QByteArray const &, class QByteArray const &) + ?pendingDatagramSize@QUdpSocket@@QBE_JXZ @ 390 NONAME ; long long QUdpSocket::pendingDatagramSize(void) const + ??0QNetworkProxy@@QAE@ABV0@@Z @ 391 NONAME ; QNetworkProxy::QNetworkProxy(class QNetworkProxy const &) + ?values@QHttpHeader@@QBE?AV?$QList@U?$QPair@VQString@@V1@@@@@XZ @ 392 NONAME ; class QList > QHttpHeader::values(void) const + ?d_func@QUdpSocket@@AAEPAVQUdpSocketPrivate@@XZ @ 393 NONAME ; class QUdpSocketPrivate * QUdpSocket::d_func(void) + ?connectToHost@QFtp@@QAEHABVQString@@G@Z @ 394 NONAME ; int QFtp::connectToHost(class QString const &, unsigned short) + ??0QHttpRequestHeader@@QAE@XZ @ 395 NONAME ; QHttpRequestHeader::QHttpRequestHeader(void) + ?type@QSslKey@@QBE?AW4KeyType@QSsl@@XZ @ 396 NONAME ; enum QSsl::KeyType QSslKey::type(void) const + ?trUtf8@QAbstractNetworkCache@@SA?AVQString@@PBD0@Z @ 397 NONAME ; class QString QAbstractNetworkCache::trUtf8(char const *, char const *) + ?setUseSystemConfiguration@QNetworkProxyFactory@@SAX_N@Z @ 398 NONAME ; void QNetworkProxyFactory::setUseSystemConfiguration(bool) + ?setGroup@QUrlInfo@@UAEXABVQString@@@Z @ 399 NONAME ; void QUrlInfo::setGroup(class QString const &) + ??1QFtp@@UAE@XZ @ 400 NONAME ; QFtp::~QFtp(void) + ??0QSslCertificate@@QAE@ABVQByteArray@@W4EncodingFormat@QSsl@@@Z @ 401 NONAME ; QSslCertificate::QSslCertificate(class QByteArray const &, enum QSsl::EncodingFormat) + ?setValid@QHttpHeader@@IAEX_N@Z @ 402 NONAME ; void QHttpHeader::setValid(bool) + ?setHeader@QNetworkReply@@IAEXW4KnownHeaders@QNetworkRequest@@ABVQVariant@@@Z @ 403 NONAME ; void QNetworkReply::setHeader(enum QNetworkRequest::KnownHeaders, class QVariant const &) + ?close@QNetworkReply@@UAEXXZ @ 404 NONAME ; void QNetworkReply::close(void) + ??0QSslSocket@@QAE@PAVQObject@@@Z @ 405 NONAME ; QSslSocket::QSslSocket(class QObject *) + ?trUtf8@QLocalSocket@@SA?AVQString@@PBD0H@Z @ 406 NONAME ; class QString QLocalSocket::trUtf8(char const *, char const *, int) + ??6@YA?AVQDebug@@V0@ABVQSslKey@@@Z @ 407 NONAME ; class QDebug operator<<(class QDebug, class QSslKey const &) + ?usedBits@QSslCipher@@QBEHXZ @ 408 NONAME ; int QSslCipher::usedBits(void) const + ??8QSslConfiguration@@QBE_NABV0@@Z @ 409 NONAME ; bool QSslConfiguration::operator==(class QSslConfiguration const &) const + ?request@QHttp@@QAEHABVQHttpRequestHeader@@PAVQIODevice@@1@Z @ 410 NONAME ; int QHttp::request(class QHttpRequestHeader const &, class QIODevice *, class QIODevice *) + ?reasonPhrase@QHttpResponseHeader@@QBE?AVQString@@XZ @ 411 NONAME ; class QString QHttpResponseHeader::reasonPhrase(void) const + ?socketOption@QSslSocket@@QAE?AVQVariant@@W4SocketOption@QAbstractSocket@@@Z @ 412 NONAME ; class QVariant QSslSocket::socketOption(enum QAbstractSocket::SocketOption) + ?clearPendingRequests@QHttp@@QAEXXZ @ 413 NONAME ; void QHttp::clearPendingRequests(void) + ?encryptionMethod@QSslCipher@@QBE?AVQString@@XZ @ 414 NONAME ; class QString QSslCipher::encryptionMethod(void) const + ?metaObject@QNetworkAccessManager@@UBEPBUQMetaObject@@XZ @ 415 NONAME ; struct QMetaObject const * QNetworkAccessManager::metaObject(void) const + ?isFinished@QNetworkReply@@QBE_NXZ @ 416 NONAME ; bool QNetworkReply::isFinished(void) const + ?connectToHostImplementation@QSslSocket@@IAEXABVQString@@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 417 NONAME ; void QSslSocket::connectToHostImplementation(class QString const &, unsigned short, class QFlags) + ??0QHostInfo@@QAE@H@Z @ 418 NONAME ; QHostInfo::QHostInfo(int) + ?toIPv4Address@QHostAddress@@QBEIXZ @ 419 NONAME ; unsigned int QHostAddress::toIPv4Address(void) const + ??0QNetworkProxyQuery@@QAE@ABVQString@@H0W4QueryType@0@@Z @ 420 NONAME ; QNetworkProxyQuery::QNetworkProxyQuery(class QString const &, int, class QString const &, enum QNetworkProxyQuery::QueryType) + ?bind@QUdpSocket@@QAE_NGV?$QFlags@W4BindFlag@QUdpSocket@@@@@Z @ 421 NONAME ; bool QUdpSocket::bind(unsigned short, class QFlags) + ?setLocalCertificate@QSslConfiguration@@QAEXABVQSslCertificate@@@Z @ 422 NONAME ; void QSslConfiguration::setLocalCertificate(class QSslCertificate const &) + ?parseCookies@QNetworkCookie@@SA?AV?$QList@VQNetworkCookie@@@@ABVQByteArray@@@Z @ 423 NONAME ; class QList QNetworkCookie::parseCookies(class QByteArray const &) + ?flush@QAbstractSocket@@QAE_NXZ @ 424 NONAME ; bool QAbstractSocket::flush(void) + ?cacheSize@QNetworkDiskCache@@UBE_JXZ @ 425 NONAME ; long long QNetworkDiskCache::cacheSize(void) const + ?trUtf8@QTcpServer@@SA?AVQString@@PBD0@Z @ 426 NONAME ; class QString QTcpServer::trUtf8(char const *, char const *) + ?staticMetaObject@QSslSocket@@2UQMetaObject@@B @ 427 NONAME ; struct QMetaObject const QSslSocket::staticMetaObject + ?lessThan@QUrlInfo@@SA_NABV1@0H@Z @ 428 NONAME ; bool QUrlInfo::lessThan(class QUrlInfo const &, class QUrlInfo const &, int) + ?connected@QAbstractSocket@@IAEXXZ @ 429 NONAME ; void QAbstractSocket::connected(void) + ?setLastModified@QUrlInfo@@UAEXABVQDateTime@@@Z @ 430 NONAME ; void QUrlInfo::setLastModified(class QDateTime const &) + ?setHost@QHttp@@QAEHABVQString@@G@Z @ 431 NONAME ; int QHttp::setHost(class QString const &, unsigned short) + ?name@QNetworkInterface@@QBE?AVQString@@XZ @ 432 NONAME ; class QString QNetworkInterface::name(void) const + ?netmask@QNetworkAddressEntry@@QBE?AVQHostAddress@@XZ @ 433 NONAME ; class QHostAddress QNetworkAddressEntry::netmask(void) const + ?hasPendingConnections@QTcpServer@@UBE_NXZ @ 434 NONAME ; bool QTcpServer::hasPendingConnections(void) const + ?qt_metacast@QNetworkAccessManager@@UAEPAXPBD@Z @ 435 NONAME ; void * QNetworkAccessManager::qt_metacast(char const *) + ?put@QFtp@@QAEHABVQByteArray@@ABVQString@@W4TransferType@1@@Z @ 436 NONAME ; int QFtp::put(class QByteArray const &, class QString const &, enum QFtp::TransferType) + ??0QHostInfo@@QAE@ABV0@@Z @ 437 NONAME ; QHostInfo::QHostInfo(class QHostInfo const &) + ??0QNetworkCookie@@QAE@ABVQByteArray@@0@Z @ 438 NONAME ; QNetworkCookie::QNetworkCookie(class QByteArray const &, class QByteArray const &) + ?value@QHttpHeader@@QBE?AVQString@@ABV2@@Z @ 439 NONAME ; class QString QHttpHeader::value(class QString const &) const + ?deleteResource@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@@Z @ 440 NONAME ; class QNetworkReply * QNetworkAccessManager::deleteResource(class QNetworkRequest const &) + ??6@YAAAVQDataStream@@AAV0@ABVQNetworkCacheMetaData@@@Z @ 441 NONAME ; class QDataStream & operator<<(class QDataStream &, class QNetworkCacheMetaData const &) + ?caCertificates@QSslConfiguration@@QBE?AV?$QList@VQSslCertificate@@@@XZ @ 442 NONAME ; class QList QSslConfiguration::caCertificates(void) const + ?staticMetaObject@QNetworkReply@@2UQMetaObject@@B @ 443 NONAME ; struct QMetaObject const QNetworkReply::staticMetaObject + ?d_func@QHttpHeader@@AAEPAVQHttpHeaderPrivate@@XZ @ 444 NONAME ; class QHttpHeaderPrivate * QHttpHeader::d_func(void) + ?originatingObject@QNetworkRequest@@QBEPAVQObject@@XZ @ 445 NONAME ; class QObject * QNetworkRequest::originatingObject(void) const + ?errorString@QTcpServer@@QBE?AVQString@@XZ @ 446 NONAME ; class QString QTcpServer::errorString(void) const + ?setHostName@QNetworkProxy@@QAEXABVQString@@@Z @ 447 NONAME ; void QNetworkProxy::setHostName(class QString const &) + ??_EQNetworkCookie@@QAE@I@Z @ 448 NONAME ; QNetworkCookie::~QNetworkCookie(unsigned int) + ?tr@QSslSocket@@SA?AVQString@@PBD0@Z @ 449 NONAME ; class QString QSslSocket::tr(char const *, char const *) + ?proxy@QTcpServer@@QBE?AVQNetworkProxy@@XZ @ 450 NONAME ; class QNetworkProxy QTcpServer::proxy(void) const + ?issuerInfo@QSslCertificate@@QBE?AVQString@@W4SubjectInfo@1@@Z @ 451 NONAME ; class QString QSslCertificate::issuerInfo(enum QSslCertificate::SubjectInfo) const + ??9QNetworkProxy@@QBE_NABV0@@Z @ 452 NONAME ; bool QNetworkProxy::operator!=(class QNetworkProxy const &) const + ??0QTcpServer@@QAE@PAVQObject@@@Z @ 453 NONAME ; QTcpServer::QTcpServer(class QObject *) + ??0QNetworkAccessManager@@QAE@PAVQObject@@@Z @ 454 NONAME ; QNetworkAccessManager::QNetworkAccessManager(class QObject *) + ??4QNetworkProxyQuery@@QAEAAV0@ABV0@@Z @ 455 NONAME ; class QNetworkProxyQuery & QNetworkProxyQuery::operator=(class QNetworkProxyQuery const &) + ?addCaCertificate@QSslSocket@@QAEXABVQSslCertificate@@@Z @ 456 NONAME ; void QSslSocket::addCaCertificate(class QSslCertificate const &) + ?setSocketDescriptor@QSslSocket@@QAE_NHW4SocketState@QAbstractSocket@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 457 NONAME ; bool QSslSocket::setSocketDescriptor(int, enum QAbstractSocket::SocketState, class QFlags) + ?allInterfaces@QNetworkInterface@@SA?AV?$QList@VQNetworkInterface@@@@XZ @ 458 NONAME ; class QList QNetworkInterface::allInterfaces(void) + ?read@QHttp@@QAE_JPAD_J@Z @ 459 NONAME ; long long QHttp::read(char *, long long) + ?disconnected@QAbstractSocket@@IAEXXZ @ 460 NONAME ; void QAbstractSocket::disconnected(void) + ?qt_metacast@QHttp@@UAEPAXPBD@Z @ 461 NONAME ; void * QHttp::qt_metacast(char const *) + ?expire@QNetworkDiskCache@@MAE_JXZ @ 462 NONAME ; long long QNetworkDiskCache::expire(void) + ?socketDescriptor@QTcpServer@@QBEHXZ @ 463 NONAME ; int QTcpServer::socketDescriptor(void) const + ?proxyForQuery@QNetworkProxyFactory@@SA?AV?$QList@VQNetworkProxy@@@@ABVQNetworkProxyQuery@@@Z @ 464 NONAME ; class QList QNetworkProxyFactory::proxyForQuery(class QNetworkProxyQuery const &) + ?waitForBytesWritten@QSslSocket@@UAE_NH@Z @ 465 NONAME ; bool QSslSocket::waitForBytesWritten(int) + ?privateKey@QSslSocket@@QBE?AVQSslKey@@XZ @ 466 NONAME ; class QSslKey QSslSocket::privateKey(void) const + ?trUtf8@QFtp@@SA?AVQString@@PBD0@Z @ 467 NONAME ; class QString QFtp::trUtf8(char const *, char const *) + ?fileMetaData@QNetworkDiskCache@@QBE?AVQNetworkCacheMetaData@@ABVQString@@@Z @ 468 NONAME ; class QNetworkCacheMetaData QNetworkDiskCache::fileMetaData(class QString const &) const + ?d_func@QHttp@@AAEPAVQHttpPrivate@@XZ @ 469 NONAME ; class QHttpPrivate * QHttp::d_func(void) + ?setError@QHostInfo@@QAEXW4HostInfoError@1@@Z @ 470 NONAME ; void QHostInfo::setError(enum QHostInfo::HostInfoError) + ?isHttpOnly@QNetworkCookie@@QBE_NXZ @ 471 NONAME ; bool QNetworkCookie::isHttpOnly(void) const + ?lastRead@QUrlInfo@@QBE?AVQDateTime@@XZ @ 472 NONAME ; class QDateTime QUrlInfo::lastRead(void) const + ?protocol@QSslConfiguration@@QBE?AW4SslProtocol@QSsl@@XZ @ 473 NONAME ; enum QSsl::SslProtocol QSslConfiguration::protocol(void) const + ?setProxy@QNetworkAccessManager@@QAEXABVQNetworkProxy@@@Z @ 474 NONAME ; void QNetworkAccessManager::setProxy(class QNetworkProxy const &) + ?metaObject@QNetworkDiskCache@@UBEPBUQMetaObject@@XZ @ 475 NONAME ; struct QMetaObject const * QNetworkDiskCache::metaObject(void) const + ?handle@QSslKey@@QBEKXZ @ 476 NONAME ; unsigned long QSslKey::handle(void) const + ??_EQSslCertificate@@QAE@I@Z @ 477 NONAME ; QSslCertificate::~QSslCertificate(unsigned int) + ?setDomain@QNetworkCookie@@QAEXABVQString@@@Z @ 478 NONAME ; void QNetworkCookie::setDomain(class QString const &) + ?incomingConnection@QLocalServer@@MAEXI@Z @ 479 NONAME ; void QLocalServer::incomingConnection(unsigned int) + ?state@QAbstractSocket@@QBE?AW4SocketState@1@XZ @ 480 NONAME ; enum QAbstractSocket::SocketState QAbstractSocket::state(void) const + ?setBroadcast@QNetworkAddressEntry@@QAEXABVQHostAddress@@@Z @ 481 NONAME ; void QNetworkAddressEntry::setBroadcast(class QHostAddress const &) + ?disconnectFromHost@QAbstractSocket@@QAEXXZ @ 482 NONAME ; void QAbstractSocket::disconnectFromHost(void) + ??0QNetworkDiskCache@@QAE@PAVQObject@@@Z @ 483 NONAME ; QNetworkDiskCache::QNetworkDiskCache(class QObject *) + ?waitForNewConnection@QTcpServer@@QAE_NHPA_N@Z @ 484 NONAME ; bool QTcpServer::waitForNewConnection(int, bool *) + ?connectToHost@QAbstractSocket@@QAEXABVQString@@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 485 NONAME ; void QAbstractSocket::connectToHost(class QString const &, unsigned short, class QFlags) + ?currentId@QHttp@@QBEHXZ @ 486 NONAME ; int QHttp::currentId(void) const + ?statusCode@QHttpResponseHeader@@QBEHXZ @ 487 NONAME ; int QHttpResponseHeader::statusCode(void) const + ?qt_metacast@QSslSocket@@UAEPAXPBD@Z @ 488 NONAME ; void * QSslSocket::qt_metacast(char const *) + ?defaultCaCertificates@QSslSocket@@SA?AV?$QList@VQSslCertificate@@@@XZ @ 489 NONAME ; class QList QSslSocket::defaultCaCertificates(void) + ?error@QSslError@@QBE?AW4SslError@1@XZ @ 490 NONAME ; enum QSslError::SslError QSslError::error(void) const + ?realm@QAuthenticator@@QBE?AVQString@@XZ @ 491 NONAME ; class QString QAuthenticator::realm(void) const + ?done@QFtp@@IAEX_N@Z @ 492 NONAME ; void QFtp::done(bool) + ?trUtf8@QFtp@@SA?AVQString@@PBD0H@Z @ 493 NONAME ; class QString QFtp::trUtf8(char const *, char const *, int) + ?isValid@QLocalSocket@@QBE_NXZ @ 494 NONAME ; bool QLocalSocket::isValid(void) const + ?setFile@QUrlInfo@@UAEX_N@Z @ 495 NONAME ; void QUrlInfo::setFile(bool) + ?d_func@QHttpRequestHeader@@ABEPBVQHttpRequestHeaderPrivate@@XZ @ 496 NONAME ; class QHttpRequestHeaderPrivate const * QHttpRequestHeader::d_func(void) const + ??4QHostInfo@@QAEAAV0@ABV0@@Z @ 497 NONAME ; class QHostInfo & QHostInfo::operator=(class QHostInfo const &) + ?proxy@QNetworkAccessManager@@QBE?AVQNetworkProxy@@XZ @ 498 NONAME ; class QNetworkProxy QNetworkAccessManager::proxy(void) const + ?head@QHttp@@QAEHABVQString@@@Z @ 499 NONAME ; int QHttp::head(class QString const &) + ?toString@QHttpResponseHeader@@UBE?AVQString@@XZ @ 500 NONAME ; class QString QHttpResponseHeader::toString(void) const + ?rawHeader@QNetworkRequest@@QBE?AVQByteArray@@ABV2@@Z @ 501 NONAME ; class QByteArray QNetworkRequest::rawHeader(class QByteArray const &) const + ??0QSslKey@@QAE@PAVQIODevice@@W4KeyAlgorithm@QSsl@@W4EncodingFormat@3@W4KeyType@3@ABVQByteArray@@@Z @ 502 NONAME ; QSslKey::QSslKey(class QIODevice *, enum QSsl::KeyAlgorithm, enum QSsl::EncodingFormat, enum QSsl::KeyType, class QByteArray const &) + ?qt_metacast@QAbstractNetworkCache@@UAEPAXPBD@Z @ 503 NONAME ; void * QAbstractNetworkCache::qt_metacast(char const *) + ?sslErrors@QNetworkReply@@IAEXABV?$QList@VQSslError@@@@@Z @ 504 NONAME ; void QNetworkReply::sslErrors(class QList const &) + ?metaObject@QTcpServer@@UBEPBUQMetaObject@@XZ @ 505 NONAME ; struct QMetaObject const * QTcpServer::metaObject(void) const + ??_EQNetworkAccessManager@@UAE@I@Z @ 506 NONAME ; QNetworkAccessManager::~QNetworkAccessManager(unsigned int) + ?isSessionCookie@QNetworkCookie@@QBE_NXZ @ 507 NONAME ; bool QNetworkCookie::isSessionCookie(void) const + ?tr@QNetworkCookieJar@@SA?AVQString@@PBD0@Z @ 508 NONAME ; class QString QNetworkCookieJar::tr(char const *, char const *) + ??_EQNetworkReply@@UAE@I@Z @ 509 NONAME ; QNetworkReply::~QNetworkReply(unsigned int) + ?sslConfiguration@QSslSocket@@QBE?AVQSslConfiguration@@XZ @ 510 NONAME ; class QSslConfiguration QSslSocket::sslConfiguration(void) const + ?localHostName@QHostInfo@@SA?AVQString@@XZ @ 511 NONAME ; class QString QHostInfo::localHostName(void) + ?setPort@QNetworkProxy@@QAEXG@Z @ 512 NONAME ; void QNetworkProxy::setPort(unsigned short) + ??6@YA?AVQDebug@@V0@W4SocketState@QAbstractSocket@@@Z @ 513 NONAME ; class QDebug operator<<(class QDebug, enum QAbstractSocket::SocketState) + ??1QNetworkProxy@@QAE@XZ @ 514 NONAME ; QNetworkProxy::~QNetworkProxy(void) + ?setProtocolTag@QNetworkProxyQuery@@QAEXABVQString@@@Z @ 515 NONAME ; void QNetworkProxyQuery::setProtocolTag(class QString const &) + ?parseLine@QHttpResponseHeader@@MAE_NABVQString@@H@Z @ 516 NONAME ; bool QHttpResponseHeader::parseLine(class QString const &, int) + ?d_func@QUdpSocket@@ABEPBVQUdpSocketPrivate@@XZ @ 517 NONAME ; class QUdpSocketPrivate const * QUdpSocket::d_func(void) const + ?interfaceFromName@QNetworkInterface@@SA?AV1@ABVQString@@@Z @ 518 NONAME ; class QNetworkInterface QNetworkInterface::interfaceFromName(class QString const &) + ??0QNetworkRequest@@QAE@ABV0@@Z @ 519 NONAME ; QNetworkRequest::QNetworkRequest(class QNetworkRequest const &) + ??_EQNetworkProxyFactory@@UAE@I@Z @ 520 NONAME ; QNetworkProxyFactory::~QNetworkProxyFactory(unsigned int) + ??1QHttpHeader@@UAE@XZ @ 521 NONAME ; QHttpHeader::~QHttpHeader(void) + ?writeDatagram@QUdpSocket@@QAE_JPBD_JABVQHostAddress@@G@Z @ 522 NONAME ; long long QUdpSocket::writeDatagram(char const *, long long, class QHostAddress const &, unsigned short) + ?nextPendingConnection@QLocalServer@@UAEPAVQLocalSocket@@XZ @ 523 NONAME ; class QLocalSocket * QLocalServer::nextPendingConnection(void) + ?setUrl@QNetworkReply@@IAEXABVQUrl@@@Z @ 524 NONAME ; void QNetworkReply::setUrl(class QUrl const &) + ?qt_metacall@QUdpSocket@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 525 NONAME ; int QUdpSocket::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setPeerVerifyMode@QSslConfiguration@@QAEXW4PeerVerifyMode@QSslSocket@@@Z @ 526 NONAME ; void QSslConfiguration::setPeerVerifyMode(enum QSslSocket::PeerVerifyMode) + ?setSaveToDisk@QNetworkCacheMetaData@@QAEX_N@Z @ 527 NONAME ; void QNetworkCacheMetaData::setSaveToDisk(bool) + ??0QNetworkProxyQuery@@QAE@ABV0@@Z @ 528 NONAME ; QNetworkProxyQuery::QNetworkProxyQuery(class QNetworkProxyQuery const &) + ?setAttribute@QNetworkRequest@@QAEXW4Attribute@1@ABVQVariant@@@Z @ 529 NONAME ; void QNetworkRequest::setAttribute(enum QNetworkRequest::Attribute, class QVariant const &) + ??8QSslCertificate@@QBE_NABV0@@Z @ 530 NONAME ; bool QSslCertificate::operator==(class QSslCertificate const &) const + ?setHost@QHttp@@QAEHABVQString@@W4ConnectionMode@1@G@Z @ 531 NONAME ; int QHttp::setHost(class QString const &, enum QHttp::ConnectionMode, unsigned short) + ?setPeerPort@QNetworkProxyQuery@@QAEXH@Z @ 532 NONAME ; void QNetworkProxyQuery::setPeerPort(int) + ??1QNetworkProxyQuery@@QAE@XZ @ 533 NONAME ; QNetworkProxyQuery::~QNetworkProxyQuery(void) + ?setPath@QNetworkCookie@@QAEXABVQString@@@Z @ 534 NONAME ; void QNetworkCookie::setPath(class QString const &) + ?close@QTcpServer@@QAEXXZ @ 535 NONAME ; void QTcpServer::close(void) + ??0QNetworkProxyQuery@@QAE@XZ @ 536 NONAME ; QNetworkProxyQuery::QNetworkProxyQuery(void) + ?data@QNetworkDiskCache@@UAEPAVQIODevice@@ABVQUrl@@@Z @ 537 NONAME ; class QIODevice * QNetworkDiskCache::data(class QUrl const &) + ?setAllCookies@QNetworkCookieJar@@IAEXABV?$QList@VQNetworkCookie@@@@@Z @ 538 NONAME ; void QNetworkCookieJar::setAllCookies(class QList const &) + ?qt_metacall@QTcpServer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 539 NONAME ; int QTcpServer::qt_metacall(enum QMetaObject::Call, int, void * *) + ?maxPendingConnections@QLocalServer@@QBEHXZ @ 540 NONAME ; int QLocalServer::maxPendingConnections(void) const + ?parse@QHttpHeader@@IAE_NABVQString@@@Z @ 541 NONAME ; bool QHttpHeader::parse(class QString const &) + ?domain@QNetworkCookie@@QBE?AVQString@@XZ @ 542 NONAME ; class QString QNetworkCookie::domain(void) const + ?staticMetaObject@QHttp@@2UQMetaObject@@B @ 543 NONAME ; struct QMetaObject const QHttp::staticMetaObject + ?fromData@QSslCertificate@@SA?AV?$QList@VQSslCertificate@@@@ABVQByteArray@@W4EncodingFormat@QSsl@@@Z @ 544 NONAME ; class QList QSslCertificate::fromData(class QByteArray const &, enum QSsl::EncodingFormat) + ?trUtf8@QNetworkDiskCache@@SA?AVQString@@PBD0H@Z @ 545 NONAME ; class QString QNetworkDiskCache::trUtf8(char const *, char const *, int) + ?protocol@QHostAddress@@QBE?AW4NetworkLayerProtocol@QAbstractSocket@@XZ @ 546 NONAME ; enum QAbstractSocket::NetworkLayerProtocol QHostAddress::protocol(void) const + ?currentDevice@QFtp@@QBEPAVQIODevice@@XZ @ 547 NONAME ; class QIODevice * QFtp::currentDevice(void) const + ?qt_metacall@QSslSocket@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 548 NONAME ; int QSslSocket::qt_metacall(enum QMetaObject::Call, int, void * *) + ?bind@QUdpSocket@@QAE_NABVQHostAddress@@G@Z @ 549 NONAME ; bool QUdpSocket::bind(class QHostAddress const &, unsigned short) + ?setReadBufferSize@QNetworkReply@@UAEX_J@Z @ 550 NONAME ; void QNetworkReply::setReadBufferSize(long long) + ?setApplicationProxy@QNetworkProxy@@SAXABV1@@Z @ 551 NONAME ; void QNetworkProxy::setApplicationProxy(class QNetworkProxy const &) + ??1QNetworkDiskCache@@UAE@XZ @ 552 NONAME ; QNetworkDiskCache::~QNetworkDiskCache(void) + ??1QSslConfiguration@@QAE@XZ @ 553 NONAME ; QSslConfiguration::~QSslConfiguration(void) + ?d_func@QNetworkCookieJar@@ABEPBVQNetworkCookieJarPrivate@@XZ @ 554 NONAME ; class QNetworkCookieJarPrivate const * QNetworkCookieJar::d_func(void) const + ?d_func@QLocalSocket@@ABEPBVQLocalSocketPrivate@@XZ @ 555 NONAME ; class QLocalSocketPrivate const * QLocalSocket::d_func(void) const + ?socketType@QAbstractSocket@@QBE?AW4SocketType@1@XZ @ 556 NONAME ; enum QAbstractSocket::SocketType QAbstractSocket::socketType(void) const + ?d_func@QSslSocket@@AAEPAVQSslSocketPrivate@@XZ @ 557 NONAME ; class QSslSocketPrivate * QSslSocket::d_func(void) + ?abort@QFtp@@QAEXXZ @ 558 NONAME ; void QFtp::abort(void) + ?readData@QLocalSocket@@MAE_JPAD_J@Z @ 559 NONAME ; long long QLocalSocket::readData(char *, long long) + ?lookupId@QHostInfo@@QBEHXZ @ 560 NONAME ; int QHostInfo::lookupId(void) const + ?qHash@@YAIABVQHostAddress@@@Z @ 561 NONAME ; unsigned int qHash(class QHostAddress const &) + ??6@YA?AVQDebug@@V0@ABVQNetworkCookie@@@Z @ 562 NONAME ; class QDebug operator<<(class QDebug, class QNetworkCookie const &) + ?clear@QNetworkDiskCache@@UAEXXZ @ 563 NONAME ; void QNetworkDiskCache::clear(void) + ?privateKey@QSslConfiguration@@QBE?AVQSslKey@@XZ @ 564 NONAME ; class QSslKey QSslConfiguration::privateKey(void) const + ?peerCertificateChain@QSslSocket@@QBE?AV?$QList@VQSslCertificate@@@@XZ @ 565 NONAME ; class QList QSslSocket::peerCertificateChain(void) const + ?tr@QFtp@@SA?AVQString@@PBD0@Z @ 566 NONAME ; class QString QFtp::tr(char const *, char const *) + ?readAll@QHttp@@QAE?AVQByteArray@@XZ @ 567 NONAME ; class QByteArray QHttp::readAll(void) + ?hasRawHeader@QNetworkRequest@@QBE_NABVQByteArray@@@Z @ 568 NONAME ; bool QNetworkRequest::hasRawHeader(class QByteArray const &) const + ?authenticationMethod@QSslCipher@@QBE?AVQString@@XZ @ 569 NONAME ; class QString QSslCipher::authenticationMethod(void) const + ?hardwareAddress@QNetworkInterface@@QBE?AVQString@@XZ @ 570 NONAME ; class QString QNetworkInterface::hardwareAddress(void) const + ?setName@QNetworkCookie@@QAEXABVQByteArray@@@Z @ 571 NONAME ; void QNetworkCookie::setName(class QByteArray const &) + ?isTransparentProxy@QNetworkProxy@@QBE_NXZ @ 572 NONAME ; bool QNetworkProxy::isTransparentProxy(void) const + ?trUtf8@QNetworkAccessManager@@SA?AVQString@@PBD0@Z @ 573 NONAME ; class QString QNetworkAccessManager::trUtf8(char const *, char const *) + ?isValid@QSslCertificate@@QBE_NXZ @ 574 NONAME ; bool QSslCertificate::isValid(void) const + ?bind@QUdpSocket@@QAE_NG@Z @ 575 NONAME ; bool QUdpSocket::bind(unsigned short) + ?ip@QNetworkAddressEntry@@QBE?AVQHostAddress@@XZ @ 576 NONAME ; class QHostAddress QNetworkAddressEntry::ip(void) const + ?isNull@QSslCertificate@@QBE_NXZ @ 577 NONAME ; bool QSslCertificate::isNull(void) const + ??_EQLocalSocket@@UAE@I@Z @ 578 NONAME ; QLocalSocket::~QLocalSocket(unsigned int) + ??8QNetworkRequest@@QBE_NABV0@@Z @ 579 NONAME ; bool QNetworkRequest::operator==(class QNetworkRequest const &) const + ?readBufferSize@QLocalSocket@@QBE_JXZ @ 580 NONAME ; long long QLocalSocket::readBufferSize(void) const + ?setPeerHostName@QNetworkProxyQuery@@QAEXABVQString@@@Z @ 581 NONAME ; void QNetworkProxyQuery::setPeerHostName(class QString const &) + ??0QNetworkProxy@@QAE@W4ProxyType@0@ABVQString@@G11@Z @ 582 NONAME ; QNetworkProxy::QNetworkProxy(enum QNetworkProxy::ProxyType, class QString const &, unsigned short, class QString const &, class QString const &) + ??9QNetworkCacheMetaData@@QBE_NABV0@@Z @ 583 NONAME ; bool QNetworkCacheMetaData::operator!=(class QNetworkCacheMetaData const &) const + ?isEncrypted@QSslSocket@@QBE_NXZ @ 584 NONAME ; bool QSslSocket::isEncrypted(void) const + ?setAddress@QHostAddress@@QAEXABVQIPv6Address@@@Z @ 585 NONAME ; void QHostAddress::setAddress(class QIPv6Address const &) + ??0QNetworkRequest@@QAE@ABVQUrl@@@Z @ 586 NONAME ; QNetworkRequest::QNetworkRequest(class QUrl const &) + ?qt_metacast@QNetworkReply@@UAEPAXPBD@Z @ 587 NONAME ; void * QNetworkReply::qt_metacast(char const *) + ?trUtf8@QHttp@@SA?AVQString@@PBD0@Z @ 588 NONAME ; class QString QHttp::trUtf8(char const *, char const *) + ?getStaticMetaObject@QAbstractSocket@@SAABUQMetaObject@@XZ @ 589 NONAME ; struct QMetaObject const & QAbstractSocket::getStaticMetaObject(void) + ?isFile@QUrlInfo@@QBE_NXZ @ 590 NONAME ; bool QUrlInfo::isFile(void) const + ?error@QNetworkReply@@QBE?AW4NetworkError@1@XZ @ 591 NONAME ; enum QNetworkReply::NetworkError QNetworkReply::error(void) const + ?addresses@QHostInfo@@QBE?AV?$QList@VQHostAddress@@@@XZ @ 592 NONAME ; class QList QHostInfo::addresses(void) const + ?setCacheDirectory@QNetworkDiskCache@@QAEXABVQString@@@Z @ 593 NONAME ; void QNetworkDiskCache::setCacheDirectory(class QString const &) + ??8QNetworkProxy@@QBE_NABV0@@Z @ 594 NONAME ; bool QNetworkProxy::operator==(class QNetworkProxy const &) const + ?error@QFtp@@QBE?AW4Error@1@XZ @ 595 NONAME ; enum QFtp::Error QFtp::error(void) const + ?toString@QHttpHeader@@UBE?AVQString@@XZ @ 596 NONAME ; class QString QHttpHeader::toString(void) const + ?allValues@QHttpHeader@@QBE?AVQStringList@@ABVQString@@@Z @ 597 NONAME ; class QStringList QHttpHeader::allValues(class QString const &) const + ?sessionCipher@QSslSocket@@QBE?AVQSslCipher@@XZ @ 598 NONAME ; class QSslCipher QSslSocket::sessionCipher(void) const + ??_EQTcpSocket@@UAE@I@Z @ 599 NONAME ; QTcpSocket::~QTcpSocket(unsigned int) + ?setMaxPendingConnections@QTcpServer@@QAEXH@Z @ 600 NONAME ; void QTcpServer::setMaxPendingConnections(int) + ?bind@QUdpSocket@@QAE_NABVQHostAddress@@GV?$QFlags@W4BindFlag@QUdpSocket@@@@@Z @ 601 NONAME ; bool QUdpSocket::bind(class QHostAddress const &, unsigned short, class QFlags) + ?minorVersion@QHttpResponseHeader@@UBEHXZ @ 602 NONAME ; int QHttpResponseHeader::minorVersion(void) const + ?setLocalPort@QAbstractSocket@@IAEXG@Z @ 603 NONAME ; void QAbstractSocket::setLocalPort(unsigned short) + ?d_func@QFtp@@ABEPBVQFtpPrivate@@XZ @ 604 NONAME ; class QFtpPrivate const * QFtp::d_func(void) const + ?expiryDate@QSslCertificate@@QBE?AVQDateTime@@XZ @ 605 NONAME ; class QDateTime QSslCertificate::expiryDate(void) const + ?createRequest@QNetworkAccessManager@@MAEPAVQNetworkReply@@W4Operation@1@ABVQNetworkRequest@@PAVQIODevice@@@Z @ 606 NONAME ; class QNetworkReply * QNetworkAccessManager::createRequest(enum QNetworkAccessManager::Operation, class QNetworkRequest const &, class QIODevice *) + ?supportedCiphers@QSslSocket@@SA?AV?$QList@VQSslCipher@@@@XZ @ 607 NONAME ; class QList QSslSocket::supportedCiphers(void) + ?setRequest@QNetworkReply@@IAEXABVQNetworkRequest@@@Z @ 608 NONAME ; void QNetworkReply::setRequest(class QNetworkRequest const &) + ??4QHttpRequestHeader@@QAEAAV0@ABV0@@Z @ 609 NONAME ; class QHttpRequestHeader & QHttpRequestHeader::operator=(class QHttpRequestHeader const &) + ?metaObject@QHttp@@UBEPBUQMetaObject@@XZ @ 610 NONAME ; struct QMetaObject const * QHttp::metaObject(void) const + ?setErrorString@QHostInfo@@QAEXABVQString@@@Z @ 611 NONAME ; void QHostInfo::setErrorString(class QString const &) + ?staticMetaObject@QNetworkAccessManager@@2UQMetaObject@@B @ 612 NONAME ; struct QMetaObject const QNetworkAccessManager::staticMetaObject + ?setPassword@QNetworkProxy@@QAEXABVQString@@@Z @ 613 NONAME ; void QNetworkProxy::setPassword(class QString const &) + ?fullServerName@QLocalSocket@@QBE?AVQString@@XZ @ 614 NONAME ; class QString QLocalSocket::fullServerName(void) const + ?error@QLocalSocket@@QBE?AW4LocalSocketError@1@XZ @ 615 NONAME ; enum QLocalSocket::LocalSocketError QLocalSocket::error(void) const + ?setAddress@QHostAddress@@QAE_NABVQString@@@Z @ 616 NONAME ; bool QHostAddress::setAddress(class QString const &) + ??0QSslCertificate@@QAE@ABV0@@Z @ 617 NONAME ; QSslCertificate::QSslCertificate(class QSslCertificate const &) + ?setPrivateKey@QSslConfiguration@@QAEXABVQSslKey@@@Z @ 618 NONAME ; void QSslConfiguration::setPrivateKey(class QSslKey const &) + ?qt_metacall@QAbstractSocket@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 619 NONAME ; int QAbstractSocket::qt_metacall(enum QMetaObject::Call, int, void * *) + ?majorVersion@QHttpRequestHeader@@UBEHXZ @ 620 NONAME ; int QHttpRequestHeader::majorVersion(void) const + ?queryType@QNetworkProxyQuery@@QBE?AW4QueryType@1@XZ @ 621 NONAME ; enum QNetworkProxyQuery::QueryType QNetworkProxyQuery::queryType(void) const + ?d_func@QAbstractSocket@@ABEPBVQAbstractSocketPrivate@@XZ @ 622 NONAME ; class QAbstractSocketPrivate const * QAbstractSocket::d_func(void) const + ?flush@QLocalSocket@@QAE_NXZ @ 623 NONAME ; bool QLocalSocket::flush(void) + ?qt_metacall@QHttp@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 624 NONAME ; int QHttp::qt_metacall(enum QMetaObject::Call, int, void * *) + ??9QNetworkProxyQuery@@QBE_NABV0@@Z @ 625 NONAME ; bool QNetworkProxyQuery::operator!=(class QNetworkProxyQuery const &) const + ?defaultCiphers@QSslSocket@@SA?AV?$QList@VQSslCipher@@@@XZ @ 626 NONAME ; class QList QSslSocket::defaultCiphers(void) + ??8QSslCipher@@QBE_NABV0@@Z @ 627 NONAME ; bool QSslCipher::operator==(class QSslCipher const &) const + ?ignoreSslErrors@QNetworkReply@@QAEXABV?$QList@VQSslError@@@@@Z @ 628 NONAME ; void QNetworkReply::ignoreSslErrors(class QList const &) + ??1QSslError@@QAE@XZ @ 629 NONAME ; QSslError::~QSslError(void) + ??0QFtp@@QAE@PAVQObject@@@Z @ 630 NONAME ; QFtp::QFtp(class QObject *) + ?removeValue@QHttpHeader@@QAEXABVQString@@@Z @ 631 NONAME ; void QHttpHeader::removeValue(class QString const &) + ?setQueryType@QNetworkProxyQuery@@QAEXW4QueryType@1@@Z @ 632 NONAME ; void QNetworkProxyQuery::setQueryType(enum QNetworkProxyQuery::QueryType) + ?trUtf8@QLocalServer@@SA?AVQString@@PBD0H@Z @ 633 NONAME ; class QString QLocalServer::trUtf8(char const *, char const *, int) + ?setReadBufferSize@QSslSocket@@QAEX_J@Z @ 634 NONAME ; void QSslSocket::setReadBufferSize(long long) + ?trUtf8@QNetworkDiskCache@@SA?AVQString@@PBD0@Z @ 635 NONAME ; class QString QNetworkDiskCache::trUtf8(char const *, char const *) + ??_EQNetworkInterface@@QAE@I@Z @ 636 NONAME ; QNetworkInterface::~QNetworkInterface(unsigned int) + ?setAttributes@QNetworkCacheMetaData@@QAEXABV?$QHash@W4Attribute@QNetworkRequest@@VQVariant@@@@@Z @ 637 NONAME ; void QNetworkCacheMetaData::setAttributes(class QHash const &) + ?canReadLine@QLocalSocket@@UBE_NXZ @ 638 NONAME ; bool QLocalSocket::canReadLine(void) const + ??0QLocalServer@@QAE@PAVQObject@@@Z @ 639 NONAME ; QLocalServer::QLocalServer(class QObject *) + ??1QTcpServer@@UAE@XZ @ 640 NONAME ; QTcpServer::~QTcpServer(void) + ?tr@QNetworkDiskCache@@SA?AVQString@@PBD0H@Z @ 641 NONAME ; class QString QNetworkDiskCache::tr(char const *, char const *, int) + ?connectToServer@QLocalSocket@@QAEXABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 642 NONAME ; void QLocalSocket::connectToServer(class QString const &, class QFlags) + ?toDer@QSslCertificate@@QBE?AVQByteArray@@XZ @ 643 NONAME ; class QByteArray QSslCertificate::toDer(void) const + ?newConnection@QTcpServer@@IAEXXZ @ 644 NONAME ; void QTcpServer::newConnection(void) + ?login@QFtp@@QAEHABVQString@@0@Z @ 645 NONAME ; int QFtp::login(class QString const &, class QString const &) + ?setAddresses@QHostInfo@@QAEXABV?$QList@VQHostAddress@@@@@Z @ 646 NONAME ; void QHostInfo::setAddresses(class QList const &) + ??6@YA?AVQDebug@@V0@ABVQSslCipher@@@Z @ 647 NONAME ; class QDebug operator<<(class QDebug, class QSslCipher const &) + ??0QHttpHeader@@QAE@XZ @ 648 NONAME ; QHttpHeader::QHttpHeader(void) + ?trUtf8@QSslSocket@@SA?AVQString@@PBD0@Z @ 649 NONAME ; class QString QSslSocket::trUtf8(char const *, char const *) + ??4QHttpResponseHeader@@QAEAAV0@ABV0@@Z @ 650 NONAME ; class QHttpResponseHeader & QHttpResponseHeader::operator=(class QHttpResponseHeader const &) + ?commandStarted@QFtp@@IAEXH@Z @ 651 NONAME ; void QFtp::commandStarted(int) + ?toRawForm@QNetworkCookie@@QBE?AVQByteArray@@W4RawForm@1@@Z @ 652 NONAME ; class QByteArray QNetworkCookie::toRawForm(enum QNetworkCookie::RawForm) const + ?toPem@QSslCertificate@@QBE?AVQByteArray@@XZ @ 653 NONAME ; class QByteArray QSslCertificate::toPem(void) const + ?get@QHttp@@QAEHABVQString@@PAVQIODevice@@@Z @ 654 NONAME ; int QHttp::get(class QString const &, class QIODevice *) + ?setSocketOption@QAbstractSocket@@QAEXW4SocketOption@1@ABVQVariant@@@Z @ 655 NONAME ; void QAbstractSocket::setSocketOption(enum QAbstractSocket::SocketOption, class QVariant const &) + ?d_func@QSslSocket@@ABEPBVQSslSocketPrivate@@XZ @ 656 NONAME ; class QSslSocketPrivate const * QSslSocket::d_func(void) const + ?tr@QAbstractSocket@@SA?AVQString@@PBD0H@Z @ 657 NONAME ; class QString QAbstractSocket::tr(char const *, char const *, int) + ??0QTcpSocket@@QAE@PAVQObject@@@Z @ 658 NONAME ; QTcpSocket::QTcpSocket(class QObject *) + ??0QHttp@@QAE@ABVQString@@W4ConnectionMode@0@GPAVQObject@@@Z @ 659 NONAME ; QHttp::QHttp(class QString const &, enum QHttp::ConnectionMode, unsigned short, class QObject *) + ?connectToHostImplementation@QAbstractSocket@@IAEXABVQString@@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 660 NONAME ; void QAbstractSocket::connectToHostImplementation(class QString const &, unsigned short, class QFlags) + ?sslConfiguration@QNetworkReply@@QBE?AVQSslConfiguration@@XZ @ 661 NONAME ; class QSslConfiguration QNetworkReply::sslConfiguration(void) const + ??AQIPv6Address@@QAEAAEH@Z @ 662 NONAME ; unsigned char & QIPv6Address::operator[](int) + ?setSocketDescriptor@QLocalSocket@@QAE_NIW4LocalSocketState@1@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 663 NONAME ; bool QLocalSocket::setSocketDescriptor(unsigned int, enum QLocalSocket::LocalSocketState, class QFlags) + ??_EQNetworkProxy@@QAE@I@Z @ 664 NONAME ; QNetworkProxy::~QNetworkProxy(unsigned int) + ?setPeerName@QAbstractSocket@@IAEXABVQString@@@Z @ 665 NONAME ; void QAbstractSocket::setPeerName(class QString const &) + ?getStaticMetaObject@QHttp@@SAABUQMetaObject@@XZ @ 666 NONAME ; struct QMetaObject const & QHttp::getStaticMetaObject(void) + ??0QNetworkProxyFactory@@QAE@XZ @ 667 NONAME ; QNetworkProxyFactory::QNetworkProxyFactory(void) + ?interfaceFromIndex@QNetworkInterface@@SA?AV1@H@Z @ 668 NONAME ; class QNetworkInterface QNetworkInterface::interfaceFromIndex(int) + ?url@QNetworkCacheMetaData@@QBE?AVQUrl@@XZ @ 669 NONAME ; class QUrl QNetworkCacheMetaData::url(void) const + ?setSslConfiguration@QSslSocket@@QAEXABVQSslConfiguration@@@Z @ 670 NONAME ; void QSslSocket::setSslConfiguration(class QSslConfiguration const &) + ?staticMetaObject@QFtp@@2UQMetaObject@@B @ 671 NONAME ; struct QMetaObject const QFtp::staticMetaObject + ?peerVerifyDepth@QSslConfiguration@@QBEHXZ @ 672 NONAME ; int QSslConfiguration::peerVerifyDepth(void) const + ??_EQUdpSocket@@UAE@I@Z @ 673 NONAME ; QUdpSocket::~QUdpSocket(unsigned int) + ?bytesAvailable@QAbstractSocket@@UBE_JXZ @ 674 NONAME ; long long QAbstractSocket::bytesAvailable(void) const + ?qt_metacast@QLocalServer@@UAEPAXPBD@Z @ 675 NONAME ; void * QLocalServer::qt_metacast(char const *) + ?protocol@QSslSocket@@QBE?AW4SslProtocol@QSsl@@XZ @ 676 NONAME ; enum QSsl::SslProtocol QSslSocket::protocol(void) const + ?toString@QHttpRequestHeader@@UBE?AVQString@@XZ @ 677 NONAME ; class QString QHttpRequestHeader::toString(void) const + ?setProxy@QHttp@@QAEHABVQString@@H00@Z @ 678 NONAME ; int QHttp::setProxy(class QString const &, int, class QString const &, class QString const &) + ?startClientEncryption@QSslSocket@@QAEXXZ @ 679 NONAME ; void QSslSocket::startClientEncryption(void) + ??1QNetworkCookieJar@@UAE@XZ @ 680 NONAME ; QNetworkCookieJar::~QNetworkCookieJar(void) + ??0QNetworkProxyQuery@@QAE@GABVQString@@W4QueryType@0@@Z @ 681 NONAME ; QNetworkProxyQuery::QNetworkProxyQuery(unsigned short, class QString const &, enum QNetworkProxyQuery::QueryType) + ?caCertificates@QSslSocket@@QBE?AV?$QList@VQSslCertificate@@@@XZ @ 682 NONAME ; class QList QSslSocket::caCertificates(void) const + ??4QSslCertificate@@QAEAAV0@ABV0@@Z @ 683 NONAME ; class QSslCertificate & QSslCertificate::operator=(class QSslCertificate const &) + ?trUtf8@QAbstractSocket@@SA?AVQString@@PBD0@Z @ 684 NONAME ; class QString QAbstractSocket::trUtf8(char const *, char const *) + ?stateChanged@QLocalSocket@@IAEXW4LocalSocketState@1@@Z @ 685 NONAME ; void QLocalSocket::stateChanged(enum QLocalSocket::LocalSocketState) + ?setProxy@QFtp@@QAEHABVQString@@G@Z @ 686 NONAME ; int QFtp::setProxy(class QString const &, unsigned short) + ?isReadable@QUrlInfo@@QBE_NXZ @ 687 NONAME ; bool QUrlInfo::isReadable(void) const + ?tr@QNetworkReply@@SA?AVQString@@PBD0@Z @ 688 NONAME ; class QString QNetworkReply::tr(char const *, char const *) + ?metaObject@QFtp@@UBEPBUQMetaObject@@XZ @ 689 NONAME ; struct QMetaObject const * QFtp::metaObject(void) const + ?getStaticMetaObject@QNetworkDiskCache@@SAABUQMetaObject@@XZ @ 690 NONAME ; struct QMetaObject const & QNetworkDiskCache::getStaticMetaObject(void) + ?keys@QHttpHeader@@QBE?AVQStringList@@XZ @ 691 NONAME ; class QStringList QHttpHeader::keys(void) const + ?peerCertificate@QSslSocket@@QBE?AVQSslCertificate@@XZ @ 692 NONAME ; class QSslCertificate QSslSocket::peerCertificate(void) const + ?toString@QHostAddress@@QBE?AVQString@@XZ @ 693 NONAME ; class QString QHostAddress::toString(void) const + ?setOperation@QNetworkReply@@IAEXW4Operation@QNetworkAccessManager@@@Z @ 694 NONAME ; void QNetworkReply::setOperation(enum QNetworkAccessManager::Operation) + ?attributes@QNetworkCacheMetaData@@QBE?AV?$QHash@W4Attribute@QNetworkRequest@@VQVariant@@@@XZ @ 695 NONAME ; class QHash QNetworkCacheMetaData::attributes(void) const + ??1QNetworkAddressEntry@@QAE@XZ @ 696 NONAME ; QNetworkAddressEntry::~QNetworkAddressEntry(void) + ?close@QFtp@@QAEHXZ @ 697 NONAME ; int QFtp::close(void) + ?proxyAuthenticationRequired@QHttp@@IAEXABVQNetworkProxy@@PAVQAuthenticator@@@Z @ 698 NONAME ; void QHttp::proxyAuthenticationRequired(class QNetworkProxy const &, class QAuthenticator *) + ?rawHeaderList@QNetworkReply@@QBE?AV?$QList@VQByteArray@@@@XZ @ 699 NONAME ; class QList QNetworkReply::rawHeaderList(void) const + ?d_func@QLocalServer@@AAEPAVQLocalServerPrivate@@XZ @ 700 NONAME ; class QLocalServerPrivate * QLocalServer::d_func(void) + ?setUser@QNetworkProxy@@QAEXABVQString@@@Z @ 701 NONAME ; void QNetworkProxy::setUser(class QString const &) + ?trUtf8@QAbstractNetworkCache@@SA?AVQString@@PBD0H@Z @ 702 NONAME ; class QString QAbstractNetworkCache::trUtf8(char const *, char const *, int) + ?authenticationRequired@QHttp@@IAEXABVQString@@GPAVQAuthenticator@@@Z @ 703 NONAME ; void QHttp::authenticationRequired(class QString const &, unsigned short, class QAuthenticator *) + ?read@QFtp@@QAE_JPAD_J@Z @ 704 NONAME ; long long QFtp::read(char *, long long) + ?detach@QAuthenticator@@QAEXXZ @ 705 NONAME ; void QAuthenticator::detach(void) + ??_EQHttp@@UAE@I@Z @ 706 NONAME ; QHttp::~QHttp(unsigned int) + ?finished@QNetworkReply@@IAEXXZ @ 707 NONAME ; void QNetworkReply::finished(void) + ?remove@QNetworkDiskCache@@UAE_NABVQUrl@@@Z @ 708 NONAME ; bool QNetworkDiskCache::remove(class QUrl const &) + ?request@QHttp@@QAEHABVQHttpRequestHeader@@ABVQByteArray@@PAVQIODevice@@@Z @ 709 NONAME ; int QHttp::request(class QHttpRequestHeader const &, class QByteArray const &, class QIODevice *) + ?put@QFtp@@QAEHPAVQIODevice@@ABVQString@@W4TransferType@1@@Z @ 710 NONAME ; int QFtp::put(class QIODevice *, class QString const &, enum QFtp::TransferType) + ?waitForDisconnected@QLocalSocket@@QAE_NH@Z @ 711 NONAME ; bool QLocalSocket::waitForDisconnected(int) + ?name@QSslCipher@@QBE?AVQString@@XZ @ 712 NONAME ; class QString QSslCipher::name(void) const + ?mode@QSslSocket@@QBE?AW4SslMode@1@XZ @ 713 NONAME ; enum QSslSocket::SslMode QSslSocket::mode(void) const + ?metaData@QNetworkDiskCache@@UAE?AVQNetworkCacheMetaData@@ABVQUrl@@@Z @ 714 NONAME ; class QNetworkCacheMetaData QNetworkDiskCache::metaData(class QUrl const &) + ??_EQHostAddress@@QAE@I@Z @ 715 NONAME ; QHostAddress::~QHostAddress(unsigned int) + ?abort@QLocalSocket@@QAEXXZ @ 716 NONAME ; void QLocalSocket::abort(void) + ?setDir@QUrlInfo@@UAEX_N@Z @ 717 NONAME ; void QUrlInfo::setDir(bool) + ?systemCaCertificates@QSslSocket@@SA?AV?$QList@VQSslCertificate@@@@XZ @ 718 NONAME ; class QList QSslSocket::systemCaCertificates(void) + ??0QHttpHeader@@IAE@AAVQHttpHeaderPrivate@@ABVQString@@@Z @ 719 NONAME ; QHttpHeader::QHttpHeader(class QHttpHeaderPrivate &, class QString const &) + ??0QNetworkCacheMetaData@@QAE@ABV0@@Z @ 720 NONAME ; QNetworkCacheMetaData::QNetworkCacheMetaData(class QNetworkCacheMetaData const &) + ?localDomainName@QHostInfo@@SA?AVQString@@XZ @ 721 NONAME ; class QString QHostInfo::localDomainName(void) + ??0QSslKey@@QAE@ABV0@@Z @ 722 NONAME ; QSslKey::QSslKey(class QSslKey const &) + ?lookupHost@QHostInfo@@SAHABVQString@@PAVQObject@@PBD@Z @ 723 NONAME ; int QHostInfo::lookupHost(class QString const &, class QObject *, char const *) + ?permissions@QUrlInfo@@QBEHXZ @ 724 NONAME ; int QUrlInfo::permissions(void) const + ??4QHostAddress@@QAEAAV0@ABVQString@@@Z @ 725 NONAME ; class QHostAddress & QHostAddress::operator=(class QString const &) + ?d_func@QNetworkAccessManager@@AAEPAVQNetworkAccessManagerPrivate@@XZ @ 726 NONAME ; class QNetworkAccessManagerPrivate * QNetworkAccessManager::d_func(void) + ?rawHeaders@QNetworkCacheMetaData@@QBE?AV?$QList@U?$QPair@VQByteArray@@V1@@@@@XZ @ 727 NONAME ; class QList > QNetworkCacheMetaData::rawHeaders(void) const + ??_EQLocalServer@@UAE@I@Z @ 728 NONAME ; QLocalServer::~QLocalServer(unsigned int) + ?length@QSslKey@@QBEHXZ @ 729 NONAME ; int QSslKey::length(void) const + ?setSymLink@QUrlInfo@@UAEX_N@Z @ 730 NONAME ; void QUrlInfo::setSymLink(bool) + ?allCookies@QNetworkCookieJar@@IBE?AV?$QList@VQNetworkCookie@@@@XZ @ 731 NONAME ; class QList QNetworkCookieJar::allCookies(void) const + ?localCertificate@QSslSocket@@QBE?AVQSslCertificate@@XZ @ 732 NONAME ; class QSslCertificate QSslSocket::localCertificate(void) const + ?qt_metacast@QNetworkCookieJar@@UAEPAXPBD@Z @ 733 NONAME ; void * QNetworkCookieJar::qt_metacast(char const *) + ?writeDatagram@QUdpSocket@@QAE_JABVQByteArray@@ABVQHostAddress@@G@Z @ 734 NONAME ; long long QUdpSocket::writeDatagram(class QByteArray const &, class QHostAddress const &, unsigned short) + ??0QAbstractSocket@@QAE@W4SocketType@0@PAVQObject@@@Z @ 735 NONAME ; QAbstractSocket::QAbstractSocket(enum QAbstractSocket::SocketType, class QObject *) + ?get@QFtp@@QAEHABVQString@@PAVQIODevice@@W4TransferType@1@@Z @ 736 NONAME ; int QFtp::get(class QString const &, class QIODevice *, enum QFtp::TransferType) + ?setSocketDescriptor@QAbstractSocket@@QAE_NHW4SocketState@1@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 737 NONAME ; bool QAbstractSocket::setSocketDescriptor(int, enum QAbstractSocket::SocketState, class QFlags) + ?setNetmask@QNetworkAddressEntry@@QAEXABVQHostAddress@@@Z @ 738 NONAME ; void QNetworkAddressEntry::setNetmask(class QHostAddress const &) + ??_EQHttpResponseHeader@@UAE@I@Z @ 739 NONAME ; QHttpResponseHeader::~QHttpResponseHeader(unsigned int) + ?encryptedBytesToWrite@QSslSocket@@QBE_JXZ @ 740 NONAME ; long long QSslSocket::encryptedBytesToWrite(void) const + ?localPort@QNetworkProxyQuery@@QBEHXZ @ 741 NONAME ; int QNetworkProxyQuery::localPort(void) const + ?alternateSubjectNames@QSslCertificate@@QBE?AV?$QMultiMap@W4AlternateNameEntryType@QSsl@@VQString@@@@XZ @ 742 NONAME ; class QMultiMap QSslCertificate::alternateSubjectNames(void) const + ?peerName@QAbstractSocket@@QBE?AVQString@@XZ @ 743 NONAME ; class QString QAbstractSocket::peerName(void) const + ??4QSslCipher@@QAEAAV0@ABV0@@Z @ 744 NONAME ; class QSslCipher & QSslCipher::operator=(class QSslCipher const &) + ??4QHttpHeader@@QAEAAV0@ABV0@@Z @ 745 NONAME ; class QHttpHeader & QHttpHeader::operator=(class QHttpHeader const &) + ?parseLine@QHttpRequestHeader@@MAE_NABVQString@@H@Z @ 746 NONAME ; bool QHttpRequestHeader::parseLine(class QString const &, int) + ?setPeerVerifyDepth@QSslSocket@@QAEXH@Z @ 747 NONAME ; void QSslSocket::setPeerVerifyDepth(int) + ?close@QHttp@@QAEHXZ @ 748 NONAME ; int QHttp::close(void) + ??0QNetworkInterface@@QAE@XZ @ 749 NONAME ; QNetworkInterface::QNetworkInterface(void) + ??_EQTcpServer@@UAE@I@Z @ 750 NONAME ; QTcpServer::~QTcpServer(unsigned int) + ?metaObject@QAbstractNetworkCache@@UBEPBUQMetaObject@@XZ @ 751 NONAME ; struct QMetaObject const * QAbstractNetworkCache::metaObject(void) const + ?bytesAvailable@QLocalSocket@@UBE_JXZ @ 752 NONAME ; long long QLocalSocket::bytesAvailable(void) const + ??1QAuthenticator@@QAE@XZ @ 753 NONAME ; QAuthenticator::~QAuthenticator(void) + ?setContentType@QHttpHeader@@QAEXABVQString@@@Z @ 754 NONAME ; void QHttpHeader::setContentType(class QString const &) + ?port@QNetworkProxy@@QBEGXZ @ 755 NONAME ; unsigned short QNetworkProxy::port(void) const + ?encryptedBytesAvailable@QSslSocket@@QBE_JXZ @ 756 NONAME ; long long QSslSocket::encryptedBytesAvailable(void) const + ??6@YA?AVQDebug@@V0@W4SocketError@QAbstractSocket@@@Z @ 757 NONAME ; class QDebug operator<<(class QDebug, enum QAbstractSocket::SocketError) + ?close@QLocalServer@@QAEXXZ @ 758 NONAME ; void QLocalServer::close(void) + ?staticMetaObject@QAbstractNetworkCache@@2UQMetaObject@@B @ 759 NONAME ; struct QMetaObject const QAbstractNetworkCache::staticMetaObject + ?hasKey@QHttpHeader@@QBE_NABVQString@@@Z @ 760 NONAME ; bool QHttpHeader::hasKey(class QString const &) const + ?setContentLength@QHttpHeader@@QAEXH@Z @ 761 NONAME ; void QHttpHeader::setContentLength(int) + ??_EQNetworkCookieJar@@UAE@I@Z @ 762 NONAME ; QNetworkCookieJar::~QNetworkCookieJar(unsigned int) + ?currentId@QFtp@@QBEHXZ @ 763 NONAME ; int QFtp::currentId(void) const + ?updateMetaData@QNetworkDiskCache@@UAEXABVQNetworkCacheMetaData@@@Z @ 764 NONAME ; void QNetworkDiskCache::updateMetaData(class QNetworkCacheMetaData const &) + ?errorString@QSslError@@QBE?AVQString@@XZ @ 765 NONAME ; class QString QSslError::errorString(void) const + ?disconnectFromServer@QLocalSocket@@QAEXXZ @ 766 NONAME ; void QLocalSocket::disconnectFromServer(void) + ?errorString@QFtp@@QBE?AVQString@@XZ @ 767 NONAME ; class QString QFtp::errorString(void) const + ?uploadProgress@QNetworkReply@@IAEX_J0@Z @ 768 NONAME ; void QNetworkReply::uploadProgress(long long, long long) + ??0QHttpRequestHeader@@QAE@ABVQString@@@Z @ 769 NONAME ; QHttpRequestHeader::QHttpRequestHeader(class QString const &) + ?cookieJar@QNetworkAccessManager@@QBEPAVQNetworkCookieJar@@XZ @ 770 NONAME ; class QNetworkCookieJar * QNetworkAccessManager::cookieJar(void) const + ?setAddress@QHostAddress@@QAEXPAE@Z @ 771 NONAME ; void QHostAddress::setAddress(unsigned char *) + ?parseSubnet@QHostAddress@@SA?AU?$QPair@VQHostAddress@@H@@ABVQString@@@Z @ 772 NONAME ; struct QPair QHostAddress::parseSubnet(class QString const &) + ??0QSslConfiguration@@QAE@ABV0@@Z @ 773 NONAME ; QSslConfiguration::QSslConfiguration(class QSslConfiguration const &) + ?metaObject@QNetworkCookieJar@@UBEPBUQMetaObject@@XZ @ 774 NONAME ; struct QMetaObject const * QNetworkCookieJar::metaObject(void) const + ??0QHostAddress@@QAE@I@Z @ 775 NONAME ; QHostAddress::QHostAddress(unsigned int) + ?user@QNetworkProxy@@QBE?AVQString@@XZ @ 776 NONAME ; class QString QNetworkProxy::user(void) const + ?fullServerName@QLocalServer@@QBE?AVQString@@XZ @ 777 NONAME ; class QString QLocalServer::fullServerName(void) const + ?incomingConnection@QTcpServer@@MAEXH@Z @ 778 NONAME ; void QTcpServer::incomingConnection(int) + ?mkdir@QFtp@@QAEHABVQString@@@Z @ 779 NONAME ; int QFtp::mkdir(class QString const &) + ?removeAllValues@QHttpHeader@@QAEXABVQString@@@Z @ 780 NONAME ; void QHttpHeader::removeAllValues(class QString const &) + ?error@QHostInfo@@QBE?AW4HostInfoError@1@XZ @ 781 NONAME ; enum QHostInfo::HostInfoError QHostInfo::error(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQHostAddress@@@Z @ 782 NONAME ; class QDataStream & operator>>(class QDataStream &, class QHostAddress &) + ?setValue@QHttpHeader@@QAEXABVQString@@0@Z @ 783 NONAME ; void QHttpHeader::setValue(class QString const &, class QString const &) + ??AQIPv6Address@@QBEEH@Z @ 784 NONAME ; unsigned char QIPv6Address::operator[](int) const + ??0QSslCertificate@@QAE@PAVQIODevice@@W4EncodingFormat@QSsl@@@Z @ 785 NONAME ; QSslCertificate::QSslCertificate(class QIODevice *, enum QSsl::EncodingFormat) + ?peerVerifyError@QSslSocket@@IAEXABVQSslError@@@Z @ 786 NONAME ; void QSslSocket::peerVerifyError(class QSslError const &) + ?owner@QUrlInfo@@QBE?AVQString@@XZ @ 787 NONAME ; class QString QUrlInfo::owner(void) const + ??0QUrlInfo@@QAE@ABVQString@@H00_JABVQDateTime@@2_N33333@Z @ 788 NONAME ; QUrlInfo::QUrlInfo(class QString const &, int, class QString const &, class QString const &, long long, class QDateTime const &, class QDateTime const &, bool, bool, bool, bool, bool, bool) + ?defaultConfiguration@QSslConfiguration@@SA?AV1@XZ @ 789 NONAME ; class QSslConfiguration QSslConfiguration::defaultConfiguration(void) + ?prepare@QNetworkDiskCache@@UAEPAVQIODevice@@ABVQNetworkCacheMetaData@@@Z @ 790 NONAME ; class QIODevice * QNetworkDiskCache::prepare(class QNetworkCacheMetaData const &) + ??1QHostAddress@@QAE@XZ @ 791 NONAME ; QHostAddress::~QHostAddress(void) + ?modeChanged@QSslSocket@@IAEXW4SslMode@1@@Z @ 792 NONAME ; void QSslSocket::modeChanged(enum QSslSocket::SslMode) + ?attribute@QNetworkReply@@QBE?AVQVariant@@W4Attribute@QNetworkRequest@@@Z @ 793 NONAME ; class QVariant QNetworkReply::attribute(enum QNetworkRequest::Attribute) const + ?setExpirationDate@QNetworkCookie@@QAEXABVQDateTime@@@Z @ 794 NONAME ; void QNetworkCookie::setExpirationDate(class QDateTime const &) + ?hostName@QHostInfo@@QBE?AVQString@@XZ @ 795 NONAME ; class QString QHostInfo::hostName(void) const + ?addDefaultCaCertificates@QSslSocket@@SA_NABVQString@@W4EncodingFormat@QSsl@@W4PatternSyntax@QRegExp@@@Z @ 796 NONAME ; bool QSslSocket::addDefaultCaCertificates(class QString const &, enum QSsl::EncodingFormat, enum QRegExp::PatternSyntax) + ?parseLine@QHttpHeader@@MAE_NABVQString@@H@Z @ 797 NONAME ; bool QHttpHeader::parseLine(class QString const &, int) + ??9QSslError@@QBE_NABV0@@Z @ 798 NONAME ; bool QSslError::operator!=(class QSslError const &) const + ??0QSslError@@QAE@ABV0@@Z @ 799 NONAME ; QSslError::QSslError(class QSslError const &) + ??1QNetworkCacheMetaData@@QAE@XZ @ 800 NONAME ; QNetworkCacheMetaData::~QNetworkCacheMetaData(void) + ?socketDescriptor@QAbstractSocket@@QBEHXZ @ 801 NONAME ; int QAbstractSocket::socketDescriptor(void) const + ?rename@QFtp@@QAEHABVQString@@0@Z @ 802 NONAME ; int QFtp::rename(class QString const &, class QString const &) + ?readBufferSize@QNetworkReply@@QBE_JXZ @ 803 NONAME ; long long QNetworkReply::readBufferSize(void) const + ?staticMetaObject@QNetworkDiskCache@@2UQMetaObject@@B @ 804 NONAME ; struct QMetaObject const QNetworkDiskCache::staticMetaObject + ?request@QNetworkReply@@QBE?AVQNetworkRequest@@XZ @ 805 NONAME ; class QNetworkRequest QNetworkReply::request(void) const + ??0QSslError@@QAE@XZ @ 806 NONAME ; QSslError::QSslError(void) + ??9QHostAddress@@QBE_NW4SpecialAddress@0@@Z @ 807 NONAME ; bool QHostAddress::operator!=(enum QHostAddress::SpecialAddress) const + ?isWritable@QUrlInfo@@QBE_NXZ @ 808 NONAME ; bool QUrlInfo::isWritable(void) const + ?post@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@@Z @ 809 NONAME ; class QNetworkReply * QNetworkAccessManager::post(class QNetworkRequest const &, class QByteArray const &) + ?getStaticMetaObject@QTcpSocket@@SAABUQMetaObject@@XZ @ 810 NONAME ; struct QMetaObject const & QTcpSocket::getStaticMetaObject(void) + ?disconnected@QLocalSocket@@IAEXXZ @ 811 NONAME ; void QLocalSocket::disconnected(void) + ?isValid@QHttpHeader@@QBE_NXZ @ 812 NONAME ; bool QHttpHeader::isValid(void) const + ?d_func@QHttp@@ABEPBVQHttpPrivate@@XZ @ 813 NONAME ; class QHttpPrivate const * QHttp::d_func(void) const + ?requestStarted@QHttp@@IAEXH@Z @ 814 NONAME ; void QHttp::requestStarted(int) + ?setUrl@QNetworkCacheMetaData@@QAEXABVQUrl@@@Z @ 815 NONAME ; void QNetworkCacheMetaData::setUrl(class QUrl const &) + ??0QAuthenticator@@QAE@XZ @ 816 NONAME ; QAuthenticator::QAuthenticator(void) + ?setMaxPendingConnections@QLocalServer@@QAEXH@Z @ 817 NONAME ; void QLocalServer::setMaxPendingConnections(int) + ?peerPort@QNetworkProxyQuery@@QBEHXZ @ 818 NONAME ; int QNetworkProxyQuery::peerPort(void) const + ?addressEntries@QNetworkInterface@@QBE?AV?$QList@VQNetworkAddressEntry@@@@XZ @ 819 NONAME ; class QList QNetworkInterface::addressEntries(void) const + ?staticMetaObject@QAbstractSocket@@2UQMetaObject@@B @ 820 NONAME ; struct QMetaObject const QAbstractSocket::staticMetaObject + ?readData@QAbstractSocket@@MAE_JPAD_J@Z @ 821 NONAME ; long long QAbstractSocket::readData(char *, long long) + ?hostName@QNetworkProxy@@QBE?AVQString@@XZ @ 822 NONAME ; class QString QNetworkProxy::hostName(void) const + ?peerVerifyDepth@QSslSocket@@QBEHXZ @ 823 NONAME ; int QSslSocket::peerVerifyDepth(void) const + ?path@QHttpRequestHeader@@QBE?AVQString@@XZ @ 824 NONAME ; class QString QHttpRequestHeader::path(void) const + ?close@QSslSocket@@UAEXXZ @ 825 NONAME ; void QSslSocket::close(void) + ?setLocalCertificate@QSslSocket@@QAEXABVQString@@W4EncodingFormat@QSsl@@@Z @ 826 NONAME ; void QSslSocket::setLocalCertificate(class QString const &, enum QSsl::EncodingFormat) + ?toDer@QSslKey@@QBE?AVQByteArray@@ABV2@@Z @ 827 NONAME ; class QByteArray QSslKey::toDer(class QByteArray const &) const + ?isListening@QTcpServer@@QBE_NXZ @ 828 NONAME ; bool QTcpServer::isListening(void) const + ?password@QNetworkProxy@@QBE?AVQString@@XZ @ 829 NONAME ; class QString QNetworkProxy::password(void) const + ??6@YA?AVQDebug@@V0@ABVQSslCertificate@@@Z @ 830 NONAME ; class QDebug operator<<(class QDebug, class QSslCertificate const &) + ??0QLocalSocket@@QAE@PAVQObject@@@Z @ 831 NONAME ; QLocalSocket::QLocalSocket(class QObject *) + ?isValid@QNetworkInterface@@QBE_NXZ @ 832 NONAME ; bool QNetworkInterface::isValid(void) const + ?saveToDisk@QNetworkCacheMetaData@@QBE_NXZ @ 833 NONAME ; bool QNetworkCacheMetaData::saveToDisk(void) const + ?writeData@QLocalSocket@@MAE_JPBD_J@Z @ 834 NONAME ; long long QLocalSocket::writeData(char const *, long long) + ?setProxy@QHttp@@QAEHABVQNetworkProxy@@@Z @ 835 NONAME ; int QHttp::setProxy(class QNetworkProxy const &) + ?operation@QNetworkReply@@QBE?AW4Operation@QNetworkAccessManager@@XZ @ 836 NONAME ; enum QNetworkAccessManager::Operation QNetworkReply::operation(void) const + ?d_func@QAbstractNetworkCache@@AAEPAVQAbstractNetworkCachePrivate@@XZ @ 837 NONAME ; class QAbstractNetworkCachePrivate * QAbstractNetworkCache::d_func(void) + ?stateChanged@QFtp@@IAEXH@Z @ 838 NONAME ; void QFtp::stateChanged(int) + ?equal@QUrlInfo@@SA_NABV1@0H@Z @ 839 NONAME ; bool QUrlInfo::equal(class QUrlInfo const &, class QUrlInfo const &, int) + ?error@QLocalSocket@@IAEXW4LocalSocketError@1@@Z @ 840 NONAME ; void QLocalSocket::error(enum QLocalSocket::LocalSocketError) + ?systemProxyForQuery@QNetworkProxyFactory@@SA?AV?$QList@VQNetworkProxy@@@@ABVQNetworkProxyQuery@@@Z @ 841 NONAME ; class QList QNetworkProxyFactory::systemProxyForQuery(class QNetworkProxyQuery const &) + ?waitForConnected@QLocalSocket@@QAE_NH@Z @ 842 NONAME ; bool QLocalSocket::waitForConnected(int) + ??8QNetworkCacheMetaData@@QBE_NABV0@@Z @ 843 NONAME ; bool QNetworkCacheMetaData::operator==(class QNetworkCacheMetaData const &) const + ?trUtf8@QNetworkCookieJar@@SA?AVQString@@PBD0H@Z @ 844 NONAME ; class QString QNetworkCookieJar::trUtf8(char const *, char const *, int) + ?size@QUrlInfo@@QBE_JXZ @ 845 NONAME ; long long QUrlInfo::size(void) const + ?qt_metacast@QFtp@@UAEPAXPBD@Z @ 846 NONAME ; void * QFtp::qt_metacast(char const *) + ?localAddress@QAbstractSocket@@QBE?AVQHostAddress@@XZ @ 847 NONAME ; class QHostAddress QAbstractSocket::localAddress(void) const + ??_EQAbstractSocket@@UAE@I@Z @ 848 NONAME ; QAbstractSocket::~QAbstractSocket(unsigned int) + ?proxyFactory@QNetworkAccessManager@@QBEPAVQNetworkProxyFactory@@XZ @ 849 NONAME ; class QNetworkProxyFactory * QNetworkAccessManager::proxyFactory(void) const + ?connectToHostEncrypted@QSslSocket@@QAEXABVQString@@G0V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 850 NONAME ; void QSslSocket::connectToHostEncrypted(class QString const &, unsigned short, class QString const &, class QFlags) + ?tr@QNetworkAccessManager@@SA?AVQString@@PBD0H@Z @ 851 NONAME ; class QString QNetworkAccessManager::tr(char const *, char const *, int) + ?setReadBufferSize@QAbstractSocket@@QAEX_J@Z @ 852 NONAME ; void QAbstractSocket::setReadBufferSize(long long) + ?setPrivateKey@QSslSocket@@QAEXABVQString@@W4KeyAlgorithm@QSsl@@W4EncodingFormat@4@ABVQByteArray@@@Z @ 853 NONAME ; void QSslSocket::setPrivateKey(class QString const &, enum QSsl::KeyAlgorithm, enum QSsl::EncodingFormat, class QByteArray const &) + ??0QHttpHeader@@QAE@ABVQString@@@Z @ 854 NONAME ; QHttpHeader::QHttpHeader(class QString const &) + ??0QUrlInfo@@QAE@ABV0@@Z @ 855 NONAME ; QUrlInfo::QUrlInfo(class QUrlInfo const &) + ?fromName@QHostInfo@@SA?AV1@ABVQString@@@Z @ 856 NONAME ; class QHostInfo QHostInfo::fromName(class QString const &) + ?localCertificate@QSslConfiguration@@QBE?AVQSslCertificate@@XZ @ 857 NONAME ; class QSslCertificate QSslConfiguration::localCertificate(void) const + ?setSocketOption@QSslSocket@@QAEXW4SocketOption@QAbstractSocket@@ABVQVariant@@@Z @ 858 NONAME ; void QSslSocket::setSocketOption(enum QAbstractSocket::SocketOption, class QVariant const &) + ??0QHttpResponseHeader@@QAE@ABV0@@Z @ 859 NONAME ; QHttpResponseHeader::QHttpResponseHeader(class QHttpResponseHeader const &) + ?currentSourceDevice@QHttp@@QBEPAVQIODevice@@XZ @ 860 NONAME ; class QIODevice * QHttp::currentSourceDevice(void) const + ?peerCertificateChain@QSslConfiguration@@QBE?AV?$QList@VQSslCertificate@@@@XZ @ 861 NONAME ; class QList QSslConfiguration::peerCertificateChain(void) const + ??_EQHostInfo@@QAE@I@Z @ 862 NONAME ; QHostInfo::~QHostInfo(unsigned int) + ?errorString@QHttp@@QBE?AVQString@@XZ @ 863 NONAME ; class QString QHttp::errorString(void) const + ?proxyAuthenticationRequired@QAbstractSocket@@IAEXABVQNetworkProxy@@PAVQAuthenticator@@@Z @ 864 NONAME ; void QAbstractSocket::proxyAuthenticationRequired(class QNetworkProxy const &, class QAuthenticator *) + ?isSequential@QNetworkReply@@UBE_NXZ @ 865 NONAME ; bool QNetworkReply::isSequential(void) const + ??9QNetworkAddressEntry@@QBE_NABV0@@Z @ 866 NONAME ; bool QNetworkAddressEntry::operator!=(class QNetworkAddressEntry const &) const + ??0QHttp@@QAE@PAVQObject@@@Z @ 867 NONAME ; QHttp::QHttp(class QObject *) + ??0QAbstractSocket@@IAE@W4SocketType@0@AAVQAbstractSocketPrivate@@PAVQObject@@@Z @ 868 NONAME ; QAbstractSocket::QAbstractSocket(enum QAbstractSocket::SocketType, class QAbstractSocketPrivate &, class QObject *) + ?readDatagram@QUdpSocket@@QAE_JPAD_JPAVQHostAddress@@PAG@Z @ 869 NONAME ; long long QUdpSocket::readDatagram(char *, long long, class QHostAddress *, unsigned short *) + ??0QNetworkProxyQuery@@QAE@ABVQUrl@@W4QueryType@0@@Z @ 870 NONAME ; QNetworkProxyQuery::QNetworkProxyQuery(class QUrl const &, enum QNetworkProxyQuery::QueryType) + ?manager@QNetworkReply@@QBEPAVQNetworkAccessManager@@XZ @ 871 NONAME ; class QNetworkAccessManager * QNetworkReply::manager(void) const + ?tr@QTcpSocket@@SA?AVQString@@PBD0@Z @ 872 NONAME ; class QString QTcpSocket::tr(char const *, char const *) + ?peerCertificate@QSslConfiguration@@QBE?AVQSslCertificate@@XZ @ 873 NONAME ; class QSslCertificate QSslConfiguration::peerCertificate(void) const + ?setPeerVerifyDepth@QSslConfiguration@@QAEXH@Z @ 874 NONAME ; void QSslConfiguration::setPeerVerifyDepth(int) + ??6@YA?AVQDebug@@V0@W4LocalSocketState@QLocalSocket@@@Z @ 875 NONAME ; class QDebug operator<<(class QDebug, enum QLocalSocket::LocalSocketState) + ?setLookupId@QHostInfo@@QAEXH@Z @ 876 NONAME ; void QHostInfo::setLookupId(int) + ?lastModified@QNetworkCacheMetaData@@QBE?AVQDateTime@@XZ @ 877 NONAME ; class QDateTime QNetworkCacheMetaData::lastModified(void) const + ?setSecure@QNetworkCookie@@QAEX_N@Z @ 878 NONAME ; void QNetworkCookie::setSecure(bool) + ??0QSslError@@QAE@W4SslError@0@@Z @ 879 NONAME ; QSslError::QSslError(enum QSslError::SslError) + ??0QSslCipher@@QAE@XZ @ 880 NONAME ; QSslCipher::QSslCipher(void) + ?expirationDate@QNetworkCacheMetaData@@QBE?AVQDateTime@@XZ @ 881 NONAME ; class QDateTime QNetworkCacheMetaData::expirationDate(void) const + ?rawCommand@QFtp@@QAEHABVQString@@@Z @ 882 NONAME ; int QFtp::rawCommand(class QString const &) + ?flush@QSslSocket@@QAE_NXZ @ 883 NONAME ; bool QSslSocket::flush(void) + ??0QUrlInfo@@QAE@XZ @ 884 NONAME ; QUrlInfo::QUrlInfo(void) + ?getStaticMetaObject@QNetworkReply@@SAABUQMetaObject@@XZ @ 885 NONAME ; struct QMetaObject const & QNetworkReply::getStaticMetaObject(void) + ?listInfo@QFtp@@IAEXABVQUrlInfo@@@Z @ 886 NONAME ; void QFtp::listInfo(class QUrlInfo const &) + ?bytesAvailable@QSslSocket@@UBE_JXZ @ 887 NONAME ; long long QSslSocket::bytesAvailable(void) const + ?bytesToWrite@QSslSocket@@UBE_JXZ @ 888 NONAME ; long long QSslSocket::bytesToWrite(void) const + ?waitForReadyRead@QAbstractSocket@@UAE_NH@Z @ 889 NONAME ; bool QAbstractSocket::waitForReadyRead(int) + ?password@QAuthenticator@@QBE?AVQString@@XZ @ 890 NONAME ; class QString QAuthenticator::password(void) const + ??0QSslError@@QAE@W4SslError@0@ABVQSslCertificate@@@Z @ 891 NONAME ; QSslError::QSslError(enum QSslError::SslError, class QSslCertificate const &) + ?d_func@QNetworkReply@@ABEPBVQNetworkReplyPrivate@@XZ @ 892 NONAME ; class QNetworkReplyPrivate const * QNetworkReply::d_func(void) const + ?disconnectFromHostImplementation@QSslSocket@@IAEXXZ @ 893 NONAME ; void QSslSocket::disconnectFromHostImplementation(void) + ??4QNetworkCookie@@QAEAAV0@ABV0@@Z @ 894 NONAME ; class QNetworkCookie & QNetworkCookie::operator=(class QNetworkCookie const &) + ??1QNetworkAccessManager@@UAE@XZ @ 895 NONAME ; QNetworkAccessManager::~QNetworkAccessManager(void) + ?tr@QLocalSocket@@SA?AVQString@@PBD0@Z @ 896 NONAME ; class QString QLocalSocket::tr(char const *, char const *) + ?user@QAuthenticator@@QBE?AVQString@@XZ @ 897 NONAME ; class QString QAuthenticator::user(void) const + ?qt_metacall@QAbstractNetworkCache@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 898 NONAME ; int QAbstractNetworkCache::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EQFtp@@UAE@I@Z @ 899 NONAME ; QFtp::~QFtp(unsigned int) + ?setProtocol@QSslConfiguration@@QAEXW4SslProtocol@QSsl@@@Z @ 900 NONAME ; void QSslConfiguration::setProtocol(enum QSsl::SslProtocol) + ?setLastModified@QNetworkCacheMetaData@@QAEXABVQDateTime@@@Z @ 901 NONAME ; void QNetworkCacheMetaData::setLastModified(class QDateTime const &) + ??4QNetworkRequest@@QAEAAV0@ABV0@@Z @ 902 NONAME ; class QNetworkRequest & QNetworkRequest::operator=(class QNetworkRequest const &) + ??1QHttp@@UAE@XZ @ 903 NONAME ; QHttp::~QHttp(void) + ?qt_metacast@QTcpServer@@UAEPAXPBD@Z @ 904 NONAME ; void * QTcpServer::qt_metacast(char const *) + ?close@QAbstractSocket@@UAEXXZ @ 905 NONAME ; void QAbstractSocket::close(void) + ?setWritable@QUrlInfo@@UAEX_N@Z @ 906 NONAME ; void QUrlInfo::setWritable(bool) + ??1QHttpResponseHeader@@UAE@XZ @ 907 NONAME ; QHttpResponseHeader::~QHttpResponseHeader(void) + ?isExecutable@QUrlInfo@@QBE_NXZ @ 908 NONAME ; bool QUrlInfo::isExecutable(void) const + ?ignoreSslErrors@QHttp@@QAEXXZ @ 909 NONAME ; void QHttp::ignoreSslErrors(void) + ?setPeerPort@QAbstractSocket@@IAEXG@Z @ 910 NONAME ; void QAbstractSocket::setPeerPort(unsigned short) + ?setApplicationProxyFactory@QNetworkProxyFactory@@SAXPAV1@@Z @ 911 NONAME ; void QNetworkProxyFactory::setApplicationProxyFactory(class QNetworkProxyFactory *) + ?error@QNetworkReply@@IAEXW4NetworkError@1@@Z @ 912 NONAME ; void QNetworkReply::error(enum QNetworkReply::NetworkError) + ??0QSslCipher@@QAE@ABVQString@@W4SslProtocol@QSsl@@@Z @ 913 NONAME ; QSslCipher::QSslCipher(class QString const &, enum QSsl::SslProtocol) + ?getStaticMetaObject@QFtp@@SAABUQMetaObject@@XZ @ 914 NONAME ; struct QMetaObject const & QFtp::getStaticMetaObject(void) + ?isNull@QHostAddress@@QBE_NXZ @ 915 NONAME ; bool QHostAddress::isNull(void) const + ??9QSslConfiguration@@QBE_NABV0@@Z @ 916 NONAME ; bool QSslConfiguration::operator!=(class QSslConfiguration const &) const + ??4QNetworkAddressEntry@@QAEAAV0@ABV0@@Z @ 917 NONAME ; class QNetworkAddressEntry & QNetworkAddressEntry::operator=(class QNetworkAddressEntry const &) + ??_EQUrlInfo@@UAE@I@Z @ 918 NONAME ; QUrlInfo::~QUrlInfo(unsigned int) + ??4QUrlInfo@@QAEAAV0@ABV0@@Z @ 919 NONAME ; class QUrlInfo & QUrlInfo::operator=(class QUrlInfo const &) + ??1QNetworkInterface@@QAE@XZ @ 920 NONAME ; QNetworkInterface::~QNetworkInterface(void) + ?d_func@QLocalServer@@ABEPBVQLocalServerPrivate@@XZ @ 921 NONAME ; class QLocalServerPrivate const * QLocalServer::d_func(void) const + ??1QSslKey@@QAE@XZ @ 922 NONAME ; QSslKey::~QSslKey(void) + ?tr@QHttp@@SA?AVQString@@PBD0H@Z @ 923 NONAME ; class QString QHttp::tr(char const *, char const *, int) + ?nextPendingConnection@QTcpServer@@UAEPAVQTcpSocket@@XZ @ 924 NONAME ; class QTcpSocket * QTcpServer::nextPendingConnection(void) + ?addDefaultCaCertificates@QSslSocket@@SAXABV?$QList@VQSslCertificate@@@@@Z @ 925 NONAME ; void QSslSocket::addDefaultCaCertificates(class QList const &) + ?hasRawHeader@QNetworkReply@@QBE_NABVQByteArray@@@Z @ 926 NONAME ; bool QNetworkReply::hasRawHeader(class QByteArray const &) const + ?qt_metacast@QNetworkDiskCache@@UAEPAXPBD@Z @ 927 NONAME ; void * QNetworkDiskCache::qt_metacast(char const *) + ?qt_metacast@QLocalSocket@@UAEPAXPBD@Z @ 928 NONAME ; void * QLocalSocket::qt_metacast(char const *) + ?setAddress@QHostAddress@@QAEXI@Z @ 929 NONAME ; void QHostAddress::setAddress(unsigned int) + ?index@QNetworkInterface@@QBEHXZ @ 930 NONAME ; int QNetworkInterface::index(void) const + ?finished@QNetworkAccessManager@@IAEXPAVQNetworkReply@@@Z @ 931 NONAME ; void QNetworkAccessManager::finished(class QNetworkReply *) + ?peerVerifyMode@QSslConfiguration@@QBE?AW4PeerVerifyMode@QSslSocket@@XZ @ 932 NONAME ; enum QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode(void) const + ??1QAbstractSocket@@UAE@XZ @ 933 NONAME ; QAbstractSocket::~QAbstractSocket(void) + ?isValid@QNetworkCacheMetaData@@QBE_NXZ @ 934 NONAME ; bool QNetworkCacheMetaData::isValid(void) const + ?keyExchangeMethod@QSslCipher@@QBE?AVQString@@XZ @ 935 NONAME ; class QString QSslCipher::keyExchangeMethod(void) const + ?encrypted@QSslSocket@@IAEXXZ @ 936 NONAME ; void QSslSocket::encrypted(void) + ?bytesAvailable@QHttp@@QBE_JXZ @ 937 NONAME ; long long QHttp::bytesAvailable(void) const + ?maxPendingConnections@QTcpServer@@QBEHXZ @ 938 NONAME ; int QTcpServer::maxPendingConnections(void) const + ?setLocalAddress@QAbstractSocket@@IAEXABVQHostAddress@@@Z @ 939 NONAME ; void QAbstractSocket::setLocalAddress(class QHostAddress const &) + ??1QAbstractNetworkCache@@UAE@XZ @ 940 NONAME ; QAbstractNetworkCache::~QAbstractNetworkCache(void) + ?url@QNetworkProxyQuery@@QBE?AVQUrl@@XZ @ 941 NONAME ; class QUrl QNetworkProxyQuery::url(void) const + ?tr@QNetworkCookieJar@@SA?AVQString@@PBD0H@Z @ 942 NONAME ; class QString QNetworkCookieJar::tr(char const *, char const *, int) + ??_EQNetworkRequest@@QAE@I@Z @ 943 NONAME ; QNetworkRequest::~QNetworkRequest(unsigned int) + ??0QNetworkAddressEntry@@QAE@XZ @ 944 NONAME ; QNetworkAddressEntry::QNetworkAddressEntry(void) + ?error@QAbstractSocket@@IAEXW4SocketError@1@@Z @ 945 NONAME ; void QAbstractSocket::error(enum QAbstractSocket::SocketError) + ?post@QHttp@@QAEHABVQString@@PAVQIODevice@@1@Z @ 946 NONAME ; int QHttp::post(class QString const &, class QIODevice *, class QIODevice *) + ?isDir@QUrlInfo@@QBE_NXZ @ 947 NONAME ; bool QUrlInfo::isDir(void) const + ?trUtf8@QNetworkReply@@SA?AVQString@@PBD0H@Z @ 948 NONAME ; class QString QNetworkReply::trUtf8(char const *, char const *, int) + ?state@QHttp@@QBE?AW4State@1@XZ @ 949 NONAME ; enum QHttp::State QHttp::state(void) const + ?list@QFtp@@QAEHABVQString@@@Z @ 950 NONAME ; int QFtp::list(class QString const &) + ??0QNetworkCookie@@QAE@ABV0@@Z @ 951 NONAME ; QNetworkCookie::QNetworkCookie(class QNetworkCookie const &) + ?group@QUrlInfo@@QBE?AVQString@@XZ @ 952 NONAME ; class QString QUrlInfo::group(void) const + ?readLineData@QAbstractSocket@@MAE_JPAD_J@Z @ 953 NONAME ; long long QAbstractSocket::readLineData(char *, long long) + ?dataTransferProgress@QFtp@@IAEX_J0@Z @ 954 NONAME ; void QFtp::dataTransferProgress(long long, long long) + ??_EQHttpRequestHeader@@UAE@I@Z @ 955 NONAME ; QHttpRequestHeader::~QHttpRequestHeader(unsigned int) + ?broadcast@QNetworkAddressEntry@@QBE?AVQHostAddress@@XZ @ 956 NONAME ; class QHostAddress QNetworkAddressEntry::broadcast(void) const + ??0QHttpRequestHeader@@QAE@ABV0@@Z @ 957 NONAME ; QHttpRequestHeader::QHttpRequestHeader(class QHttpRequestHeader const &) + ?fromDevice@QSslCertificate@@SA?AV?$QList@VQSslCertificate@@@@PAVQIODevice@@W4EncodingFormat@QSsl@@@Z @ 958 NONAME ; class QList QSslCertificate::fromDevice(class QIODevice *, enum QSsl::EncodingFormat) + ?trUtf8@QLocalSocket@@SA?AVQString@@PBD0@Z @ 959 NONAME ; class QString QLocalSocket::trUtf8(char const *, char const *) + ?ignoreSslErrors@QSslSocket@@QAEXXZ @ 960 NONAME ; void QSslSocket::ignoreSslErrors(void) + ?value@QNetworkCookie@@QBE?AVQByteArray@@XZ @ 961 NONAME ; class QByteArray QNetworkCookie::value(void) const + ?qt_metacast@QAbstractSocket@@UAEPAXPBD@Z @ 962 NONAME ; void * QAbstractSocket::qt_metacast(char const *) + ?sessionCipher@QSslConfiguration@@QBE?AVQSslCipher@@XZ @ 963 NONAME ; class QSslCipher QSslConfiguration::sessionCipher(void) const + ?name@QNetworkCookie@@QBE?AVQByteArray@@XZ @ 964 NONAME ; class QByteArray QNetworkCookie::name(void) const + ??4QSslConfiguration@@QAEAAV0@ABV0@@Z @ 965 NONAME ; class QSslConfiguration & QSslConfiguration::operator=(class QSslConfiguration const &) + ??4QIPv6Address@@QAEAAV0@ABV0@@Z @ 966 NONAME ; class QIPv6Address & QIPv6Address::operator=(class QIPv6Address const &) + ?setCookieJar@QNetworkAccessManager@@QAEXPAVQNetworkCookieJar@@@Z @ 967 NONAME ; void QNetworkAccessManager::setCookieJar(class QNetworkCookieJar *) + ??_EQSslSocket@@UAE@I@Z @ 968 NONAME ; QSslSocket::~QSslSocket(unsigned int) + ?qt_metacall@QNetworkReply@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 969 NONAME ; int QNetworkReply::qt_metacall(enum QMetaObject::Call, int, void * *) + ?post@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@PAVQIODevice@@@Z @ 970 NONAME ; class QNetworkReply * QNetworkAccessManager::post(class QNetworkRequest const &, class QIODevice *) + ?isNull@QSslCipher@@QBE_NXZ @ 971 NONAME ; bool QSslCipher::isNull(void) const + ?abort@QAbstractSocket@@QAEXXZ @ 972 NONAME ; void QAbstractSocket::abort(void) + ?setProxy@QTcpServer@@QAEXABVQNetworkProxy@@@Z @ 973 NONAME ; void QTcpServer::setProxy(class QNetworkProxy const &) + ??0QNetworkReply@@IAE@PAVQObject@@@Z @ 974 NONAME ; QNetworkReply::QNetworkReply(class QObject *) + ?trUtf8@QNetworkReply@@SA?AVQString@@PBD0@Z @ 975 NONAME ; class QString QNetworkReply::trUtf8(char const *, char const *) + diff --git a/src/s60installs/bwins/QtOpenVGu.def b/src/s60installs/bwins/QtOpenVGu.def new file mode 100644 index 0000000..01f1fdc --- /dev/null +++ b/src/s60installs/bwins/QtOpenVGu.def @@ -0,0 +1,199 @@ +EXPORTS + ?size@QVGPixmapData@@QBE?AVQSize@@XZ @ 1 NONAME ; class QSize QVGPixmapData::size(void) const + ??0QVGEGLWindowSurfaceQImage@@QAE@PAVQWindowSurface@@@Z @ 2 NONAME ; QVGEGLWindowSurfaceQImage::QVGEGLWindowSurfaceQImage(class QWindowSurface *) + ?qt_metacall@QVGPixmapConvolutionFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3 NONAME ; int QVGPixmapConvolutionFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EQVGPixmapColorizeFilter@@UAE@I@Z @ 4 NONAME ; QVGPixmapColorizeFilter::~QVGPixmapColorizeFilter(unsigned int) + ?staticMetaObject@QVGPixmapDropShadowFilter@@2UQMetaObject@@B @ 5 NONAME ; struct QMetaObject const QVGPixmapDropShadowFilter::staticMetaObject + ??1QVGPixmapDropShadowFilter@@UAE@XZ @ 6 NONAME ; QVGPixmapDropShadowFilter::~QVGPixmapDropShadowFilter(void) + ?trUtf8@QVGPixmapDropShadowFilter@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString QVGPixmapDropShadowFilter::trUtf8(char const *, char const *) + ?trUtf8@QVGPixmapConvolutionFilter@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString QVGPixmapConvolutionFilter::trUtf8(char const *, char const *) + ?drawEllipse@QVGPaintEngine@@UAEXABVQRect@@@Z @ 9 NONAME ; void QVGPaintEngine::drawEllipse(class QRect const &) + ?getStaticMetaObject@QVGPixmapColorizeFilter@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & QVGPixmapColorizeFilter::getStaticMetaObject(void) + ?staticMetaObject@QVGPixmapConvolutionFilter@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const QVGPixmapConvolutionFilter::staticMetaObject + ?trUtf8@QVGPixmapBlurFilter@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString QVGPixmapBlurFilter::trUtf8(char const *, char const *) + ?setState@QVGPaintEngine@@UAEXPAVQPainterState@@@Z @ 13 NONAME ; void QVGPaintEngine::setState(class QPainterState *) + ?penChanged@QVGPaintEngine@@UAEXXZ @ 14 NONAME ; void QVGPaintEngine::penChanged(void) + ??1QVGPixmapColorizeFilter@@UAE@XZ @ 15 NONAME ; QVGPixmapColorizeFilter::~QVGPixmapColorizeFilter(void) + ?defaultClipRegion@QVGPaintEngine@@AAE?AVQRegion@@XZ @ 16 NONAME ; class QRegion QVGPaintEngine::defaultClipRegion(void) + ??_EQVGPixmapDropShadowFilter@@UAE@I@Z @ 17 NONAME ; QVGPixmapDropShadowFilter::~QVGPixmapDropShadowFilter(unsigned int) + ??0QVGEGLWindowSurfaceVGImage@@QAE@PAVQWindowSurface@@@Z @ 18 NONAME ; QVGEGLWindowSurfaceVGImage::QVGEGLWindowSurfaceVGImage(class QWindowSurface *) + ?paintEngine@QVGPixmapData@@UBEPAVQPaintEngine@@XZ @ 19 NONAME ; class QPaintEngine * QVGPixmapData::paintEngine(void) const + ??1QVGEGLWindowSurfaceQImage@@UAE@XZ @ 20 NONAME ; QVGEGLWindowSurfaceQImage::~QVGEGLWindowSurfaceQImage(void) + ?drawRoundedRect@QVGPaintEngine@@UAEXABVQRectF@@MMW4SizeMode@Qt@@@Z @ 21 NONAME ; void QVGPaintEngine::drawRoundedRect(class QRectF const &, float, float, enum Qt::SizeMode) + ?qt_vg_image_to_vg_format@@YA?AW4VGImageFormat@@W4Format@QImage@@@Z @ 22 NONAME ; enum VGImageFormat qt_vg_image_to_vg_format(enum QImage::Format) + ?surfaceImage@QVGEGLWindowSurfacePrivate@@UBEKXZ @ 23 NONAME ; unsigned long QVGEGLWindowSurfacePrivate::surfaceImage(void) const + ?staticMetaObject@QVGPixmapColorizeFilter@@2UQMetaObject@@B @ 24 NONAME ; struct QMetaObject const QVGPixmapColorizeFilter::staticMetaObject + ?state@QVGPaintEngine@@QBEPBVQVGPainterState@@XZ @ 25 NONAME ; class QVGPainterState const * QVGPaintEngine::state(void) const + ??_EQVGEGLWindowSurfaceDirect@@UAE@I@Z @ 26 NONAME ; QVGEGLWindowSurfaceDirect::~QVGEGLWindowSurfaceDirect(unsigned int) + ?updateScissor@QVGPaintEngine@@AAEXXZ @ 27 NONAME ; void QVGPaintEngine::updateScissor(void) + ?trUtf8@QVGPixmapColorizeFilter@@SA?AVQString@@PBD0@Z @ 28 NONAME ; class QString QVGPixmapColorizeFilter::trUtf8(char const *, char const *) + ??_EQVGCompositionHelper@@UAE@I@Z @ 29 NONAME ; QVGCompositionHelper::~QVGCompositionHelper(unsigned int) + ?metaObject@QVGPixmapColorizeFilter@@UBEPBUQMetaObject@@XZ @ 30 NONAME ; struct QMetaObject const * QVGPixmapColorizeFilter::metaObject(void) const + ?fill@QVGPixmapData@@UAEXABVQColor@@@Z @ 31 NONAME ; void QVGPixmapData::fill(class QColor const &) + ?tr@QVGPixmapDropShadowFilter@@SA?AVQString@@PBD0@Z @ 32 NONAME ; class QString QVGPixmapDropShadowFilter::tr(char const *, char const *) + ?toImage@QVGPixmapData@@UBE?AVQImage@@XZ @ 33 NONAME ; class QImage QVGPixmapData::toImage(void) const + ??0QVGPixmapBlurFilter@@QAE@PAVQObject@@@Z @ 34 NONAME ; QVGPixmapBlurFilter::QVGPixmapBlurFilter(class QObject *) + ?renderHintsChanged@QVGPaintEngine@@UAEXXZ @ 35 NONAME ; void QVGPaintEngine::renderHintsChanged(void) + ?clearRect@QVGPaintEngine@@AAE_NABVQRectF@@ABVQColor@@@Z @ 36 NONAME ; bool QVGPaintEngine::clearRect(class QRectF const &, class QColor const &) + ??0QVGPixmapDropShadowFilter@@QAE@XZ @ 37 NONAME ; QVGPixmapDropShadowFilter::QVGPixmapDropShadowFilter(void) + ?staticMetaObject@QVGPixmapBlurFilter@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const QVGPixmapBlurFilter::staticMetaObject + ??1QVGEGLWindowSurfaceVGImage@@UAE@XZ @ 39 NONAME ; QVGEGLWindowSurfaceVGImage::~QVGEGLWindowSurfaceVGImage(void) + ?state@QVGPaintEngine@@QAEPAVQVGPainterState@@XZ @ 40 NONAME ; class QVGPainterState * QVGPaintEngine::state(void) + ?qt_metacall@QVGPixmapBlurFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 41 NONAME ; int QVGPixmapBlurFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?draw@QVGPixmapBlurFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 42 NONAME ; void QVGPixmapBlurFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?tr@QVGPixmapBlurFilter@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString QVGPixmapBlurFilter::tr(char const *, char const *) + ?qt_metacast@QVGPixmapDropShadowFilter@@UAEPAXPBD@Z @ 44 NONAME ; void * QVGPixmapDropShadowFilter::qt_metacast(char const *) + ??0QVGPaintEngine@@IAE@AAVQVGPaintEnginePrivate@@@Z @ 45 NONAME ; QVGPaintEngine::QVGPaintEngine(class QVGPaintEnginePrivate &) + ?tr@QVGPixmapConvolutionFilter@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString QVGPixmapConvolutionFilter::tr(char const *, char const *, int) + ?ensureContext@QVGEGLWindowSurfaceVGImage@@UAEPAVQEglContext@@PAVQWidget@@@Z @ 47 NONAME ; class QEglContext * QVGEGLWindowSurfaceVGImage::ensureContext(class QWidget *) + ??0QVGCompositionHelper@@QAE@XZ @ 48 NONAME ; QVGCompositionHelper::QVGCompositionHelper(void) + ?beginNativePainting@QVGPaintEngine@@UAEXXZ @ 49 NONAME ; void QVGPaintEngine::beginNativePainting(void) + ?clipEnabledChanged@QVGPaintEngine@@UAEXXZ @ 50 NONAME ; void QVGPaintEngine::clipEnabledChanged(void) + ?create@QVGEGLWindowSurfacePrivate@@SAPAV1@W4SurfaceType@1@PAVQWindowSurface@@@Z @ 51 NONAME ; class QVGEGLWindowSurfacePrivate * QVGEGLWindowSurfacePrivate::create(enum QVGEGLWindowSurfacePrivate::SurfaceType, class QWindowSurface *) + ?metric@QVGPixmapData@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 52 NONAME ; int QVGPixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const + ?drawRects@QVGPaintEngine@@UAEXPBVQRect@@H@Z @ 53 NONAME ; void QVGPaintEngine::drawRects(class QRect const *, int) + ?draw@QVGPaintEngine@@UAEXABVQVectorPath@@@Z @ 54 NONAME ; void QVGPaintEngine::draw(class QVectorPath const &) + ??0QVGPixmapData@@QAE@W4PixelType@QPixmapData@@@Z @ 55 NONAME ; QVGPixmapData::QVGPixmapData(enum QPixmapData::PixelType) + ??0QVGWindowSurface@@QAE@PAVQWidget@@PAVQVGEGLWindowSurfacePrivate@@@Z @ 56 NONAME ; QVGWindowSurface::QVGWindowSurface(class QWidget *, class QVGEGLWindowSurfacePrivate *) + ?fillBackground@QVGCompositionHelper@@QAEXABVQRegion@@ABVQBrush@@@Z @ 57 NONAME ; void QVGCompositionHelper::fillBackground(class QRegion const &, class QBrush const &) + ?drawLines@QVGPaintEngine@@UAEXPBVQLine@@H@Z @ 58 NONAME ; void QVGPaintEngine::drawLines(class QLine const *, int) + ??_EQVGEGLWindowSurfaceQImage@@UAE@I@Z @ 59 NONAME ; QVGEGLWindowSurfaceQImage::~QVGEGLWindowSurfaceQImage(unsigned int) + ?ensureContext@QVGEGLWindowSurfaceDirect@@UAEPAVQEglContext@@PAVQWidget@@@Z @ 60 NONAME ; class QEglContext * QVGEGLWindowSurfaceDirect::ensureContext(class QWidget *) + ??0QVGPaintEngine@@QAE@XZ @ 61 NONAME ; QVGPaintEngine::QVGPaintEngine(void) + ?cleanup@QVGPixmapData@@IAEXXZ @ 62 NONAME ; void QVGPixmapData::cleanup(void) + ?drawPixmap@QVGPaintEngine@@UAEXABVQPointF@@ABVQPixmap@@@Z @ 63 NONAME ; void QVGPaintEngine::drawPixmap(class QPointF const &, class QPixmap const &) + ?drawImage@QVGPaintEngine@@UAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 64 NONAME ; void QVGPaintEngine::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags) + ??_EQVGPixmapConvolutionFilter@@UAE@I@Z @ 65 NONAME ; QVGPixmapConvolutionFilter::~QVGPixmapConvolutionFilter(unsigned int) + ?toVGImage@QVGPixmapData@@QAEKXZ @ 66 NONAME ; unsigned long QVGPixmapData::toVGImage(void) + ?drawTiledPixmap@QVGPaintEngine@@UAEXABVQRectF@@ABVQPixmap@@ABVQPointF@@@Z @ 67 NONAME ; void QVGPaintEngine::drawTiledPixmap(class QRectF const &, class QPixmap const &, class QPointF const &) + ?drawEllipse@QVGPaintEngine@@UAEXABVQRectF@@@Z @ 68 NONAME ; void QVGPaintEngine::drawEllipse(class QRectF const &) + ?endCompositing@QVGCompositionHelper@@QAEXXZ @ 69 NONAME ; void QVGCompositionHelper::endCompositing(void) + ?getStaticMetaObject@QVGPixmapBlurFilter@@SAABUQMetaObject@@XZ @ 70 NONAME ; struct QMetaObject const & QVGPixmapBlurFilter::getStaticMetaObject(void) + ??0QVGPixmapColorizeFilter@@QAE@XZ @ 71 NONAME ; QVGPixmapColorizeFilter::QVGPixmapColorizeFilter(void) + ??_EQVGEGLWindowSurfaceVGImage@@UAE@I@Z @ 72 NONAME ; QVGEGLWindowSurfaceVGImage::~QVGEGLWindowSurfaceVGImage(unsigned int) + ?begin@QVGPaintEngine@@UAE_NPAVQPaintDevice@@@Z @ 73 NONAME ; bool QVGPaintEngine::begin(class QPaintDevice *) + ?fillRect@QVGPaintEngine@@UAEXABVQRectF@@ABVQBrush@@@Z @ 74 NONAME ; void QVGPaintEngine::fillRect(class QRectF const &, class QBrush const &) + ?paintEngine@QVGWindowSurface@@UBEPAVQPaintEngine@@XZ @ 75 NONAME ; class QPaintEngine * QVGWindowSurface::paintEngine(void) const + ?metaObject@QVGPixmapBlurFilter@@UBEPBUQMetaObject@@XZ @ 76 NONAME ; struct QMetaObject const * QVGPixmapBlurFilter::metaObject(void) const + ?drawCursorImage@QVGCompositionHelper@@QAEXABVQImage@@ABVQPoint@@@Z @ 77 NONAME ; void QVGCompositionHelper::drawCursorImage(class QImage const &, class QPoint const &) + ?toVGImage@QVGPixmapData@@QAEKM@Z @ 78 NONAME ; unsigned long QVGPixmapData::toVGImage(float) + ??0QVGPainterState@@QAE@XZ @ 79 NONAME ; QVGPainterState::QVGPainterState(void) + ?d_func@QVGPaintEngine@@ABEPBVQVGPaintEnginePrivate@@XZ @ 80 NONAME ; class QVGPaintEnginePrivate const * QVGPaintEngine::d_func(void) const + ??_EQVGPixmapBlurFilter@@UAE@I@Z @ 81 NONAME ; QVGPixmapBlurFilter::~QVGPixmapBlurFilter(unsigned int) + ?qt_vg_create_context@@YAPAVQEglContext@@PAVQPaintDevice@@@Z @ 82 NONAME ; class QEglContext * qt_vg_create_context(class QPaintDevice *) + ??0QVGPixmapConvolutionFilter@@QAE@XZ @ 83 NONAME ; QVGPixmapConvolutionFilter::QVGPixmapConvolutionFilter(void) + ?clip@QVGPaintEngine@@UAEXABVQRegion@@W4ClipOperation@Qt@@@Z @ 84 NONAME ; void QVGPaintEngine::clip(class QRegion const &, enum Qt::ClipOperation) + ?tr@QVGPixmapColorizeFilter@@SA?AVQString@@PBD0@Z @ 85 NONAME ; class QString QVGPixmapColorizeFilter::tr(char const *, char const *) + ?endNativePainting@QVGPaintEngine@@UAEXXZ @ 86 NONAME ; void QVGPaintEngine::endNativePainting(void) + ?brushChanged@QVGPaintEngine@@UAEXXZ @ 87 NONAME ; void QVGPaintEngine::brushChanged(void) + ?setGeometry@QVGWindowSurface@@UAEXABVQRect@@@Z @ 88 NONAME ; void QVGWindowSurface::setGeometry(class QRect const &) + ?createCompatiblePixmapData@QVGPixmapData@@UBEPAVQPixmapData@@XZ @ 89 NONAME ; class QPixmapData * QVGPixmapData::createCompatiblePixmapData(void) const + ?qt_metacast@QVGPixmapConvolutionFilter@@UAEPAXPBD@Z @ 90 NONAME ; void * QVGPixmapConvolutionFilter::qt_metacast(char const *) + ?endPaint@QVGWindowSurface@@UAEXABVQRegion@@@Z @ 91 NONAME ; void QVGWindowSurface::endPaint(class QRegion const &) + ?resize@QVGPixmapData@@UAEXHH@Z @ 92 NONAME ; void QVGPixmapData::resize(int, int) + ?mainSurface@QVGEGLWindowSurfaceVGImage@@IBEHXZ @ 93 NONAME ; int QVGEGLWindowSurfaceVGImage::mainSurface(void) const + ??0QVGEGLWindowSurfaceDirect@@QAE@PAVQWindowSurface@@@Z @ 94 NONAME ; QVGEGLWindowSurfaceDirect::QVGEGLWindowSurfaceDirect(class QWindowSurface *) + ?clip@QVGPaintEngine@@UAEXABVQRect@@W4ClipOperation@Qt@@@Z @ 95 NONAME ; void QVGPaintEngine::clip(class QRect const &, enum Qt::ClipOperation) + ?metaObject@QVGPixmapConvolutionFilter@@UBEPBUQMetaObject@@XZ @ 96 NONAME ; struct QMetaObject const * QVGPixmapConvolutionFilter::metaObject(void) const + ?surfaceSize@QVGEGLWindowSurfaceDirect@@UBE?AVQSize@@XZ @ 97 NONAME ; class QSize QVGEGLWindowSurfaceDirect::surfaceSize(void) const + ?stroke@QVGPaintEngine@@UAEXABVQVectorPath@@ABVQPen@@@Z @ 98 NONAME ; void QVGPaintEngine::stroke(class QVectorPath const &, class QPen const &) + ?sourceFormat@QVGPixmapData@@ABE?AW4Format@QImage@@XZ @ 99 NONAME ; enum QImage::Format QVGPixmapData::sourceFormat(void) const + ?drawPoints@QVGPaintEngine@@UAEXPBVQPointF@@H@Z @ 100 NONAME ; void QVGPaintEngine::drawPoints(class QPointF const *, int) + ?paintEngine@QVGEGLWindowSurfacePrivate@@QAEPAVQVGPaintEngine@@XZ @ 101 NONAME ; class QVGPaintEngine * QVGEGLWindowSurfacePrivate::paintEngine(void) + ??0QVGPainterState@@QAE@AAV0@@Z @ 102 NONAME ; QVGPainterState::QVGPainterState(class QVGPainterState &) + ?startCompositing@QVGCompositionHelper@@QAEXABVQSize@@@Z @ 103 NONAME ; void QVGCompositionHelper::startCompositing(class QSize const &) + ?getStaticMetaObject@QVGPixmapConvolutionFilter@@SAABUQMetaObject@@XZ @ 104 NONAME ; struct QMetaObject const & QVGPixmapConvolutionFilter::getStaticMetaObject(void) + ??1QVGEGLWindowSurfacePrivate@@UAE@XZ @ 105 NONAME ; QVGEGLWindowSurfacePrivate::~QVGEGLWindowSurfacePrivate(void) + ?qt_vg_destroy_paint_engine@@YAXPAVQVGPaintEngine@@@Z @ 106 NONAME ; void qt_vg_destroy_paint_engine(class QVGPaintEngine *) + ?compositionModeChanged@QVGPaintEngine@@UAEXXZ @ 107 NONAME ; void QVGPaintEngine::compositionModeChanged(void) + ??1QVGPixmapConvolutionFilter@@UAE@XZ @ 108 NONAME ; QVGPixmapConvolutionFilter::~QVGPixmapConvolutionFilter(void) + ?type@QVGPaintEngine@@UBE?AW4Type@QPaintEngine@@XZ @ 109 NONAME ; enum QPaintEngine::Type QVGPaintEngine::type(void) const + ?qt_metacall@QVGPixmapColorizeFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 110 NONAME ; int QVGPixmapColorizeFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?fillRect@QVGPaintEngine@@UAEXABVQRectF@@ABVQColor@@@Z @ 111 NONAME ; void QVGPaintEngine::fillRect(class QRectF const &, class QColor const &) + ?getStaticMetaObject@QVGPixmapDropShadowFilter@@SAABUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const & QVGPixmapDropShadowFilter::getStaticMetaObject(void) + ??0QVGEGLWindowSurfacePrivate@@QAE@PAVQWindowSurface@@@Z @ 113 NONAME ; QVGEGLWindowSurfacePrivate::QVGEGLWindowSurfacePrivate(class QWindowSurface *) + ?drawImage@QVGPaintEngine@@UAEXABVQPointF@@ABVQImage@@@Z @ 114 NONAME ; void QVGPaintEngine::drawImage(class QPointF const &, class QImage const &) + ?blitWindow@QVGCompositionHelper@@QAEXPAVQVGEGLWindowSurfacePrivate@@ABVQRect@@ABVQPoint@@H@Z @ 115 NONAME ; void QVGCompositionHelper::blitWindow(class QVGEGLWindowSurfacePrivate *, class QRect const &, class QPoint const &, int) + ?flush@QVGWindowSurface@@UAEXPAVQWidget@@ABVQRegion@@ABVQPoint@@@Z @ 116 NONAME ; void QVGWindowSurface::flush(class QWidget *, class QRegion const &, class QPoint const &) + ?tr@QVGPixmapColorizeFilter@@SA?AVQString@@PBD0H@Z @ 117 NONAME ; class QString QVGPixmapColorizeFilter::tr(char const *, char const *, int) + ?isValid@QVGPixmapData@@QBE_NXZ @ 118 NONAME ; bool QVGPixmapData::isValid(void) const + ?qt_metacast@QVGPixmapColorizeFilter@@UAEPAXPBD@Z @ 119 NONAME ; void * QVGPixmapColorizeFilter::qt_metacast(char const *) + ?beginPaint@QVGEGLWindowSurfaceVGImage@@UAEXPAVQWidget@@@Z @ 120 NONAME ; void QVGEGLWindowSurfaceVGImage::beginPaint(class QWidget *) + ?createState@QVGPaintEngine@@UBEPAVQPainterState@@PAV2@@Z @ 121 NONAME ; class QPainterState * QVGPaintEngine::createState(class QPainterState *) const + ?qt_metacall@QVGPixmapDropShadowFilter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 122 NONAME ; int QVGPixmapDropShadowFilter::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_vg_destroy_context@@YAXPAVQEglContext@@@Z @ 123 NONAME ; void qt_vg_destroy_context(class QEglContext *) + ?buffer@QVGPixmapData@@UAEPAVQImage@@XZ @ 124 NONAME ; class QImage * QVGPixmapData::buffer(void) + ?clip@QVGPaintEngine@@UAEXABVQVectorPath@@W4ClipOperation@Qt@@@Z @ 125 NONAME ; void QVGPaintEngine::clip(class QVectorPath const &, enum Qt::ClipOperation) + ?drawPolygon@QVGPaintEngine@@UAEXPBVQPoint@@HW4PolygonDrawMode@QPaintEngine@@@Z @ 126 NONAME ; void QVGPaintEngine::drawPolygon(class QPoint const *, int, enum QPaintEngine::PolygonDrawMode) + ?fromImage@QVGPixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 127 NONAME ; void QVGPixmapData::fromImage(class QImage const &, class QFlags) + ??1QVGPainterState@@UAE@XZ @ 128 NONAME ; QVGPainterState::~QVGPainterState(void) + ??1QVGPaintEngine@@UAE@XZ @ 129 NONAME ; QVGPaintEngine::~QVGPaintEngine(void) + ?hasAlphaChannel@QVGPixmapData@@UBE_NXZ @ 130 NONAME ; bool QVGPixmapData::hasAlphaChannel(void) const + ?tr@QVGPixmapDropShadowFilter@@SA?AVQString@@PBD0H@Z @ 131 NONAME ; class QString QVGPixmapDropShadowFilter::tr(char const *, char const *, int) + ?qt_metacast@QVGPixmapBlurFilter@@UAEPAXPBD@Z @ 132 NONAME ; void * QVGPixmapBlurFilter::qt_metacast(char const *) + ?endPaint@QVGEGLWindowSurfaceVGImage@@UAEXPAVQWidget@@ABVQRegion@@PAVQImage@@@Z @ 133 NONAME ; void QVGEGLWindowSurfaceVGImage::endPaint(class QWidget *, class QRegion const &, class QImage *) + ?qt_vg_config_to_vg_format@@YA?AW4VGImageFormat@@PAVQEglContext@@@Z @ 134 NONAME ; enum VGImageFormat qt_vg_config_to_vg_format(class QEglContext *) + ?qt_vg_config_to_image_format@@YA?AW4Format@QImage@@PAVQEglContext@@@Z @ 135 NONAME ; enum QImage::Format qt_vg_config_to_image_format(class QEglContext *) + ?beginPaint@QVGEGLWindowSurfaceDirect@@UAEXPAVQWidget@@@Z @ 136 NONAME ; void QVGEGLWindowSurfaceDirect::beginPaint(class QWidget *) + ?setScissor@QVGCompositionHelper@@QAEXABVQRegion@@@Z @ 137 NONAME ; void QVGCompositionHelper::setScissor(class QRegion const &) + ?draw@QVGPixmapDropShadowFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 138 NONAME ; void QVGPixmapDropShadowFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?metaObject@QVGPixmapDropShadowFilter@@UBEPBUQMetaObject@@XZ @ 139 NONAME ; struct QMetaObject const * QVGPixmapDropShadowFilter::metaObject(void) const + ?drawPath@QVGPaintEngine@@UAEXABVQPainterPath@@@Z @ 140 NONAME ; void QVGPaintEngine::drawPath(class QPainterPath const &) + ?trUtf8@QVGPixmapBlurFilter@@SA?AVQString@@PBD0H@Z @ 141 NONAME ; class QString QVGPixmapBlurFilter::trUtf8(char const *, char const *, int) + ?tr@QVGPixmapBlurFilter@@SA?AVQString@@PBD0H@Z @ 142 NONAME ; class QString QVGPixmapBlurFilter::tr(char const *, char const *, int) + ?drawLines@QVGPaintEngine@@UAEXPBVQLineF@@H@Z @ 143 NONAME ; void QVGPaintEngine::drawLines(class QLineF const *, int) + ?toNativeType@QVGPixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 144 NONAME ; void * QVGPixmapData::toNativeType(enum QPixmapData::NativeType) + ??1QVGWindowSurface@@UAE@XZ @ 145 NONAME ; QVGWindowSurface::~QVGWindowSurface(void) + ?metric@QVGWindowSurface@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 146 NONAME ; int QVGWindowSurface::metric(enum QPaintDevice::PaintDeviceMetric) const + ??1QVGPixmapData@@UAE@XZ @ 147 NONAME ; QVGPixmapData::~QVGPixmapData(void) + ??1QVGEGLWindowSurfaceDirect@@UAE@XZ @ 148 NONAME ; QVGEGLWindowSurfaceDirect::~QVGEGLWindowSurfaceDirect(void) + ?draw@QVGPixmapConvolutionFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 149 NONAME ; void QVGPixmapConvolutionFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ??_EQVGPixmapData@@UAE@I@Z @ 150 NONAME ; QVGPixmapData::~QVGPixmapData(unsigned int) + ?restoreState@QVGPaintEngine@@AAEXV?$QFlags@W4DirtyFlag@QPaintEngine@@@@@Z @ 151 NONAME ; void QVGPaintEngine::restoreState(class QFlags) + ??1QVGCompositionHelper@@UAE@XZ @ 152 NONAME ; QVGCompositionHelper::~QVGCompositionHelper(void) + ??1QVGPixmapBlurFilter@@UAE@XZ @ 153 NONAME ; QVGPixmapBlurFilter::~QVGPixmapBlurFilter(void) + ??0QVGWindowSurface@@QAE@PAVQWidget@@@Z @ 154 NONAME ; QVGWindowSurface::QVGWindowSurface(class QWidget *) + ?isDefaultClipRegion@QVGPaintEngine@@AAE_NABVQRegion@@@Z @ 155 NONAME ; bool QVGPaintEngine::isDefaultClipRegion(class QRegion const &) + ?transformChanged@QVGPaintEngine@@UAEXXZ @ 156 NONAME ; void QVGPaintEngine::transformChanged(void) + ?setAlphaChannel@QVGPixmapData@@UAEXABVQPixmap@@@Z @ 157 NONAME ; void QVGPixmapData::setAlphaChannel(class QPixmap const &) + ?fromNativeType@QVGPixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 158 NONAME ; void QVGPixmapData::fromNativeType(void *, enum QPixmapData::NativeType) + ?qPixmapToVGImage@@YAKABVQPixmap@@@Z @ 159 NONAME ; unsigned long qPixmapToVGImage(class QPixmap const &) + ??_EQVGWindowSurface@@UAE@I@Z @ 160 NONAME ; QVGWindowSurface::~QVGWindowSurface(unsigned int) + ?tr@QVGPixmapConvolutionFilter@@SA?AVQString@@PBD0@Z @ 161 NONAME ; class QString QVGPixmapConvolutionFilter::tr(char const *, char const *) + ?opacityChanged@QVGPaintEngine@@UAEXXZ @ 162 NONAME ; void QVGPaintEngine::opacityChanged(void) + ?surfaceSize@QVGEGLWindowSurfaceVGImage@@UBE?AVQSize@@XZ @ 163 NONAME ; class QSize QVGEGLWindowSurfaceVGImage::surfaceSize(void) const + ?qt_vg_create_paint_engine@@YAPAVQVGPaintEngine@@XZ @ 164 NONAME ; class QVGPaintEngine * qt_vg_create_paint_engine(void) + ?paintDevice@QVGWindowSurface@@UAEPAVQPaintDevice@@XZ @ 165 NONAME ; class QPaintDevice * QVGWindowSurface::paintDevice(void) + ?drawPixmap@QVGPaintEngine@@UAEXABVQRectF@@ABVQPixmap@@0@Z @ 166 NONAME ; void QVGPaintEngine::drawPixmap(class QRectF const &, class QPixmap const &, class QRectF const &) + ?forceToImage@QVGPixmapData@@AAEXXZ @ 167 NONAME ; void QVGPixmapData::forceToImage(void) + ?beginPaint@QVGWindowSurface@@UAEXABVQRegion@@@Z @ 168 NONAME ; void QVGWindowSurface::beginPaint(class QRegion const &) + ??_EQVGEGLWindowSurfacePrivate@@UAE@I@Z @ 169 NONAME ; QVGEGLWindowSurfacePrivate::~QVGEGLWindowSurfacePrivate(unsigned int) + ?endPaint@QVGEGLWindowSurfaceDirect@@UAEXPAVQWidget@@ABVQRegion@@PAVQImage@@@Z @ 170 NONAME ; void QVGEGLWindowSurfaceDirect::endPaint(class QWidget *, class QRegion const &, class QImage *) + ?trUtf8@QVGPixmapConvolutionFilter@@SA?AVQString@@PBD0H@Z @ 171 NONAME ; class QString QVGPixmapConvolutionFilter::trUtf8(char const *, char const *, int) + ?scroll@QVGWindowSurface@@UAE_NABVQRegion@@HH@Z @ 172 NONAME ; bool QVGWindowSurface::scroll(class QRegion const &, int, int) + ?surfaceImage@QVGEGLWindowSurfaceVGImage@@UBEKXZ @ 173 NONAME ; unsigned long QVGEGLWindowSurfaceVGImage::surfaceImage(void) const + ?isDefaultClipRect@QVGPaintEngine@@AAE_NABVQRect@@@Z @ 174 NONAME ; bool QVGPaintEngine::isDefaultClipRect(class QRect const &) + ?windowSurfaceSize@QVGEGLWindowSurfacePrivate@@IBE?AVQSize@@PAVQWidget@@@Z @ 175 NONAME ; class QSize QVGEGLWindowSurfacePrivate::windowSurfaceSize(class QWidget *) const + ?pixmapFilter@QVGPaintEngine@@UAEPAVQPixmapFilter@@HPBV2@@Z @ 176 NONAME ; class QPixmapFilter * QVGPaintEngine::pixmapFilter(int, class QPixmapFilter const *) + ?destroyPaintEngine@QVGEGLWindowSurfacePrivate@@IAEXXZ @ 177 NONAME ; void QVGEGLWindowSurfacePrivate::destroyPaintEngine(void) + ?qt_vg_shared_surface@@YAHXZ @ 178 NONAME ; int qt_vg_shared_surface(void) + ?drawCursorPixmap@QVGCompositionHelper@@QAEXABVQPixmap@@ABVQPoint@@@Z @ 179 NONAME ; void QVGCompositionHelper::drawCursorPixmap(class QPixmap const &, class QPoint const &) + ?drawPixmaps@QVGPaintEngine@@UAEXPBUData@QDrawPixmaps@@HABVQPixmap@@V?$QFlags@W4DrawingHint@QDrawPixmaps@@@@@Z @ 180 NONAME ; void QVGPaintEngine::drawPixmaps(struct QDrawPixmaps::Data const *, int, class QPixmap const &, class QFlags) + ?endPaint@QVGEGLWindowSurfaceQImage@@UAEXPAVQWidget@@ABVQRegion@@PAVQImage@@@Z @ 181 NONAME ; void QVGEGLWindowSurfaceQImage::endPaint(class QWidget *, class QRegion const &, class QImage *) + ?drawPolygon@QVGPaintEngine@@UAEXPBVQPointF@@HW4PolygonDrawMode@QPaintEngine@@@Z @ 182 NONAME ; void QVGPaintEngine::drawPolygon(class QPointF const *, int, enum QPaintEngine::PolygonDrawMode) + ?trUtf8@QVGPixmapDropShadowFilter@@SA?AVQString@@PBD0H@Z @ 183 NONAME ; class QString QVGPixmapDropShadowFilter::trUtf8(char const *, char const *, int) + ?end@QVGPaintEngine@@UAE_NXZ @ 184 NONAME ; bool QVGPaintEngine::end(void) + ?trUtf8@QVGPixmapColorizeFilter@@SA?AVQString@@PBD0H@Z @ 185 NONAME ; class QString QVGPixmapColorizeFilter::trUtf8(char const *, char const *, int) + ??_EQVGPainterState@@UAE@I@Z @ 186 NONAME ; QVGPainterState::~QVGPainterState(unsigned int) + ?d_func@QVGPaintEngine@@AAEPAVQVGPaintEnginePrivate@@XZ @ 187 NONAME ; class QVGPaintEnginePrivate * QVGPaintEngine::d_func(void) + ?drawRects@QVGPaintEngine@@UAEXPBVQRectF@@H@Z @ 188 NONAME ; void QVGPaintEngine::drawRects(class QRectF const *, int) + ?brushOriginChanged@QVGPaintEngine@@UAEXXZ @ 189 NONAME ; void QVGPaintEngine::brushOriginChanged(void) + ?draw@QVGPixmapColorizeFilter@@UBEXPAVQPainter@@ABVQPointF@@ABVQPixmap@@ABVQRectF@@@Z @ 190 NONAME ; void QVGPixmapColorizeFilter::draw(class QPainter *, class QPointF const &, class QPixmap const &, class QRectF const &) const + ?drawTextItem@QVGPaintEngine@@UAEXABVQPointF@@ABVQTextItem@@@Z @ 191 NONAME ; void QVGPaintEngine::drawTextItem(class QPointF const &, class QTextItem const &) + ?clearScissor@QVGCompositionHelper@@QAEXXZ @ 192 NONAME ; void QVGCompositionHelper::clearScissor(void) + ?fill@QVGPaintEngine@@UAEXABVQVectorPath@@ABVQBrush@@@Z @ 193 NONAME ; void QVGPaintEngine::fill(class QVectorPath const &, class QBrush const &) + ?drawPoints@QVGPaintEngine@@UAEXPBVQPoint@@H@Z @ 194 NONAME ; void QVGPaintEngine::drawPoints(class QPoint const *, int) + ??_EQVGPaintEngine@@UAE@I@Z @ 195 NONAME ; QVGPaintEngine::~QVGPaintEngine(unsigned int) + ?clip@QVGPaintEngine@@UAEXABVQPainterPath@@W4ClipOperation@Qt@@@Z @ 196 NONAME ; void QVGPaintEngine::clip(class QPainterPath const &, enum Qt::ClipOperation) + ?vgPrivate@QVGPaintEngine@@QAEPAVQVGPaintEnginePrivate@@XZ @ 197 NONAME ; class QVGPaintEnginePrivate * QVGPaintEngine::vgPrivate(void) + diff --git a/src/s60installs/bwins/QtScriptu.def b/src/s60installs/bwins/QtScriptu.def new file mode 100644 index 0000000..2988ebd --- /dev/null +++ b/src/s60installs/bwins/QtScriptu.def @@ -0,0 +1,331 @@ +EXPORTS + ?argument@QScriptContext@@QBE?AVQScriptValue@@H@Z @ 1 NONAME ; class QScriptValue QScriptContext::argument(int) const + ?abortEvaluation@QScriptEngine@@QAEXABVQScriptValue@@@Z @ 2 NONAME ; void QScriptEngine::abortEvaluation(class QScriptValue const &) + ?isNumber@QScriptValue@@QBE_NXZ @ 3 NONAME ; bool QScriptValue::isNumber(void) const + ?propertyFlags@QScriptValue@@QBE?AV?$QFlags@W4PropertyFlag@QScriptValue@@@@ABVQString@@ABV?$QFlags@W4ResolveFlag@QScriptValue@@@@@Z @ 4 NONAME ; class QFlags QScriptValue::propertyFlags(class QString const &, class QFlags const &) const + ??0QScriptValue@@QAE@PBD@Z @ 5 NONAME ; QScriptValue::QScriptValue(char const *) + ?toQObject@QScriptValue@@QBEPAVQObject@@XZ @ 6 NONAME ; class QObject * QScriptValue::toQObject(void) const + ?functionName@QScriptContextInfo@@QBE?AVQString@@XZ @ 7 NONAME ; class QString QScriptContextInfo::functionName(void) const + ??1QScriptable@@QAE@XZ @ 8 NONAME ; QScriptable::~QScriptable(void) + ?setProperty@QScriptValue@@QAEXABVQScriptString@@ABV1@ABV?$QFlags@W4PropertyFlag@QScriptValue@@@@@Z @ 9 NONAME ; void QScriptValue::setProperty(class QScriptString const &, class QScriptValue const &, class QFlags const &) + ?functionExit@QScriptEngineAgent@@UAEX_JABVQScriptValue@@@Z @ 10 NONAME ; void QScriptEngineAgent::functionExit(long long, class QScriptValue const &) + ?qScriptConnect@@YA_NPAVQObject@@PBDABVQScriptValue@@2@Z @ 11 NONAME ; bool qScriptConnect(class QObject *, char const *, class QScriptValue const &, class QScriptValue const &) + ?sourceParsed@QScriptEngineAgentPrivate@@UAEXPAVExecState@QTJSC@@ABVSourceCode@3@HABVUString@3@@Z @ 12 NONAME ; void QScriptEngineAgentPrivate::sourceParsed(class QTJSC::ExecState *, class QTJSC::SourceCode const &, int, class QTJSC::UString const &) + ?getStaticMetaObject@QScriptEngine@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & QScriptEngine::getStaticMetaObject(void) + ??0QScriptString@@QAE@XZ @ 14 NONAME ; QScriptString::QScriptString(void) + ?d_func@QScriptEngineAgent@@AAEPAVQScriptEngineAgentPrivate@@XZ @ 15 NONAME ; class QScriptEngineAgentPrivate * QScriptEngineAgent::d_func(void) + ??0QScriptValue@@QAE@ABV0@@Z @ 16 NONAME ; QScriptValue::QScriptValue(class QScriptValue const &) + ?engine@QScriptable@@QBEPAVQScriptEngine@@XZ @ 17 NONAME ; class QScriptEngine * QScriptable::engine(void) const + ?toObject@QScriptValue@@QBE?AV1@XZ @ 18 NONAME ; class QScriptValue QScriptValue::toObject(void) const + ?q_func@QScriptEngineAgentPrivate@@ABEPBVQScriptEngineAgent@@XZ @ 19 NONAME ; class QScriptEngineAgent const * QScriptEngineAgentPrivate::q_func(void) const + ?isString@QScriptValue@@QBE_NXZ @ 20 NONAME ; bool QScriptValue::isString(void) const + ?value@QScriptValueIterator@@QBE?AVQScriptValue@@XZ @ 21 NONAME ; class QScriptValue QScriptValueIterator::value(void) const + ?propertyFlags@QScriptClass@@UAE?AV?$QFlags@W4PropertyFlag@QScriptValue@@@@ABVQScriptValue@@ABVQScriptString@@I@Z @ 22 NONAME ; class QFlags QScriptClass::propertyFlags(class QScriptValue const &, class QScriptString const &, unsigned int) + ?setData@QScriptValue@@QAEXABV1@@Z @ 23 NONAME ; void QScriptValue::setData(class QScriptValue const &) + ??0QScriptValue@@QAE@ABVQLatin1String@@@Z @ 24 NONAME ; QScriptValue::QScriptValue(class QLatin1String const &) + ?toQMetaObject@QScriptValue@@QBEPBUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const * QScriptValue::toQMetaObject(void) const + ?newArray@QScriptEngine@@QAE?AVQScriptValue@@I@Z @ 26 NONAME ; class QScriptValue QScriptEngine::newArray(unsigned int) + ?scriptName@QScriptValueIterator@@QBE?AVQScriptString@@XZ @ 27 NONAME ; class QScriptString QScriptValueIterator::scriptName(void) const + ??1QScriptEngineAgentPrivate@@UAE@XZ @ 28 NONAME ; QScriptEngineAgentPrivate::~QScriptEngineAgentPrivate(void) + ?flags@QScriptClassPropertyIterator@@UBE?AV?$QFlags@W4PropertyFlag@QScriptValue@@@@XZ @ 29 NONAME ; class QFlags QScriptClassPropertyIterator::flags(void) const + ?extension@QScriptClass@@UAE?AVQVariant@@W4Extension@1@ABV2@@Z @ 30 NONAME ; class QVariant QScriptClass::extension(enum QScriptClass::Extension, class QVariant const &) + ?next@QScriptValueIterator@@QAEXXZ @ 31 NONAME ; void QScriptValueIterator::next(void) + ??0QScriptValue@@QAE@PAVQScriptEngine@@PBD@Z @ 32 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, char const *) + ?d_func@QScriptEngine@@AAEPAVQScriptEnginePrivate@@XZ @ 33 NONAME ; class QScriptEnginePrivate * QScriptEngine::d_func(void) + ?returnEvent@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 34 NONAME ; void QScriptEngineAgentPrivate::returnEvent(class QTJSC::DebuggerCallFrame const &, int, int) + ??0QScriptValue@@QAE@XZ @ 35 NONAME ; QScriptValue::QScriptValue(void) + ?property@QScriptClass@@UAE?AVQScriptValue@@ABV2@ABVQScriptString@@I@Z @ 36 NONAME ; class QScriptValue QScriptClass::property(class QScriptValue const &, class QScriptString const &, unsigned int) + ?didReachBreakpoint@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HHH@Z @ 37 NONAME ; void QScriptEngineAgentPrivate::didReachBreakpoint(class QTJSC::DebuggerCallFrame const &, int, int, int) + ??0QScriptable@@QAE@XZ @ 38 NONAME ; QScriptable::QScriptable(void) + ?qt_metacall@QScriptEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 39 NONAME ; int QScriptEngine::qt_metacall(enum QMetaObject::Call, int, void * *) + ?parentContext@QScriptContext@@QBEPAV1@XZ @ 40 NONAME ; class QScriptContext * QScriptContext::parentContext(void) const + ?exceptionThrow@QScriptEngineAgent@@UAEX_JABVQScriptValue@@_N@Z @ 41 NONAME ; void QScriptEngineAgent::exceptionThrow(long long, class QScriptValue const &, bool) + ?exceptionCatch@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@H@Z @ 42 NONAME ; void QScriptEngineAgentPrivate::exceptionCatch(class QTJSC::DebuggerCallFrame const &, int) + ??0QScriptValue@@QAE@PAVQScriptEngine@@N@Z @ 43 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, double) + ?state@QScriptContext@@QBE?AW4ExecutionState@1@XZ @ 44 NONAME ; enum QScriptContext::ExecutionState QScriptContext::state(void) const + ?argument@QScriptable@@QBE?AVQScriptValue@@H@Z @ 45 NONAME ; class QScriptValue QScriptable::argument(int) const + ?objectById@QScriptEngine@@QBE?AVQScriptValue@@_J@Z @ 46 NONAME ; class QScriptValue QScriptEngine::objectById(long long) const + ??0QScriptEngineAgent@@QAE@PAVQScriptEngine@@@Z @ 47 NONAME ; QScriptEngineAgent::QScriptEngineAgent(class QScriptEngine *) + ?isVariant@QScriptValue@@QBE_NXZ @ 48 NONAME ; bool QScriptValue::isVariant(void) const + ?functionExit@QScriptEngineAgentPrivate@@UAEXABVJSValue@QTJSC@@H@Z @ 49 NONAME ; void QScriptEngineAgentPrivate::functionExit(class QTJSC::JSValue const &, int) + ?toBack@QScriptValueIterator@@QAEXXZ @ 50 NONAME ; void QScriptValueIterator::toBack(void) + ?pushScope@QScriptContext@@QAEXABVQScriptValue@@@Z @ 51 NONAME ; void QScriptContext::pushScope(class QScriptValue const &) + ??0QScriptValue@@QAE@PAVQScriptEngine@@I@Z @ 52 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, unsigned int) + ?staticMetaObject@QScriptExtensionPlugin@@2UQMetaObject@@B @ 53 NONAME ; struct QMetaObject const QScriptExtensionPlugin::staticMetaObject + ?setThisObject@QScriptContext@@QAEXABVQScriptValue@@@Z @ 54 NONAME ; void QScriptContext::setThisObject(class QScriptValue const &) + ??0QScriptEngineAgentPrivate@@QAE@XZ @ 55 NONAME ; QScriptEngineAgentPrivate::QScriptEngineAgentPrivate(void) + ?toNumber@QScriptValue@@QBENXZ @ 56 NONAME ; double QScriptValue::toNumber(void) const + ?d_func@QScriptClassPropertyIterator@@AAEPAVQScriptClassPropertyIteratorPrivate@@XZ @ 57 NONAME ; class QScriptClassPropertyIteratorPrivate * QScriptClassPropertyIterator::d_func(void) + ?setProperty@QScriptClass@@UAEXAAVQScriptValue@@ABVQScriptString@@IABV2@@Z @ 58 NONAME ; void QScriptClass::setProperty(class QScriptValue &, class QScriptString const &, unsigned int, class QScriptValue const &) + ?isNull@QScriptValue@@QBE_NXZ @ 59 NONAME ; bool QScriptValue::isNull(void) const + ?isNull@QScriptContextInfo@@QBE_NXZ @ 60 NONAME ; bool QScriptContextInfo::isNull(void) const + ?engine@QScriptClass@@QBEPAVQScriptEngine@@XZ @ 61 NONAME ; class QScriptEngine * QScriptClass::engine(void) const + ??0QScriptValueIterator@@QAE@ABVQScriptValue@@@Z @ 62 NONAME ; QScriptValueIterator::QScriptValueIterator(class QScriptValue const &) + ?signalHandlerException@QScriptEngine@@IAEXABVQScriptValue@@@Z @ 63 NONAME ; void QScriptEngine::signalHandlerException(class QScriptValue const &) + ?isQObject@QScriptValue@@QBE_NXZ @ 64 NONAME ; bool QScriptValue::isQObject(void) const + ?setGlobalObject@QScriptEngine@@QAEXABVQScriptValue@@@Z @ 65 NONAME ; void QScriptEngine::setGlobalObject(class QScriptValue const &) + ?exceptionThrow@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@H_N@Z @ 66 NONAME ; void QScriptEngineAgentPrivate::exceptionThrow(class QTJSC::DebuggerCallFrame const &, int, bool) + ??0QScriptSyntaxCheckResult@@AAE@XZ @ 67 NONAME ; QScriptSyntaxCheckResult::QScriptSyntaxCheckResult(void) + ?scriptId@QScriptContextInfo@@QBE_JXZ @ 68 NONAME ; long long QScriptContextInfo::scriptId(void) const + ?collectGarbage@QScriptEngine@@QAEXXZ @ 69 NONAME ; void QScriptEngine::collectGarbage(void) + ?call@QScriptValue@@QAE?AV1@ABV1@0@Z @ 70 NONAME ; class QScriptValue QScriptValue::call(class QScriptValue const &, class QScriptValue const &) + ?toInt32@QScriptValue@@QBEHXZ @ 71 NONAME ; int QScriptValue::toInt32(void) const + ?newObject@QScriptEngine@@QAE?AVQScriptValue@@PAVQScriptClass@@ABV2@@Z @ 72 NONAME ; class QScriptValue QScriptEngine::newObject(class QScriptClass *, class QScriptValue const &) + ??_EQScriptExtensionPlugin@@UAE@I@Z @ 73 NONAME ; QScriptExtensionPlugin::~QScriptExtensionPlugin(unsigned int) + ?get@QScriptEngineAgentPrivate@@SAPAVQScriptEngineAgent@@PAV1@@Z @ 74 NONAME ; class QScriptEngineAgent * QScriptEngineAgentPrivate::get(class QScriptEngineAgentPrivate *) + ?qt_metacall@QScriptExtensionPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 75 NONAME ; int QScriptExtensionPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?undefinedValue@QScriptEngine@@QAE?AVQScriptValue@@XZ @ 76 NONAME ; class QScriptValue QScriptEngine::undefinedValue(void) + ??1QScriptExtensionInterface@@UAE@XZ @ 77 NONAME ; QScriptExtensionInterface::~QScriptExtensionInterface(void) + ?trUtf8@QScriptEngine@@SA?AVQString@@PBD0@Z @ 78 NONAME ; class QString QScriptEngine::trUtf8(char const *, char const *) + ??4QScriptContextInfo@@QAEAAV0@ABV0@@Z @ 79 NONAME ; class QScriptContextInfo & QScriptContextInfo::operator=(class QScriptContextInfo const &) + ?argumentCount@QScriptContext@@QBEHXZ @ 80 NONAME ; int QScriptContext::argumentCount(void) const + ?functionType@QScriptContextInfo@@QBE?AW4FunctionType@1@XZ @ 81 NONAME ; enum QScriptContextInfo::FunctionType QScriptContextInfo::functionType(void) const + ?convert@QScriptEngine@@AAE_NABVQScriptValue@@HPAX@Z @ 82 NONAME ; bool QScriptEngine::convert(class QScriptValue const &, int, void *) + ??1QScriptValue@@QAE@XZ @ 83 NONAME ; QScriptValue::~QScriptValue(void) + ??9QScriptString@@QBE_NABV0@@Z @ 84 NONAME ; bool QScriptString::operator!=(class QScriptString const &) const + ?scriptUnload@QScriptEngineAgentPrivate@@UAEX_J@Z @ 85 NONAME ; void QScriptEngineAgentPrivate::scriptUnload(long long) + ?registerCustomType@QScriptEngine@@AAEXHP6A?AVQScriptValue@@PAV1@PBX@ZP6AXABV2@PAX@Z3@Z @ 86 NONAME ; void QScriptEngine::registerCustomType(int, class QScriptValue (*)(class QScriptEngine *, void const *), void (*)(class QScriptValue const &, void *), class QScriptValue const &) + ?setAgent@QScriptEngine@@QAEXPAVQScriptEngineAgent@@@Z @ 87 NONAME ; void QScriptEngine::setAgent(class QScriptEngineAgent *) + ?engine@QScriptContext@@QBEPAVQScriptEngine@@XZ @ 88 NONAME ; class QScriptEngine * QScriptContext::engine(void) const + ?detach@QScriptEngineAgentPrivate@@QAEXXZ @ 89 NONAME ; void QScriptEngineAgentPrivate::detach(void) + ?equals@QScriptValue@@QBE_NABV1@@Z @ 90 NONAME ; bool QScriptValue::equals(class QScriptValue const &) const + ?functionParameterNames@QScriptContextInfo@@QBE?AVQStringList@@XZ @ 91 NONAME ; class QStringList QScriptContextInfo::functionParameterNames(void) const + ?fileName@QScriptContextInfo@@QBE?AVQString@@XZ @ 92 NONAME ; class QString QScriptContextInfo::fileName(void) const + ?isObject@QScriptValue@@QBE_NXZ @ 93 NONAME ; bool QScriptValue::isObject(void) const + ?d_func@QScriptEngineAgent@@ABEPBVQScriptEngineAgentPrivate@@XZ @ 94 NONAME ; class QScriptEngineAgentPrivate const * QScriptEngineAgent::d_func(void) const + ?trUtf8@QScriptEngine@@SA?AVQString@@PBD0H@Z @ 95 NONAME ; class QString QScriptEngine::trUtf8(char const *, char const *, int) + ?uncaughtException@QScriptEngine@@QBE?AVQScriptValue@@XZ @ 96 NONAME ; class QScriptValue QScriptEngine::uncaughtException(void) const + ?qHash@@YAIABVQScriptString@@@Z @ 97 NONAME ; unsigned int qHash(class QScriptString const &) + ?id@QScriptClassPropertyIterator@@UBEIXZ @ 98 NONAME ; unsigned int QScriptClassPropertyIterator::id(void) const + ??_EQScriptEngine@@UAE@I@Z @ 99 NONAME ; QScriptEngine::~QScriptEngine(unsigned int) + ?newQObject@QScriptEngine@@QAE?AVQScriptValue@@ABV2@PAVQObject@@W4ValueOwnership@1@ABV?$QFlags@W4QObjectWrapOption@QScriptEngine@@@@@Z @ 100 NONAME ; class QScriptValue QScriptEngine::newQObject(class QScriptValue const &, class QObject *, enum QScriptEngine::ValueOwnership, class QFlags const &) + ??0QScriptExtensionInterface@@QAE@XZ @ 101 NONAME ; QScriptExtensionInterface::QScriptExtensionInterface(void) + ?metaObject@QScriptExtensionPlugin@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QScriptExtensionPlugin::metaObject(void) const + ?setReturnValue@QScriptContext@@QAEXABVQScriptValue@@@Z @ 103 NONAME ; void QScriptContext::setReturnValue(class QScriptValue const &) + ?isBoolean@QScriptValue@@QBE_NXZ @ 104 NONAME ; bool QScriptValue::isBoolean(void) const + ?d_func@QScriptClass@@ABEPBVQScriptClassPrivate@@XZ @ 105 NONAME ; class QScriptClassPrivate const * QScriptClass::d_func(void) const + ?toString@QScriptValue@@QBE?AVQString@@XZ @ 106 NONAME ; class QString QScriptValue::toString(void) const + ?previous@QScriptValueIterator@@QAEXXZ @ 107 NONAME ; void QScriptValueIterator::previous(void) + ??8QScriptContextInfo@@QBE_NABV0@@Z @ 108 NONAME ; bool QScriptContextInfo::operator==(class QScriptContextInfo const &) const + ?d_func@QScriptValue@@AAEPAVQScriptValuePrivate@@XZ @ 109 NONAME ; class QScriptValuePrivate * QScriptValue::d_func(void) + ?toString@QScriptString@@QBE?AVQString@@XZ @ 110 NONAME ; class QString QScriptString::toString(void) const + ??0QScriptContext@@AAE@XZ @ 111 NONAME ; QScriptContext::QScriptContext(void) + ?setValue@QScriptValueIterator@@QAEXABVQScriptValue@@@Z @ 112 NONAME ; void QScriptValueIterator::setValue(class QScriptValue const &) + ?qScriptDisconnect@@YA_NPAVQObject@@PBDABVQScriptValue@@2@Z @ 113 NONAME ; bool qScriptDisconnect(class QObject *, char const *, class QScriptValue const &, class QScriptValue const &) + ??1QScriptValueIterator@@QAE@XZ @ 114 NONAME ; QScriptValueIterator::~QScriptValueIterator(void) + ?throwError@QScriptContext@@QAE?AVQScriptValue@@ABVQString@@@Z @ 115 NONAME ; class QScriptValue QScriptContext::throwError(class QString const &) + ?newDate@QScriptEngine@@QAE?AVQScriptValue@@ABVQDateTime@@@Z @ 116 NONAME ; class QScriptValue QScriptEngine::newDate(class QDateTime const &) + ?toStringHandle@QScriptEngine@@QAE?AVQScriptString@@ABVQString@@@Z @ 117 NONAME ; class QScriptString QScriptEngine::toStringHandle(class QString const &) + ?toInteger@QScriptValue@@QBENXZ @ 118 NONAME ; double QScriptValue::toInteger(void) const + ?scopeChain@QScriptContext@@QBE?AV?$QList@VQScriptValue@@@@XZ @ 119 NONAME ; class QList QScriptContext::scopeChain(void) const + ?isValid@QScriptString@@QBE_NXZ @ 120 NONAME ; bool QScriptString::isValid(void) const + ?name@QScriptClass@@UBE?AVQString@@XZ @ 121 NONAME ; class QString QScriptClass::name(void) const + ??1QScriptContext@@QAE@XZ @ 122 NONAME ; QScriptContext::~QScriptContext(void) + ?construct@QScriptValue@@QAE?AV1@ABV1@@Z @ 123 NONAME ; class QScriptValue QScriptValue::construct(class QScriptValue const &) + ?defaultPrototype@QScriptEngine@@QBE?AVQScriptValue@@H@Z @ 124 NONAME ; class QScriptValue QScriptEngine::defaultPrototype(int) const + ??9QScriptContextInfo@@QBE_NABV0@@Z @ 125 NONAME ; bool QScriptContextInfo::operator!=(class QScriptContextInfo const &) const + ?evaluate@QScriptEngine@@QAE?AVQScriptValue@@ABVQString@@0H@Z @ 126 NONAME ; class QScriptValue QScriptEngine::evaluate(class QString const &, class QString const &, int) + ?prototype@QScriptClass@@UBE?AVQScriptValue@@XZ @ 127 NONAME ; class QScriptValue QScriptClass::prototype(void) const + ?lessThan@QScriptValue@@QBE_NABV1@@Z @ 128 NONAME ; bool QScriptValue::lessThan(class QScriptValue const &) const + ?errorColumnNumber@QScriptSyntaxCheckResult@@QBEHXZ @ 129 NONAME ; int QScriptSyntaxCheckResult::errorColumnNumber(void) const + ?d_func@QScriptContext@@AAEPAVQScriptContextPrivate@@XZ @ 130 NONAME ; class QScriptContextPrivate * QScriptContext::d_func(void) + ?errorMessage@QScriptSyntaxCheckResult@@QBE?AVQString@@XZ @ 131 NONAME ; class QString QScriptSyntaxCheckResult::errorMessage(void) const + ?toBool@QScriptValue@@QBE_NXZ @ 132 NONAME ; bool QScriptValue::toBool(void) const + ?argumentsObject@QScriptContext@@QBE?AVQScriptValue@@XZ @ 133 NONAME ; class QScriptValue QScriptContext::argumentsObject(void) const + ?flags@QScriptValueIterator@@QBE?AV?$QFlags@W4PropertyFlag@QScriptValue@@@@XZ @ 134 NONAME ; class QFlags QScriptValueIterator::flags(void) const + ?toDateTime@QScriptValue@@QBE?AVQDateTime@@XZ @ 135 NONAME ; class QDateTime QScriptValue::toDateTime(void) const + ?newDate@QScriptEngine@@QAE?AVQScriptValue@@N@Z @ 136 NONAME ; class QScriptValue QScriptEngine::newDate(double) + ?setDefaultPrototype@QScriptEngine@@QAEXHABVQScriptValue@@@Z @ 137 NONAME ; void QScriptEngine::setDefaultPrototype(int, class QScriptValue const &) + ?setupPackage@QScriptExtensionPlugin@@QBE?AVQScriptValue@@ABVQString@@PAVQScriptEngine@@@Z @ 138 NONAME ; class QScriptValue QScriptExtensionPlugin::setupPackage(class QString const &, class QScriptEngine *) const + ??0QScriptSyntaxCheckResult@@AAE@PAVQScriptSyntaxCheckResultPrivate@@@Z @ 139 NONAME ; QScriptSyntaxCheckResult::QScriptSyntaxCheckResult(class QScriptSyntaxCheckResultPrivate *) + ?scriptUnload@QScriptEngineAgent@@UAEX_J@Z @ 140 NONAME ; void QScriptEngineAgent::scriptUnload(long long) + ?prototype@QScriptValue@@QBE?AV1@XZ @ 141 NONAME ; class QScriptValue QScriptValue::prototype(void) const + ??1QScriptSyntaxCheckResult@@QAE@XZ @ 142 NONAME ; QScriptSyntaxCheckResult::~QScriptSyntaxCheckResult(void) + ??0QScriptClass@@IAE@PAVQScriptEngine@@AAVQScriptClassPrivate@@@Z @ 143 NONAME ; QScriptClass::QScriptClass(class QScriptEngine *, class QScriptClassPrivate &) + ?toObject@QScriptEngine@@QAE?AVQScriptValue@@ABV2@@Z @ 144 NONAME ; class QScriptValue QScriptEngine::toObject(class QScriptValue const &) + ??0QScriptEngine@@QAE@XZ @ 145 NONAME ; QScriptEngine::QScriptEngine(void) + ?isRegExp@QScriptValue@@QBE_NXZ @ 146 NONAME ; bool QScriptValue::isRegExp(void) const + ?evaluateStop@QScriptEngineAgentPrivate@@UAEXABVJSValue@QTJSC@@H@Z @ 147 NONAME ; void QScriptEngineAgentPrivate::evaluateStop(class QTJSC::JSValue const &, int) + ?d_func@QScriptValueIterator@@AAEPAVQScriptValueIteratorPrivate@@XZ @ 148 NONAME ; class QScriptValueIteratorPrivate * QScriptValueIterator::d_func(void) + ?errorLineNumber@QScriptSyntaxCheckResult@@QBEHXZ @ 149 NONAME ; int QScriptSyntaxCheckResult::errorLineNumber(void) const + ?d_func@QScriptSyntaxCheckResult@@AAEPAVQScriptSyntaxCheckResultPrivate@@XZ @ 150 NONAME ; class QScriptSyntaxCheckResultPrivate * QScriptSyntaxCheckResult::d_func(void) + ?instanceOf@QScriptValue@@QBE_NABV1@@Z @ 151 NONAME ; bool QScriptValue::instanceOf(class QScriptValue const &) const + ?isUndefined@QScriptValue@@QBE_NXZ @ 152 NONAME ; bool QScriptValue::isUndefined(void) const + ?toUInt16@QScriptValue@@QBEGXZ @ 153 NONAME ; unsigned short QScriptValue::toUInt16(void) const + ??_EQScriptClass@@UAE@I@Z @ 154 NONAME ; QScriptClass::~QScriptClass(unsigned int) + ?engine@QScriptValue@@QBEPAVQScriptEngine@@XZ @ 155 NONAME ; class QScriptEngine * QScriptValue::engine(void) const + ??4QScriptValue@@QAEAAV0@ABV0@@Z @ 156 NONAME ; class QScriptValue & QScriptValue::operator=(class QScriptValue const &) + ?trUtf8@QScriptExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString QScriptExtensionPlugin::trUtf8(char const *, char const *, int) + ??0QScriptValue@@QAE@PAVQScriptEngine@@W4SpecialValue@0@@Z @ 158 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, enum QScriptValue::SpecialValue) + ??_EQScriptEngineAgentPrivate@@UAE@I@Z @ 159 NONAME ; QScriptEngineAgentPrivate::~QScriptEngineAgentPrivate(unsigned int) + ?context@QScriptable@@QBEPAVQScriptContext@@XZ @ 160 NONAME ; class QScriptContext * QScriptable::context(void) const + ?get@QScriptEngineAgentPrivate@@SAPAV1@PAVQScriptEngineAgent@@@Z @ 161 NONAME ; class QScriptEngineAgentPrivate * QScriptEngineAgentPrivate::get(class QScriptEngineAgent *) + ?hasNext@QScriptValueIterator@@QBE_NXZ @ 162 NONAME ; bool QScriptValueIterator::hasNext(void) const + ?pushContext@QScriptEngine@@QAEPAVQScriptContext@@XZ @ 163 NONAME ; class QScriptContext * QScriptEngine::pushContext(void) + ??1QScriptString@@QAE@XZ @ 164 NONAME ; QScriptString::~QScriptString(void) + ?lineNumber@QScriptContextInfo@@QBEHXZ @ 165 NONAME ; int QScriptContextInfo::lineNumber(void) const + ?setActivationObject@QScriptContext@@QAEXABVQScriptValue@@@Z @ 166 NONAME ; void QScriptContext::setActivationObject(class QScriptValue const &) + ?qt_metacast@QScriptExtensionPlugin@@UAEPAXPBD@Z @ 167 NONAME ; void * QScriptExtensionPlugin::qt_metacast(char const *) + ??1QScriptContextInfo@@QAE@XZ @ 168 NONAME ; QScriptContextInfo::~QScriptContextInfo(void) + ?activationObject@QScriptContext@@QBE?AVQScriptValue@@XZ @ 169 NONAME ; class QScriptValue QScriptContext::activationObject(void) const + ??0QScriptClassPropertyIterator@@IAE@ABVQScriptValue@@AAVQScriptClassPropertyIteratorPrivate@@@Z @ 170 NONAME ; QScriptClassPropertyIterator::QScriptClassPropertyIterator(class QScriptValue const &, class QScriptClassPropertyIteratorPrivate &) + ?construct@QScriptValue@@QAE?AV1@ABV?$QList@VQScriptValue@@@@@Z @ 171 NONAME ; class QScriptValue QScriptValue::construct(class QList const &) + ??0QScriptContextInfo@@QAE@XZ @ 172 NONAME ; QScriptContextInfo::QScriptContextInfo(void) + ?agent@QScriptEngine@@QBEPAVQScriptEngineAgent@@XZ @ 173 NONAME ; class QScriptEngineAgent * QScriptEngine::agent(void) const + ?backtrace@QScriptContext@@QBE?AVQStringList@@XZ @ 174 NONAME ; class QStringList QScriptContext::backtrace(void) const + ??1QScriptClassPropertyIterator@@UAE@XZ @ 175 NONAME ; QScriptClassPropertyIterator::~QScriptClassPropertyIterator(void) + ?qt_metacast@QScriptEngine@@UAEPAXPBD@Z @ 176 NONAME ; void * QScriptEngine::qt_metacast(char const *) + ?setPrototype@QScriptValue@@QAEXABV1@@Z @ 177 NONAME ; void QScriptValue::setPrototype(class QScriptValue const &) + ?setProperty@QScriptValue@@QAEXABVQString@@ABV1@ABV?$QFlags@W4PropertyFlag@QScriptValue@@@@@Z @ 178 NONAME ; void QScriptValue::setProperty(class QString const &, class QScriptValue const &, class QFlags const &) + ?atStatement@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HHH@Z @ 179 NONAME ; void QScriptEngineAgentPrivate::atStatement(class QTJSC::DebuggerCallFrame const &, int, int, int) + ?create@QScriptEngine@@AAE?AVQScriptValue@@HPBX@Z @ 180 NONAME ; class QScriptValue QScriptEngine::create(int, void const *) + ?toString@QScriptContext@@QBE?AVQString@@XZ @ 181 NONAME ; class QString QScriptContext::toString(void) const + ?newRegExp@QScriptEngine@@QAE?AVQScriptValue@@ABVQRegExp@@@Z @ 182 NONAME ; class QScriptValue QScriptEngine::newRegExp(class QRegExp const &) + ?property@QScriptValue@@QBE?AV1@ABVQScriptString@@ABV?$QFlags@W4ResolveFlag@QScriptValue@@@@@Z @ 183 NONAME ; class QScriptValue QScriptValue::property(class QScriptString const &, class QFlags const &) const + ?throwError@QScriptContext@@QAE?AVQScriptValue@@W4Error@1@ABVQString@@@Z @ 184 NONAME ; class QScriptValue QScriptContext::throwError(enum QScriptContext::Error, class QString const &) + ??0QScriptValue@@QAE@PAVQScriptEngine@@_N@Z @ 185 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, bool) + ?callEvent@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 186 NONAME ; void QScriptEngineAgentPrivate::callEvent(class QTJSC::DebuggerCallFrame const &, int, int) + ?contextPop@QScriptEngineAgent@@UAEXXZ @ 187 NONAME ; void QScriptEngineAgent::contextPop(void) + ??1QScriptExtensionPlugin@@UAE@XZ @ 188 NONAME ; QScriptExtensionPlugin::~QScriptExtensionPlugin(void) + ?uncaughtExceptionLineNumber@QScriptEngine@@QBEHXZ @ 189 NONAME ; int QScriptEngine::uncaughtExceptionLineNumber(void) const + ??8QScriptString@@QBE_NABV0@@Z @ 190 NONAME ; bool QScriptString::operator==(class QScriptString const &) const + ?newRegExp@QScriptEngine@@QAE?AVQScriptValue@@ABVQString@@0@Z @ 191 NONAME ; class QScriptValue QScriptEngine::newRegExp(class QString const &, class QString const &) + ?tr@QScriptEngine@@SA?AVQString@@PBD0@Z @ 192 NONAME ; class QString QScriptEngine::tr(char const *, char const *) + ??0QScriptContextInfo@@QAE@ABV0@@Z @ 193 NONAME ; QScriptContextInfo::QScriptContextInfo(class QScriptContextInfo const &) + ?popContext@QScriptEngine@@QAEXXZ @ 194 NONAME ; void QScriptEngine::popContext(void) + ??0QScriptClassPropertyIterator@@IAE@ABVQScriptValue@@@Z @ 195 NONAME ; QScriptClassPropertyIterator::QScriptClassPropertyIterator(class QScriptValue const &) + ?scriptLoad@QScriptEngineAgent@@UAEX_JABVQString@@1H@Z @ 196 NONAME ; void QScriptEngineAgent::scriptLoad(long long, class QString const &, class QString const &, int) + ??1QScriptClass@@UAE@XZ @ 197 NONAME ; QScriptClass::~QScriptClass(void) + ?attach@QScriptEngineAgentPrivate@@QAEXXZ @ 198 NONAME ; void QScriptEngineAgentPrivate::attach(void) + ?exception@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 199 NONAME ; void QScriptEngineAgentPrivate::exception(class QTJSC::DebuggerCallFrame const &, int, int) + ?processEventsInterval@QScriptEngine@@QBEHXZ @ 200 NONAME ; int QScriptEngine::processEventsInterval(void) const + ??0QScriptContextInfo@@QAE@PBVQScriptContext@@@Z @ 201 NONAME ; QScriptContextInfo::QScriptContextInfo(class QScriptContext const *) + ?newIterator@QScriptClass@@UAEPAVQScriptClassPropertyIterator@@ABVQScriptValue@@@Z @ 202 NONAME ; class QScriptClassPropertyIterator * QScriptClass::newIterator(class QScriptValue const &) + ?name@QScriptValueIterator@@QBE?AVQString@@XZ @ 203 NONAME ; class QString QScriptValueIterator::name(void) const + ?tr@QScriptExtensionPlugin@@SA?AVQString@@PBD0H@Z @ 204 NONAME ; class QString QScriptExtensionPlugin::tr(char const *, char const *, int) + ?scriptClass@QScriptValue@@QBEPAVQScriptClass@@XZ @ 205 NONAME ; class QScriptClass * QScriptValue::scriptClass(void) const + ??0QScriptValue@@QAE@W4SpecialValue@0@@Z @ 206 NONAME ; QScriptValue::QScriptValue(enum QScriptValue::SpecialValue) + ?toFront@QScriptValueIterator@@QAEXXZ @ 207 NONAME ; void QScriptValueIterator::toFront(void) + ??0QScriptEngineAgent@@IAE@AAVQScriptEngineAgentPrivate@@PAVQScriptEngine@@@Z @ 208 NONAME ; QScriptEngineAgent::QScriptEngineAgent(class QScriptEngineAgentPrivate &, class QScriptEngine *) + ?toUInt32@QScriptValue@@QBEIXZ @ 209 NONAME ; unsigned int QScriptValue::toUInt32(void) const + ?d_func@QScriptContext@@ABEPBVQScriptContextPrivate@@XZ @ 210 NONAME ; class QScriptContextPrivate const * QScriptContext::d_func(void) const + ?isArray@QScriptValue@@QBE_NXZ @ 211 NONAME ; bool QScriptValue::isArray(void) const + ?scriptLoad@QScriptEngineAgentPrivate@@UAEX_JABVUString@QTJSC@@1H@Z @ 212 NONAME ; void QScriptEngineAgentPrivate::scriptLoad(long long, class QTJSC::UString const &, class QTJSC::UString const &, int) + ?engine@QScriptEngineAgent@@QBEPAVQScriptEngine@@XZ @ 213 NONAME ; class QScriptEngine * QScriptEngineAgent::engine(void) const + ?newVariant@QScriptEngine@@QAE?AVQScriptValue@@ABV2@ABVQVariant@@@Z @ 214 NONAME ; class QScriptValue QScriptEngine::newVariant(class QScriptValue const &, class QVariant const &) + ?setProperty@QScriptValue@@QAEXIABV1@ABV?$QFlags@W4PropertyFlag@QScriptValue@@@@@Z @ 215 NONAME ; void QScriptValue::setProperty(unsigned int, class QScriptValue const &, class QFlags const &) + ?property@QScriptValue@@QBE?AV1@IABV?$QFlags@W4ResolveFlag@QScriptValue@@@@@Z @ 216 NONAME ; class QScriptValue QScriptValue::property(unsigned int, class QFlags const &) const + ?tr@QScriptEngine@@SA?AVQString@@PBD0H@Z @ 217 NONAME ; class QString QScriptEngine::tr(char const *, char const *, int) + ?d_func@QScriptable@@AAEPAVQScriptablePrivate@@XZ @ 218 NONAME ; class QScriptablePrivate * QScriptable::d_func(void) + ?exceptionCatch@QScriptEngineAgent@@UAEX_JABVQScriptValue@@@Z @ 219 NONAME ; void QScriptEngineAgent::exceptionCatch(long long, class QScriptValue const &) + ?toBoolean@QScriptValue@@QBE_NXZ @ 220 NONAME ; bool QScriptValue::toBoolean(void) const + ??0QScriptValue@@QAE@H@Z @ 221 NONAME ; QScriptValue::QScriptValue(int) + ?extension@QScriptEngineAgent@@UAE?AVQVariant@@W4Extension@1@ABV2@@Z @ 222 NONAME ; class QVariant QScriptEngineAgent::extension(enum QScriptEngineAgent::Extension, class QVariant const &) + ?thisObject@QScriptable@@QBE?AVQScriptValue@@XZ @ 223 NONAME ; class QScriptValue QScriptable::thisObject(void) const + ?setProcessEventsInterval@QScriptEngine@@QAEXH@Z @ 224 NONAME ; void QScriptEngine::setProcessEventsInterval(int) + ?newFunction@QScriptEngine@@QAE?AVQScriptValue@@P6A?AV2@PAVQScriptContext@@PAV1@@ZH@Z @ 225 NONAME ; class QScriptValue QScriptEngine::newFunction(class QScriptValue (*)(class QScriptContext *, class QScriptEngine *), int) + ?d_func@QScriptClassPropertyIterator@@ABEPBVQScriptClassPropertyIteratorPrivate@@XZ @ 226 NONAME ; class QScriptClassPropertyIteratorPrivate const * QScriptClassPropertyIterator::d_func(void) const + ?trUtf8@QScriptExtensionPlugin@@SA?AVQString@@PBD0@Z @ 227 NONAME ; class QString QScriptExtensionPlugin::trUtf8(char const *, char const *) + ??0QScriptSyntaxCheckResult@@QAE@ABV0@@Z @ 228 NONAME ; QScriptSyntaxCheckResult::QScriptSyntaxCheckResult(class QScriptSyntaxCheckResult const &) + ?newQObject@QScriptEngine@@QAE?AVQScriptValue@@PAVQObject@@W4ValueOwnership@1@ABV?$QFlags@W4QObjectWrapOption@QScriptEngine@@@@@Z @ 229 NONAME ; class QScriptValue QScriptEngine::newQObject(class QObject *, enum QScriptEngine::ValueOwnership, class QFlags const &) + ?d_func@QScriptContextInfo@@AAEPAVQScriptContextInfoPrivate@@XZ @ 230 NONAME ; class QScriptContextInfoPrivate * QScriptContextInfo::d_func(void) + ?isCalledAsConstructor@QScriptContext@@QBE_NXZ @ 231 NONAME ; bool QScriptContext::isCalledAsConstructor(void) const + ?isQMetaObject@QScriptValue@@QBE_NXZ @ 232 NONAME ; bool QScriptValue::isQMetaObject(void) const + ?toVariant@QScriptValue@@QBE?AVQVariant@@XZ @ 233 NONAME ; class QVariant QScriptValue::toVariant(void) const + ?supportsExtension@QScriptEngineAgent@@UBE_NW4Extension@1@@Z @ 234 NONAME ; bool QScriptEngineAgent::supportsExtension(enum QScriptEngineAgent::Extension) const + ?state@QScriptSyntaxCheckResult@@QBE?AW4State@1@XZ @ 235 NONAME ; enum QScriptSyntaxCheckResult::State QScriptSyntaxCheckResult::state(void) const + ?isEvaluating@QScriptEngine@@QBE_NXZ @ 236 NONAME ; bool QScriptEngine::isEvaluating(void) const + ?setScriptClass@QScriptValue@@QAEXPAVQScriptClass@@@Z @ 237 NONAME ; void QScriptValue::setScriptClass(class QScriptClass *) + ?convertV2@QScriptEngine@@CA_NABVQScriptValue@@HPAX@Z @ 238 NONAME ; bool QScriptEngine::convertV2(class QScriptValue const &, int, void *) + ?d_func@QScriptString@@ABEPBVQScriptStringPrivate@@XZ @ 239 NONAME ; class QScriptStringPrivate const * QScriptString::d_func(void) const + ??1QScriptEngineAgent@@UAE@XZ @ 240 NONAME ; QScriptEngineAgent::~QScriptEngineAgent(void) + ??1QScriptEngine@@UAE@XZ @ 241 NONAME ; QScriptEngine::~QScriptEngine(void) + ?newObject@QScriptEngine@@QAE?AVQScriptValue@@XZ @ 242 NONAME ; class QScriptValue QScriptEngine::newObject(void) + ?availableExtensions@QScriptEngine@@QBE?AVQStringList@@XZ @ 243 NONAME ; class QStringList QScriptEngine::availableExtensions(void) const + ?canEvaluate@QScriptEngine@@QBE_NABVQString@@@Z @ 244 NONAME ; bool QScriptEngine::canEvaluate(class QString const &) const + ?tr@QScriptExtensionPlugin@@SA?AVQString@@PBD0@Z @ 245 NONAME ; class QString QScriptExtensionPlugin::tr(char const *, char const *) + ?call@QScriptValue@@QAE?AV1@ABV1@ABV?$QList@VQScriptValue@@@@@Z @ 246 NONAME ; class QScriptValue QScriptValue::call(class QScriptValue const &, class QList const &) + ??_EQScriptValue@@QAE@I@Z @ 247 NONAME ; QScriptValue::~QScriptValue(unsigned int) + ??0QScriptEngine@@IAE@AAVQScriptEnginePrivate@@PAVQObject@@@Z @ 248 NONAME ; QScriptEngine::QScriptEngine(class QScriptEnginePrivate &, class QObject *) + ??0QScriptClass@@QAE@PAVQScriptEngine@@@Z @ 249 NONAME ; QScriptClass::QScriptClass(class QScriptEngine *) + ??4QScriptString@@QAEAAV0@ABV0@@Z @ 250 NONAME ; class QScriptString & QScriptString::operator=(class QScriptString const &) + ??0QScriptEngine@@QAE@PAVQObject@@@Z @ 251 NONAME ; QScriptEngine::QScriptEngine(class QObject *) + ??_EQScriptClassPropertyIterator@@UAE@I@Z @ 252 NONAME ; QScriptClassPropertyIterator::~QScriptClassPropertyIterator(unsigned int) + ?willExecuteProgram@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 253 NONAME ; void QScriptEngineAgentPrivate::willExecuteProgram(class QTJSC::DebuggerCallFrame const &, int, int) + ?supportsExtension@QScriptClass@@UBE_NW4Extension@1@@Z @ 254 NONAME ; bool QScriptClass::supportsExtension(enum QScriptClass::Extension) const + ?didExecuteProgram@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 255 NONAME ; void QScriptEngineAgentPrivate::didExecuteProgram(class QTJSC::DebuggerCallFrame const &, int, int) + ?q_func@QScriptEngineAgentPrivate@@AAEPAVQScriptEngineAgent@@XZ @ 256 NONAME ; class QScriptEngineAgent * QScriptEngineAgentPrivate::q_func(void) + ?isError@QScriptValue@@QBE_NXZ @ 257 NONAME ; bool QScriptValue::isError(void) const + ?newFunction@QScriptEngine@@QAE?AVQScriptValue@@P6A?AV2@PAVQScriptContext@@PAV1@@ZABV2@H@Z @ 258 NONAME ; class QScriptValue QScriptEngine::newFunction(class QScriptValue (*)(class QScriptContext *, class QScriptEngine *), class QScriptValue const &, int) + ?nullValue@QScriptEngine@@QAE?AVQScriptValue@@XZ @ 259 NONAME ; class QScriptValue QScriptEngine::nullValue(void) + ?data@QScriptValue@@QBE?AV1@XZ @ 260 NONAME ; class QScriptValue QScriptValue::data(void) const + ?hasPrevious@QScriptValueIterator@@QBE_NXZ @ 261 NONAME ; bool QScriptValueIterator::hasPrevious(void) const + ?throwValue@QScriptContext@@QAE?AVQScriptValue@@ABV2@@Z @ 262 NONAME ; class QScriptValue QScriptContext::throwValue(class QScriptValue const &) + ?globalObject@QScriptEngine@@QBE?AVQScriptValue@@XZ @ 263 NONAME ; class QScriptValue QScriptEngine::globalObject(void) const + ?setScope@QScriptValue@@QAEXABV1@@Z @ 264 NONAME ; void QScriptValue::setScope(class QScriptValue const &) + ??6@YAAAVQDataStream@@AAV0@ABVQScriptContextInfo@@@Z @ 265 NONAME ; class QDataStream & operator<<(class QDataStream &, class QScriptContextInfo const &) + ?returnValue@QScriptContext@@QBE?AVQScriptValue@@XZ @ 266 NONAME ; class QScriptValue QScriptContext::returnValue(void) const + ?currentContext@QScriptEngine@@QBEPAVQScriptContext@@XZ @ 267 NONAME ; class QScriptContext * QScriptEngine::currentContext(void) const + ?newQMetaObject@QScriptEngine@@QAE?AVQScriptValue@@PBUQMetaObject@@ABV2@@Z @ 268 NONAME ; class QScriptValue QScriptEngine::newQMetaObject(struct QMetaObject const *, class QScriptValue const &) + ?staticMetaObject@QScriptEngine@@2UQMetaObject@@B @ 269 NONAME ; struct QMetaObject const QScriptEngine::staticMetaObject + ?toRegExp@QScriptValue@@QBE?AVQRegExp@@XZ @ 270 NONAME ; class QRegExp QScriptValue::toRegExp(void) const + ?clearExceptions@QScriptEngine@@QAEXXZ @ 271 NONAME ; void QScriptEngine::clearExceptions(void) + ??0QScriptValue@@AAE@PAVQScriptValuePrivate@@@Z @ 272 NONAME ; QScriptValue::QScriptValue(class QScriptValuePrivate *) + ??BQScriptString@@QBE?AVQString@@XZ @ 273 NONAME ; QScriptString::operator class QString(void) const + ?newVariant@QScriptEngine@@QAE?AVQScriptValue@@ABVQVariant@@@Z @ 274 NONAME ; class QScriptValue QScriptEngine::newVariant(class QVariant const &) + ?d_func@QScriptValue@@ABEPBVQScriptValuePrivate@@XZ @ 275 NONAME ; class QScriptValuePrivate const * QScriptValue::d_func(void) const + ?hasUncaughtException@QScriptEngine@@QBE_NXZ @ 276 NONAME ; bool QScriptEngine::hasUncaughtException(void) const + ?uncaughtExceptionBacktrace@QScriptEngine@@QBE?AVQStringList@@XZ @ 277 NONAME ; class QStringList QScriptEngine::uncaughtExceptionBacktrace(void) const + ??5@YAAAVQDataStream@@AAV0@AAVQScriptContextInfo@@@Z @ 278 NONAME ; class QDataStream & operator>>(class QDataStream &, class QScriptContextInfo &) + ?importedExtensions@QScriptEngine@@QBE?AVQStringList@@XZ @ 279 NONAME ; class QStringList QScriptEngine::importedExtensions(void) const + ??_EQScriptEngineAgent@@UAE@I@Z @ 280 NONAME ; QScriptEngineAgent::~QScriptEngineAgent(unsigned int) + ?functionStartLineNumber@QScriptContextInfo@@QBEHXZ @ 281 NONAME ; int QScriptContextInfo::functionStartLineNumber(void) const + ?propertyFlags@QScriptValue@@QBE?AV?$QFlags@W4PropertyFlag@QScriptValue@@@@ABVQScriptString@@ABV?$QFlags@W4ResolveFlag@QScriptValue@@@@@Z @ 282 NONAME ; class QFlags QScriptValue::propertyFlags(class QScriptString const &, class QFlags const &) const + ?queryProperty@QScriptClass@@UAE?AV?$QFlags@W4QueryFlag@QScriptClass@@@@ABVQScriptValue@@ABVQScriptString@@V2@PAI@Z @ 283 NONAME ; class QFlags QScriptClass::queryProperty(class QScriptValue const &, class QScriptString const &, class QFlags, unsigned int *) + ?remove@QScriptValueIterator@@QAEXXZ @ 284 NONAME ; void QScriptValueIterator::remove(void) + ?property@QScriptValue@@QBE?AV1@ABVQString@@ABV?$QFlags@W4ResolveFlag@QScriptValue@@@@@Z @ 285 NONAME ; class QScriptValue QScriptValue::property(class QString const &, class QFlags const &) const + ?thisObject@QScriptContext@@QBE?AVQScriptValue@@XZ @ 286 NONAME ; class QScriptValue QScriptContext::thisObject(void) const + ?callee@QScriptContext@@QBE?AVQScriptValue@@XZ @ 287 NONAME ; class QScriptValue QScriptContext::callee(void) const + ?isValid@QScriptValue@@QBE_NXZ @ 288 NONAME ; bool QScriptValue::isValid(void) const + ?d_func@QScriptClass@@AAEPAVQScriptClassPrivate@@XZ @ 289 NONAME ; class QScriptClassPrivate * QScriptClass::d_func(void) + ??0QScriptString@@QAE@ABV0@@Z @ 290 NONAME ; QScriptString::QScriptString(class QScriptString const &) + ??0QScriptValue@@QAE@N@Z @ 291 NONAME ; QScriptValue::QScriptValue(double) + ?positionChange@QScriptEngineAgent@@UAEX_JHH@Z @ 292 NONAME ; void QScriptEngineAgent::positionChange(long long, int, int) + ?getStaticMetaObject@QScriptExtensionPlugin@@SAABUQMetaObject@@XZ @ 293 NONAME ; struct QMetaObject const & QScriptExtensionPlugin::getStaticMetaObject(void) + ?newFunction@QScriptEngine@@QAE?AVQScriptValue@@P6A?AV2@PAVQScriptContext@@PAV1@PAX@Z2@Z @ 294 NONAME ; class QScriptValue QScriptEngine::newFunction(class QScriptValue (*)(class QScriptContext *, class QScriptEngine *, void *), void *) + ??_EQScriptExtensionInterface@@UAE@I@Z @ 295 NONAME ; QScriptExtensionInterface::~QScriptExtensionInterface(unsigned int) + ?isFunction@QScriptValue@@QBE_NXZ @ 296 NONAME ; bool QScriptValue::isFunction(void) const + ?popScope@QScriptContext@@QAE?AVQScriptValue@@XZ @ 297 NONAME ; class QScriptValue QScriptContext::popScope(void) + ??0QScriptValue@@QAE@ABVQString@@@Z @ 298 NONAME ; QScriptValue::QScriptValue(class QString const &) + ?d_func@QScriptEngine@@ABEPBVQScriptEnginePrivate@@XZ @ 299 NONAME ; class QScriptEnginePrivate const * QScriptEngine::d_func(void) const + ??0QScriptValue@@QAE@I@Z @ 300 NONAME ; QScriptValue::QScriptValue(unsigned int) + ?evaluateStart@QScriptEngineAgentPrivate@@UAEXH@Z @ 301 NONAME ; void QScriptEngineAgentPrivate::evaluateStart(int) + ?argumentCount@QScriptable@@QBEHXZ @ 302 NONAME ; int QScriptable::argumentCount(void) const + ?metaObject@QScriptEngine@@UBEPBUQMetaObject@@XZ @ 303 NONAME ; struct QMetaObject const * QScriptEngine::metaObject(void) const + ?functionEndLineNumber@QScriptContextInfo@@QBEHXZ @ 304 NONAME ; int QScriptContextInfo::functionEndLineNumber(void) const + ?installTranslatorFunctions@QScriptEngine@@QAEXABVQScriptValue@@@Z @ 305 NONAME ; void QScriptEngine::installTranslatorFunctions(class QScriptValue const &) + ?scope@QScriptValue@@QBE?AV1@XZ @ 306 NONAME ; class QScriptValue QScriptValue::scope(void) const + ?isBool@QScriptValue@@QBE_NXZ @ 307 NONAME ; bool QScriptValue::isBool(void) const + ?checkSyntax@QScriptEngine@@SA?AVQScriptSyntaxCheckResult@@ABVQString@@@Z @ 308 NONAME ; class QScriptSyntaxCheckResult QScriptEngine::checkSyntax(class QString const &) + ?object@QScriptClassPropertyIterator@@QBE?AVQScriptValue@@XZ @ 309 NONAME ; class QScriptValue QScriptClassPropertyIterator::object(void) const + ??4QScriptSyntaxCheckResult@@QAEAAV0@ABV0@@Z @ 310 NONAME ; class QScriptSyntaxCheckResult & QScriptSyntaxCheckResult::operator=(class QScriptSyntaxCheckResult const &) + ?d_func@QScriptString@@AAEPAVQScriptStringPrivate@@XZ @ 311 NONAME ; class QScriptStringPrivate * QScriptString::d_func(void) + ?isDate@QScriptValue@@QBE_NXZ @ 312 NONAME ; bool QScriptValue::isDate(void) const + ??4QScriptValueIterator@@QAEAAV0@AAVQScriptValue@@@Z @ 313 NONAME ; class QScriptValueIterator & QScriptValueIterator::operator=(class QScriptValue &) + ?contextPush@QScriptEngineAgent@@UAEXXZ @ 314 NONAME ; void QScriptEngineAgent::contextPush(void) + ??0QScriptValue@@QAE@PAVQScriptEngine@@H@Z @ 315 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, int) + ?importExtension@QScriptEngine@@QAE?AVQScriptValue@@ABVQString@@@Z @ 316 NONAME ; class QScriptValue QScriptEngine::importExtension(class QString const &) + ??0QScriptValue@@QAE@PAVQScriptEngine@@ABVQString@@@Z @ 317 NONAME ; QScriptValue::QScriptValue(class QScriptEngine *, class QString const &) + ?newActivationObject@QScriptEngine@@QAE?AVQScriptValue@@XZ @ 318 NONAME ; class QScriptValue QScriptEngine::newActivationObject(void) + ?d_func@QScriptValueIterator@@ABEPBVQScriptValueIteratorPrivate@@XZ @ 319 NONAME ; class QScriptValueIteratorPrivate const * QScriptValueIterator::d_func(void) const + ?d_func@QScriptContextInfo@@ABEPBVQScriptContextInfoPrivate@@XZ @ 320 NONAME ; class QScriptContextInfoPrivate const * QScriptContextInfo::d_func(void) const + ?functionEntry@QScriptEngineAgent@@UAEX_J@Z @ 321 NONAME ; void QScriptEngineAgent::functionEntry(long long) + ?strictlyEquals@QScriptValue@@QBE_NABV1@@Z @ 322 NONAME ; bool QScriptValue::strictlyEquals(class QScriptValue const &) const + ?d_func@QScriptable@@ABEPBVQScriptablePrivate@@XZ @ 323 NONAME ; class QScriptablePrivate const * QScriptable::d_func(void) const + ?objectId@QScriptValue@@QBE_JXZ @ 324 NONAME ; long long QScriptValue::objectId(void) const + ??0QScriptExtensionPlugin@@QAE@PAVQObject@@@Z @ 325 NONAME ; QScriptExtensionPlugin::QScriptExtensionPlugin(class QObject *) + ?d_func@QScriptSyntaxCheckResult@@ABEPBVQScriptSyntaxCheckResultPrivate@@XZ @ 326 NONAME ; class QScriptSyntaxCheckResultPrivate const * QScriptSyntaxCheckResult::d_func(void) const + ?functionMetaIndex@QScriptContextInfo@@QBEHXZ @ 327 NONAME ; int QScriptContextInfo::functionMetaIndex(void) const + ?columnNumber@QScriptContextInfo@@QBEHXZ @ 328 NONAME ; int QScriptContextInfo::columnNumber(void) const + ??0QScriptValue@@QAE@_N@Z @ 329 NONAME ; QScriptValue::QScriptValue(bool) + diff --git a/src/s60installs/bwins/QtSqlu.def b/src/s60installs/bwins/QtSqlu.def new file mode 100644 index 0000000..e8af0ba --- /dev/null +++ b/src/s60installs/bwins/QtSqlu.def @@ -0,0 +1,464 @@ +EXPORTS + ?setName@QSqlField@@QAEXABVQString@@@Z @ 1 NONAME ; void QSqlField::setName(class QString const &) + ?qt_metacall@QSqlQueryModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int QSqlQueryModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isDescending@QSqlIndex@@QBE_NH@Z @ 3 NONAME ; bool QSqlIndex::isDescending(int) const + ?staticMetaObject@QSqlQueryModel@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const QSqlQueryModel::staticMetaObject + ?isOpen@QSqlDriver@@UBE_NXZ @ 5 NONAME ; bool QSqlDriver::isOpen(void) const + ?unsubscribeFromNotificationImplementation@QSqlDriver@@IAE_NABVQString@@@Z @ 6 NONAME ; bool QSqlDriver::unsubscribeFromNotificationImplementation(class QString const &) + ?fetchNext@QSqlCachedResult@@MAE_NXZ @ 7 NONAME ; bool QSqlCachedResult::fetchNext(void) + ?close@QSQLiteDriver@@UAEXXZ @ 8 NONAME ; void QSQLiteDriver::close(void) + ??0QSqlTableModel@@IAE@AAVQSqlTableModelPrivate@@PAVQObject@@VQSqlDatabase@@@Z @ 9 NONAME ; QSqlTableModel::QSqlTableModel(class QSqlTableModelPrivate &, class QObject *, class QSqlDatabase) + ?setData@QSqlTableModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 10 NONAME ; bool QSqlTableModel::setData(class QModelIndex const &, class QVariant const &, int) + ?defaultValue@QSqlField@@QBE?AVQVariant@@XZ @ 11 NONAME ; class QVariant QSqlField::defaultValue(void) const + ?open@QSqlDatabase@@QAE_NABVQString@@0@Z @ 12 NONAME ; bool QSqlDatabase::open(class QString const &, class QString const &) + ?numericalPrecisionPolicy@QSqlDatabase@@QBE?AW4NumericalPrecisionPolicy@QSql@@XZ @ 13 NONAME ; enum QSql::NumericalPrecisionPolicy QSqlDatabase::numericalPrecisionPolicy(void) const + ?indexOf@QSqlRecord@@QBEHABVQString@@@Z @ 14 NONAME ; int QSqlRecord::indexOf(class QString const &) const + ??0QSqlDatabase@@IAE@PAVQSqlDriver@@@Z @ 15 NONAME ; QSqlDatabase::QSqlDatabase(class QSqlDriver *) + ?isGenerated@QSqlField@@QBE_NXZ @ 16 NONAME ; bool QSqlField::isGenerated(void) const + ?subscribedToNotifications@QSqlDriver@@QBE?AVQStringList@@XZ @ 17 NONAME ; class QStringList QSqlDriver::subscribedToNotifications(void) const + ?size@QSqlQuery@@QBEHXZ @ 18 NONAME ; int QSqlQuery::size(void) const + ?exec@QSqlQuery@@QAE_NABVQString@@@Z @ 19 NONAME ; bool QSqlQuery::exec(class QString const &) + ?selectStatement@QSqlRelationalTableModel@@MBE?AVQString@@XZ @ 20 NONAME ; class QString QSqlRelationalTableModel::selectStatement(void) const + ??1QSqlError@@QAE@XZ @ 21 NONAME ; QSqlError::~QSqlError(void) + ??1QSqlDriverPlugin@@UAE@XZ @ 22 NONAME ; QSqlDriverPlugin::~QSqlDriverPlugin(void) + ?transaction@QSqlDatabase@@QAE_NXZ @ 23 NONAME ; bool QSqlDatabase::transaction(void) + ?tableName@QSqlRelation@@QBE?AVQString@@XZ @ 24 NONAME ; class QString QSqlRelation::tableName(void) const + ?clear@QSqlQueryModel@@UAEXXZ @ 25 NONAME ; void QSqlQueryModel::clear(void) + ?staticMetaObject@QSqlDriverPlugin@@2UQMetaObject@@B @ 26 NONAME ; struct QMetaObject const QSqlDriverPlugin::staticMetaObject + ?virtual_hook@QSqlResult@@MAEXHPAX@Z @ 27 NONAME ; void QSqlResult::virtual_hook(int, void *) + ?revertAll@QSqlTableModel@@QAEXXZ @ 28 NONAME ; void QSqlTableModel::revertAll(void) + ?d_func@QSqlDriver@@AAEPAVQSqlDriverPrivate@@XZ @ 29 NONAME ; class QSqlDriverPrivate * QSqlDriver::d_func(void) + ?primaryKey@QSqlTableModel@@QBE?AVQSqlIndex@@XZ @ 30 NONAME ; class QSqlIndex QSqlTableModel::primaryKey(void) const + ?numRowsAffected@QSqlQuery@@QBEHXZ @ 31 NONAME ; int QSqlQuery::numRowsAffected(void) const + ?database@QSqlTableModel@@QBE?AVQSqlDatabase@@XZ @ 32 NONAME ; class QSqlDatabase QSqlTableModel::database(void) const + ?beginTransaction@QSqlDriver@@UAE_NXZ @ 33 NONAME ; bool QSqlDriver::beginTransaction(void) + ??0QSqlResult@@IAE@PBVQSqlDriver@@@Z @ 34 NONAME ; QSqlResult::QSqlResult(class QSqlDriver const *) + ??4QSqlField@@QAEAAV0@ABV0@@Z @ 35 NONAME ; class QSqlField & QSqlField::operator=(class QSqlField const &) + ??0QSqlDatabase@@QAE@XZ @ 36 NONAME ; QSqlDatabase::QSqlDatabase(void) + ?indexInQuery@QSqlQueryModel@@IBE?AVQModelIndex@@ABV2@@Z @ 37 NONAME ; class QModelIndex QSqlQueryModel::indexInQuery(class QModelIndex const &) const + ?data@QSqlTableModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 38 NONAME ; class QVariant QSqlTableModel::data(class QModelIndex const &, int) const + ?value@QSqlField@@QBE?AVQVariant@@XZ @ 39 NONAME ; class QVariant QSqlField::value(void) const + ?metaObject@QSqlDriver@@UBEPBUQMetaObject@@XZ @ 40 NONAME ; struct QMetaObject const * QSqlDriver::metaObject(void) const + ?driver@QSqlResult@@IBEPBVQSqlDriver@@XZ @ 41 NONAME ; class QSqlDriver const * QSqlResult::driver(void) const + ?setHostName@QSqlDatabase@@QAEXABVQString@@@Z @ 42 NONAME ; void QSqlDatabase::setHostName(class QString const &) + ?prepare@QSqlQuery@@QAE_NABVQString@@@Z @ 43 NONAME ; bool QSqlQuery::prepare(class QString const &) + ?connectionName@QSqlDatabase@@QBE?AVQString@@XZ @ 44 NONAME ; class QString QSqlDatabase::connectionName(void) const + ?exec@QSqlQuery@@QAE_NXZ @ 45 NONAME ; bool QSqlQuery::exec(void) + ?trUtf8@QSQLiteDriver@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString QSQLiteDriver::trUtf8(char const *, char const *) + ?setPassword@QSqlDatabase@@QAEXABVQString@@@Z @ 47 NONAME ; void QSqlDatabase::setPassword(class QString const &) + ?qt_metacast@QSqlQueryModel@@UAEPAXPBD@Z @ 48 NONAME ; void * QSqlQueryModel::qt_metacast(char const *) + ?boundValues@QSqlQuery@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 49 NONAME ; class QMap QSqlQuery::boundValues(void) const + ?primaryIndex@QSqlDriver@@UBE?AVQSqlIndex@@ABVQString@@@Z @ 50 NONAME ; class QSqlIndex QSqlDriver::primaryIndex(class QString const &) const + ?drivers@QSqlDatabase@@SA?AVQStringList@@XZ @ 51 NONAME ; class QStringList QSqlDatabase::drivers(void) + ?commit@QSqlDatabase@@QAE_NXZ @ 52 NONAME ; bool QSqlDatabase::commit(void) + ??1QSqlQueryModel@@UAE@XZ @ 53 NONAME ; QSqlQueryModel::~QSqlQueryModel(void) + ?setRequired@QSqlField@@QAEX_N@Z @ 54 NONAME ; void QSqlField::setRequired(bool) + ?colCount@QSqlCachedResult@@IBEHXZ @ 55 NONAME ; int QSqlCachedResult::colCount(void) const + ?bindValue@QSqlResult@@MAEXHABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 56 NONAME ; void QSqlResult::bindValue(int, class QVariant const &, class QFlags) + ?insert@QSqlRecord@@QAEXHABVQSqlField@@@Z @ 57 NONAME ; void QSqlRecord::insert(int, class QSqlField const &) + ??4QSqlDatabase@@QAEAAV0@ABV0@@Z @ 58 NONAME ; class QSqlDatabase & QSqlDatabase::operator=(class QSqlDatabase const &) + ?setGenerated@QSqlRecord@@QAEXH_N@Z @ 59 NONAME ; void QSqlRecord::setGenerated(int, bool) + ?isValid@QSqlError@@QBE_NXZ @ 60 NONAME ; bool QSqlError::isValid(void) const + ?boundValues@QSqlResult@@IBEAAV?$QVector@VQVariant@@@@XZ @ 61 NONAME ; class QVector & QSqlResult::boundValues(void) const + ??1QSqlRelationalTableModel@@UAE@XZ @ 62 NONAME ; QSqlRelationalTableModel::~QSqlRelationalTableModel(void) + ?insertRowIntoTable@QSqlTableModel@@MAE_NABVQSqlRecord@@@Z @ 63 NONAME ; bool QSqlTableModel::insertRowIntoTable(class QSqlRecord const &) + ?staticMetaObject@QSQLiteDriver@@2UQMetaObject@@B @ 64 NONAME ; struct QMetaObject const QSQLiteDriver::staticMetaObject + ?qt_metacast@QSqlDriver@@UAEPAXPBD@Z @ 65 NONAME ; void * QSqlDriver::qt_metacast(char const *) + ?name@QSqlField@@QBE?AVQString@@XZ @ 66 NONAME ; class QString QSqlField::name(void) const + ??1QSqlResult@@UAE@XZ @ 67 NONAME ; QSqlResult::~QSqlResult(void) + ??4QSqlRecord@@QAEAAV0@ABV0@@Z @ 68 NONAME ; class QSqlRecord & QSqlRecord::operator=(class QSqlRecord const &) + ?setForwardOnly@QSqlResult@@MAEX_N@Z @ 69 NONAME ; void QSqlResult::setForwardOnly(bool) + ?select@QSqlRelationalTableModel@@UAE_NXZ @ 70 NONAME ; bool QSqlRelationalTableModel::select(void) + ?lastError@QSqlQueryModel@@QBE?AVQSqlError@@XZ @ 71 NONAME ; class QSqlError QSqlQueryModel::lastError(void) const + ?isReadOnly@QSqlField@@QBE_NXZ @ 72 NONAME ; bool QSqlField::isReadOnly(void) const + ?setNumericalPrecisionPolicy@QSqlDriver@@QAEXW4NumericalPrecisionPolicy@QSql@@@Z @ 73 NONAME ; void QSqlDriver::setNumericalPrecisionPolicy(enum QSql::NumericalPrecisionPolicy) + ?setEditStrategy@QSqlTableModel@@UAEXW4EditStrategy@1@@Z @ 74 NONAME ; void QSqlTableModel::setEditStrategy(enum QSqlTableModel::EditStrategy) + ?displayColumn@QSqlRelation@@QBE?AVQString@@XZ @ 75 NONAME ; class QString QSqlRelation::displayColumn(void) const + ?canFetchMore@QSqlQueryModel@@UBE_NABVQModelIndex@@@Z @ 76 NONAME ; bool QSqlQueryModel::canFetchMore(class QModelIndex const &) const + ?result@QSqlQuery@@QBEPBVQSqlResult@@XZ @ 77 NONAME ; class QSqlResult const * QSqlQuery::result(void) const + ?tableName@QSqlTableModel@@QBE?AVQString@@XZ @ 78 NONAME ; class QString QSqlTableModel::tableName(void) const + ?isIdentifierEscaped@QSqlDriver@@QBE_NABVQString@@W4IdentifierType@1@@Z @ 79 NONAME ; bool QSqlDriver::isIdentifierEscaped(class QString const &, enum QSqlDriver::IdentifierType) const + ?at@QSqlResult@@IBEHXZ @ 80 NONAME ; int QSqlResult::at(void) const + ??_EQSqlDriverFactoryInterface@@UAE@I@Z @ 81 NONAME ; QSqlDriverFactoryInterface::~QSqlDriverFactoryInterface(unsigned int) + ?nextResult@QSqlResult@@IAE_NXZ @ 82 NONAME ; bool QSqlResult::nextResult(void) + ?isNull@QSqlQuery@@QBE_NH@Z @ 83 NONAME ; bool QSqlQuery::isNull(int) const + ?field@QSqlRecord@@QBE?AVQSqlField@@H@Z @ 84 NONAME ; class QSqlField QSqlRecord::field(int) const + ??6@YA?AVQDebug@@V0@ABVQSqlField@@@Z @ 85 NONAME ; class QDebug operator<<(class QDebug, class QSqlField const &) + ?subscribeToNotification@QSqlDriver@@QAE_NABVQString@@@Z @ 86 NONAME ; bool QSqlDriver::subscribeToNotification(class QString const &) + ?escapeIdentifier@QSQLiteDriver@@UBE?AVQString@@ABV2@W4IdentifierType@QSqlDriver@@@Z @ 87 NONAME ; class QString QSQLiteDriver::escapeIdentifier(class QString const &, enum QSqlDriver::IdentifierType) const + ?qt_metacast@QSQLiteDriver@@UAEPAXPBD@Z @ 88 NONAME ; void * QSQLiteDriver::qt_metacast(char const *) + ??6@YA?AVQDebug@@V0@ABVQSqlRecord@@@Z @ 89 NONAME ; class QDebug operator<<(class QDebug, class QSqlRecord const &) + ??_EQSQLiteDriver@@UAE@I@Z @ 90 NONAME ; QSQLiteDriver::~QSQLiteDriver(unsigned int) + ?trUtf8@QSqlTableModel@@SA?AVQString@@PBD0@Z @ 91 NONAME ; class QString QSqlTableModel::trUtf8(char const *, char const *) + ?setValue@QSqlRecord@@QAEXABVQString@@ABVQVariant@@@Z @ 92 NONAME ; void QSqlRecord::setValue(class QString const &, class QVariant const &) + ??0QSqlRecord@@QAE@XZ @ 93 NONAME ; QSqlRecord::QSqlRecord(void) + ?rowCount@QSqlTableModel@@UBEHABVQModelIndex@@@Z @ 94 NONAME ; int QSqlTableModel::rowCount(class QModelIndex const &) const + ?notification@QSqlDriver@@IAEXABVQString@@@Z @ 95 NONAME ; void QSqlDriver::notification(class QString const &) + ?flags@QSqlTableModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 96 NONAME ; class QFlags QSqlTableModel::flags(class QModelIndex const &) const + ?setQuery@QSqlTableModel@@IAEXABVQSqlQuery@@@Z @ 97 NONAME ; void QSqlTableModel::setQuery(class QSqlQuery const &) + ?qt_metacast@QSqlRelationalTableModel@@UAEPAXPBD@Z @ 98 NONAME ; void * QSqlRelationalTableModel::qt_metacast(char const *) + ?getStaticMetaObject@QSqlTableModel@@SAABUQMetaObject@@XZ @ 99 NONAME ; struct QMetaObject const & QSqlTableModel::getStaticMetaObject(void) + ?isNull@QSqlRecord@@QBE_NABVQString@@@Z @ 100 NONAME ; bool QSqlRecord::isNull(class QString const &) const + ??_EQSqlCachedResult@@UAE@I@Z @ 101 NONAME ; QSqlCachedResult::~QSqlCachedResult(unsigned int) + ?metaObject@QSqlQueryModel@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QSqlQueryModel::metaObject(void) const + ?hasOutValues@QSqlResult@@IBE_NXZ @ 103 NONAME ; bool QSqlResult::hasOutValues(void) const + ?commitTransaction@QSQLiteDriver@@UAE_NXZ @ 104 NONAME ; bool QSQLiteDriver::commitTransaction(void) + ?editStrategy@QSqlTableModel@@QBE?AW4EditStrategy@1@XZ @ 105 NONAME ; enum QSqlTableModel::EditStrategy QSqlTableModel::editStrategy(void) const + ?headerData@QSqlTableModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 106 NONAME ; class QVariant QSqlTableModel::headerData(int, enum Qt::Orientation, int) const + ?tables@QSQLiteDriver@@UBE?AVQStringList@@W4TableType@QSql@@@Z @ 107 NONAME ; class QStringList QSQLiteDriver::tables(enum QSql::TableType) const + ?bindValue@QSqlQuery@@QAEXHABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 108 NONAME ; void QSqlQuery::bindValue(int, class QVariant const &, class QFlags) + ?setUserName@QSqlDatabase@@QAEXABVQString@@@Z @ 109 NONAME ; void QSqlDatabase::setUserName(class QString const &) + ?isForwardOnly@QSqlQuery@@QBE_NXZ @ 110 NONAME ; bool QSqlQuery::isForwardOnly(void) const + ?sort@QSqlTableModel@@UAEXHW4SortOrder@Qt@@@Z @ 111 NONAME ; void QSqlTableModel::sort(int, enum Qt::SortOrder) + ?qt_metacall@QSqlDriver@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 112 NONAME ; int QSqlDriver::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@QSqlDriverPlugin@@UBEPBUQMetaObject@@XZ @ 113 NONAME ; struct QMetaObject const * QSqlDriverPlugin::metaObject(void) const + ?isActive@QSqlResult@@IBE_NXZ @ 114 NONAME ; bool QSqlResult::isActive(void) const + ?d_func@QSqlQueryModel@@ABEPBVQSqlQueryModelPrivate@@XZ @ 115 NONAME ; class QSqlQueryModelPrivate const * QSqlQueryModel::d_func(void) const + ?numericalPrecisionPolicy@QSqlQuery@@QBE?AW4NumericalPrecisionPolicy@QSql@@XZ @ 116 NONAME ; enum QSql::NumericalPrecisionPolicy QSqlQuery::numericalPrecisionPolicy(void) const + ?executedQuery@QSqlQuery@@QBE?AVQString@@XZ @ 117 NONAME ; class QString QSqlQuery::executedQuery(void) const + ?boundValue@QSqlQuery@@QBE?AVQVariant@@ABVQString@@@Z @ 118 NONAME ; class QVariant QSqlQuery::boundValue(class QString const &) const + ??_EQSqlDriverPlugin@@UAE@I@Z @ 119 NONAME ; QSqlDriverPlugin::~QSqlDriverPlugin(unsigned int) + ?setForwardOnly@QSqlQuery@@QAEX_N@Z @ 120 NONAME ; void QSqlQuery::setForwardOnly(bool) + ??1QSqlDatabase@@QAE@XZ @ 121 NONAME ; QSqlDatabase::~QSqlDatabase(void) + ??0QSqlDriver@@QAE@PAVQObject@@@Z @ 122 NONAME ; QSqlDriver::QSqlDriver(class QObject *) + ?cache@QSqlCachedResult@@IAEAAV?$QVector@VQVariant@@@@XZ @ 123 NONAME ; class QVector & QSqlCachedResult::cache(void) + ?data@QSqlQueryModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 124 NONAME ; class QVariant QSqlQueryModel::data(class QModelIndex const &, int) const + ?isOpen@QSqlDatabase@@QBE_NXZ @ 125 NONAME ; bool QSqlDatabase::isOpen(void) const + ??4QSqlQuery@@QAEAAV0@ABV0@@Z @ 126 NONAME ; class QSqlQuery & QSqlQuery::operator=(class QSqlQuery const &) + ?addBindValue@QSqlResult@@IAEXABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 127 NONAME ; void QSqlResult::addBindValue(class QVariant const &, class QFlags) + ?hasFeature@QSQLiteDriver@@UBE_NW4DriverFeature@QSqlDriver@@@Z @ 128 NONAME ; bool QSQLiteDriver::hasFeature(enum QSqlDriver::DriverFeature) const + ?handle@QSQLiteDriver@@UBE?AVQVariant@@XZ @ 129 NONAME ; class QVariant QSQLiteDriver::handle(void) const + ?getStaticMetaObject@QSqlDriver@@SAABUQMetaObject@@XZ @ 130 NONAME ; struct QMetaObject const & QSqlDriver::getStaticMetaObject(void) + ?boundValue@QSqlResult@@IBE?AVQVariant@@ABVQString@@@Z @ 131 NONAME ; class QVariant QSqlResult::boundValue(class QString const &) const + ?setRelation@QSqlRelationalTableModel@@UAEXHABVQSqlRelation@@@Z @ 132 NONAME ; void QSqlRelationalTableModel::setRelation(int, class QSqlRelation const &) + ??_EQSqlTableModel@@UAE@I@Z @ 133 NONAME ; QSqlTableModel::~QSqlTableModel(unsigned int) + ?setSelect@QSqlResult@@MAEX_N@Z @ 134 NONAME ; void QSqlResult::setSelect(bool) + ?queryChange@QSqlQueryModel@@MAEXXZ @ 135 NONAME ; void QSqlQueryModel::queryChange(void) + ?requiredStatus@QSqlField@@QBE?AW4RequiredStatus@1@XZ @ 136 NONAME ; enum QSqlField::RequiredStatus QSqlField::requiredStatus(void) const + ??0QSqlQueryModel@@QAE@PAVQObject@@@Z @ 137 NONAME ; QSqlQueryModel::QSqlQueryModel(class QObject *) + ?tables@QSqlDriver@@UBE?AVQStringList@@W4TableType@QSql@@@Z @ 138 NONAME ; class QStringList QSqlDriver::tables(enum QSql::TableType) const + ?indexColumn@QSqlRelation@@QBE?AVQString@@XZ @ 139 NONAME ; class QString QSqlRelation::indexColumn(void) const + ?data@QSqlRelationalTableModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 140 NONAME ; class QVariant QSqlRelationalTableModel::data(class QModelIndex const &, int) const + ?d_func@QSqlDriver@@ABEPBVQSqlDriverPrivate@@XZ @ 141 NONAME ; class QSqlDriverPrivate const * QSqlDriver::d_func(void) const + ?fetchNext@QSqlResult@@MAE_NXZ @ 142 NONAME ; bool QSqlResult::fetchNext(void) + ??_EQSqlResult@@UAE@I@Z @ 143 NONAME ; QSqlResult::~QSqlResult(unsigned int) + ?clearValues@QSqlCachedResult@@IAEXXZ @ 144 NONAME ; void QSqlCachedResult::clearValues(void) + ?type@QSqlField@@QBE?AW4Type@QVariant@@XZ @ 145 NONAME ; enum QVariant::Type QSqlField::type(void) const + ?beforeUpdate@QSqlTableModel@@IAEXHAAVQSqlRecord@@@Z @ 146 NONAME ; void QSqlTableModel::beforeUpdate(int, class QSqlRecord &) + ?value@QSqlRecord@@QBE?AVQVariant@@H@Z @ 147 NONAME ; class QVariant QSqlRecord::value(int) const + ?trUtf8@QSqlDriverPlugin@@SA?AVQString@@PBD0@Z @ 148 NONAME ; class QString QSqlDriverPlugin::trUtf8(char const *, char const *) + ?driverText@QSqlError@@QBE?AVQString@@XZ @ 149 NONAME ; class QString QSqlError::driverText(void) const + ?detachFromResultSet@QSqlResult@@IAEXXZ @ 150 NONAME ; void QSqlResult::detachFromResultSet(void) + ?isSelect@QSqlQuery@@QBE_NXZ @ 151 NONAME ; bool QSqlQuery::isSelect(void) const + ?databaseName@QSqlDatabase@@QBE?AVQString@@XZ @ 152 NONAME ; class QString QSqlDatabase::databaseName(void) const + ?handle@QSqlDriver@@UBE?AVQVariant@@XZ @ 153 NONAME ; class QVariant QSqlDriver::handle(void) const + ??4QSqlIndex@@QAEAAV0@ABV0@@Z @ 154 NONAME ; class QSqlIndex & QSqlIndex::operator=(class QSqlIndex const &) + ?clear@QSqlField@@QAEXXZ @ 155 NONAME ; void QSqlField::clear(void) + ?tr@QSqlRelationalTableModel@@SA?AVQString@@PBD0@Z @ 156 NONAME ; class QString QSqlRelationalTableModel::tr(char const *, char const *) + ?selectStatement@QSqlTableModel@@MBE?AVQString@@XZ @ 157 NONAME ; class QString QSqlTableModel::selectStatement(void) const + ?setLastError@QSqlDriver@@MAEXABVQSqlError@@@Z @ 158 NONAME ; void QSqlDriver::setLastError(class QSqlError const &) + ?qt_metacast@QSqlDriverPlugin@@UAEPAXPBD@Z @ 159 NONAME ; void * QSqlDriverPlugin::qt_metacast(char const *) + ?setData@QSqlRelationalTableModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 160 NONAME ; bool QSqlRelationalTableModel::setData(class QModelIndex const &, class QVariant const &, int) + ?formatValue@QSqlDriver@@UBE?AVQString@@ABVQSqlField@@_N@Z @ 161 NONAME ; class QString QSqlDriver::formatValue(class QSqlField const &, bool) const + ?addDatabase@QSqlDatabase@@SA?AV1@ABVQString@@0@Z @ 162 NONAME ; class QSqlDatabase QSqlDatabase::addDatabase(class QString const &, class QString const &) + ?removeColumns@QSqlTableModel@@UAE_NHHABVQModelIndex@@@Z @ 163 NONAME ; bool QSqlTableModel::removeColumns(int, int, class QModelIndex const &) + ?setLastError@QSqlQueryModel@@IAEXABVQSqlError@@@Z @ 164 NONAME ; void QSqlQueryModel::setLastError(class QSqlError const &) + ?field@QSqlRecord@@QBE?AVQSqlField@@ABVQString@@@Z @ 165 NONAME ; class QSqlField QSqlRecord::field(class QString const &) const + ?addBindValue@QSqlQuery@@QAEXABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 166 NONAME ; void QSqlQuery::addBindValue(class QVariant const &, class QFlags) + ?count@QSqlRecord@@QBEHXZ @ 167 NONAME ; int QSqlRecord::count(void) const + ??0QSqlRecord@@QAE@ABV0@@Z @ 168 NONAME ; QSqlRecord::QSqlRecord(class QSqlRecord const &) + ?setNumericalPrecisionPolicy@QSqlDatabase@@QAEXW4NumericalPrecisionPolicy@QSql@@@Z @ 169 NONAME ; void QSqlDatabase::setNumericalPrecisionPolicy(enum QSql::NumericalPrecisionPolicy) + ?setGenerated@QSqlRecord@@QAEXABVQString@@_N@Z @ 170 NONAME ; void QSqlRecord::setGenerated(class QString const &, bool) + ?setPrimaryKey@QSqlTableModel@@IAEXABVQSqlIndex@@@Z @ 171 NONAME ; void QSqlTableModel::setPrimaryKey(class QSqlIndex const &) + ?addDatabase@QSqlDatabase@@SA?AV1@PAVQSqlDriver@@ABVQString@@@Z @ 172 NONAME ; class QSqlDatabase QSqlDatabase::addDatabase(class QSqlDriver *, class QString const &) + ??0QSqlError@@QAE@ABVQString@@0W4ErrorType@0@H@Z @ 173 NONAME ; QSqlError::QSqlError(class QString const &, class QString const &, enum QSqlError::ErrorType, int) + ??1QSQLiteDriver@@UAE@XZ @ 174 NONAME ; QSQLiteDriver::~QSQLiteDriver(void) + ?beforeInsert@QSqlTableModel@@IAEXAAVQSqlRecord@@@Z @ 175 NONAME ; void QSqlTableModel::beforeInsert(class QSqlRecord &) + ?setGenerated@QSqlField@@QAEX_N@Z @ 176 NONAME ; void QSqlField::setGenerated(bool) + ?revertRow@QSqlRelationalTableModel@@UAEXH@Z @ 177 NONAME ; void QSqlRelationalTableModel::revertRow(int) + ?next@QSqlQuery@@QAE_NXZ @ 178 NONAME ; bool QSqlQuery::next(void) + ?trUtf8@QSqlQueryModel@@SA?AVQString@@PBD0@Z @ 179 NONAME ; class QString QSqlQueryModel::trUtf8(char const *, char const *) + ?replace@QSqlRecord@@QAEXHABVQSqlField@@@Z @ 180 NONAME ; void QSqlRecord::replace(int, class QSqlField const &) + ?append@QSqlRecord@@QAEXABVQSqlField@@@Z @ 181 NONAME ; void QSqlRecord::append(class QSqlField const &) + ?trUtf8@QSqlRelationalTableModel@@SA?AVQString@@PBD0H@Z @ 182 NONAME ; class QString QSqlRelationalTableModel::trUtf8(char const *, char const *, int) + ?setRecord@QSqlTableModel@@QAE_NHABVQSqlRecord@@@Z @ 183 NONAME ; bool QSqlTableModel::setRecord(int, class QSqlRecord const &) + ?setOpen@QSqlDriver@@MAEX_N@Z @ 184 NONAME ; void QSqlDriver::setOpen(bool) + ?registerSqlDriver@QSqlDatabase@@SAXABVQString@@PAVQSqlDriverCreatorBase@@@Z @ 185 NONAME ; void QSqlDatabase::registerSqlDriver(class QString const &, class QSqlDriverCreatorBase *) + ?isAutoValue@QSqlField@@QBE_NXZ @ 186 NONAME ; bool QSqlField::isAutoValue(void) const + ?clear@QSqlResult@@IAEXXZ @ 187 NONAME ; void QSqlResult::clear(void) + ?setActive@QSqlResult@@MAEX_N@Z @ 188 NONAME ; void QSqlResult::setActive(bool) + ?fieldIndex@QSqlTableModel@@QBEHABVQString@@@Z @ 189 NONAME ; int QSqlTableModel::fieldIndex(class QString const &) const + ?tr@QSqlDriver@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString QSqlDriver::tr(char const *, char const *) + ?tr@QSQLiteDriver@@SA?AVQString@@PBD0H@Z @ 191 NONAME ; class QString QSQLiteDriver::tr(char const *, char const *, int) + ?trUtf8@QSqlQueryModel@@SA?AVQString@@PBD0H@Z @ 192 NONAME ; class QString QSqlQueryModel::trUtf8(char const *, char const *, int) + ??0QSqlDatabase@@QAE@ABV0@@Z @ 193 NONAME ; QSqlDatabase::QSqlDatabase(class QSqlDatabase const &) + ?isOpenError@QSqlDriver@@QBE_NXZ @ 194 NONAME ; bool QSqlDriver::isOpenError(void) const + ?isForwardOnly@QSqlResult@@IBE_NXZ @ 195 NONAME ; bool QSqlResult::isForwardOnly(void) const + ?updateRowInTable@QSqlRelationalTableModel@@MAE_NHABVQSqlRecord@@@Z @ 196 NONAME ; bool QSqlRelationalTableModel::updateRowInTable(int, class QSqlRecord const &) + ?tr@QSqlQueryModel@@SA?AVQString@@PBD0H@Z @ 197 NONAME ; class QString QSqlQueryModel::tr(char const *, char const *, int) + ?record@QSqlResult@@MBE?AVQSqlRecord@@XZ @ 198 NONAME ; class QSqlRecord QSqlResult::record(void) const + ?lastError@QSqlQuery@@QBE?AVQSqlError@@XZ @ 199 NONAME ; class QSqlError QSqlQuery::lastError(void) const + ?getStaticMetaObject@QSqlQueryModel@@SAABUQMetaObject@@XZ @ 200 NONAME ; struct QMetaObject const & QSqlQueryModel::getStaticMetaObject(void) + ??1QSqlField@@QAE@XZ @ 201 NONAME ; QSqlField::~QSqlField(void) + ?setQuery@QSqlResult@@MAEXABVQString@@@Z @ 202 NONAME ; void QSqlResult::setQuery(class QString const &) + ?driver@QSqlQuery@@QBEPBVQSqlDriver@@XZ @ 203 NONAME ; class QSqlDriver const * QSqlQuery::driver(void) const + ??4QSqlRelation@@QAEAAV0@ABV0@@Z @ 204 NONAME ; class QSqlRelation & QSqlRelation::operator=(class QSqlRelation const &) + ?fetchLast@QSqlCachedResult@@MAE_NXZ @ 205 NONAME ; bool QSqlCachedResult::fetchLast(void) + ?setReadOnly@QSqlField@@QAEX_N@Z @ 206 NONAME ; void QSqlField::setReadOnly(bool) + ?headerData@QSqlQueryModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 207 NONAME ; class QVariant QSqlQueryModel::headerData(int, enum Qt::Orientation, int) const + ?cleanup@QSqlCachedResult@@IAEXXZ @ 208 NONAME ; void QSqlCachedResult::cleanup(void) + ?first@QSqlQuery@@QAE_NXZ @ 209 NONAME ; bool QSqlQuery::first(void) + ?isDriverAvailable@QSqlDatabase@@SA_NABVQString@@@Z @ 210 NONAME ; bool QSqlDatabase::isDriverAvailable(class QString const &) + ?staticMetaObject@QSqlTableModel@@2UQMetaObject@@B @ 211 NONAME ; struct QMetaObject const QSqlTableModel::staticMetaObject + ?setRequiredStatus@QSqlField@@QAEXW4RequiredStatus@1@@Z @ 212 NONAME ; void QSqlField::setRequiredStatus(enum QSqlField::RequiredStatus) + ?fetchPrevious@QSqlCachedResult@@MAE_NXZ @ 213 NONAME ; bool QSqlCachedResult::fetchPrevious(void) + ?setCursorName@QSqlIndex@@QAEXABVQString@@@Z @ 214 NONAME ; void QSqlIndex::setCursorName(class QString const &) + ?insertRows@QSqlTableModel@@UAE_NHHABVQModelIndex@@@Z @ 215 NONAME ; bool QSqlTableModel::insertRows(int, int, class QModelIndex const &) + ?setTable@QSqlTableModel@@UAEXABVQString@@@Z @ 216 NONAME ; void QSqlTableModel::setTable(class QString const &) + ?orderByClause@QSqlTableModel@@MBE?AVQString@@XZ @ 217 NONAME ; class QString QSqlTableModel::orderByClause(void) const + ??0QSqlQuery@@QAE@ABV0@@Z @ 218 NONAME ; QSqlQuery::QSqlQuery(class QSqlQuery const &) + ??0QSqlDriverFactoryInterface@@QAE@XZ @ 219 NONAME ; QSqlDriverFactoryInterface::QSqlDriverFactoryInterface(void) + ?typeID@QSqlField@@QBEHXZ @ 220 NONAME ; int QSqlField::typeID(void) const + ?tr@QSqlRelationalTableModel@@SA?AVQString@@PBD0H@Z @ 221 NONAME ; class QString QSqlRelationalTableModel::tr(char const *, char const *, int) + ?append@QSqlIndex@@QAEXABVQSqlField@@_N@Z @ 222 NONAME ; void QSqlIndex::append(class QSqlField const &, bool) + ?tr@QSQLiteDriver@@SA?AVQString@@PBD0@Z @ 223 NONAME ; class QString QSQLiteDriver::tr(char const *, char const *) + ??1QSqlDriver@@UAE@XZ @ 224 NONAME ; QSqlDriver::~QSqlDriver(void) + ?port@QSqlDatabase@@QBEHXZ @ 225 NONAME ; int QSqlDatabase::port(void) const + ?cloneDatabase@QSqlDatabase@@SA?AV1@ABV1@ABVQString@@@Z @ 226 NONAME ; class QSqlDatabase QSqlDatabase::cloneDatabase(class QSqlDatabase const &, class QString const &) + ?updateRowInTable@QSqlTableModel@@MAE_NHABVQSqlRecord@@@Z @ 227 NONAME ; bool QSqlTableModel::updateRowInTable(int, class QSqlRecord const &) + ?isNull@QSqlCachedResult@@MAE_NH@Z @ 228 NONAME ; bool QSqlCachedResult::isNull(int) + ?staticMetaObject@QSqlDriver@@2UQMetaObject@@B @ 229 NONAME ; struct QMetaObject const QSqlDriver::staticMetaObject + ?revertRow@QSqlTableModel@@UAEXH@Z @ 230 NONAME ; void QSqlTableModel::revertRow(int) + ?setTable@QSqlRelationalTableModel@@UAEXABVQString@@@Z @ 231 NONAME ; void QSqlRelationalTableModel::setTable(class QString const &) + ?precision@QSqlField@@QBEHXZ @ 232 NONAME ; int QSqlField::precision(void) const + ?d_func@QSqlRelationalTableModel@@ABEPBVQSqlRelationalTableModelPrivate@@XZ @ 233 NONAME ; class QSqlRelationalTableModelPrivate const * QSqlRelationalTableModel::d_func(void) const + ??9QSqlRecord@@QBE_NABV0@@Z @ 234 NONAME ; bool QSqlRecord::operator!=(class QSqlRecord const &) const + ??0QSqlIndex@@QAE@ABVQString@@0@Z @ 235 NONAME ; QSqlIndex::QSqlIndex(class QString const &, class QString const &) + ??0QSQLiteDriver@@QAE@PAVQObject@@@Z @ 236 NONAME ; QSQLiteDriver::QSQLiteDriver(class QObject *) + ?stripDelimiters@QSqlDriver@@QBE?AVQString@@ABV2@W4IdentifierType@1@@Z @ 237 NONAME ; class QString QSqlDriver::stripDelimiters(class QString const &, enum QSqlDriver::IdentifierType) const + ?lastQuery@QSqlResult@@IBE?AVQString@@XZ @ 238 NONAME ; class QString QSqlResult::lastQuery(void) const + ?virtual_hook@QSqlCachedResult@@MAEXHPAX@Z @ 239 NONAME ; void QSqlCachedResult::virtual_hook(int, void *) + ?tr@QSqlDriverPlugin@@SA?AVQString@@PBD0@Z @ 240 NONAME ; class QString QSqlDriverPlugin::tr(char const *, char const *) + ?getStaticMetaObject@QSqlDriverPlugin@@SAABUQMetaObject@@XZ @ 241 NONAME ; struct QMetaObject const & QSqlDriverPlugin::getStaticMetaObject(void) + ??1QSqlDriverFactoryInterface@@UAE@XZ @ 242 NONAME ; QSqlDriverFactoryInterface::~QSqlDriverFactoryInterface(void) + ?numericalPrecisionPolicy@QSqlResult@@IBE?AW4NumericalPrecisionPolicy@QSql@@XZ @ 243 NONAME ; enum QSql::NumericalPrecisionPolicy QSqlResult::numericalPrecisionPolicy(void) const + ?clearValues@QSqlRecord@@QAEXXZ @ 244 NONAME ; void QSqlRecord::clearValues(void) + ?columnCount@QSqlQueryModel@@UBEHABVQModelIndex@@@Z @ 245 NONAME ; int QSqlQueryModel::columnCount(class QModelIndex const &) const + ?setQuery@QSqlQueryModel@@QAEXABVQString@@ABVQSqlDatabase@@@Z @ 246 NONAME ; void QSqlQueryModel::setQuery(class QString const &, class QSqlDatabase const &) + ??0QSqlRelation@@QAE@ABV0@@Z @ 247 NONAME ; QSqlRelation::QSqlRelation(class QSqlRelation const &) + ?setOpenError@QSqlDriver@@MAEX_N@Z @ 248 NONAME ; void QSqlDriver::setOpenError(bool) + ?qt_metacall@QSqlDriverPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 249 NONAME ; int QSqlDriverPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QSqlRelationalTableModel@@SA?AVQString@@PBD0@Z @ 250 NONAME ; class QString QSqlRelationalTableModel::trUtf8(char const *, char const *) + ?finish@QSqlQuery@@QAEXXZ @ 251 NONAME ; void QSqlQuery::finish(void) + ??0QSqlDriverPlugin@@QAE@PAVQObject@@@Z @ 252 NONAME ; QSqlDriverPlugin::QSqlDriverPlugin(class QObject *) + ?contains@QSqlRecord@@QBE_NABVQString@@@Z @ 253 NONAME ; bool QSqlRecord::contains(class QString const &) const + ?isGenerated@QSqlRecord@@QBE_NH@Z @ 254 NONAME ; bool QSqlRecord::isGenerated(int) const + ??4QSqlError@@QAEAAV0@ABV0@@Z @ 255 NONAME ; class QSqlError & QSqlError::operator=(class QSqlError const &) + ??8QSqlField@@QBE_NABV0@@Z @ 256 NONAME ; bool QSqlField::operator==(class QSqlField const &) const + ?createField@QSqlIndex@@ABE?AVQString@@HABV2@_N@Z @ 257 NONAME ; class QString QSqlIndex::createField(int, class QString const &, bool) const + ??0QSqlQuery@@QAE@PAVQSqlResult@@@Z @ 258 NONAME ; QSqlQuery::QSqlQuery(class QSqlResult *) + ?databaseText@QSqlError@@QBE?AVQString@@XZ @ 259 NONAME ; class QString QSqlError::databaseText(void) const + ?qt_metacall@QSQLiteDriver@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 260 NONAME ; int QSQLiteDriver::qt_metacall(enum QMetaObject::Call, int, void * *) + ?value@QSqlRecord@@QBE?AVQVariant@@ABVQString@@@Z @ 261 NONAME ; class QVariant QSqlRecord::value(class QString const &) const + ?isGenerated@QSqlRecord@@QBE_NABVQString@@@Z @ 262 NONAME ; bool QSqlRecord::isGenerated(class QString const &) const + ?sqlStatement@QSqlDriver@@UBE?AVQString@@W4StatementType@1@ABV2@ABVQSqlRecord@@_N@Z @ 263 NONAME ; class QString QSqlDriver::sqlStatement(enum QSqlDriver::StatementType, class QString const &, class QSqlRecord const &, bool) const + ?detach@QSqlRecord@@AAEXXZ @ 264 NONAME ; void QSqlRecord::detach(void) + ?setNumericalPrecisionPolicy@QSqlQuery@@QAEXW4NumericalPrecisionPolicy@QSql@@@Z @ 265 NONAME ; void QSqlQuery::setNumericalPrecisionPolicy(enum QSql::NumericalPrecisionPolicy) + ?isActive@QSqlQuery@@QBE_NXZ @ 266 NONAME ; bool QSqlQuery::isActive(void) const + ?clear@QSqlRecord@@QAEXXZ @ 267 NONAME ; void QSqlRecord::clear(void) + ?boundValue@QSqlResult@@IBE?AVQVariant@@H@Z @ 268 NONAME ; class QVariant QSqlResult::boundValue(int) const + ??_EQSqlDriver@@UAE@I@Z @ 269 NONAME ; QSqlDriver::~QSqlDriver(unsigned int) + ?submitAll@QSqlTableModel@@QAE_NXZ @ 270 NONAME ; bool QSqlTableModel::submitAll(void) + ?setType@QSqlField@@QAEXW4Type@QVariant@@@Z @ 271 NONAME ; void QSqlField::setType(enum QVariant::Type) + ?tr@QSqlTableModel@@SA?AVQString@@PBD0@Z @ 272 NONAME ; class QString QSqlTableModel::tr(char const *, char const *) + ?userName@QSqlDatabase@@QBE?AVQString@@XZ @ 273 NONAME ; class QString QSqlDatabase::userName(void) const + ?qt_metacast@QSqlTableModel@@UAEPAXPBD@Z @ 274 NONAME ; void * QSqlTableModel::qt_metacast(char const *) + ?isNull@QSqlField@@QBE_NXZ @ 275 NONAME ; bool QSqlField::isNull(void) const + ??0QSqlRelation@@QAE@XZ @ 276 NONAME ; QSqlRelation::QSqlRelation(void) + ?rollbackTransaction@QSqlDriver@@UAE_NXZ @ 277 NONAME ; bool QSqlDriver::rollbackTransaction(void) + ?metaObject@QSQLiteDriver@@UBEPBUQMetaObject@@XZ @ 278 NONAME ; struct QMetaObject const * QSQLiteDriver::metaObject(void) const + ?bindingSyntax@QSqlResult@@IBE?AW4BindingSyntax@1@XZ @ 279 NONAME ; enum QSqlResult::BindingSyntax QSqlResult::bindingSyntax(void) const + ?record@QSqlDriver@@UBE?AVQSqlRecord@@ABVQString@@@Z @ 280 NONAME ; class QSqlRecord QSqlDriver::record(class QString const &) const + ?setLastError@QSqlResult@@MAEXABVQSqlError@@@Z @ 281 NONAME ; void QSqlResult::setLastError(class QSqlError const &) + ?open@QSQLiteDriver@@UAE_NABVQString@@000H0@Z @ 282 NONAME ; bool QSQLiteDriver::open(class QString const &, class QString const &, class QString const &, class QString const &, int, class QString const &) + ?setDescending@QSqlIndex@@QAEXH_N@Z @ 283 NONAME ; void QSqlIndex::setDescending(int, bool) + ?isIdentifierEscapedImplementation@QSqlDriver@@IBE_NABVQString@@W4IdentifierType@1@@Z @ 284 NONAME ; bool QSqlDriver::isIdentifierEscapedImplementation(class QString const &, enum QSqlDriver::IdentifierType) const + ?isOpenError@QSqlDatabase@@QBE_NXZ @ 285 NONAME ; bool QSqlDatabase::isOpenError(void) const + ?setType@QSqlError@@QAEXW4ErrorType@1@@Z @ 286 NONAME ; void QSqlError::setType(enum QSqlError::ErrorType) + ?beforeDelete@QSqlTableModel@@IAEXH@Z @ 287 NONAME ; void QSqlTableModel::beforeDelete(int) + ?setDefaultValue@QSqlField@@QAEXABVQVariant@@@Z @ 288 NONAME ; void QSqlField::setDefaultValue(class QVariant const &) + ?cursorName@QSqlIndex@@QBE?AVQString@@XZ @ 289 NONAME ; class QString QSqlIndex::cursorName(void) const + ?type@QSqlError@@QBE?AW4ErrorType@1@XZ @ 290 NONAME ; enum QSqlError::ErrorType QSqlError::type(void) const + ?clear@QSqlQuery@@QAEXXZ @ 291 NONAME ; void QSqlQuery::clear(void) + ?lastInsertId@QSqlResult@@MBE?AVQVariant@@XZ @ 292 NONAME ; class QVariant QSqlResult::lastInsertId(void) const + ?boundValueName@QSqlResult@@IBE?AVQString@@H@Z @ 293 NONAME ; class QString QSqlResult::boundValueName(int) const + ?lastError@QSqlDatabase@@QBE?AVQSqlError@@XZ @ 294 NONAME ; class QSqlError QSqlDatabase::lastError(void) const + ?insertRecord@QSqlTableModel@@QAE_NHABVQSqlRecord@@@Z @ 295 NONAME ; bool QSqlTableModel::insertRecord(int, class QSqlRecord const &) + ?removeDatabase@QSqlDatabase@@SAXABVQString@@@Z @ 296 NONAME ; void QSqlDatabase::removeDatabase(class QString const &) + ??_EQSqlDriverCreatorBase@@UAE@I@Z @ 297 NONAME ; QSqlDriverCreatorBase::~QSqlDriverCreatorBase(unsigned int) + ?deleteRowFromTable@QSqlTableModel@@MAE_NH@Z @ 298 NONAME ; bool QSqlTableModel::deleteRowFromTable(int) + ??0QSqlDatabase@@IAE@ABVQString@@@Z @ 299 NONAME ; QSqlDatabase::QSqlDatabase(class QString const &) + ??1QSqlDriverCreatorBase@@UAE@XZ @ 300 NONAME ; QSqlDriverCreatorBase::~QSqlDriverCreatorBase(void) + ?previous@QSqlQuery@@QAE_NXZ @ 301 NONAME ; bool QSqlQuery::previous(void) + ??0QSqlCachedResult@@IAE@PBVQSqlDriver@@@Z @ 302 NONAME ; QSqlCachedResult::QSqlCachedResult(class QSqlDriver const *) + ?exec@QSqlResult@@MAE_NXZ @ 303 NONAME ; bool QSqlResult::exec(void) + ?unsubscribeFromNotification@QSqlDriver@@QAE_NABVQString@@@Z @ 304 NONAME ; bool QSqlDriver::unsubscribeFromNotification(class QString const &) + ?isValid@QSqlQuery@@QBE_NXZ @ 305 NONAME ; bool QSqlQuery::isValid(void) const + ?setPort@QSqlDatabase@@QAEXH@Z @ 306 NONAME ; void QSqlDatabase::setPort(int) + ??8QSqlRecord@@QBE_NABV0@@Z @ 307 NONAME ; bool QSqlRecord::operator==(class QSqlRecord const &) const + ?metaObject@QSqlTableModel@@UBEPBUQMetaObject@@XZ @ 308 NONAME ; struct QMetaObject const * QSqlTableModel::metaObject(void) const + ?cacheNext@QSqlCachedResult@@AAE_NXZ @ 309 NONAME ; bool QSqlCachedResult::cacheNext(void) + ??0QSqlField@@QAE@ABVQString@@W4Type@QVariant@@@Z @ 310 NONAME ; QSqlField::QSqlField(class QString const &, enum QVariant::Type) + ?createResult@QSQLiteDriver@@UBEPAVQSqlResult@@XZ @ 311 NONAME ; class QSqlResult * QSQLiteDriver::createResult(void) const + ??_EQSqlQueryModel@@UAE@I@Z @ 312 NONAME ; QSqlQueryModel::~QSqlQueryModel(unsigned int) + ?length@QSqlField@@QBEHXZ @ 313 NONAME ; int QSqlField::length(void) const + ?removeRows@QSqlTableModel@@UAE_NHHABVQModelIndex@@@Z @ 314 NONAME ; bool QSqlTableModel::removeRows(int, int, class QModelIndex const &) + ?setSort@QSqlTableModel@@UAEXHW4SortOrder@Qt@@@Z @ 315 NONAME ; void QSqlTableModel::setSort(int, enum Qt::SortOrder) + ?revert@QSqlTableModel@@UAEXXZ @ 316 NONAME ; void QSqlTableModel::revert(void) + ?primaryIndex@QSQLiteDriver@@UBE?AVQSqlIndex@@ABVQString@@@Z @ 317 NONAME ; class QSqlIndex QSQLiteDriver::primaryIndex(class QString const &) const + ??1QSqlQuery@@QAE@XZ @ 318 NONAME ; QSqlQuery::~QSqlQuery(void) + ?tr@QSqlDriverPlugin@@SA?AVQString@@PBD0H@Z @ 319 NONAME ; class QString QSqlDriverPlugin::tr(char const *, char const *, int) + ?setQuery@QSqlQueryModel@@QAEXABVQSqlQuery@@@Z @ 320 NONAME ; void QSqlQueryModel::setQuery(class QSqlQuery const &) + ?rollback@QSqlDatabase@@QAE_NXZ @ 321 NONAME ; bool QSqlDatabase::rollback(void) + ?insertRowIntoTable@QSqlRelationalTableModel@@MAE_NABVQSqlRecord@@@Z @ 322 NONAME ; bool QSqlRelationalTableModel::insertRowIntoTable(class QSqlRecord const &) + ?init@QSqlCachedResult@@IAEXH@Z @ 323 NONAME ; void QSqlCachedResult::init(int) + ?tr@QSqlDriver@@SA?AVQString@@PBD0H@Z @ 324 NONAME ; class QString QSqlDriver::tr(char const *, char const *, int) + ?rollbackTransaction@QSQLiteDriver@@UAE_NXZ @ 325 NONAME ; bool QSQLiteDriver::rollbackTransaction(void) + ?indexInQuery@QSqlTableModel@@IBE?AVQModelIndex@@ABV2@@Z @ 326 NONAME ; class QModelIndex QSqlTableModel::indexInQuery(class QModelIndex const &) const + ?d_func@QSqlTableModel@@AAEPAVQSqlTableModelPrivate@@XZ @ 327 NONAME ; class QSqlTableModelPrivate * QSqlTableModel::d_func(void) + ?stripDelimitersImplementation@QSqlDriver@@IBE?AVQString@@ABV2@W4IdentifierType@1@@Z @ 328 NONAME ; class QString QSqlDriver::stripDelimitersImplementation(class QString const &, enum QSqlDriver::IdentifierType) const + ?beginTransaction@QSQLiteDriver@@UAE_NXZ @ 329 NONAME ; bool QSQLiteDriver::beginTransaction(void) + ?prepare@QSqlResult@@MAE_NABVQString@@@Z @ 330 NONAME ; bool QSqlResult::prepare(class QString const &) + ?password@QSqlDatabase@@QBE?AVQString@@XZ @ 331 NONAME ; class QString QSqlDatabase::password(void) const + ?query@QSqlQueryModel@@QBE?AVQSqlQuery@@XZ @ 332 NONAME ; class QSqlQuery QSqlQueryModel::query(void) const + ?relationModel@QSqlRelationalTableModel@@UBEPAVQSqlTableModel@@H@Z @ 333 NONAME ; class QSqlTableModel * QSqlRelationalTableModel::relationModel(int) const + ?clear@QSqlTableModel@@UAEXXZ @ 334 NONAME ; void QSqlTableModel::clear(void) + ?connectionNames@QSqlDatabase@@SA?AVQStringList@@XZ @ 335 NONAME ; class QStringList QSqlDatabase::connectionNames(void) + ?setValue@QSqlField@@QAEXABVQVariant@@@Z @ 336 NONAME ; void QSqlField::setValue(class QVariant const &) + ?boundValue@QSqlQuery@@QBE?AVQVariant@@H@Z @ 337 NONAME ; class QVariant QSqlQuery::boundValue(int) const + ?lastQuery@QSqlQuery@@QBE?AVQString@@XZ @ 338 NONAME ; class QString QSqlQuery::lastQuery(void) const + ??6@YA?AVQDebug@@V0@ABVQSqlDatabase@@@Z @ 339 NONAME ; class QDebug operator<<(class QDebug, class QSqlDatabase const &) + ?setAt@QSqlResult@@MAEXH@Z @ 340 NONAME ; void QSqlResult::setAt(int) + ??1QSqlRelation@@QAE@XZ @ 341 NONAME ; QSqlRelation::~QSqlRelation(void) + ?bindValue@QSqlResult@@MAEXABVQString@@ABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 342 NONAME ; void QSqlResult::bindValue(class QString const &, class QVariant const &, class QFlags) + ?data@QSqlCachedResult@@MAE?AVQVariant@@H@Z @ 343 NONAME ; class QVariant QSqlCachedResult::data(int) + ??6@YA?AVQDebug@@V0@ABVQSqlError@@@Z @ 344 NONAME ; class QDebug operator<<(class QDebug, class QSqlError const &) + ??0QSQLiteDriver@@QAE@PAUsqlite3@@PAVQObject@@@Z @ 345 NONAME ; QSQLiteDriver::QSQLiteDriver(struct sqlite3 *, class QObject *) + ?savePrepare@QSqlResult@@MAE_NABVQString@@@Z @ 346 NONAME ; bool QSqlResult::savePrepare(class QString const &) + ?isValid@QSqlField@@QBE_NXZ @ 347 NONAME ; bool QSqlField::isValid(void) const + ?setConnectOptions@QSqlDatabase@@QAEXABVQString@@@Z @ 348 NONAME ; void QSqlDatabase::setConnectOptions(class QString const &) + ?tr@QSqlQueryModel@@SA?AVQString@@PBD0@Z @ 349 NONAME ; class QString QSqlQueryModel::tr(char const *, char const *) + ?text@QSqlError@@QBE?AVQString@@XZ @ 350 NONAME ; class QString QSqlError::text(void) const + ?value@QSqlQuery@@QBE?AVQVariant@@H@Z @ 351 NONAME ; class QVariant QSqlQuery::value(int) const + ?trUtf8@QSqlDriver@@SA?AVQString@@PBD0H@Z @ 352 NONAME ; class QString QSqlDriver::trUtf8(char const *, char const *, int) + ?bindValueType@QSqlResult@@IBE?AV?$QFlags@W4ParamTypeFlag@QSql@@@@ABVQString@@@Z @ 353 NONAME ; class QFlags QSqlResult::bindValueType(class QString const &) const + ??0QSqlRelation@@QAE@ABVQString@@00@Z @ 354 NONAME ; QSqlRelation::QSqlRelation(class QString const &, class QString const &, class QString const &) + ?escapeIdentifier@QSqlDriver@@UBE?AVQString@@ABV2@W4IdentifierType@1@@Z @ 355 NONAME ; class QString QSqlDriver::escapeIdentifier(class QString const &, enum QSqlDriver::IdentifierType) const + ?setDatabaseText@QSqlError@@QAEXABVQString@@@Z @ 356 NONAME ; void QSqlError::setDatabaseText(class QString const &) + ?setFilter@QSqlTableModel@@UAEXABVQString@@@Z @ 357 NONAME ; void QSqlTableModel::setFilter(class QString const &) + ?nextResult@QSqlQuery@@QAE_NXZ @ 358 NONAME ; bool QSqlQuery::nextResult(void) + ??0QSqlError@@QAE@ABV0@@Z @ 359 NONAME ; QSqlError::QSqlError(class QSqlError const &) + ?select@QSqlTableModel@@UAE_NXZ @ 360 NONAME ; bool QSqlTableModel::select(void) + ??1QSqlTableModel@@UAE@XZ @ 361 NONAME ; QSqlTableModel::~QSqlTableModel(void) + ?subscribedToNotificationsImplementation@QSqlDriver@@IBE?AVQStringList@@XZ @ 362 NONAME ; class QStringList QSqlDriver::subscribedToNotificationsImplementation(void) const + ?defaultConnection@QSqlDatabase@@2PBDB @ 363 NONAME ; char const * const QSqlDatabase::defaultConnection + ?trUtf8@QSqlDriverPlugin@@SA?AVQString@@PBD0H@Z @ 364 NONAME ; class QString QSqlDriverPlugin::trUtf8(char const *, char const *, int) + ??0QSqlQueryModel@@IAE@AAVQSqlQueryModelPrivate@@PAVQObject@@@Z @ 365 NONAME ; QSqlQueryModel::QSqlQueryModel(class QSqlQueryModelPrivate &, class QObject *) + ?executedQuery@QSqlResult@@IBE?AVQString@@XZ @ 366 NONAME ; class QString QSqlResult::executedQuery(void) const + ?fetchMore@QSqlQueryModel@@UAEXABVQModelIndex@@@Z @ 367 NONAME ; void QSqlQueryModel::fetchMore(class QModelIndex const &) + ?setSqlType@QSqlField@@QAEXH@Z @ 368 NONAME ; void QSqlField::setSqlType(int) + ?fetch@QSqlCachedResult@@MAE_NH@Z @ 369 NONAME ; bool QSqlCachedResult::fetch(int) + ?at@QSqlQuery@@QBEHXZ @ 370 NONAME ; int QSqlQuery::at(void) const + ?execBatch@QSqlResult@@IAE_N_N@Z @ 371 NONAME ; bool QSqlResult::execBatch(bool) + ?resetBindCount@QSqlResult@@AAEXXZ @ 372 NONAME ; void QSqlResult::resetBindCount(void) + ?bindValueType@QSqlResult@@IBE?AV?$QFlags@W4ParamTypeFlag@QSql@@@@H@Z @ 373 NONAME ; class QFlags QSqlResult::bindValueType(int) const + ??9QSqlField@@QBE_NABV0@@Z @ 374 NONAME ; bool QSqlField::operator!=(class QSqlField const &) const + ?trUtf8@QSqlDriver@@SA?AVQString@@PBD0@Z @ 375 NONAME ; class QString QSqlDriver::trUtf8(char const *, char const *) + ?setHeaderData@QSqlQueryModel@@UAE_NHW4Orientation@Qt@@ABVQVariant@@H@Z @ 376 NONAME ; bool QSqlQueryModel::setHeaderData(int, enum Qt::Orientation, class QVariant const &, int) + ?orderByClause@QSqlRelationalTableModel@@MBE?AVQString@@XZ @ 377 NONAME ; class QString QSqlRelationalTableModel::orderByClause(void) const + ?handle@QSqlResult@@UBE?AVQVariant@@XZ @ 378 NONAME ; class QVariant QSqlResult::handle(void) const + ?connectOptions@QSqlDatabase@@QBE?AVQString@@XZ @ 379 NONAME ; class QString QSqlDatabase::connectOptions(void) const + ?getStaticMetaObject@QSqlRelationalTableModel@@SAABUQMetaObject@@XZ @ 380 NONAME ; struct QMetaObject const & QSqlRelationalTableModel::getStaticMetaObject(void) + ?hostName@QSqlDatabase@@QBE?AVQString@@XZ @ 381 NONAME ; class QString QSqlDatabase::hostName(void) const + ?isEmpty@QSqlRecord@@QBE_NXZ @ 382 NONAME ; bool QSqlRecord::isEmpty(void) const + ?close@QSqlDatabase@@QAEXXZ @ 383 NONAME ; void QSqlDatabase::close(void) + ?bindValue@QSqlQuery@@QAEXABVQString@@ABVQVariant@@V?$QFlags@W4ParamTypeFlag@QSql@@@@@Z @ 384 NONAME ; void QSqlQuery::bindValue(class QString const &, class QVariant const &, class QFlags) + ?tables@QSqlDatabase@@QBE?AVQStringList@@W4TableType@QSql@@@Z @ 385 NONAME ; class QStringList QSqlDatabase::tables(enum QSql::TableType) const + ?setDatabaseName@QSqlDatabase@@QAEXABVQString@@@Z @ 386 NONAME ; void QSqlDatabase::setDatabaseName(class QString const &) + ??1QSqlCachedResult@@UAE@XZ @ 387 NONAME ; QSqlCachedResult::~QSqlCachedResult(void) + ?isValid@QSqlRelation@@QBE_NXZ @ 388 NONAME ; bool QSqlRelation::isValid(void) const + ?setPrecision@QSqlField@@QAEXH@Z @ 389 NONAME ; void QSqlField::setPrecision(int) + ?metaObject@QSqlRelationalTableModel@@UBEPBUQMetaObject@@XZ @ 390 NONAME ; struct QMetaObject const * QSqlRelationalTableModel::metaObject(void) const + ?lastInsertId@QSqlQuery@@QBE?AVQVariant@@XZ @ 391 NONAME ; class QVariant QSqlQuery::lastInsertId(void) const + ?setValue@QSqlRecord@@QAEXHABVQVariant@@@Z @ 392 NONAME ; void QSqlRecord::setValue(int, class QVariant const &) + ??0QSqlQuery@@QAE@ABVQString@@VQSqlDatabase@@@Z @ 393 NONAME ; QSqlQuery::QSqlQuery(class QString const &, class QSqlDatabase) + ?trUtf8@QSqlTableModel@@SA?AVQString@@PBD0H@Z @ 394 NONAME ; class QString QSqlTableModel::trUtf8(char const *, char const *, int) + ?tr@QSqlTableModel@@SA?AVQString@@PBD0H@Z @ 395 NONAME ; class QString QSqlTableModel::tr(char const *, char const *, int) + ?record@QSqlQueryModel@@QBE?AVQSqlRecord@@H@Z @ 396 NONAME ; class QSqlRecord QSqlQueryModel::record(int) const + ?exec@QSqlDatabase@@QBE?AVQSqlQuery@@ABVQString@@@Z @ 397 NONAME ; class QSqlQuery QSqlDatabase::exec(class QString const &) const + ?setAutoValue@QSqlField@@QAEX_N@Z @ 398 NONAME ; void QSqlField::setAutoValue(bool) + ?driver@QSqlDatabase@@QBEPAVQSqlDriver@@XZ @ 399 NONAME ; class QSqlDriver * QSqlDatabase::driver(void) const + ?seek@QSqlQuery@@QAE_NH_N@Z @ 400 NONAME ; bool QSqlQuery::seek(int, bool) + ?number@QSqlError@@QBEHXZ @ 401 NONAME ; int QSqlError::number(void) const + ?open@QSqlDatabase@@QAE_NXZ @ 402 NONAME ; bool QSqlDatabase::open(void) + ??_EQSqlRelationalTableModel@@UAE@I@Z @ 403 NONAME ; QSqlRelationalTableModel::~QSqlRelationalTableModel(unsigned int) + ?setNull@QSqlRecord@@QAEXH@Z @ 404 NONAME ; void QSqlRecord::setNull(int) + ?fieldName@QSqlRecord@@QBE?AVQString@@H@Z @ 405 NONAME ; class QString QSqlRecord::fieldName(int) const + ?getStaticMetaObject@QSQLiteDriver@@SAABUQMetaObject@@XZ @ 406 NONAME ; struct QMetaObject const & QSQLiteDriver::getStaticMetaObject(void) + ?isValid@QSqlResult@@IBE_NXZ @ 407 NONAME ; bool QSqlResult::isValid(void) const + ?primaryIndex@QSqlDatabase@@QBE?AVQSqlIndex@@ABVQString@@@Z @ 408 NONAME ; class QSqlIndex QSqlDatabase::primaryIndex(class QString const &) const + ??0QSqlField@@QAE@ABV0@@Z @ 409 NONAME ; QSqlField::QSqlField(class QSqlField const &) + ?fetchFirst@QSqlCachedResult@@MAE_NXZ @ 410 NONAME ; bool QSqlCachedResult::fetchFirst(void) + ?setLength@QSqlField@@QAEXH@Z @ 411 NONAME ; void QSqlField::setLength(int) + ??0QSqlQuery@@QAE@VQSqlDatabase@@@Z @ 412 NONAME ; QSqlQuery::QSqlQuery(class QSqlDatabase) + ?commitTransaction@QSqlDriver@@UAE_NXZ @ 413 NONAME ; bool QSqlDriver::commitTransaction(void) + ?last@QSqlQuery@@QAE_NXZ @ 414 NONAME ; bool QSqlQuery::last(void) + ?setNull@QSqlRecord@@QAEXABVQString@@@Z @ 415 NONAME ; void QSqlRecord::setNull(class QString const &) + ??1QSqlRecord@@QAE@XZ @ 416 NONAME ; QSqlRecord::~QSqlRecord(void) + ??1QSqlIndex@@QAE@XZ @ 417 NONAME ; QSqlIndex::~QSqlIndex(void) + ?detach@QSqlField@@AAEXXZ @ 418 NONAME ; void QSqlField::detach(void) + ?append@QSqlIndex@@QAEXABVQSqlField@@@Z @ 419 NONAME ; void QSqlIndex::append(class QSqlField const &) + ?isSelect@QSqlResult@@IBE_NXZ @ 420 NONAME ; bool QSqlResult::isSelect(void) const + ?lastError@QSqlDriver@@QBE?AVQSqlError@@XZ @ 421 NONAME ; class QSqlError QSqlDriver::lastError(void) const + ?lastError@QSqlResult@@IBE?AVQSqlError@@XZ @ 422 NONAME ; class QSqlError QSqlResult::lastError(void) const + ?isValid@QSqlDatabase@@QBE_NXZ @ 423 NONAME ; bool QSqlDatabase::isValid(void) const + ?d_func@QSqlRelationalTableModel@@AAEPAVQSqlRelationalTableModelPrivate@@XZ @ 424 NONAME ; class QSqlRelationalTableModelPrivate * QSqlRelationalTableModel::d_func(void) + ?database@QSqlDatabase@@SA?AV1@ABVQString@@_N@Z @ 425 NONAME ; class QSqlDatabase QSqlDatabase::database(class QString const &, bool) + ?rowCount@QSqlQueryModel@@UBEHABVQModelIndex@@@Z @ 426 NONAME ; int QSqlQueryModel::rowCount(class QModelIndex const &) const + ?qt_metacall@QSqlRelationalTableModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 427 NONAME ; int QSqlRelationalTableModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?name@QSqlIndex@@QBE?AVQString@@XZ @ 428 NONAME ; class QString QSqlIndex::name(void) const + ?setNumericalPrecisionPolicy@QSqlResult@@IAEXW4NumericalPrecisionPolicy@QSql@@@Z @ 429 NONAME ; void QSqlResult::setNumericalPrecisionPolicy(enum QSql::NumericalPrecisionPolicy) + ??0QSqlRelationalTableModel@@QAE@PAVQObject@@VQSqlDatabase@@@Z @ 430 NONAME ; QSqlRelationalTableModel::QSqlRelationalTableModel(class QObject *, class QSqlDatabase) + ?insertColumns@QSqlQueryModel@@UAE_NHHABVQModelIndex@@@Z @ 431 NONAME ; bool QSqlQueryModel::insertColumns(int, int, class QModelIndex const &) + ?clear@QSqlRelationalTableModel@@UAEXXZ @ 432 NONAME ; void QSqlRelationalTableModel::clear(void) + ?boundValueCount@QSqlResult@@IBEHXZ @ 433 NONAME ; int QSqlResult::boundValueCount(void) const + ?staticMetaObject@QSqlRelationalTableModel@@2UQMetaObject@@B @ 434 NONAME ; struct QMetaObject const QSqlRelationalTableModel::staticMetaObject + ?record@QSqlDatabase@@QBE?AVQSqlRecord@@ABVQString@@@Z @ 435 NONAME ; class QSqlRecord QSqlDatabase::record(class QString const &) const + ?fetchPrevious@QSqlResult@@MAE_NXZ @ 436 NONAME ; bool QSqlResult::fetchPrevious(void) + ?record@QSqlQuery@@QBE?AVQSqlRecord@@XZ @ 437 NONAME ; class QSqlRecord QSqlQuery::record(void) const + ?record@QSQLiteDriver@@UBE?AVQSqlRecord@@ABVQString@@@Z @ 438 NONAME ; class QSqlRecord QSQLiteDriver::record(class QString const &) const + ?d_func@QSqlTableModel@@ABEPBVQSqlTableModelPrivate@@XZ @ 439 NONAME ; class QSqlTableModelPrivate const * QSqlTableModel::d_func(void) const + ?driverName@QSqlDatabase@@QBE?AVQString@@XZ @ 440 NONAME ; class QString QSqlDatabase::driverName(void) const + ?numericalPrecisionPolicy@QSqlDriver@@QBE?AW4NumericalPrecisionPolicy@QSql@@XZ @ 441 NONAME ; enum QSql::NumericalPrecisionPolicy QSqlDriver::numericalPrecisionPolicy(void) const + ??0QSqlIndex@@QAE@ABV0@@Z @ 442 NONAME ; QSqlIndex::QSqlIndex(class QSqlIndex const &) + ?isDirty@QSqlTableModel@@QBE_NABVQModelIndex@@@Z @ 443 NONAME ; bool QSqlTableModel::isDirty(class QModelIndex const &) const + ?subscribeToNotificationImplementation@QSqlDriver@@IAE_NABVQString@@@Z @ 444 NONAME ; bool QSqlDriver::subscribeToNotificationImplementation(class QString const &) + ?execBatch@QSqlQuery@@QAE_NW4BatchExecutionMode@1@@Z @ 445 NONAME ; bool QSqlQuery::execBatch(enum QSqlQuery::BatchExecutionMode) + ?removeColumns@QSqlQueryModel@@UAE_NHHABVQModelIndex@@@Z @ 446 NONAME ; bool QSqlQueryModel::removeColumns(int, int, class QModelIndex const &) + ?qt_metacall@QSqlTableModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 447 NONAME ; int QSqlTableModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isNull@QSqlRecord@@QBE_NH@Z @ 448 NONAME ; bool QSqlRecord::isNull(int) const + ?primeInsert@QSqlTableModel@@IAEXHAAVQSqlRecord@@@Z @ 449 NONAME ; void QSqlTableModel::primeInsert(int, class QSqlRecord &) + ?filter@QSqlTableModel@@QBE?AVQString@@XZ @ 450 NONAME ; class QString QSqlTableModel::filter(void) const + ?removeColumns@QSqlRelationalTableModel@@UAE_NHHABVQModelIndex@@@Z @ 451 NONAME ; bool QSqlRelationalTableModel::removeColumns(int, int, class QModelIndex const &) + ?setNumber@QSqlError@@QAEXH@Z @ 452 NONAME ; void QSqlError::setNumber(int) + ?record@QSqlQueryModel@@QBE?AVQSqlRecord@@XZ @ 453 NONAME ; class QSqlRecord QSqlQueryModel::record(void) const + ?setName@QSqlIndex@@QAEXABVQString@@@Z @ 454 NONAME ; void QSqlIndex::setName(class QString const &) + ?setDriverText@QSqlError@@QAEXABVQString@@@Z @ 455 NONAME ; void QSqlError::setDriverText(class QString const &) + ?trUtf8@QSQLiteDriver@@SA?AVQString@@PBD0H@Z @ 456 NONAME ; class QString QSQLiteDriver::trUtf8(char const *, char const *, int) + ?submit@QSqlTableModel@@UAE_NXZ @ 457 NONAME ; bool QSqlTableModel::submit(void) + ?d_func@QSqlQueryModel@@AAEPAVQSqlQueryModelPrivate@@XZ @ 458 NONAME ; class QSqlQueryModelPrivate * QSqlQueryModel::d_func(void) + ?remove@QSqlRecord@@QAEXH@Z @ 459 NONAME ; void QSqlRecord::remove(int) + ?contains@QSqlDatabase@@SA_NABVQString@@@Z @ 460 NONAME ; bool QSqlDatabase::contains(class QString const &) + ??0QSqlTableModel@@QAE@PAVQObject@@VQSqlDatabase@@@Z @ 461 NONAME ; QSqlTableModel::QSqlTableModel(class QObject *, class QSqlDatabase) + ?relation@QSqlRelationalTableModel@@QBE?AVQSqlRelation@@H@Z @ 462 NONAME ; class QSqlRelation QSqlRelationalTableModel::relation(int) const + diff --git a/src/s60installs/bwins/QtSvgu.def b/src/s60installs/bwins/QtSvgu.def new file mode 100644 index 0000000..c124ff9 --- /dev/null +++ b/src/s60installs/bwins/QtSvgu.def @@ -0,0 +1,149 @@ +EXPORTS + ?load@QSvgRenderer@@QAE_NABVQString@@@Z @ 1 NONAME ; bool QSvgRenderer::load(class QString const &) + ?namedNode@QSvgTinyDocument@@QBEPAVQSvgNode@@ABVQString@@@Z @ 2 NONAME ; class QSvgNode * QSvgTinyDocument::namedNode(class QString const &) const + ?setMaximumCacheSize@QGraphicsSvgItem@@QAEXABVQSize@@@Z @ 3 NONAME ; void QGraphicsSvgItem::setMaximumCacheSize(class QSize const &) + ??1QSvgWidget@@UAE@XZ @ 4 NONAME ; QSvgWidget::~QSvgWidget(void) + ?height@QSvgTinyDocument@@QBEHXZ @ 5 NONAME ; int QSvgTinyDocument::height(void) const + ?load@QSvgWidget@@QAEXABVQString@@@Z @ 6 NONAME ; void QSvgWidget::load(class QString const &) + ?d_func@QGraphicsSvgItem@@ABEPBVQGraphicsSvgItemPrivate@@XZ @ 7 NONAME ; class QGraphicsSvgItemPrivate const * QGraphicsSvgItem::d_func(void) const + ?d_func@QGraphicsSvgItem@@AAEPAVQGraphicsSvgItemPrivate@@XZ @ 8 NONAME ; class QGraphicsSvgItemPrivate * QGraphicsSvgItem::d_func(void) + ?render@QSvgRenderer@@QAEXPAVQPainter@@ABVQString@@ABVQRectF@@@Z @ 9 NONAME ; void QSvgRenderer::render(class QPainter *, class QString const &, class QRectF const &) + ?trUtf8@QGraphicsSvgItem@@SA?AVQString@@PBD0@Z @ 10 NONAME ; class QString QGraphicsSvgItem::trUtf8(char const *, char const *) + ?draw@QSvgTinyDocument@@UAEXPAVQPainter@@AAUQSvgExtraStates@@@Z @ 11 NONAME ; void QSvgTinyDocument::draw(class QPainter *, struct QSvgExtraStates &) + ?tr@QSvgRenderer@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString QSvgRenderer::tr(char const *, char const *) + ?elementExists@QSvgRenderer@@QBE_NABVQString@@@Z @ 13 NONAME ; bool QSvgRenderer::elementExists(class QString const &) const + ?repaintNeeded@QSvgRenderer@@IAEXXZ @ 14 NONAME ; void QSvgRenderer::repaintNeeded(void) + ?qt_metacast@QSvgWidget@@UAEPAXPBD@Z @ 15 NONAME ; void * QSvgWidget::qt_metacast(char const *) + ??_EQSvgRenderer@@UAE@I@Z @ 16 NONAME ; QSvgRenderer::~QSvgRenderer(unsigned int) + ?d_func@QSvgGenerator@@ABEPBVQSvgGeneratorPrivate@@XZ @ 17 NONAME ; class QSvgGeneratorPrivate const * QSvgGenerator::d_func(void) const + ?animationDuration@QSvgTinyDocument@@QBEHXZ @ 18 NONAME ; int QSvgTinyDocument::animationDuration(void) const + ??0QSvgGenerator@@QAE@XZ @ 19 NONAME ; QSvgGenerator::QSvgGenerator(void) + ?load@QSvgRenderer@@QAE_NPAVQXmlStreamReader@@@Z @ 20 NONAME ; bool QSvgRenderer::load(class QXmlStreamReader *) + ?d_func@QSvgWidget@@ABEPBVQSvgWidgetPrivate@@XZ @ 21 NONAME ; class QSvgWidgetPrivate const * QSvgWidget::d_func(void) const + ?fileName@QSvgGenerator@@QBE?AVQString@@XZ @ 22 NONAME ; class QString QSvgGenerator::fileName(void) const + ?outputDevice@QSvgGenerator@@QBEPAVQIODevice@@XZ @ 23 NONAME ; class QIODevice * QSvgGenerator::outputDevice(void) const + ?svgFont@QSvgTinyDocument@@QBEPAVQSvgFont@@ABVQString@@@Z @ 24 NONAME ; class QSvgFont * QSvgTinyDocument::svgFont(class QString const &) const + ?paintEvent@QSvgWidget@@MAEXPAVQPaintEvent@@@Z @ 25 NONAME ; void QSvgWidget::paintEvent(class QPaintEvent *) + ?paint@QGraphicsSvgItem@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 26 NONAME ; void QGraphicsSvgItem::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?qt_metacall@QSvgRenderer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int QSvgRenderer::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QGraphicsSvgItem@@UAEPAXPBD@Z @ 28 NONAME ; void * QGraphicsSvgItem::qt_metacast(char const *) + ??_EQGraphicsSvgItem@@UAE@I@Z @ 29 NONAME ; QGraphicsSvgItem::~QGraphicsSvgItem(unsigned int) + ?render@QSvgRenderer@@QAEXPAVQPainter@@ABVQRectF@@@Z @ 30 NONAME ; void QSvgRenderer::render(class QPainter *, class QRectF const &) + ?setFramesPerSecond@QSvgRenderer@@QAEXH@Z @ 31 NONAME ; void QSvgRenderer::setFramesPerSecond(int) + ??0QSvgRenderer@@QAE@ABVQByteArray@@PAVQObject@@@Z @ 32 NONAME ; QSvgRenderer::QSvgRenderer(class QByteArray const &, class QObject *) + ?boundsOnElement@QSvgRenderer@@QBE?AVQRectF@@ABVQString@@@Z @ 33 NONAME ; class QRectF QSvgRenderer::boundsOnElement(class QString const &) const + ?draw@QSvgTinyDocument@@QAEXPAVQPainter@@ABVQRectF@@@Z @ 34 NONAME ; void QSvgTinyDocument::draw(class QPainter *, class QRectF const &) + ?currentElapsed@QSvgTinyDocument@@QBEHXZ @ 35 NONAME ; int QSvgTinyDocument::currentElapsed(void) const + ?setFramesPerSecond@QSvgTinyDocument@@QAEXH@Z @ 36 NONAME ; void QSvgTinyDocument::setFramesPerSecond(int) + ??0QSvgRenderer@@QAE@PAVQXmlStreamReader@@PAVQObject@@@Z @ 37 NONAME ; QSvgRenderer::QSvgRenderer(class QXmlStreamReader *, class QObject *) + ?addNamedStyle@QSvgTinyDocument@@QAEXABVQString@@PAVQSvgFillStyleProperty@@@Z @ 38 NONAME ; void QSvgTinyDocument::addNamedStyle(class QString const &, class QSvgFillStyleProperty *) + ??0QGraphicsSvgItem@@QAE@ABVQString@@PAVQGraphicsItem@@@Z @ 39 NONAME ; QGraphicsSvgItem::QGraphicsSvgItem(class QString const &, class QGraphicsItem *) + ??_EQSvgGenerator@@UAE@I@Z @ 40 NONAME ; QSvgGenerator::~QSvgGenerator(unsigned int) + ?staticMetaObject@QGraphicsSvgItem@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const QGraphicsSvgItem::staticMetaObject + ?render@QSvgRenderer@@QAEXPAVQPainter@@@Z @ 42 NONAME ; void QSvgRenderer::render(class QPainter *) + ??0QSvgRenderer@@QAE@PAVQObject@@@Z @ 43 NONAME ; QSvgRenderer::QSvgRenderer(class QObject *) + ??1QSvgRenderer@@UAE@XZ @ 44 NONAME ; QSvgRenderer::~QSvgRenderer(void) + ?viewBox@QSvgRenderer@@QBE?AVQRect@@XZ @ 45 NONAME ; class QRect QSvgRenderer::viewBox(void) const + ?resolution@QSvgGenerator@@QBEHXZ @ 46 NONAME ; int QSvgGenerator::resolution(void) const + ?staticMetaObject@QSvgRenderer@@2UQMetaObject@@B @ 47 NONAME ; struct QMetaObject const QSvgRenderer::staticMetaObject + ?setViewBox@QSvgRenderer@@QAEXABVQRectF@@@Z @ 48 NONAME ; void QSvgRenderer::setViewBox(class QRectF const &) + ?setDescription@QSvgGenerator@@QAEXABVQString@@@Z @ 49 NONAME ; void QSvgGenerator::setDescription(class QString const &) + ?type@QGraphicsSvgItem@@UBEHXZ @ 50 NONAME ; int QGraphicsSvgItem::type(void) const + ?size@QSvgTinyDocument@@QBE?AVQSize@@XZ @ 51 NONAME ; class QSize QSvgTinyDocument::size(void) const + ?setResolution@QSvgGenerator@@QAEXH@Z @ 52 NONAME ; void QSvgGenerator::setResolution(int) + ?setViewBox@QSvgTinyDocument@@QAEXABVQRectF@@@Z @ 53 NONAME ; void QSvgTinyDocument::setViewBox(class QRectF const &) + ?type@QSvgTinyDocument@@UBE?AW4Type@QSvgNode@@XZ @ 54 NONAME ; enum QSvgNode::Type QSvgTinyDocument::type(void) const + ?renderer@QSvgWidget@@QBEPAVQSvgRenderer@@XZ @ 55 NONAME ; class QSvgRenderer * QSvgWidget::renderer(void) const + ?trUtf8@QSvgRenderer@@SA?AVQString@@PBD0@Z @ 56 NONAME ; class QString QSvgRenderer::trUtf8(char const *, char const *) + ?setSize@QSvgGenerator@@QAEXABVQSize@@@Z @ 57 NONAME ; void QSvgGenerator::setSize(class QSize const &) + ?elementExists@QSvgTinyDocument@@QBE_NABVQString@@@Z @ 58 NONAME ; bool QSvgTinyDocument::elementExists(class QString const &) const + ?description@QSvgGenerator@@QBE?AVQString@@XZ @ 59 NONAME ; class QString QSvgGenerator::description(void) const + ?setCurrentFrame@QSvgRenderer@@QAEXH@Z @ 60 NONAME ; void QSvgRenderer::setCurrentFrame(int) + ?load@QSvgRenderer@@QAE_NABVQByteArray@@@Z @ 61 NONAME ; bool QSvgRenderer::load(class QByteArray const &) + ?currentFrame@QSvgRenderer@@QBEHXZ @ 62 NONAME ; int QSvgRenderer::currentFrame(void) const + ?tr@QGraphicsSvgItem@@SA?AVQString@@PBD0@Z @ 63 NONAME ; class QString QGraphicsSvgItem::tr(char const *, char const *) + ?getStaticMetaObject@QGraphicsSvgItem@@SAABUQMetaObject@@XZ @ 64 NONAME ; struct QMetaObject const & QGraphicsSvgItem::getStaticMetaObject(void) + ?setHeight@QSvgTinyDocument@@QAEXH_N@Z @ 65 NONAME ; void QSvgTinyDocument::setHeight(int, bool) + ?boundsOnElement@QSvgTinyDocument@@QBE?AVQRectF@@ABVQString@@@Z @ 66 NONAME ; class QRectF QSvgTinyDocument::boundsOnElement(class QString const &) const + ?draw@QSvgTinyDocument@@QAEXPAVQPainter@@@Z @ 67 NONAME ; void QSvgTinyDocument::draw(class QPainter *) + ?qt_metacall@QGraphicsSvgItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 68 NONAME ; int QGraphicsSvgItem::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@QSvgWidget@@UBEPBUQMetaObject@@XZ @ 69 NONAME ; struct QMetaObject const * QSvgWidget::metaObject(void) const + ??_EQSvgTinyDocument@@UAE@I@Z @ 70 NONAME ; QSvgTinyDocument::~QSvgTinyDocument(unsigned int) + ?getStaticMetaObject@QSvgWidget@@SAABUQMetaObject@@XZ @ 71 NONAME ; struct QMetaObject const & QSvgWidget::getStaticMetaObject(void) + ??0QSvgTinyDocument@@QAE@XZ @ 72 NONAME ; QSvgTinyDocument::QSvgTinyDocument(void) + ?paintEngine@QSvgGenerator@@MBEPAVQPaintEngine@@XZ @ 73 NONAME ; class QPaintEngine * QSvgGenerator::paintEngine(void) const + ?animated@QSvgTinyDocument@@QBE_NXZ @ 74 NONAME ; bool QSvgTinyDocument::animated(void) const + ?staticMetaObject@QSvgWidget@@2UQMetaObject@@B @ 75 NONAME ; struct QMetaObject const QSvgWidget::staticMetaObject + ?sizeHint@QSvgWidget@@UBE?AVQSize@@XZ @ 76 NONAME ; class QSize QSvgWidget::sizeHint(void) const + ?tr@QSvgRenderer@@SA?AVQString@@PBD0H@Z @ 77 NONAME ; class QString QSvgRenderer::tr(char const *, char const *, int) + ?d_func@QSvgGenerator@@AAEPAVQSvgGeneratorPrivate@@XZ @ 78 NONAME ; class QSvgGeneratorPrivate * QSvgGenerator::d_func(void) + ?widthPercent@QSvgTinyDocument@@QBE_NXZ @ 79 NONAME ; bool QSvgTinyDocument::widthPercent(void) const + ?qt_metacall@QSvgWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 80 NONAME ; int QSvgWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setWidth@QSvgTinyDocument@@QAEXH_N@Z @ 81 NONAME ; void QSvgTinyDocument::setWidth(int, bool) + ?trUtf8@QSvgWidget@@SA?AVQString@@PBD0@Z @ 82 NONAME ; class QString QSvgWidget::trUtf8(char const *, char const *) + ??0QSvgRenderer@@QAE@ABVQString@@PAVQObject@@@Z @ 83 NONAME ; QSvgRenderer::QSvgRenderer(class QString const &, class QObject *) + ?matrixForElement@QSvgTinyDocument@@QBE?AVQMatrix@@ABVQString@@@Z @ 84 NONAME ; class QMatrix QSvgTinyDocument::matrixForElement(class QString const &) const + ?getStaticMetaObject@QSvgRenderer@@SAABUQMetaObject@@XZ @ 85 NONAME ; struct QMetaObject const & QSvgRenderer::getStaticMetaObject(void) + ?title@QSvgGenerator@@QBE?AVQString@@XZ @ 86 NONAME ; class QString QSvgGenerator::title(void) const + ?size@QSvgGenerator@@QBE?AVQSize@@XZ @ 87 NONAME ; class QSize QSvgGenerator::size(void) const + ?viewBoxF@QSvgRenderer@@QBE?AVQRectF@@XZ @ 88 NONAME ; class QRectF QSvgRenderer::viewBoxF(void) const + ?isCachingEnabled@QGraphicsSvgItem@@QBE_NXZ @ 89 NONAME ; bool QGraphicsSvgItem::isCachingEnabled(void) const + ?defaultSize@QSvgRenderer@@QBE?AVQSize@@XZ @ 90 NONAME ; class QSize QSvgRenderer::defaultSize(void) const + ?load@QSvgTinyDocument@@SAPAV1@PAVQXmlStreamReader@@@Z @ 91 NONAME ; class QSvgTinyDocument * QSvgTinyDocument::load(class QXmlStreamReader *) + ?setTitle@QSvgGenerator@@QAEXABVQString@@@Z @ 92 NONAME ; void QSvgGenerator::setTitle(class QString const &) + ??_EQSvgWidget@@UAE@I@Z @ 93 NONAME ; QSvgWidget::~QSvgWidget(unsigned int) + ?d_func@QSvgRenderer@@ABEPBVQSvgRendererPrivate@@XZ @ 94 NONAME ; class QSvgRendererPrivate const * QSvgRenderer::d_func(void) const + ?animated@QSvgRenderer@@QBE_NXZ @ 95 NONAME ; bool QSvgRenderer::animated(void) const + ?metric@QSvgGenerator@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 96 NONAME ; int QSvgGenerator::metric(enum QPaintDevice::PaintDeviceMetric) const + ?matrixForElement@QSvgRenderer@@QBE?AVQMatrix@@ABVQString@@@Z @ 97 NONAME ; class QMatrix QSvgRenderer::matrixForElement(class QString const &) const + ??1QGraphicsSvgItem@@UAE@XZ @ 98 NONAME ; QGraphicsSvgItem::~QGraphicsSvgItem(void) + ?d_func@QSvgRenderer@@AAEPAVQSvgRendererPrivate@@XZ @ 99 NONAME ; class QSvgRendererPrivate * QSvgRenderer::d_func(void) + ?qt_metacast@QSvgRenderer@@UAEPAXPBD@Z @ 100 NONAME ; void * QSvgRenderer::qt_metacast(char const *) + ??1QSvgGenerator@@UAE@XZ @ 101 NONAME ; QSvgGenerator::~QSvgGenerator(void) + ??1QSvgTinyDocument@@UAE@XZ @ 102 NONAME ; QSvgTinyDocument::~QSvgTinyDocument(void) + ?load@QSvgTinyDocument@@SAPAV1@ABVQByteArray@@@Z @ 103 NONAME ; class QSvgTinyDocument * QSvgTinyDocument::load(class QByteArray const &) + ?d_func@QSvgWidget@@AAEPAVQSvgWidgetPrivate@@XZ @ 104 NONAME ; class QSvgWidgetPrivate * QSvgWidget::d_func(void) + ?isValid@QSvgRenderer@@QBE_NXZ @ 105 NONAME ; bool QSvgRenderer::isValid(void) const + ?metaObject@QSvgRenderer@@UBEPBUQMetaObject@@XZ @ 106 NONAME ; struct QMetaObject const * QSvgRenderer::metaObject(void) const + ?addSvgFont@QSvgTinyDocument@@QAEXPAVQSvgFont@@@Z @ 107 NONAME ; void QSvgTinyDocument::addSvgFont(class QSvgFont *) + ?viewBoxF@QSvgGenerator@@QBE?AVQRectF@@XZ @ 108 NONAME ; class QRectF QSvgGenerator::viewBoxF(void) const + ?tr@QSvgWidget@@SA?AVQString@@PBD0H@Z @ 109 NONAME ; class QString QSvgWidget::tr(char const *, char const *, int) + ?addNamedNode@QSvgTinyDocument@@QAEXABVQString@@PAVQSvgNode@@@Z @ 110 NONAME ; void QSvgTinyDocument::addNamedNode(class QString const &, class QSvgNode *) + ?tr@QSvgWidget@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString QSvgWidget::tr(char const *, char const *) + ??0QSvgWidget@@QAE@PAVQWidget@@@Z @ 112 NONAME ; QSvgWidget::QSvgWidget(class QWidget *) + ?namedStyle@QSvgTinyDocument@@QBEPAVQSvgFillStyleProperty@@ABVQString@@@Z @ 113 NONAME ; class QSvgFillStyleProperty * QSvgTinyDocument::namedStyle(class QString const &) const + ?preserveAspectRatio@QSvgTinyDocument@@QBE_NXZ @ 114 NONAME ; bool QSvgTinyDocument::preserveAspectRatio(void) const + ?boundingRect@QGraphicsSvgItem@@UBE?AVQRectF@@XZ @ 115 NONAME ; class QRectF QGraphicsSvgItem::boundingRect(void) const + ?maximumCacheSize@QGraphicsSvgItem@@QBE?AVQSize@@XZ @ 116 NONAME ; class QSize QGraphicsSvgItem::maximumCacheSize(void) const + ?setSharedRenderer@QGraphicsSvgItem@@QAEXPAVQSvgRenderer@@@Z @ 117 NONAME ; void QGraphicsSvgItem::setSharedRenderer(class QSvgRenderer *) + ?setViewBox@QSvgRenderer@@QAEXABVQRect@@@Z @ 118 NONAME ; void QSvgRenderer::setViewBox(class QRect const &) + ?framesPerSecond@QSvgRenderer@@QBEHXZ @ 119 NONAME ; int QSvgRenderer::framesPerSecond(void) const + ?restartAnimation@QSvgTinyDocument@@QAEXXZ @ 120 NONAME ; void QSvgTinyDocument::restartAnimation(void) + ?tr@QGraphicsSvgItem@@SA?AVQString@@PBD0H@Z @ 121 NONAME ; class QString QGraphicsSvgItem::tr(char const *, char const *, int) + ?currentFrame@QSvgTinyDocument@@QBEHXZ @ 122 NONAME ; int QSvgTinyDocument::currentFrame(void) const + ?renderer@QGraphicsSvgItem@@QBEPAVQSvgRenderer@@XZ @ 123 NONAME ; class QSvgRenderer * QGraphicsSvgItem::renderer(void) const + ?setFileName@QSvgGenerator@@QAEXABVQString@@@Z @ 124 NONAME ; void QSvgGenerator::setFileName(class QString const &) + ?draw@QSvgTinyDocument@@QAEXPAVQPainter@@ABVQString@@ABVQRectF@@@Z @ 125 NONAME ; void QSvgTinyDocument::draw(class QPainter *, class QString const &, class QRectF const &) + ?viewBox@QSvgGenerator@@QBE?AVQRect@@XZ @ 126 NONAME ; class QRect QSvgGenerator::viewBox(void) const + ?trUtf8@QSvgRenderer@@SA?AVQString@@PBD0H@Z @ 127 NONAME ; class QString QSvgRenderer::trUtf8(char const *, char const *, int) + ?metaObject@QGraphicsSvgItem@@UBEPBUQMetaObject@@XZ @ 128 NONAME ; struct QMetaObject const * QGraphicsSvgItem::metaObject(void) const + ?trUtf8@QSvgWidget@@SA?AVQString@@PBD0H@Z @ 129 NONAME ; class QString QSvgWidget::trUtf8(char const *, char const *, int) + ?elementId@QGraphicsSvgItem@@QBE?AVQString@@XZ @ 130 NONAME ; class QString QGraphicsSvgItem::elementId(void) const + ?setOutputDevice@QSvgGenerator@@QAEXPAVQIODevice@@@Z @ 131 NONAME ; void QSvgGenerator::setOutputDevice(class QIODevice *) + ?load@QSvgWidget@@QAEXABVQByteArray@@@Z @ 132 NONAME ; void QSvgWidget::load(class QByteArray const &) + ?viewBox@QSvgTinyDocument@@QBE?AVQRectF@@XZ @ 133 NONAME ; class QRectF QSvgTinyDocument::viewBox(void) const + ?setAnimated@QSvgTinyDocument@@QAEX_N@Z @ 134 NONAME ; void QSvgTinyDocument::setAnimated(bool) + ?setElementId@QGraphicsSvgItem@@QAEXABVQString@@@Z @ 135 NONAME ; void QGraphicsSvgItem::setElementId(class QString const &) + ?width@QSvgTinyDocument@@QBEHXZ @ 136 NONAME ; int QSvgTinyDocument::width(void) const + ?animationDuration@QSvgRenderer@@QBEHXZ @ 137 NONAME ; int QSvgRenderer::animationDuration(void) const + ?setCurrentFrame@QSvgTinyDocument@@QAEXH@Z @ 138 NONAME ; void QSvgTinyDocument::setCurrentFrame(int) + ?mapSourceToTarget@QSvgTinyDocument@@AAEXPAVQPainter@@ABVQRectF@@1@Z @ 139 NONAME ; void QSvgTinyDocument::mapSourceToTarget(class QPainter *, class QRectF const &, class QRectF const &) + ??0QSvgWidget@@QAE@ABVQString@@PAVQWidget@@@Z @ 140 NONAME ; QSvgWidget::QSvgWidget(class QString const &, class QWidget *) + ??0QGraphicsSvgItem@@QAE@PAVQGraphicsItem@@@Z @ 141 NONAME ; QGraphicsSvgItem::QGraphicsSvgItem(class QGraphicsItem *) + ?setViewBox@QSvgGenerator@@QAEXABVQRectF@@@Z @ 142 NONAME ; void QSvgGenerator::setViewBox(class QRectF const &) + ?load@QSvgTinyDocument@@SAPAV1@ABVQString@@@Z @ 143 NONAME ; class QSvgTinyDocument * QSvgTinyDocument::load(class QString const &) + ?setViewBox@QSvgGenerator@@QAEXABVQRect@@@Z @ 144 NONAME ; void QSvgGenerator::setViewBox(class QRect const &) + ?setCachingEnabled@QGraphicsSvgItem@@QAEX_N@Z @ 145 NONAME ; void QGraphicsSvgItem::setCachingEnabled(bool) + ?trUtf8@QGraphicsSvgItem@@SA?AVQString@@PBD0H@Z @ 146 NONAME ; class QString QGraphicsSvgItem::trUtf8(char const *, char const *, int) + ?heightPercent@QSvgTinyDocument@@QBE_NXZ @ 147 NONAME ; bool QSvgTinyDocument::heightPercent(void) const + diff --git a/src/s60installs/bwins/QtTestu.def b/src/s60installs/bwins/QtTestu.def new file mode 100644 index 0000000..17ef818 --- /dev/null +++ b/src/s60installs/bwins/QtTestu.def @@ -0,0 +1,79 @@ +EXPORTS + ?testObject@QTest@@YAPAVQObject@@XZ @ 1 NONAME ; class QObject * QTest::testObject(void) + ?trUtf8@QTestEventLoop@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString QTestEventLoop::trUtf8(char const *, char const *) + ?toString@QTest@@YAPADPBD@Z @ 3 NONAME ; char * QTest::toString(char const *) + ?append@QTestData@@QAEXHPBX@Z @ 4 NONAME ; void QTestData::append(int, void const *) + ?getStaticMetaObject@QTestEventLoop@@SAABUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const & QTestEventLoop::getStaticMetaObject(void) + ?qGlobalData@QTest@@YAPAXPBDH@Z @ 6 NONAME ; void * QTest::qGlobalData(char const *, int) + ??1QTestData@@QAE@XZ @ 7 NONAME ; QTestData::~QTestData(void) + ??1QTestEventLoop@@UAE@XZ @ 8 NONAME ; QTestEventLoop::~QTestEventLoop(void) + ?qExec@QTest@@YAHPAVQObject@@ABVQStringList@@@Z @ 9 NONAME ; int QTest::qExec(class QObject *, class QStringList const &) + ?currentDataTag@QTest@@YAPBDXZ @ 10 NONAME ; char const * QTest::currentDataTag(void) + ??0QBenchmarkIterationController@QTest@@QAE@XZ @ 11 NONAME ; QTest::QBenchmarkIterationController::QBenchmarkIterationController(void) + ??0QBenchmarkIterationController@QTest@@QAE@W4RunMode@01@@Z @ 12 NONAME ; QTest::QBenchmarkIterationController::QBenchmarkIterationController(enum QTest::QBenchmarkIterationController::RunMode) + ?newRow@QTest@@YAAAVQTestData@@PBD@Z @ 13 NONAME ; class QTestData & QTest::newRow(char const *) + ?compare_helper@QTest@@YA_N_NPBD1H@Z @ 14 NONAME ; bool QTest::compare_helper(bool, char const *, char const *, int) + ?isDone@QBenchmarkIterationController@QTest@@QAE_NXZ @ 15 NONAME ; bool QTest::QBenchmarkIterationController::isDone(void) + ?qCompare@?$@N@QTest@@YA_NABN0PBD11H@Z @ 16 NONAME ; bool QTest::qCompare(double const &, double const &, char const *, char const *, char const *, int) + ?changeInterval@QTestEventLoop@@QAEXH@Z @ 17 NONAME ; void QTestEventLoop::changeInterval(int) + ??_EQTestEventLoop@@UAE@I@Z @ 18 NONAME ; QTestEventLoop::~QTestEventLoop(unsigned int) + ?keyToAscii@QTest@@YADW4Key@Qt@@@Z @ 19 NONAME ; char QTest::keyToAscii(enum Qt::Key) + ?toString@?$@_J@QTest@@YAPADAB_J@Z @ 20 NONAME ; char * QTest::toString(long long const &) + ?beginBenchmarkMeasurement@QTest@@YAXXZ @ 21 NONAME ; void QTest::beginBenchmarkMeasurement(void) + ?toString@?$@H@QTest@@YAPADABH@Z @ 22 NONAME ; char * QTest::toString(int const &) + ?toString@?$@K@QTest@@YAPADABK@Z @ 23 NONAME ; char * QTest::toString(unsigned long const &) + ?toString@?$@N@QTest@@YAPADABN@Z @ 24 NONAME ; char * QTest::toString(double const &) + ?qExec@QTest@@YAHPAVQObject@@HPAPAD@Z @ 25 NONAME ; int QTest::qExec(class QObject *, int, char * *) + ?exitLoop@QTestEventLoop@@QAEXXZ @ 26 NONAME ; void QTestEventLoop::exitLoop(void) + ?currentTestFunction@QTest@@YAPBDXZ @ 27 NONAME ; char const * QTest::currentTestFunction(void) + ??0QTestData@@AAE@PBDPAVQTestTable@@@Z @ 28 NONAME ; QTestData::QTestData(char const *, class QTestTable *) + ?addColumnInternal@QTest@@YAXHPBD@Z @ 29 NONAME ; void QTest::addColumnInternal(int, char const *) + ?trUtf8@QTestEventLoop@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString QTestEventLoop::trUtf8(char const *, char const *, int) + ?parent@QTestData@@QBEPAVQTestTable@@XZ @ 31 NONAME ; class QTestTable * QTestData::parent(void) const + ?dataCount@QTestData@@QBEHXZ @ 32 NONAME ; int QTestData::dataCount(void) const + ?qVerify@QTest@@YA_N_NPBD11H@Z @ 33 NONAME ; bool QTest::qVerify(bool, char const *, char const *, char const *, int) + ?next@QBenchmarkIterationController@QTest@@QAEXXZ @ 34 NONAME ; void QTest::QBenchmarkIterationController::next(void) + ?tr@QTestEventLoop@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString QTestEventLoop::tr(char const *, char const *, int) + ?qWarn@QTest@@YAXPBD@Z @ 36 NONAME ; void QTest::qWarn(char const *) + ?defaultMouseDelay@QTest@@YAHXZ @ 37 NONAME ; int QTest::defaultMouseDelay(void) + ?timeout@QTestEventLoop@@QBE_NXZ @ 38 NONAME ; bool QTestEventLoop::timeout(void) const + ?data@QTestData@@QBEPAXH@Z @ 39 NONAME ; void * QTestData::data(int) const + ?enterLoop@QTestEventLoop@@QAEXH@Z @ 40 NONAME ; void QTestEventLoop::enterLoop(int) + ?asciiToKey@QTest@@YA?AW4Key@Qt@@D@Z @ 41 NONAME ; enum Qt::Key QTest::asciiToKey(char) + ?toString@QTest@@YAPADPBX@Z @ 42 NONAME ; char * QTest::toString(void const *) + ?compare_string_helper@QTest@@YA_NPBD0000H@Z @ 43 NONAME ; bool QTest::compare_string_helper(char const *, char const *, char const *, char const *, char const *, int) + ?qt_metacall@QTestEventLoop@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 44 NONAME ; int QTestEventLoop::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qElementData@QTest@@YAPAXPBDH@Z @ 45 NONAME ; void * QTest::qElementData(char const *, int) + ?compare_helper@QTest@@YA_N_NPBDPAD2111H@Z @ 46 NONAME ; bool QTest::compare_helper(bool, char const *, char *, char *, char const *, char const *, char const *, int) + ?qt_metacast@QTestEventLoop@@UAEPAXPBD@Z @ 47 NONAME ; void * QTestEventLoop::qt_metacast(char const *) + ?defaultKeyVerbose@QTest@@YA_NXZ @ 48 NONAME ; bool QTest::defaultKeyVerbose(void) + ?qSkip@QTest@@YAXPBDW4SkipMode@1@0H@Z @ 49 NONAME ; void QTest::qSkip(char const *, enum QTest::SkipMode, char const *, int) + ?toString@?$@D@QTest@@YAPADABD@Z @ 50 NONAME ; char * QTest::toString(char const &) + ?toString@?$@G@QTest@@YAPADABG@Z @ 51 NONAME ; char * QTest::toString(unsigned short const &) + ?toString@?$@J@QTest@@YAPADABJ@Z @ 52 NONAME ; char * QTest::toString(long const &) + ?tr@QTestEventLoop@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString QTestEventLoop::tr(char const *, char const *) + ?timerEvent@QTestEventLoop@@MAEXPAVQTimerEvent@@@Z @ 54 NONAME ; void QTestEventLoop::timerEvent(class QTimerEvent *) + ?toString@?$@M@QTest@@YAPADABM@Z @ 55 NONAME ; char * QTest::toString(float const &) + ?metaObject@QTestEventLoop@@UBEPBUQMetaObject@@XZ @ 56 NONAME ; struct QMetaObject const * QTestEventLoop::metaObject(void) const + ?instance@QTestEventLoop@@SAAAV1@XZ @ 57 NONAME ; class QTestEventLoop & QTestEventLoop::instance(void) + ?toString@?$@_K@QTest@@YAPADAB_K@Z @ 58 NONAME ; char * QTest::toString(unsigned long long const &) + ??_EQTestData@@QAE@I@Z @ 59 NONAME ; QTestData::~QTestData(unsigned int) + ?qCompare@?$@M@QTest@@YA_NABM0PBD11H@Z @ 60 NONAME ; bool QTest::qCompare(float const &, float const &, char const *, char const *, char const *, int) + ?toHexRepresentation@QTest@@YAPADPBDH@Z @ 61 NONAME ; char * QTest::toHexRepresentation(char const *, int) + ?qt_snprintf@QTest@@YAHPADHPBDZZ @ 62 NONAME ; int QTest::qt_snprintf(char *, int, char const *, ...) + ?qData@QTest@@YAPAXPBDH@Z @ 63 NONAME ; void * QTest::qData(char const *, int) + ?defaultKeyDelay@QTest@@YAHXZ @ 64 NONAME ; int QTest::defaultKeyDelay(void) + ??0QTestEventLoop@@QAE@PAVQObject@@@Z @ 65 NONAME ; QTestEventLoop::QTestEventLoop(class QObject *) + ?ignoreMessage@QTest@@YAXW4QtMsgType@@PBD@Z @ 66 NONAME ; void QTest::ignoreMessage(enum QtMsgType, char const *) + ?endBenchmarkMeasurement@QTest@@YA_JXZ @ 67 NONAME ; long long QTest::endBenchmarkMeasurement(void) + ?qSleep@QTest@@YAXH@Z @ 68 NONAME ; void QTest::qSleep(int) + ?staticMetaObject@QTestEventLoop@@2UQMetaObject@@B @ 69 NONAME ; struct QMetaObject const QTestEventLoop::staticMetaObject + ?toString@?$@F@QTest@@YAPADABF@Z @ 70 NONAME ; char * QTest::toString(short const &) + ?toString@?$@I@QTest@@YAPADABI@Z @ 71 NONAME ; char * QTest::toString(unsigned int const &) + ?dataTag@QTestData@@QBEPBDXZ @ 72 NONAME ; char const * QTestData::dataTag(void) const + ?qExpectFail@QTest@@YA_NPBD0W4TestFailMode@1@0H@Z @ 73 NONAME ; bool QTest::qExpectFail(char const *, char const *, enum QTest::TestFailMode, char const *, int) + ?toString@?$@_N@QTest@@YAPADAB_N@Z @ 74 NONAME ; char * QTest::toString(bool const &) + ?currentTestFailed@QTest@@YA_NXZ @ 75 NONAME ; bool QTest::currentTestFailed(void) + ??1QBenchmarkIterationController@QTest@@QAE@XZ @ 76 NONAME ; QTest::QBenchmarkIterationController::~QBenchmarkIterationController(void) + ?qFail@QTest@@YAXPBD0H@Z @ 77 NONAME ; void QTest::qFail(char const *, char const *, int) + diff --git a/src/s60installs/bwins/QtXmlu.def b/src/s60installs/bwins/QtXmlu.def new file mode 100644 index 0000000..df93780 --- /dev/null +++ b/src/s60installs/bwins/QtXmlu.def @@ -0,0 +1,410 @@ +EXPORTS + ?setContent@QDomDocument@@QAE_NPAVQXmlInputSource@@_NPAVQString@@PAH3@Z @ 1 NONAME ; bool QDomDocument::setContent(class QXmlInputSource *, bool, class QString *, int *, int *) + ??1QXmlLocator@@UAE@XZ @ 2 NONAME ; QXmlLocator::~QXmlLocator(void) + ?resolveEntity@QXmlDefaultHandler@@UAE_NABVQString@@0AAPAVQXmlInputSource@@@Z @ 3 NONAME ; bool QXmlDefaultHandler::resolveEntity(class QString const &, class QString const &, class QXmlInputSource * &) + ?removeAttributeNS@QDomElement@@QAEXABVQString@@0@Z @ 4 NONAME ; void QDomElement::removeAttributeNS(class QString const &, class QString const &) + ??0QDomDocument@@QAE@XZ @ 5 NONAME ; QDomDocument::QDomDocument(void) + ?setDeclHandler@QXmlSimpleReader@@UAEXPAVQXmlDeclHandler@@@Z @ 6 NONAME ; void QXmlSimpleReader::setDeclHandler(class QXmlDeclHandler *) + ??4QDomNamedNodeMap@@QAEAAV0@ABV0@@Z @ 7 NONAME ; class QDomNamedNodeMap & QDomNamedNodeMap::operator=(class QDomNamedNodeMap const &) + ?save@QDomNode@@QBEXAAVQTextStream@@HW4EncodingPolicy@1@@Z @ 8 NONAME ; void QDomNode::save(class QTextStream &, int, enum QDomNode::EncodingPolicy) const + ?lineNumber@QXmlParseException@@QBEHXZ @ 9 NONAME ; int QXmlParseException::lineNumber(void) const + ??_EQXmlDTDHandler@@UAE@I@Z @ 10 NONAME ; QXmlDTDHandler::~QXmlDTDHandler(unsigned int) + ?processName@QXmlNamespaceSupport@@QBEXABVQString@@_NAAV2@2@Z @ 11 NONAME ; void QXmlNamespaceSupport::processName(class QString const &, bool, class QString &, class QString &) const + ??1QXmlParseException@@QAE@XZ @ 12 NONAME ; QXmlParseException::~QXmlParseException(void) + ?pushContext@QXmlNamespaceSupport@@QAEXXZ @ 13 NONAME ; void QXmlNamespaceSupport::pushContext(void) + ??4QDomProcessingInstruction@@QAEAAV0@ABV0@@Z @ 14 NONAME ; class QDomProcessingInstruction & QDomProcessingInstruction::operator=(class QDomProcessingInstruction const &) + ??0QXmlContentHandler@@QAE@XZ @ 15 NONAME ; QXmlContentHandler::QXmlContentHandler(void) + ?d_func@QXmlSimpleReader@@ABEPBVQXmlSimpleReaderPrivate@@XZ @ 16 NONAME ; class QXmlSimpleReaderPrivate const * QXmlSimpleReader::d_func(void) const + ?setContent@QDomDocument@@QAE_NABVQString@@_NPAV2@PAH3@Z @ 17 NONAME ; bool QDomDocument::setContent(class QString const &, bool, class QString *, int *, int *) + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@H@Z @ 18 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, int) + ?tagName@QDomElement@@QBE?AVQString@@XZ @ 19 NONAME ; class QString QDomElement::tagName(void) const + ?setContent@QDomDocument@@QAE_NPAVQIODevice@@_NPAVQString@@PAH3@Z @ 20 NONAME ; bool QDomDocument::setContent(class QIODevice *, bool, class QString *, int *, int *) + ?setContent@QDomDocument@@QAE_NABVQString@@PAV2@PAH2@Z @ 21 NONAME ; bool QDomDocument::setContent(class QString const &, class QString *, int *, int *) + ??4QDomNode@@QAEAAV0@ABV0@@Z @ 22 NONAME ; class QDomNode & QDomNode::operator=(class QDomNode const &) + ?invalidDataPolicy@QDomImplementation@@SA?AW4InvalidDataPolicy@1@XZ @ 23 NONAME ; enum QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy(void) + ??1QXmlDefaultHandler@@UAE@XZ @ 24 NONAME ; QXmlDefaultHandler::~QXmlDefaultHandler(void) + ?error@QXmlDefaultHandler@@UAE_NABVQXmlParseException@@@Z @ 25 NONAME ; bool QXmlDefaultHandler::error(class QXmlParseException const &) + ??0QDomElement@@QAE@XZ @ 26 NONAME ; QDomElement::QDomElement(void) + ?substringData@QDomCharacterData@@QAE?AVQString@@KK@Z @ 27 NONAME ; class QString QDomCharacterData::substringData(unsigned long, unsigned long) + ??_EQXmlLocator@@UAE@I@Z @ 28 NONAME ; QXmlLocator::~QXmlLocator(unsigned int) + ??0QXmlDTDHandler@@QAE@XZ @ 29 NONAME ; QXmlDTDHandler::QXmlDTDHandler(void) + ?reset@QXmlNamespaceSupport@@QAEXXZ @ 30 NONAME ; void QXmlNamespaceSupport::reset(void) + ?nodeValue@QDomNode@@QBE?AVQString@@XZ @ 31 NONAME ; class QString QDomNode::nodeValue(void) const + ?hasFeature@QDomImplementation@@QBE_NABVQString@@0@Z @ 32 NONAME ; bool QDomImplementation::hasFeature(class QString const &, class QString const &) const + ??0QXmlAttributes@@QAE@XZ @ 33 NONAME ; QXmlAttributes::QXmlAttributes(void) + ?isNull@QDomImplementation@@QAE_NXZ @ 34 NONAME ; bool QDomImplementation::isNull(void) + ??0QDomNotation@@QAE@ABV0@@Z @ 35 NONAME ; QDomNotation::QDomNotation(class QDomNotation const &) + ?nextSibling@QDomNode@@QBE?AV1@XZ @ 36 NONAME ; class QDomNode QDomNode::nextSibling(void) const + ?next@QXmlInputSource@@UAE?AVQChar@@XZ @ 37 NONAME ; class QChar QXmlInputSource::next(void) + ?setNodeValue@QDomNode@@QAEXABVQString@@@Z @ 38 NONAME ; void QDomNode::setNodeValue(class QString const &) + ??6@YAAAVQTextStream@@AAV0@ABVQDomNode@@@Z @ 39 NONAME ; class QTextStream & operator<<(class QTextStream &, class QDomNode const &) + ??0QDomNode@@IAE@PAVQDomNodePrivate@@@Z @ 40 NONAME ; QDomNode::QDomNode(class QDomNodePrivate *) + ?elementsByTagNameNS@QDomElement@@QBE?AVQDomNodeList@@ABVQString@@0@Z @ 41 NONAME ; class QDomNodeList QDomElement::elementsByTagNameNS(class QString const &, class QString const &) const + ??4QDomCharacterData@@QAEAAV0@ABV0@@Z @ 42 NONAME ; class QDomCharacterData & QDomCharacterData::operator=(class QDomCharacterData const &) + ?setPrefix@QXmlNamespaceSupport@@QAEXABVQString@@0@Z @ 43 NONAME ; void QXmlNamespaceSupport::setPrefix(class QString const &, class QString const &) + ?reset@QXmlInputSource@@UAEXXZ @ 44 NONAME ; void QXmlInputSource::reset(void) + ?count@QDomNodeList@@QBEHXZ @ 45 NONAME ; int QDomNodeList::count(void) const + ?notationName@QDomEntity@@QBE?AVQString@@XZ @ 46 NONAME ; class QString QDomEntity::notationName(void) const + ??8QDomImplementation@@QBE_NABV0@@Z @ 47 NONAME ; bool QDomImplementation::operator==(class QDomImplementation const &) const + ?notations@QDomDocumentType@@QBE?AVQDomNamedNodeMap@@XZ @ 48 NONAME ; class QDomNamedNodeMap QDomDocumentType::notations(void) const + ?splitText@QDomText@@QAE?AV1@H@Z @ 49 NONAME ; class QDomText QDomText::splitText(int) + ?namedItem@QDomNode@@QBE?AV1@ABVQString@@@Z @ 50 NONAME ; class QDomNode QDomNode::namedItem(class QString const &) const + ?nodeType@QDomEntity@@QBE?AW4NodeType@QDomNode@@XZ @ 51 NONAME ; enum QDomNode::NodeType QDomEntity::nodeType(void) const + ?elementById@QDomDocument@@QAE?AVQDomElement@@ABVQString@@@Z @ 52 NONAME ; class QDomElement QDomDocument::elementById(class QString const &) + ?toByteArray@QDomDocument@@QBE?AVQByteArray@@H@Z @ 53 NONAME ; class QByteArray QDomDocument::toByteArray(int) const + ?prefixes@QXmlNamespaceSupport@@QBE?AVQStringList@@ABVQString@@@Z @ 54 NONAME ; class QStringList QXmlNamespaceSupport::prefixes(class QString const &) const + ?deleteData@QDomCharacterData@@QAEXKK@Z @ 55 NONAME ; void QDomCharacterData::deleteData(unsigned long, unsigned long) + ?length@QDomCharacterData@@QBEIXZ @ 56 NONAME ; unsigned int QDomCharacterData::length(void) const + ?declHandler@QXmlSimpleReader@@UBEPAVQXmlDeclHandler@@XZ @ 57 NONAME ; class QXmlDeclHandler * QXmlSimpleReader::declHandler(void) const + ?toCharacterData@QDomNode@@QBE?AVQDomCharacterData@@XZ @ 58 NONAME ; class QDomCharacterData QDomNode::toCharacterData(void) const + ?publicId@QDomEntity@@QBE?AVQString@@XZ @ 59 NONAME ; class QString QDomEntity::publicId(void) const + ??1QDomDocument@@QAE@XZ @ 60 NONAME ; QDomDocument::~QDomDocument(void) + ??0QDomImplementation@@AAE@PAVQDomImplementationPrivate@@@Z @ 61 NONAME ; QDomImplementation::QDomImplementation(class QDomImplementationPrivate *) + ??1QDomImplementation@@QAE@XZ @ 62 NONAME ; QDomImplementation::~QDomImplementation(void) + ?count@QXmlAttributes@@QBEHXZ @ 63 NONAME ; int QXmlAttributes::count(void) const + ?setValue@QDomAttr@@QAEXABVQString@@@Z @ 64 NONAME ; void QDomAttr::setValue(class QString const &) + ??0QDomDocumentType@@AAE@PAVQDomDocumentTypePrivate@@@Z @ 65 NONAME ; QDomDocumentType::QDomDocumentType(class QDomDocumentTypePrivate *) + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@N@Z @ 66 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, double) + ??0QDomImplementation@@QAE@XZ @ 67 NONAME ; QDomImplementation::QDomImplementation(void) + ??9QDomImplementation@@QBE_NABV0@@Z @ 68 NONAME ; bool QDomImplementation::operator!=(class QDomImplementation const &) const + ?at@QDomNodeList@@QBE?AVQDomNode@@H@Z @ 69 NONAME ; class QDomNode QDomNodeList::at(int) const + ??0QDomNodeList@@QAE@ABV0@@Z @ 70 NONAME ; QDomNodeList::QDomNodeList(class QDomNodeList const &) + ?systemId@QXmlParseException@@QBE?AVQString@@XZ @ 71 NONAME ; class QString QXmlParseException::systemId(void) const + ??0QDomDocumentType@@QAE@ABV0@@Z @ 72 NONAME ; QDomDocumentType::QDomDocumentType(class QDomDocumentType const &) + ??_EQXmlDefaultHandler@@UAE@I@Z @ 73 NONAME ; QXmlDefaultHandler::~QXmlDefaultHandler(unsigned int) + ??0QDomImplementation@@QAE@ABV0@@Z @ 74 NONAME ; QDomImplementation::QDomImplementation(class QDomImplementation const &) + ?nodeType@QDomCDATASection@@QBE?AW4NodeType@QDomNode@@XZ @ 75 NONAME ; enum QDomNode::NodeType QDomCDATASection::nodeType(void) const + ?attribute@QDomElement@@QBE?AVQString@@ABV2@0@Z @ 76 NONAME ; class QString QDomElement::attribute(class QString const &, class QString const &) const + ?setProperty@QXmlSimpleReader@@UAEXABVQString@@PAX@Z @ 77 NONAME ; void QXmlSimpleReader::setProperty(class QString const &, void *) + ??0QDomComment@@QAE@XZ @ 78 NONAME ; QDomComment::QDomComment(void) + ?toEntityReference@QDomNode@@QBE?AVQDomEntityReference@@XZ @ 79 NONAME ; class QDomEntityReference QDomNode::toEntityReference(void) const + ?parse@QXmlSimpleReader@@UAE_NABVQXmlInputSource@@@Z @ 80 NONAME ; bool QXmlSimpleReader::parse(class QXmlInputSource const &) + ??4QDomNotation@@QAEAAV0@ABV0@@Z @ 81 NONAME ; class QDomNotation & QDomNotation::operator=(class QDomNotation const &) + ?internalSubset@QDomDocumentType@@QBE?AVQString@@XZ @ 82 NONAME ; class QString QDomDocumentType::internalSubset(void) const + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@I@Z @ 83 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, unsigned int) + ?property@QXmlSimpleReader@@UBEPAXABVQString@@PA_N@Z @ 84 NONAME ; void * QXmlSimpleReader::property(class QString const &, bool *) const + ??9QDomNode@@QBE_NABV0@@Z @ 85 NONAME ; bool QDomNode::operator!=(class QDomNode const &) const + ?value@QXmlAttributes@@QBE?AVQString@@ABV2@0@Z @ 86 NONAME ; class QString QXmlAttributes::value(class QString const &, class QString const &) const + ?index@QXmlAttributes@@QBEHABVQString@@0@Z @ 87 NONAME ; int QXmlAttributes::index(class QString const &, class QString const &) const + ?popContext@QXmlNamespaceSupport@@QAEXXZ @ 88 NONAME ; void QXmlNamespaceSupport::popContext(void) + ??0QDomNamedNodeMap@@QAE@ABV0@@Z @ 89 NONAME ; QDomNamedNodeMap::QDomNamedNodeMap(class QDomNamedNodeMap const &) + ?startElement@QXmlDefaultHandler@@UAE_NABVQString@@00ABVQXmlAttributes@@@Z @ 90 NONAME ; bool QXmlDefaultHandler::startElement(class QString const &, class QString const &, class QString const &, class QXmlAttributes const &) + ?isCharacterData@QDomNode@@QBE_NXZ @ 91 NONAME ; bool QDomNode::isCharacterData(void) const + ?setEntityResolver@QXmlSimpleReader@@UAEXPAVQXmlEntityResolver@@@Z @ 92 NONAME ; void QXmlSimpleReader::setEntityResolver(class QXmlEntityResolver *) + ?setDocumentLocator@QXmlDefaultHandler@@UAEXPAVQXmlLocator@@@Z @ 93 NONAME ; void QXmlDefaultHandler::setDocumentLocator(class QXmlLocator *) + ?endCDATA@QXmlDefaultHandler@@UAE_NXZ @ 94 NONAME ; bool QXmlDefaultHandler::endCDATA(void) + ?startPrefixMapping@QXmlDefaultHandler@@UAE_NABVQString@@0@Z @ 95 NONAME ; bool QXmlDefaultHandler::startPrefixMapping(class QString const &, class QString const &) + ?createCDATASection@QDomDocument@@QAE?AVQDomCDATASection@@ABVQString@@@Z @ 96 NONAME ; class QDomCDATASection QDomDocument::createCDATASection(class QString const &) + ?attributeDecl@QXmlDefaultHandler@@UAE_NABVQString@@0000@Z @ 97 NONAME ; bool QXmlDefaultHandler::attributeDecl(class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) + ?nodeName@QDomNode@@QBE?AVQString@@XZ @ 98 NONAME ; class QString QDomNode::nodeName(void) const + ??0QDomProcessingInstruction@@QAE@ABV0@@Z @ 99 NONAME ; QDomProcessingInstruction::QDomProcessingInstruction(class QDomProcessingInstruction const &) + ?insertBefore@QDomNode@@QAE?AV1@ABV1@0@Z @ 100 NONAME ; class QDomNode QDomNode::insertBefore(class QDomNode const &, class QDomNode const &) + ?attributeNodeNS@QDomElement@@QAE?AVQDomAttr@@ABVQString@@0@Z @ 101 NONAME ; class QDomAttr QDomElement::attributeNodeNS(class QString const &, class QString const &) + ??0QXmlDefaultHandler@@QAE@XZ @ 102 NONAME ; QXmlDefaultHandler::QXmlDefaultHandler(void) + ??0QXmlNamespaceSupport@@QAE@XZ @ 103 NONAME ; QXmlNamespaceSupport::QXmlNamespaceSupport(void) + ??9QDomNodeList@@QBE_NABV0@@Z @ 104 NONAME ; bool QDomNodeList::operator!=(class QDomNodeList const &) const + ?nodeType@QDomCharacterData@@QBE?AW4NodeType@QDomNode@@XZ @ 105 NONAME ; enum QDomNode::NodeType QDomCharacterData::nodeType(void) const + ??1QXmlLexicalHandler@@UAE@XZ @ 106 NONAME ; QXmlLexicalHandler::~QXmlLexicalHandler(void) + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@_J@Z @ 107 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, long long) + ??4QDomNodeList@@QAEAAV0@ABV0@@Z @ 108 NONAME ; class QDomNodeList & QDomNodeList::operator=(class QDomNodeList const &) + ?setAttribute@QDomElement@@QAEXABVQString@@_J@Z @ 109 NONAME ; void QDomElement::setAttribute(class QString const &, long long) + ?attributeNS@QDomElement@@QBE?AVQString@@V2@ABV2@1@Z @ 110 NONAME ; class QString QDomElement::attributeNS(class QString, class QString const &, class QString const &) const + ??8QDomNodeList@@QBE_NABV0@@Z @ 111 NONAME ; bool QDomNodeList::operator==(class QDomNodeList const &) const + ?hasAttributes@QDomNode@@QBE_NXZ @ 112 NONAME ; bool QDomNode::hasAttributes(void) const + ?setNamedItem@QDomNamedNodeMap@@QAE?AVQDomNode@@ABV2@@Z @ 113 NONAME ; class QDomNode QDomNamedNodeMap::setNamedItem(class QDomNode const &) + ?insertAfter@QDomNode@@QAE?AV1@ABV1@0@Z @ 114 NONAME ; class QDomNode QDomNode::insertAfter(class QDomNode const &, class QDomNode const &) + ?errorHandler@QXmlSimpleReader@@UBEPAVQXmlErrorHandler@@XZ @ 115 NONAME ; class QXmlErrorHandler * QXmlSimpleReader::errorHandler(void) const + ?startEntity@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 116 NONAME ; bool QXmlDefaultHandler::startEntity(class QString const &) + ??0QXmlLocator@@QAE@XZ @ 117 NONAME ; QXmlLocator::QXmlLocator(void) + ??0QDomText@@QAE@XZ @ 118 NONAME ; QDomText::QDomText(void) + ?entities@QDomDocumentType@@QBE?AVQDomNamedNodeMap@@XZ @ 119 NONAME ; class QDomNamedNodeMap QDomDocumentType::entities(void) const + ??4QDomCDATASection@@QAEAAV0@ABV0@@Z @ 120 NONAME ; class QDomCDATASection & QDomCDATASection::operator=(class QDomCDATASection const &) + ?save@QDomNode@@QBEXAAVQTextStream@@H@Z @ 121 NONAME ; void QDomNode::save(class QTextStream &, int) const + ??0QXmlReader@@QAE@XZ @ 122 NONAME ; QXmlReader::QXmlReader(void) + ??4QDomDocument@@QAEAAV0@ABV0@@Z @ 123 NONAME ; class QDomDocument & QDomDocument::operator=(class QDomDocument const &) + ?createTextNode@QDomDocument@@QAE?AVQDomText@@ABVQString@@@Z @ 124 NONAME ; class QDomText QDomDocument::createTextNode(class QString const &) + ?message@QXmlParseException@@QBE?AVQString@@XZ @ 125 NONAME ; class QString QXmlParseException::message(void) const + ??0QDomDocument@@AAE@PAVQDomDocumentPrivate@@@Z @ 126 NONAME ; QDomDocument::QDomDocument(class QDomDocumentPrivate *) + ?publicId@QDomDocumentType@@QBE?AVQString@@XZ @ 127 NONAME ; class QString QDomDocumentType::publicId(void) const + ?setTagName@QDomElement@@QAEXABVQString@@@Z @ 128 NONAME ; void QDomElement::setTagName(class QString const &) + ?EndOfDocument@QXmlInputSource@@2GB @ 129 NONAME ; unsigned short const QXmlInputSource::EndOfDocument + ?lastChild@QDomNode@@QBE?AV1@XZ @ 130 NONAME ; class QDomNode QDomNode::lastChild(void) const + ?EndOfData@QXmlInputSource@@2GB @ 131 NONAME ; unsigned short const QXmlInputSource::EndOfData + ??0QDomCharacterData@@QAE@ABV0@@Z @ 132 NONAME ; QDomCharacterData::QDomCharacterData(class QDomCharacterData const &) + ?specified@QDomAttr@@QBE_NXZ @ 133 NONAME ; bool QDomAttr::specified(void) const + ?implementation@QDomDocument@@QBE?AVQDomImplementation@@XZ @ 134 NONAME ; class QDomImplementation QDomDocument::implementation(void) const + ?childNodes@QDomNode@@QBE?AVQDomNodeList@@XZ @ 135 NONAME ; class QDomNodeList QDomNode::childNodes(void) const + ??0QDomNode@@QAE@XZ @ 136 NONAME ; QDomNode::QDomNode(void) + ??0QDomEntityReference@@QAE@XZ @ 137 NONAME ; QDomEntityReference::QDomEntityReference(void) + ??1QXmlSimpleReader@@UAE@XZ @ 138 NONAME ; QXmlSimpleReader::~QXmlSimpleReader(void) + ?startCDATA@QXmlDefaultHandler@@UAE_NXZ @ 139 NONAME ; bool QXmlDefaultHandler::startCDATA(void) + ?setData@QDomCharacterData@@QAEXABVQString@@@Z @ 140 NONAME ; void QDomCharacterData::setData(class QString const &) + ?ownerDocument@QDomNode@@QBE?AVQDomDocument@@XZ @ 141 NONAME ; class QDomDocument QDomNode::ownerDocument(void) const + ?size@QDomNodeList@@QBEHXZ @ 142 NONAME ; int QDomNodeList::size(void) const + ?size@QDomNamedNodeMap@@QBEHXZ @ 143 NONAME ; int QDomNamedNodeMap::size(void) const + ??0QDomDocumentFragment@@QAE@XZ @ 144 NONAME ; QDomDocumentFragment::QDomDocumentFragment(void) + ??4QDomText@@QAEAAV0@ABV0@@Z @ 145 NONAME ; class QDomText & QDomText::operator=(class QDomText const &) + ?createDocument@QDomImplementation@@QAE?AVQDomDocument@@ABVQString@@0ABVQDomDocumentType@@@Z @ 146 NONAME ; class QDomDocument QDomImplementation::createDocument(class QString const &, class QString const &, class QDomDocumentType const &) + ??0QDomText@@AAE@PAVQDomTextPrivate@@@Z @ 147 NONAME ; QDomText::QDomText(class QDomTextPrivate *) + ?lastChildElement@QDomNode@@QBE?AVQDomElement@@ABVQString@@@Z @ 148 NONAME ; class QDomElement QDomNode::lastChildElement(class QString const &) const + ??_EQXmlAttributes@@UAE@I@Z @ 149 NONAME ; QXmlAttributes::~QXmlAttributes(unsigned int) + ?setContentHandler@QXmlSimpleReader@@UAEXPAVQXmlContentHandler@@@Z @ 150 NONAME ; void QXmlSimpleReader::setContentHandler(class QXmlContentHandler *) + ?name@QDomAttr@@QBE?AVQString@@XZ @ 151 NONAME ; class QString QDomAttr::name(void) const + ??8QDomNode@@QBE_NABV0@@Z @ 152 NONAME ; bool QDomNode::operator==(class QDomNode const &) const + ?toNotation@QDomNode@@QBE?AVQDomNotation@@XZ @ 153 NONAME ; class QDomNotation QDomNode::toNotation(void) const + ?startDTD@QXmlDefaultHandler@@UAE_NABVQString@@00@Z @ 154 NONAME ; bool QXmlDefaultHandler::startDTD(class QString const &, class QString const &, class QString const &) + ?data@QDomProcessingInstruction@@QBE?AVQString@@XZ @ 155 NONAME ; class QString QDomProcessingInstruction::data(void) const + ?systemId@QDomNotation@@QBE?AVQString@@XZ @ 156 NONAME ; class QString QDomNotation::systemId(void) const + ?isEmpty@QDomNodeList@@QBE_NXZ @ 157 NONAME ; bool QDomNodeList::isEmpty(void) const + ?isText@QDomNode@@QBE_NXZ @ 158 NONAME ; bool QDomNode::isText(void) const + ?previousSibling@QDomNode@@QBE?AV1@XZ @ 159 NONAME ; class QDomNode QDomNode::previousSibling(void) const + ?isNull@QDomNode@@QBE_NXZ @ 160 NONAME ; bool QDomNode::isNull(void) const + ?attributes@QDomElement@@QBE?AVQDomNamedNodeMap@@XZ @ 161 NONAME ; class QDomNamedNodeMap QDomElement::attributes(void) const + ?prefix@QXmlNamespaceSupport@@QBE?AVQString@@ABV2@@Z @ 162 NONAME ; class QString QXmlNamespaceSupport::prefix(class QString const &) const + ?endElement@QXmlDefaultHandler@@UAE_NABVQString@@00@Z @ 163 NONAME ; bool QXmlDefaultHandler::endElement(class QString const &, class QString const &, class QString const &) + ?createDocumentType@QDomImplementation@@QAE?AVQDomDocumentType@@ABVQString@@00@Z @ 164 NONAME ; class QDomDocumentType QDomImplementation::createDocumentType(class QString const &, class QString const &, class QString const &) + ?isSupported@QDomNode@@QBE_NABVQString@@0@Z @ 165 NONAME ; bool QDomNode::isSupported(class QString const &, class QString const &) const + ?setAttribute@QDomElement@@QAEXABVQString@@M@Z @ 166 NONAME ; void QDomElement::setAttribute(class QString const &, float) + ??0QDomElement@@AAE@PAVQDomElementPrivate@@@Z @ 167 NONAME ; QDomElement::QDomElement(class QDomElementPrivate *) + ??_EQXmlEntityResolver@@UAE@I@Z @ 168 NONAME ; QXmlEntityResolver::~QXmlEntityResolver(unsigned int) + ?data@QXmlInputSource@@UBE?AVQString@@XZ @ 169 NONAME ; class QString QXmlInputSource::data(void) const + ?setPrefix@QDomNode@@QAEXABVQString@@@Z @ 170 NONAME ; void QDomNode::setPrefix(class QString const &) + ?parse@QXmlSimpleReader@@UAE_NPBVQXmlInputSource@@@Z @ 171 NONAME ; bool QXmlSimpleReader::parse(class QXmlInputSource const *) + ??0QDomProcessingInstruction@@AAE@PAVQDomProcessingInstructionPrivate@@@Z @ 172 NONAME ; QDomProcessingInstruction::QDomProcessingInstruction(class QDomProcessingInstructionPrivate *) + ?toElement@QDomNode@@QBE?AVQDomElement@@XZ @ 173 NONAME ; class QDomElement QDomNode::toElement(void) const + ?setAttribute@QDomElement@@QAEXABVQString@@H@Z @ 174 NONAME ; void QDomElement::setAttribute(class QString const &, int) + ??1QDomNamedNodeMap@@QAE@XZ @ 175 NONAME ; QDomNamedNodeMap::~QDomNamedNodeMap(void) + ?createAttribute@QDomDocument@@QAE?AVQDomAttr@@ABVQString@@@Z @ 176 NONAME ; class QDomAttr QDomDocument::createAttribute(class QString const &) + ?isDocumentType@QDomNode@@QBE_NXZ @ 177 NONAME ; bool QDomNode::isDocumentType(void) const + ??0QDomNotation@@AAE@PAVQDomNotationPrivate@@@Z @ 178 NONAME ; QDomNotation::QDomNotation(class QDomNotationPrivate *) + ??0QDomEntity@@AAE@PAVQDomEntityPrivate@@@Z @ 179 NONAME ; QDomEntity::QDomEntity(class QDomEntityPrivate *) + ?removeNamedItemNS@QDomNamedNodeMap@@QAE?AVQDomNode@@ABVQString@@0@Z @ 180 NONAME ; class QDomNode QDomNamedNodeMap::removeNamedItemNS(class QString const &, class QString const &) + ?hasAttributeNS@QDomElement@@QBE_NABVQString@@0@Z @ 181 NONAME ; bool QDomElement::hasAttributeNS(class QString const &, class QString const &) const + ??_EQXmlContentHandler@@UAE@I@Z @ 182 NONAME ; QXmlContentHandler::~QXmlContentHandler(unsigned int) + ?lexicalHandler@QXmlSimpleReader@@UBEPAVQXmlLexicalHandler@@XZ @ 183 NONAME ; class QXmlLexicalHandler * QXmlSimpleReader::lexicalHandler(void) const + ?unparsedEntityDecl@QXmlDefaultHandler@@UAE_NABVQString@@000@Z @ 184 NONAME ; bool QXmlDefaultHandler::unparsedEntityDecl(class QString const &, class QString const &, class QString const &, class QString const &) + ?systemId@QDomDocumentType@@QBE?AVQString@@XZ @ 185 NONAME ; class QString QDomDocumentType::systemId(void) const + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@_K@Z @ 186 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, unsigned long long) + ?setAttribute@QDomElement@@QAEXABVQString@@_K@Z @ 187 NONAME ; void QDomElement::setAttribute(class QString const &, unsigned long long) + ?hasProperty@QXmlSimpleReader@@UBE_NABVQString@@@Z @ 188 NONAME ; bool QXmlSimpleReader::hasProperty(class QString const &) const + ?toDocument@QDomNode@@QBE?AVQDomDocument@@XZ @ 189 NONAME ; class QDomDocument QDomNode::toDocument(void) const + ?removeAttribute@QDomElement@@QAEXABVQString@@@Z @ 190 NONAME ; void QDomElement::removeAttribute(class QString const &) + ?appendChild@QDomNode@@QAE?AV1@ABV1@@Z @ 191 NONAME ; class QDomNode QDomNode::appendChild(class QDomNode const &) + ?warning@QXmlDefaultHandler@@UAE_NABVQXmlParseException@@@Z @ 192 NONAME ; bool QXmlDefaultHandler::warning(class QXmlParseException const &) + ??0QDomNode@@QAE@ABV0@@Z @ 193 NONAME ; QDomNode::QDomNode(class QDomNode const &) + ?setContent@QDomDocument@@QAE_NABVQByteArray@@_NPAVQString@@PAH3@Z @ 194 NONAME ; bool QDomDocument::setContent(class QByteArray const &, bool, class QString *, int *, int *) + ??0QDomElement@@QAE@ABV0@@Z @ 195 NONAME ; QDomElement::QDomElement(class QDomElement const &) + ??0QXmlLexicalHandler@@QAE@XZ @ 196 NONAME ; QXmlLexicalHandler::QXmlLexicalHandler(void) + ??_EQXmlLexicalHandler@@UAE@I@Z @ 197 NONAME ; QXmlLexicalHandler::~QXmlLexicalHandler(unsigned int) + ??0QDomDocumentType@@QAE@XZ @ 198 NONAME ; QDomDocumentType::QDomDocumentType(void) + ?columnNumber@QXmlParseException@@QBEHXZ @ 199 NONAME ; int QXmlParseException::columnNumber(void) const + ?clear@QDomNode@@QAEXXZ @ 200 NONAME ; void QDomNode::clear(void) + ??1QXmlErrorHandler@@UAE@XZ @ 201 NONAME ; QXmlErrorHandler::~QXmlErrorHandler(void) + ?isEntity@QDomNode@@QBE_NXZ @ 202 NONAME ; bool QDomNode::isEntity(void) const + ??0QDomAttr@@QAE@XZ @ 203 NONAME ; QDomAttr::QDomAttr(void) + ?isDocumentFragment@QDomNode@@QBE_NXZ @ 204 NONAME ; bool QDomNode::isDocumentFragment(void) const + ??0QXmlInputSource@@QAE@XZ @ 205 NONAME ; QXmlInputSource::QXmlInputSource(void) + ??8QDomNamedNodeMap@@QBE_NABV0@@Z @ 206 NONAME ; bool QDomNamedNodeMap::operator==(class QDomNamedNodeMap const &) const + ?namedItemNS@QDomNamedNodeMap@@QBE?AVQDomNode@@ABVQString@@0@Z @ 207 NONAME ; class QDomNode QDomNamedNodeMap::namedItemNS(class QString const &, class QString const &) const + ?setContent@QDomDocument@@QAE_NABVQByteArray@@PAVQString@@PAH2@Z @ 208 NONAME ; bool QDomDocument::setContent(class QByteArray const &, class QString *, int *, int *) + ?isProcessingInstruction@QDomNode@@QBE_NXZ @ 209 NONAME ; bool QDomNode::isProcessingInstruction(void) const + ?item@QDomNamedNodeMap@@QBE?AVQDomNode@@H@Z @ 210 NONAME ; class QDomNode QDomNamedNodeMap::item(int) const + ?target@QDomProcessingInstruction@@QBE?AVQString@@XZ @ 211 NONAME ; class QString QDomProcessingInstruction::target(void) const + ?isElement@QDomNode@@QBE_NXZ @ 212 NONAME ; bool QDomNode::isElement(void) const + ?processingInstruction@QXmlDefaultHandler@@UAE_NABVQString@@0@Z @ 213 NONAME ; bool QXmlDefaultHandler::processingInstruction(class QString const &, class QString const &) + ?removeChild@QDomNode@@QAE?AV1@ABV1@@Z @ 214 NONAME ; class QDomNode QDomNode::removeChild(class QDomNode const &) + ?setContent@QDomDocument@@QAE_NPAVQXmlInputSource@@PAVQXmlReader@@PAVQString@@PAH3@Z @ 215 NONAME ; bool QDomDocument::setContent(class QXmlInputSource *, class QXmlReader *, class QString *, int *, int *) + ?publicId@QXmlParseException@@QBE?AVQString@@XZ @ 216 NONAME ; class QString QXmlParseException::publicId(void) const + ?d_func@QXmlSimpleReader@@AAEPAVQXmlSimpleReaderPrivate@@XZ @ 217 NONAME ; class QXmlSimpleReaderPrivate * QXmlSimpleReader::d_func(void) + ?ignorableWhitespace@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 218 NONAME ; bool QXmlDefaultHandler::ignorableWhitespace(class QString const &) + ??0QDomNodeList@@AAE@PAVQDomNodeListPrivate@@@Z @ 219 NONAME ; QDomNodeList::QDomNodeList(class QDomNodeListPrivate *) + ??_EQXmlReader@@UAE@I@Z @ 220 NONAME ; QXmlReader::~QXmlReader(unsigned int) + ?endPrefixMapping@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 221 NONAME ; bool QXmlDefaultHandler::endPrefixMapping(class QString const &) + ?isEntityReference@QDomNode@@QBE_NXZ @ 222 NONAME ; bool QDomNode::isEntityReference(void) const + ?isCDATASection@QDomNode@@QBE_NXZ @ 223 NONAME ; bool QDomNode::isCDATASection(void) const + ?setData@QXmlInputSource@@UAEXABVQString@@@Z @ 224 NONAME ; void QXmlInputSource::setData(class QString const &) + ?value@QXmlAttributes@@QBE?AVQString@@ABVQLatin1String@@@Z @ 225 NONAME ; class QString QXmlAttributes::value(class QLatin1String const &) const + ??4QDomEntityReference@@QAEAAV0@ABV0@@Z @ 226 NONAME ; class QDomEntityReference & QDomEntityReference::operator=(class QDomEntityReference const &) + ?value@QDomAttr@@QBE?AVQString@@XZ @ 227 NONAME ; class QString QDomAttr::value(void) const + ??0QDomDocument@@QAE@ABVQDomDocumentType@@@Z @ 228 NONAME ; QDomDocument::QDomDocument(class QDomDocumentType const &) + ??0QDomCharacterData@@QAE@XZ @ 229 NONAME ; QDomCharacterData::QDomCharacterData(void) + ??0QDomProcessingInstruction@@QAE@XZ @ 230 NONAME ; QDomProcessingInstruction::QDomProcessingInstruction(void) + ?nodeType@QDomProcessingInstruction@@QBE?AW4NodeType@QDomNode@@XZ @ 231 NONAME ; enum QDomNode::NodeType QDomProcessingInstruction::nodeType(void) const + ?comment@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 232 NONAME ; bool QXmlDefaultHandler::comment(class QString const &) + ?type@QXmlAttributes@@QBE?AVQString@@H@Z @ 233 NONAME ; class QString QXmlAttributes::type(int) const + ??0QDomNotation@@QAE@XZ @ 234 NONAME ; QDomNotation::QDomNotation(void) + ?nodeType@QDomDocumentType@@QBE?AW4NodeType@QDomNode@@XZ @ 235 NONAME ; enum QDomNode::NodeType QDomDocumentType::nodeType(void) const + ??0QDomEntity@@QAE@XZ @ 236 NONAME ; QDomEntity::QDomEntity(void) + ??0QDomCDATASection@@QAE@ABV0@@Z @ 237 NONAME ; QDomCDATASection::QDomCDATASection(class QDomCDATASection const &) + ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@1@Z @ 238 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, class QString const &) + ?setAttribute@QDomElement@@QAEXABVQString@@N@Z @ 239 NONAME ; void QDomElement::setAttribute(class QString const &, double) + ?externalEntityDecl@QXmlDefaultHandler@@UAE_NABVQString@@00@Z @ 240 NONAME ; bool QXmlDefaultHandler::externalEntityDecl(class QString const &, class QString const &, class QString const &) + ??0QDomCDATASection@@AAE@PAVQDomCDATASectionPrivate@@@Z @ 241 NONAME ; QDomCDATASection::QDomCDATASection(class QDomCDATASectionPrivate *) + ?createDocumentFragment@QDomDocument@@QAE?AVQDomDocumentFragment@@XZ @ 242 NONAME ; class QDomDocumentFragment QDomDocument::createDocumentFragment(void) + ?fatalError@QXmlDefaultHandler@@UAE_NABVQXmlParseException@@@Z @ 243 NONAME ; bool QXmlDefaultHandler::fatalError(class QXmlParseException const &) + ?toText@QDomNode@@QBE?AVQDomText@@XZ @ 244 NONAME ; class QDomText QDomNode::toText(void) const + ?cloneNode@QDomNode@@QBE?AV1@_N@Z @ 245 NONAME ; class QDomNode QDomNode::cloneNode(bool) const + ??1QXmlEntityResolver@@UAE@XZ @ 246 NONAME ; QXmlEntityResolver::~QXmlEntityResolver(void) + ??0QDomEntityReference@@QAE@ABV0@@Z @ 247 NONAME ; QDomEntityReference::QDomEntityReference(class QDomEntityReference const &) + ??1QXmlInputSource@@UAE@XZ @ 248 NONAME ; QXmlInputSource::~QXmlInputSource(void) + ?toAttr@QDomNode@@QBE?AVQDomAttr@@XZ @ 249 NONAME ; class QDomAttr QDomNode::toAttr(void) const + ?toString@QDomDocument@@QBE?AVQString@@H@Z @ 250 NONAME ; class QString QDomDocument::toString(int) const + ??0QDomComment@@QAE@ABV0@@Z @ 251 NONAME ; QDomComment::QDomComment(class QDomComment const &) + ??4QDomImplementation@@QAEAAV0@ABV0@@Z @ 252 NONAME ; class QDomImplementation & QDomImplementation::operator=(class QDomImplementation const &) + ?prefixes@QXmlNamespaceSupport@@QBE?AVQStringList@@XZ @ 253 NONAME ; class QStringList QXmlNamespaceSupport::prefixes(void) const + ?type@QXmlAttributes@@QBE?AVQString@@ABV2@0@Z @ 254 NONAME ; class QString QXmlAttributes::type(class QString const &, class QString const &) const + ?text@QDomElement@@QBE?AVQString@@XZ @ 255 NONAME ; class QString QDomElement::text(void) const + ?type@QXmlAttributes@@QBE?AVQString@@ABV2@@Z @ 256 NONAME ; class QString QXmlAttributes::type(class QString const &) const + ?setAttribute@QDomElement@@QAEXABVQString@@I@Z @ 257 NONAME ; void QDomElement::setAttribute(class QString const &, unsigned int) + ?localName@QXmlAttributes@@QBE?AVQString@@H@Z @ 258 NONAME ; class QString QXmlAttributes::localName(int) const + ?createElementNS@QDomDocument@@QAE?AVQDomElement@@ABVQString@@0@Z @ 259 NONAME ; class QDomElement QDomDocument::createElementNS(class QString const &, class QString const &) + ?qName@QXmlAttributes@@QBE?AVQString@@H@Z @ 260 NONAME ; class QString QXmlAttributes::qName(int) const + ?data@QDomCharacterData@@QBE?AVQString@@XZ @ 261 NONAME ; class QString QDomCharacterData::data(void) const + ?setContent@QDomDocument@@QAE_NPAVQIODevice@@PAVQString@@PAH2@Z @ 262 NONAME ; bool QDomDocument::setContent(class QIODevice *, class QString *, int *, int *) + ??0QDomNamedNodeMap@@QAE@XZ @ 263 NONAME ; QDomNamedNodeMap::QDomNamedNodeMap(void) + ??0QDomEntityReference@@AAE@PAVQDomEntityReferencePrivate@@@Z @ 264 NONAME ; QDomEntityReference::QDomEntityReference(class QDomEntityReferencePrivate *) + ??9QDomNamedNodeMap@@QBE_NABV0@@Z @ 265 NONAME ; bool QDomNamedNodeMap::operator!=(class QDomNamedNodeMap const &) const + ?length@QXmlAttributes@@QBEHXZ @ 266 NONAME ; int QXmlAttributes::length(void) const + ?isAttr@QDomNode@@QBE_NXZ @ 267 NONAME ; bool QDomNode::isAttr(void) const + ?setLexicalHandler@QXmlSimpleReader@@UAEXPAVQXmlLexicalHandler@@@Z @ 268 NONAME ; void QXmlSimpleReader::setLexicalHandler(class QXmlLexicalHandler *) + ?feature@QXmlSimpleReader@@UBE_NABVQString@@PA_N@Z @ 269 NONAME ; bool QXmlSimpleReader::feature(class QString const &, bool *) const + ?createComment@QDomDocument@@QAE?AVQDomComment@@ABVQString@@@Z @ 270 NONAME ; class QDomComment QDomDocument::createComment(class QString const &) + ?lineNumber@QDomNode@@QBEHXZ @ 271 NONAME ; int QDomNode::lineNumber(void) const + ?nodeType@QDomDocumentFragment@@QBE?AW4NodeType@QDomNode@@XZ @ 272 NONAME ; enum QDomNode::NodeType QDomDocumentFragment::nodeType(void) const + ?namedItem@QDomNamedNodeMap@@QBE?AVQDomNode@@ABVQString@@@Z @ 273 NONAME ; class QDomNode QDomNamedNodeMap::namedItem(class QString const &) const + ??0QDomDocumentFragment@@AAE@PAVQDomDocumentFragmentPrivate@@@Z @ 274 NONAME ; QDomDocumentFragment::QDomDocumentFragment(class QDomDocumentFragmentPrivate *) + ??4QDomDocumentType@@QAEAAV0@ABV0@@Z @ 275 NONAME ; class QDomDocumentType & QDomDocumentType::operator=(class QDomDocumentType const &) + ?firstChild@QDomNode@@QBE?AV1@XZ @ 276 NONAME ; class QDomNode QDomNode::firstChild(void) const + ?toDocumentType@QDomNode@@QBE?AVQDomDocumentType@@XZ @ 277 NONAME ; class QDomDocumentType QDomNode::toDocumentType(void) const + ??4QDomComment@@QAEAAV0@ABV0@@Z @ 278 NONAME ; class QDomComment & QDomComment::operator=(class QDomComment const &) + ?isComment@QDomNode@@QBE_NXZ @ 279 NONAME ; bool QDomNode::isComment(void) const + ?setDTDHandler@QXmlSimpleReader@@UAEXPAVQXmlDTDHandler@@@Z @ 280 NONAME ; void QXmlSimpleReader::setDTDHandler(class QXmlDTDHandler *) + ?setAttributeNode@QDomElement@@QAE?AVQDomAttr@@ABV2@@Z @ 281 NONAME ; class QDomAttr QDomElement::setAttributeNode(class QDomAttr const &) + ??0QDomComment@@AAE@PAVQDomCommentPrivate@@@Z @ 282 NONAME ; QDomComment::QDomComment(class QDomCommentPrivate *) + ?parseContinue@QXmlSimpleReader@@UAE_NXZ @ 283 NONAME ; bool QXmlSimpleReader::parseContinue(void) + ?characters@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 284 NONAME ; bool QXmlDefaultHandler::characters(class QString const &) + ??1QXmlNamespaceSupport@@QAE@XZ @ 285 NONAME ; QXmlNamespaceSupport::~QXmlNamespaceSupport(void) + ?attributes@QDomNode@@QBE?AVQDomNamedNodeMap@@XZ @ 286 NONAME ; class QDomNamedNodeMap QDomNode::attributes(void) const + ?index@QXmlAttributes@@QBEHABVQString@@@Z @ 287 NONAME ; int QXmlAttributes::index(class QString const &) const + ?isDocument@QDomNode@@QBE_NXZ @ 288 NONAME ; bool QDomNode::isDocument(void) const + ?removeNamedItem@QDomNamedNodeMap@@QAE?AVQDomNode@@ABVQString@@@Z @ 289 NONAME ; class QDomNode QDomNamedNodeMap::removeNamedItem(class QString const &) + ?removeAttributeNode@QDomElement@@QAE?AVQDomAttr@@ABV2@@Z @ 290 NONAME ; class QDomAttr QDomElement::removeAttributeNode(class QDomAttr const &) + ?prefix@QDomNode@@QBE?AVQString@@XZ @ 291 NONAME ; class QString QDomNode::prefix(void) const + ??0QDomCDATASection@@QAE@XZ @ 292 NONAME ; QDomCDATASection::QDomCDATASection(void) + ?isEmpty@QDomNamedNodeMap@@QBE_NXZ @ 293 NONAME ; bool QDomNamedNodeMap::isEmpty(void) const + ?nodeType@QDomComment@@QBE?AW4NodeType@QDomNode@@XZ @ 294 NONAME ; enum QDomNode::NodeType QDomComment::nodeType(void) const + ?append@QXmlAttributes@@QAEXABVQString@@000@Z @ 295 NONAME ; void QXmlAttributes::append(class QString const &, class QString const &, class QString const &, class QString const &) + ?hasFeature@QXmlSimpleReader@@UBE_NABVQString@@@Z @ 296 NONAME ; bool QXmlSimpleReader::hasFeature(class QString const &) const + ?startDocument@QXmlDefaultHandler@@UAE_NXZ @ 297 NONAME ; bool QXmlDefaultHandler::startDocument(void) + ?fromRawData@QXmlInputSource@@MAE?AVQString@@ABVQByteArray@@_N@Z @ 298 NONAME ; class QString QXmlInputSource::fromRawData(class QByteArray const &, bool) + ?setNamedItemNS@QDomNamedNodeMap@@QAE?AVQDomNode@@ABV2@@Z @ 299 NONAME ; class QDomNode QDomNamedNodeMap::setNamedItemNS(class QDomNode const &) + ?setInvalidDataPolicy@QDomImplementation@@SAXW4InvalidDataPolicy@1@@Z @ 300 NONAME ; void QDomImplementation::setInvalidDataPolicy(enum QDomImplementation::InvalidDataPolicy) + ??1QXmlDTDHandler@@UAE@XZ @ 301 NONAME ; QXmlDTDHandler::~QXmlDTDHandler(void) + ?nodeType@QDomElement@@QBE?AW4NodeType@QDomNode@@XZ @ 302 NONAME ; enum QDomNode::NodeType QDomElement::nodeType(void) const + ??0QXmlDeclHandler@@QAE@XZ @ 303 NONAME ; QXmlDeclHandler::QXmlDeclHandler(void) + ?attributeNode@QDomElement@@QAE?AVQDomAttr@@ABVQString@@@Z @ 304 NONAME ; class QDomAttr QDomElement::attributeNode(class QString const &) + ??0QDomNodeList@@QAE@XZ @ 305 NONAME ; QDomNodeList::QDomNodeList(void) + ??1QXmlAttributes@@UAE@XZ @ 306 NONAME ; QXmlAttributes::~QXmlAttributes(void) + ?splitName@QXmlNamespaceSupport@@QBEXABVQString@@AAV2@1@Z @ 307 NONAME ; void QXmlNamespaceSupport::splitName(class QString const &, class QString &, class QString &) const + ?contains@QDomNamedNodeMap@@QBE_NABVQString@@@Z @ 308 NONAME ; bool QDomNamedNodeMap::contains(class QString const &) const + ?ownerElement@QDomAttr@@QBE?AVQDomElement@@XZ @ 309 NONAME ; class QDomElement QDomAttr::ownerElement(void) const + ??0QXmlSimpleReader@@QAE@XZ @ 310 NONAME ; QXmlSimpleReader::QXmlSimpleReader(void) + ?systemId@QDomEntity@@QBE?AVQString@@XZ @ 311 NONAME ; class QString QDomEntity::systemId(void) const + ?replaceData@QDomCharacterData@@QAEXKKABVQString@@@Z @ 312 NONAME ; void QDomCharacterData::replaceData(unsigned long, unsigned long, class QString const &) + ?elementsByTagNameNS@QDomDocument@@QAE?AVQDomNodeList@@ABVQString@@0@Z @ 313 NONAME ; class QDomNodeList QDomDocument::elementsByTagNameNS(class QString const &, class QString const &) + ?setErrorHandler@QXmlSimpleReader@@UAEXPAVQXmlErrorHandler@@@Z @ 314 NONAME ; void QXmlSimpleReader::setErrorHandler(class QXmlErrorHandler *) + ?previousSiblingElement@QDomNode@@QBE?AVQDomElement@@ABVQString@@@Z @ 315 NONAME ; class QDomElement QDomNode::previousSiblingElement(class QString const &) const + ??0QDomEntity@@QAE@ABV0@@Z @ 316 NONAME ; QDomEntity::QDomEntity(class QDomEntity const &) + ??0QDomAttr@@AAE@PAVQDomAttrPrivate@@@Z @ 317 NONAME ; QDomAttr::QDomAttr(class QDomAttrPrivate *) + ?replaceChild@QDomNode@@QAE?AV1@ABV1@0@Z @ 318 NONAME ; class QDomNode QDomNode::replaceChild(class QDomNode const &, class QDomNode const &) + ?firstChildElement@QDomNode@@QBE?AVQDomElement@@ABVQString@@@Z @ 319 NONAME ; class QDomElement QDomNode::firstChildElement(class QString const &) const + ??0QXmlParseException@@QAE@ABVQString@@HH00@Z @ 320 NONAME ; QXmlParseException::QXmlParseException(class QString const &, int, int, class QString const &, class QString const &) + ??4QDomDocumentFragment@@QAEAAV0@ABV0@@Z @ 321 NONAME ; class QDomDocumentFragment & QDomDocumentFragment::operator=(class QDomDocumentFragment const &) + ?insertData@QDomCharacterData@@QAEXKABVQString@@@Z @ 322 NONAME ; void QDomCharacterData::insertData(unsigned long, class QString const &) + ?setData@QDomProcessingInstruction@@QAEXABVQString@@@Z @ 323 NONAME ; void QDomProcessingInstruction::setData(class QString const &) + ??_EQXmlInputSource@@UAE@I@Z @ 324 NONAME ; QXmlInputSource::~QXmlInputSource(unsigned int) + ?columnNumber@QDomNode@@QBEHXZ @ 325 NONAME ; int QDomNode::columnNumber(void) const + ?length@QDomNamedNodeMap@@QBEIXZ @ 326 NONAME ; unsigned int QDomNamedNodeMap::length(void) const + ?hasAttribute@QDomElement@@QBE_NABVQString@@@Z @ 327 NONAME ; bool QDomElement::hasAttribute(class QString const &) const + ?internalEntityDecl@QXmlDefaultHandler@@UAE_NABVQString@@0@Z @ 328 NONAME ; bool QXmlDefaultHandler::internalEntityDecl(class QString const &, class QString const &) + ?index@QXmlAttributes@@QBEHABVQLatin1String@@@Z @ 329 NONAME ; int QXmlAttributes::index(class QLatin1String const &) const + ?publicId@QDomNotation@@QBE?AVQString@@XZ @ 330 NONAME ; class QString QDomNotation::publicId(void) const + ?endEntity@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 331 NONAME ; bool QXmlDefaultHandler::endEntity(class QString const &) + ?setAttribute@QDomElement@@QAEXABVQString@@0@Z @ 332 NONAME ; void QDomElement::setAttribute(class QString const &, class QString const &) + ?notationDecl@QXmlDefaultHandler@@UAE_NABVQString@@00@Z @ 333 NONAME ; bool QXmlDefaultHandler::notationDecl(class QString const &, class QString const &, class QString const &) + ?createEntityReference@QDomDocument@@QAE?AVQDomEntityReference@@ABVQString@@@Z @ 334 NONAME ; class QDomEntityReference QDomDocument::createEntityReference(class QString const &) + ?hasChildNodes@QDomNode@@QBE_NXZ @ 335 NONAME ; bool QDomNode::hasChildNodes(void) const + ?nodeType@QDomNode@@QBE?AW4NodeType@1@XZ @ 336 NONAME ; enum QDomNode::NodeType QDomNode::nodeType(void) const + ?toEntity@QDomNode@@QBE?AVQDomEntity@@XZ @ 337 NONAME ; class QDomEntity QDomNode::toEntity(void) const + ?toCDATASection@QDomNode@@QBE?AVQDomCDATASection@@XZ @ 338 NONAME ; class QDomCDATASection QDomNode::toCDATASection(void) const + ??0QXmlParseException@@QAE@ABV0@@Z @ 339 NONAME ; QXmlParseException::QXmlParseException(class QXmlParseException const &) + ?nextSiblingElement@QDomNode@@QBE?AVQDomElement@@ABVQString@@@Z @ 340 NONAME ; class QDomElement QDomNode::nextSiblingElement(class QString const &) const + ??1QXmlContentHandler@@UAE@XZ @ 341 NONAME ; QXmlContentHandler::~QXmlContentHandler(void) + ??0QXmlEntityResolver@@QAE@XZ @ 342 NONAME ; QXmlEntityResolver::QXmlEntityResolver(void) + ?contentHandler@QXmlSimpleReader@@UBEPAVQXmlContentHandler@@XZ @ 343 NONAME ; class QXmlContentHandler * QXmlSimpleReader::contentHandler(void) const + ?localName@QDomNode@@QBE?AVQString@@XZ @ 344 NONAME ; class QString QDomNode::localName(void) const + ??1QXmlDeclHandler@@UAE@XZ @ 345 NONAME ; QXmlDeclHandler::~QXmlDeclHandler(void) + ?elementsByTagName@QDomElement@@QBE?AVQDomNodeList@@ABVQString@@@Z @ 346 NONAME ; class QDomNodeList QDomElement::elementsByTagName(class QString const &) const + ?init@QXmlInputSource@@AAEXXZ @ 347 NONAME ; void QXmlInputSource::init(void) + ?setData@QXmlInputSource@@UAEXABVQByteArray@@@Z @ 348 NONAME ; void QXmlInputSource::setData(class QByteArray const &) + ?isNotation@QDomNode@@QBE_NXZ @ 349 NONAME ; bool QDomNode::isNotation(void) const + ??4QDomAttr@@QAEAAV0@ABV0@@Z @ 350 NONAME ; class QDomAttr & QDomAttr::operator=(class QDomAttr const &) + ?errorString@QXmlDefaultHandler@@UBE?AVQString@@XZ @ 351 NONAME ; class QString QXmlDefaultHandler::errorString(void) const + ??1QDomText@@QAE@XZ @ 352 NONAME ; QDomText::~QDomText(void) + ?createProcessingInstruction@QDomDocument@@QAE?AVQDomProcessingInstruction@@ABVQString@@0@Z @ 353 NONAME ; class QDomProcessingInstruction QDomDocument::createProcessingInstruction(class QString const &, class QString const &) + ??1QXmlReader@@UAE@XZ @ 354 NONAME ; QXmlReader::~QXmlReader(void) + ??_EQXmlErrorHandler@@UAE@I@Z @ 355 NONAME ; QXmlErrorHandler::~QXmlErrorHandler(unsigned int) + ?namespaceURI@QDomNode@@QBE?AVQString@@XZ @ 356 NONAME ; class QString QDomNode::namespaceURI(void) const + ??_EQXmlDeclHandler@@UAE@I@Z @ 357 NONAME ; QXmlDeclHandler::~QXmlDeclHandler(unsigned int) + ?endDocument@QXmlDefaultHandler@@UAE_NXZ @ 358 NONAME ; bool QXmlDefaultHandler::endDocument(void) + ?length@QDomNodeList@@QBEIXZ @ 359 NONAME ; unsigned int QDomNodeList::length(void) const + ??4QDomElement@@QAEAAV0@ABV0@@Z @ 360 NONAME ; class QDomElement & QDomElement::operator=(class QDomElement const &) + ?value@QXmlAttributes@@QBE?AVQString@@H@Z @ 361 NONAME ; class QString QXmlAttributes::value(int) const + ?normalize@QDomNode@@QAEXXZ @ 362 NONAME ; void QDomNode::normalize(void) + ?endDTD@QXmlDefaultHandler@@UAE_NXZ @ 363 NONAME ; bool QXmlDefaultHandler::endDTD(void) + ??1QDomNode@@QAE@XZ @ 364 NONAME ; QDomNode::~QDomNode(void) + ?importNode@QDomDocument@@QAE?AVQDomNode@@ABV2@_N@Z @ 365 NONAME ; class QDomNode QDomDocument::importNode(class QDomNode const &, bool) + ??0QDomDocumentFragment@@QAE@ABV0@@Z @ 366 NONAME ; QDomDocumentFragment::QDomDocumentFragment(class QDomDocumentFragment const &) + ?item@QDomNodeList@@QBE?AVQDomNode@@H@Z @ 367 NONAME ; class QDomNode QDomNodeList::item(int) const + ?clear@QXmlAttributes@@QAEXXZ @ 368 NONAME ; void QXmlAttributes::clear(void) + ?documentElement@QDomDocument@@QBE?AVQDomElement@@XZ @ 369 NONAME ; class QDomElement QDomDocument::documentElement(void) const + ?setFeature@QXmlSimpleReader@@UAEXABVQString@@_N@Z @ 370 NONAME ; void QXmlSimpleReader::setFeature(class QString const &, bool) + ?entityResolver@QXmlSimpleReader@@UBEPAVQXmlEntityResolver@@XZ @ 371 NONAME ; class QXmlEntityResolver * QXmlSimpleReader::entityResolver(void) const + ??0QDomDocument@@QAE@ABV0@@Z @ 372 NONAME ; QDomDocument::QDomDocument(class QDomDocument const &) + ??1QDomNodeList@@QAE@XZ @ 373 NONAME ; QDomNodeList::~QDomNodeList(void) + ??4QDomEntity@@QAEAAV0@ABV0@@Z @ 374 NONAME ; class QDomEntity & QDomEntity::operator=(class QDomEntity const &) + ??0QXmlErrorHandler@@QAE@XZ @ 375 NONAME ; QXmlErrorHandler::QXmlErrorHandler(void) + ??0QDomNamedNodeMap@@AAE@PAVQDomNamedNodeMapPrivate@@@Z @ 376 NONAME ; QDomNamedNodeMap::QDomNamedNodeMap(class QDomNamedNodeMapPrivate *) + ?parentNode@QDomNode@@QBE?AV1@XZ @ 377 NONAME ; class QDomNode QDomNode::parentNode(void) const + ??_EQXmlSimpleReader@@UAE@I@Z @ 378 NONAME ; QXmlSimpleReader::~QXmlSimpleReader(unsigned int) + ?toDocumentFragment@QDomNode@@QBE?AVQDomDocumentFragment@@XZ @ 379 NONAME ; class QDomDocumentFragment QDomNode::toDocumentFragment(void) const + ?nodeType@QDomText@@QBE?AW4NodeType@QDomNode@@XZ @ 380 NONAME ; enum QDomNode::NodeType QDomText::nodeType(void) const + ?uri@QXmlAttributes@@QBE?AVQString@@H@Z @ 381 NONAME ; class QString QXmlAttributes::uri(int) const + ??1QDomCharacterData@@QAE@XZ @ 382 NONAME ; QDomCharacterData::~QDomCharacterData(void) + ?DTDHandler@QXmlSimpleReader@@UBEPAVQXmlDTDHandler@@XZ @ 383 NONAME ; class QXmlDTDHandler * QXmlSimpleReader::DTDHandler(void) const + ??0QDomText@@QAE@ABV0@@Z @ 384 NONAME ; QDomText::QDomText(class QDomText const &) + ?uri@QXmlNamespaceSupport@@QBE?AVQString@@ABV2@@Z @ 385 NONAME ; class QString QXmlNamespaceSupport::uri(class QString const &) const + ?parse@QXmlSimpleReader@@UAE_NPBVQXmlInputSource@@_N@Z @ 386 NONAME ; bool QXmlSimpleReader::parse(class QXmlInputSource const *, bool) + ?setAttributeNodeNS@QDomElement@@QAE?AVQDomAttr@@ABV2@@Z @ 387 NONAME ; class QDomAttr QDomElement::setAttributeNodeNS(class QDomAttr const &) + ?appendData@QDomCharacterData@@QAEXABVQString@@@Z @ 388 NONAME ; void QDomCharacterData::appendData(class QString const &) + ?nodeType@QDomAttr@@QBE?AW4NodeType@QDomNode@@XZ @ 389 NONAME ; enum QDomNode::NodeType QDomAttr::nodeType(void) const + ?toProcessingInstruction@QDomNode@@QBE?AVQDomProcessingInstruction@@XZ @ 390 NONAME ; class QDomProcessingInstruction QDomNode::toProcessingInstruction(void) const + ?nodeType@QDomDocument@@QBE?AW4NodeType@QDomNode@@XZ @ 391 NONAME ; enum QDomNode::NodeType QDomDocument::nodeType(void) const + ??0QXmlInputSource@@QAE@PAVQIODevice@@@Z @ 392 NONAME ; QXmlInputSource::QXmlInputSource(class QIODevice *) + ?name@QDomDocumentType@@QBE?AVQString@@XZ @ 393 NONAME ; class QString QDomDocumentType::name(void) const + ??0QDomCharacterData@@AAE@PAVQDomCharacterDataPrivate@@@Z @ 394 NONAME ; QDomCharacterData::QDomCharacterData(class QDomCharacterDataPrivate *) + ??1QDomElement@@QAE@XZ @ 395 NONAME ; QDomElement::~QDomElement(void) + ??0QDomAttr@@QAE@ABV0@@Z @ 396 NONAME ; QDomAttr::QDomAttr(class QDomAttr const &) + ?createAttributeNS@QDomDocument@@QAE?AVQDomAttr@@ABVQString@@0@Z @ 397 NONAME ; class QDomAttr QDomDocument::createAttributeNS(class QString const &, class QString const &) + ?count@QDomNamedNodeMap@@QBEHXZ @ 398 NONAME ; int QDomNamedNodeMap::count(void) const + ?fetchData@QXmlInputSource@@UAEXXZ @ 399 NONAME ; void QXmlInputSource::fetchData(void) + ?doctype@QDomDocument@@QBE?AVQDomDocumentType@@XZ @ 400 NONAME ; class QDomDocumentType QDomDocument::doctype(void) const + ??0QDomDocument@@QAE@ABVQString@@@Z @ 401 NONAME ; QDomDocument::QDomDocument(class QString const &) + ?toComment@QDomNode@@QBE?AVQDomComment@@XZ @ 402 NONAME ; class QDomComment QDomNode::toComment(void) const + ?nodeType@QDomEntityReference@@QBE?AW4NodeType@QDomNode@@XZ @ 403 NONAME ; enum QDomNode::NodeType QDomEntityReference::nodeType(void) const + ?createElement@QDomDocument@@QAE?AVQDomElement@@ABVQString@@@Z @ 404 NONAME ; class QDomElement QDomDocument::createElement(class QString const &) + ?skippedEntity@QXmlDefaultHandler@@UAE_NABVQString@@@Z @ 405 NONAME ; bool QXmlDefaultHandler::skippedEntity(class QString const &) + ?nodeType@QDomNotation@@QBE?AW4NodeType@QDomNode@@XZ @ 406 NONAME ; enum QDomNode::NodeType QDomNotation::nodeType(void) const + ?elementsByTagName@QDomDocument@@QBE?AVQDomNodeList@@ABVQString@@@Z @ 407 NONAME ; class QDomNodeList QDomDocument::elementsByTagName(class QString const &) const + ?value@QXmlAttributes@@QBE?AVQString@@ABV2@@Z @ 408 NONAME ; class QString QXmlAttributes::value(class QString const &) const + diff --git a/src/s60installs/bwins/phononu.def b/src/s60installs/bwins/phononu.def new file mode 100644 index 0000000..2241c0d --- /dev/null +++ b/src/s60installs/bwins/phononu.def @@ -0,0 +1,521 @@ +EXPORTS + ?isValid@MediaNode@Phonon@@QBE_NXZ @ 1 NONAME ; bool Phonon::MediaNode::isValid(void) const + ?tr@VideoPlayer@Phonon@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString Phonon::VideoPlayer::tr(char const *, char const *) + ?id@EffectParameter@Phonon@@QBEHXZ @ 3 NONAME ; int Phonon::EffectParameter::id(void) const + ?metaObject@MediaController@Phonon@@UBEPBUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const * Phonon::MediaController::metaObject(void) const + ?qt_metacast@?$ObjectDescriptionModel@$01@Phonon@@UAEPAXPBD@Z @ 5 NONAME ; void * Phonon::ObjectDescriptionModel<2>::qt_metacast(char const *) + ?backendName@Factory@Phonon@@YA?AVQString@@XZ @ 6 NONAME ; class QString Phonon::Factory::backendName(void) + ?getStaticMetaObject@AbstractMediaStream@Phonon@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & Phonon::AbstractMediaStream::getStaticMetaObject(void) + ?isValid@ObjectDescriptionData@Phonon@@QBE_NXZ @ 8 NONAME ; bool Phonon::ObjectDescriptionData::isValid(void) const + ??1MediaObject@Phonon@@UAE@XZ @ 9 NONAME ; Phonon::MediaObject::~MediaObject(void) + ?load@VideoPlayer@Phonon@@QAEXABVMediaSource@2@@Z @ 10 NONAME ; void Phonon::VideoPlayer::load(class Phonon::MediaSource const &) + ?setIconSize@SeekSlider@Phonon@@QAEXABVQSize@@@Z @ 11 NONAME ; void Phonon::SeekSlider::setIconSize(class QSize const &) + ?modelData@ObjectDescriptionModelData@Phonon@@QBE?AV?$QExplicitlySharedDataPointer@VObjectDescriptionData@Phonon@@@@ABVQModelIndex@@@Z @ 12 NONAME ; class QExplicitlySharedDataPointer Phonon::ObjectDescriptionModelData::modelData(class QModelIndex const &) const + ?mouseMoveEvent@VideoWidget@Phonon@@MAEXPAVQMouseEvent@@@Z @ 13 NONAME ; void Phonon::VideoWidget::mouseMoveEvent(class QMouseEvent *) + ??0Path@Phonon@@QAE@XZ @ 14 NONAME ; Phonon::Path::Path(void) + ??_EEffect@Phonon@@UAE@I@Z @ 15 NONAME ; Phonon::Effect::~Effect(unsigned int) + ?staticMetaObject@?$ObjectDescriptionModel@$01@Phonon@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const Phonon::ObjectDescriptionModel<2>::staticMetaObject + ?totalTimeChanged@MediaObject@Phonon@@IAEX_J@Z @ 17 NONAME ; void Phonon::MediaObject::totalTimeChanged(long long) + ?availableAudioCaptureDevices@BackendCapabilities@Phonon@@YA?AV?$QList@V?$ObjectDescription@$03@Phonon@@@@XZ @ 18 NONAME ; class QList > Phonon::BackendCapabilities::availableAudioCaptureDevices(void) + ?getStaticMetaObject@VolumeSlider@Phonon@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & Phonon::VolumeSlider::getStaticMetaObject(void) + ?qt_metacall@VideoWidget@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int Phonon::VideoWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?staticMetaObject@?$ObjectDescriptionModel@$0A@@Phonon@@2UQMetaObject@@B @ 21 NONAME ; struct QMetaObject const Phonon::ObjectDescriptionModel<0>::staticMetaObject + ?fadeTo@VolumeFaderEffect@Phonon@@QAEXMH@Z @ 22 NONAME ; void Phonon::VolumeFaderEffect::fadeTo(float, int) + ?trUtf8@VideoWidget@Phonon@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString Phonon::VideoWidget::trUtf8(char const *, char const *, int) + ?rowCount@ObjectDescriptionModelData@Phonon@@QBEHABVQModelIndex@@@Z @ 24 NONAME ; int Phonon::ObjectDescriptionModelData::rowCount(class QModelIndex const &) const + ?tr@AudioOutput@Phonon@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString Phonon::AudioOutput::tr(char const *, char const *) + ?audioCaptureDeviceFor@GlobalConfig@Phonon@@QBEHW4Category@2@H@Z @ 26 NONAME ; int Phonon::GlobalConfig::audioCaptureDeviceFor(enum Phonon::Category, int) const + ??0StreamInterface@Phonon@@IAE@XZ @ 27 NONAME ; Phonon::StreamInterface::StreamInterface(void) + ?totalTime@MediaObject@Phonon@@QBE_JXZ @ 28 NONAME ; long long Phonon::MediaObject::totalTime(void) const + ?previousTitle@MediaController@Phonon@@QAEXXZ @ 29 NONAME ; void Phonon::MediaController::previousTitle(void) + ?k_func@AudioOutput@Phonon@@ABEPBVAudioOutputPrivate@2@XZ @ 30 NONAME ; class Phonon::AudioOutputPrivate const * Phonon::AudioOutput::k_func(void) const + ?currentChapter@MediaController@Phonon@@QBEHXZ @ 31 NONAME ; int Phonon::MediaController::currentChapter(void) const + ?error@AbstractMediaStream@Phonon@@IAEXW4ErrorType@2@ABVQString@@@Z @ 32 NONAME ; void Phonon::AbstractMediaStream::error(enum Phonon::ErrorType, class QString const &) + ?play@MediaObject@Phonon@@QAEXXZ @ 33 NONAME ; void Phonon::MediaObject::play(void) + ?hasVideo@MediaObject@Phonon@@QBE_NXZ @ 34 NONAME ; bool Phonon::MediaObject::hasVideo(void) const + ?setTracking@SeekSlider@Phonon@@QAEX_N@Z @ 35 NONAME ; void Phonon::SeekSlider::setTracking(bool) + ?qt_metacall@AudioOutput@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 36 NONAME ; int Phonon::AudioOutput::qt_metacall(enum QMetaObject::Call, int, void * *) + ?seek@MediaObject@Phonon@@QAEX_J@Z @ 37 NONAME ; void Phonon::MediaObject::seek(long long) + ?availableAudioChannels@MediaController@Phonon@@QBE?AV?$QList@V?$ObjectDescription@$01@Phonon@@@@XZ @ 38 NONAME ; class QList > Phonon::MediaController::availableAudioChannels(void) const + ??1MediaController@Phonon@@UAE@XZ @ 39 NONAME ; Phonon::MediaController::~MediaController(void) + ??_EVolumeFaderEffect@Phonon@@UAE@I@Z @ 40 NONAME ; Phonon::VolumeFaderEffect::~VolumeFaderEffect(unsigned int) + ?qt_metacast@?$ObjectDescriptionModel@$0A@@Phonon@@UAEPAXPBD@Z @ 41 NONAME ; void * Phonon::ObjectDescriptionModel<0>::qt_metacast(char const *) + ?titleChanged@MediaController@Phonon@@IAEXH@Z @ 42 NONAME ; void Phonon::MediaController::titleChanged(int) + ?metaObject@Effect@Phonon@@UBEPBUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const * Phonon::Effect::metaObject(void) const + ?mimeTypes@ObjectDescriptionModelData@Phonon@@QBE?AVQStringList@@W4ObjectDescriptionType@2@@Z @ 44 NONAME ; class QStringList Phonon::ObjectDescriptionModelData::mimeTypes(enum Phonon::ObjectDescriptionType) const + ?setFullScreen@VideoWidget@Phonon@@QAEX_N@Z @ 45 NONAME ; void Phonon::VideoWidget::setFullScreen(bool) + ??1AbstractMediaStreamPrivate@Phonon@@UAE@XZ @ 46 NONAME ; Phonon::AbstractMediaStreamPrivate::~AbstractMediaStreamPrivate(void) + ?sink@Path@Phonon@@QBEPAVMediaNode@2@XZ @ 47 NONAME ; class Phonon::MediaNode * Phonon::Path::sink(void) const + ?deregisterFrontendObject@Factory@Phonon@@YAXPAVMediaNodePrivate@2@@Z @ 48 NONAME ; void Phonon::Factory::deregisterFrontendObject(class Phonon::MediaNodePrivate *) + ?currentSource@MediaObject@Phonon@@QBE?AVMediaSource@2@XZ @ 49 NONAME ; class Phonon::MediaSource Phonon::MediaObject::currentSource(void) const + ?getStaticMetaObject@EffectWidget@Phonon@@SAABUQMetaObject@@XZ @ 50 NONAME ; struct QMetaObject const & Phonon::EffectWidget::getStaticMetaObject(void) + ?k_func@VolumeSlider@Phonon@@AAEPAVVolumeSliderPrivate@2@XZ @ 51 NONAME ; class Phonon::VolumeSliderPrivate * Phonon::VolumeSlider::k_func(void) + ?volume@VideoPlayer@Phonon@@QBEMXZ @ 52 NONAME ; float Phonon::VideoPlayer::volume(void) const + ?name@EffectParameter@Phonon@@QBEABVQString@@XZ @ 53 NONAME ; class QString const & Phonon::EffectParameter::name(void) const + ?trUtf8@VolumeFaderEffect@Phonon@@SA?AVQString@@PBD0H@Z @ 54 NONAME ; class QString Phonon::VolumeFaderEffect::trUtf8(char const *, char const *, int) + ?qt_metacast@AbstractMediaStream@Phonon@@UAEPAXPBD@Z @ 55 NONAME ; void * Phonon::AbstractMediaStream::qt_metacast(char const *) + ??1AbstractAudioOutput@Phonon@@UAE@XZ @ 56 NONAME ; Phonon::AbstractAudioOutput::~AbstractAudioOutput(void) + ??0VolumeFaderEffect@Phonon@@QAE@PAVQObject@@@Z @ 57 NONAME ; Phonon::VolumeFaderEffect::VolumeFaderEffect(class QObject *) + ?enoughData@StreamInterface@Phonon@@QAEXXZ @ 58 NONAME ; void Phonon::StreamInterface::enoughData(void) + ?audioCaptureDeviceListFor@GlobalConfig@Phonon@@QBE?AV?$QList@H@@W4Category@2@H@Z @ 59 NONAME ; class QList Phonon::GlobalConfig::audioCaptureDeviceListFor(enum Phonon::Category, int) const + ?effects@Path@Phonon@@QBE?AV?$QList@PAVEffect@Phonon@@@@XZ @ 60 NONAME ; class QList Phonon::Path::effects(void) const + ?fromIndex@ObjectDescriptionData@Phonon@@SAPAV12@W4ObjectDescriptionType@2@H@Z @ 61 NONAME ; class Phonon::ObjectDescriptionData * Phonon::ObjectDescriptionData::fromIndex(enum Phonon::ObjectDescriptionType, int) + ??_EMediaNode@Phonon@@UAE@I@Z @ 62 NONAME ; Phonon::MediaNode::~MediaNode(unsigned int) + ??_EVolumeSlider@Phonon@@UAE@I@Z @ 63 NONAME ; Phonon::VolumeSlider::~VolumeSlider(unsigned int) + ?currentSourceChanged@MediaObject@Phonon@@IAEXABVMediaSource@2@@Z @ 64 NONAME ; void Phonon::MediaObject::currentSourceChanged(class Phonon::MediaSource const &) + ?qHash@Phonon@@YAIABVEffectParameter@1@@Z @ 65 NONAME ; unsigned int Phonon::qHash(class Phonon::EffectParameter const &) + ??1MediaSourcePrivate@Phonon@@UAE@XZ @ 66 NONAME ; Phonon::MediaSourcePrivate::~MediaSourcePrivate(void) + ?currentSubtitle@MediaController@Phonon@@QBE?AV?$ObjectDescription@$02@2@XZ @ 67 NONAME ; class Phonon::ObjectDescription<3> Phonon::MediaController::currentSubtitle(void) const + ?addInputPath@MediaNodePrivate@Phonon@@QAEXABVPath@2@@Z @ 68 NONAME ; void Phonon::MediaNodePrivate::addInputPath(class Phonon::Path const &) + ?autoplayTitles@MediaController@Phonon@@QBE_NXZ @ 69 NONAME ; bool Phonon::MediaController::autoplayTitles(void) const + ?trUtf8@AbstractMediaStream@Phonon@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString Phonon::AbstractMediaStream::trUtf8(char const *, char const *) + ?trUtf8@AudioOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 71 NONAME ; class QString Phonon::AudioOutput::trUtf8(char const *, char const *, int) + ??0VideoWidget@Phonon@@IAE@AAVVideoWidgetPrivate@1@PAVQWidget@@@Z @ 72 NONAME ; Phonon::VideoWidget::VideoWidget(class Phonon::VideoWidgetPrivate &, class QWidget *) + ?finished@VideoPlayer@Phonon@@IAEXXZ @ 73 NONAME ; void Phonon::VideoPlayer::finished(void) + ?name@ObjectDescriptionData@Phonon@@QBE?AVQString@@XZ @ 74 NONAME ; class QString Phonon::ObjectDescriptionData::name(void) const + ?tr@MediaObject@Phonon@@SA?AVQString@@PBD0H@Z @ 75 NONAME ; class QString Phonon::MediaObject::tr(char const *, char const *, int) + ?orientation@VolumeSlider@Phonon@@QBE?AW4Orientation@Qt@@XZ @ 76 NONAME ; enum Qt::Orientation Phonon::VolumeSlider::orientation(void) const + ?availableSubtitles@MediaController@Phonon@@QBE?AV?$QList@V?$ObjectDescription@$02@Phonon@@@@XZ @ 77 NONAME ; class QList > Phonon::MediaController::availableSubtitles(void) const + ?qt_metacast@?$ObjectDescriptionModel@$03@Phonon@@UAEPAXPBD@Z @ 78 NONAME ; void * Phonon::ObjectDescriptionModel<4>::qt_metacast(char const *) + ?tr@VideoPlayer@Phonon@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString Phonon::VideoPlayer::tr(char const *, char const *, int) + ??_EVideoPlayer@Phonon@@UAE@I@Z @ 80 NONAME ; Phonon::VideoPlayer::~VideoPlayer(unsigned int) + ?staticMetaObject@AudioOutput@Phonon@@2UQMetaObject@@B @ 81 NONAME ; struct QMetaObject const Phonon::AudioOutput::staticMetaObject + ?setPageStep@VolumeSlider@Phonon@@QAEXH@Z @ 82 NONAME ; void Phonon::VolumeSlider::setPageStep(int) + ?setPageStep@SeekSlider@Phonon@@QAEXH@Z @ 83 NONAME ; void Phonon::SeekSlider::setPageStep(int) + ??_EStreamInterface@Phonon@@UAE@I@Z @ 84 NONAME ; Phonon::StreamInterface::~StreamInterface(unsigned int) + ?hasTracking@VolumeSlider@Phonon@@QBE_NXZ @ 85 NONAME ; bool Phonon::VolumeSlider::hasTracking(void) const + ?volumeDecibel@VolumeFaderEffect@Phonon@@QBENXZ @ 86 NONAME ; double Phonon::VolumeFaderEffect::volumeDecibel(void) const + ?flags@ObjectDescriptionModelData@Phonon@@QBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 87 NONAME ; class QFlags Phonon::ObjectDescriptionModelData::flags(class QModelIndex const &) const + ??0VolumeSlider@Phonon@@QAE@PAVAudioOutput@1@PAVQWidget@@@Z @ 88 NONAME ; Phonon::VolumeSlider::VolumeSlider(class Phonon::AudioOutput *, class QWidget *) + ??_EAbstractMediaStream@Phonon@@UAE@I@Z @ 89 NONAME ; Phonon::AbstractMediaStream::~AbstractMediaStream(unsigned int) + ?stop@MediaObject@Phonon@@QAEXXZ @ 90 NONAME ; void Phonon::MediaObject::stop(void) + ?setMuted@AudioOutput@Phonon@@QAEX_N@Z @ 91 NONAME ; void Phonon::AudioOutput::setMuted(bool) + ?setVolume@VolumeFaderEffect@Phonon@@QAEXM@Z @ 92 NONAME ; void Phonon::VolumeFaderEffect::setVolume(float) + ?setIconSize@VolumeSlider@Phonon@@QAEXABVQSize@@@Z @ 93 NONAME ; void Phonon::VolumeSlider::setIconSize(class QSize const &) + ?currentTime@VideoPlayer@Phonon@@QBE_JXZ @ 94 NONAME ; long long Phonon::VideoPlayer::currentTime(void) const + ?metaObject@?$ObjectDescriptionModel@$00@Phonon@@UBEPBUQMetaObject@@XZ @ 95 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<1>::metaObject(void) const + ?metaObject@VideoWidget@Phonon@@UBEPBUQMetaObject@@XZ @ 96 NONAME ; struct QMetaObject const * Phonon::VideoWidget::metaObject(void) const + ?audioOutputDeviceListFor@GlobalConfig@Phonon@@QBE?AV?$QList@H@@W4Category@2@H@Z @ 97 NONAME ; class QList Phonon::GlobalConfig::audioOutputDeviceListFor(enum Phonon::Category, int) const + ?staticMetaObject@?$ObjectDescriptionModel@$02@Phonon@@2UQMetaObject@@B @ 98 NONAME ; struct QMetaObject const Phonon::ObjectDescriptionModel<3>::staticMetaObject + ??1VideoWidget@Phonon@@UAE@XZ @ 99 NONAME ; Phonon::VideoWidget::~VideoWidget(void) + ?seekStream@AbstractMediaStream@Phonon@@MAEX_J@Z @ 100 NONAME ; void Phonon::AbstractMediaStream::seekStream(long long) + ?transitionTime@MediaObject@Phonon@@QBEHXZ @ 101 NONAME ; int Phonon::MediaObject::transitionTime(void) const + ?staticMetaObject@MediaObject@Phonon@@2UQMetaObject@@B @ 102 NONAME ; struct QMetaObject const Phonon::MediaObject::staticMetaObject + ?setMediaObject@SeekSlider@Phonon@@QAEXPAVMediaObject@2@@Z @ 103 NONAME ; void Phonon::SeekSlider::setMediaObject(class Phonon::MediaObject *) + ?type@EffectParameter@Phonon@@QBE?AW4Type@QVariant@@XZ @ 104 NONAME ; enum QVariant::Type Phonon::EffectParameter::type(void) const + ??0ObjectDescriptionData@Phonon@@QAE@HABV?$QHash@VQByteArray@@VQVariant@@@@@Z @ 105 NONAME ; Phonon::ObjectDescriptionData::ObjectDescriptionData(int, class QHash const &) + ??8EffectParameter@Phonon@@QBE_NABV01@@Z @ 106 NONAME ; bool Phonon::EffectParameter::operator==(class Phonon::EffectParameter const &) const + ??0MediaSource@Phonon@@IAE@AAVMediaSourcePrivate@1@@Z @ 107 NONAME ; Phonon::MediaSource::MediaSource(class Phonon::MediaSourcePrivate &) + ??0ObjectDescriptionModelData@Phonon@@QAE@PAVQAbstractListModel@@@Z @ 108 NONAME ; Phonon::ObjectDescriptionModelData::ObjectDescriptionModelData(class QAbstractListModel *) + ?clear@MediaObject@Phonon@@QAEXXZ @ 109 NONAME ; void Phonon::MediaObject::clear(void) + ??_EEffectParameter@Phonon@@QAE@I@Z @ 110 NONAME ; Phonon::EffectParameter::~EffectParameter(unsigned int) + ??4MediaSource@Phonon@@QAEAAV01@ABV01@@Z @ 111 NONAME ; class Phonon::MediaSource & Phonon::MediaSource::operator=(class Phonon::MediaSource const &) + ??0MediaSource@Phonon@@QAE@PAVQIODevice@@@Z @ 112 NONAME ; Phonon::MediaSource::MediaSource(class QIODevice *) + ?k_func@AbstractAudioOutput@Phonon@@AAEPAVAbstractAudioOutputPrivate@2@XZ @ 113 NONAME ; class Phonon::AbstractAudioOutputPrivate * Phonon::AbstractAudioOutput::k_func(void) + ?availableTitles@MediaController@Phonon@@QBEHXZ @ 114 NONAME ; int Phonon::MediaController::availableTitles(void) const + ?tr@VolumeSlider@Phonon@@SA?AVQString@@PBD0@Z @ 115 NONAME ; class QString Phonon::VolumeSlider::tr(char const *, char const *) + ?scaleMode@VideoWidget@Phonon@@QBE?AW4ScaleMode@12@XZ @ 116 NONAME ; enum Phonon::VideoWidget::ScaleMode Phonon::VideoWidget::scaleMode(void) const + ??_ESeekSlider@Phonon@@UAE@I@Z @ 117 NONAME ; Phonon::SeekSlider::~SeekSlider(unsigned int) + ?insertEffect@Path@Phonon@@QAE_NPAVEffect@2@0@Z @ 118 NONAME ; bool Phonon::Path::insertEffect(class Phonon::Effect *, class Phonon::Effect *) + ?state@MediaObject@Phonon@@QBE?AW4State@2@XZ @ 119 NONAME ; enum Phonon::State Phonon::MediaObject::state(void) const + ?outputDevice@AudioOutput@Phonon@@QBE?AV?$ObjectDescription@$0A@@2@XZ @ 120 NONAME ; class Phonon::ObjectDescription<0> Phonon::AudioOutput::outputDevice(void) const + ??8MediaSource@Phonon@@QBE_NABV01@@Z @ 121 NONAME ; bool Phonon::MediaSource::operator==(class Phonon::MediaSource const &) const + ??_EMediaNodePrivate@Phonon@@UAE@I@Z @ 122 NONAME ; Phonon::MediaNodePrivate::~MediaNodePrivate(unsigned int) + ?category@AudioOutput@Phonon@@QBE?AW4Category@2@XZ @ 123 NONAME ; enum Phonon::Category Phonon::AudioOutput::category(void) const + ?metaData@MediaObject@Phonon@@QBE?AVQStringList@@ABVQString@@@Z @ 124 NONAME ; class QStringList Phonon::MediaObject::metaData(class QString const &) const + ?setModelData@ObjectDescriptionModelData@Phonon@@QAEXABV?$QList@V?$QExplicitlySharedDataPointer@VObjectDescriptionData@Phonon@@@@@@@Z @ 125 NONAME ; void Phonon::ObjectDescriptionModelData::setModelData(class QList > const &) + ?connectToSource@StreamInterface@Phonon@@QAEXABVMediaSource@2@@Z @ 126 NONAME ; void Phonon::StreamInterface::connectToSource(class Phonon::MediaSource const &) + ?endOfData@AbstractMediaStream@Phonon@@IAEXXZ @ 127 NONAME ; void Phonon::AbstractMediaStream::endOfData(void) + ??0MediaNode@Phonon@@IAE@AAVMediaNodePrivate@1@@Z @ 128 NONAME ; Phonon::MediaNode::MediaNode(class Phonon::MediaNodePrivate &) + ?setVolumeDecibel@AudioOutput@Phonon@@QAEXM@Z @ 129 NONAME ; void Phonon::AudioOutput::setVolumeDecibel(float) + ?qt_metacall@Effect@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 130 NONAME ; int Phonon::Effect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?platformPlugin@Factory@Phonon@@YAPAVPlatformPlugin@2@XZ @ 131 NONAME ; class Phonon::PlatformPlugin * Phonon::Factory::platformPlugin(void) + ??1GlobalConfig@Phonon@@UAE@XZ @ 132 NONAME ; Phonon::GlobalConfig::~GlobalConfig(void) + ?orientation@SeekSlider@Phonon@@QBE?AW4Orientation@Qt@@XZ @ 133 NONAME ; enum Qt::Orientation Phonon::SeekSlider::orientation(void) const + ?setOrientation@SeekSlider@Phonon@@QAEXW4Orientation@Qt@@@Z @ 134 NONAME ; void Phonon::SeekSlider::setOrientation(enum Qt::Orientation) + ?q_func@MediaNodePrivate@Phonon@@AAEPAVMediaNode@2@XZ @ 135 NONAME ; class Phonon::MediaNode * Phonon::MediaNodePrivate::q_func(void) + ??0SeekSlider@Phonon@@QAE@PAVQWidget@@@Z @ 136 NONAME ; Phonon::SeekSlider::SeekSlider(class QWidget *) + ?qt_metacall@VolumeFaderEffect@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 137 NONAME ; int Phonon::VolumeFaderEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?d_func@AbstractMediaStream@Phonon@@AAEPAVAbstractMediaStreamPrivate@2@XZ @ 138 NONAME ; class Phonon::AbstractMediaStreamPrivate * Phonon::AbstractMediaStream::d_func(void) + ?metaData@MediaObject@Phonon@@QBE?AV?$QMultiMap@VQString@@V1@@@XZ @ 139 NONAME ; class QMultiMap Phonon::MediaObject::metaData(void) const + ?setBrightness@VideoWidget@Phonon@@QAEXM@Z @ 140 NONAME ; void Phonon::VideoWidget::setBrightness(float) + ??_EAudioOutput@Phonon@@UAE@I@Z @ 141 NONAME ; Phonon::AudioOutput::~AudioOutput(unsigned int) + ?qt_metacall@SeekSlider@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 142 NONAME ; int Phonon::SeekSlider::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setStreamSeekable@AbstractMediaStream@Phonon@@IAEX_N@Z @ 143 NONAME ; void Phonon::AbstractMediaStream::setStreamSeekable(bool) + ?tr@Effect@Phonon@@SA?AVQString@@PBD0@Z @ 144 NONAME ; class QString Phonon::Effect::tr(char const *, char const *) + ?hasVideoChanged@MediaObject@Phonon@@IAEX_N@Z @ 145 NONAME ; void Phonon::MediaObject::hasVideoChanged(bool) + ??1StreamInterface@Phonon@@UAE@XZ @ 146 NONAME ; Phonon::StreamInterface::~StreamInterface(void) + ?availableAudioChannelsChanged@MediaController@Phonon@@IAEXXZ @ 147 NONAME ; void Phonon::MediaController::availableAudioChannelsChanged(void) + ?enterFullScreen@VideoWidget@Phonon@@QAEXXZ @ 148 NONAME ; void Phonon::VideoWidget::enterFullScreen(void) + ?description@EffectParameter@Phonon@@QBEABVQString@@XZ @ 149 NONAME ; class QString const & Phonon::EffectParameter::description(void) const + ?setMaximumVolume@VolumeSlider@Phonon@@QAEXM@Z @ 150 NONAME ; void Phonon::VolumeSlider::setMaximumVolume(float) + ?metaObject@AudioOutput@Phonon@@UBEPBUQMetaObject@@XZ @ 151 NONAME ; struct QMetaObject const * Phonon::AudioOutput::metaObject(void) const + ?qt_metacall@VolumeSlider@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 152 NONAME ; int Phonon::VolumeSlider::qt_metacall(enum QMetaObject::Call, int, void * *) + ?createPath@Phonon@@YA?AVPath@1@PAVMediaNode@1@0@Z @ 153 NONAME ; class Phonon::Path Phonon::createPath(class Phonon::MediaNode *, class Phonon::MediaNode *) + ?isPlaying@VideoPlayer@Phonon@@QBE_NXZ @ 154 NONAME ; bool Phonon::VideoPlayer::isPlaying(void) const + ?tr@EffectWidget@Phonon@@SA?AVQString@@PBD0@Z @ 155 NONAME ; class QString Phonon::EffectWidget::tr(char const *, char const *) + ??1EffectWidget@Phonon@@UAE@XZ @ 156 NONAME ; Phonon::EffectWidget::~EffectWidget(void) + ??_EMediaObject@Phonon@@UAE@I@Z @ 157 NONAME ; Phonon::MediaObject::~MediaObject(unsigned int) + ?k_func@Effect@Phonon@@ABEPBVEffectPrivate@2@XZ @ 158 NONAME ; class Phonon::EffectPrivate const * Phonon::Effect::k_func(void) const + ?streamSize@AbstractMediaStream@Phonon@@IBE_JXZ @ 159 NONAME ; long long Phonon::AbstractMediaStream::streamSize(void) const + ?volume@AudioOutput@Phonon@@QBEMXZ @ 160 NONAME ; float Phonon::AudioOutput::volume(void) const + ?staticMetaObject@VideoPlayer@Phonon@@2UQMetaObject@@B @ 161 NONAME ; struct QMetaObject const Phonon::VideoPlayer::staticMetaObject + ?trUtf8@MediaController@Phonon@@SA?AVQString@@PBD0@Z @ 162 NONAME ; class QString Phonon::MediaController::trUtf8(char const *, char const *) + ?qt_metacast@VolumeFaderEffect@Phonon@@UAEPAXPBD@Z @ 163 NONAME ; void * Phonon::VolumeFaderEffect::qt_metacast(char const *) + ?queue@MediaObject@Phonon@@QBE?AV?$QList@VMediaSource@Phonon@@@@XZ @ 164 NONAME ; class QList Phonon::MediaObject::queue(void) const + ?qt_metacast@VideoPlayer@Phonon@@UAEPAXPBD@Z @ 165 NONAME ; void * Phonon::VideoPlayer::qt_metacast(char const *) + ??_EPath@Phonon@@QAE@I@Z @ 166 NONAME ; Phonon::Path::~Path(unsigned int) + ??1ObjectDescriptionModelData@Phonon@@IAE@XZ @ 167 NONAME ; Phonon::ObjectDescriptionModelData::~ObjectDescriptionModelData(void) + ?qt_metacast@VolumeSlider@Phonon@@UAEPAXPBD@Z @ 168 NONAME ; void * Phonon::VolumeSlider::qt_metacast(char const *) + ?modelData@ObjectDescriptionModelData@Phonon@@QBE?AV?$QList@V?$QExplicitlySharedDataPointer@VObjectDescriptionData@Phonon@@@@@@XZ @ 169 NONAME ; class QList > Phonon::ObjectDescriptionModelData::modelData(void) const + ?staticMetaObject@EffectWidget@Phonon@@2UQMetaObject@@B @ 170 NONAME ; struct QMetaObject const Phonon::EffectWidget::staticMetaObject + ?metaObject@?$ObjectDescriptionModel@$02@Phonon@@UBEPBUQMetaObject@@XZ @ 171 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<3>::metaObject(void) const + ?play@VideoPlayer@Phonon@@QAEXABVMediaSource@2@@Z @ 172 NONAME ; void Phonon::VideoPlayer::play(class Phonon::MediaSource const &) + ??0AbstractVideoOutput@Phonon@@IAE@AAVAbstractVideoOutputPrivate@1@@Z @ 173 NONAME ; Phonon::AbstractVideoOutput::AbstractVideoOutput(class Phonon::AbstractVideoOutputPrivate &) + ?trUtf8@VolumeFaderEffect@Phonon@@SA?AVQString@@PBD0@Z @ 174 NONAME ; class QString Phonon::VolumeFaderEffect::trUtf8(char const *, char const *) + ?k_func@SeekSlider@Phonon@@ABEPBVSeekSliderPrivate@2@XZ @ 175 NONAME ; class Phonon::SeekSliderPrivate const * Phonon::SeekSlider::k_func(void) const + ?qObject@MediaNodePrivate@Phonon@@UAEPAVQObject@@XZ @ 176 NONAME ; class QObject * Phonon::MediaNodePrivate::qObject(void) + ?qt_metacast@Effect@Phonon@@UAEPAXPBD@Z @ 177 NONAME ; void * Phonon::Effect::qt_metacast(char const *) + ?exitFullScreen@VideoWidget@Phonon@@QAEXXZ @ 178 NONAME ; void Phonon::VideoWidget::exitFullScreen(void) + ?qt_metacast@AbstractAudioOutput@Phonon@@UAEPAXPBD@Z @ 179 NONAME ; void * Phonon::AbstractAudioOutput::qt_metacast(char const *) + ?k_func@AbstractVideoOutput@Phonon@@AAEPAVAbstractVideoOutputPrivate@2@XZ @ 180 NONAME ; class Phonon::AbstractVideoOutputPrivate * Phonon::AbstractVideoOutput::k_func(void) + ?currentTime@MediaObject@Phonon@@QBE_JXZ @ 181 NONAME ; long long Phonon::MediaObject::currentTime(void) const + ?mediaObject@VideoPlayer@Phonon@@QBEPAVMediaObject@2@XZ @ 182 NONAME ; class Phonon::MediaObject * Phonon::VideoPlayer::mediaObject(void) const + ?isIconVisible@SeekSlider@Phonon@@QBE_NXZ @ 183 NONAME ; bool Phonon::SeekSlider::isIconVisible(void) const + ??MEffectParameter@Phonon@@QBE_NABV01@@Z @ 184 NONAME ; bool Phonon::EffectParameter::operator<(class Phonon::EffectParameter const &) const + ?url@MediaSource@Phonon@@QBE?AVQUrl@@XZ @ 185 NONAME ; class QUrl Phonon::MediaSource::url(void) const + ??0EffectParameter@Phonon@@QAE@XZ @ 186 NONAME ; Phonon::EffectParameter::EffectParameter(void) + ?mutedChanged@AudioOutput@Phonon@@IAEX_N@Z @ 187 NONAME ; void Phonon::AudioOutput::mutedChanged(bool) + ?k_func@MediaNode@Phonon@@AAEPAVMediaNodePrivate@2@XZ @ 188 NONAME ; class Phonon::MediaNodePrivate * Phonon::MediaNode::k_func(void) + ?outputPaths@MediaNode@Phonon@@QBE?AV?$QList@VPath@Phonon@@@@XZ @ 189 NONAME ; class QList Phonon::MediaNode::outputPaths(void) const + ?event@VideoWidget@Phonon@@MAE_NPAVQEvent@@@Z @ 190 NONAME ; bool Phonon::VideoWidget::event(class QEvent *) + ??0Effect@Phonon@@QAE@ABV?$ObjectDescription@$00@1@PAVQObject@@@Z @ 191 NONAME ; Phonon::Effect::Effect(class Phonon::ObjectDescription<1> const &, class QObject *) + ??0MediaSource@Phonon@@QAE@ABVQUrl@@@Z @ 192 NONAME ; Phonon::MediaSource::MediaSource(class QUrl const &) + ?endOfData@AbstractMediaStreamPrivate@Phonon@@MAEXXZ @ 193 NONAME ; void Phonon::AbstractMediaStreamPrivate::endOfData(void) + ??OEffectParameter@Phonon@@QBE_NABV01@@Z @ 194 NONAME ; bool Phonon::EffectParameter::operator>(class Phonon::EffectParameter const &) const + ?mediaObject@SeekSlider@Phonon@@QBEPAVMediaObject@2@XZ @ 195 NONAME ; class Phonon::MediaObject * Phonon::SeekSlider::mediaObject(void) const + ??0MediaSource@Phonon@@QAE@ABV01@@Z @ 196 NONAME ; Phonon::MediaSource::MediaSource(class Phonon::MediaSource const &) + ?outputDeviceChanged@AudioOutput@Phonon@@IAEXABV?$ObjectDescription@$0A@@2@@Z @ 197 NONAME ; void Phonon::AudioOutput::outputDeviceChanged(class Phonon::ObjectDescription<0> const &) + ??0MediaNodePrivate@Phonon@@IAE@W4CastId@01@@Z @ 198 NONAME ; Phonon::MediaNodePrivate::MediaNodePrivate(enum Phonon::MediaNodePrivate::CastId) + ?qt_metacall@AbstractMediaStream@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 199 NONAME ; int Phonon::AbstractMediaStream::qt_metacall(enum QMetaObject::Call, int, void * *) + ?maximumVolume@VolumeSlider@Phonon@@QBEMXZ @ 200 NONAME ; float Phonon::VolumeSlider::maximumVolume(void) const + ?audioOutputDeviceFor@GlobalConfig@Phonon@@QBEHW4Category@2@H@Z @ 201 NONAME ; int Phonon::GlobalConfig::audioOutputDeviceFor(enum Phonon::Category, int) const + ?tr@AbstractAudioOutput@Phonon@@SA?AVQString@@PBD0@Z @ 202 NONAME ; class QString Phonon::AbstractAudioOutput::tr(char const *, char const *) + ?setCurrentAudioChannel@MediaController@Phonon@@QAEXABV?$ObjectDescription@$01@2@@Z @ 203 NONAME ; void Phonon::MediaController::setCurrentAudioChannel(class Phonon::ObjectDescription<2> const &) + ?saturation@VideoWidget@Phonon@@QBEMXZ @ 204 NONAME ; float Phonon::VideoWidget::saturation(void) const + ?videoWidget@VideoPlayer@Phonon@@QBEPAVVideoWidget@2@XZ @ 205 NONAME ; class Phonon::VideoWidget * Phonon::VideoPlayer::videoWidget(void) const + ?setAudioOutput@VolumeSlider@Phonon@@QAEXPAVAudioOutput@2@@Z @ 206 NONAME ; void Phonon::VolumeSlider::setAudioOutput(class Phonon::AudioOutput *) + ?setTracking@VolumeSlider@Phonon@@QAEX_N@Z @ 207 NONAME ; void Phonon::VolumeSlider::setTracking(bool) + ?setParameterValue@Effect@Phonon@@QAEXABVEffectParameter@2@ABVQVariant@@@Z @ 208 NONAME ; void Phonon::Effect::setParameterValue(class Phonon::EffectParameter const &, class QVariant const &) + ??4Path@Phonon@@QAEAAV01@ABV01@@Z @ 209 NONAME ; class Phonon::Path & Phonon::Path::operator=(class Phonon::Path const &) + ?setVolume@VideoPlayer@Phonon@@QAEXM@Z @ 210 NONAME ; void Phonon::VideoPlayer::setVolume(float) + ?setAutoplayTitles@MediaController@Phonon@@QAEX_N@Z @ 211 NONAME ; void Phonon::MediaController::setAutoplayTitles(bool) + ?staticMetaObject@?$ObjectDescriptionModel@$03@Phonon@@2UQMetaObject@@B @ 212 NONAME ; struct QMetaObject const Phonon::ObjectDescriptionModel<4>::staticMetaObject + ??0Path@Phonon@@QAE@ABV01@@Z @ 213 NONAME ; Phonon::Path::Path(class Phonon::Path const &) + ?k_func@EffectWidget@Phonon@@ABEPBVEffectWidgetPrivate@2@XZ @ 214 NONAME ; class Phonon::EffectWidgetPrivate const * Phonon::EffectWidget::k_func(void) const + ?parameterValue@Effect@Phonon@@QBE?AVQVariant@@ABVEffectParameter@2@@Z @ 215 NONAME ; class QVariant Phonon::Effect::parameterValue(class Phonon::EffectParameter const &) const + ?tr@EffectWidget@Phonon@@SA?AVQString@@PBD0H@Z @ 216 NONAME ; class QString Phonon::EffectWidget::tr(char const *, char const *, int) + ?brightness@VideoWidget@Phonon@@QBEMXZ @ 217 NONAME ; float Phonon::VideoWidget::brightness(void) const + ?finished@MediaObject@Phonon@@IAEXXZ @ 218 NONAME ; void Phonon::MediaObject::finished(void) + ?data@ObjectDescriptionModelData@Phonon@@QBE?AVQVariant@@ABVQModelIndex@@H@Z @ 219 NONAME ; class QVariant Phonon::ObjectDescriptionModelData::data(class QModelIndex const &, int) const + ?addDestructionHandler@MediaNodePrivate@Phonon@@QAEXPAVMediaNodeDestructionHandler@2@@Z @ 220 NONAME ; void Phonon::MediaNodePrivate::addDestructionHandler(class Phonon::MediaNodeDestructionHandler *) + ?_k_stateChanged@MediaObjectPrivate@Phonon@@IAEXW4State@2@0@Z @ 221 NONAME ; void Phonon::MediaObjectPrivate::_k_stateChanged(enum Phonon::State, enum Phonon::State) + ?q_func@MediaNodePrivate@Phonon@@ABEPBVMediaNode@2@XZ @ 222 NONAME ; class Phonon::MediaNode const * Phonon::MediaNodePrivate::q_func(void) const + ?nextTitle@MediaController@Phonon@@QAEXXZ @ 223 NONAME ; void Phonon::MediaController::nextTitle(void) + ?tupleIndexAtPositionIndex@ObjectDescriptionModelData@Phonon@@QBEHH@Z @ 224 NONAME ; int Phonon::ObjectDescriptionModelData::tupleIndexAtPositionIndex(int) const + ?audioOutput@VolumeSlider@Phonon@@QBEPAVAudioOutput@2@XZ @ 225 NONAME ; class Phonon::AudioOutput * Phonon::VolumeSlider::audioOutput(void) const + ?setOutputDevice@AudioOutput@Phonon@@QAE_NABV?$ObjectDescription@$0A@@2@@Z @ 226 NONAME ; bool Phonon::AudioOutput::setOutputDevice(class Phonon::ObjectDescription<0> const &) + ?qt_metacast@?$ObjectDescriptionModel@$00@Phonon@@UAEPAXPBD@Z @ 227 NONAME ; void * Phonon::ObjectDescriptionModel<1>::qt_metacast(char const *) + ??1AbstractVideoOutput@Phonon@@UAE@XZ @ 228 NONAME ; Phonon::AbstractVideoOutput::~AbstractVideoOutput(void) + ?setQueue@MediaObject@Phonon@@QAEXABV?$QList@VMediaSource@Phonon@@@@@Z @ 229 NONAME ; void Phonon::MediaObject::setQueue(class QList const &) + ?k_func@Effect@Phonon@@AAEPAVEffectPrivate@2@XZ @ 230 NONAME ; class Phonon::EffectPrivate * Phonon::Effect::k_func(void) + ?availableChaptersChanged@MediaController@Phonon@@IAEXH@Z @ 231 NONAME ; void Phonon::MediaController::availableChaptersChanged(int) + ?setVolumeDecibel@VolumeFaderEffect@Phonon@@QAEXN@Z @ 232 NONAME ; void Phonon::VolumeFaderEffect::setVolumeDecibel(double) + ?setCurrentSubtitle@MediaController@Phonon@@QAEXABV?$ObjectDescription@$02@2@@Z @ 233 NONAME ; void Phonon::MediaController::setCurrentSubtitle(class Phonon::ObjectDescription<3> const &) + ?availableMimeTypes@BackendCapabilities@Phonon@@YA?AVQStringList@@XZ @ 234 NONAME ; class QStringList Phonon::BackendCapabilities::availableMimeTypes(void) + ??_EMediaSourcePrivate@Phonon@@UAE@I@Z @ 235 NONAME ; Phonon::MediaSourcePrivate::~MediaSourcePrivate(unsigned int) + ??_EMediaSource@Phonon@@QAE@I@Z @ 236 NONAME ; Phonon::MediaSource::~MediaSource(unsigned int) + ?trUtf8@SeekSlider@Phonon@@SA?AVQString@@PBD0@Z @ 237 NONAME ; class QString Phonon::SeekSlider::trUtf8(char const *, char const *) + ?availableAudioEffects@BackendCapabilities@Phonon@@YA?AV?$QList@V?$ObjectDescription@$00@Phonon@@@@XZ @ 238 NONAME ; class QList > Phonon::BackendCapabilities::availableAudioEffects(void) + ?seek@VideoPlayer@Phonon@@QAEX_J@Z @ 239 NONAME ; void Phonon::VideoPlayer::seek(long long) + ?setCurrentChapter@MediaController@Phonon@@QAEXH@Z @ 240 NONAME ; void Phonon::MediaController::setCurrentChapter(int) + ??0AbstractMediaStreamPrivate@Phonon@@IAE@XZ @ 241 NONAME ; Phonon::AbstractMediaStreamPrivate::AbstractMediaStreamPrivate(void) + ?singleStep@VolumeSlider@Phonon@@QBEHXZ @ 242 NONAME ; int Phonon::VolumeSlider::singleStep(void) const + ?addOutputPath@MediaNodePrivate@Phonon@@QAEXABVPath@2@@Z @ 243 NONAME ; void Phonon::MediaNodePrivate::addOutputPath(class Phonon::Path const &) + ?backend@Factory@Phonon@@YAPAVQObject@@_N@Z @ 244 NONAME ; class QObject * Phonon::Factory::backend(bool) + ?defaultValue@EffectParameter@Phonon@@QBE?AVQVariant@@XZ @ 245 NONAME ; class QVariant Phonon::EffectParameter::defaultValue(void) const + ?k_func@MediaNode@Phonon@@ABEPBVMediaNodePrivate@2@XZ @ 246 NONAME ; class Phonon::MediaNodePrivate const * Phonon::MediaNode::k_func(void) const + ?remainingTime@MediaObject@Phonon@@QBE_JXZ @ 247 NONAME ; long long Phonon::MediaObject::remainingTime(void) const + ?moveUp@ObjectDescriptionModelData@Phonon@@QAEXABVQModelIndex@@@Z @ 248 NONAME ; void Phonon::ObjectDescriptionModelData::moveUp(class QModelIndex const &) + ??0AudioOutput@Phonon@@QAE@PAVQObject@@@Z @ 249 NONAME ; Phonon::AudioOutput::AudioOutput(class QObject *) + ?setPrefinishMark@MediaObject@Phonon@@QAEXH@Z @ 250 NONAME ; void Phonon::MediaObject::setPrefinishMark(int) + ?bufferStatus@MediaObject@Phonon@@IAEXH@Z @ 251 NONAME ; void Phonon::MediaObject::bufferStatus(int) + ?qt_metacall@VideoPlayer@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 252 NONAME ; int Phonon::VideoPlayer::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setCurrentTitle@MediaController@Phonon@@QAEXH@Z @ 253 NONAME ; void Phonon::MediaController::setCurrentTitle(int) + ?getStaticMetaObject@MediaObject@Phonon@@SAABUQMetaObject@@XZ @ 254 NONAME ; struct QMetaObject const & Phonon::MediaObject::getStaticMetaObject(void) + ?supportedFeatures@MediaController@Phonon@@QBE?AV?$QFlags@W4Feature@MediaController@Phonon@@@@XZ @ 255 NONAME ; class QFlags Phonon::MediaController::supportedFeatures(void) const + ?metaData@MediaObject@Phonon@@QBE?AVQStringList@@W4MetaData@2@@Z @ 256 NONAME ; class QStringList Phonon::MediaObject::metaData(enum Phonon::MetaData) const + ?currentAudioChannel@MediaController@Phonon@@QBE?AV?$ObjectDescription@$01@2@XZ @ 257 NONAME ; class Phonon::ObjectDescription<2> Phonon::MediaController::currentAudioChannel(void) const + ?isMuteVisible@VolumeSlider@Phonon@@QBE_NXZ @ 258 NONAME ; bool Phonon::VolumeSlider::isMuteVisible(void) const + ?qObject@MediaNodePrivate@Phonon@@QBEPBVQObject@@XZ @ 259 NONAME ; class QObject const * Phonon::MediaNodePrivate::qObject(void) const + ?setStreamSize@AbstractMediaStreamPrivate@Phonon@@MAEX_J@Z @ 260 NONAME ; void Phonon::AbstractMediaStreamPrivate::setStreamSize(long long) + ?trUtf8@AbstractAudioOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 261 NONAME ; class QString Phonon::AbstractAudioOutput::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@SeekSlider@Phonon@@SAABUQMetaObject@@XZ @ 262 NONAME ; struct QMetaObject const & Phonon::SeekSlider::getStaticMetaObject(void) + ?currentTitle@MediaController@Phonon@@QBEHXZ @ 263 NONAME ; int Phonon::MediaController::currentTitle(void) const + ?k_func@VolumeFaderEffect@Phonon@@AAEPAVVolumeFaderEffectPrivate@2@XZ @ 264 NONAME ; class Phonon::VolumeFaderEffectPrivate * Phonon::VolumeFaderEffect::k_func(void) + ?volume@VolumeFaderEffect@Phonon@@QBEMXZ @ 265 NONAME ; float Phonon::VolumeFaderEffect::volume(void) const + ?k_func@EffectWidget@Phonon@@AAEPAVEffectWidgetPrivate@2@XZ @ 266 NONAME ; class Phonon::EffectWidgetPrivate * Phonon::EffectWidget::k_func(void) + ?isSeekable@MediaObject@Phonon@@QBE_NXZ @ 267 NONAME ; bool Phonon::MediaObject::isSeekable(void) const + ?k_func@AbstractAudioOutput@Phonon@@ABEPBVAbstractAudioOutputPrivate@2@XZ @ 268 NONAME ; class Phonon::AbstractAudioOutputPrivate const * Phonon::AbstractAudioOutput::k_func(void) const + ?parameters@Effect@Phonon@@QBE?AV?$QList@VEffectParameter@Phonon@@@@XZ @ 269 NONAME ; class QList Phonon::Effect::parameters(void) const + ?setVolume@AudioOutput@Phonon@@QAEXM@Z @ 270 NONAME ; void Phonon::AudioOutput::setVolume(float) + ?tr@VolumeSlider@Phonon@@SA?AVQString@@PBD0H@Z @ 271 NONAME ; class QString Phonon::VolumeSlider::tr(char const *, char const *, int) + ?setTickInterval@MediaObject@Phonon@@QAEXH@Z @ 272 NONAME ; void Phonon::MediaObject::setTickInterval(int) + ?tupleIndexOrder@ObjectDescriptionModelData@Phonon@@QBE?AV?$QList@H@@XZ @ 273 NONAME ; class QList Phonon::ObjectDescriptionModelData::tupleIndexOrder(void) const + ?metaObject@SeekSlider@Phonon@@UBEPBUQMetaObject@@XZ @ 274 NONAME ; struct QMetaObject const * Phonon::SeekSlider::metaObject(void) const + ?k_func@MediaObject@Phonon@@AAEPAVMediaObjectPrivate@2@XZ @ 275 NONAME ; class Phonon::MediaObjectPrivate * Phonon::MediaObject::k_func(void) + ?singleStep@SeekSlider@Phonon@@QBEHXZ @ 276 NONAME ; int Phonon::SeekSlider::singleStep(void) const + ?getStaticMetaObject@Effect@Phonon@@SAABUQMetaObject@@XZ @ 277 NONAME ; struct QMetaObject const & Phonon::Effect::getStaticMetaObject(void) + ?qt_metacall@AbstractAudioOutput@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 278 NONAME ; int Phonon::AbstractAudioOutput::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_EMediaController@Phonon@@UAE@I@Z @ 279 NONAME ; Phonon::MediaController::~MediaController(unsigned int) + ??0AbstractAudioOutput@Phonon@@IAE@AAVAbstractAudioOutputPrivate@1@PAVQObject@@@Z @ 280 NONAME ; Phonon::AbstractAudioOutput::AbstractAudioOutput(class Phonon::AbstractAudioOutputPrivate &, class QObject *) + ?phononObjectDestroyed@AbstractMediaStreamPrivate@Phonon@@MAEXPAVMediaNodePrivate@2@@Z @ 281 NONAME ; void Phonon::AbstractMediaStreamPrivate::phononObjectDestroyed(class Phonon::MediaNodePrivate *) + ??_EAbstractAudioOutput@Phonon@@UAE@I@Z @ 282 NONAME ; Phonon::AbstractAudioOutput::~AbstractAudioOutput(unsigned int) + ??1MediaNode@Phonon@@UAE@XZ @ 283 NONAME ; Phonon::MediaNode::~MediaNode(void) + ?isMimeTypeAvailable@BackendCapabilities@Phonon@@YA_NABVQString@@@Z @ 284 NONAME ; bool Phonon::BackendCapabilities::isMimeTypeAvailable(class QString const &) + ?contrast@VideoWidget@Phonon@@QBEMXZ @ 285 NONAME ; float Phonon::VideoWidget::contrast(void) const + ??0GlobalConfig@Phonon@@QAE@XZ @ 286 NONAME ; Phonon::GlobalConfig::GlobalConfig(void) + ?tick@MediaObject@Phonon@@IAEX_J@Z @ 287 NONAME ; void Phonon::MediaObject::tick(long long) + ?d_func@AbstractMediaStream@Phonon@@ABEPBVAbstractMediaStreamPrivate@2@XZ @ 288 NONAME ; class Phonon::AbstractMediaStreamPrivate const * Phonon::AbstractMediaStream::d_func(void) const + ??8ObjectDescriptionData@Phonon@@QBE_NABV01@@Z @ 289 NONAME ; bool Phonon::ObjectDescriptionData::operator==(class Phonon::ObjectDescriptionData const &) const + ?hasTracking@SeekSlider@Phonon@@QBE_NXZ @ 290 NONAME ; bool Phonon::SeekSlider::hasTracking(void) const + ?writeData@AbstractMediaStream@Phonon@@IAEXABVQByteArray@@@Z @ 291 NONAME ; void Phonon::AbstractMediaStream::writeData(class QByteArray const &) + ?prefinishMark@MediaObject@Phonon@@QBEHXZ @ 292 NONAME ; int Phonon::MediaObject::prefinishMark(void) const + ?staticMetaObject@SeekSlider@Phonon@@2UQMetaObject@@B @ 293 NONAME ; struct QMetaObject const Phonon::SeekSlider::staticMetaObject + ?angleChanged@MediaController@Phonon@@IAEXH@Z @ 294 NONAME ; void Phonon::MediaController::angleChanged(int) + ?enoughData@AbstractMediaStream@Phonon@@MAEXXZ @ 295 NONAME ; void Phonon::AbstractMediaStream::enoughData(void) + ?seekableChanged@MediaObject@Phonon@@IAEX_N@Z @ 296 NONAME ; void Phonon::MediaObject::seekableChanged(bool) + ?hue@VideoWidget@Phonon@@QBEMXZ @ 297 NONAME ; float Phonon::VideoWidget::hue(void) const + ?currentAngle@MediaController@Phonon@@QBEHXZ @ 298 NONAME ; int Phonon::MediaController::currentAngle(void) const + ?fileName@MediaSource@Phonon@@QBE?AVQString@@XZ @ 299 NONAME ; class QString Phonon::MediaSource::fileName(void) const + ?metaObject@?$ObjectDescriptionModel@$0A@@Phonon@@UBEPBUQMetaObject@@XZ @ 300 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<0>::metaObject(void) const + ?tr@AbstractMediaStream@Phonon@@SA?AVQString@@PBD0@Z @ 301 NONAME ; class QString Phonon::AbstractMediaStream::tr(char const *, char const *) + ??_EObjectDescriptionData@Phonon@@QAE@I@Z @ 302 NONAME ; Phonon::ObjectDescriptionData::~ObjectDescriptionData(unsigned int) + ?fadeIn@VolumeFaderEffect@Phonon@@QAEXH@Z @ 303 NONAME ; void Phonon::VolumeFaderEffect::fadeIn(int) + ?availableAngles@MediaController@Phonon@@QBEHXZ @ 304 NONAME ; int Phonon::MediaController::availableAngles(void) const + ?enqueue@MediaObject@Phonon@@QAEXABVMediaSource@2@@Z @ 305 NONAME ; void Phonon::MediaObject::enqueue(class Phonon::MediaSource const &) + ?metaObject@EffectWidget@Phonon@@UBEPBUQMetaObject@@XZ @ 306 NONAME ; struct QMetaObject const * Phonon::EffectWidget::metaObject(void) const + ?type@MediaSource@Phonon@@QBE?AW4Type@12@XZ @ 307 NONAME ; enum Phonon::MediaSource::Type Phonon::MediaSource::type(void) const + ?tr@VideoWidget@Phonon@@SA?AVQString@@PBD0H@Z @ 308 NONAME ; class QString Phonon::VideoWidget::tr(char const *, char const *, int) + ?isValid@Path@Phonon@@QBE_NXZ @ 309 NONAME ; bool Phonon::Path::isValid(void) const + ?qt_metacast@?$ObjectDescriptionModel@$02@Phonon@@UAEPAXPBD@Z @ 310 NONAME ; void * Phonon::ObjectDescriptionModel<3>::qt_metacast(char const *) + ?trUtf8@MediaController@Phonon@@SA?AVQString@@PBD0H@Z @ 311 NONAME ; class QString Phonon::MediaController::trUtf8(char const *, char const *, int) + ?setTransitionTime@MediaObject@Phonon@@QAEXH@Z @ 312 NONAME ; void Phonon::MediaObject::setTransitionTime(int) + ?sender@Factory@Phonon@@YAPAVSender@12@XZ @ 313 NONAME ; class Phonon::Factory::Sender * Phonon::Factory::sender(void) + ?trUtf8@SeekSlider@Phonon@@SA?AVQString@@PBD0H@Z @ 314 NONAME ; class QString Phonon::SeekSlider::trUtf8(char const *, char const *, int) + ?availableAudioOutputDevices@BackendCapabilities@Phonon@@YA?AV?$QList@V?$ObjectDescription@$0A@@Phonon@@@@XZ @ 315 NONAME ; class QList > Phonon::BackendCapabilities::availableAudioOutputDevices(void) + ?tr@AbstractAudioOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 316 NONAME ; class QString Phonon::AbstractAudioOutput::tr(char const *, char const *, int) + ?k_func@AbstractVideoOutput@Phonon@@ABEPBVAbstractVideoOutputPrivate@2@XZ @ 317 NONAME ; class Phonon::AbstractVideoOutputPrivate const * Phonon::AbstractVideoOutput::k_func(void) const + ?setSaturation@VideoWidget@Phonon@@QAEXM@Z @ 318 NONAME ; void Phonon::VideoWidget::setSaturation(float) + ?removeOutputPath@MediaNodePrivate@Phonon@@QAEXABVPath@2@@Z @ 319 NONAME ; void Phonon::MediaNodePrivate::removeOutputPath(class Phonon::Path const &) + ?fadeOut@VolumeFaderEffect@Phonon@@QAEXH@Z @ 320 NONAME ; void Phonon::VolumeFaderEffect::fadeOut(int) + ??0MediaSource@Phonon@@QAE@PAVAbstractMediaStream@1@@Z @ 321 NONAME ; Phonon::MediaSource::MediaSource(class Phonon::AbstractMediaStream *) + ??0MediaObject@Phonon@@QAE@PAVQObject@@@Z @ 322 NONAME ; Phonon::MediaObject::MediaObject(class QObject *) + ?setSingleStep@VolumeSlider@Phonon@@QAEXH@Z @ 323 NONAME ; void Phonon::VolumeSlider::setSingleStep(int) + ?setCurrentSource@MediaObject@Phonon@@QAEXABVMediaSource@2@@Z @ 324 NONAME ; void Phonon::MediaObject::setCurrentSource(class Phonon::MediaSource const &) + ??1VolumeFaderEffect@Phonon@@UAE@XZ @ 325 NONAME ; Phonon::VolumeFaderEffect::~VolumeFaderEffect(void) + ?errorType@MediaObject@Phonon@@QBE?AW4ErrorType@2@XZ @ 326 NONAME ; enum Phonon::ErrorType Phonon::MediaObject::errorType(void) const + ?k_func@VolumeFaderEffect@Phonon@@ABEPBVVolumeFaderEffectPrivate@2@XZ @ 327 NONAME ; class Phonon::VolumeFaderEffectPrivate const * Phonon::VolumeFaderEffect::k_func(void) const + ?setStreamSize@AbstractMediaStream@Phonon@@IAEX_J@Z @ 328 NONAME ; void Phonon::AbstractMediaStream::setStreamSize(long long) + ?trUtf8@Effect@Phonon@@SA?AVQString@@PBD0@Z @ 329 NONAME ; class QString Phonon::Effect::trUtf8(char const *, char const *) + ?trUtf8@MediaObject@Phonon@@SA?AVQString@@PBD0H@Z @ 330 NONAME ; class QString Phonon::MediaObject::trUtf8(char const *, char const *, int) + ?supportedDropActions@ObjectDescriptionModelData@Phonon@@QBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 331 NONAME ; class QFlags Phonon::ObjectDescriptionModelData::supportedDropActions(void) const + ??0VideoPlayer@Phonon@@QAE@W4Category@1@PAVQWidget@@@Z @ 332 NONAME ; Phonon::VideoPlayer::VideoPlayer(enum Phonon::Category, class QWidget *) + ??0EffectWidget@Phonon@@QAE@PAVEffect@1@PAVQWidget@@@Z @ 333 NONAME ; Phonon::EffectWidget::EffectWidget(class Phonon::Effect *, class QWidget *) + ?trUtf8@VideoPlayer@Phonon@@SA?AVQString@@PBD0H@Z @ 334 NONAME ; class QString Phonon::VideoPlayer::trUtf8(char const *, char const *, int) + ?tr@VolumeFaderEffect@Phonon@@SA?AVQString@@PBD0H@Z @ 335 NONAME ; class QString Phonon::VolumeFaderEffect::tr(char const *, char const *, int) + ?setContrast@VideoWidget@Phonon@@QAEXM@Z @ 336 NONAME ; void Phonon::VideoWidget::setContrast(float) + ??1SeekSlider@Phonon@@UAE@XZ @ 337 NONAME ; Phonon::SeekSlider::~SeekSlider(void) + ?disconnect@Path@Phonon@@QAE_NXZ @ 338 NONAME ; bool Phonon::Path::disconnect(void) + ?trUtf8@EffectWidget@Phonon@@SA?AVQString@@PBD0H@Z @ 339 NONAME ; class QString Phonon::EffectWidget::trUtf8(char const *, char const *, int) + ?fadeCurve@VolumeFaderEffect@Phonon@@QBE?AW4FadeCurve@12@XZ @ 340 NONAME ; enum Phonon::VolumeFaderEffect::FadeCurve Phonon::VolumeFaderEffect::fadeCurve(void) const + ?errorString@MediaObject@Phonon@@QBE?AVQString@@XZ @ 341 NONAME ; class QString Phonon::MediaObject::errorString(void) const + ??_EAbstractVideoOutput@Phonon@@UAE@I@Z @ 342 NONAME ; Phonon::AbstractVideoOutput::~AbstractVideoOutput(unsigned int) + ?metaObject@AbstractAudioOutput@Phonon@@UBEPBUQMetaObject@@XZ @ 343 NONAME ; struct QMetaObject const * Phonon::AbstractAudioOutput::metaObject(void) const + ?pause@VideoPlayer@Phonon@@QAEXXZ @ 344 NONAME ; void Phonon::VideoPlayer::pause(void) + ?tr@MediaController@Phonon@@SA?AVQString@@PBD0H@Z @ 345 NONAME ; class QString Phonon::MediaController::tr(char const *, char const *, int) + ?seekStream@StreamInterface@Phonon@@QAEX_J@Z @ 346 NONAME ; void Phonon::StreamInterface::seekStream(long long) + ?enqueue@MediaObject@Phonon@@QAEXABV?$QList@VQUrl@@@@@Z @ 347 NONAME ; void Phonon::MediaObject::enqueue(class QList const &) + ?getStaticMetaObject@VideoWidget@Phonon@@SAABUQMetaObject@@XZ @ 348 NONAME ; struct QMetaObject const & Phonon::VideoWidget::getStaticMetaObject(void) + ?isMuted@AudioOutput@Phonon@@QBE_NXZ @ 349 NONAME ; bool Phonon::AudioOutput::isMuted(void) const + ??1ObjectDescriptionData@Phonon@@QAE@XZ @ 350 NONAME ; Phonon::ObjectDescriptionData::~ObjectDescriptionData(void) + ?availableAnglesChanged@MediaController@Phonon@@IAEXH@Z @ 351 NONAME ; void Phonon::MediaController::availableAnglesChanged(int) + ?trUtf8@MediaObject@Phonon@@SA?AVQString@@PBD0@Z @ 352 NONAME ; class QString Phonon::MediaObject::trUtf8(char const *, char const *) + ??0AbstractMediaStream@Phonon@@IAE@AAVAbstractMediaStreamPrivate@1@PAVQObject@@@Z @ 353 NONAME ; Phonon::AbstractMediaStream::AbstractMediaStream(class Phonon::AbstractMediaStreamPrivate &, class QObject *) + ?index@ObjectDescriptionData@Phonon@@QBEHXZ @ 354 NONAME ; int Phonon::ObjectDescriptionData::index(void) const + ?stateChanged@MediaObject@Phonon@@IAEXW4State@2@0@Z @ 355 NONAME ; void Phonon::MediaObject::stateChanged(enum Phonon::State, enum Phonon::State) + ?tr@AudioOutput@Phonon@@SA?AVQString@@PBD0H@Z @ 356 NONAME ; class QString Phonon::AudioOutput::tr(char const *, char const *, int) + ?trUtf8@AbstractMediaStream@Phonon@@SA?AVQString@@PBD0H@Z @ 357 NONAME ; class QString Phonon::AbstractMediaStream::trUtf8(char const *, char const *, int) + ?metaObject@VolumeSlider@Phonon@@UBEPBUQMetaObject@@XZ @ 358 NONAME ; struct QMetaObject const * Phonon::VolumeSlider::metaObject(void) const + ?k_func@SeekSlider@Phonon@@AAEPAVSeekSliderPrivate@2@XZ @ 359 NONAME ; class Phonon::SeekSliderPrivate * Phonon::SeekSlider::k_func(void) + ?getStaticMetaObject@VideoPlayer@Phonon@@SAABUQMetaObject@@XZ @ 360 NONAME ; struct QMetaObject const & Phonon::VideoPlayer::getStaticMetaObject(void) + ?availableTitlesChanged@MediaController@Phonon@@IAEXH@Z @ 361 NONAME ; void Phonon::MediaController::availableTitlesChanged(int) + ?isLogarithmicControl@EffectParameter@Phonon@@QBE_NXZ @ 362 NONAME ; bool Phonon::EffectParameter::isLogarithmicControl(void) const + ?setStreamSeekable@AbstractMediaStreamPrivate@Phonon@@MAEX_N@Z @ 363 NONAME ; void Phonon::AbstractMediaStreamPrivate::setStreamSeekable(bool) + ??0VideoPlayer@Phonon@@QAE@PAVQWidget@@@Z @ 364 NONAME ; Phonon::VideoPlayer::VideoPlayer(class QWidget *) + ?tr@SeekSlider@Phonon@@SA?AVQString@@PBD0H@Z @ 365 NONAME ; class QString Phonon::SeekSlider::tr(char const *, char const *, int) + ?qt_metacast@SeekSlider@Phonon@@UAEPAXPBD@Z @ 366 NONAME ; void * Phonon::SeekSlider::qt_metacast(char const *) + ?metaDataChanged@MediaObject@Phonon@@IAEXXZ @ 367 NONAME ; void Phonon::MediaObject::metaDataChanged(void) + ?setIconVisible@SeekSlider@Phonon@@QAEX_N@Z @ 368 NONAME ; void Phonon::SeekSlider::setIconVisible(bool) + ??1AbstractMediaStream@Phonon@@UAE@XZ @ 369 NONAME ; Phonon::AbstractMediaStream::~AbstractMediaStream(void) + ?maximumValue@EffectParameter@Phonon@@QBE?AVQVariant@@XZ @ 370 NONAME ; class QVariant Phonon::EffectParameter::maximumValue(void) const + ?registerFrontendObject@Factory@Phonon@@YAXPAVMediaNodePrivate@2@@Z @ 371 NONAME ; void Phonon::Factory::registerFrontendObject(class Phonon::MediaNodePrivate *) + ?trUtf8@VolumeSlider@Phonon@@SA?AVQString@@PBD0@Z @ 372 NONAME ; class QString Phonon::VolumeSlider::trUtf8(char const *, char const *) + ?removeRows@ObjectDescriptionModelData@Phonon@@QAE_NHHABVQModelIndex@@@Z @ 373 NONAME ; bool Phonon::ObjectDescriptionModelData::removeRows(int, int, class QModelIndex const &) + ??1MediaNodePrivate@Phonon@@MAE@XZ @ 374 NONAME ; Phonon::MediaNodePrivate::~MediaNodePrivate(void) + ??0Effect@Phonon@@IAE@AAVEffectPrivate@1@PAVQObject@@@Z @ 375 NONAME ; Phonon::Effect::Effect(class Phonon::EffectPrivate &, class QObject *) + ?removeEffect@Path@Phonon@@QAE_NPAVEffect@2@@Z @ 376 NONAME ; bool Phonon::Path::removeEffect(class Phonon::Effect *) + ?deviceName@MediaSource@Phonon@@QBE?AVQString@@XZ @ 377 NONAME ; class QString Phonon::MediaSource::deviceName(void) const + ?reset@StreamInterface@Phonon@@QAEXXZ @ 378 NONAME ; void Phonon::StreamInterface::reset(void) + ?iconSize@SeekSlider@Phonon@@QBE?AVQSize@@XZ @ 379 NONAME ; class QSize Phonon::SeekSlider::iconSize(void) const + ?staticMetaObject@VolumeSlider@Phonon@@2UQMetaObject@@B @ 380 NONAME ; struct QMetaObject const Phonon::VolumeSlider::staticMetaObject + ?mimeData@ObjectDescriptionModelData@Phonon@@QBEPAVQMimeData@@W4ObjectDescriptionType@2@ABV?$QList@VQModelIndex@@@@@Z @ 381 NONAME ; class QMimeData * Phonon::ObjectDescriptionModelData::mimeData(enum Phonon::ObjectDescriptionType, class QList const &) const + ?discType@MediaSource@Phonon@@QBE?AW4DiscType@2@XZ @ 382 NONAME ; enum Phonon::DiscType Phonon::MediaSource::discType(void) const + ?dropMimeData@ObjectDescriptionModelData@Phonon@@QAE_NW4ObjectDescriptionType@2@PBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 383 NONAME ; bool Phonon::ObjectDescriptionModelData::dropMimeData(enum Phonon::ObjectDescriptionType, class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &) + ?description@Effect@Phonon@@QBE?AV?$ObjectDescription@$00@2@XZ @ 384 NONAME ; class Phonon::ObjectDescription<1> Phonon::Effect::description(void) const + ?getStaticMetaObject@AudioOutput@Phonon@@SAABUQMetaObject@@XZ @ 385 NONAME ; struct QMetaObject const & Phonon::AudioOutput::getStaticMetaObject(void) + ?removeDestructionHandler@MediaNodePrivate@Phonon@@QAEXPAVMediaNodeDestructionHandler@2@@Z @ 386 NONAME ; void Phonon::MediaNodePrivate::removeDestructionHandler(class Phonon::MediaNodeDestructionHandler *) + ?tickInterval@MediaObject@Phonon@@QBEHXZ @ 387 NONAME ; int Phonon::MediaObject::tickInterval(void) const + ?prefinishMarkReached@MediaObject@Phonon@@IAEXH@Z @ 388 NONAME ; void Phonon::MediaObject::prefinishMarkReached(int) + ?pageStep@VolumeSlider@Phonon@@QBEHXZ @ 389 NONAME ; int Phonon::VolumeSlider::pageStep(void) const + ??1VolumeSlider@Phonon@@UAE@XZ @ 390 NONAME ; Phonon::VolumeSlider::~VolumeSlider(void) + ?minimumValue@EffectParameter@Phonon@@QBE?AVQVariant@@XZ @ 391 NONAME ; class QVariant Phonon::EffectParameter::minimumValue(void) const + ?tr@VolumeFaderEffect@Phonon@@SA?AVQString@@PBD0@Z @ 392 NONAME ; class QString Phonon::VolumeFaderEffect::tr(char const *, char const *) + ?reconnect@Path@Phonon@@QAE_NPAVMediaNode@2@0@Z @ 393 NONAME ; bool Phonon::Path::reconnect(class Phonon::MediaNode *, class Phonon::MediaNode *) + ?k_func@VideoWidget@Phonon@@AAEPAVVideoWidgetPrivate@2@XZ @ 394 NONAME ; class Phonon::VideoWidgetPrivate * Phonon::VideoWidget::k_func(void) + ?qt_metacall@EffectWidget@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 395 NONAME ; int Phonon::EffectWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@AudioOutput@Phonon@@UAEPAXPBD@Z @ 396 NONAME ; void * Phonon::AudioOutput::qt_metacast(char const *) + ?autoDelete@MediaSource@Phonon@@QBE_NXZ @ 397 NONAME ; bool Phonon::MediaSource::autoDelete(void) const + ?k_func@MediaObject@Phonon@@ABEPBVMediaObjectPrivate@2@XZ @ 398 NONAME ; class Phonon::MediaObjectPrivate const * Phonon::MediaObject::k_func(void) const + ?createPlayer@Phonon@@YAPAVMediaObject@1@W4Category@1@ABVMediaSource@1@@Z @ 399 NONAME ; class Phonon::MediaObject * Phonon::createPlayer(enum Phonon::Category, class Phonon::MediaSource const &) + ?aboutToFinish@MediaObject@Phonon@@IAEXXZ @ 400 NONAME ; void Phonon::MediaObject::aboutToFinish(void) + ?setSingleStep@SeekSlider@Phonon@@QAEXH@Z @ 401 NONAME ; void Phonon::SeekSlider::setSingleStep(int) + ?trUtf8@VolumeSlider@Phonon@@SA?AVQString@@PBD0H@Z @ 402 NONAME ; class QString Phonon::VolumeSlider::trUtf8(char const *, char const *, int) + ??1VideoPlayer@Phonon@@UAE@XZ @ 403 NONAME ; Phonon::VideoPlayer::~VideoPlayer(void) + ??9Path@Phonon@@QBE_NABV01@@Z @ 404 NONAME ; bool Phonon::Path::operator!=(class Phonon::Path const &) const + ?metaObject@?$ObjectDescriptionModel@$01@Phonon@@UBEPBUQMetaObject@@XZ @ 405 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<2>::metaObject(void) const + ?backendObject@MediaNodePrivate@Phonon@@QAEPAVQObject@@XZ @ 406 NONAME ; class QObject * Phonon::MediaNodePrivate::backendObject(void) + ??8Path@Phonon@@QBE_NABV01@@Z @ 407 NONAME ; bool Phonon::Path::operator==(class Phonon::Path const &) const + ??1MediaSource@Phonon@@QAE@XZ @ 408 NONAME ; Phonon::MediaSource::~MediaSource(void) + ?setBackend@Factory@Phonon@@YAXPAVQObject@@@Z @ 409 NONAME ; void Phonon::Factory::setBackend(class QObject *) + ?staticMetaObject@VideoWidget@Phonon@@2UQMetaObject@@B @ 410 NONAME ; struct QMetaObject const Phonon::VideoWidget::staticMetaObject + ?staticMetaObject@MediaController@Phonon@@2UQMetaObject@@B @ 411 NONAME ; struct QMetaObject const Phonon::MediaController::staticMetaObject + ?trUtf8@EffectWidget@Phonon@@SA?AVQString@@PBD0@Z @ 412 NONAME ; class QString Phonon::EffectWidget::trUtf8(char const *, char const *) + ??0MediaSource@Phonon@@QAE@XZ @ 413 NONAME ; Phonon::MediaSource::MediaSource(void) + ?trUtf8@Effect@Phonon@@SA?AVQString@@PBD0H@Z @ 414 NONAME ; class QString Phonon::Effect::trUtf8(char const *, char const *, int) + ?registerQObject@Factory@Phonon@@YAPAVQObject@@PAV3@@Z @ 415 NONAME ; class QObject * Phonon::Factory::registerQObject(class QObject *) + ?metaObject@MediaObject@Phonon@@UBEPBUQMetaObject@@XZ @ 416 NONAME ; struct QMetaObject const * Phonon::MediaObject::metaObject(void) const + ?qt_metacast@VideoWidget@Phonon@@UAEPAXPBD@Z @ 417 NONAME ; void * Phonon::VideoWidget::qt_metacast(char const *) + ?tr@MediaObject@Phonon@@SA?AVQString@@PBD0@Z @ 418 NONAME ; class QString Phonon::MediaObject::tr(char const *, char const *) + ?tr@AbstractMediaStream@Phonon@@SA?AVQString@@PBD0H@Z @ 419 NONAME ; class QString Phonon::AbstractMediaStream::tr(char const *, char const *, int) + ?metaObject@VideoPlayer@Phonon@@UBEPBUQMetaObject@@XZ @ 420 NONAME ; struct QMetaObject const * Phonon::VideoPlayer::metaObject(void) const + ??0MediaSource@Phonon@@QAE@ABVQString@@@Z @ 421 NONAME ; Phonon::MediaSource::MediaSource(class QString const &) + ?setCurrentAngle@MediaController@Phonon@@QAEXH@Z @ 422 NONAME ; void Phonon::MediaController::setCurrentAngle(int) + ?setOrientation@VolumeSlider@Phonon@@QAEXW4Orientation@Qt@@@Z @ 423 NONAME ; void Phonon::VolumeSlider::setOrientation(enum Qt::Orientation) + ?volumeDecibel@AudioOutput@Phonon@@QBEMXZ @ 424 NONAME ; float Phonon::AudioOutput::volumeDecibel(void) const + ?removeInputPath@MediaNodePrivate@Phonon@@QAEXABVPath@2@@Z @ 425 NONAME ; void Phonon::MediaNodePrivate::removeInputPath(class Phonon::Path const &) + ?k_func@AudioOutput@Phonon@@AAEPAVAudioOutputPrivate@2@XZ @ 426 NONAME ; class Phonon::AudioOutputPrivate * Phonon::AudioOutput::k_func(void) + ?qt_metacast@EffectWidget@Phonon@@UAEPAXPBD@Z @ 427 NONAME ; void * Phonon::EffectWidget::qt_metacast(char const *) + ?getStaticMetaObject@AbstractAudioOutput@Phonon@@SAABUQMetaObject@@XZ @ 428 NONAME ; struct QMetaObject const & Phonon::AbstractAudioOutput::getStaticMetaObject(void) + ?availableChapters@MediaController@Phonon@@QBEHXZ @ 429 NONAME ; int Phonon::MediaController::availableChapters(void) const + ?play@VideoPlayer@Phonon@@QAEXXZ @ 430 NONAME ; void Phonon::VideoPlayer::play(void) + ?name@AudioOutput@Phonon@@QBE?AVQString@@XZ @ 431 NONAME ; class QString Phonon::AudioOutput::name(void) const + ?staticMetaObject@Effect@Phonon@@2UQMetaObject@@B @ 432 NONAME ; struct QMetaObject const Phonon::Effect::staticMetaObject + ??0AbstractMediaStream@Phonon@@IAE@PAVQObject@@@Z @ 433 NONAME ; Phonon::AbstractMediaStream::AbstractMediaStream(class QObject *) + ?tr@MediaController@Phonon@@SA?AVQString@@PBD0@Z @ 434 NONAME ; class QString Phonon::MediaController::tr(char const *, char const *) + ?metaObject@VolumeFaderEffect@Phonon@@UBEPBUQMetaObject@@XZ @ 435 NONAME ; struct QMetaObject const * Phonon::VolumeFaderEffect::metaObject(void) const + ?setAutoDelete@MediaSource@Phonon@@QAEX_N@Z @ 436 NONAME ; void Phonon::MediaSource::setAutoDelete(bool) + ?pageStep@SeekSlider@Phonon@@QBEHXZ @ 437 NONAME ; int Phonon::SeekSlider::pageStep(void) const + ?staticMetaObject@?$ObjectDescriptionModel@$00@Phonon@@2UQMetaObject@@B @ 438 NONAME ; struct QMetaObject const Phonon::ObjectDescriptionModel<1>::staticMetaObject + ?propertyNames@ObjectDescriptionData@Phonon@@QBE?AV?$QList@VQByteArray@@@@XZ @ 439 NONAME ; class QList Phonon::ObjectDescriptionData::propertyNames(void) const + ?metaObject@AbstractMediaStream@Phonon@@UBEPBUQMetaObject@@XZ @ 440 NONAME ; struct QMetaObject const * Phonon::AbstractMediaStream::metaObject(void) const + ??0AudioOutput@Phonon@@QAE@W4Category@1@PAVQObject@@@Z @ 441 NONAME ; Phonon::AudioOutput::AudioOutput(enum Phonon::Category, class QObject *) + ??0EffectParameter@Phonon@@QAE@HABVQString@@V?$QFlags@W4Hint@EffectParameter@Phonon@@@@ABVQVariant@@22ABV?$QList@VQVariant@@@@0@Z @ 442 NONAME ; Phonon::EffectParameter::EffectParameter(int, class QString const &, class QFlags, class QVariant const &, class QVariant const &, class QVariant const &, class QList const &, class QString const &) + ??4EffectParameter@Phonon@@QAEAAV01@ABV01@@Z @ 443 NONAME ; class Phonon::EffectParameter & Phonon::EffectParameter::operator=(class Phonon::EffectParameter const &) + ?audioOutput@VideoPlayer@Phonon@@QBEPAVAudioOutput@2@XZ @ 444 NONAME ; class Phonon::AudioOutput * Phonon::VideoPlayer::audioOutput(void) const + ?q_func@AbstractMediaStreamPrivate@Phonon@@ABEPBVAbstractMediaStream@2@XZ @ 445 NONAME ; class Phonon::AbstractMediaStream const * Phonon::AbstractMediaStreamPrivate::q_func(void) const + ?setMuteVisible@VolumeSlider@Phonon@@QAEX_N@Z @ 446 NONAME ; void Phonon::VolumeSlider::setMuteVisible(bool) + ?qt_metacall@MediaController@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 447 NONAME ; int Phonon::MediaController::qt_metacall(enum QMetaObject::Call, int, void * *) + ?source@Path@Phonon@@QBEPAVMediaNode@2@XZ @ 448 NONAME ; class Phonon::MediaNode * Phonon::Path::source(void) const + ?deviceAccessListFor@AudioOutputInterface42@Phonon@@QBE?AV?$QList@U?$QPair@VQByteArray@@VQString@@@@@@ABV?$ObjectDescription@$0A@@2@@Z @ 449 NONAME ; class QList > Phonon::AudioOutputInterface42::deviceAccessListFor(class Phonon::ObjectDescription<0> const &) const + ?aspectRatio@VideoWidget@Phonon@@QBE?AW4AspectRatio@12@XZ @ 450 NONAME ; enum Phonon::VideoWidget::AspectRatio Phonon::VideoWidget::aspectRatio(void) const + ?trUtf8@VideoWidget@Phonon@@SA?AVQString@@PBD0@Z @ 451 NONAME ; class QString Phonon::VideoWidget::trUtf8(char const *, char const *) + ?setupBackendObject@MediaObjectPrivate@Phonon@@IAEXXZ @ 452 NONAME ; void Phonon::MediaObjectPrivate::setupBackendObject(void) + ?iconSize@VolumeSlider@Phonon@@QBE?AVQSize@@XZ @ 453 NONAME ; class QSize Phonon::VolumeSlider::iconSize(void) const + ??0MediaSourcePrivate@Phonon@@QAE@W4Type@MediaSource@1@@Z @ 454 NONAME ; Phonon::MediaSourcePrivate::MediaSourcePrivate(enum Phonon::MediaSource::Type) + ?metaObject@?$ObjectDescriptionModel@$03@Phonon@@UBEPBUQMetaObject@@XZ @ 455 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<4>::metaObject(void) const + ?setName@AudioOutput@Phonon@@QAEXABVQString@@@Z @ 456 NONAME ; void Phonon::AudioOutput::setName(class QString const &) + ?setStreamInterface@AbstractMediaStreamPrivate@Phonon@@QAEXPAVStreamInterface@2@@Z @ 457 NONAME ; void Phonon::AbstractMediaStreamPrivate::setStreamInterface(class Phonon::StreamInterface *) + ?clearQueue@MediaObject@Phonon@@QAEXXZ @ 458 NONAME ; void Phonon::MediaObject::clearQueue(void) + ?phononVersion@Phonon@@YAPBDXZ @ 459 NONAME ; char const * Phonon::phononVersion(void) + ?trUtf8@VideoPlayer@Phonon@@SA?AVQString@@PBD0@Z @ 460 NONAME ; class QString Phonon::VideoPlayer::trUtf8(char const *, char const *) + ?staticMetaObject@AbstractMediaStream@Phonon@@2UQMetaObject@@B @ 461 NONAME ; struct QMetaObject const Phonon::AbstractMediaStream::staticMetaObject + ?tr@SeekSlider@Phonon@@SA?AVQString@@PBD0@Z @ 462 NONAME ; class QString Phonon::SeekSlider::tr(char const *, char const *) + ??_EGlobalConfig@Phonon@@UAE@I@Z @ 463 NONAME ; Phonon::GlobalConfig::~GlobalConfig(unsigned int) + ?getStaticMetaObject@MediaController@Phonon@@SAABUQMetaObject@@XZ @ 464 NONAME ; struct QMetaObject const & Phonon::MediaController::getStaticMetaObject(void) + ?possibleValues@EffectParameter@Phonon@@QBE?AV?$QList@VQVariant@@@@XZ @ 465 NONAME ; class QList Phonon::EffectParameter::possibleValues(void) const + ?pause@MediaObject@Phonon@@QAEXXZ @ 466 NONAME ; void Phonon::MediaObject::pause(void) + ??_EEffectWidget@Phonon@@UAE@I@Z @ 467 NONAME ; Phonon::EffectWidget::~EffectWidget(unsigned int) + ?totalTime@VideoPlayer@Phonon@@QBE_JXZ @ 468 NONAME ; long long Phonon::VideoPlayer::totalTime(void) const + ?inputPaths@MediaNode@Phonon@@QBE?AV?$QList@VPath@Phonon@@@@XZ @ 469 NONAME ; class QList Phonon::MediaNode::inputPaths(void) const + ??0VolumeSlider@Phonon@@QAE@PAVQWidget@@@Z @ 470 NONAME ; Phonon::VolumeSlider::VolumeSlider(class QWidget *) + ??1EffectParameter@Phonon@@QAE@XZ @ 471 NONAME ; Phonon::EffectParameter::~EffectParameter(void) + ?availableSubtitlesChanged@MediaController@Phonon@@IAEXXZ @ 472 NONAME ; void Phonon::MediaController::availableSubtitlesChanged(void) + ??1Effect@Phonon@@UAE@XZ @ 473 NONAME ; Phonon::Effect::~Effect(void) + ?qt_metacall@MediaObject@Phonon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 474 NONAME ; int Phonon::MediaObject::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0MediaSource@Phonon@@QAE@W4DiscType@1@ABVQString@@@Z @ 475 NONAME ; Phonon::MediaSource::MediaSource(enum Phonon::DiscType, class QString const &) + ?needData@StreamInterface@Phonon@@QAEXXZ @ 476 NONAME ; void Phonon::StreamInterface::needData(void) + ?staticMetaObject@AbstractAudioOutput@Phonon@@2UQMetaObject@@B @ 477 NONAME ; struct QMetaObject const Phonon::AbstractAudioOutput::staticMetaObject + ?enqueue@MediaObject@Phonon@@QAEXABV?$QList@VMediaSource@Phonon@@@@@Z @ 478 NONAME ; void Phonon::MediaObject::enqueue(class QList const &) + ?qt_metacast@MediaController@Phonon@@UAEPAXPBD@Z @ 479 NONAME ; void * Phonon::MediaController::qt_metacast(char const *) + ?moveDown@ObjectDescriptionModelData@Phonon@@QAEXABVQModelIndex@@@Z @ 480 NONAME ; void Phonon::ObjectDescriptionModelData::moveDown(class QModelIndex const &) + ??0SeekSlider@Phonon@@QAE@PAVMediaObject@1@PAVQWidget@@@Z @ 481 NONAME ; Phonon::SeekSlider::SeekSlider(class Phonon::MediaObject *, class QWidget *) + ?trUtf8@AudioOutput@Phonon@@SA?AVQString@@PBD0@Z @ 482 NONAME ; class QString Phonon::AudioOutput::trUtf8(char const *, char const *) + ??0ObjectDescriptionData@Phonon@@QAE@PAVObjectDescriptionPrivate@1@@Z @ 483 NONAME ; Phonon::ObjectDescriptionData::ObjectDescriptionData(class Phonon::ObjectDescriptionPrivate *) + ?stream@MediaSource@Phonon@@QBEPAVAbstractMediaStream@2@XZ @ 484 NONAME ; class Phonon::AbstractMediaStream * Phonon::MediaSource::stream(void) const + ?setStream@MediaSourcePrivate@Phonon@@QAEXPAVAbstractMediaStream@2@@Z @ 485 NONAME ; void Phonon::MediaSourcePrivate::setStream(class Phonon::AbstractMediaStream *) + ?trUtf8@AbstractAudioOutput@Phonon@@SA?AVQString@@PBD0@Z @ 486 NONAME ; class QString Phonon::AbstractAudioOutput::trUtf8(char const *, char const *) + ??0EffectParameter@Phonon@@QAE@ABV01@@Z @ 487 NONAME ; Phonon::EffectParameter::EffectParameter(class Phonon::EffectParameter const &) + ?stop@VideoPlayer@Phonon@@QAEXXZ @ 488 NONAME ; void Phonon::VideoPlayer::stop(void) + ?categoryToString@Phonon@@YA?AVQString@@W4Category@1@@Z @ 489 NONAME ; class QString Phonon::categoryToString(enum Phonon::Category) + ?chapterChanged@MediaController@Phonon@@IAEXH@Z @ 490 NONAME ; void Phonon::MediaController::chapterChanged(int) + ?setScaleMode@VideoWidget@Phonon@@QAEXW4ScaleMode@12@@Z @ 491 NONAME ; void Phonon::VideoWidget::setScaleMode(enum Phonon::VideoWidget::ScaleMode) + ?streamSeekable@AbstractMediaStream@Phonon@@IBE_NXZ @ 492 NONAME ; bool Phonon::AbstractMediaStream::streamSeekable(void) const + ?qt_metacast@MediaObject@Phonon@@UAEPAXPBD@Z @ 493 NONAME ; void * Phonon::MediaObject::qt_metacast(char const *) + ?setMediaObjectPrivate@AbstractMediaStreamPrivate@Phonon@@QAEXPAVMediaObjectPrivate@2@@Z @ 494 NONAME ; void Phonon::AbstractMediaStreamPrivate::setMediaObjectPrivate(class Phonon::MediaObjectPrivate *) + ?setQueue@MediaObject@Phonon@@QAEXABV?$QList@VQUrl@@@@@Z @ 495 NONAME ; void Phonon::MediaObject::setQueue(class QList const &) + ?q_func@AbstractMediaStreamPrivate@Phonon@@AAEPAVAbstractMediaStream@2@XZ @ 496 NONAME ; class Phonon::AbstractMediaStream * Phonon::AbstractMediaStreamPrivate::q_func(void) + ?setHue@VideoWidget@Phonon@@QAEXM@Z @ 497 NONAME ; void Phonon::VideoWidget::setHue(float) + ?description@ObjectDescriptionData@Phonon@@QBE?AVQString@@XZ @ 498 NONAME ; class QString Phonon::ObjectDescriptionData::description(void) const + ??1Path@Phonon@@QAE@XZ @ 499 NONAME ; Phonon::Path::~Path(void) + ?setAspectRatio@VideoWidget@Phonon@@QAEXW4AspectRatio@12@@Z @ 500 NONAME ; void Phonon::VideoWidget::setAspectRatio(enum Phonon::VideoWidget::AspectRatio) + ?tr@Effect@Phonon@@SA?AVQString@@PBD0H@Z @ 501 NONAME ; class QString Phonon::Effect::tr(char const *, char const *, int) + ?isPaused@VideoPlayer@Phonon@@QBE_NXZ @ 502 NONAME ; bool Phonon::VideoPlayer::isPaused(void) const + ??0VideoWidget@Phonon@@QAE@PAVQWidget@@@Z @ 503 NONAME ; Phonon::VideoWidget::VideoWidget(class QWidget *) + ??1AudioOutput@Phonon@@UAE@XZ @ 504 NONAME ; Phonon::AudioOutput::~AudioOutput(void) + ?setFadeCurve@VolumeFaderEffect@Phonon@@QAEXW4FadeCurve@12@@Z @ 505 NONAME ; void Phonon::VolumeFaderEffect::setFadeCurve(enum Phonon::VolumeFaderEffect::FadeCurve) + ?insertEffect@Path@Phonon@@QAEPAVEffect@2@ABV?$ObjectDescription@$00@2@PAV32@@Z @ 506 NONAME ; class Phonon::Effect * Phonon::Path::insertEffect(class Phonon::ObjectDescription<1> const &, class Phonon::Effect *) + ?volumeChanged@AudioOutput@Phonon@@IAEXM@Z @ 507 NONAME ; void Phonon::AudioOutput::volumeChanged(float) + ?staticMetaObject@VolumeFaderEffect@Phonon@@2UQMetaObject@@B @ 508 NONAME ; struct QMetaObject const Phonon::VolumeFaderEffect::staticMetaObject + ?notifier@BackendCapabilities@Phonon@@YAPAVNotifier@12@XZ @ 509 NONAME ; class Phonon::BackendCapabilities::Notifier * Phonon::BackendCapabilities::notifier(void) + ?tr@VideoWidget@Phonon@@SA?AVQString@@PBD0@Z @ 510 NONAME ; class QString Phonon::VideoWidget::tr(char const *, char const *) + ??_EVideoWidget@Phonon@@UAE@I@Z @ 511 NONAME ; Phonon::VideoWidget::~VideoWidget(unsigned int) + ??_EAbstractMediaStreamPrivate@Phonon@@UAE@I@Z @ 512 NONAME ; Phonon::AbstractMediaStreamPrivate::~AbstractMediaStreamPrivate(unsigned int) + ?deleteBackendObject@MediaNodePrivate@Phonon@@IAEXXZ @ 513 NONAME ; void Phonon::MediaNodePrivate::deleteBackendObject(void) + ?k_func@VideoWidget@Phonon@@ABEPBVVideoWidgetPrivate@2@XZ @ 514 NONAME ; class Phonon::VideoWidgetPrivate const * Phonon::VideoWidget::k_func(void) const + ??0MediaController@Phonon@@QAE@PAVMediaObject@1@@Z @ 515 NONAME ; Phonon::MediaController::MediaController(class Phonon::MediaObject *) + ?property@ObjectDescriptionData@Phonon@@QBE?AVQVariant@@PBD@Z @ 516 NONAME ; class QVariant Phonon::ObjectDescriptionData::property(char const *) const + ?getStaticMetaObject@VolumeFaderEffect@Phonon@@SAABUQMetaObject@@XZ @ 517 NONAME ; struct QMetaObject const & Phonon::VolumeFaderEffect::getStaticMetaObject(void) + ?writeData@AbstractMediaStreamPrivate@Phonon@@MAEXABVQByteArray@@@Z @ 518 NONAME ; void Phonon::AbstractMediaStreamPrivate::writeData(class QByteArray const &) + ?k_func@VolumeSlider@Phonon@@ABEPBVVolumeSliderPrivate@2@XZ @ 519 NONAME ; class Phonon::VolumeSliderPrivate const * Phonon::VolumeSlider::k_func(void) const + -- cgit v0.12 From a0e6aeb31dde2c843cc9eff287627758c9b087e0 Mon Sep 17 00:00:00 2001 From: Iain Date: Fri, 23 Oct 2009 18:31:28 +0200 Subject: Small updates to WINSCW DEF files Looks like the originals may have had some extra exports from udeb in them Reviewed-by: TrustMe --- src/s60installs/bwins/QtMultimediau.def | 10 +++++----- src/s60installs/bwins/QtNetworku.def | 24 ++++++++++++------------ src/s60installs/bwins/QtScriptu.def | 4 ++-- src/s60installs/bwins/QtSqlu.def | 6 +++--- src/s60installs/bwins/QtTestu.def | 2 +- src/s60installs/bwins/QtXmlu.def | 14 +++++++------- src/s60installs/bwins/phononu.def | 8 ++++---- 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/s60installs/bwins/QtMultimediau.def b/src/s60installs/bwins/QtMultimediau.def index deae752..9bdd77b 100644 --- a/src/s60installs/bwins/QtMultimediau.def +++ b/src/s60installs/bwins/QtMultimediau.def @@ -39,7 +39,7 @@ EXPORTS ?d_func@QAbstractVideoSurface@@AAEPAVQAbstractVideoSurfacePrivate@@XZ @ 38 NONAME ; class QAbstractVideoSurfacePrivate * QAbstractVideoSurface::d_func(void) ?qt_metacall@QAudioEnginePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 39 NONAME ; int QAudioEnginePlugin::qt_metacall(enum QMetaObject::Call, int, void * *) ??_EQMemoryVideoBuffer@@UAE@I@Z @ 40 NONAME ; QMemoryVideoBuffer::~QMemoryVideoBuffer(unsigned int) - ??0QAbstractAudioInput@@QAE@XZ @ 41 NONAME ; QAbstractAudioInput::QAbstractAudioInput(void) + ??0QAbstractAudioInput@@QAE@XZ @ 41 NONAME ABSENT ; QAbstractAudioInput::QAbstractAudioInput(void) ?bits@QVideoFrame@@QBEPBEXZ @ 42 NONAME ; unsigned char const * QVideoFrame::bits(void) const ?supportedFormatsChanged@QAbstractVideoSurface@@IAEXXZ @ 43 NONAME ; void QAbstractVideoSurface::supportedFormatsChanged(void) ?mapMode@QVideoFrame@@QBE?AW4MapMode@QAbstractVideoBuffer@@XZ @ 44 NONAME ; enum QAbstractVideoBuffer::MapMode QVideoFrame::mapMode(void) const @@ -95,7 +95,7 @@ EXPORTS ?isFormatSupported@QAudioDeviceInfo@@QBE_NABVQAudioFormat@@@Z @ 94 NONAME ; bool QAudioDeviceInfo::isFormatSupported(class QAudioFormat const &) const ?isNull@QAudioDeviceInfo@@QBE_NXZ @ 95 NONAME ; bool QAudioDeviceInfo::isNull(void) const ?supportedByteOrders@QAudioDeviceInfo@@QBE?AV?$QList@W4Endian@QAudioFormat@@@@XZ @ 96 NONAME ; class QList QAudioDeviceInfo::supportedByteOrders(void) const - ??0QAudioEngineFactoryInterface@@QAE@XZ @ 97 NONAME ; QAudioEngineFactoryInterface::QAudioEngineFactoryInterface(void) + ??0QAudioEngineFactoryInterface@@QAE@XZ @ 97 NONAME ABSENT ; QAudioEngineFactoryInterface::QAudioEngineFactoryInterface(void) ?stop@QAudioInput@@QAEXXZ @ 98 NONAME ; void QAudioInput::stop(void) ??0QVideoFrame@@QAE@ABVQImage@@@Z @ 99 NONAME ; QVideoFrame::QVideoFrame(class QImage const &) ?setFrequency@QAudioFormat@@QAEXH@Z @ 100 NONAME ; void QAudioFormat::setFrequency(int) @@ -147,7 +147,7 @@ EXPORTS ?trUtf8@QAbstractVideoSurface@@SA?AVQString@@PBD0@Z @ 146 NONAME ; class QString QAbstractVideoSurface::trUtf8(char const *, char const *) ?state@QAudioInput@@QBE?AW4State@QAudio@@XZ @ 147 NONAME ; enum QAudio::State QAudioInput::state(void) const ?tr@QAbstractAudioInput@@SA?AVQString@@PBD0H@Z @ 148 NONAME ; class QString QAbstractAudioInput::tr(char const *, char const *, int) - ??0QAbstractAudioDeviceInfo@@QAE@XZ @ 149 NONAME ; QAbstractAudioDeviceInfo::QAbstractAudioDeviceInfo(void) + ??0QAbstractAudioDeviceInfo@@QAE@XZ @ 149 NONAME ABSENT ; QAbstractAudioDeviceInfo::QAbstractAudioDeviceInfo(void) ??0QVideoSurfaceFormat@@QAE@ABV0@@Z @ 150 NONAME ; QVideoSurfaceFormat::QVideoSurfaceFormat(class QVideoSurfaceFormat const &) ?trUtf8@QAbstractAudioOutput@@SA?AVQString@@PBD0@Z @ 151 NONAME ; class QString QAbstractAudioOutput::trUtf8(char const *, char const *) ?setStartTime@QVideoFrame@@QAEX_J@Z @ 152 NONAME ; void QVideoFrame::setStartTime(long long) @@ -210,7 +210,7 @@ EXPORTS ?suspend@QAudioOutput@@QAEXXZ @ 209 NONAME ; void QAudioOutput::suspend(void) ?metaObject@QAudioOutput@@UBEPBUQMetaObject@@XZ @ 210 NONAME ; struct QMetaObject const * QAudioOutput::metaObject(void) const ?metaObject@QAudioEnginePlugin@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * QAudioEnginePlugin::metaObject(void) const - ??0QAbstractAudioOutput@@QAE@XZ @ 212 NONAME ; QAbstractAudioOutput::QAbstractAudioOutput(void) + ??0QAbstractAudioOutput@@QAE@XZ @ 212 NONAME ABSENT ; QAbstractAudioOutput::QAbstractAudioOutput(void) ?stateChanged@QAbstractAudioInput@@IAEXW4State@QAudio@@@Z @ 213 NONAME ; void QAbstractAudioInput::stateChanged(enum QAudio::State) ?bytesPerLine@QVideoFrame@@QBEHXZ @ 214 NONAME ; int QVideoFrame::bytesPerLine(void) const ?codec@QAudioFormat@@QBE?AVQString@@XZ @ 215 NONAME ; class QString QAudioFormat::codec(void) const @@ -269,5 +269,5 @@ EXPORTS ?preferredFormat@QAudioDeviceInfo@@QBE?AVQAudioFormat@@XZ @ 268 NONAME ; class QAudioFormat QAudioDeviceInfo::preferredFormat(void) const ?qt_metacast@QAbstractAudioOutput@@UAEPAXPBD@Z @ 269 NONAME ; void * QAbstractAudioOutput::qt_metacast(char const *) ??1QVideoSurfaceFormat@@QAE@XZ @ 270 NONAME ; QVideoSurfaceFormat::~QVideoSurfaceFormat(void) - ??_EQAudioDeviceInfo@@QAE@I@Z @ 271 NONAME ; QAudioDeviceInfo::~QAudioDeviceInfo(unsigned int) + ??_EQAudioDeviceInfo@@QAE@I@Z @ 271 NONAME ABSENT ; QAudioDeviceInfo::~QAudioDeviceInfo(unsigned int) diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def index 3d0f1a1..17e62ac 100644 --- a/src/s60installs/bwins/QtNetworku.def +++ b/src/s60installs/bwins/QtNetworku.def @@ -62,7 +62,7 @@ EXPORTS ??1QNetworkReply@@UAE@XZ @ 61 NONAME ; QNetworkReply::~QNetworkReply(void) ?trUtf8@QHttp@@SA?AVQString@@PBD0H@Z @ 62 NONAME ; class QString QHttp::trUtf8(char const *, char const *, int) ?tr@QTcpSocket@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString QTcpSocket::tr(char const *, char const *, int) - ??_EQSslError@@QAE@I@Z @ 64 NONAME ; QSslError::~QSslError(unsigned int) + ??_EQSslError@@QAE@I@Z @ 64 NONAME ABSENT ; QSslError::~QSslError(unsigned int) ?header@QNetworkReply@@QBE?AVQVariant@@W4KnownHeaders@QNetworkRequest@@@Z @ 65 NONAME ; class QVariant QNetworkReply::header(enum QNetworkRequest::KnownHeaders) const ??1QHostInfo@@QAE@XZ @ 66 NONAME ; QHostInfo::~QHostInfo(void) ?tr@QLocalSocket@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString QLocalSocket::tr(char const *, char const *, int) @@ -259,10 +259,10 @@ EXPORTS ??1QTcpSocket@@UAE@XZ @ 258 NONAME ; QTcpSocket::~QTcpSocket(void) ?abort@QHttp@@QAEXXZ @ 259 NONAME ; void QHttp::abort(void) ?setUrl@QNetworkProxyQuery@@QAEXABVQUrl@@@Z @ 260 NONAME ; void QNetworkProxyQuery::setUrl(class QUrl const &) - ??_EQSslCipher@@QAE@I@Z @ 261 NONAME ; QSslCipher::~QSslCipher(unsigned int) + ??_EQSslCipher@@QAE@I@Z @ 261 NONAME ABSENT ; QSslCipher::~QSslCipher(unsigned int) ?d_func@QAbstractNetworkCache@@ABEPBVQAbstractNetworkCachePrivate@@XZ @ 262 NONAME ; class QAbstractNetworkCachePrivate const * QAbstractNetworkCache::d_func(void) const ??9QSslKey@@QBE_NABV0@@Z @ 263 NONAME ; bool QSslKey::operator!=(class QSslKey const &) const - ??_EQSslConfiguration@@QAE@I@Z @ 264 NONAME ; QSslConfiguration::~QSslConfiguration(unsigned int) + ??_EQSslConfiguration@@QAE@I@Z @ 264 NONAME ABSENT ; QSslConfiguration::~QSslConfiguration(unsigned int) ?waitForDisconnected@QAbstractSocket@@QAE_NH@Z @ 265 NONAME ; bool QAbstractSocket::waitForDisconnected(int) ??9QUrlInfo@@QBE_NABV0@@Z @ 266 NONAME ; bool QUrlInfo::operator!=(class QUrlInfo const &) const ?readyRead@QFtp@@IAEXXZ @ 267 NONAME ; void QFtp::readyRead(void) @@ -325,7 +325,7 @@ EXPORTS ?setHostName@QHostInfo@@QAEXABVQString@@@Z @ 324 NONAME ; void QHostInfo::setHostName(class QString const &) ??5@YAAAVQDataStream@@AAV0@AAVQNetworkCacheMetaData@@@Z @ 325 NONAME ; class QDataStream & operator>>(class QDataStream &, class QNetworkCacheMetaData &) ?subjectInfo@QSslCertificate@@QBE?AVQString@@W4SubjectInfo@1@@Z @ 326 NONAME ; class QString QSslCertificate::subjectInfo(enum QSslCertificate::SubjectInfo) const - ??_EQNetworkAddressEntry@@QAE@I@Z @ 327 NONAME ; QNetworkAddressEntry::~QNetworkAddressEntry(unsigned int) + ??_EQNetworkAddressEntry@@QAE@I@Z @ 327 NONAME ABSENT ; QNetworkAddressEntry::~QNetworkAddressEntry(unsigned int) ?setCiphers@QSslSocket@@QAEXABV?$QList@VQSslCipher@@@@@Z @ 328 NONAME ; void QSslSocket::setCiphers(class QList const &) ?bytesToWrite@QLocalSocket@@UBE_JXZ @ 329 NONAME ; long long QLocalSocket::bytesToWrite(void) const ?setSize@QUrlInfo@@UAEX_J@Z @ 330 NONAME ; void QUrlInfo::setSize(long long) @@ -446,7 +446,7 @@ EXPORTS ?originatingObject@QNetworkRequest@@QBEPAVQObject@@XZ @ 445 NONAME ; class QObject * QNetworkRequest::originatingObject(void) const ?errorString@QTcpServer@@QBE?AVQString@@XZ @ 446 NONAME ; class QString QTcpServer::errorString(void) const ?setHostName@QNetworkProxy@@QAEXABVQString@@@Z @ 447 NONAME ; void QNetworkProxy::setHostName(class QString const &) - ??_EQNetworkCookie@@QAE@I@Z @ 448 NONAME ; QNetworkCookie::~QNetworkCookie(unsigned int) + ??_EQNetworkCookie@@QAE@I@Z @ 448 NONAME ABSENT ; QNetworkCookie::~QNetworkCookie(unsigned int) ?tr@QSslSocket@@SA?AVQString@@PBD0@Z @ 449 NONAME ; class QString QSslSocket::tr(char const *, char const *) ?proxy@QTcpServer@@QBE?AVQNetworkProxy@@XZ @ 450 NONAME ; class QNetworkProxy QTcpServer::proxy(void) const ?issuerInfo@QSslCertificate@@QBE?AVQString@@W4SubjectInfo@1@@Z @ 451 NONAME ; class QString QSslCertificate::issuerInfo(enum QSslCertificate::SubjectInfo) const @@ -475,7 +475,7 @@ EXPORTS ?setProxy@QNetworkAccessManager@@QAEXABVQNetworkProxy@@@Z @ 474 NONAME ; void QNetworkAccessManager::setProxy(class QNetworkProxy const &) ?metaObject@QNetworkDiskCache@@UBEPBUQMetaObject@@XZ @ 475 NONAME ; struct QMetaObject const * QNetworkDiskCache::metaObject(void) const ?handle@QSslKey@@QBEKXZ @ 476 NONAME ; unsigned long QSslKey::handle(void) const - ??_EQSslCertificate@@QAE@I@Z @ 477 NONAME ; QSslCertificate::~QSslCertificate(unsigned int) + ??_EQSslCertificate@@QAE@I@Z @ 477 NONAME ABSENT ; QSslCertificate::~QSslCertificate(unsigned int) ?setDomain@QNetworkCookie@@QAEXABVQString@@@Z @ 478 NONAME ; void QNetworkCookie::setDomain(class QString const &) ?incomingConnection@QLocalServer@@MAEXI@Z @ 479 NONAME ; void QLocalServer::incomingConnection(unsigned int) ?state@QAbstractSocket@@QBE?AW4SocketState@1@XZ @ 480 NONAME ; enum QAbstractSocket::SocketState QAbstractSocket::state(void) const @@ -634,7 +634,7 @@ EXPORTS ?trUtf8@QLocalServer@@SA?AVQString@@PBD0H@Z @ 633 NONAME ; class QString QLocalServer::trUtf8(char const *, char const *, int) ?setReadBufferSize@QSslSocket@@QAEX_J@Z @ 634 NONAME ; void QSslSocket::setReadBufferSize(long long) ?trUtf8@QNetworkDiskCache@@SA?AVQString@@PBD0@Z @ 635 NONAME ; class QString QNetworkDiskCache::trUtf8(char const *, char const *) - ??_EQNetworkInterface@@QAE@I@Z @ 636 NONAME ; QNetworkInterface::~QNetworkInterface(unsigned int) + ??_EQNetworkInterface@@QAE@I@Z @ 636 NONAME ABSENT ; QNetworkInterface::~QNetworkInterface(unsigned int) ?setAttributes@QNetworkCacheMetaData@@QAEXABV?$QHash@W4Attribute@QNetworkRequest@@VQVariant@@@@@Z @ 637 NONAME ; void QNetworkCacheMetaData::setAttributes(class QHash const &) ?canReadLine@QLocalSocket@@UBE_NXZ @ 638 NONAME ; bool QLocalSocket::canReadLine(void) const ??0QLocalServer@@QAE@PAVQObject@@@Z @ 639 NONAME ; QLocalServer::QLocalServer(class QObject *) @@ -662,7 +662,7 @@ EXPORTS ?sslConfiguration@QNetworkReply@@QBE?AVQSslConfiguration@@XZ @ 661 NONAME ; class QSslConfiguration QNetworkReply::sslConfiguration(void) const ??AQIPv6Address@@QAEAAEH@Z @ 662 NONAME ; unsigned char & QIPv6Address::operator[](int) ?setSocketDescriptor@QLocalSocket@@QAE_NIW4LocalSocketState@1@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 663 NONAME ; bool QLocalSocket::setSocketDescriptor(unsigned int, enum QLocalSocket::LocalSocketState, class QFlags) - ??_EQNetworkProxy@@QAE@I@Z @ 664 NONAME ; QNetworkProxy::~QNetworkProxy(unsigned int) + ??_EQNetworkProxy@@QAE@I@Z @ 664 NONAME ABSENT ; QNetworkProxy::~QNetworkProxy(unsigned int) ?setPeerName@QAbstractSocket@@IAEXABVQString@@@Z @ 665 NONAME ; void QAbstractSocket::setPeerName(class QString const &) ?getStaticMetaObject@QHttp@@SAABUQMetaObject@@XZ @ 666 NONAME ; struct QMetaObject const & QHttp::getStaticMetaObject(void) ??0QNetworkProxyFactory@@QAE@XZ @ 667 NONAME ; QNetworkProxyFactory::QNetworkProxyFactory(void) @@ -713,7 +713,7 @@ EXPORTS ?name@QSslCipher@@QBE?AVQString@@XZ @ 712 NONAME ; class QString QSslCipher::name(void) const ?mode@QSslSocket@@QBE?AW4SslMode@1@XZ @ 713 NONAME ; enum QSslSocket::SslMode QSslSocket::mode(void) const ?metaData@QNetworkDiskCache@@UAE?AVQNetworkCacheMetaData@@ABVQUrl@@@Z @ 714 NONAME ; class QNetworkCacheMetaData QNetworkDiskCache::metaData(class QUrl const &) - ??_EQHostAddress@@QAE@I@Z @ 715 NONAME ; QHostAddress::~QHostAddress(unsigned int) + ??_EQHostAddress@@QAE@I@Z @ 715 NONAME ABSENT ; QHostAddress::~QHostAddress(unsigned int) ?abort@QLocalSocket@@QAEXXZ @ 716 NONAME ; void QLocalSocket::abort(void) ?setDir@QUrlInfo@@UAEX_N@Z @ 717 NONAME ; void QUrlInfo::setDir(bool) ?systemCaCertificates@QSslSocket@@SA?AV?$QList@VQSslCertificate@@@@XZ @ 718 NONAME ; class QList QSslSocket::systemCaCertificates(void) @@ -860,7 +860,7 @@ EXPORTS ??0QHttpResponseHeader@@QAE@ABV0@@Z @ 859 NONAME ; QHttpResponseHeader::QHttpResponseHeader(class QHttpResponseHeader const &) ?currentSourceDevice@QHttp@@QBEPAVQIODevice@@XZ @ 860 NONAME ; class QIODevice * QHttp::currentSourceDevice(void) const ?peerCertificateChain@QSslConfiguration@@QBE?AV?$QList@VQSslCertificate@@@@XZ @ 861 NONAME ; class QList QSslConfiguration::peerCertificateChain(void) const - ??_EQHostInfo@@QAE@I@Z @ 862 NONAME ; QHostInfo::~QHostInfo(unsigned int) + ??_EQHostInfo@@QAE@I@Z @ 862 NONAME ABSENT ; QHostInfo::~QHostInfo(unsigned int) ?errorString@QHttp@@QBE?AVQString@@XZ @ 863 NONAME ; class QString QHttp::errorString(void) const ?proxyAuthenticationRequired@QAbstractSocket@@IAEXABVQNetworkProxy@@PAVQAuthenticator@@@Z @ 864 NONAME ; void QAbstractSocket::proxyAuthenticationRequired(class QNetworkProxy const &, class QAuthenticator *) ?isSequential@QNetworkReply@@UBE_NXZ @ 865 NONAME ; bool QNetworkReply::isSequential(void) const @@ -941,7 +941,7 @@ EXPORTS ??1QAbstractNetworkCache@@UAE@XZ @ 940 NONAME ; QAbstractNetworkCache::~QAbstractNetworkCache(void) ?url@QNetworkProxyQuery@@QBE?AVQUrl@@XZ @ 941 NONAME ; class QUrl QNetworkProxyQuery::url(void) const ?tr@QNetworkCookieJar@@SA?AVQString@@PBD0H@Z @ 942 NONAME ; class QString QNetworkCookieJar::tr(char const *, char const *, int) - ??_EQNetworkRequest@@QAE@I@Z @ 943 NONAME ; QNetworkRequest::~QNetworkRequest(unsigned int) + ??_EQNetworkRequest@@QAE@I@Z @ 943 NONAME ABSENT ; QNetworkRequest::~QNetworkRequest(unsigned int) ??0QNetworkAddressEntry@@QAE@XZ @ 944 NONAME ; QNetworkAddressEntry::QNetworkAddressEntry(void) ?error@QAbstractSocket@@IAEXW4SocketError@1@@Z @ 945 NONAME ; void QAbstractSocket::error(enum QAbstractSocket::SocketError) ?post@QHttp@@QAEHABVQString@@PAVQIODevice@@1@Z @ 946 NONAME ; int QHttp::post(class QString const &, class QIODevice *, class QIODevice *) @@ -964,7 +964,7 @@ EXPORTS ?sessionCipher@QSslConfiguration@@QBE?AVQSslCipher@@XZ @ 963 NONAME ; class QSslCipher QSslConfiguration::sessionCipher(void) const ?name@QNetworkCookie@@QBE?AVQByteArray@@XZ @ 964 NONAME ; class QByteArray QNetworkCookie::name(void) const ??4QSslConfiguration@@QAEAAV0@ABV0@@Z @ 965 NONAME ; class QSslConfiguration & QSslConfiguration::operator=(class QSslConfiguration const &) - ??4QIPv6Address@@QAEAAV0@ABV0@@Z @ 966 NONAME ; class QIPv6Address & QIPv6Address::operator=(class QIPv6Address const &) + ??4QIPv6Address@@QAEAAV0@ABV0@@Z @ 966 NONAME ABSENT ; class QIPv6Address & QIPv6Address::operator=(class QIPv6Address const &) ?setCookieJar@QNetworkAccessManager@@QAEXPAVQNetworkCookieJar@@@Z @ 967 NONAME ; void QNetworkAccessManager::setCookieJar(class QNetworkCookieJar *) ??_EQSslSocket@@UAE@I@Z @ 968 NONAME ; QSslSocket::~QSslSocket(unsigned int) ?qt_metacall@QNetworkReply@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 969 NONAME ; int QNetworkReply::qt_metacall(enum QMetaObject::Call, int, void * *) diff --git a/src/s60installs/bwins/QtScriptu.def b/src/s60installs/bwins/QtScriptu.def index 2988ebd..95b047e 100644 --- a/src/s60installs/bwins/QtScriptu.def +++ b/src/s60installs/bwins/QtScriptu.def @@ -99,7 +99,7 @@ EXPORTS ?id@QScriptClassPropertyIterator@@UBEIXZ @ 98 NONAME ; unsigned int QScriptClassPropertyIterator::id(void) const ??_EQScriptEngine@@UAE@I@Z @ 99 NONAME ; QScriptEngine::~QScriptEngine(unsigned int) ?newQObject@QScriptEngine@@QAE?AVQScriptValue@@ABV2@PAVQObject@@W4ValueOwnership@1@ABV?$QFlags@W4QObjectWrapOption@QScriptEngine@@@@@Z @ 100 NONAME ; class QScriptValue QScriptEngine::newQObject(class QScriptValue const &, class QObject *, enum QScriptEngine::ValueOwnership, class QFlags const &) - ??0QScriptExtensionInterface@@QAE@XZ @ 101 NONAME ; QScriptExtensionInterface::QScriptExtensionInterface(void) + ??0QScriptExtensionInterface@@QAE@XZ @ 101 NONAME ABSENT ; QScriptExtensionInterface::QScriptExtensionInterface(void) ?metaObject@QScriptExtensionPlugin@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QScriptExtensionPlugin::metaObject(void) const ?setReturnValue@QScriptContext@@QAEXABVQScriptValue@@@Z @ 103 NONAME ; void QScriptContext::setReturnValue(class QScriptValue const &) ?isBoolean@QScriptValue@@QBE_NXZ @ 104 NONAME ; bool QScriptValue::isBoolean(void) const @@ -245,7 +245,7 @@ EXPORTS ?canEvaluate@QScriptEngine@@QBE_NABVQString@@@Z @ 244 NONAME ; bool QScriptEngine::canEvaluate(class QString const &) const ?tr@QScriptExtensionPlugin@@SA?AVQString@@PBD0@Z @ 245 NONAME ; class QString QScriptExtensionPlugin::tr(char const *, char const *) ?call@QScriptValue@@QAE?AV1@ABV1@ABV?$QList@VQScriptValue@@@@@Z @ 246 NONAME ; class QScriptValue QScriptValue::call(class QScriptValue const &, class QList const &) - ??_EQScriptValue@@QAE@I@Z @ 247 NONAME ; QScriptValue::~QScriptValue(unsigned int) + ??_EQScriptValue@@QAE@I@Z @ 247 NONAME ABSENT ; QScriptValue::~QScriptValue(unsigned int) ??0QScriptEngine@@IAE@AAVQScriptEnginePrivate@@PAVQObject@@@Z @ 248 NONAME ; QScriptEngine::QScriptEngine(class QScriptEnginePrivate &, class QObject *) ??0QScriptClass@@QAE@PAVQScriptEngine@@@Z @ 249 NONAME ; QScriptClass::QScriptClass(class QScriptEngine *) ??4QScriptString@@QAEAAV0@ABV0@@Z @ 250 NONAME ; class QScriptString & QScriptString::operator=(class QScriptString const &) diff --git a/src/s60installs/bwins/QtSqlu.def b/src/s60installs/bwins/QtSqlu.def index e8af0ba..5f76a6f 100644 --- a/src/s60installs/bwins/QtSqlu.def +++ b/src/s60installs/bwins/QtSqlu.def @@ -202,7 +202,7 @@ EXPORTS ??1QSqlField@@QAE@XZ @ 201 NONAME ; QSqlField::~QSqlField(void) ?setQuery@QSqlResult@@MAEXABVQString@@@Z @ 202 NONAME ; void QSqlResult::setQuery(class QString const &) ?driver@QSqlQuery@@QBEPBVQSqlDriver@@XZ @ 203 NONAME ; class QSqlDriver const * QSqlQuery::driver(void) const - ??4QSqlRelation@@QAEAAV0@ABV0@@Z @ 204 NONAME ; class QSqlRelation & QSqlRelation::operator=(class QSqlRelation const &) + ??4QSqlRelation@@QAEAAV0@ABV0@@Z @ 204 NONAME ABSENT ; class QSqlRelation & QSqlRelation::operator=(class QSqlRelation const &) ?fetchLast@QSqlCachedResult@@MAE_NXZ @ 205 NONAME ; bool QSqlCachedResult::fetchLast(void) ?setReadOnly@QSqlField@@QAEX_N@Z @ 206 NONAME ; void QSqlField::setReadOnly(bool) ?headerData@QSqlQueryModel@@UBE?AVQVariant@@HW4Orientation@Qt@@H@Z @ 207 NONAME ; class QVariant QSqlQueryModel::headerData(int, enum Qt::Orientation, int) const @@ -217,7 +217,7 @@ EXPORTS ?setTable@QSqlTableModel@@UAEXABVQString@@@Z @ 216 NONAME ; void QSqlTableModel::setTable(class QString const &) ?orderByClause@QSqlTableModel@@MBE?AVQString@@XZ @ 217 NONAME ; class QString QSqlTableModel::orderByClause(void) const ??0QSqlQuery@@QAE@ABV0@@Z @ 218 NONAME ; QSqlQuery::QSqlQuery(class QSqlQuery const &) - ??0QSqlDriverFactoryInterface@@QAE@XZ @ 219 NONAME ; QSqlDriverFactoryInterface::QSqlDriverFactoryInterface(void) + ??0QSqlDriverFactoryInterface@@QAE@XZ @ 219 NONAME ABSENT ; QSqlDriverFactoryInterface::QSqlDriverFactoryInterface(void) ?typeID@QSqlField@@QBEHXZ @ 220 NONAME ; int QSqlField::typeID(void) const ?tr@QSqlRelationalTableModel@@SA?AVQString@@PBD0H@Z @ 221 NONAME ; class QString QSqlRelationalTableModel::tr(char const *, char const *, int) ?append@QSqlIndex@@QAEXABVQSqlField@@_N@Z @ 222 NONAME ; void QSqlIndex::append(class QSqlField const &, bool) @@ -245,7 +245,7 @@ EXPORTS ?clearValues@QSqlRecord@@QAEXXZ @ 244 NONAME ; void QSqlRecord::clearValues(void) ?columnCount@QSqlQueryModel@@UBEHABVQModelIndex@@@Z @ 245 NONAME ; int QSqlQueryModel::columnCount(class QModelIndex const &) const ?setQuery@QSqlQueryModel@@QAEXABVQString@@ABVQSqlDatabase@@@Z @ 246 NONAME ; void QSqlQueryModel::setQuery(class QString const &, class QSqlDatabase const &) - ??0QSqlRelation@@QAE@ABV0@@Z @ 247 NONAME ; QSqlRelation::QSqlRelation(class QSqlRelation const &) + ??0QSqlRelation@@QAE@ABV0@@Z @ 247 NONAME ABSENT ; QSqlRelation::QSqlRelation(class QSqlRelation const &) ?setOpenError@QSqlDriver@@MAEX_N@Z @ 248 NONAME ; void QSqlDriver::setOpenError(bool) ?qt_metacall@QSqlDriverPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 249 NONAME ; int QSqlDriverPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) ?trUtf8@QSqlRelationalTableModel@@SA?AVQString@@PBD0@Z @ 250 NONAME ; class QString QSqlRelationalTableModel::trUtf8(char const *, char const *) diff --git a/src/s60installs/bwins/QtTestu.def b/src/s60installs/bwins/QtTestu.def index 17ef818..aabb2d7 100644 --- a/src/s60installs/bwins/QtTestu.def +++ b/src/s60installs/bwins/QtTestu.def @@ -57,7 +57,7 @@ EXPORTS ?metaObject@QTestEventLoop@@UBEPBUQMetaObject@@XZ @ 56 NONAME ; struct QMetaObject const * QTestEventLoop::metaObject(void) const ?instance@QTestEventLoop@@SAAAV1@XZ @ 57 NONAME ; class QTestEventLoop & QTestEventLoop::instance(void) ?toString@?$@_K@QTest@@YAPADAB_K@Z @ 58 NONAME ; char * QTest::toString(unsigned long long const &) - ??_EQTestData@@QAE@I@Z @ 59 NONAME ; QTestData::~QTestData(unsigned int) + ??_EQTestData@@QAE@I@Z @ 59 NONAME ABSENT ; QTestData::~QTestData(unsigned int) ?qCompare@?$@M@QTest@@YA_NABM0PBD11H@Z @ 60 NONAME ; bool QTest::qCompare(float const &, float const &, char const *, char const *, char const *, int) ?toHexRepresentation@QTest@@YAPADPBDH@Z @ 61 NONAME ; char * QTest::toHexRepresentation(char const *, int) ?qt_snprintf@QTest@@YAHPADHPBDZZ @ 62 NONAME ; int QTest::qt_snprintf(char *, int, char const *, ...) diff --git a/src/s60installs/bwins/QtXmlu.def b/src/s60installs/bwins/QtXmlu.def index df93780..d56eb1e 100644 --- a/src/s60installs/bwins/QtXmlu.def +++ b/src/s60installs/bwins/QtXmlu.def @@ -13,7 +13,7 @@ EXPORTS ??1QXmlParseException@@QAE@XZ @ 12 NONAME ; QXmlParseException::~QXmlParseException(void) ?pushContext@QXmlNamespaceSupport@@QAEXXZ @ 13 NONAME ; void QXmlNamespaceSupport::pushContext(void) ??4QDomProcessingInstruction@@QAEAAV0@ABV0@@Z @ 14 NONAME ; class QDomProcessingInstruction & QDomProcessingInstruction::operator=(class QDomProcessingInstruction const &) - ??0QXmlContentHandler@@QAE@XZ @ 15 NONAME ; QXmlContentHandler::QXmlContentHandler(void) + ??0QXmlContentHandler@@QAE@XZ @ 15 NONAME ABSENT ; QXmlContentHandler::QXmlContentHandler(void) ?d_func@QXmlSimpleReader@@ABEPBVQXmlSimpleReaderPrivate@@XZ @ 16 NONAME ; class QXmlSimpleReaderPrivate const * QXmlSimpleReader::d_func(void) const ?setContent@QDomDocument@@QAE_NABVQString@@_NPAV2@PAH3@Z @ 17 NONAME ; bool QDomDocument::setContent(class QString const &, bool, class QString *, int *, int *) ?setAttributeNS@QDomElement@@QAEXVQString@@ABV2@H@Z @ 18 NONAME ; void QDomElement::setAttributeNS(class QString, class QString const &, int) @@ -27,7 +27,7 @@ EXPORTS ??0QDomElement@@QAE@XZ @ 26 NONAME ; QDomElement::QDomElement(void) ?substringData@QDomCharacterData@@QAE?AVQString@@KK@Z @ 27 NONAME ; class QString QDomCharacterData::substringData(unsigned long, unsigned long) ??_EQXmlLocator@@UAE@I@Z @ 28 NONAME ; QXmlLocator::~QXmlLocator(unsigned int) - ??0QXmlDTDHandler@@QAE@XZ @ 29 NONAME ; QXmlDTDHandler::QXmlDTDHandler(void) + ??0QXmlDTDHandler@@QAE@XZ @ 29 NONAME ABSENT ; QXmlDTDHandler::QXmlDTDHandler(void) ?reset@QXmlNamespaceSupport@@QAEXXZ @ 30 NONAME ; void QXmlNamespaceSupport::reset(void) ?nodeValue@QDomNode@@QBE?AVQString@@XZ @ 31 NONAME ; class QString QDomNode::nodeValue(void) const ?hasFeature@QDomImplementation@@QBE_NABVQString@@0@Z @ 32 NONAME ; bool QDomImplementation::hasFeature(class QString const &, class QString const &) const @@ -120,7 +120,7 @@ EXPORTS ?entities@QDomDocumentType@@QBE?AVQDomNamedNodeMap@@XZ @ 119 NONAME ; class QDomNamedNodeMap QDomDocumentType::entities(void) const ??4QDomCDATASection@@QAEAAV0@ABV0@@Z @ 120 NONAME ; class QDomCDATASection & QDomCDATASection::operator=(class QDomCDATASection const &) ?save@QDomNode@@QBEXAAVQTextStream@@H@Z @ 121 NONAME ; void QDomNode::save(class QTextStream &, int) const - ??0QXmlReader@@QAE@XZ @ 122 NONAME ; QXmlReader::QXmlReader(void) + ??0QXmlReader@@QAE@XZ @ 122 NONAME ABSENT ; QXmlReader::QXmlReader(void) ??4QDomDocument@@QAEAAV0@ABV0@@Z @ 123 NONAME ; class QDomDocument & QDomDocument::operator=(class QDomDocument const &) ?createTextNode@QDomDocument@@QAE?AVQDomText@@ABVQString@@@Z @ 124 NONAME ; class QDomText QDomDocument::createTextNode(class QString const &) ?message@QXmlParseException@@QBE?AVQString@@XZ @ 125 NONAME ; class QString QXmlParseException::message(void) const @@ -194,7 +194,7 @@ EXPORTS ??0QDomNode@@QAE@ABV0@@Z @ 193 NONAME ; QDomNode::QDomNode(class QDomNode const &) ?setContent@QDomDocument@@QAE_NABVQByteArray@@_NPAVQString@@PAH3@Z @ 194 NONAME ; bool QDomDocument::setContent(class QByteArray const &, bool, class QString *, int *, int *) ??0QDomElement@@QAE@ABV0@@Z @ 195 NONAME ; QDomElement::QDomElement(class QDomElement const &) - ??0QXmlLexicalHandler@@QAE@XZ @ 196 NONAME ; QXmlLexicalHandler::QXmlLexicalHandler(void) + ??0QXmlLexicalHandler@@QAE@XZ @ 196 NONAME ABSENT ; QXmlLexicalHandler::QXmlLexicalHandler(void) ??_EQXmlLexicalHandler@@UAE@I@Z @ 197 NONAME ; QXmlLexicalHandler::~QXmlLexicalHandler(unsigned int) ??0QDomDocumentType@@QAE@XZ @ 198 NONAME ; QDomDocumentType::QDomDocumentType(void) ?columnNumber@QXmlParseException@@QBEHXZ @ 199 NONAME ; int QXmlParseException::columnNumber(void) const @@ -301,7 +301,7 @@ EXPORTS ?setInvalidDataPolicy@QDomImplementation@@SAXW4InvalidDataPolicy@1@@Z @ 300 NONAME ; void QDomImplementation::setInvalidDataPolicy(enum QDomImplementation::InvalidDataPolicy) ??1QXmlDTDHandler@@UAE@XZ @ 301 NONAME ; QXmlDTDHandler::~QXmlDTDHandler(void) ?nodeType@QDomElement@@QBE?AW4NodeType@QDomNode@@XZ @ 302 NONAME ; enum QDomNode::NodeType QDomElement::nodeType(void) const - ??0QXmlDeclHandler@@QAE@XZ @ 303 NONAME ; QXmlDeclHandler::QXmlDeclHandler(void) + ??0QXmlDeclHandler@@QAE@XZ @ 303 NONAME ABSENT ; QXmlDeclHandler::QXmlDeclHandler(void) ?attributeNode@QDomElement@@QAE?AVQDomAttr@@ABVQString@@@Z @ 304 NONAME ; class QDomAttr QDomElement::attributeNode(class QString const &) ??0QDomNodeList@@QAE@XZ @ 305 NONAME ; QDomNodeList::QDomNodeList(void) ??1QXmlAttributes@@UAE@XZ @ 306 NONAME ; QXmlAttributes::~QXmlAttributes(void) @@ -340,7 +340,7 @@ EXPORTS ??0QXmlParseException@@QAE@ABV0@@Z @ 339 NONAME ; QXmlParseException::QXmlParseException(class QXmlParseException const &) ?nextSiblingElement@QDomNode@@QBE?AVQDomElement@@ABVQString@@@Z @ 340 NONAME ; class QDomElement QDomNode::nextSiblingElement(class QString const &) const ??1QXmlContentHandler@@UAE@XZ @ 341 NONAME ; QXmlContentHandler::~QXmlContentHandler(void) - ??0QXmlEntityResolver@@QAE@XZ @ 342 NONAME ; QXmlEntityResolver::QXmlEntityResolver(void) + ??0QXmlEntityResolver@@QAE@XZ @ 342 NONAME ABSENT ; QXmlEntityResolver::QXmlEntityResolver(void) ?contentHandler@QXmlSimpleReader@@UBEPAVQXmlContentHandler@@XZ @ 343 NONAME ; class QXmlContentHandler * QXmlSimpleReader::contentHandler(void) const ?localName@QDomNode@@QBE?AVQString@@XZ @ 344 NONAME ; class QString QDomNode::localName(void) const ??1QXmlDeclHandler@@UAE@XZ @ 345 NONAME ; QXmlDeclHandler::~QXmlDeclHandler(void) @@ -373,7 +373,7 @@ EXPORTS ??0QDomDocument@@QAE@ABV0@@Z @ 372 NONAME ; QDomDocument::QDomDocument(class QDomDocument const &) ??1QDomNodeList@@QAE@XZ @ 373 NONAME ; QDomNodeList::~QDomNodeList(void) ??4QDomEntity@@QAEAAV0@ABV0@@Z @ 374 NONAME ; class QDomEntity & QDomEntity::operator=(class QDomEntity const &) - ??0QXmlErrorHandler@@QAE@XZ @ 375 NONAME ; QXmlErrorHandler::QXmlErrorHandler(void) + ??0QXmlErrorHandler@@QAE@XZ @ 375 NONAME ABSENT ; QXmlErrorHandler::QXmlErrorHandler(void) ??0QDomNamedNodeMap@@AAE@PAVQDomNamedNodeMapPrivate@@@Z @ 376 NONAME ; QDomNamedNodeMap::QDomNamedNodeMap(class QDomNamedNodeMapPrivate *) ?parentNode@QDomNode@@QBE?AV1@XZ @ 377 NONAME ; class QDomNode QDomNode::parentNode(void) const ??_EQXmlSimpleReader@@UAE@I@Z @ 378 NONAME ; QXmlSimpleReader::~QXmlSimpleReader(unsigned int) diff --git a/src/s60installs/bwins/phononu.def b/src/s60installs/bwins/phononu.def index 2241c0d..19f5e23 100644 --- a/src/s60installs/bwins/phononu.def +++ b/src/s60installs/bwins/phononu.def @@ -108,7 +108,7 @@ EXPORTS ??0MediaSource@Phonon@@IAE@AAVMediaSourcePrivate@1@@Z @ 107 NONAME ; Phonon::MediaSource::MediaSource(class Phonon::MediaSourcePrivate &) ??0ObjectDescriptionModelData@Phonon@@QAE@PAVQAbstractListModel@@@Z @ 108 NONAME ; Phonon::ObjectDescriptionModelData::ObjectDescriptionModelData(class QAbstractListModel *) ?clear@MediaObject@Phonon@@QAEXXZ @ 109 NONAME ; void Phonon::MediaObject::clear(void) - ??_EEffectParameter@Phonon@@QAE@I@Z @ 110 NONAME ; Phonon::EffectParameter::~EffectParameter(unsigned int) + ??_EEffectParameter@Phonon@@QAE@I@Z @ 110 NONAME ABSENT ; Phonon::EffectParameter::~EffectParameter(unsigned int) ??4MediaSource@Phonon@@QAEAAV01@ABV01@@Z @ 111 NONAME ; class Phonon::MediaSource & Phonon::MediaSource::operator=(class Phonon::MediaSource const &) ??0MediaSource@Phonon@@QAE@PAVQIODevice@@@Z @ 112 NONAME ; Phonon::MediaSource::MediaSource(class QIODevice *) ?k_func@AbstractAudioOutput@Phonon@@AAEPAVAbstractAudioOutputPrivate@2@XZ @ 113 NONAME ; class Phonon::AbstractAudioOutputPrivate * Phonon::AbstractAudioOutput::k_func(void) @@ -164,7 +164,7 @@ EXPORTS ?qt_metacast@VolumeFaderEffect@Phonon@@UAEPAXPBD@Z @ 163 NONAME ; void * Phonon::VolumeFaderEffect::qt_metacast(char const *) ?queue@MediaObject@Phonon@@QBE?AV?$QList@VMediaSource@Phonon@@@@XZ @ 164 NONAME ; class QList Phonon::MediaObject::queue(void) const ?qt_metacast@VideoPlayer@Phonon@@UAEPAXPBD@Z @ 165 NONAME ; void * Phonon::VideoPlayer::qt_metacast(char const *) - ??_EPath@Phonon@@QAE@I@Z @ 166 NONAME ; Phonon::Path::~Path(unsigned int) + ??_EPath@Phonon@@QAE@I@Z @ 166 NONAME ABSENT ; Phonon::Path::~Path(unsigned int) ??1ObjectDescriptionModelData@Phonon@@IAE@XZ @ 167 NONAME ; Phonon::ObjectDescriptionModelData::~ObjectDescriptionModelData(void) ?qt_metacast@VolumeSlider@Phonon@@UAEPAXPBD@Z @ 168 NONAME ; void * Phonon::VolumeSlider::qt_metacast(char const *) ?modelData@ObjectDescriptionModelData@Phonon@@QBE?AV?$QList@V?$QExplicitlySharedDataPointer@VObjectDescriptionData@Phonon@@@@@@XZ @ 169 NONAME ; class QList > Phonon::ObjectDescriptionModelData::modelData(void) const @@ -234,7 +234,7 @@ EXPORTS ?setCurrentSubtitle@MediaController@Phonon@@QAEXABV?$ObjectDescription@$02@2@@Z @ 233 NONAME ; void Phonon::MediaController::setCurrentSubtitle(class Phonon::ObjectDescription<3> const &) ?availableMimeTypes@BackendCapabilities@Phonon@@YA?AVQStringList@@XZ @ 234 NONAME ; class QStringList Phonon::BackendCapabilities::availableMimeTypes(void) ??_EMediaSourcePrivate@Phonon@@UAE@I@Z @ 235 NONAME ; Phonon::MediaSourcePrivate::~MediaSourcePrivate(unsigned int) - ??_EMediaSource@Phonon@@QAE@I@Z @ 236 NONAME ; Phonon::MediaSource::~MediaSource(unsigned int) + ??_EMediaSource@Phonon@@QAE@I@Z @ 236 NONAME ABSENT ; Phonon::MediaSource::~MediaSource(unsigned int) ?trUtf8@SeekSlider@Phonon@@SA?AVQString@@PBD0@Z @ 237 NONAME ; class QString Phonon::SeekSlider::trUtf8(char const *, char const *) ?availableAudioEffects@BackendCapabilities@Phonon@@YA?AV?$QList@V?$ObjectDescription@$00@Phonon@@@@XZ @ 238 NONAME ; class QList > Phonon::BackendCapabilities::availableAudioEffects(void) ?seek@VideoPlayer@Phonon@@QAEX_J@Z @ 239 NONAME ; void Phonon::VideoPlayer::seek(long long) @@ -300,7 +300,7 @@ EXPORTS ?fileName@MediaSource@Phonon@@QBE?AVQString@@XZ @ 299 NONAME ; class QString Phonon::MediaSource::fileName(void) const ?metaObject@?$ObjectDescriptionModel@$0A@@Phonon@@UBEPBUQMetaObject@@XZ @ 300 NONAME ; struct QMetaObject const * Phonon::ObjectDescriptionModel<0>::metaObject(void) const ?tr@AbstractMediaStream@Phonon@@SA?AVQString@@PBD0@Z @ 301 NONAME ; class QString Phonon::AbstractMediaStream::tr(char const *, char const *) - ??_EObjectDescriptionData@Phonon@@QAE@I@Z @ 302 NONAME ; Phonon::ObjectDescriptionData::~ObjectDescriptionData(unsigned int) + ??_EObjectDescriptionData@Phonon@@QAE@I@Z @ 302 NONAME ABSENT ; Phonon::ObjectDescriptionData::~ObjectDescriptionData(unsigned int) ?fadeIn@VolumeFaderEffect@Phonon@@QAEXH@Z @ 303 NONAME ; void Phonon::VolumeFaderEffect::fadeIn(int) ?availableAngles@MediaController@Phonon@@QBEHXZ @ 304 NONAME ; int Phonon::MediaController::availableAngles(void) const ?enqueue@MediaObject@Phonon@@QAEXABVMediaSource@2@@Z @ 305 NONAME ; void Phonon::MediaObject::enqueue(class Phonon::MediaSource const &) -- cgit v0.12 From 5476377d3bde8165e6832b7d90d5936a0154d11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Meril=C3=A4?= Date: Mon, 26 Oct 2009 08:52:32 +0200 Subject: Remove compilation warning from QtGui QS60Style causes a compilation warning due to using incorrect parameter when adjusting rect size in adjusted() call. The problematic line is using twice same parameter and thus leaves one pre-set parameter unused, which causes a compilation warning. Fixed by using the correct parameter. Task-number: N/A Reviewed-by: Trust Me --- src/gui/styles/qs60style.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 4c6bc46..8d59d14 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -1377,7 +1377,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, else if (vopt->viewItemPosition == QStyleOptionViewItemV4::End) yEnd = -1; } - highlightRect = option->rect.adjusted(xBeginning, yBeginning, xEnd, xBeginning); + highlightRect = option->rect.adjusted(xBeginning, yBeginning, xEnd, yEnd); } QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, highlightRect, flags); } -- cgit v0.12 From b14338cce8cb13003a4943d134502e085f36ab08 Mon Sep 17 00:00:00 2001 From: Andreas Aardal Hanssen Date: Mon, 26 Oct 2009 09:07:39 +0100 Subject: Fix buglet in QGraphicsItem::stackBefore(). Reported by Alan. The stackBefore() implementation did not alter the insertion order if the two items' current Z values were different. The fix is to ensure it is updated, so that the stackBefore() operation takes effect should the Z values become equal in the future. Example: Current order: A-B-C-D A->setZValue(1); Current order: B-C-D-A (A moves to the end) D->stackBefore(A); Current order: B-C-D-A (unchanged, D is already before A) A->setZValue(0); Current order: D-A-B-C (now A moves back, and D moves in front) Reviewed-by: Aaron Kennedy --- src/gui/graphicsview/qgraphicsitem.cpp | 2 +- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 56 +++++++++++++------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 4b2ff52..ad672a3 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -4261,7 +4261,7 @@ void QGraphicsItem::stackBefore(const QGraphicsItem *sibling) // Only move items with the same Z value, and that need moving. int siblingIndex = sibling->d_ptr->siblingIndex; int myIndex = d_ptr->siblingIndex; - if (myIndex >= siblingIndex && d_ptr->z == sibling->d_ptr->z) { + if (myIndex >= siblingIndex) { siblings->move(myIndex, siblingIndex); // Fixup the insertion ordering. for (int i = 0; i < siblings->size(); ++i) { diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 4fae911..dabf64c 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -8569,24 +8569,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(parent.childItems(), (QList() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(parent.childItems(), (QList() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(parent.childItems(), (QList() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(parent.childItems(), (QList() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(parent.childItems(), (QList() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(parent.childItems(), (QList() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(parent.childItems(), (QList() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(parent.childItems(), (QList() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(parent.childItems(), (QList() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(parent.childItems(), (QList() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(parent.childItems(), (QList() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(parent.childItems(), (QList() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(parent.childItems(), (QList() << child4 << child3 << child1 << child2)); // Make them all toplevels child1->setParentItem(0); @@ -8608,24 +8608,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList() << child4 << child3 << child1 << child2)); } void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect() -- cgit v0.12 From 319482a6b33ce1bd365457054aca49a51d885e07 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Fri, 23 Oct 2009 09:14:39 +0200 Subject: Drag and drop in QListWidget would not preserve the selection Now, when dropping items, these will remain selected, and in the same visual order as when dragged. Auto-test included for the items moving part. For the rest, it's a drag-and-drop thing. Reviewed-by: Olivier --- src/gui/itemviews/qlistwidget.cpp | 31 ++++++++++------ src/gui/itemviews/qlistwidget_p.h | 3 +- tests/auto/qlistwidget/tst_qlistwidget.cpp | 59 ++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 13 deletions(-) diff --git a/src/gui/itemviews/qlistwidget.cpp b/src/gui/itemviews/qlistwidget.cpp index a978d0f..5dd1d76 100644 --- a/src/gui/itemviews/qlistwidget.cpp +++ b/src/gui/itemviews/qlistwidget.cpp @@ -169,6 +169,20 @@ QListWidgetItem *QListModel::take(int row) return item; } +void QListModel::move(int srcRow, int dstRow) +{ + if (srcRow == dstRow + || srcRow < 0 || srcRow >= items.count() + || dstRow < 0 || dstRow >= items.count()) + return; + + beginMoveRows(QModelIndex(), srcRow, srcRow, QModelIndex(), dstRow); + if (srcRow < dstRow) + --dstRow; + items.move(srcRow, dstRow); + endMoveRows(); +} + int QListModel::rowCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : items.count(); @@ -1804,22 +1818,15 @@ void QListWidget::dropEvent(QDropEvent *event) { if (persIndexes.contains(topIndex)) return; + qSort(persIndexes); // The dropped items will remain in the same visual order. QPersistentModelIndex dropRow = model()->index(row, col, topIndex); - QList taken; - for (int i = 0; i < persIndexes.count(); ++i) - taken.append(takeItem(persIndexes.at(i).row())); - - // insert them back in at their new positions + int r = row == -1 ? count() : (dropRow.row() >= 0 ? dropRow.row() : row); for (int i = 0; i < persIndexes.count(); ++i) { - // Either at a specific point or appended - if (row == -1) { - insertItem(count(), taken.takeFirst()); - } else { - int r = dropRow.row() >= 0 ? dropRow.row() : row; - insertItem(qMin(r, count()), taken.takeFirst()); - } + const QPersistentModelIndex &pIndex = persIndexes.at(i); + d->listModel()->move(pIndex.row(), r); + r = pIndex.row() + 1; // Dropped items are inserted contiguously and in the right order. } event->accept(); diff --git a/src/gui/itemviews/qlistwidget_p.h b/src/gui/itemviews/qlistwidget_p.h index 69cfa26..b5f28e3 100644 --- a/src/gui/itemviews/qlistwidget_p.h +++ b/src/gui/itemviews/qlistwidget_p.h @@ -77,7 +77,7 @@ public: { return *i2 < *i1; } }; -class QListModel : public QAbstractListModel +class Q_AUTOTEST_EXPORT QListModel : public QAbstractListModel { Q_OBJECT public: @@ -90,6 +90,7 @@ public: void insert(int row, const QStringList &items); void remove(QListWidgetItem *item); QListWidgetItem *take(int row); + void move(int srcRow, int dstRow); int rowCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp index e825c8f..5c6ed54 100644 --- a/tests/auto/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp @@ -46,6 +46,7 @@ #include #include +#include //TESTED_CLASS= //TESTED_FILES= @@ -95,6 +96,8 @@ private slots: void insertItem(); void insertItems_data(); void insertItems(); + void moveItemsPriv_data(); + void moveItemsPriv(); void itemAssignment(); void item_data(); @@ -849,6 +852,62 @@ void tst_QListWidget::removeItems() } +void tst_QListWidget::moveItemsPriv_data() +{ + QTest::addColumn("rowCount"); + QTest::addColumn("srcRow"); + QTest::addColumn("dstRow"); + QTest::addColumn("shouldHaveSignaled"); + + QTest::newRow("Empty") << 0 << 0 << 0 << false; + QTest::newRow("Overflow src") << 5 << 5 << 2 << false; + QTest::newRow("Underflow src") << 5 << -1 << 2 << false; + QTest::newRow("Overflow dst") << 5 << 2 << 5 << false; + QTest::newRow("Underflow dst") << 5 << 2 << -1 << false; + QTest::newRow("Same place") << 5 << 2 << 2 << false; + QTest::newRow("Up") << 5 << 4 << 2 << true; + QTest::newRow("Down") << 5 << 2 << 4 << true; +} + +void tst_QListWidget::moveItemsPriv() +{ + QFETCH(int, rowCount); + QFETCH(int, srcRow); + QFETCH(int, dstRow); + QFETCH(bool, shouldHaveSignaled); + + for (int r = 0; r < rowCount; ++r) + new QListWidgetItem(QString::number(r), testWidget); + + QListModel *model = dynamic_cast(testWidget->model()); + QVERIFY(model); + QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); + QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int))); + model->move(srcRow, dstRow); + + if (shouldHaveSignaled) { + if (srcRow < dstRow) + QCOMPARE(testWidget->item(dstRow - 1)->text(), QString::number(srcRow)); + else + QCOMPARE(testWidget->item(dstRow)->text(), QString::number(srcRow)); + + QCOMPARE(beginMoveSpy.count(), 1); + const QList &beginMoveArgs = beginMoveSpy.takeFirst(); + QCOMPARE(beginMoveArgs.at(1).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(2).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(4).toInt(), dstRow); + + QCOMPARE(movedSpy.count(), 1); + const QList &movedArgs = movedSpy.takeFirst(); + QCOMPARE(movedArgs.at(1).toInt(), srcRow); + QCOMPARE(movedArgs.at(2).toInt(), srcRow); + QCOMPARE(movedArgs.at(4).toInt(), dstRow); + } else { + QCOMPARE(beginMoveSpy.count(), 0); + QCOMPARE(movedSpy.count(), 0); + } +} + void tst_QListWidget::itemStreaming_data() { QTest::addColumn("text"); -- cgit v0.12 From d2c9895fbc116ef87f9cc1161258fd4bba727c6c Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Mon, 26 Oct 2009 11:09:18 +0100 Subject: Fixed typo in configure usage (superfluous hyphen). Reviewed-by: Thiago Macieira --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index d97149d..035bd4a 100755 --- a/configure +++ b/configure @@ -3223,7 +3223,7 @@ Usage: $relconf [-h] [-prefix ] [-prefix-install] [-bindir ] [-libdir [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff] [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng] [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make ] - [-no-make ] [-R ] [-l ] [-no-rpath] [-rpath] [-continue] + [-nomake ] [-R ] [-l ] [-no-rpath] [-rpath] [-continue] [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv] [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2] -- cgit v0.12 From 3f7a99565de7ed17d7ac4c0a25b02997b094b1a9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 26 Oct 2009 10:56:57 +0100 Subject: Fix linking of WebKit on Linux 32-bit. It was missing the ".text" directive at the top of the file, indicating that code would follow. Without it, the assembler created "NOTYPE" symbols, which would result in linker errors. --- src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp index 90ea807..2cbc13d 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp @@ -75,7 +75,7 @@ namespace JSC { #define THUMB_FUNC_PARAM(name) #endif -#if PLATFORM(LINUX) && PLATFORM(X86_64) +#if PLATFORM(LINUX) && (PLATFORM(X86_64) || PLATFORM(X86)) #define SYMBOL_STRING_RELOCATION(name) #name "@plt" #else #define SYMBOL_STRING_RELOCATION(name) SYMBOL_STRING(name) @@ -93,6 +93,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_ COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline); asm volatile ( +".text\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "pushl %ebp" "\n" -- cgit v0.12 From e2ef97128c006ac2a5c99c67bb54eebaa3b45720 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 26 Oct 2009 11:04:21 +0100 Subject: Implement symbol hiding for JSC's JIT functions. These functions are implemented directly in assembly, so they need the proper directives to enable/disable visibility. On ELF systems, it's .hidden, whereas on Mach-O systems (Mac) it's .private_extern. On Windows, it's not necessary since you have to explicitly export. I also implemented the AIX idiom, though it's unlikely anyone will implement AIX/POWER JIT. That leaves only HP-UX on PA-RISC unimplemented, from the platforms that Qt supports. It's also unlikely that we'll imlpement JIT for it. Reviewed-by: Kent Hansen (this commit was 26d0990c66068bfc92a2ec77512b26d4a0c11b02, but was lost during a WebKit update) --- .../webkit/JavaScriptCore/jit/JITStubs.cpp | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp index 2cbc13d..457518c 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp @@ -81,6 +81,19 @@ namespace JSC { #define SYMBOL_STRING_RELOCATION(name) SYMBOL_STRING(name) #endif +#if PLATFORM(DARWIN) + // Mach-O platform +#define HIDE_SYMBOL(name) ".private_extern _" #name +#elif PLATFORM(AIX) + // IBM's own file format +#define HIDE_SYMBOL(name) ".lglobl " #name +#elif PLATFORM(LINUX) || PLATFORM(FREEBSD) || PLATFORM(OPENBSD) || PLATFORM(SOLARIS) || (PLATFORM(HPUX) && PLATFORM(IA64)) || PLATFORM(SYMBIAN) || PLATFORM(NETBSD) + // ELF platform +#define HIDE_SYMBOL(name) ".hidden " #name +#else +#define HIDE_SYMBOL(name) +#endif + #if USE(JSVALUE32_64) #if COMPILER(GCC) && PLATFORM(X86) @@ -95,6 +108,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_ asm volatile ( ".text\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "pushl %ebp" "\n" "movl %esp, %ebp" "\n" @@ -115,6 +129,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" #if !USE(JIT_STUB_ARGUMENT_VA_LIST) "movl %esp, %ecx" "\n" @@ -130,6 +145,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" "addl $0x3c, %esp" "\n" "popl %ebx" "\n" @@ -154,6 +170,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_ asm volatile ( ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "pushq %rbp" "\n" "movq %rsp, %rbp" "\n" @@ -180,6 +197,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" "movq %rsp, %rdi" "\n" "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n" @@ -195,6 +213,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" "addq $0x48, %rsp" "\n" "popq %rbx" "\n" @@ -216,6 +235,7 @@ asm volatile ( ".text" "\n" ".align 2" "\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" @@ -242,6 +262,7 @@ asm volatile ( ".text" "\n" ".align 2" "\n" ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" @@ -347,7 +368,9 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline); asm volatile ( +".text\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "pushl %ebp" "\n" "movl %esp, %ebp" "\n" @@ -368,6 +391,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" #if !USE(JIT_STUB_ARGUMENT_VA_LIST) "movl %esp, %ecx" "\n" @@ -383,6 +407,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" "addl $0x1c, %esp" "\n" "popl %ebx" "\n" @@ -405,7 +430,9 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline); asm volatile ( +".text\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "pushq %rbp" "\n" "movq %rsp, %rbp" "\n" @@ -439,6 +466,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" "movq %rsp, %rdi" "\n" "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n" @@ -454,6 +482,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" "addq $0x78, %rsp" "\n" "popq %rbx" "\n" @@ -475,6 +504,7 @@ asm volatile ( ".text" "\n" ".align 2" "\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" @@ -501,6 +531,7 @@ asm volatile ( ".text" "\n" ".align 2" "\n" ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" @@ -518,6 +549,7 @@ asm volatile ( ".text" "\n" ".align 2" "\n" ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" @@ -532,7 +564,9 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" #elif COMPILER(GCC) && PLATFORM(ARM_TRADITIONAL) asm volatile ( +".text\n" ".globl " SYMBOL_STRING(ctiTrampoline) "\n" +HIDE_SYMBOL(ctiTrampoline) "\n" SYMBOL_STRING(ctiTrampoline) ":" "\n" "stmdb sp!, {r1-r3}" "\n" "stmdb sp!, {r4-r8, lr}" "\n" @@ -556,6 +590,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n" asm volatile ( ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" +HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" "mov r0, sp" "\n" "mov lr, r6" "\n" @@ -565,6 +600,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" // Both has the same return sequence ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" "add sp, sp, #32" "\n" "ldmia sp!, {r4-r8, lr}" "\n" @@ -899,6 +935,7 @@ static NEVER_INLINE void throwStackOverflowError(CallFrame* callFrame, JSGlobalD ".text" "\n" \ ".align 2" "\n" \ ".globl " SYMBOL_STRING(cti_##op) "\n" \ + HIDE_SYMBOL(cti_##op) "\n" \ ".thumb" "\n" \ ".thumb_func " THUMB_FUNC_PARAM(cti_##op) "\n" \ SYMBOL_STRING(cti_##op) ":" "\n" \ -- cgit v0.12 From c7e8c1844819bc9b078403f8cdbad9c104452a30 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 26 Oct 2009 12:52:30 +0100 Subject: Fixed typo Would not have introduced any bug as invald QModelIndex are currently initialised with -1 for row and column. Reviewed-by: trust me --- src/gui/itemviews/qitemselectionmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp index dfebe03..f2ccb6e 100644 --- a/src/gui/itemviews/qitemselectionmodel.cpp +++ b/src/gui/itemviews/qitemselectionmodel.cpp @@ -599,7 +599,7 @@ void QItemSelectionModelPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &pare while (itParent.isValid() && itParent.parent() != parent) itParent = itParent.parent(); - if (parent.isValid() && start <= itParent.row() && itParent.row() <= end) { + if (itParent.isValid() && start <= itParent.row() && itParent.row() <= end) { deselected.append(*it); it = ranges.erase(it); } else { -- cgit v0.12 From 962f875cd48a42cb69855ba05b979aa4a50ca2a2 Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Mon, 26 Oct 2009 14:24:35 +0200 Subject: Emulator IAP fix for Symbian Don't display multiple useless IAP dialogs in the emulator environment. If you need specific IAP then you need to revert this commit. Reviewed-by: Aleksandar Babic --- examples/network/qftp/sym_iap_util.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/network/qftp/sym_iap_util.h b/examples/network/qftp/sym_iap_util.h index ebeae0a..9b4128c 100644 --- a/examples/network/qftp/sym_iap_util.h +++ b/examples/network/qftp/sym_iap_util.h @@ -501,10 +501,14 @@ static void qt_SetDefaultIapL() static int qt_SetDefaultIap() { +#ifndef __WINS__ TRAPD(err1, qt_SetDefaultIapL()); // TRAPD(err2, qt_InterfaceInfoL()); // TRAPD(err3, qt_RouteInfoL()); return err1; +#else + return 0; // IAP dialog not required for emulator +#endif } #endif // QSYM_IAP_UTIL_H -- cgit v0.12 From f3854db64bcaa0f26faf5ff1414d3b9ccfc00e35 Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 26 Oct 2009 13:13:30 +0100 Subject: Fixed a crash in the QApplication autotest. If there is no focusWidget at the time of the event delivery, we must ensure that we don't dereference a null pointer. RevBy: Jason Barron RevBy: Liang Qi --- src/gui/kernel/qsoftkeymanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp index fac936f..75c321e 100644 --- a/src/gui/kernel/qsoftkeymanager.cpp +++ b/src/gui/kernel/qsoftkeymanager.cpp @@ -189,7 +189,8 @@ bool QSoftKeyManager::event(QEvent *e) } while (source); QSoftKeyManagerPrivate::softKeySource = source; - QSoftKeyManagerPrivate::updateSoftKeys_sys(softKeys); + if (source) + QSoftKeyManagerPrivate::updateSoftKeys_sys(softKeys); return true; } return false; -- cgit v0.12 From 96b18246c4930332cadc80f97202e44110e22a4d Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 26 Oct 2009 13:58:03 +0100 Subject: QPixmap::loadFromData: Do not crash on empty/invalid data/length Task-number: 262636 Reviewed-by: gunnar --- src/gui/image/qpixmap.cpp | 3 +++ tests/auto/qpixmap/tst_qpixmap.cpp | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index a3b7516..45ff5f4 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -860,6 +860,9 @@ bool QPixmap::load(const QString &fileName, const char *format, Qt::ImageConvers bool QPixmap::loadFromData(const uchar *buf, uint len, const char *format, Qt::ImageConversionFlags flags) { + if (len == 0 || buf == 0) + return false; + return data->fromData(buf, len, format, flags); } diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 9f5aee2..53b6230 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -166,6 +166,7 @@ private slots: void fromImage_crash(); void fromData(); + void loadFromDataNullValues(); void preserveDepth(); }; @@ -1436,6 +1437,26 @@ void tst_QPixmap::fromData() QCOMPARE(img.pixel(0, 1), QRgb(0xff000000)); } +void tst_QPixmap::loadFromDataNullValues() +{ + { + QPixmap pixmap; + pixmap.loadFromData(QByteArray()); + QVERIFY(pixmap.isNull()); + } + { + QPixmap pixmap; + pixmap.loadFromData(0, 123); + QVERIFY(pixmap.isNull()); + } + { + QPixmap pixmap; + const uchar bla[] = "bla"; + pixmap.loadFromData(bla, 0); + QVERIFY(pixmap.isNull()); + } +} + void tst_QPixmap::task_246446() { // This crashed without the bugfix in 246446 -- cgit v0.12 From 1fe977fde34b29207c285ed37456c4277b348b2a Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 26 Oct 2009 14:43:15 +0100 Subject: tst_qtcpsocket: Increased some of the timeouts to increase stability Reviewed-by: TrustMe --- tests/auto/qtcpsocket/tst_qtcpsocket.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp index 8ea137e..5577903 100644 --- a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp @@ -2096,7 +2096,7 @@ void tst_QTcpSocket::connectToMultiIP() stopWatch.restart(); socket->connectToHost("multi.dev.troll.no", 81); - QVERIFY(!socket->waitForConnected(1000)); + QVERIFY(!socket->waitForConnected(2000)); QVERIFY(stopWatch.elapsed() < 2000); QCOMPARE(socket->error(), QAbstractSocket::SocketTimeoutError); @@ -2116,7 +2116,7 @@ void tst_QTcpSocket::moveToThread0() QTcpSocket *socket = newSocket();; socket->connectToHost(QtNetworkSettings::serverName(), 143); socket->moveToThread(0); - QVERIFY(socket->waitForConnected(1000)); + QVERIFY(socket->waitForConnected(2000)); socket->write("XXX LOGOUT\r\n"); QVERIFY(socket->waitForBytesWritten(5000)); QVERIFY(socket->waitForDisconnected()); @@ -2127,7 +2127,7 @@ void tst_QTcpSocket::moveToThread0() QTcpSocket *socket = newSocket(); socket->moveToThread(0); socket->connectToHost(QtNetworkSettings::serverName(), 143); - QVERIFY(socket->waitForConnected(1000)); + QVERIFY(socket->waitForConnected(2000)); socket->write("XXX LOGOUT\r\n"); QVERIFY(socket->waitForBytesWritten(5000)); QVERIFY(socket->waitForDisconnected()); @@ -2137,7 +2137,7 @@ void tst_QTcpSocket::moveToThread0() // Case 3: Moved after writing, while waiting for bytes to be written. QTcpSocket *socket = newSocket(); socket->connectToHost(QtNetworkSettings::serverName(), 143); - QVERIFY(socket->waitForConnected(1000)); + QVERIFY(socket->waitForConnected(2000)); socket->write("XXX LOGOUT\r\n"); socket->moveToThread(0); QVERIFY(socket->waitForBytesWritten(5000)); @@ -2148,7 +2148,7 @@ void tst_QTcpSocket::moveToThread0() // Case 4: Moved after writing, while waiting for response. QTcpSocket *socket = newSocket(); socket->connectToHost(QtNetworkSettings::serverName(), 143); - QVERIFY(socket->waitForConnected(1000)); + QVERIFY(socket->waitForConnected(2000)); socket->write("XXX LOGOUT\r\n"); QVERIFY(socket->waitForBytesWritten(5000)); socket->moveToThread(0); @@ -2263,7 +2263,7 @@ void tst_QTcpSocket::invalidProxy() QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState); } else { QCOMPARE(socket->state(), QAbstractSocket::ConnectingState); - QVERIFY(!socket->waitForConnected(1000)); + QVERIFY(!socket->waitForConnected(2000)); } QVERIFY(!socket->errorString().isEmpty()); @@ -2382,7 +2382,7 @@ void tst_QTcpSocket::proxyFactory() QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState); } else { QCOMPARE(socket->state(), QAbstractSocket::ConnectingState); - QVERIFY(socket->waitForConnected(10000)); + QVERIFY(socket->waitForConnected(2000)); QCOMPARE(proxyAuthCalled, 1); } QVERIFY(!socket->errorString().isEmpty()); -- cgit v0.12 From 17bf093fa0fb041c2b9a6fec71b90a8630fba1ff Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 26 Oct 2009 15:16:32 +0100 Subject: QSslSocket: Add \reimp to the socket option functions Reviewed-by: Thiago --- src/network/ssl/qsslsocket.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 2c88130..1f93534 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -467,6 +467,9 @@ bool QSslSocket::setSocketDescriptor(int socketDescriptor, SocketState state, Op return retVal; } +/*! + \reimp +*/ void QSslSocket::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value) { Q_D(QSslSocket); @@ -474,6 +477,9 @@ void QSslSocket::setSocketOption(QAbstractSocket::SocketOption option, const QVa d->plainSocket->setSocketOption(option, value); } +/*! + \reimp +*/ QVariant QSslSocket::socketOption(QAbstractSocket::SocketOption option) { Q_D(QSslSocket); -- cgit v0.12 From 9c78eb972041a066e455bf04d63f3290afacb982 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 26 Oct 2009 15:15:59 +0100 Subject: stabilize test and fix warning --- src/gui/kernel/qguiplatformplugin.cpp | 2 ++ tests/auto/qlistview/tst_qlistview.cpp | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp index 6e074a1..b01d40f 100644 --- a/src/gui/kernel/qguiplatformplugin.cpp +++ b/src/gui/kernel/qguiplatformplugin.cpp @@ -288,6 +288,8 @@ int QGuiPlatformPlugin::platformHint(PlatformHint hint) #endif //by default keep ret = 0 so QCommonStyle will use the style default break; + default: + break; } return ret; } diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 3968529..65ab12d 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -1785,12 +1785,12 @@ void tst_QListView::task262152_setModelColumnNavigate() view.show(); QTest::qWaitForWindowShown(&view); - QTest::qWait(10); + QTest::qWait(100); QTest::keyClick(&view, Qt::Key_Down); - QTest::qWait(10); + QTest::qWait(100); QCOMPARE(view.currentIndex(), model.index(1,1)); QTest::keyClick(&view, Qt::Key_Down); - QTest::qWait(10); + QTest::qWait(100); QCOMPARE(view.currentIndex(), model.index(2,1)); } -- cgit v0.12 From 32815bd71b08f1a8bbec04e60a973a1fa2d9febe Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 26 Oct 2009 15:43:55 +0100 Subject: Make network self test fail instead of crashing in case of DNS error Reviewed-by: Liang QI Reviewed-by: Aleksandar Sasha Babic --- tests/auto/networkselftest/tst_networkselftest.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/auto/networkselftest/tst_networkselftest.cpp b/tests/auto/networkselftest/tst_networkselftest.cpp index d58402b..a09d998 100644 --- a/tests/auto/networkselftest/tst_networkselftest.cpp +++ b/tests/auto/networkselftest/tst_networkselftest.cpp @@ -333,6 +333,11 @@ QHostAddress tst_NetworkSelfTest::serverIpAddress() if (cachedIpAddress.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) { // need resolving QHostInfo resolved = QHostInfo::fromName(QtNetworkSettings::serverName()); + if(resolved.error() != QHostInfo::NoError || + !resolved.addresses().isEmpty()) { + qWarning("QHostInfo::fromName failed (%d).", resolved.error()); + return QHostAddress(QHostAddress::Null); + } cachedIpAddress = resolved.addresses().first(); } return cachedIpAddress; -- cgit v0.12 From 755b4b9db0fdb6caec8ccc43aba30e7cdd3909f1 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 23 Oct 2009 15:09:25 +0200 Subject: Doc: Fixed whitespace issue. Reviewed-by: Trust Me --- doc/src/platforms/qt-embedded.qdoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/src/platforms/qt-embedded.qdoc b/doc/src/platforms/qt-embedded.qdoc index c39a967..e0c35cc 100644 --- a/doc/src/platforms/qt-embedded.qdoc +++ b/doc/src/platforms/qt-embedded.qdoc @@ -68,10 +68,9 @@ environment and use native features, such as menus, to conform to the native style guidelines. \o \l{Symbian platform - Introduction to using Qt}{Qt for the Symbian -platform} is used to create - applications running in existing Symbian platform environments. - Applications use the appropriate style for the embedded - environment and use native features, such as menus, to conform + platform} is used to create applications running in existing Symbian + platform environments. Applications use the appropriate style for the + embedded environment and use native features, such as menus, to conform to the native style guidelines. \endtable */ -- cgit v0.12 From b5254a2500afebf74d5772c3ec0e03dc5c9243b6 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 26 Oct 2009 15:57:20 +0100 Subject: Doc: Fixed qdoc warnings. Reviewed-by: Trust Me --- src/gui/graphicsview/qgraphicsitem.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index f892bb4..edd2d7c 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1228,7 +1228,8 @@ void QGraphicsItemCache::purge() } /*! - Constructs a QGraphicsItem, passing \a item to QGraphicsItem's constructor. It does not modify \fn QObject::parent(). + Constructs a QGraphicsItem, passing \a item to QGraphicsItem's constructor. + It does not modify the parent object returned by QObject::parent(). If \a parent is 0, you can add the item to a scene by calling QGraphicsScene::addItem(). The item will then become a top-level item. @@ -7283,6 +7284,21 @@ static void qt_graphicsItem_highlightSelected( The class extends a QGraphicsItem with QObject's signal/slot and property mechanisms. It maps many of QGraphicsItem's basic setters and getters to properties and adds notification signals for many of them. + + \section1 Parents and Children + + Each graphics object can be constructed with a parent item. This ensures that the + item will be destroyed when its parent item is destroyed. Although QGraphicsObject + inherits from both QObject and QGraphicsItem, you should use the functions provided + by QGraphicsItem, \e not QObject, to manage the relationships between parent and + child items. + + The relationships between items can be explored using the parentItem() and childItems() + functions. In the hierarchy of items in a scene, the parentObject() and parentWidget() + functions are the equivalent of the QWidget::parent() and QWidget::parentWidget() + functions for QWidget subclasses. + + \sa QGraphicsWidget */ /*! @@ -7318,7 +7334,10 @@ void QGraphicsObject::grabGesture(Qt::GestureType gesture, Qt::GestureContext co /*! \property QGraphicsObject::parent - \brief the parent of the item. It is independent from \fn QObject::parent. + \brief the parent of the item + + \note The item's parent is set independently of the parent object returned + by QObject::parent(). \sa QGraphicsItem::setParentItem(), QGraphicsItem::parentObject() */ -- cgit v0.12 From aa290742462819d6d6dd9b08675dc8d59d824787 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 26 Oct 2009 15:58:46 +0100 Subject: Doc: Fixed qdoc warnings. Reviewed-by: Trust Me --- src/corelib/global/qnamespace.qdoc | 3 +++ src/gui/kernel/qgesture.cpp | 6 ------ src/gui/kernel/qstandardgestures.cpp | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index e8d6df0..5f9d01d 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -2841,6 +2841,9 @@ \value WidgetGesture Gestures can only start over the widget itself. \value WidgetWithChildrenGesture Gestures can start on the widget or over any of its children. + \value ItemGesture Gestures can only start over the item itself. + \value ItemWithChildrenGesture Gestures can start on the item or over + any of its children. \sa QWidget::grabGesture() */ diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index ecdd661..a161876 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -142,12 +142,6 @@ QGesture::~QGesture() \brief whether the gesture has a hot-spot */ -/*! - \property QGesture::targetObject - \brief the target object which will receive the gesture event if the hotSpot is - not set -*/ - Qt::GestureType QGesture::gestureType() const { return d_func()->gestureType; diff --git a/src/gui/kernel/qstandardgestures.cpp b/src/gui/kernel/qstandardgestures.cpp index a136379..dec2311 100644 --- a/src/gui/kernel/qstandardgestures.cpp +++ b/src/gui/kernel/qstandardgestures.cpp @@ -140,7 +140,6 @@ void QPanGestureRecognizer::reset(QGesture *state) QGestureRecognizer::reset(state); } -/*! \internal */ /* bool QPanGestureRecognizer::event(QEvent *event) { -- cgit v0.12 From 2d750192e73244f5b4ad6b451f264728d42669be Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 26 Oct 2009 15:53:47 +0100 Subject: Fixed crash when setting header data in QSqlQueryModel. The crash (Q_ASSERT_X failure) happened when a proxy model was being attached to the QSqlQueryModel, and no query was set yet. The headerDataChanged() signal was being received by the proxy model who wouldn't check its "proxyfied" data bounds. The patch introduces a behaviour change. However, this change makes the usage of QSqlQueryModel::setHeaderData() to be more in accordance with the current documentation, and to behave in the same way as for QStandardItemModel, QTreeModel, and QTableModel. Task-number: QTBUG-4963 Reviewed-by: Olivier --- src/sql/models/qsqlquerymodel.cpp | 2 +- tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index a72ad8c..1719239 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -417,7 +417,7 @@ bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role) { Q_D(QSqlQueryModel); - if (orientation != Qt::Horizontal || section < 0) + if (orientation != Qt::Horizontal || section < 0 || columnCount() <= section) return false; if (d->headers.size() <= section) diff --git a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp index 3131f35..02b48fa 100644 --- a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp +++ b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp @@ -96,6 +96,7 @@ private slots: void task_180617(); void task_180617_data() { generic_data(); } + void task_QTBUG_4963_setHeaderDataWithProxyModel(); private: void generic_data(const QString &engine=QString()); @@ -428,6 +429,8 @@ void tst_QSqlQueryModel::setHeaderData() QVERIFY(!model.setHeaderData(5, Qt::Vertical, "foo")); QVERIFY(model.headerData(5, Qt::Vertical).isValid()); + model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + qRegisterMetaType("Qt::Orientation"); QSignalSpy spy(&model, SIGNAL(headerDataChanged(Qt::Orientation, int, int))); QVERIFY(model.setHeaderData(2, Qt::Horizontal, "bar")); @@ -437,10 +440,8 @@ void tst_QSqlQueryModel::setHeaderData() QCOMPARE(spy.value(0).value(1).toInt(), 2); QCOMPARE(spy.value(0).value(2).toInt(), 2); - QVERIFY(model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); - QVERIFY(model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); - - model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + QVERIFY(!model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); + QVERIFY(!model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); QCOMPARE(model.headerData(0, Qt::Horizontal).toString(), isToUpper ? QString("ID") : QString("id")); @@ -603,5 +604,14 @@ void tst_QSqlQueryModel::task_180617() QCOMPARE(view.rowAt(0), -1); } +void tst_QSqlQueryModel::task_QTBUG_4963_setHeaderDataWithProxyModel() +{ + QSqlQueryModel plainModel; + QSortFilterProxyModel proxyModel; + proxyModel.setSourceModel(&plainModel); + QVERIFY(!plainModel.setHeaderData(0, Qt::Horizontal, QObject::tr("ID"))); + // And it should not crash. +} + QTEST_MAIN(tst_QSqlQueryModel) #include "tst_qsqlquerymodel.moc" -- cgit v0.12 From 91823996c00b1ba952be45eaa69a98816e6f27fd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 26 Oct 2009 16:55:47 +0100 Subject: Fix QCompleter autotest for case insensitive filesystems The directory completion test case was constructing a case insensitive name completer, but doing a case sensitive string comparison of the test result. After this change, it uses the same case sensitivity the QCompleter was constructed with to perform the comparison - which varies according to the test case. Reviewed-by: axis --- tests/auto/qcompleter/tst_qcompleter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp index 43205e1..2a17984 100644 --- a/tests/auto/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/qcompleter/tst_qcompleter.cpp @@ -267,7 +267,7 @@ void tst_QCompleter::filter() //QModelIndex si = completer->currentIndex(); //QCOMPARE(completer->model()->data(si).toString(), completion); - QCOMPARE(completer->currentCompletion(), completionText); + QVERIFY(0 == QString::compare(completer->currentCompletion(), completionText, completer->caseSensitivity())); } // Testing get/set functions -- cgit v0.12 From e4ea97959e1fbbc99e80023a6c3229ba0a1d7c8b Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 26 Oct 2009 14:58:31 +0100 Subject: Removed the need for extra Symbian traps after QApp construction. This was achieved by putting back the old trap handler after the S60 framework construction has finished. Task: QTBUG-4960 AutoTest: Included and passed RevBy: Shane Kearns --- src/gui/kernel/qapplication_s60.cpp | 13 ++++++ src/gui/kernel/qt_s60_p.h | 2 + tests/auto/qapplication/tst_qapplication.cpp | 63 ++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 689429e..30bf99a 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1030,6 +1030,14 @@ QApplication::QApplication(QApplication::QS60MainApplicationFactory factory, int void qt_init(QApplicationPrivate * /* priv */, int) { if (!CCoeEnv::Static()) { + // The S60 framework creates a new trap handler which will render any existing traps + // invalid as long as it is active. This means that all code in main() that occurs after + // the QApplication construction needs to be surrounded by a new trap, despite having + // an outer one already. To avoid this, we save the original trap handler here, and set + // it back after the S60 framework is constructed. Then we restore it right before the S60 + // framework destruction. + TTrapHandler *origTrapHandler = User::TrapHandler(); + // The S60 framework has not been initalized. We need to do it. TApaApplicationFactory factory(S60->s60ApplicationFactory ? S60->s60ApplicationFactory : newS60Application); @@ -1041,6 +1049,8 @@ void qt_init(QApplicationPrivate * /* priv */, int) QT_TRAP_THROWING(coe->ConstructAppFromCommandLineL(factory,*commandLine)); delete commandLine; + S60->s60InstalledTrapHandler = User::SetTrapHandler(origTrapHandler); + S60->qtOwnsS60Environment = true; } else { S60->qtOwnsS60Environment = false; @@ -1195,6 +1205,9 @@ void qt_cleanup() S60->wsSession().SetPointerCursorMode(EPointerCursorNone); if (S60->qtOwnsS60Environment) { + // Restore the S60 framework trap handler. See qt_init(). + User::SetTrapHandler(S60->s60InstalledTrapHandler); + CEikonEnv* coe = CEikonEnv::Static(); coe->PrepareToExit(); // The CEikonEnv itself is destroyed in here. diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index e25bc81..789d89e 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -124,6 +124,8 @@ public: static inline CAknTitlePane* titlePane(); static inline CAknContextPane* contextPane(); static inline CEikButtonGroupContainer* buttonGroupContainer(); + + TTrapHandler *s60InstalledTrapHandler; #endif }; diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index 97aa092..675e559 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -136,6 +136,9 @@ private slots: void windowsCommandLine(); void touchEventPropagation(); + + void symbianNeedForTraps(); + void symbianLeaveThroughMain(); }; class EventSpy : public QObject @@ -2011,6 +2014,66 @@ void tst_QApplication::touchEventPropagation() } } +#ifdef Q_OS_SYMBIAN +class CBaseDummy : public CBase +{ +public: + CBaseDummy(int *numDestroyed) : numDestroyed(numDestroyed) + { + } + ~CBaseDummy() + { + (*numDestroyed)++; + } + +private: + int *numDestroyed; +}; + +static void fakeMain(int *numDestroyed) +{ + // Push a few objects, just so that the cleanup stack has something to clean up. + CleanupStack::PushL(new (ELeave) CBaseDummy(numDestroyed)); + int argc = 0; + QApplication app(argc, 0); + CleanupStack::PushL(new (ELeave) CBaseDummy(numDestroyed)); + + User::Leave(KErrGeneral); // Fake error +} +#endif + +void tst_QApplication::symbianNeedForTraps() +{ +#ifndef Q_OS_SYMBIAN + QSKIP("This is a Symbian-only test", SkipAll); +#else + int argc = 0; + QApplication app(argc, 0); + int numDestroyed = 0; + + // This next part should not require a trap. If it does, the test will crash. + CleanupStack::PushL(new (ELeave) CBaseDummy(&numDestroyed)); + CleanupStack::PopAndDestroy(); + + QCOMPARE(numDestroyed, 1); + + // No other failure condition. The program will crash if it does not pass. +#endif +} + +void tst_QApplication::symbianLeaveThroughMain() +{ +#ifndef Q_OS_SYMBIAN + QSKIP("This is a Symbian-only test", SkipAll); +#else + int numDestroyed = 0; + TInt err; + TRAP(err, fakeMain(&numDestroyed)); + + QCOMPARE(numDestroyed, 2); +#endif +} + //QTEST_APPLESS_MAIN(tst_QApplication) int main(int argc, char *argv[]) { -- cgit v0.12 From 6f36d0aafaccbb9affe8ac1b82c225d985aa7491 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 26 Oct 2009 17:35:17 +0100 Subject: Doc: Added internal or hidden placeholder documentation. Reviewed-by: Trust Me To-be-completed-by: QtWebKit developers --- src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 31d193e..764bfad 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -2652,6 +2652,17 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos) as a result of the user clicking on a "file upload" button in a HTML form where multiple file selection is allowed. + \omitvalue ErrorPageExtension (introduced in Qt 4.6) +*/ + +/*! + \enum QWebPage::ErrorDomain + \since 4.6 + \internal + + \value QtNetwork + \value Http + \value WebKit */ /*! @@ -2702,6 +2713,12 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos) */ /*! + \fn QWebPage::ErrorPageExtensionReturn::ErrorPageExtensionReturn() + + Constructs a new error page object. +*/ + +/*! \class QWebPage::ChooseMultipleFilesExtensionOption \since 4.5 \brief The ChooseMultipleFilesExtensionOption class describes the option -- cgit v0.12 From 83aa359398a8a510ac732410c918d31eedeeb4f8 Mon Sep 17 00:00:00 2001 From: Iain Date: Fri, 23 Oct 2009 15:43:28 +0200 Subject: Revert "Re-apply change 8e0fbc2caa3edefb78d6667721235b783bc1a850 by Iain" This reverts commit f4abf627a8d097e095022d2709718a681b54bd7e. DEF file was unconditionally enabled for Webkit, ignoring setting in qtbase.pri, which was supposed to be the global place to enable/disable DEF file usage. Remove this workaround since we still haven't got DEF files switched on by default. (cherry picked from commit 3b7f570e6f296ef0a5c9c581ed06cb19986164a0) --- src/3rdparty/webkit/WebCore/WebCore.pro | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro index f321aad..a835fc7 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/WebCore/WebCore.pro @@ -87,19 +87,6 @@ win32-g++ { QMAKE_LIBDIR_POST += $$split(TMPPATH,";") } -# Temporary workaround to pick up the DEF file from the same place as all the others -symbian { - shared { - MMP_RULES -= defBlock - - MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \ - "DEFFILE ../../../s60installs/bwins/$${TARGET}.def" \ - "$${LITERAL_HASH}elif defined EABI" \ - "DEFFILE ../../../s60installs/eabi/$${TARGET}.def" \ - "$${LITERAL_HASH}endif" - } -} - # Assume that symbian OS always comes with sqlite symbian:!CONFIG(QTDIR_build): CONFIG += system-sqlite -- cgit v0.12 From b5efa250a6706821cf9969752a8fd063d1f206d6 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 26 Oct 2009 19:24:13 +0100 Subject: Autotest: fix building tst_qsqlquery. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'का' is not valid, since it encodes to more than 1 byte. Reviewed-by: Trust Me --- tests/auto/qsqlquery/tst_qsqlquery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index 8fe6f2e..a9b522f 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -396,7 +396,7 @@ void tst_QSqlQuery::char1SelectUnicode() QSKIP("Needs someone with more Unicode knowledge than I have to fix", SkipSingle); if ( db.driver()->hasFeature( QSqlDriver::Unicode ) ) { - QString uniStr( QChar( 'का' ) ); + QString uniStr( QChar(0x0915) ); // DEVANAGARI LETTER KA QSqlQuery q( db ); if ( db.driverName().startsWith( "QMYSQL" ) && tst_Databases::getMySqlVersion( db ).section( QChar('.'), 0, 0 ).toInt()<5 ) -- cgit v0.12 From 96f59cb98c248185a3873f06d0e1a2e7652d8cec Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Mon, 19 Oct 2009 07:30:52 -0300 Subject: QGAL: complex anchors can indicate errors when refreshing sizehint Now the refreshSizeHints() returns a boolean, and the parallel anchor will return false in unfeasible cases, e.g. one anchor has maximum size smaller than other minimum size. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 43 ++++++++++++++---------- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 10 +++--- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 8c8c303..a92a63e 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -141,7 +141,7 @@ static void internalSizeHints(QSizePolicy::Policy policy, *expSize = *prefSize; } -void AnchorData::refreshSizeHints(qreal effectiveSpacing) +bool AnchorData::refreshSizeHints(qreal effectiveSpacing) { const bool isInternalAnchor = from->m_item == to->m_item; @@ -164,7 +164,7 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) maxSize = QWIDGETSIZE_MAX; if (hasCenter) maxSize /= 2; - return; + return true; } else { QGraphicsLayoutItem *item = from->m_item; @@ -214,6 +214,8 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } void ParallelAnchorData::updateChildrenSizes() @@ -227,26 +229,29 @@ void ParallelAnchorData::updateChildrenSizes() secondEdge->updateChildrenSizes(); } -void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(effectiveSpacing); } -void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren) { - if (refreshChildren) { - firstEdge->refreshSizeHints(effectiveSpacing); - secondEdge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && (!firstEdge->refreshSizeHints(effectiveSpacing) + || !secondEdge->refreshSizeHints(effectiveSpacing))) { + return false; } - // ### should we warn if the parallel connection is invalid? - // e.g. 1-2-3 with 10-20-30, the minimum of the latter is - // bigger than the maximum of the former. - minSize = qMax(firstEdge->minSize, secondEdge->minSize); maxSize = qMin(firstEdge->maxSize, secondEdge->maxSize); + // This condition means that the maximum size of one anchor being simplified is smaller than + // the minimum size of the other anchor. The consequence is that there won't be a valid size + // for this parallel setup. + if (minSize > maxSize) { + return false; + } + expSize = qMax(firstEdge->expSize, secondEdge->expSize); expSize = qMin(expSize, maxSize); @@ -258,6 +263,8 @@ void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } /*! @@ -362,12 +369,12 @@ void SequentialAnchorData::updateChildrenSizes() } } -void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(effectiveSpacing); } -void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren) { minSize = 0; @@ -379,8 +386,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, AnchorData *edge = m_edges.at(i); // If it's the case refresh children information first - if (refreshChildren) - edge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && !edge->refreshSizeHints(effectiveSpacing)) + return false; minSize += edge->minSize; prefSize += edge->prefSize; @@ -393,6 +400,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } #ifdef QT_DEBUG diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index d45c004..d4eb2d4 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -159,7 +159,7 @@ struct AnchorData : public QSimplexVariable { type(Normal), hasSize(true), isLayoutAnchor(false) {} virtual void updateChildrenSizes() {} - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(qreal effectiveSpacing); virtual ~AnchorData() {} @@ -226,9 +226,9 @@ struct SequentialAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(qreal effectiveSpacing); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + bool refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); void setVertices(const QVector &vertices) { @@ -261,9 +261,9 @@ struct ParallelAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(qreal effectiveSpacing); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + bool refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); AnchorData* firstEdge; AnchorData* secondEdge; -- cgit v0.12 From 3b025f72636041f7bfe1bf02b34e3b156a78844f Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 16 Oct 2009 17:40:02 -0300 Subject: QGAL: separate parallel anchor creation from sequence creation Extract the creation of parallel anchors from the creation of sequential anchor. This will be useful to keep track whether a parallel anchor is feasible or not. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 90 ++++++++++++++++-------- 1 file changed, 61 insertions(+), 29 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index a92a63e..8b7ff08 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -519,18 +519,51 @@ inline static qreal checkAdd(qreal a, qreal b) } /*! - * \internal - * - * Takes the sequence of vertices described by (\a before, \a vertices, \a after) and replaces - * all anchors connected to the vertices in \a vertices with one simplified anchor between - * \a before and \a after. The simplified anchor will be a placeholder for all the previous - * anchors between \a before and \a after, and can be restored back to the anchors it is a - * placeholder for. - */ -static bool simplifySequentialChunk(Graph *graph, - AnchorVertex *before, - const QVector &vertices, - AnchorVertex *after) + \internal + + Adds \a newAnchor to the graph \a g. + + Returns the newAnchor itself if it could be added without further changes to the graph. If a + new parallel anchor had to be created, then returns the new parallel anchor. In case the + addition is unfeasible -- because a parallel setup is not possible, returns 0. +*/ +static AnchorData *addAnchorMaybeParallel(Graph *g, + AnchorData *newAnchor) +{ + bool feasible = true; + + // If already exists one anchor where newAnchor is supposed to be, we create a parallel + // anchor. + if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) { + ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor); + parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor + || newAnchor->isLayoutAnchor); + + // At this point we can identify that the parallel anchor is not feasible, e.g. one + // anchor minimum size is bigger than the other anchor maximum size. + feasible = parallel->refreshSizeHints_helper(0, false); + newAnchor = parallel; + } + + g->createEdge(newAnchor->from, newAnchor->to, newAnchor); + return feasible ? newAnchor : 0; +} + + +/*! + \internal + + Takes the sequence of vertices described by (\a before, \a vertices, \a after) and removes + all anchors connected to the vertices in \a vertices, returning one simplified anchor between + \a before and \a after. + + Note that this function doesn't add the created anchor to the graph. This should be done by + the caller. +*/ +static AnchorData *createSequence(Graph *graph, + AnchorVertex *before, + const QVector &vertices, + AnchorVertex *after) { AnchorData *data = graph->edgeData(before, vertices.first()); Q_ASSERT(data); @@ -578,18 +611,7 @@ static bool simplifySequentialChunk(Graph *graph, sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor || sequence->m_edges.last()->isLayoutAnchor); - AnchorData *newAnchor = sequence; - if (AnchorData *oldAnchor = graph->takeEdge(before, after)) { - ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, sequence); - parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor - || sequence->isLayoutAnchor); - parallel->refreshSizeHints_helper(0, false); - newAnchor = parallel; - } - graph->createEdge(before, after, newAnchor); - - // True if we created a parallel anchor - return newAnchor != sequence; + return sequence; } /*! @@ -803,11 +825,21 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - // This function will remove the candidates from the graph and create one edge between - // beforeSequence and afterSequence. This function returns true if the sequential - // simplification also caused a parallel simplification to be created. In this case we end - // the iteration and start again (since all the visited state we have may be outdated). - if (simplifySequentialChunk(&g, beforeSequence, candidates, afterSequence)) + // + // Add the sequence to the graph. + // + + AnchorData *sequence = createSequence(&g, beforeSequence, candidates, afterSequence); + + // If 'beforeSequence' and 'afterSequence' already had an anchor between them, we'll + // create a parallel anchor between the new sequence and the old anchor. + AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence); + + // When a new parallel anchor is create in the graph, we finish the iteration and return + // true to indicate a new iteration is needed. This happens because a parallel anchor + // changes the number of adjacents one vertex has, possibly opening up oportunities for + // building candidate lists (when adjacents == 2). + if (newAnchor != sequence) return true; // If there was no parallel simplification, we'll keep walking the graph. So we clear the -- cgit v0.12 From f9dfd711d104bb438da6ea281012600a897ab30c Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Mon, 19 Oct 2009 11:10:31 -0300 Subject: QGAL: identify unfeasible setups even when graph is simplified The calculate graphs now can return early due to unfeasible anchor setups found out during simplification. This allows finding out problems in parallel anchors, when one anchor has maximum size smaller than the minimum size of the other anchor. The order for simplification and refreshing size hints also has been swaped: - First, refresh size hints for all anchors in the graph. If the graph is simplified, the refreshSizeHints() call will reach the children anchors. - Then, if the simplificated graph is invalid, rebuild it. During this rebuild, refreshSizeHints_helper() will be called for all levels. So in both situations we can identify an unfeasible setup. Note that this test alone is not enough to classify the graph as feasible, depending on the graph, it will still need to go through the Simplex. A test case was added and the function that traverse the graph refreshing now is called refreshAllSizeHints(). The old name was not so clear since the function will not fill only the anchors that have items associated. Last but not least, the lastCalculationUsedSimplex variable is cleared when starting calculateGraphs(), since we now can leave the function earlier, without reaching calculateTrunk(), which is the function that sets it. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 99 +++++++++++++++------- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 6 +- .../tst_qgraphicsanchorlayout.cpp | 51 +++++++++++ 3 files changed, 122 insertions(+), 34 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 8b7ff08..8d13b2b 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -648,15 +648,17 @@ static AnchorData *createSequence(Graph *graph, 2. Go to (1) 3. Done + When creating the parallel anchors, the algorithm might identify unfeasible situations. In this + case the simplification process stops and returns false. Otherwise returns true. */ -void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) { static bool noSimplification = !qgetenv("QT_ANCHORLAYOUT_NO_SIMPLIFICATION").isEmpty(); if (noSimplification || items.isEmpty()) - return; + return true; if (graphSimplified[orientation]) - return; + return true; graphSimplified[orientation] = true; #if 0 @@ -665,12 +667,18 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) #endif if (!graph[orientation].rootVertex()) - return; + return true; bool dirty; + bool feasible = true; do { - dirty = simplifyGraphIteration(orientation); - } while (dirty); + dirty = simplifyGraphIteration(orientation, &feasible); + } while (dirty && feasible); + + if (!feasible) + graphSimplified[orientation] = false; + + return feasible; } /*! @@ -687,7 +695,8 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) Note that there are some catches to this that are not covered by the above explanation, see the function comments for more details. */ -bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation, + bool *feasible) { Q_Q(QGraphicsAnchorLayout); Graph &g = graph[orientation]; @@ -835,6 +844,11 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP // create a parallel anchor between the new sequence and the old anchor. AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence); + if (!newAnchor) { + *feasible = false; + return false; + } + // When a new parallel anchor is create in the graph, we finish the iteration and return // true to indicate a new iteration is needed. This happens because a parallel anchor // changes the number of adjacents one vertex has, possibly opening up oportunities for @@ -1679,38 +1693,52 @@ QList getVariables(QList constraints) } /*! - \internal + \internal - Calculate graphs is the method that puts together all the helper routines - so that the AnchorLayout can calculate the sizes of each item. + Calculate graphs is the method that puts together all the helper routines + so that the AnchorLayout can calculate the sizes of each item. - In a nutshell it should do: + In a nutshell it should do: - 1) Update anchor nominal sizes, that is, the size that each anchor would - have if no other restrictions applied. This is done by quering the - layout style and the sizeHints of the items belonging to the layout. + 1) Refresh anchor nominal sizes, that is, the size that each anchor would + have if no other restrictions applied. This is done by quering the + layout style and the sizeHints of the items belonging to the layout. - 2) Simplify the graph by grouping together parallel and sequential anchors - into "group anchors". These have equivalent minimum, preferred and maximum - sizeHints as the anchors they replace. + 2) Simplify the graph by grouping together parallel and sequential anchors + into "group anchors". These have equivalent minimum, preferred and maximum + sizeHints as the anchors they replace. - 3) Check if we got to a trivial case. In some cases, the whole graph can be - simplified into a single anchor. If so, use this information. If not, - then call the Simplex solver to calculate the anchors sizes. + 3) Check if we got to a trivial case. In some cases, the whole graph can be + simplified into a single anchor. If so, use this information. If not, + then call the Simplex solver to calculate the anchors sizes. - 4) Once the root anchors had its sizes calculated, propagate that to the - anchors they represent. + 4) Once the root anchors had its sizes calculated, propagate that to the + anchors they represent. */ void QGraphicsAnchorLayoutPrivate::calculateGraphs( QGraphicsAnchorLayoutPrivate::Orientation orientation) { Q_Q(QGraphicsAnchorLayout); - // Simplify the graph - simplifyGraph(orientation); +#if defined(QT_DEBUG) || defined(Q_AUTOTEST_EXPORT) + lastCalculationUsedSimplex[orientation] = false; +#endif + + // Reset the nominal sizes of each anchor based on the current item sizes. This function + // works with both simplified and non-simplified graphs, so it'll work when the + // simplification is going to be reused. + if (!refreshAllSizeHints(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } - // Reset the nominal sizes of each anchor based on the current item sizes - setAnchorSizeHintsFromItems(orientation); + // Simplify the graph + if (!simplifyGraph(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } // Traverse all graph edges and store the possible paths to each vertex findPaths(orientation); @@ -1878,12 +1906,16 @@ bool QGraphicsAnchorLayoutPrivate::calculateNonTrunk(const QList &g = graph[orientation]; QList > vertices = g.connections(); @@ -1893,8 +1925,13 @@ void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orien for (int i = 0; i < vertices.count(); ++i) { AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);; Q_ASSERT(data->from && data->to); - data->refreshSizeHints(spacing); + + // During the traversal we check the feasibility of the complex anchors. + if (!data->refreshSizeHints(spacing)) + return false; } + + return true; } /*! diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index d4eb2d4..a3de6f6 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -428,8 +428,8 @@ public: qreal effectiveSpacing(Orientation orientation) const; // Activation methods - void simplifyGraph(Orientation orientation); - bool simplifyGraphIteration(Orientation orientation); + bool simplifyGraph(Orientation orientation); + bool simplifyGraphIteration(Orientation orientation, bool *feasible); void restoreSimplifiedGraph(Orientation orientation); void calculateGraphs(); @@ -441,7 +441,7 @@ public: bool calculateNonTrunk(const QList &constraints, const QList &variables); - void setAnchorSizeHintsFromItems(Orientation orientation); + bool refreshAllSizeHints(Orientation orientation); void findPaths(Orientation orientation); void constraintsFromPaths(Orientation orientation); void updateAnchorSizes(Orientation orientation); diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 7b87969..facc1ef 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -82,6 +82,7 @@ private slots: void expandingParallel(); void floatConflict(); void infiniteMaxSizes(); + void simplifiableUnfeasible(); }; class RectWidget : public QGraphicsWidget @@ -1755,5 +1756,55 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes() QCOMPARE(d->geometry(), QRectF(QWIDGETSIZE_MAX - 50, 0, 50, 10)); } +void tst_QGraphicsAnchorLayout::simplifiableUnfeasible() +{ + QGraphicsWidget *a = createItem(QSizeF(70.0, 100.0), + QSizeF(100.0, 100.0), + QSizeF(100.0, 100.0), "A"); + + QGraphicsWidget *b = createItem(QSizeF(110.0, 100.0), + QSizeF(150.0, 100.0), + QSizeF(190.0, 100.0), "B"); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + l->setContentsMargins(0, 0, 0, 0); + l->setSpacing(0); + + l->addAnchor(l, Qt::AnchorTop, a, Qt::AnchorTop); + l->addAnchor(a, Qt::AnchorBottom, b, Qt::AnchorTop); + l->addAnchor(b, Qt::AnchorBottom, l, Qt::AnchorBottom); + + l->addAnchors(l, a, Qt::Horizontal); + l->addAnchor(l, Qt::AnchorLeft, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight); + + QCOMPARE(l->count(), 2); + + QGraphicsWidget p; + p.setLayout(l); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // Now we make it valid again + b->setMinimumWidth(100); + + l->invalidate(); + QVERIFY(!layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // And make it invalid again + a->setPreferredWidth(70); + a->setMaximumWidth(70); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); +} + QTEST_MAIN(tst_QGraphicsAnchorLayout) #include "tst_qgraphicsanchorlayout.moc" -- cgit v0.12 From bee00ac4ca0865e621edaea54d079005c68f120e Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 16 Oct 2009 12:26:21 -0300 Subject: QGAL: store item and center-ness information in the anchor We used to look for this information in the anchor's from and to vertices, but to enable simplification of vertices, we have to store this information in the anchor. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 24 ++++++++++++------------ src/gui/graphicsview/qgraphicsanchorlayout_p.h | 9 +++++++-- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 8d13b2b..aa510f1 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -143,31 +143,25 @@ static void internalSizeHints(QSizePolicy::Policy policy, bool AnchorData::refreshSizeHints(qreal effectiveSpacing) { - const bool isInternalAnchor = from->m_item == to->m_item; - QSizePolicy::Policy policy; qreal minSizeHint; qreal prefSizeHint; qreal maxSizeHint; - if (isInternalAnchor) { + // It is an internal anchor + if (item) { const QGraphicsAnchorLayoutPrivate::Orientation orient = QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge); - const Qt::AnchorPoint centerEdge = - QGraphicsAnchorLayoutPrivate::pickEdge(Qt::AnchorHorizontalCenter, orient); - bool hasCenter = (from->m_edge == centerEdge || to->m_edge == centerEdge); if (isLayoutAnchor) { minSize = 0; prefSize = 0; expSize = 0; maxSize = QWIDGETSIZE_MAX; - if (hasCenter) + if (isCenterAnchor) maxSize /= 2; return true; } else { - - QGraphicsLayoutItem *item = from->m_item; if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) { policy = item->sizePolicy().horizontalPolicy(); minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width(); @@ -180,7 +174,7 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing) maxSizeHint = item->effectiveSizeHint(Qt::MaximumSize).height(); } - if (hasCenter) { + if (isCenterAnchor) { minSizeHint /= 2; prefSizeHint /= 2; maxSizeHint /= 2; @@ -1063,11 +1057,13 @@ void QGraphicsAnchorLayoutPrivate::createCenterAnchors( AnchorData *data = new AnchorData; c->variables.insert(data, 1.0); addAnchor_helper(item, firstEdge, item, centerEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); data = new AnchorData; c->variables.insert(data, -1.0); addAnchor_helper(item, centerEdge, item, lastEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); itemCenterConstraints[orientation].append(c); @@ -1304,6 +1300,10 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt removeAnchor_helper(v1, v2); } + // If its an internal anchor, set the associated item + if (firstItem == secondItem) + data->item = firstItem; + // Create a bi-directional edge in the sense it can be transversed both // from v1 or v2. "data" however is shared between the two references // so we still know that the anchor direction is from 1 to 2. @@ -2188,8 +2188,8 @@ void QGraphicsAnchorLayoutPrivate::identifyNonFloatItems_helper(const AnchorData switch(ad->type) { case AnchorData::Normal: - if (ad->from->m_item == ad->to->m_item && ad->to->m_item != q) - nonFloatingItemsIdentifiedSoFar->insert(ad->to->m_item); + if (ad->item && ad->item != q) + nonFloatingItemsIdentifiedSoFar->insert(ad->item); break; case AnchorData::Sequential: foreach (const AnchorData *d, static_cast(ad)->m_edges) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index a3de6f6..511e1ec 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -151,12 +151,13 @@ struct AnchorData : public QSimplexVariable { }; AnchorData() - : QSimplexVariable(), from(0), to(0), + : QSimplexVariable(), item(0), from(0), to(0), minSize(0), prefSize(0), expSize(0), maxSize(0), sizeAtMinimum(0), sizeAtPreferred(0), sizeAtExpanding(0), sizeAtMaximum(0), graphicsAnchor(0), skipInPreferred(0), - type(Normal), hasSize(true), isLayoutAnchor(false) {} + type(Normal), hasSize(true), isLayoutAnchor(false), + isCenterAnchor(false) {} virtual void updateChildrenSizes() {} virtual bool refreshSizeHints(qreal effectiveSpacing); @@ -180,6 +181,9 @@ struct AnchorData : public QSimplexVariable { hasSize = false; } + // Internal anchors have associated items + QGraphicsLayoutItem *item; + // Anchor is semantically directed AnchorVertex *from; AnchorVertex *to; @@ -206,6 +210,7 @@ struct AnchorData : public QSimplexVariable { uint type : 2; // either Normal, Sequential or Parallel uint hasSize : 1; // if false, get size from style. uint isLayoutAnchor : 1; // if this anchor is connected to a layout 'edge' + uint isCenterAnchor : 1; }; #ifdef QT_DEBUG -- cgit v0.12 From d4c1a4675bdff63912b31243e5292766ff5215a5 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 16 Oct 2009 12:43:25 -0300 Subject: QGAL: simplification doesn't depend on vertex anchor point information Look for information inside the anchor instead of on the vertices. This will give us flexibility of simplifying vertices before the anchor simplification phase. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index aa510f1..b0b1408 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -701,8 +701,6 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP QVector candidates; bool candidatesForward; - const Qt::AnchorPoint centerEdge = pickEdge(Qt::AnchorHorizontalCenter, orientation); - // Walk depth-first, in the stack we store start of the candidate sequence (beforeSequence) // and the vertex to be visited. while (!stack.isEmpty()) { @@ -811,7 +809,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP // One restriction we have is to not simplify half of an anchor and let the other half // unsimplified. So we remove center edges before and after the sequence. - if (beforeSequence->m_edge == centerEdge && beforeSequence->m_item == candidates.first()->m_item) { + const AnchorData *firstAnchor = g.edgeData(beforeSequence, candidates.first()); + if (firstAnchor->isCenterAnchor) { beforeSequence = candidates.first(); candidates.remove(0); @@ -820,7 +819,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - if (afterSequence->m_edge == centerEdge && afterSequence->m_item == candidates.last()->m_item) { + const AnchorData *lastAnchor = g.edgeData(candidates.last(), afterSequence); + if (lastAnchor->isCenterAnchor) { afterSequence = candidates.last(); candidates.remove(candidates.count() - 1); -- cgit v0.12 From 73d89d68d5d710e86e6aa74b2924ee4aca11881e Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 16 Oct 2009 13:10:13 -0300 Subject: QGAL: add orientation bit to the anchor Use a free bit in the anchor struct to save the orientation information. That way we do not depend on looking for this information in the vertices (by looking the orientation of its edge). Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 17 +++++++++-------- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 3 ++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index b0b1408..41e067c 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -150,9 +150,6 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing) // It is an internal anchor if (item) { - const QGraphicsAnchorLayoutPrivate::Orientation orient = - QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge); - if (isLayoutAnchor) { minSize = 0; prefSize = 0; @@ -162,7 +159,7 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing) maxSize /= 2; return true; } else { - if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) { + if (orientation == QGraphicsAnchorLayoutPrivate::Horizontal) { policy = item->sizePolicy().horizontalPolicy(); minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width(); prefSizeHint = item->effectiveSizeHint(Qt::PreferredSize).width(); @@ -1285,9 +1282,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt { Q_Q(QGraphicsAnchorLayout); + const Orientation orientation = edgeOrientation(firstEdge); + // Guarantee that the graph is no simplified when adding this anchor, // anchor manipulation always happen in the full graph - restoreSimplifiedGraph(edgeOrientation(firstEdge)); + restoreSimplifiedGraph(orientation); // Is the Vertex (firstItem, firstEdge) already represented in our // internal structure? @@ -1296,7 +1295,7 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt // Remove previous anchor // ### Could we update the existing edgeData rather than creating a new one? - if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) { + if (graph[orientation].edgeData(v1, v2)) { removeAnchor_helper(v1, v2); } @@ -1304,6 +1303,8 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt if (firstItem == secondItem) data->item = firstItem; + data->orientation = orientation; + // Create a bi-directional edge in the sense it can be transversed both // from v1 or v2. "data" however is shared between the two references // so we still know that the anchor direction is from 1 to 2. @@ -1315,7 +1316,7 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt // Keep track of anchors that are connected to the layout 'edges' data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q); - graph[edgeOrientation(firstEdge)].createEdge(v1, v2, data); + graph[orientation].createEdge(v1, v2, data); } QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::getAnchor(QGraphicsLayoutItem *firstItem, @@ -1480,7 +1481,7 @@ void QGraphicsAnchorLayoutPrivate::anchorSize(const AnchorData *data, Q_ASSERT(minSize || prefSize || maxSize); Q_ASSERT(data); QGraphicsAnchorLayoutPrivate *that = const_cast(this); - that->restoreSimplifiedGraph(edgeOrientation(data->from->m_edge)); + that->restoreSimplifiedGraph(Orientation(data->orientation)); if (minSize) *minSize = data->minSize; diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index 511e1ec..8525eb3 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -157,7 +157,7 @@ struct AnchorData : public QSimplexVariable { sizeAtExpanding(0), sizeAtMaximum(0), graphicsAnchor(0), skipInPreferred(0), type(Normal), hasSize(true), isLayoutAnchor(false), - isCenterAnchor(false) {} + isCenterAnchor(false), orientation(0) {} virtual void updateChildrenSizes() {} virtual bool refreshSizeHints(qreal effectiveSpacing); @@ -211,6 +211,7 @@ struct AnchorData : public QSimplexVariable { uint hasSize : 1; // if false, get size from style. uint isLayoutAnchor : 1; // if this anchor is connected to a layout 'edge' uint isCenterAnchor : 1; + uint orientation : 1; }; #ifdef QT_DEBUG -- cgit v0.12 From a79539b1364fa8c155c5fbd00a977ae40b24acbe Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Mon, 19 Oct 2009 16:17:35 -0300 Subject: QGAL: clarify the usage of isLayoutAnchor bit The 'isLayoutAnchor' is necessary only as a way to flag Layout internal anchors, i.e. anchors with the Layout as 'item' in the AnchorData structure. We don't need to propagate this bit when composing anchors. Signed-off-by: Caio Marcelo de Oliveira Filho Reviewed-by: Eduardo M. Fleury --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 13 +++---------- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 41e067c..7dbfba9 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -527,8 +527,6 @@ static AnchorData *addAnchorMaybeParallel(Graph *g, // anchor. if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) { ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor); - parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor - || newAnchor->isLayoutAnchor); // At this point we can identify that the parallel anchor is not feasible, e.g. one // anchor minimum size is bigger than the other anchor maximum size. @@ -596,12 +594,6 @@ static AnchorData *createSequence(Graph *graph, sequence->refreshSizeHints_helper(0, false); - // Note that since layout 'edges' can't be simplified away from - // the graph, it's safe to assume that if there's a layout - // 'edge', it'll be in the boundaries of the sequence. - sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor - || sequence->m_edges.last()->isLayoutAnchor); - return sequence; } @@ -1313,8 +1305,9 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt #ifdef QT_DEBUG data->name = QString::fromAscii("%1 --to--> %2").arg(v1->toString()).arg(v2->toString()); #endif - // Keep track of anchors that are connected to the layout 'edges' - data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q); + // ### bit to track internal anchors, since inside AnchorData methods + // we don't have access to the 'q' pointer. + data->isLayoutAnchor = (data->item == q); graph[orientation].createEdge(v1, v2, data); } diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index 8525eb3..8eb65c5 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -209,7 +209,7 @@ struct AnchorData : public QSimplexVariable { uint skipInPreferred : 1; uint type : 2; // either Normal, Sequential or Parallel uint hasSize : 1; // if false, get size from style. - uint isLayoutAnchor : 1; // if this anchor is connected to a layout 'edge' + uint isLayoutAnchor : 1; // if this anchor is an internal layout anchor uint isCenterAnchor : 1; uint orientation : 1; }; -- cgit v0.12 From dc89e929d0f60e996c132e9484357e0b42f99436 Mon Sep 17 00:00:00 2001 From: "Eduardo M. Fleury" Date: Fri, 16 Oct 2009 16:09:28 -0300 Subject: QGAL: Use constraints of type "equal" for fixed items We usually create two restrictions for each item, one to tell its size should be more than its minimum size and other enforcing it to be at most its maximum size. Now, for items that have fixed size, ie. minSize == maxSize, we create a single constraint telling its size should be equal its min/maxSize. The immediate advantage is to have one less constraint for each of these items. The indirect advantage is that the simplex solver can take advantage of such information. Signed-off-by: Eduardo M. Fleury Reviewed-by: Caio Marcelo de Oliveira Filho --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 34 +++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 7dbfba9..a83e619 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -2032,17 +2032,27 @@ QList QGraphicsAnchorLayoutPrivate::constraintsFromSizeHin { QList anchorConstraints; for (int i = 0; i < anchors.size(); ++i) { - QSimplexConstraint *c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->minSize; - c->ratio = QSimplexConstraint::MoreOrEqual; - anchorConstraints += c; - - c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->maxSize; - c->ratio = QSimplexConstraint::LessOrEqual; - anchorConstraints += c; + AnchorData *ad = anchors[i]; + + if ((ad->minSize == ad->maxSize) || qFuzzyCompare(ad->minSize, ad->maxSize)) { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::Equal; + anchorConstraints += c; + } else { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::MoreOrEqual; + anchorConstraints += c; + + c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->maxSize; + c->ratio = QSimplexConstraint::LessOrEqual; + anchorConstraints += c; + } } return anchorConstraints; @@ -2608,7 +2618,7 @@ void QGraphicsAnchorLayoutPrivate::solveExpanding(const QListsizeAtMaximum) { + if (boundedExpSize == ad->sizeAtMaximum || qFuzzyCompare(boundedExpSize, ad->sizeAtMaximum)) { // The interval has only one possible value, we can use an "Equal" // constraint and don't need to add this variable to the objective. QSimplexConstraint *itemC = new QSimplexConstraint; -- cgit v0.12 From 3f29c77a26d0a898ca3a7c9c6715da90f1ecc50a Mon Sep 17 00:00:00 2001 From: "Eduardo M. Fleury" Date: Fri, 16 Oct 2009 16:10:29 -0300 Subject: QGAL: Add QSimplexConstraint::toString() method for debugging Signed-off-by: Eduardo M. Fleury Reviewed-by: Caio Marcelo de Oliveira Filho --- src/gui/graphicsview/qsimplex_p.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 51991a9..423f9bc 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -118,6 +118,29 @@ struct QSimplexConstraint return false; } } + + QString toString() { + QString result; + result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16); + + QHash::const_iterator iter; + for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) { + result += QString::fromAscii(" %1 x %2").arg(iter.value()).arg(int(iter.key()), 0, 16); + } + + switch (ratio) { + case LessOrEqual: + result += QString::fromAscii(" (less) <= %1").arg(constant); + break; + case MoreOrEqual: + result += QString::fromAscii(" (more) >= %1").arg(constant); + break; + default: + result += QString::fromAscii(" (eqal) == %1").arg(constant); + } + + return result; + } #endif }; -- cgit v0.12 From fa767bf7b104a4e44e4e283522f0dfd942094375 Mon Sep 17 00:00:00 2001 From: "Eduardo M. Fleury" Date: Tue, 20 Oct 2009 18:54:43 -0300 Subject: QGAL (QSimplex): Make deep copy of constraints inside QSimplex The idea is to allow QSimplex solver to modify the constraints without breaking other parts of the code that rely on the original ones. Signed-off-by: Eduardo M. Fleury Reviewed-by: Caio Marcelo de Oliveira Filho --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 2 +- src/gui/graphicsview/qsimplex_p.cpp | 15 +++++++++++---- src/gui/graphicsview/qsimplex_p.h | 8 +------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index a83e619..b4666c6 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -2459,7 +2459,7 @@ bool QGraphicsAnchorLayoutPrivate::solveMinMax(const QList *min = simplex.solveMin(); // Save sizeAtMinimum results - QList variables = simplex.constraintsVariables(); + QList variables = getVariables(constraints); for (int i = 0; i < variables.size(); ++i) { AnchorData *ad = static_cast(variables[i]); Q_ASSERT(ad->result >= ad->minSize || qFuzzyCompare(ad->result, ad->minSize)); diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp index b8f8fb4..b3997fa 100644 --- a/src/gui/graphicsview/qsimplex_p.cpp +++ b/src/gui/graphicsview/qsimplex_p.cpp @@ -108,10 +108,8 @@ void QSimplex::clearDataStructures() // Constraints for (int i = 0; i < constraints.size(); ++i) { delete constraints[i]->helper.first; - constraints[i]->helper.first = 0; - constraints[i]->helper.second = 0.0; delete constraints[i]->artificial; - constraints[i]->artificial = 0; + delete constraints[i]; } constraints.clear(); @@ -137,7 +135,16 @@ bool QSimplex::setConstraints(const QList newConstraints) if (newConstraints.isEmpty()) return true; // we are ok with no constraints - constraints = newConstraints; + + // Make deep copy of constraints. We need this copy because we may change + // them in the simplification method. + for (int i = 0; i < newConstraints.size(); ++i) { + QSimplexConstraint *c = new QSimplexConstraint; + c->constant = newConstraints[i]->constant; + c->ratio = newConstraints[i]->ratio; + c->variables = newConstraints[i]->variables; + constraints << c; + } /////////////////////////////////////// // Prepare variables and constraints // diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 423f9bc..5ec13c3 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -106,7 +106,7 @@ struct QSimplexConstraint Q_ASSERT(constant > 0 || qFuzzyCompare(1, 1 + constant)); - if (qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) + if ((leftHandSide == constant) || qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) return true; switch (ratio) { @@ -152,7 +152,6 @@ public: qreal solveMin(); qreal solveMax(); - QList constraintsVariables(); bool setConstraints(const QList constraints); void setObjective(QSimplexConstraint *objective); @@ -191,11 +190,6 @@ private: qreal *matrix; }; -inline QList QSimplex::constraintsVariables() -{ - return variables; -} - inline qreal QSimplex::valueAt(int rowIndex, int columnIndex) { return matrix[rowIndex * columns + columnIndex]; -- cgit v0.12 From b14a16ce149fe9bc0e4ab66d946eb90416bd4a88 Mon Sep 17 00:00:00 2001 From: "Eduardo M. Fleury" Date: Fri, 16 Oct 2009 16:10:52 -0300 Subject: QGAL (QSimplex): Add constraints simplification Now the simplex solver is able to remove fixed variables from its constraints as to improve its running time. The simplification consists of two actions that are done iteratively until no possible changes exist: 1st) Look for constraints of type Var == Constant Save constant as the trivial value of Var 2nd) Substitute known results in existing constraints Signed-off-by: Eduardo M. Fleury Reviewed-by: Caio Marcelo de Oliveira Filho --- src/gui/graphicsview/qsimplex_p.cpp | 96 ++++++++++++++++++++++++++++++++++++- src/gui/graphicsview/qsimplex_p.h | 7 ++- 2 files changed, 99 insertions(+), 4 deletions(-) diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp index b3997fa..86b10b4 100644 --- a/src/gui/graphicsview/qsimplex_p.cpp +++ b/src/gui/graphicsview/qsimplex_p.cpp @@ -146,6 +146,13 @@ bool QSimplex::setConstraints(const QList newConstraints) constraints << c; } + // Remove constraints of type Var == K and replace them for their value. + if (!simplifyConstraints(&constraints)) { + qWarning() << "QSimplex: No feasible solution!"; + clearDataStructures(); + return false; + } + /////////////////////////////////////// // Prepare variables and constraints // /////////////////////////////////////// @@ -515,11 +522,21 @@ qreal QSimplex::solver(solverFactor factor) // Remove old objective clearRow(0); - // Set new objective + // Set new objective in the first row of the simplex matrix + qreal resultOffset = 0; QHash::const_iterator iter; for (iter = objective->variables.constBegin(); iter != objective->variables.constEnd(); ++iter) { + + // Check if the variable was removed in the simplification process. + // If so, we save its offset to the objective function and skip adding + // it to the matrix. + if (iter.key()->index == -1) { + resultOffset += iter.value() * iter.key()->result; + continue; + } + setValueAt(0, iter.key()->index, -1 * factor * iter.value()); } @@ -532,7 +549,9 @@ qreal QSimplex::solver(solverFactor factor) } #endif - return factor * valueAt(0, columns - 1); + // Return the value calculated by the simplex plus the value of the + // fixed variables. + return (factor * valueAt(0, columns - 1)) + resultOffset; } /*! @@ -578,4 +597,77 @@ void QSimplex::collectResults() } } +/*! + \internal + + Looks for single-valued variables and remove them from the constraints list. +*/ +bool QSimplex::simplifyConstraints(QList *constraints) +{ + QHash results; // List of single-valued variables + bool modified = true; // Any chance more optimization exists? + + while (modified) { + modified = false; + + // For all constraints + QList::iterator iter = constraints->begin(); + while (iter != constraints->end()) { + QSimplexConstraint *c = *iter; + if ((c->ratio == QSimplexConstraint::Equal) && (c->variables.count() == 1)) { + // Check whether this is a constraint of type Var == K + // If so, save its value to "results". + QSimplexVariable *variable = c->variables.constBegin().key(); + qreal result = c->constant / c->variables.value(variable); + + results.insert(variable, result); + variable->result = result; + variable->index = -1; + modified = true; + + } + + // Replace known values among their variables + QHash::const_iterator r; + for (r = results.constBegin(); r != results.constEnd(); ++r) { + if (c->variables.contains(r.key())) { + c->constant -= r.value() * c->variables.take(r.key()); + modified = true; + } + } + + // Keep it normalized + if (c->constant < 0) + c->invert(); + + if (c->variables.isEmpty()) { + // If constraint became empty due to substitution, delete it. + if (c->isSatisfied() == false) + // We must ensure that the constraint soon to be deleted would not + // make the problem unfeasible if left behind. If that's the case, + // we return false so the simplex solver can properly report that. + return false; + + delete c; + iter = constraints->erase(iter); + } else { + ++iter; + } + } + } + + return true; +} + +void QSimplexConstraint::invert() +{ + constant = -constant; + ratio = Ratio(2 - ratio); + + QHash::iterator iter; + for (iter = variables.begin(); iter != variables.end(); ++iter) { + iter.value() = -iter.value(); + } +} + QT_END_NAMESPACE diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 5ec13c3..66ea739 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -63,7 +63,7 @@ struct QSimplexVariable QSimplexVariable() : result(0), index(0) {} qreal result; - uint index; + int index; }; @@ -95,7 +95,8 @@ struct QSimplexConstraint QPair helper; QSimplexVariable * artificial; -#ifdef QT_DEBUG + void invert(); + bool isSatisfied() { qreal leftHandSide(0); @@ -119,6 +120,7 @@ struct QSimplexConstraint } } +#ifdef QT_DEBUG QString toString() { QString result; result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16); @@ -167,6 +169,7 @@ private: void combineRows(int toIndex, int fromIndex, qreal factor); // Simplex + bool simplifyConstraints(QList *constraints); int findPivotColumn(); int pivotRowForColumn(int column); void reducedRowEchelon(); -- cgit v0.12 From 1607216cc6292ef9a4af68ce6d29dc79fffea92c Mon Sep 17 00:00:00 2001 From: "Eduardo M. Fleury" Date: Mon, 26 Oct 2009 16:55:20 -0300 Subject: QGAL: Add test for David Boddie bug The current simplification code does not handle sequences with anchors pointed to different directions could not be simplified together into a sequential anchor. A (10 / 20 / 50 ) B (20 / 20 / 20) Ex: o-----------------> <----------------o The reason we don't support it yet is shown in the example above. The resulting anchor would be either: Result_1 (-10 / 0 / 30) o------------------------------------> (or) Result_2 (-30 / 0 / 10) <------------------------------------o But the current implementation assumes no anchors can have negative sizes. Hopefully, the next commits will add support for it and then enable such simplification. :-) Signed-off-by: Eduardo M. Fleury --- .../tst_qgraphicsanchorlayout.cpp | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index facc1ef..5348e59 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -83,6 +83,7 @@ private slots: void floatConflict(); void infiniteMaxSizes(); void simplifiableUnfeasible(); + void simplificationVsOrder(); }; class RectWidget : public QGraphicsWidget @@ -1806,5 +1807,50 @@ void tst_QGraphicsAnchorLayout::simplifiableUnfeasible() QVERIFY(!usedSimplex(l, Qt::Horizontal)); } +/* + Test whether the anchor direction can prevent it from + being simplificated +*/ +void tst_QGraphicsAnchorLayout::simplificationVsOrder() +{ + QSizeF min(10, 10); + QSizeF pref(20, 10); + QSizeF max(50, 10); + + QGraphicsWidget *a = createItem(min, pref, max); + QGraphicsWidget *b = createItem(min, pref, max); + QGraphicsWidget *c = createItem(min, pref, max); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + // Bulk anchors + l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft); + l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorLeft, c, Qt::AnchorLeft); + l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight); + + // Problematic anchor, direction b->c + QGraphicsAnchor *anchor = l->addAnchor(b, Qt::AnchorRight, c, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } + + // Problematic anchor, direction c->b + delete anchor; + anchor = l->addAnchor(c, Qt::AnchorRight, b, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QEXPECT_FAIL("", "Sequential anchors cannot handle children of opposite directions", Continue); + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } +} + QTEST_MAIN(tst_QGraphicsAnchorLayout) #include "tst_qgraphicsanchorlayout.moc" -- cgit v0.12 From 21e2cde622078333cedb650d62cb17b2f91d02c7 Mon Sep 17 00:00:00 2001 From: Peter Yard Date: Tue, 27 Oct 2009 12:49:43 +1000 Subject: Add documentation on RPATH defines. --- doc/src/development/qmake-manual.qdoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc index d040d3d..6c53242 100644 --- a/doc/src/development/qmake-manual.qdoc +++ b/doc/src/development/qmake-manual.qdoc @@ -2341,6 +2341,11 @@ For example: of this variable is typically handled by \c qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + \section1 QMAKE_LFLAGS_RPATH + + Library paths in this definition are added to the executable at link + time so that the added paths will be preferentially searched at runtime. + \section1 QMAKE_LFLAGS_QT_DLL This variable contains link flags when building programs that @@ -2667,6 +2672,16 @@ For example: \snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 45 + \section1 QMAKE_RPATH + + Is equivalent to \l QMAKE_LFLAGS_RPATH. + + \section1 QMAKE_RPATHDIR + + A list of library directory paths, these paths are added to the + executable at link time so that the paths will be preferentially + searched at runtime. + \section1 QMAKE_RUN_CC This variable specifies the individual rule needed to build an object. -- cgit v0.12 From 55ee937db840b69d100905b08d8f645fe79f9571 Mon Sep 17 00:00:00 2001 From: Bill King Date: Tue, 27 Oct 2009 14:49:07 +1000 Subject: Fixes Oracle batchExec using strings as out params. reserve() affects capacity(), not length(). Task-number: QTBUG-551 --- src/sql/drivers/oci/qsql_oci.cpp | 11 +++++-- tests/auto/qsqlquery/tst_qsqlquery.cpp | 54 ++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index 468e02e..17f2c92 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -1257,7 +1257,11 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b case QVariant::String: { col.bindAs = SQLT_STR; for (uint j = 0; j < col.recordCount; ++j) { - uint len = boundValues.at(i).toList().at(j).toString().length() + 1; + uint len; + if(d->isOutValue(i)) + len = boundValues.at(i).toList().at(j).toString().capacity() + 1; + else + len = boundValues.at(i).toList().at(j).toString().length() + 1; if (len > col.maxLen) col.maxLen = len; } @@ -1268,7 +1272,10 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b default: { col.bindAs = SQLT_LBI; for (uint j = 0; j < col.recordCount; ++j) { - col.lengths[j] = boundValues.at(i).toList().at(j).toByteArray().size(); + if(d->isOutValue(i)) + col.lengths[j] = boundValues.at(i).toList().at(j).toByteArray().capacity(); + else + col.lengths[j] = boundValues.at(i).toList().at(j).toByteArray().size(); if (col.lengths[j] > col.maxLen) col.maxLen = col.lengths[j]; } diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index a9b522f..4d9e50f 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -193,6 +193,8 @@ private slots: void sqlServerReturn0_data() { generic_data(); } void sqlServerReturn0(); + void QTBUG_551_data() { generic_data("QOCI"); } + void QTBUG_551(); private: // returns all database connections @@ -322,6 +324,11 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) tablenames << qTableName("test141895"); tst_Databases::safeDropTables( db, tablenames ); + + if ( db.driverName().startsWith( "QOCI" ) ) { + QSqlQuery q( db ); + q.exec( "DROP PACKAGE " + qTableName("pkg") ); + } } void tst_QSqlQuery::createTestTables( QSqlDatabase db ) @@ -2847,5 +2854,52 @@ void tst_QSqlQuery::sqlServerReturn0() QVERIFY_SQL(q, next()); } +void tst_QSqlQuery::QTBUG_551() +{ + QFETCH( QString, dbName ); + QSqlDatabase db = QSqlDatabase::database( dbName ); + CHECK_DATABASE( db ); + QSqlQuery q(db); + QString pkgname=qTableName("pkg"); + QVERIFY_SQL(q, exec("CREATE OR REPLACE PACKAGE "+pkgname+" IS \n\ + \n\ + TYPE IntType IS TABLE OF INTEGER INDEX BY BINARY_INTEGER;\n\ + TYPE VCType IS TABLE OF VARCHAR2(60) INDEX BY BINARY_INTEGER;\n\ + PROCEDURE P (Inp IN IntType, Outp OUT VCType);\n\ + END "+pkgname+";")); + + QVERIFY_SQL(q, exec("CREATE OR REPLACE PACKAGE BODY "+pkgname+" IS\n\ + PROCEDURE P (Inp IN IntType, Outp OUT VCType)\n\ + IS\n\ + BEGIN\n\ + Outp(1) := '1. Value is ' ||TO_CHAR(Inp(1));\n\ + Outp(2) := '2. Value is ' ||TO_CHAR(Inp(2));\n\ + Outp(3) := '3. Value is ' ||TO_CHAR(Inp(3));\n\ + END p;\n\ + END "+pkgname+";")); + + QVariantList inLst, outLst, res_outLst; + + q.prepare("begin "+pkgname+".p(:inp, :outp); end;"); + + QString StVal; + StVal.reserve(60); + + // loading arrays + for (int Cnt=0; Cnt < 3; Cnt++) { + inLst << Cnt; + outLst << StVal; + } + + q.bindValue(":inp", inLst); + q.bindValue(":outp", outLst, QSql::Out); + + QVERIFY_SQL(q, execBatch(QSqlQuery::ValuesAsColumns) ); + res_outLst = qVariantValue(q.boundValues()[":outp"]); + QCOMPARE(res_outLst[0].toString(), QLatin1String("1. Value is 0")); + QCOMPARE(res_outLst[1].toString(), QLatin1String("2. Value is 1")); + QCOMPARE(res_outLst[2].toString(), QLatin1String("3. Value is 2")); +} + QTEST_MAIN( tst_QSqlQuery ) #include "tst_qsqlquery.moc" -- cgit v0.12 From f06d7a128bf6b231fde521f7008db48138783731 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Tue, 27 Oct 2009 15:32:19 +1000 Subject: Use vgClear() to clear the background during screen compositing. This fixes an "off by 1" bug in screen compositing with OpenVG that left lines all over the background when windows were moved. Task-number: QT-2322 Reviewed-by: Sarah Smith --- src/openvg/qpaintengine_vg.cpp | 64 ++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index da07c1d..f8dd8a5 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3527,27 +3527,55 @@ static void fillBackgroundRect(const QRect& rect, QVGPaintEnginePrivate *d) void QVGCompositionHelper::fillBackground (const QRegion& region, const QBrush& brush) { - // Set the path transform to the default viewport transformation. - VGfloat devh = screenSize.height() - 1; - QTransform viewport(1.0f, 0.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0.5f, devh + 0.5f, 1.0f); - d->setTransform(VG_MATRIX_PATH_USER_TO_SURFACE, viewport); - - // Set the brush to use to fill the background. - d->ensureBrush(brush); - d->setFillRule(VG_EVEN_ODD); + if (brush.style() == Qt::SolidPattern) { + // Use vgClear() to quickly fill the background. + QColor color = brush.color(); + if (d->clearColor != color || d->clearOpacity != 1.0f) { + VGfloat values[4]; + values[0] = color.redF(); + values[1] = color.greenF(); + values[2] = color.blueF(); + values[3] = color.alphaF(); + vgSetfv(VG_CLEAR_COLOR, 4, values); + d->clearColor = color; + d->clearOpacity = 1.0f; + } + if (region.numRects() == 1) { + QRect r = region.boundingRect(); + vgClear(r.x(), screenSize.height() - r.y() - r.height(), + r.width(), r.height()); + } else { + const QVector rects = region.rects(); + for (int i = 0; i < rects.size(); ++i) { + QRect r = rects.at(i); + vgClear(r.x(), screenSize.height() - r.y() - r.height(), + r.width(), r.height()); + } + } - if (region.numRects() == 1) { - fillBackgroundRect(region.boundingRect(), d); } else { - const QVector rects = region.rects(); - for (int i = 0; i < rects.size(); ++i) - fillBackgroundRect(rects.at(i), d); - } + // Set the path transform to the default viewport transformation. + VGfloat devh = screenSize.height() - 1; + QTransform viewport(1.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + 0.5f, devh + 0.5f, 1.0f); + d->setTransform(VG_MATRIX_PATH_USER_TO_SURFACE, viewport); + + // Set the brush to use to fill the background. + d->ensureBrush(brush); + d->setFillRule(VG_EVEN_ODD); + + if (region.numRects() == 1) { + fillBackgroundRect(region.boundingRect(), d); + } else { + const QVector rects = region.rects(); + for (int i = 0; i < rects.size(); ++i) + fillBackgroundRect(rects.at(i), d); + } - // We will need to reset the path transform during the next paint. - d->pathTransformSet = false; + // We will need to reset the path transform during the next paint. + d->pathTransformSet = false; + } } void QVGCompositionHelper::drawCursorImage -- cgit v0.12 From cb3a2633bb9d8a0e949c403d0f0631caef254599 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Mon, 26 Oct 2009 15:40:36 +0200 Subject: Fixed select softkey for comboboxes (QTBUG-4702). The created keyed actions are passed to wrong widget if this pointer is passed insted of itemView. Also create softkey actions in setItemView method instead of constructor in order that custom items views are also working correctly. Task-number:: QTBUG-4702 AutoTest: All QComboBox tests passed Reviewed-by: Jason Barron --- src/gui/widgets/qcombobox.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index 0e888d6..4f2e91b 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -402,13 +402,6 @@ QComboBoxPrivateContainer::QComboBoxPrivateContainer(QAbstractItemView *itemView layout->setSpacing(0); layout->setMargin(0); -#ifdef QT_SOFTKEYS_ENABLED - selectAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::SelectSoftKey, Qt::Key_Select, this); - cancelAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::CancelSoftKey, Qt::Key_Escape, this); - addAction(selectAction); - addAction(cancelAction); -#endif - // set item view setItemView(itemView); @@ -572,6 +565,13 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) this, SLOT(setCurrentIndex(QModelIndex))); connect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); + +#ifdef QT_SOFTKEYS_ENABLED + selectAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::SelectSoftKey, Qt::Key_Select, itemView); + cancelAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::CancelSoftKey, Qt::Key_Escape, itemView); + addAction(selectAction); + addAction(cancelAction); +#endif } /*! @@ -2452,15 +2452,15 @@ void QComboBox::showPopup() #if defined(Q_WS_WIN) && !defined(QT_NO_EFFECTS) bool scrollDown = (listRect.topLeft() == below); - if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo) + if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo) && !style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this) && !window()->testAttribute(Qt::WA_DontShowOnScreen)) qScrollEffect(container, scrollDown ? QEffects::DownScroll : QEffects::UpScroll, 150); #endif // Don't disable updates on Mac OS X. Windows are displayed immediately on this platform, // which means that the window will be visible before the call to container->show() returns. -// If updates are disabled at this point we'll miss our chance at painting the popup -// menu before it's shown, causing flicker since the window then displays the standard gray +// If updates are disabled at this point we'll miss our chance at painting the popup +// menu before it's shown, causing flicker since the window then displays the standard gray // background. #ifndef Q_WS_MAC container->setUpdatesEnabled(false); -- cgit v0.12 From 5a4909d9f87b9abf471908a085c0e9f31b7e0a50 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Tue, 27 Oct 2009 16:38:24 +1000 Subject: Fix OpenVG window composition when opacity != 1 Task-number: QT-2322 Reviewed-by: Sarah Smith --- src/openvg/qpaintengine_vg.cpp | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index f8dd8a5..94e0793 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3455,28 +3455,24 @@ void QVGCompositionHelper::blitWindow // Set the image transform. QTransform transform; int y = screenSize.height() - (rect.bottom() + 1); - transform.translate(rect.x() + 0.5f, y + 0.5f); + transform.translate(rect.x() - 0.5f, y - 0.5f); d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform); // Enable opacity for image drawing if necessary. - if (opacity < 255) { - if (opacity != d->paintOpacity) { - VGfloat values[4]; - values[0] = 1.0f; - values[1] = 1.0f; - values[2] = 1.0f; - values[3] = ((VGfloat)opacity) / 255.0f; - vgSetParameterfv(d->opacityPaint, VG_PAINT_COLOR, 4, values); - d->paintOpacity = values[3]; - } - if (d->fillPaint != d->opacityPaint) { - vgSetPaint(d->opacityPaint, VG_FILL_PATH); - d->fillPaint = d->opacityPaint; - } - d->setImageMode(VG_DRAW_IMAGE_MULTIPLY); - } else { - d->setImageMode(VG_DRAW_IMAGE_NORMAL); + if (opacity != d->paintOpacity) { + VGfloat values[4]; + values[0] = 1.0f; + values[1] = 1.0f; + values[2] = 1.0f; + values[3] = ((VGfloat)opacity) / 255.0f; + vgSetParameterfv(d->opacityPaint, VG_PAINT_COLOR, 4, values); + d->paintOpacity = values[3]; + } + if (d->fillPaint != d->opacityPaint) { + vgSetPaint(d->opacityPaint, VG_FILL_PATH); + d->fillPaint = d->opacityPaint; } + d->setImageMode(VG_DRAW_IMAGE_MULTIPLY); // Draw the child image. vgDrawImage(child); @@ -3558,7 +3554,7 @@ void QVGCompositionHelper::fillBackground VGfloat devh = screenSize.height() - 1; QTransform viewport(1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, - 0.5f, devh + 0.5f, 1.0f); + -0.5f, devh + 0.5f, 1.0f); d->setTransform(VG_MATRIX_PATH_USER_TO_SURFACE, viewport); // Set the brush to use to fill the background. @@ -3612,7 +3608,7 @@ void QVGCompositionHelper::drawCursorPixmap VGfloat devh = screenSize.height() - 1; QTransform transform(1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, - 0.5f, devh + 0.5f, 1.0f); + -0.5f, devh + 0.5f, 1.0f); transform.translate(offset.x(), offset.y()); d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform); -- cgit v0.12 From 0fd6390800969d174dba819c54c4183a99e8f83c Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 27 Oct 2009 09:14:28 +0100 Subject: Implement support for wheel delta with finer resolution than 15 deg. At the moment, Qt, in many places, does not really understand that a mouse wheel, or touch pad, might operate on a much higher granularity than 15 degrees (that is, a delta of 120). This is clear disadvantage on mac, since the mighty mouse, and track pad, got a resolution that is close to 1 degree. This is called pixel scrolling. This patch first and formost changes the implementation of QAbstractSlider::wheelEvent to _really_ understand what to do when delta is less than 120. Rather than accumulate delta until 120 is reached, then scroll with a value equal to: offset * step * QApplication::wheelScrollLines (default = 3), we multiply offset directly, before waiting for 120. This means that event tough offset is below 120, multiplying it with wheelScrollLines and step will very often give a value over 120, menaing we can scroll much earlier and _much more_ fined grained. This also fixes some auto tests that was ifdeffed out because of specialised mac code written inside this function from before. (NB: we still plan to introduce a new event for pixel scrolling, perhaps for Qt-4.7) Rev-By: Andreas Rev-By: denis --- src/gui/kernel/qapplication.cpp | 4 -- src/gui/kernel/qapplication_mac.mm | 37 +++--------------- src/gui/kernel/qcocoaview_mac.mm | 24 ++++++------ src/gui/widgets/qabstractslider.cpp | 44 ++++++++++------------ tests/auto/qabstractslider/tst_qabstractslider.cpp | 16 -------- 5 files changed, 38 insertions(+), 87 deletions(-) diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index 7c38d4b..85b055e 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -940,12 +940,8 @@ void QApplicationPrivate::initialize() graphics_system = QGraphicsSystemFactory::create(graphics_system_name); #endif #ifndef QT_NO_WHEELEVENT -#ifdef Q_OS_MAC - QApplicationPrivate::wheel_scroll_lines = 1; -#else QApplicationPrivate::wheel_scroll_lines = 3; #endif -#endif initializeMultitouch(); } diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm index 771cddc..84e0d50 100644 --- a/src/gui/kernel/qapplication_mac.mm +++ b/src/gui/kernel/qapplication_mac.mm @@ -1697,15 +1697,14 @@ QApplicationPrivate::globalEventProcessor(EventHandlerCallRef er, EventRef event // (actually two events; one for horizontal and one for vertical). // As a results of this, and to make sure we dont't receive duplicate events, // we try to detect when this happend by checking the 'compatibilityEvent'. - const int scrollFactor = 4 * 8; SInt32 mdelt = 0; GetEventParameter(event, kEventParamMouseWheelSmoothHorizontalDelta, typeSInt32, 0, sizeof(mdelt), 0, &mdelt); - wheel_deltaX = mdelt * scrollFactor; + wheel_deltaX = mdelt; mdelt = 0; GetEventParameter(event, kEventParamMouseWheelSmoothVerticalDelta, typeSInt32, 0, sizeof(mdelt), 0, &mdelt); - wheel_deltaY = mdelt * scrollFactor; + wheel_deltaY = mdelt; GetEventParameter(event, kEventParamEventRef, typeEventRef, 0, sizeof(compatibilityEvent), 0, &compatibilityEvent); } else if (ekind == kEventMouseWheelMoved) { @@ -1718,31 +1717,11 @@ QApplicationPrivate::globalEventProcessor(EventHandlerCallRef er, EventRef event GetEventParameter(event, kEventParamMouseWheelAxis, typeMouseWheelAxis, 0, sizeof(axis), 0, &axis); - // The 'new' event has acceleration applied by the OS, while the old (on - // Carbon only), has not. So we introduce acceleration here to be consistent. - // The acceleration is trying to respect both pixel based and line scrolling, - // which turns out to be rather difficult. - int linesToScroll = mdelt > 0 ? 1 : -1; - static QTime t; - int elapsed = t.elapsed(); - t.restart(); - if (elapsed < 20) - linesToScroll *= 120; - else if (elapsed < 30) - linesToScroll *= 60; - else if (elapsed < 50) - linesToScroll *= 30; - else if (elapsed < 100) - linesToScroll *= 6; - else if (elapsed < 200) - linesToScroll *= 3; - else if (elapsed < 300) - linesToScroll *= 2; - + // Remove acceleration, and use either -120 or 120 as delta: if (axis == kEventMouseWheelAxisX) - wheel_deltaX = linesToScroll * 120; + wheel_deltaX = qBound(-120, int(mdelt * 10000), 120); else - wheel_deltaY = linesToScroll * 120; + wheel_deltaY = qBound(-120, int(mdelt * 10000), 120); } } @@ -2695,11 +2674,7 @@ int QApplication::keyboardInputInterval() void QApplication::setWheelScrollLines(int n) { - Q_UNUSED(n); - // On Mac, acceleration is handled by the OS. Multiplying wheel scroll - // deltas with n will not be as cross platform as one might think! So - // we choose to go native in this case (and let wheel_scroll_lines == 1). - // QApplicationPrivate::wheel_scroll_lines = n; + QApplicationPrivate::wheel_scroll_lines = n; } int QApplication::wheelScrollLines() diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm index d49c150..ecc6bc9 100644 --- a/src/gui/kernel/qcocoaview_mac.mm +++ b/src/gui/kernel/qcocoaview_mac.mm @@ -795,23 +795,23 @@ extern "C" { const EventRef carbonEvent = (EventRef)[theEvent eventRef]; const UInt32 carbonEventKind = carbonEvent ? ::GetEventKind(carbonEvent) : 0; - if (carbonEventKind == kEventMouseScroll) { + const bool scrollEvent = carbonEventKind == kEventMouseScroll; + + if (scrollEvent) { // The mouse device containts pixel scroll wheel support (Mighty Mouse, Trackpad). // Since deviceDelta is delivered as pixels rather than degrees, we need to // convert from pixels to degrees in a sensible manner. // It looks like four degrees per pixel behaves most native. // Qt expects the unit for delta to be 1/8 of a degree: - const int scrollFactor = 4 * 8; - deltaX = (int)[theEvent deviceDeltaX] * scrollFactor; - deltaY = (int)[theEvent deviceDeltaY] * scrollFactor; - deltaZ = (int)[theEvent deviceDeltaZ] * scrollFactor; - } else { // carbonEventKind == kEventMouseWheelMoved - // Mouse wheel deltas seem to tick in at increments of 0.1. - // Qt widgets expect the delta to be a multiple of 120. - const int scrollFactor = 10 * 120; - deltaX = [theEvent deltaX] * scrollFactor; - deltaY = [theEvent deltaY] * scrollFactor; - deltaZ = [theEvent deltaZ] * scrollFactor; + deltaX = [theEvent deviceDeltaX]; + deltaY = [theEvent deviceDeltaY]; + deltaZ = [theEvent deviceDeltaZ]; + } else { + // carbonEventKind == kEventMouseWheelMoved + // Remove acceleration, and use either -120 or 120 as delta: + deltaX = qBound(-120, int([theEvent deltaX] * 10000), 120); + deltaY = qBound(-120, int([theEvent deltaY] * 10000), 120); + deltaZ = qBound(-120, int([theEvent deltaZ] * 10000), 120); } if (deltaX != 0) { diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp index 588a48e..fec9fab 100644 --- a/src/gui/widgets/qabstractslider.cpp +++ b/src/gui/widgets/qabstractslider.cpp @@ -693,29 +693,27 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e) if (e->orientation() != d->orientation && !rect().contains(e->pos())) return; - qreal currentOffset = qreal(e->delta()) / 120; - d->offset_accumulated += currentOffset; - if (int(d->offset_accumulated) == 0) { - // QAbstractSlider works on integer values. So if the accumulated - // offset is less than +/- 1, we need to wait until we get more - // wheel events (this means that the wheel resolution is higher than - // 15 degrees, e.g. when using mac mighty mouse/trackpad): - return; - } + int stepsToScroll = 0; + qreal offset = qreal(e->delta()) / 120; - int stepsToScroll; if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier)) { - stepsToScroll = currentOffset > 0 ? d->pageStep : -d->pageStep; + // Scroll one page regardless of delta: + stepsToScroll = qBound(-d->pageStep, int(offset * d->pageStep), d->pageStep); + d->offset_accumulated = 0; } else { - // Calculate the number of steps to scroll (per 15 degrees of rotate): -#ifdef Q_OS_MAC - // On mac, since mouse wheel scrolling is accelerated and - // fine tuned by the OS, we skip applying acceleration: - stepsToScroll = int(d->offset_accumulated); -#else - stepsToScroll = int(d->offset_accumulated) * QApplication::wheelScrollLines() * d->singleStep; -#endif - stepsToScroll = qBound(-d->pageStep, stepsToScroll, d->pageStep); + // Calculate how many lines to scroll. Depending on what delta is (and + // offset), we might end up with a fraction (e.g. scroll 1.3 lines). We can + // only scroll whole lines, so we keep the reminder until next event. + qreal stepsToScrollF = offset * QApplication::wheelScrollLines() * d->singleStep; + // Check if wheel changed direction since last event: + if (d->offset_accumulated != 0 && (offset / d->offset_accumulated) < 0) + d->offset_accumulated = 0; + + d->offset_accumulated += stepsToScrollF; + stepsToScroll = qBound(-d->pageStep, int(d->offset_accumulated), d->pageStep); + d->offset_accumulated -= int(d->offset_accumulated); + if (stepsToScroll == 0) + return; } if (d->invertedControls) @@ -725,12 +723,10 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e) d->position = d->overflowSafeAdd(stepsToScroll); // value will be updated by triggerAction() triggerAction(SliderMove); - if (prevValue == d->value) { + if (prevValue == d->value) d->offset_accumulated = 0; - } else { - d->offset_accumulated -= int(d->offset_accumulated); + else e->accept(); - } } #endif #ifdef QT_KEYPAD_NAVIGATION diff --git a/tests/auto/qabstractslider/tst_qabstractslider.cpp b/tests/auto/qabstractslider/tst_qabstractslider.cpp index 5c70bde..d9574df 100644 --- a/tests/auto/qabstractslider/tst_qabstractslider.cpp +++ b/tests/auto/qabstractslider/tst_qabstractslider.cpp @@ -714,11 +714,7 @@ void tst_QAbstractSlider::wheelEvent_data() << 1 // delta << int(Qt::Vertical) // orientation of slider << int(Qt::Vertical) // orientation of wheel -#ifdef Q_WS_MAC - << 1 // expected position after -#else << 20 // expected position after -#endif << QPoint(0,0); QTest::newRow("Normal data page") << 0 // initial position @@ -777,11 +773,7 @@ void tst_QAbstractSlider::wheelEvent_data() << 1 // delta << int(Qt::Horizontal) // orientation of slider << int(Qt::Horizontal) // orientation of wheel -#ifdef Q_WS_MAC - << 49 // expected position after -#else << 30 // expected position after -#endif << QPoint(1,1); QTest::newRow("Past end") << 50 // initial position @@ -792,11 +784,7 @@ void tst_QAbstractSlider::wheelEvent_data() << false // inverted controls << 1 // wheel scroll lines << false // with modifiers -#ifdef Q_WS_MAC - << 60 // delta -#else << 2 // delta -#endif << int(Qt::Horizontal) // orientation of slider << int(Qt::Horizontal) // orientation of wheel << 100 // expected position after @@ -810,11 +798,7 @@ void tst_QAbstractSlider::wheelEvent_data() << false // inverted controls << 1 // wheel scroll lines << false // with modifiers -#ifdef Q_WS_MAC - << -60 // delta -#else << -2 // delta -#endif << int(Qt::Horizontal) // orientation of slider << int(Qt::Horizontal) // orientation of wheel << 0 // expected position after -- cgit v0.12 From 68ab3b34571cfdde4002de9982388f9eec4d9939 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Mon, 26 Oct 2009 15:54:18 +0100 Subject: Fixed a bug in QMenuBar in RTL that would display menu at the wrong place This could happen when adding actions in response to the aboutToShow signal. Task-number: QT-2596 Reviewed-by: ogoffart --- src/gui/widgets/qmenu.cpp | 4 ++++ src/gui/widgets/qmenubar.cpp | 29 ++++++++++++----------------- tests/auto/qmenubar/tst_qmenubar.cpp | 29 ++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index ea25901..1b5d1cd 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1878,6 +1878,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if(snapToMouse) //position flowing left from the mouse pos.setX(mouse.x()-size.width()); + //if in a menubar, it should be right-aligned + if (qobject_cast(d->causedPopup.widget)) + pos.rx() -= size.width(); + if (pos.x() < screen.left()+desktopFrame) pos.setX(qMax(p.x(), screen.left()+desktopFrame)); if (pos.x()+size.width()-1 > screen.right()-desktopFrame) diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index f2f0722..689d2e1 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -336,30 +336,25 @@ void QMenuBarPrivate::popupAction(QAction *action, bool activateFirst) const bool fitUp = (q->mapToGlobal(adjustedActionRect.topLeft()).y() >= popup_size.height()); const bool fitDown = (pos.y() + popup_size.height() <= screenRect.bottom()); + const bool rtl = q->isRightToLeft(); const int actionWidth = adjustedActionRect.width(); if (!fitUp && !fitDown) { //we should shift the menu - bool shouldShiftToRight = !q->isRightToLeft(); - if (q->isRightToLeft() && popup_size.width() > pos.x()) + bool shouldShiftToRight = !rtl; + if (rtl && popup_size.width() > pos.x()) shouldShiftToRight = true; else if (actionWidth + popup_size.width() + pos.x() > screenRect.right()) shouldShiftToRight = false; - if (shouldShiftToRight) - pos.rx() += actionWidth; - else - pos.rx() -= popup_size.width(); - } else if (q->isRightToLeft()) { - pos.setX(pos.x()-(popup_size.width() - actionWidth)); - } - - if(pos.x() < screenRect.x()) { - pos.setX(screenRect.x()); - } else { - const int off = pos.x()+popup_size.width() - screenRect.right(); - if(off > 0) - pos.setX(qMax(screenRect.x(), pos.x()-off)); - + if (shouldShiftToRight) { + pos.rx() += actionWidth + (rtl ? popup_size.width() : 0); + } else { + //shift to left + if (!rtl) + pos.rx() -= popup_size.width(); + } + } else if (rtl) { + pos.rx() += actionWidth; } if(!defaultPopDown || (fitUp && !fitDown)) diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp index 07aa9f4..4291c3e 100644 --- a/tests/auto/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/qmenubar/tst_qmenubar.cpp @@ -86,6 +86,18 @@ private: uint sel_count; }; +class Menu : public QMenu +{ + Q_OBJECT + public slots: + void addActions() + { + //this will change the geometry of the menu + addAction("action1"); + addAction("action2"); + } +}; + class tst_QMenuBar : public QObject { Q_OBJECT @@ -1442,7 +1454,7 @@ void tst_QMenuBar::check_menuPosition() #ifdef Q_OS_WINCE_WM QSKIP("Qt/CE uses native menubar", SkipAll); #endif - QMenu menu; + Menu menu; #ifdef QT3_SUPPORT initComplexMenubar(); #else @@ -1496,6 +1508,21 @@ void tst_QMenuBar::check_menuPosition() menu.close(); } + //in RTL, the menu should be stuck at the right of the action geometry + { + Qt::LayoutDirection dir = qApp->layoutDirection(); + qApp->setLayoutDirection(Qt::RightToLeft); + menu.clear(); + QObject::connect(&menu, SIGNAL(aboutToShow()), &menu, SLOT(addActions())); + QRect mbItemRect = mw->menuBar()->actionGeometry(menu_action); + mbItemRect.moveTo(mw->menuBar()->mapToGlobal(mbItemRect.topLeft())); + QTest::keyClick(mw, Qt::Key_M, Qt::AltModifier ); + QVERIFY(menu.isActiveWindow()); + QCOMPARE(menu.geometry().right(), mbItemRect.right()); + menu.close(); + qApp->setLayoutDirection(dir); + } + } void tst_QMenuBar::task223138_triggered() -- cgit v0.12 From 0f6ab9612eba6c5418991443b65a10820d6b5a1f Mon Sep 17 00:00:00 2001 From: Leonardo Sobral Cunha Date: Tue, 27 Oct 2009 09:56:28 +0100 Subject: Stabilize sequential animation startDelay autotest on win Reviewed-by: thierry --- .../tst_qsequentialanimationgroup.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp index aa6801a..f6afc5b 100644 --- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp +++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp @@ -929,16 +929,13 @@ void tst_QSequentialAnimationGroup::startDelay() group.addPause(125); QCOMPARE(group.totalDuration(), 375); - QEventLoop loop; - QObject::connect(&group, SIGNAL(finished()), &loop, SLOT(quit())); - - QTime time; - time.start(); group.start(); - loop.exec(); + QCOMPARE(group.state(), QAnimationGroup::Running); - QVERIFY(time.elapsed() >= 375); - QVERIFY(time.elapsed() < 1000); + QTest::qWait(500); + + QVERIFY(group.currentTime() == 375); + QCOMPARE(group.state(), QAnimationGroup::Stopped); } void tst_QSequentialAnimationGroup::clearGroup() -- cgit v0.12 From dd89851abe4b0d0a3c293b5cadace00eb3f75a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 27 Oct 2009 11:01:45 +0100 Subject: If a QGraphicsWidget gets a StyleChange event, invalidate its layout. The layout should be invalidated because all layouts are dependent on some style-specific defaults. (e.g. PM_LayoutHorizontalSpacing can differ.) Reviewed-by: alexis --- src/gui/graphicsview/qgraphicswidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp index 35a3c13..d70a281 100644 --- a/src/gui/graphicsview/qgraphicswidget.cpp +++ b/src/gui/graphicsview/qgraphicswidget.cpp @@ -1352,6 +1352,8 @@ void QGraphicsWidget::changeEvent(QEvent *event) case QEvent::StyleChange: // ### Don't unset if the margins are explicitly set. unsetWindowFrameMargins(); + if (d->layout) + d->layout->invalidate(); case QEvent::FontChange: update(); updateGeometry(); -- cgit v0.12 From 8a9ab43e572443eefbf19d59740fdc64d25d1005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 27 Oct 2009 11:54:47 +0100 Subject: Respect the per-item layoutSpacing() if the style uses that feature. We move the QLayoutStyleInfo class out of the gridlayout engine to a common header file so that anchor layout also can utilize it. Due to that we now can have a per-item spacing we have to change the 'effectiveSpacing' argument of refreshSizeHints to just take a QLayoutStyleInfo pointer that we will later query for the actual spacing used. --- src/gui/graphicsview/qgraphicsanchorlayout.cpp | 7 +- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 78 +++++----- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 17 ++- src/gui/graphicsview/qgraphicslayout_p.h | 51 +++++++ src/gui/graphicsview/qgridlayoutengine_p.h | 25 +--- .../tst_qgraphicsanchorlayout.cpp | 162 +++++++++++++++++++++ 6 files changed, 271 insertions(+), 69 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index 081572f..00d3478 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -400,7 +400,7 @@ void QGraphicsAnchorLayout::setSpacing(qreal spacing) qreal QGraphicsAnchorLayout::horizontalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Horizontal); + return d->styleInfo().defaultSpacing(Qt::Horizontal); } /*! @@ -411,7 +411,7 @@ qreal QGraphicsAnchorLayout::horizontalSpacing() const qreal QGraphicsAnchorLayout::verticalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Vertical); + return d->styleInfo().defaultSpacing(Qt::Vertical); } /*! @@ -481,7 +481,8 @@ void QGraphicsAnchorLayout::invalidate() { Q_D(QGraphicsAnchorLayout); QGraphicsLayout::invalidate(); - d->calculateGraphCacheDirty = 1; + d->calculateGraphCacheDirty = true; + d->styleInfoDirty = true; } /*! diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 8c8c303..5bc6708 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -141,7 +141,7 @@ static void internalSizeHints(QSizePolicy::Policy policy, *expSize = *prefSize; } -void AnchorData::refreshSizeHints(qreal effectiveSpacing) +void AnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { const bool isInternalAnchor = from->m_item == to->m_item; @@ -196,7 +196,20 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) // their effective size hints might be narrowed down due to their size policies. prefSizeHint = prefSize; } else { - prefSizeHint = effectiveSpacing; + const Qt::Orientation orient = Qt::Orientation(QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge) + 1); + qreal s = styleInfo->defaultSpacing(orient); + if (s < 0) { + QSizePolicy::ControlType controlTypeFrom = from->m_item->sizePolicy().controlType(); + QSizePolicy::ControlType controlTypeTo = to->m_item->sizePolicy().controlType(); + s = styleInfo->perItemSpacing(controlTypeFrom, controlTypeTo, orient); + + // ### Currently we do not support negative anchors inside the graph. + // To avoid those being created by a negative style spacing, we must + // make this test. + if (s < 0) + s = 0; + } + prefSizeHint = s; } maxSizeHint = QWIDGETSIZE_MAX; } @@ -227,17 +240,17 @@ void ParallelAnchorData::updateChildrenSizes() secondEdge->updateChildrenSizes(); } -void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing) +void ParallelAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + refreshSizeHints_helper(styleInfo); } -void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +void ParallelAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { if (refreshChildren) { - firstEdge->refreshSizeHints(effectiveSpacing); - secondEdge->refreshSizeHints(effectiveSpacing); + firstEdge->refreshSizeHints(styleInfo); + secondEdge->refreshSizeHints(styleInfo); } // ### should we warn if the parallel connection is invalid? @@ -362,12 +375,12 @@ void SequentialAnchorData::updateChildrenSizes() } } -void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing) +void SequentialAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + refreshSizeHints_helper(styleInfo); } -void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +void SequentialAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { minSize = 0; @@ -380,7 +393,7 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, // If it's the case refresh children information first if (refreshChildren) - edge->refreshSizeHints(effectiveSpacing); + edge->refreshSizeHints(styleInfo); minSize += edge->minSize; prefSize += edge->prefSize; @@ -458,7 +471,7 @@ QString GraphPath::toString() const #endif QGraphicsAnchorLayoutPrivate::QGraphicsAnchorLayoutPrivate() - : calculateGraphCacheDirty(1) + : calculateGraphCacheDirty(true), styleInfoDirty(true) { for (int i = 0; i < NOrientations; ++i) { for (int j = 0; j < 3; ++j) { @@ -1565,34 +1578,32 @@ void QGraphicsAnchorLayoutPrivate::correctEdgeDirection(QGraphicsLayoutItem *&fi } } -qreal QGraphicsAnchorLayoutPrivate::effectiveSpacing(Orientation orientation) const +QLayoutStyleInfo &QGraphicsAnchorLayoutPrivate::styleInfo() const { - Q_Q(const QGraphicsAnchorLayout); - qreal s = spacings[orientation]; - if (s < 0) { - // ### make sure behaviour is the same as in QGraphicsGridLayout + if (styleInfoDirty) { + Q_Q(const QGraphicsAnchorLayout); + //### Fix this if QGV ever gets support for Metal style or different Aqua sizes. + QWidget *wid = 0; + QGraphicsLayoutItem *parent = q->parentLayoutItem(); while (parent && parent->isLayout()) { parent = parent->parentLayoutItem(); } + QGraphicsWidget *w = 0; if (parent) { QGraphicsItem *parentItem = parent->graphicsItem(); - if (parentItem && parentItem->isWidget()) { - QGraphicsWidget *w = static_cast(parentItem); - s = w->style()->pixelMetric(orientation == Horizontal - ? QStyle::PM_LayoutHorizontalSpacing - : QStyle::PM_LayoutVerticalSpacing); - } + if (parentItem && parentItem->isWidget()) + w = static_cast(parentItem); } - } - // ### Currently we do not support negative anchors inside the graph. - // To avoid those being created by a negative style spacing, we must - // make this test. - if (s < 0) - s = 0; + QStyle *style = w ? w->style() : QApplication::style(); + cachedStyleInfo = QLayoutStyleInfo(style, wid); + cachedStyleInfo.setDefaultSpacing(Qt::Horizontal, spacings[0]); + cachedStyleInfo.setDefaultSpacing(Qt::Vertical, spacings[1]); - return s; + styleInfoDirty = false; + } + return cachedStyleInfo; } /*! @@ -1620,7 +1631,7 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs() dumpGraph(QString::fromAscii("%1-after").arg(count)); #endif - calculateGraphCacheDirty = 0; + calculateGraphCacheDirty = false; } // ### Maybe getGraphParts could return the variables when traversing, at least @@ -1847,12 +1858,11 @@ void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orien Graph &g = graph[orientation]; QList > vertices = g.connections(); - qreal spacing = effectiveSpacing(orientation); - + QLayoutStyleInfo styleInf = styleInfo(); for (int i = 0; i < vertices.count(); ++i) { AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);; Q_ASSERT(data->from && data->to); - data->refreshSizeHints(spacing); + data->refreshSizeHints(&styleInf); } } diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index d45c004..9b7d41e 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -159,7 +159,7 @@ struct AnchorData : public QSimplexVariable { type(Normal), hasSize(true), isLayoutAnchor(false) {} virtual void updateChildrenSizes() {} - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo); virtual ~AnchorData() {} @@ -226,9 +226,9 @@ struct SequentialAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + void refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); void setVertices(const QVector &vertices) { @@ -261,9 +261,9 @@ struct ParallelAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + void refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); AnchorData* firstEdge; AnchorData* secondEdge; @@ -423,9 +423,8 @@ public: Qt::AnchorPoint &firstEdge, QGraphicsLayoutItem *&secondItem, Qt::AnchorPoint &secondEdge); - // for getting the actual spacing (will query the style if the - // spacing is not explicitly set). - qreal effectiveSpacing(Orientation orientation) const; + + QLayoutStyleInfo &styleInfo() const; // Activation methods void simplifyGraph(Orientation orientation); @@ -524,6 +523,8 @@ public: #endif uint calculateGraphCacheDirty : 1; + mutable uint styleInfoDirty : 1; + mutable QLayoutStyleInfo cachedStyleInfo; friend class QGraphicsAnchorPrivate; }; diff --git a/src/gui/graphicsview/qgraphicslayout_p.h b/src/gui/graphicsview/qgraphicslayout_p.h index 59c6dba..4aeae39 100644 --- a/src/gui/graphicsview/qgraphicslayout_p.h +++ b/src/gui/graphicsview/qgraphicslayout_p.h @@ -60,6 +60,8 @@ #include "qgraphicslayout.h" #include "qgraphicslayoutitem_p.h" #include +#include +#include QT_BEGIN_NAMESPACE @@ -76,6 +78,55 @@ inline bool qt_graphicsLayoutDebug() } #endif + +class QLayoutStyleInfo +{ +public: + inline QLayoutStyleInfo() { invalidate(); } + inline QLayoutStyleInfo(QStyle *style, QWidget *widget) + : m_valid(true), m_style(style), m_widget(widget) + { + Q_ASSERT(style); + if (widget) //### + m_styleOption.initFrom(widget); + m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); + m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing); + } + + inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; } + + inline QStyle *style() const { return m_style; } + inline QWidget *widget() const { return m_widget; } + + inline bool operator==(const QLayoutStyleInfo &other) + { return m_style == other.m_style && m_widget == other.m_widget; } + inline bool operator!=(const QLayoutStyleInfo &other) + { return !(*this == other); } + + inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){ + if (spacing >= 0) + m_defaultSpacing[o - 1] = spacing; + } + + inline qreal defaultSpacing(Qt::Orientation o) const { + return m_defaultSpacing[o - 1]; + } + + inline qreal perItemSpacing(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation) const + { + Q_ASSERT(style()); + return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget()); + } +private: + bool m_valid; + QStyle *m_style; + QWidget *m_widget; + QStyleOption m_styleOption; + qreal m_defaultSpacing[2]; +}; + class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate { Q_DECLARE_PUBLIC(QGraphicsLayout) diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index a42a537..ed335a8 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -59,7 +59,7 @@ #include "qmap.h" #include "qpair.h" #include "qvector.h" - +#include "qgraphicslayout_p.h" #include QT_BEGIN_NAMESPACE @@ -128,29 +128,6 @@ public: }; -class QLayoutStyleInfo -{ -public: - inline QLayoutStyleInfo() { invalidate(); } - inline QLayoutStyleInfo(QStyle *style, QWidget *widget) - : q_valid(true), q_style(style), q_widget(widget) {} - - inline void invalidate() { q_valid = false; q_style = 0; q_widget = 0; } - - inline QStyle *style() const { return q_style; } - inline QWidget *widget() const { return q_widget; } - - inline bool operator==(const QLayoutStyleInfo &other) - { return q_style == other.q_style && q_widget == other.q_widget; } - inline bool operator!=(const QLayoutStyleInfo &other) - { return !(*this == other); } - -private: - bool q_valid; - QStyle *q_style; - QWidget *q_widget; -}; - class QGridLayoutBox { public: diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 7b87969..f6f1868 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -45,6 +45,7 @@ #include #include #include +#include class tst_QGraphicsAnchorLayout : public QObject { Q_OBJECT; @@ -72,6 +73,7 @@ private slots: void proportionalPreferred(); void example(); void setSpacing(); + void styleDefaults(); void hardComplexS60(); void stability(); void delete_anchor(); @@ -1102,6 +1104,166 @@ void tst_QGraphicsAnchorLayout::setSpacing() delete view; } +class CustomLayoutStyle : public QWindowsStyle +{ + Q_OBJECT +public: + CustomLayoutStyle() : QWindowsStyle() + { + hspacing = 5; + vspacing = 10; + } + + virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0, + const QWidget * widget = 0 ) const; + + int hspacing; + int vspacing; + +protected slots: + int layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption *option = 0, + const QWidget *widget = 0) const; + +}; + +#define CT1(c) CT2(c, c) +#define CT2(c1, c2) ((uint)c1 << 16) | (uint)c2 + +int CustomLayoutStyle::layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption * /*option = 0*/, + const QWidget * /*widget = 0*/) const +{ + if (orientation == Qt::Horizontal) { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::PushButton): + return 2; + break; + } + return 5; + } else { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::RadioButton): + return 2; + break; + + } + return 10; + } +} + +int CustomLayoutStyle::pixelMetric(PixelMetric metric, const QStyleOption * option /*= 0*/, + const QWidget * widget /*= 0*/ ) const +{ + switch (metric) { + case PM_LayoutLeftMargin: + return 0; + break; + case PM_LayoutTopMargin: + return 3; + break; + case PM_LayoutRightMargin: + return 6; + break; + case PM_LayoutBottomMargin: + return 9; + break; + case PM_LayoutHorizontalSpacing: + return hspacing; + case PM_LayoutVerticalSpacing: + return vspacing; + break; + default: + break; + } + return QWindowsStyle::pixelMetric(metric, option, widget); +} + +void tst_QGraphicsAnchorLayout::styleDefaults() +{ + QSizeF min (10, 10); + QSizeF pref(20, 20); + QSizeF max (50, 50); + + /* + create this layout, where a,b have controlType QSizePolicy::RadioButton + c,d have controlType QSizePolicy::PushButton: + +-------+ + |a | + | b | + | c | + | d| + +-------+ + */ + QGraphicsScene scene; + QGraphicsWidget *a = createItem(min, pref, max); + QSizePolicy spRadioButton = a->sizePolicy(); + spRadioButton.setControlType(QSizePolicy::RadioButton); + a->setSizePolicy(spRadioButton); + + QGraphicsWidget *b = createItem(min, pref, max); + b->setSizePolicy(spRadioButton); + + QGraphicsWidget *c = createItem(min, pref, max); + QSizePolicy spPushButton = c->sizePolicy(); + spPushButton.setControlType(QSizePolicy::PushButton); + c->setSizePolicy(spPushButton); + + QGraphicsWidget *d = createItem(min, pref, max); + d->setSizePolicy(spPushButton); + + QGraphicsWidget *window = new QGraphicsWidget(0, Qt::Window); + + // Test layoutSpacingImplementation + CustomLayoutStyle *style = new CustomLayoutStyle; + style->hspacing = -1; + style->vspacing = -1; + window->setStyle(style); + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + l->addCornerAnchors(l, Qt::TopLeftCorner, a, Qt::TopLeftCorner); + l->addCornerAnchors(a, Qt::BottomRightCorner, b, Qt::TopLeftCorner); + l->addCornerAnchors(b, Qt::BottomRightCorner, c, Qt::TopLeftCorner); + l->addCornerAnchors(c, Qt::BottomRightCorner, d, Qt::TopLeftCorner); + l->addCornerAnchors(d, Qt::BottomRightCorner, l, Qt::BottomRightCorner); + + window->setLayout(l); + + scene.addItem(window); + + window->show(); + QGraphicsView *view = new QGraphicsView(&scene); + view->resize(200, 200); + view->show(); + + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); //radio + QCOMPARE(b->geometry(), QRectF(25, 25, 20, 20)); //radio + QCOMPARE(c->geometry(), QRectF(50, 55, 20, 20)); //push + QCOMPARE(d->geometry(), QRectF(72, 85, 20, 20)); //push + QCOMPARE(l->geometry(), QRectF(0, 0, 98, 114)); + + + // Test pixelMetric(PM_Layout{Horizontal|Vertical}Spacing + window->setStyle(0); + + style->hspacing = 1; + style->vspacing = 2; + + window->setStyle(style); + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); + QCOMPARE(b->geometry(), QRectF(21, 25, 20, 20)); + QCOMPARE(c->geometry(), QRectF(42, 47, 20, 20)); + QCOMPARE(d->geometry(), QRectF(63, 69, 20, 20)); + QCOMPARE(l->geometry(), QRectF(0, 0, 89, 98)); +} + + /*! Taken from "hard" complex case, found at https://cwiki.nokia.com/S60QTUI/AnchorLayoutComplexCases -- cgit v0.12 From bc49cbaab3356770eb4b27dcbc2e585bf21e9200 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Tue, 27 Oct 2009 12:15:49 +0100 Subject: QTableView would not correctly resize to contents The problem was that we didn't call ensurePolished when getting the size of the sections. Task-number: QTBUG-1002 Reviewed-by: ogoffart --- src/gui/itemviews/qheaderview.cpp | 2 ++ src/gui/itemviews/qtableview.cpp | 4 ++++ tests/auto/qtableview/tst_qtableview.cpp | 11 ++++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp index fc9820f..4b5ec71 100644 --- a/src/gui/itemviews/qheaderview.cpp +++ b/src/gui/itemviews/qheaderview.cpp @@ -2516,6 +2516,8 @@ QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const Q_D(const QHeaderView); Q_ASSERT(logicalIndex >= 0); + ensurePolished(); + // use SizeHintRole QVariant variant = d->model->headerData(logicalIndex, d->orientation, Qt::SizeHintRole); if (variant.isValid()) diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 2a937f1..c80faa2 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -2065,6 +2065,8 @@ int QTableView::sizeHintForRow(int row) const if (!model()) return -1; + ensurePolished(); + int left = qMax(0, columnAt(0)); int right = columnAt(d->viewport->width()); if (right == -1) // the table don't have enough columns to fill the viewport @@ -2122,6 +2124,8 @@ int QTableView::sizeHintForColumn(int column) const if (!model()) return -1; + ensurePolished(); + int top = qMax(0, rowAt(0)); int bottom = rowAt(d->viewport->height()); if (!isVisible() || bottom == -1) // the table don't have enough rows to fill the viewport diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index d8110e1..8f8781d 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -2017,8 +2017,9 @@ void tst_QTableView::resizeRowsToContents() view.resizeRowsToContents(); QCOMPARE(resizedSpy.count(), model.rowCount()); - for (int r = 0; r < model.rowCount(); ++r) + for (int r = 0; r < model.rowCount(); ++r) { QCOMPARE(view.rowHeight(r), rowHeight); + } } void tst_QTableView::resizeColumnsToContents_data() @@ -3267,12 +3268,12 @@ void tst_QTableView::resizeToContents() //now let's check the row/col sizes for(int i = 0;i Date: Mon, 26 Oct 2009 15:55:16 +0100 Subject: Do not hardecode the ToolBar Icon Size So we correctly get the size from the platform plugin Reviewed-by: jbache --- src/gui/styles/qcommonstyle.cpp | 2 +- src/gui/styles/qplastiquestyle.cpp | 3 --- src/gui/styles/qwindowsstyle.cpp | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp index 5886512..b871842 100644 --- a/src/gui/styles/qcommonstyle.cpp +++ b/src/gui/styles/qcommonstyle.cpp @@ -4661,7 +4661,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid case PM_ToolBarIconSize: ret = qt_guiPlatformPlugin()->platformHint(QGuiPlatformPlugin::PH_ToolBarIconSize); if (!ret) - ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget); + ret = int(QStyleHelper::dpiScaled(24.)); break; case PM_TabBarIconSize: diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp index ce2109a..1f77d90 100644 --- a/src/gui/styles/qplastiquestyle.cpp +++ b/src/gui/styles/qplastiquestyle.cpp @@ -5514,9 +5514,6 @@ int QPlastiqueStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, case PM_MenuHMargin: ret = 0; break; - case PM_ToolBarIconSize: - ret = 24; - break; case PM_ButtonShiftHorizontal: case PM_ButtonShiftVertical: ret = 1; diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 0f72440..5cf738e 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -454,9 +454,6 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget); break; - case PM_ToolBarIconSize: - ret = int(QStyleHelper::dpiScaled(24.)); - break; case PM_DockWidgetTitleMargin: ret = int(QStyleHelper::dpiScaled(2.)); break; -- cgit v0.12 From 5ff7b773a0f59e174001da1f0550a7f0c2b6f485 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 11:39:51 +0100 Subject: Fixes QTreeView: stylesheet :has-children pseudo selector doesn't works for the ::item pseudo-class The State_Children was not set on the QStyleOption. Refactorized a little bit the way it was computed. Reviewed-by: Thierry Task-number: 234930 Task-number: QTBUG-3129 --- src/gui/itemviews/qtreeview.cpp | 28 +++++++++++++++------------ src/gui/itemviews/qtreeview_p.h | 3 ++- tests/auto/qtreeview/tst_qtreeview.cpp | 35 +++++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index f37d8c7..49c8e34 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1422,8 +1422,8 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const for (; i < viewItems.count() && y <= area.bottom(); ++i) { const int itemHeight = d->itemHeight(i); option.rect.setRect(0, y, viewportWidth, itemHeight); - option.state = state | (viewItems.at(i).expanded - ? QStyle::State_Open : QStyle::State_None); + option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None) + | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None ); d->current = i; d->spanning = viewItems.at(i).spanning; if (!multipleRects || !drawn.contains(i)) { @@ -1748,8 +1748,7 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect, opt.rect = primitive; const bool expanded = viewItem.expanded; - const bool children = (((expanded && viewItem.total > 0)) // already laid out and has children - || d->hasVisibleChildren(index)); // not laid out yet, so we don't know + const bool children = viewItem.hasChildren; bool moreSiblings = false; if (d->hiddenIndexes.isEmpty()) moreSiblings = (d->model->rowCount(parent) - 1 > index.row()); @@ -3135,17 +3134,22 @@ void QTreeViewPrivate::layout(int i) last = j - hidden + children; } else { last = j - hidden + children; - viewItems[last].index = current; - viewItems[last].level = level; - viewItems[last].height = 0; - viewItems[last].spanning = q->isFirstColumnSpanned(current.row(), parent); - viewItems[last].expanded = false; - viewItems[last].total = 0; + QTreeViewItem *item = &viewItems[last]; + item->index = current; + item->level = level; + item->height = 0; + item->spanning = q->isFirstColumnSpanned(current.row(), parent); + item->expanded = false; + item->total = 0; if (isIndexExpanded(current)) { - viewItems[last].expanded = true; + item->expanded = true; layout(last); - children += viewItems[last].total; + item = &viewItems[last]; + children += item->total; + item->hasChildren = item->total > 0; last = j - hidden + children; + } else { + item->hasChildren = hasVisibleChildren(current); } } } diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h index def8253..f89c328 100644 --- a/src/gui/itemviews/qtreeview_p.h +++ b/src/gui/itemviews/qtreeview_p.h @@ -66,7 +66,8 @@ struct QTreeViewItem QModelIndex index; // we remove items whenever the indexes are invalidated uint expanded : 1; uint spanning : 1; - uint total : 30; // total number of children visible + uint hasChildren : 1; // if the item has visible children (even if collapsed) + uint total : 29; // total number of children visible uint level : 16; // indentation int height : 16; // row height }; diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index da58725..8d824cb 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -2891,7 +2891,8 @@ void tst_QTreeView::styleOptionViewItem() QVERIFY(!opt.text.isEmpty()); QCOMPARE(opt.index, index); - QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); + if (allCollapsed) + QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable")); if (opt.text.contains("Beginning")) @@ -2911,12 +2912,15 @@ void tst_QTreeView::styleOptionViewItem() else QCOMPARE(opt.checkState, Qt::Unchecked); + QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren")); + QVERIFY(!opt.text.contains("Assert")); QStyledItemDelegate::paint(painter, option, index); count++; } mutable int count; + bool allCollapsed; }; QTreeView view; @@ -2926,8 +2930,9 @@ void tst_QTreeView::styleOptionViewItem() view.setItemDelegate(&delegate); model.appendRow(QList() << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par1 = new QStandardItem("Beginning HasChildren"); model.appendRow(QList() - << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << par1 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); model.appendRow(QList() << new QStandardItem("OnlyOne") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") ); QStandardItem *checkable = new QStandardItem("Checkable"); @@ -2938,12 +2943,37 @@ void tst_QTreeView::styleOptionViewItem() model.appendRow(QList() << new QStandardItem("Beginning") << checkable << checked << new QStandardItem("End") ); + par1->appendRow(QList() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par2 = new QStandardItem("Beginning HasChildren"); + par1->appendRow(QList() + << par2 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); + par2->appendRow(QList() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + + QStandardItem *par3 = new QStandardItem("Beginning"); + par1->appendRow(QList() + << par3 << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + par3->appendRow(QList() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + view.setRowHidden(0, par3->index(), true); + view.setFirstColumnSpanned(2, QModelIndex(), true); view.setAlternatingRowColors(true); delegate.count = 0; + delegate.allCollapsed = true; view.showMaximized(); + QApplication::processEvents(); QTRY_VERIFY(delegate.count >= 13); + delegate.count = 0; + delegate.allCollapsed = false; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 13); + view.collapse(par2->index()); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); } class task174627_TreeView : public QTreeView @@ -3508,6 +3538,5 @@ void tst_QTreeView::task245654_changeModelAndExpandAll() } - QTEST_MAIN(tst_QTreeView) #include "tst_qtreeview.moc" -- cgit v0.12 From 0897713a560700f574386499a872f59e3fc4ce7d Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 12:45:21 +0100 Subject: QTreeView: Make sure the state QStyle::State_Sibling is correctly set That state used not to be set for drawing the content of the items. Also, it could be wrong for branches if there was hidden items. Reviewed-by: Thierry Task-number: related to 234930 --- src/gui/itemviews/qtreeview.cpp | 17 ++++++++--------- src/gui/itemviews/qtreeview_p.h | 3 ++- tests/auto/qtreeview/tst_qtreeview.cpp | 15 +++++++++++---- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index 49c8e34..e74ecfc 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1423,7 +1423,8 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const const int itemHeight = d->itemHeight(i); option.rect.setRect(0, y, viewportWidth, itemHeight); option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None) - | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None ); + | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None) + | (viewItems.at(i).hasMoreSiblings ? QStyle::State_Sibling : QStyle::State_None); d->current = i; d->spanning = viewItems.at(i).spanning; if (!multipleRects || !drawn.contains(i)) { @@ -1749,12 +1750,7 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect, const bool expanded = viewItem.expanded; const bool children = viewItem.hasChildren; - bool moreSiblings = false; - if (d->hiddenIndexes.isEmpty()) - moreSiblings = (d->model->rowCount(parent) - 1 > index.row()); - else - moreSiblings = ((d->viewItems.size() > item +1) - && (d->viewItems.at(item + 1).index.parent() == parent)); + bool moreSiblings = viewItem.hasMoreSiblings; opt.state = QStyle::State_Item | extraFlags | (moreSiblings ? QStyle::State_Sibling : QStyle::State_None) @@ -3126,7 +3122,7 @@ void QTreeViewPrivate::layout(int i) int hidden = 0; int last = 0; int children = 0; - + QTreeViewItem *item = 0; for (int j = first; j < first + count; ++j) { current = model->index(j - first, 0, parent); if (isRowHidden(current)) { @@ -3134,13 +3130,16 @@ void QTreeViewPrivate::layout(int i) last = j - hidden + children; } else { last = j - hidden + children; - QTreeViewItem *item = &viewItems[last]; + if (item) + item->hasMoreSiblings = true; + item = &viewItems[last]; item->index = current; item->level = level; item->height = 0; item->spanning = q->isFirstColumnSpanned(current.row(), parent); item->expanded = false; item->total = 0; + item->hasMoreSiblings = false; if (isIndexExpanded(current)) { item->expanded = true; layout(last); diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h index f89c328..62676d8 100644 --- a/src/gui/itemviews/qtreeview_p.h +++ b/src/gui/itemviews/qtreeview_p.h @@ -67,7 +67,8 @@ struct QTreeViewItem uint expanded : 1; uint spanning : 1; uint hasChildren : 1; // if the item has visible children (even if collapsed) - uint total : 29; // total number of children visible + uint hasMoreSiblings : 1; + uint total : 28; // total number of children visible uint level : 16; // indentation int height : 16; // row height }; diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index 8d824cb..cbc999f 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -2913,6 +2913,7 @@ void tst_QTreeView::styleOptionViewItem() QCOMPARE(opt.checkState, Qt::Unchecked); QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren")); + QCOMPARE(!!(opt.state & QStyle::State_Sibling) , !opt.text.contains("Last")); QVERIFY(!opt.text.contains("Assert")); @@ -2942,6 +2943,8 @@ void tst_QTreeView::styleOptionViewItem() checked->setCheckState(Qt::Checked); model.appendRow(QList() << new QStandardItem("Beginning") << checkable << checked << new QStandardItem("End") ); + model.appendRow(QList() + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); par1->appendRow(QList() << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); @@ -2949,14 +2952,18 @@ void tst_QTreeView::styleOptionViewItem() par1->appendRow(QList() << par2 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); par2->appendRow(QList() - << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); - QStandardItem *par3 = new QStandardItem("Beginning"); + QStandardItem *par3 = new QStandardItem("Beginning Last"); par1->appendRow(QList() - << par3 << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << par3 << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); par3->appendRow(QList() - << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); view.setRowHidden(0, par3->index(), true); + par1->appendRow(QList() + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); + view.setRowHidden(3, par1->index(), true); + view.setFirstColumnSpanned(2, QModelIndex(), true); view.setAlternatingRowColors(true); -- cgit v0.12 From d683fd25512dedacdac141222db36209ef65e42d Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Tue, 27 Oct 2009 13:43:42 +0100 Subject: Fixed QTreeView not emitting doubleCliked when 1st col is spanned Task-number: QTBUG-976 Reviewed-by: ogoffart --- src/gui/itemviews/qtreeview.cpp | 4 +--- tests/auto/qtreeview/tst_qtreeview.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index e74ecfc..16b454d 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1840,9 +1840,7 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event) return; // user clicked outside the items const QPersistentModelIndex firstColumnIndex = d->viewItems.at(i).index; - - int column = d->header->logicalIndexAt(event->x()); - QPersistentModelIndex persistent = firstColumnIndex.sibling(firstColumnIndex.row(), column); + const QPersistentModelIndex persistent = indexAt(event->pos()); if (d->pressedIndex != persistent) { mousePressEvent(event); diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index cbc999f..1429771 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -235,6 +235,7 @@ private slots: void task254234_proxySort(); void task248022_changeSelection(); void task245654_changeModelAndExpandAll(); + void doubleClickedWithSpans(); }; class QtTestModel: public QAbstractItemModel @@ -3544,6 +3545,34 @@ void tst_QTreeView::task245654_changeModelAndExpandAll() } +void tst_QTreeView::doubleClickedWithSpans() +{ + QTreeView view; + QStandardItemModel model(1, 2); + view.setModel(&model); + view.setFirstColumnSpanned(0, QModelIndex(), true); + view.show(); + + QPoint p(10, 10); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + QSignalSpy spy(&view, SIGNAL(doubleClicked(QModelIndex))); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 1); + + //let's click on the 2nd column + p.setX(p.x() + view.header()->sectionSize(0)); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + + //end the previous edition + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::qWait(100); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 2); +} QTEST_MAIN(tst_QTreeView) #include "tst_qtreeview.moc" -- cgit v0.12 From 8f040ea4da93f1b9cae1db560e5e9f9b3140b3ff Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 13:48:39 +0100 Subject: QVariant::isNull does not return the right result with QVariant::setValue Inspired by merge request 1911 Reveiwed-by: Thierry --- src/corelib/kernel/qvariant.h | 1 + tests/auto/qvariant/tst_qvariant.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index eb4fb56..4cce529 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -460,6 +460,7 @@ inline void qVariantSetValue(QVariant &v, const T &t) QVariant::Private &d = v.data_ptr(); if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) { d.type = type; + d.is_null = false; T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); if (QTypeInfo::isComplex) old->~T(); diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp index 9295897..de4d7b4 100644 --- a/tests/auto/qvariant/tst_qvariant.cpp +++ b/tests/auto/qvariant/tst_qvariant.cpp @@ -318,6 +318,14 @@ void tst_QVariant::constructor() QVariant var6(qlonglong(0)); QCOMPARE(var6.type(), QVariant::LongLong); QCOMPARE(var6.typeName(), "qlonglong"); + + QVariant var7 = 5; + QVERIFY(var7.isValid()); + QVERIFY(!var7.isNull()); + QVariant var8; + var8.setValue(5); + QVERIFY(var8.isValid()); + QVERIFY(!var8.isNull()); } void tst_QVariant::copy_constructor() -- cgit v0.12 From 138962d1c25a9cbb4375aa09bdeb7901c6536ce1 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 27 Oct 2009 14:03:06 +0100 Subject: Carbon: active window not restored After closing a window we used to go through the list of kDocumentWindowClass windows to pick the next one to pop to front. This patch will search the kMoveableWindowClass list of windows first, and as such, pop to front any modal window first Rev-By: MortenS --- src/gui/kernel/qwidget_mac.mm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index d08f8a9..95c0bed 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -3390,12 +3390,19 @@ void QWidgetPrivate::hide_sys() w = q->parentWidget()->window(); if(!w || (!w->isVisible() && !w->isMinimized())) { #ifndef QT_MAC_USE_COCOA - for(WindowPtr wp = GetFrontWindowOfClass(kDocumentWindowClass, true); - wp; wp = GetNextWindowOfClass(wp, kDocumentWindowClass, true)) { + for (WindowPtr wp = GetFrontWindowOfClass(kMovableModalWindowClass, true); + wp; wp = GetNextWindowOfClass(wp, kMovableModalWindowClass, true)) { if((w = qt_mac_find_window(wp))) break; } if (!w){ + for (WindowPtr wp = GetFrontWindowOfClass(kDocumentWindowClass, true); + wp; wp = GetNextWindowOfClass(wp, kDocumentWindowClass, true)) { + if((w = qt_mac_find_window(wp))) + break; + } + } + if (!w){ for(WindowPtr wp = GetFrontWindowOfClass(kSimpleWindowClass, true); wp; wp = GetNextWindowOfClass(wp, kSimpleWindowClass, true)) { if((w = qt_mac_find_window(wp))) -- cgit v0.12 From 8135af2cebdaaccefb95f0be149328077d237a89 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Tue, 27 Oct 2009 13:03:23 +0100 Subject: Fix integer overflow in string.remove len parameter Task: 262677 Reviewed-by: joao --- src/corelib/tools/qstring.cpp | 6 +++--- tests/auto/qstring/tst_qstring.cpp | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index a996f30..55ad28d 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -1590,12 +1590,12 @@ QString &QString::append(QChar ch) */ QString &QString::remove(int pos, int len) { - if (pos < 0) + if (pos < 0) // count from end of string pos += d->size; if (pos < 0 || pos >= d->size) { // range problems - } else if (pos + len >= d->size) { // pos ok - resize(pos); + } else if (len >= d->size - pos) { + resize(pos); // truncate } else if (len > 0) { detach(); memmove(d->data + pos, d->data + pos + len, diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp index 5dc1da7..2eb3152 100644 --- a/tests/auto/qstring/tst_qstring.cpp +++ b/tests/auto/qstring/tst_qstring.cpp @@ -201,6 +201,7 @@ private slots: void repeatedSignature() const; void repeated() const; void repeated_data() const; + void task262677remove(); }; typedef QList IntList; @@ -4669,6 +4670,14 @@ void tst_QString::repeated_data() const << 4; } +void tst_QString::task262677remove() +{ + QString driveName = QLatin1String("V:\\blahblah\\more_blahblah\\"); + driveName.remove(2, INT_MAX); // should be "V:" - instead, it's "V::\\blahblah\\more_blahblah\\" + QVERIFY(driveName == QLatin1String("V:")); +} + + QTEST_APPLESS_MAIN(tst_QString) #include "tst_qstring.moc" -- cgit v0.12 From c79d83b6d661ea49d893b4590480a434d75b19bd Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Tue, 27 Oct 2009 15:18:59 +0100 Subject: QComboBox did not emit currentItemChanged when the model was reset Task-number: QTBUG-569 Reviewed-by: ogoffart --- src/gui/widgets/qcombobox.cpp | 27 +++++++++++---------------- src/gui/widgets/qcombobox.h | 3 +-- src/gui/widgets/qcombobox_p.h | 3 +-- tests/auto/qcombobox/tst_qcombobox.cpp | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index 0e888d6..7cf35c7 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -192,6 +192,8 @@ void QComboBoxPrivate::_q_modelReset() lineEdit->setText(QString()); updateLineEditGeometry(); } + if (currentIndex.row() != indexBeforeChange) + _q_emitCurrentIndexChanged(currentIndex); q->update(); } @@ -992,14 +994,6 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn } } -void QComboBoxPrivate::_q_rowsAboutToBeInserted(const QModelIndex & parent, - int /*start*/, int /*end*/) -{ - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); -} - void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end) { Q_Q(QComboBox); @@ -1022,11 +1016,8 @@ void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int } } -void QComboBoxPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int /*start*/, int /*end*/) +void QComboBoxPrivate::_q_updateIndexBeforeChange() { - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); } @@ -1868,15 +1859,17 @@ void QComboBox::setModel(QAbstractItemModel *model) disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); disconnect(d->model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + disconnect(d->model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); if (d->model->QObject::parent() == this) @@ -1888,15 +1881,17 @@ void QComboBox::setModel(QAbstractItemModel *model) connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); connect(model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + connect(model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h index 6a85096..4089a09 100644 --- a/src/gui/widgets/qcombobox.h +++ b/src/gui/widgets/qcombobox.h @@ -308,9 +308,8 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_returnPressed()) Q_PRIVATE_SLOT(d_func(), void _q_resetButton()) Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end)) + Q_PRIVATE_SLOT(d_func(), void _q_updateIndexBeforeChange()) Q_PRIVATE_SLOT(d_func(), void _q_rowsInserted(const QModelIndex & parent, int start, int end)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) Q_PRIVATE_SLOT(d_func(), void _q_modelReset()) diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h index f7458c4..06e51e4 100644 --- a/src/gui/widgets/qcombobox_p.h +++ b/src/gui/widgets/qcombobox_p.h @@ -357,9 +357,8 @@ public: #endif void _q_resetButton(); void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end); + void _q_updateIndexBeforeChange(); void _q_rowsInserted(const QModelIndex & parent, int start, int end); - void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end); void _q_rowsRemoved(const QModelIndex & parent, int start, int end); void updateArrow(QStyle::StateFlag state); bool updateHoverControl(const QPoint &pos); diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp index 0d3469d..8acae7a 100644 --- a/tests/auto/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/qcombobox/tst_qcombobox.cpp @@ -152,6 +152,7 @@ private slots: void subControlRectsWithOffset(); void task260974_menuItemRectangleForComboBoxPopup(); void removeItem(); + void resetModel(); protected slots: void onEditTextChanged( const QString &newString ); @@ -2416,5 +2417,37 @@ void tst_QComboBox::removeItem() QCOMPARE(cb.count(), 0); } +void tst_QComboBox::resetModel() +{ + class StringListModel : public QStringListModel + { + public: + StringListModel(const QStringList &list) : QStringListModel(list) + { + } + + void reset() + { + QStringListModel::reset(); + } + }; + QComboBox cb; + StringListModel model( QStringList() << "1" << "2"); + QSignalSpy spy(&cb, SIGNAL(currentIndexChanged(int))); + QCOMPARE(spy.count(), 0); + QCOMPARE(cb.currentIndex(), -1); //no selection + + cb.setModel(&model); + + QCOMPARE(spy.count(), 1); + QCOMPARE(cb.currentIndex(), 0); //first item selected + + model.reset(); + QCOMPARE(spy.count(), 2); + QCOMPARE(cb.currentIndex(), -1); //no selection + +} + + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" -- cgit v0.12 From df26c6e14287f1a02c636c4624c5085fd8271d11 Mon Sep 17 00:00:00 2001 From: David Faure Date: Tue, 27 Oct 2009 15:26:11 +0100 Subject: Fix incomplete documentation for Qt::DecorationRole As noticed by Laurent Montel. Merge-request: 1812 Reviewed-by: Olivier Goffart --- src/corelib/global/qnamespace.qdoc | 2 +- src/gui/itemviews/qitemdelegate.cpp | 2 +- src/gui/itemviews/qstyleditemdelegate.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index e8d6df0..438678a 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -2509,7 +2509,7 @@ \value DisplayRole The key data to be rendered in the form of text. (QString) \value DecorationRole The data to be rendered as a decoration in the form - of an icon. (QColor) + of an icon. (QColor, QIcon or QPixmap) \value EditRole The data in a form suitable for editing in an editor. (QString) \value ToolTipRole The data displayed in the item's tooltip. (QString) diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp index 871a4b1..3b3036d 100644 --- a/src/gui/itemviews/qitemdelegate.cpp +++ b/src/gui/itemviews/qitemdelegate.cpp @@ -255,7 +255,7 @@ QSizeF QItemDelegatePrivate::doTextLayout(int lineWidth) const \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont diff --git a/src/gui/itemviews/qstyleditemdelegate.cpp b/src/gui/itemviews/qstyleditemdelegate.cpp index 1c36787..1ca0391 100644 --- a/src/gui/itemviews/qstyleditemdelegate.cpp +++ b/src/gui/itemviews/qstyleditemdelegate.cpp @@ -148,7 +148,7 @@ public: \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap, QImage and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont -- cgit v0.12 From 576aced5cb8270b1827a505aa0ae815781b1cfa5 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Tue, 27 Oct 2009 16:42:55 +0100 Subject: QToolBar has now a topLevelChanged signal like in QDockWidget Task-number: QTBUG-4169 Reviewed-by: ogoffart --- src/gui/widgets/qtoolbar.cpp | 16 ++++++++++++++++ src/gui/widgets/qtoolbar.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp index 40c0b02..5596ca4 100644 --- a/src/gui/widgets/qtoolbar.cpp +++ b/src/gui/widgets/qtoolbar.cpp @@ -183,6 +183,9 @@ void QToolBarPrivate::setWindowState(bool floating, bool unplug, const QRect &re if (visible) q->show(); + + if (floating != wasFloating) + emit q->topLevelChanged(floating); } void QToolBarPrivate::initDrag(const QPoint &pos) @@ -518,6 +521,19 @@ void QToolBarPrivate::plug(const QRect &r) */ /*! + \since 4.6 + + \fn void QToolBar::topLevelChanged(bool topLevel) + + This signal is emitted when the \l floating property changes. + The \a topLevel parameter is true if the toolbar is now floating; + otherwise it is false. + + \sa isWindow() +*/ + + +/*! Constructs a QToolBar with the given \a parent. */ QToolBar::QToolBar(QWidget *parent) diff --git a/src/gui/widgets/qtoolbar.h b/src/gui/widgets/qtoolbar.h index a084673..a1a24f0 100644 --- a/src/gui/widgets/qtoolbar.h +++ b/src/gui/widgets/qtoolbar.h @@ -142,6 +142,7 @@ Q_SIGNALS: void orientationChanged(Qt::Orientation orientation); void iconSizeChanged(const QSize &iconSize); void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); + void topLevelChanged(bool topLevel); protected: void actionEvent(QActionEvent *event); -- cgit v0.12 From f0fa85911b1b5aeedf61a1c41ee81674b1575cc7 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Tue, 27 Oct 2009 17:01:32 +0100 Subject: In Qt3Support, the "line up" action for toolbars was not working Task-number: QTBUG-1063 Reviewed-by: ogoffart --- src/qt3support/widgets/q3dockarea.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt3support/widgets/q3dockarea.cpp b/src/qt3support/widgets/q3dockarea.cpp index afeefff..bb34622 100644 --- a/src/qt3support/widgets/q3dockarea.cpp +++ b/src/qt3support/widgets/q3dockarea.cpp @@ -1019,6 +1019,7 @@ void Q3DockArea::lineUp(bool keepNewLines) if (!keepNewLines) dw->setNewLine(false); } + layout->invalidate(); layout->activate(); } -- cgit v0.12 From ea139224d49a543cbd09fff450df101720095307 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Tue, 27 Oct 2009 14:50:57 +0100 Subject: Fix for Gtk+ toolbuttons and sliders. Maemo5 looks very weird without these patches. Reviewed-By: jbache --- src/gui/styles/gtksymbols.cpp | 3 +++ src/gui/styles/gtksymbols_p.h | 2 ++ src/gui/styles/qgtkstyle.cpp | 36 +++++++++++++++++++++++++++++------- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/gui/styles/gtksymbols.cpp b/src/gui/styles/gtksymbols.cpp index 6ec5796..32fde62 100644 --- a/src/gui/styles/gtksymbols.cpp +++ b/src/gui/styles/gtksymbols.cpp @@ -98,6 +98,7 @@ Ptr_gtk_check_menu_item_new QGtk::gtk_check_menu_item_new = 0; Ptr_gtk_menu_bar_new QGtk::gtk_menu_bar_new = 0; Ptr_gtk_menu_new QGtk::gtk_menu_new = 0; Ptr_gtk_button_new QGtk::gtk_button_new = 0; +Ptr_gtk_tool_button_new QGtk::gtk_tool_button_new = 0; Ptr_gtk_hbutton_box_new QGtk::gtk_hbutton_box_new = 0; Ptr_gtk_check_button_new QGtk::gtk_check_button_new = 0; Ptr_gtk_radio_button_new QGtk::gtk_radio_button_new = 0; @@ -266,6 +267,7 @@ static void resolveGtk() QGtk::gtk_separator_tool_item_new = (Ptr_gtk_separator_tool_item_new)libgtk.resolve("gtk_separator_tool_item_new"); QGtk::gtk_toolbar_insert = (Ptr_gtk_toolbar_insert)libgtk.resolve("gtk_toolbar_insert"); QGtk::gtk_button_new = (Ptr_gtk_button_new)libgtk.resolve("gtk_button_new"); + QGtk::gtk_tool_button_new = (Ptr_gtk_tool_button_new)libgtk.resolve("gtk_tool_button_new"); QGtk::gtk_hbutton_box_new = (Ptr_gtk_hbutton_box_new)libgtk.resolve("gtk_hbutton_box_new"); QGtk::gtk_check_button_new = (Ptr_gtk_check_button_new)libgtk.resolve("gtk_check_button_new"); QGtk::gtk_radio_button_new = (Ptr_gtk_radio_button_new)libgtk.resolve("gtk_radio_button_new"); @@ -717,6 +719,7 @@ void QGtk::initGtkWidgets() GtkWidget *gtkButton = QGtk::gtk_button_new(); add_widget(gtkButton); g_signal_connect(gtkButton, "style-set", G_CALLBACK(gtkStyleSetCallback), NULL); + add_widget(QGtk::gtk_tool_button_new(NULL, NULL)); add_widget(QGtk::gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE)); add_widget(QGtk::gtk_hbutton_box_new()); add_widget(QGtk::gtk_check_button_new()); diff --git a/src/gui/styles/gtksymbols_p.h b/src/gui/styles/gtksymbols_p.h index 313d948..2cf21ce 100644 --- a/src/gui/styles/gtksymbols_p.h +++ b/src/gui/styles/gtksymbols_p.h @@ -96,6 +96,7 @@ typedef GtkWidget* (*Ptr_gtk_combo_box_entry_new)(void); typedef GtkWidget* (*Ptr_gtk_toolbar_new)(void); typedef GtkWidget* (*Ptr_gtk_spin_button_new)(GtkAdjustment*, double, int); typedef GtkWidget* (*Ptr_gtk_button_new)(void); +typedef GtkWidget* (*Ptr_gtk_tool_button_new)(GtkWidget *, const gchar *); typedef GtkWidget* (*Ptr_gtk_hbutton_box_new)(void); typedef GtkWidget* (*Ptr_gtk_check_button_new)(void); typedef GtkWidget* (*Ptr_gtk_radio_button_new)(GSList *); @@ -261,6 +262,7 @@ public: static Ptr_gtk_menu_new gtk_menu_new; static Ptr_gtk_expander_new gtk_expander_new; static Ptr_gtk_button_new gtk_button_new; + static Ptr_gtk_tool_button_new gtk_tool_button_new; static Ptr_gtk_hbutton_box_new gtk_hbutton_box_new; static Ptr_gtk_check_button_new gtk_check_button_new; static Ptr_gtk_radio_button_new gtk_radio_button_new; diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp index 414580e..d315c98 100644 --- a/src/gui/styles/qgtkstyle.cpp +++ b/src/gui/styles/qgtkstyle.cpp @@ -1035,15 +1035,24 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element, } break; - case PE_PanelButtonCommand: { + case PE_PanelButtonCommand: + case PE_PanelButtonTool: { bool isDefault = false; + bool isTool = (element == PE_PanelButtonTool); if (const QStyleOptionButton *btn = qstyleoption_cast(option)) isDefault = btn->features & QStyleOptionButton::DefaultButton; + // don't draw a frame for tool buttons that have the autoRaise flag and are not enabled or on + if (isTool && !(option->state & State_Enabled || option->state & State_On) && (option->state & State_AutoRaise)) + break; + // don't draw a frame for dock widget buttons, unless we are hovering + if (widget && widget->inherits("QDockWidgetTitleButton") && !(option->state & State_MouseOver)) + break; + GtkStateType state = gtkPainter.gtkState(option); if (option->state & State_On || option->state & State_Sunken) state = GTK_STATE_ACTIVE; - GtkWidget *gtkButton = QGtk::gtkWidget(QLS("GtkButton")); + GtkWidget *gtkButton = QGtk::gtkWidget(isTool ? QLS("GtkToolButton.GtkButton") : QLS("GtkButton")); gint focusWidth, focusPad; gboolean interiorFocus = false; QGtk::gtk_widget_style_get (gtkButton, @@ -1555,7 +1564,7 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom QStyleOptionToolButton label = *toolbutton; label.state = bflags; - GtkWidget *gtkButton = QGtk::gtkWidget(QLS("GtkButton")); + GtkWidget *gtkButton = QGtk::gtkWidget(QLS("GtkToolButton.GtkButton")); QPalette pal = toolbutton->palette; if (option->state & State_Enabled && option->state & State_MouseOver && !(widget && widget->testAttribute(Qt::WA_SetPalette))) { @@ -1931,13 +1940,26 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom if (!QGtk::gtk_check_version(2, 10, 0)) QGtk::gtk_widget_style_get((GtkWidget*)(scaleWidget), "trough-side-details", &trough_side_details, NULL); - if (trough_side_details && horizontal) { //### Vertical sliders look broken with this for some reason + if (!trough_side_details) { + gtkPainter.paintBox( scaleWidget, "trough", grooveRect, state, + GTK_SHADOW_IN, style, QString(QLS("p%0")).arg(slider->sliderPosition)); + } else { + QRect upperGroove = grooveRect; QRect lowerGroove = grooveRect; - lowerGroove.setRight(handle.center().x()); + + if (horizontal) { + upperGroove.setLeft(handle.center().x()); + lowerGroove.setRight(handle.center().x()); + } else { + upperGroove.setBottom(handle.center().y()); + lowerGroove.setTop(handle.center().y()); + } + + gtkPainter.paintBox( scaleWidget, "trough-upper", upperGroove, state, + GTK_SHADOW_IN, style, QString(QLS("p%0")).arg(slider->sliderPosition)); gtkPainter.paintBox( scaleWidget, "trough-lower", lowerGroove, state, GTK_SHADOW_IN, style, QString(QLS("p%0")).arg(slider->sliderPosition)); } - } if (option->subControls & SC_SliderTickmarks) { @@ -3116,7 +3138,7 @@ QSize QGtkStyle::sizeFromContents(ContentsType type, const QStyleOption *option, case CT_ToolButton: if (const QStyleOptionToolButton *toolbutton = qstyleoption_cast(option)) { - GtkWidget *gtkButton = QGtk::gtkWidget(QLS("GtkButton")); + GtkWidget *gtkButton = QGtk::gtkWidget(QLS("GtkToolButton.GtkButton")); newSize = size + QSize(2 * gtkButton->style->xthickness, 1 + 2 * gtkButton->style->ythickness); if (widget && qobject_cast(widget->parentWidget())) { QSize minSize(0, 25); -- cgit v0.12 From 27d5b8764980cbccab29cb86e10751a4e5937d01 Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Tue, 27 Oct 2009 17:25:58 +0000 Subject: Guard shadow builds against stale qconfig.cpp qconfig.cpp is generated immediately after accepting the licensing agreement, and contains all the fixed paths qt uses. If this file is present in a source dir used by shadow builds, this qconfig.cpp will take precedence over the shadow builds qconfig.cpp and hence impose its paths throughout the shadow built Qt. This change adds qconfig.cpp to the list of generated files to guard against existing in the source directory when performing a shadow build. Reviewed-by: Thiago Macieira --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 035bd4a..08ec524 100755 --- a/configure +++ b/configure @@ -2140,7 +2140,7 @@ if [ "$OPT_SHADOW" = "maybe" ]; then fi fi if [ "$OPT_SHADOW" = "yes" ]; then - if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then + if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then echo >&2 "You cannot make a shadow build from a source tree containing a previous build." echo >&2 "Cannot proceed." exit 1 -- cgit v0.12 From 588b1c40115b975ad4998251646f00db23144cd4 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 20:07:38 +0100 Subject: Compile --- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 5bc6708..5f7d5b9 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include +#include #include #include -- cgit v0.12 From b209ab1e2139cb50e26bbeeb094da9a6a4a8a067 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 27 Oct 2009 19:58:10 +0100 Subject: Always use QExplicitlySharedDataPointer Fixes a refcount bug that occurs when QFont is constructed from a QFontPrivate* that was created without an initial ref(). Merge-request: 1831 Reviewed-by: Olivier Goffart --- src/gui/text/qfont.cpp | 12 +++++------ src/gui/text/qfontinfo.h | 3 ++- src/gui/text/qfontmetrics.cpp | 49 +++++++++++++++++++------------------------ src/gui/text/qfontmetrics.h | 5 +++-- 4 files changed, 32 insertions(+), 37 deletions(-) diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 1285935..8722f5b 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -2324,22 +2324,22 @@ QDataStream &operator>>(QDataStream &s, QFont &font) */ QFontInfo::QFontInfo(const QFont &font) : d(font.d.data()) -{ d->ref.ref(); } +{ +} /*! Constructs a copy of \a fi. */ QFontInfo::QFontInfo(const QFontInfo &fi) - : d(fi.d) -{ d->ref.ref(); } + : d(fi.d.data()) +{ +} /*! Destroys the font info object. */ QFontInfo::~QFontInfo() { - if (!d->ref.deref()) - delete d; } /*! @@ -2347,7 +2347,7 @@ QFontInfo::~QFontInfo() */ QFontInfo &QFontInfo::operator=(const QFontInfo &fi) { - qAtomicAssign(d, fi.d); + d = fi.d.data(); return *this; } diff --git a/src/gui/text/qfontinfo.h b/src/gui/text/qfontinfo.h index 335d761..0998949 100644 --- a/src/gui/text/qfontinfo.h +++ b/src/gui/text/qfontinfo.h @@ -43,6 +43,7 @@ #define QFONTINFO_H #include +#include QT_BEGIN_HEADER @@ -77,7 +78,7 @@ public: bool exactMatch() const; private: - QFontPrivate *d; + QExplicitlySharedDataPointer d; }; QT_END_NAMESPACE diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index ce122aa..b8c1b33 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -165,7 +165,6 @@ extern int qt_defaultDpi(); QFontMetrics::QFontMetrics(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -196,7 +195,6 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -205,8 +203,9 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetrics::QFontMetrics(const QFontMetrics &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -214,8 +213,6 @@ QFontMetrics::QFontMetrics(const QFontMetrics &fm) */ QFontMetrics::~QFontMetrics() { - if (!d->ref.deref()) - delete d; } /*! @@ -223,7 +220,7 @@ QFontMetrics::~QFontMetrics() */ QFontMetrics &QFontMetrics::operator=(const QFontMetrics &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -536,7 +533,7 @@ int QFontMetrics::width(const QString &text, int len) const if (len == 0) return 0; - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; return qRound(layout.width(0, len)); } @@ -612,7 +609,7 @@ int QFontMetrics::charWidth(const QString &text, int pos) const int from = qMax(0, pos - 8); int to = qMin(text.length(), pos + 8); QString cstr = QString::fromRawData(text.unicode() + from, to - from); - QTextEngine layout(cstr, d); + QTextEngine layout(cstr, d.data()); layout.ignoreBidi = true; layout.itemize(); width = qRound(layout.width(pos-from, 1)); @@ -661,7 +658,7 @@ QRect QFontMetrics::boundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, text.length()); @@ -770,7 +767,7 @@ QRect QFontMetrics::boundingRect(const QRect &rect, int flags, const QString &te QRectF rb; QRectF rr(rect); - qt_format_text(QFont(d), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb.toAlignedRect(); @@ -831,7 +828,7 @@ QRect QFontMetrics::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -876,7 +873,7 @@ QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, in } _text = _text.mid(posA); } - QStackTextEngine engine(_text, QFont(d)); + QStackTextEngine engine(_text, QFont(d.data())); return engine.elidedText(mode, width, flags); } @@ -989,9 +986,8 @@ int QFontMetrics::lineWidth() const from the given \a fontMetrics object. */ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) - : d(fontMetrics.d) + : d(fontMetrics.d.data()) { - d->ref.ref(); } /*! @@ -1001,7 +997,7 @@ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) { - qAtomicAssign(d, other.d); + d = other.d.data(); return *this; } @@ -1021,7 +1017,6 @@ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) QFontMetricsF::QFontMetricsF(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -1052,7 +1047,6 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -1061,8 +1055,9 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -1070,8 +1065,6 @@ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) */ QFontMetricsF::~QFontMetricsF() { - if (!d->ref.deref()) - delete d; } /*! @@ -1079,7 +1072,7 @@ QFontMetricsF::~QFontMetricsF() */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetricsF &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -1374,7 +1367,7 @@ qreal QFontMetricsF::rightBearing(QChar ch) const */ qreal QFontMetricsF::width(const QString &text) const { - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); return layout.width(0, text.length()).toReal(); @@ -1451,7 +1444,7 @@ QRectF QFontMetricsF::boundingRect(const QString &text) const if (len == 0) return QRectF(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, len); @@ -1559,7 +1552,7 @@ QRectF QFontMetricsF::boundingRect(const QRectF &rect, int flags, const QString& tabArrayLen++; QRectF rb; - qt_format_text(QFont(d), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb; } @@ -1624,7 +1617,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -1649,7 +1642,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const */ QString QFontMetricsF::elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags) const { - QStackTextEngine engine(text, QFont(d)); + QStackTextEngine engine(text, QFont(d.data())); return engine.elidedText(mode, QFixed::fromReal(width), flags); } diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index 1147e3a..23200c5 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -43,6 +43,7 @@ #define QFONTMETRICS_H #include +#include #ifndef QT_INCLUDE_COMPAT #include #endif @@ -131,7 +132,7 @@ private: friend class QFontMetricsF; friend class QStackTextEngine; - QFontPrivate *d; + QExplicitlySharedDataPointer d; }; @@ -187,7 +188,7 @@ public: inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); } private: - QFontPrivate *d; + QExplicitlySharedDataPointer d; }; QT_END_NAMESPACE -- cgit v0.12 From df0001a3d62938c713b351c7e59228b803ec5670 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 19:49:33 +0100 Subject: QFontMetrics test For commit b209ab1e2139cb5 --- tests/auto/qfontmetrics/tst_qfontmetrics.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp index 6b2f0fe..e80f8e0 100644 --- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp @@ -100,6 +100,20 @@ void tst_QFontMetrics::same() QFontMetrics fm(font); const QString text = QLatin1String("Some stupid STRING"); QCOMPARE(fm.size(0, text), fm.size(0, text)) ; + + { + QImage image; + QFontMetrics fm2(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm2.size(0, text2), fm2.size(0, text2)); //used to crash + } + + { + QImage image; + QFontMetricsF fm3(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm3.size(0, text2), fm3.size(0, text2)); //used to crash + } } -- cgit v0.12 From a8487d7cc197540ba08eeb249bd50defb70aab99 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 27 Oct 2009 20:35:53 +0100 Subject: Doc: Remove unused file. Reviewed-by: Trust Me --- tools/qdoc3/test/qt-inc.qdocconf | 149 --------------------------------------- 1 file changed, 149 deletions(-) delete mode 100644 tools/qdoc3/test/qt-inc.qdocconf diff --git a/tools/qdoc3/test/qt-inc.qdocconf b/tools/qdoc3/test/qt-inc.qdocconf deleted file mode 100644 index 2ff5682..0000000 --- a/tools/qdoc3/test/qt-inc.qdocconf +++ /dev/null @@ -1,149 +0,0 @@ -include(compat.qdocconf) -include(macros.qdocconf) - -project = Qt -description = Qt Reference Documentation -url = http://qt.nokia.com/doc/4.6 - -edition.Desktop = QtCore QtGui QtNetwork QtOpenGL QtSql QtSvg QtXml QtScript \ - QtDesigner QtAssistant Qt3Support QAxContainer \ - QAxServer QtUiTools QtTest QtDBus -edition.DesktopLight = QtCore QtGui Qt3SupportLight QtTest - -language = Cpp - -norecursion = true -sources.fileextensions = "*.cpp *.qdoc" -sourcedirs = $QDOC_CURRENT_DIR -headerdirs = $QDOC_CURRENT_DIR -exampledirs = $QTDIR/doc/src \ - $QTDIR/examples \ - $QTDIR \ - $QTDIR/qmake/examples \ - $QTDIR/src/3rdparty/webkit/WebKit/qt/docs -imagedirs = $QTDIR/doc/src/images \ - $QTDIR/examples -outputdir = $QTDIR/doc/html -indexdir = $QTDIR/doc/indexes -indexes = $QDOC_INPUT_INDEXES -outputindex = $QDOC_OUTPUT_INDEX -base = file:$QTDIR/doc/html -versionsym = QT_VERSION_STR -defines = Q_QDOC \ - QT_.*_SUPPORT \ - QT_.*_LIB \ - QT_COMPAT \ - QT_KEYPAD_NAVIGATION \ - QT3_SUPPORT \ - Q_WS_.* \ - Q_OS_.* \ - Q_BYTE_ORDER \ - __cplusplus - -codeindent = 1 -extraimages.HTML = qt-logo \ - trolltech-logo - -Cpp.ignoretokens = QAXFACTORY_EXPORT \ - QDESIGNER_COMPONENTS_LIBRARY \ - QDESIGNER_EXTENSION_LIBRARY \ - QDESIGNER_SDK_LIBRARY \ - QDESIGNER_SHARED_LIBRARY \ - QDESIGNER_UILIB_LIBRARY \ - QM_EXPORT_CANVAS \ - QM_EXPORT_DNS \ - QM_EXPORT_DOM \ - QM_EXPORT_FTP \ - QM_EXPORT_HTTP \ - QM_EXPORT_ICONVIEW \ - QM_EXPORT_NETWORK \ - QM_EXPORT_OPENGL \ - QM_EXPORT_SQL \ - QM_EXPORT_TABLE \ - QM_EXPORT_WORKSPACE \ - QM_EXPORT_XML \ - QT_ASCII_CAST_WARN \ - QT_BEGIN_HEADER \ - QT_DESIGNER_STATIC \ - QT_END_HEADER \ - QT_WIDGET_PLUGIN_EXPORT \ - Q_COMPAT_EXPORT \ - Q_CORE_EXPORT \ - Q_EXPLICIT \ - Q_EXPORT \ - Q_EXPORT_CODECS_CN \ - Q_EXPORT_CODECS_JP \ - Q_EXPORT_CODECS_KR \ - Q_EXPORT_PLUGIN \ - Q_GFX_INLINE \ - Q_GUI_EXPORT \ - Q_GUI_EXPORT_INLINE \ - Q_GUI_EXPORT_STYLE_CDE \ - Q_GUI_EXPORT_STYLE_COMPACT \ - Q_GUI_EXPORT_STYLE_MAC \ - Q_GUI_EXPORT_STYLE_MOTIF \ - Q_GUI_EXPORT_STYLE_MOTIFPLUS \ - Q_GUI_EXPORT_STYLE_PLATINUM \ - Q_GUI_EXPORT_STYLE_POCKETPC \ - Q_GUI_EXPORT_STYLE_SGI \ - Q_GUI_EXPORT_STYLE_WINDOWS \ - Q_GUI_EXPORT_STYLE_WINDOWSXP \ - Q_INLINE_TEMPLATE \ - Q_NETWORK_EXPORT \ - Q_OPENGL_EXPORT \ - Q_OUTOFLINE_TEMPLATE \ - Q_SQL_EXPORT \ - Q_SVG_EXPORT \ - Q_SCRIPT_EXPORT \ - Q_TESTLIB_EXPORT \ - Q_TYPENAME \ - Q_XML_EXPORT \ - QDBUS_EXPORT \ - Q_GADGET \ - QWEBKIT_EXPORT -Cpp.ignoredirectives = Q_DECLARE_HANDLE \ - Q_DECLARE_INTERFACE \ - Q_DECLARE_METATYPE \ - Q_DECLARE_OPERATORS_FOR_FLAGS \ - Q_DECLARE_PRIVATE \ - Q_DECLARE_PUBLIC \ - Q_DECLARE_SHARED \ - Q_DECLARE_TR_FUNCTIONS \ - Q_DECLARE_TYPEINFO \ - Q_DISABLE_COPY \ - Q_DUMMY_COMPARISON_OPERATOR \ - Q_ENUMS \ - Q_FLAGS \ - Q_INTERFACES \ - Q_OS_SYMBIAN \ - __attribute__ - -HTML.stylesheets = $QTDIR/util/qdoc3/test/classic.css -HTML.postheader = "\n" \ - "\n" \ - "\n" \ - "" \ - "\n" \ - "
" \ - "" \ - "  " \ - "" \ - "Home ·" \ - " " \ - "All Classes ·" \ - " " \ - "Main Classes ·" \ - " " \ - "Grouped Classes ·" \ - " " \ - "Modules ·" \ - " " \ - "Functions" \ - "
" - -HTML.footer = "


\n" \ - "\n" \ - "\n" \ - "\n" \ - "\n" \ - "
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies)Trademarks
Qt \\version
" -- cgit v0.12 From 1fafb913bfb1e8657598e7c9ce0b52e08d044732 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 27 Oct 2009 20:39:56 +0100 Subject: Doc: Fixed qdoc warning. Reviewed-by: Trust Me --- src/gui/graphicsview/qgraphicsitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index edd2d7c..2685b86 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1228,7 +1228,7 @@ void QGraphicsItemCache::purge() } /*! - Constructs a QGraphicsItem, passing \a item to QGraphicsItem's constructor. + Constructs a QGraphicsItem with the given \a parent item. It does not modify the parent object returned by QObject::parent(). If \a parent is 0, you can add the item to a scene by calling -- cgit v0.12 From cb96099e126f50aaa9c8806c58892d0a62ded2b9 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Wed, 28 Oct 2009 11:31:32 +1000 Subject: Add 800x480 to the qvfb configuration dialog 800x480 is an increasingly common screen size on embedded devices, and specifying it via Custom sizes is annoying. Reviewed-by: Sarah Smith --- tools/qvfb/config.ui | 9 ++++++++- tools/qvfb/qvfb.cpp | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/qvfb/config.ui b/tools/qvfb/config.ui index ad9c39e..b74bef7 100644 --- a/tools/qvfb/config.ui +++ b/tools/qvfb/config.ui @@ -47,7 +47,7 @@ 0 0 600 - 665 + 690 @@ -118,6 +118,13 @@ + + + 800x480 + + + + 800x600 diff --git a/tools/qvfb/qvfb.cpp b/tools/qvfb/qvfb.cpp index 59e8dae..09692b7 100644 --- a/tools/qvfb/qvfb.cpp +++ b/tools/qvfb/qvfb.cpp @@ -669,6 +669,8 @@ void QVFb::configure() w=320; h=240; } else if ( config->size_640_480->isChecked() ) { w=640; h=480; + } else if ( config->size_800_480->isChecked() ) { + w=800; h=480; } else if ( config->size_800_600->isChecked() ) { w=800; h=600; } else if ( config->size_1024_768->isChecked() ) { @@ -748,6 +750,7 @@ void QVFb::chooseSize(const QSize& sz) config->size_240_320->setChecked(sz == QSize(240,320)); config->size_320_240->setChecked(sz == QSize(320,240)); config->size_640_480->setChecked(sz == QSize(640,480)); + config->size_800_480->setChecked(sz == QSize(800,480)); config->size_800_600->setChecked(sz == QSize(800,600)); config->size_1024_768->setChecked(sz == QSize(1024,768)); } -- cgit v0.12 From 6eea4cc05ac2bc903e3708a8219a22bbcccb7140 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 28 Oct 2009 13:52:12 +1000 Subject: Minor cleanup of global object removed desktopServices member, changed openUrl to openUrlExternally and placed it on the Qt object. --- src/declarative/qml/qmlengine.cpp | 19 ++++++++----------- src/declarative/qml/qmlengine_p.h | 1 + 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 0e239ce..6c303e3 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -110,14 +110,6 @@ struct StaticQtMetaObject : public QObject { return &static_cast (0)->staticQtMetaObject; } }; -QScriptValue desktopOpenUrl(QScriptContext *ctxt, QScriptEngine *e) -{ - if(!ctxt->argumentCount()) - return e->newVariant(QVariant(false)); - bool ret = QDesktopServices::openUrl(QUrl(ctxt->argument(0).toString())); - return e->newVariant(QVariant(ret)); -} - static QString userLocalDataPath(const QString& app) { return QDesktopServices::storageLocation(QDesktopServices::DataLocation) + QLatin1String("/") + app; @@ -131,9 +123,6 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) { QScriptValue qtObject = scriptEngine.newQMetaObject(StaticQtMetaObject::get()); - QScriptValue desktopObject = scriptEngine.newObject(); - desktopObject.setProperty(QLatin1String("openUrl"),scriptEngine.newFunction(desktopOpenUrl, 1)); - qtObject.setProperty(QLatin1String("DesktopServices"), desktopObject); scriptEngine.globalObject().setProperty(QLatin1String("Qt"), qtObject); offlineStoragePath = userLocalDataPath(QLatin1String("QML/OfflineStorage")); @@ -155,6 +144,7 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) //misc methods qtObject.setProperty(QLatin1String("playSound"), scriptEngine.newFunction(QmlEnginePrivate::playSound, 1)); + qtObject.setProperty(QLatin1String("openUrlExternally"),scriptEngine.newFunction(desktopOpenUrl, 1)); scriptEngine.globalObject().setProperty(QLatin1String("createQmlObject"), scriptEngine.newFunction(QmlEnginePrivate::createQmlObject, 1)); @@ -897,6 +887,13 @@ QScriptValue QmlEnginePrivate::playSound(QScriptContext *ctxt, QScriptEngine *en return engine->undefinedValue(); } +QScriptValue QmlEnginePrivate::desktopOpenUrl(QScriptContext *ctxt, QScriptEngine *e) +{ + if(ctxt->argumentCount() < 1) + return e->newVariant(QVariant(false)); + bool ret = QDesktopServices::openUrl(QUrl(ctxt->argument(0).toString())); + return e->newVariant(QVariant(ret)); +} /*! This function allows tinting one color with another. diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index 69b121e..7629dc1 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -264,6 +264,7 @@ public: static QScriptValue tint(QScriptContext*, QScriptEngine*); static QScriptValue playSound(QScriptContext*, QScriptEngine*); + static QScriptValue desktopOpenUrl(QScriptContext*, QScriptEngine*); static QScriptEngine *getScriptEngine(QmlEngine *e) { return &e->d_func()->scriptEngine; } static QmlEngine *getEngine(QScriptEngine *e) { return static_cast(e)->p->q_func(); } -- cgit v0.12 From 072b70c9521d507b0a4cdae379f2874d0e49d6df Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 28 Oct 2009 14:03:26 +1000 Subject: Use QML_DECLARE_TYPEINFO attached properties detection on all platforms. --- src/declarative/qml/qmlprivate.h | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/src/declarative/qml/qmlprivate.h b/src/declarative/qml/qmlprivate.h index 3e1a7e0..1b57f03 100644 --- a/src/declarative/qml/qmlprivate.h +++ b/src/declarative/qml/qmlprivate.h @@ -132,43 +132,11 @@ namespace QmlPrivate } }; -#if defined(Q_CC_MSVC) - template - class has_attachedPropertiesMember - { - public: - __if_exists(T::qmlAttachedProperties) { - static bool const value = true; - } - __if_not_exists(T::qmlAttachedProperties) { - static bool const value = false; - } - }; -#elif defined(Q_OS_SYMBIAN) template struct has_attachedPropertiesMember { static bool const value = QmlTypeInfo::hasAttachedProperties; }; -#else - template - class has_attachedPropertiesMember - { - typedef int yes_type; - typedef char no_type; - template - struct Selector {}; - - template - static yes_type test(Selector*); - - template - static no_type test(...); - - public: - static bool const value = sizeof(test(0)) == sizeof(yes_type); - }; -#endif template class has_attachedPropertiesMethod -- cgit v0.12 From c394f166af47fed34652685531ca1811c7f7568b Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 28 Oct 2009 14:45:57 +1000 Subject: Setting the currentIndex should cancel a flick. Task-number: QT-2383 --- src/declarative/fx/qfxflickable.cpp | 9 +++++++++ src/declarative/fx/qfxflickable.h | 1 + src/declarative/fx/qfxgridview.cpp | 6 ++++-- src/declarative/fx/qfxlistview.cpp | 6 ++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp index 659193d..0fb8474 100644 --- a/src/declarative/fx/qfxflickable.cpp +++ b/src/declarative/fx/qfxflickable.cpp @@ -889,6 +889,14 @@ void QFxFlickable::viewportMoved() } } +void QFxFlickable::cancelFlick() +{ + Q_D(QFxFlickable); + d->timeline.reset(d->_moveX); + d->timeline.reset(d->_moveY); + movementEnding(); +} + void QFxFlickablePrivate::data_removeAt(int) { // ### @@ -1257,6 +1265,7 @@ void QFxFlickable::movementEnding() emit flickEnded(); } d->horizontalVelocity.setValue(0); + d->verticalVelocity.setValue(0); } void QFxFlickablePrivate::updateVelocity() diff --git a/src/declarative/fx/qfxflickable.h b/src/declarative/fx/qfxflickable.h index 4c80e8f..3db4ca7 100644 --- a/src/declarative/fx/qfxflickable.h +++ b/src/declarative/fx/qfxflickable.h @@ -183,6 +183,7 @@ protected: bool xflick() const; bool yflick() const; + void cancelFlick(); protected: QFxFlickable(QFxFlickablePrivate &dd, QFxItem *parent); diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp index 0b2a935..c07258d 100644 --- a/src/declarative/fx/qfxgridview.cpp +++ b/src/declarative/fx/qfxgridview.cpp @@ -857,10 +857,12 @@ int QFxGridView::currentIndex() const void QFxGridView::setCurrentIndex(int index) { Q_D(QFxGridView); - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); d->updateCurrent(index); - else + } else { d->currentIndex = index; + } } QFxItem *QFxGridView::currentItem() diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 1f1b97b..49c2d11 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -1172,10 +1172,12 @@ void QFxListView::setCurrentIndex(int index) { Q_D(QFxListView); d->moveReason = QFxListViewPrivate::Other; - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); d->updateCurrent(index); - else + } else { d->currentIndex = index; + } } QFxItem *QFxListView::currentItem() -- cgit v0.12 From da87fe823c6e249de20ea6a38482b387dcfbbef7 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 28 Oct 2009 14:50:54 +1000 Subject: Cancel flicking on increment/decrementIndex also. --- src/declarative/fx/qfxlistview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 49c2d11..15680e1 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -1628,6 +1628,7 @@ void QFxListView::incrementCurrentIndex() Q_D(QFxListView); if (currentIndex() < d->model->count() - 1 || d->wrap) { int index = currentIndex()+1; + cancelFlick(); d->updateCurrent(index < d->model->count() ? index : 0); } } @@ -1643,6 +1644,7 @@ void QFxListView::decrementCurrentIndex() Q_D(QFxListView); if (currentIndex() > 0 || d->wrap) { int index = currentIndex()-1; + cancelFlick(); d->updateCurrent(index >= 0 ? index : d->model->count()-1); } } -- cgit v0.12 From 1cfb6992aaa381e07a2751b100eb6c353f874c8e Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 28 Oct 2009 14:52:14 +1000 Subject: Improve feel of flicking itemlist demo pages. --- examples/declarative/listview/itemlist.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/declarative/listview/itemlist.qml b/examples/declarative/listview/itemlist.qml index 6ce4287..6392153 100644 --- a/examples/declarative/listview/itemlist.qml +++ b/examples/declarative/listview/itemlist.qml @@ -33,6 +33,7 @@ Rectangle { preferredHighlightEnd: 0 highlightRangeMode: "StrictlyEnforceRange" orientation: ListView.Horizontal + flickDeceleration: 2000 } Rectangle { -- cgit v0.12 From 1583d643285641bf71e6a107331d788acca9850c Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Wed, 28 Oct 2009 16:08:13 +1000 Subject: qdoc: Update QGraphicsTransform docs after changes to QGraphicsRotation Reviewed-by: Michael Brasser --- src/gui/graphicsview/qgraphicstransform.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp index 93dc196..e2a3f08 100644 --- a/src/gui/graphicsview/qgraphicstransform.cpp +++ b/src/gui/graphicsview/qgraphicstransform.cpp @@ -69,6 +69,9 @@ objects are applied to a QGraphicsItem, all of the transformations are computed in true 3D space, with the projection back to 2D only occurring after the last QGraphicsTransform is applied. + The exception to this is QGraphicsRotation, which projects back to + 2D after each rotation to preserve the perspective effect around + the X and Y axes. If you want to create your own configurable transformation, you can create a subclass of QGraphicsTransform (or any or the existing subclasses), and -- cgit v0.12 From 1f68fba91cf60103dd118dbd0d78342526bac593 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 28 Oct 2009 17:07:18 +1000 Subject: Mac-safe sanity check. QT-2398 fix --- tests/auto/declarative/sql/tst_sql.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp index 22e9ba4..0ebdccd 100644 --- a/tests/auto/declarative/sql/tst_sql.cpp +++ b/tests/auto/declarative/sql/tst_sql.cpp @@ -86,7 +86,7 @@ QString tst_sql::dbDir() const void tst_sql::checkDatabasePath() { // Check default storage path (we can't use it since we don't want to mess with user's data) - QVERIFY(engine->offlineStoragePath().contains("Nokia")); + QVERIFY(engine->offlineStoragePath().contains("tst_sql")); QVERIFY(engine->offlineStoragePath().contains("OfflineStorage")); } -- cgit v0.12 From 5746e2ec47f1186e928830b58833756ac25156f4 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 28 Oct 2009 17:45:31 +1000 Subject: missing commit --- .../auto/declarative/sql/data/4-iteration-index.js | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/auto/declarative/sql/data/4-iteration-index.js diff --git a/tests/auto/declarative/sql/data/4-iteration-index.js b/tests/auto/declarative/sql/data/4-iteration-index.js new file mode 100644 index 0000000..298737d --- /dev/null +++ b/tests/auto/declarative/sql/data/4-iteration-index.js @@ -0,0 +1,27 @@ +var db = openDatabase("QmlTestDB", "", "Test database from Qt autotests", 1000000); +var r=0; + +db.transaction( + function(tx) { + tx.executeSql('SELECT * FROM Greeting', [], + function(tx, rs) { + var r1="" + for(var i = 0; i < rs.rows.length; i++) { + r1 += rs.rows[i].salutation + ", " + rs.rows[i].salutee + ";" + } + if (r1 != "hello, world;hello, world;hello, world;hello, world;") + r = "SELECTED DATA WRONG: "+r1; + }, + function(tx, error) { if (r==0) r="SELECT FAILED: "+error.message } + ); + }, + function(tx, error) { if (r==0) r="TRANSACTION FAILED: "+error.message }, + function(tx, result) { if (r==0) r="passed" } +); + + +function test() +{ + if (r == 0) r = "transaction_not_finished"; + return r; +} -- cgit v0.12 From c25bface8e20b472d1e50a82fdd85f7cda001f7e Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 28 Oct 2009 18:03:16 +1000 Subject: Add missing file Task-number: QT-2401 --- tests/auto/declarative/qfxtextinput/data/cursorTest.qml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 tests/auto/declarative/qfxtextinput/data/cursorTest.qml diff --git a/tests/auto/declarative/qfxtextinput/data/cursorTest.qml b/tests/auto/declarative/qfxtextinput/data/cursorTest.qml new file mode 100644 index 0000000..ddc98cc --- /dev/null +++ b/tests/auto/declarative/qfxtextinput/data/cursorTest.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +Rectangle { width: 300; height: 300; color: "white" + TextInput { text: "Hello world!"; id: textInputObject; objectName: "textInputObject" + resources: [ Component { id:cursor; Item { id:cursorInstance; objectName: "cursorInstance";} } ] + cursorDelegate: cursor + } +} -- cgit v0.12 From 1d14bbef27945d7823e9c32745e51d187093f1b7 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 28 Oct 2009 18:14:18 +1000 Subject: Fill out QML global object documentation Moves the documentation for functions on the global object from qmlengine.cpp to globalobject.qdoc (so that qdoc actually generates them). The XmlHttpRequest documentation is still just a stub. --- doc/src/declarative/globalobject.qdoc | 178 ++++++++++++++++++++++++++++++++- doc/src/declarative/qtdeclarative.qdoc | 1 + src/declarative/qml/qmlengine.cpp | 118 +--------------------- src/declarative/qml/qmlengine_p.h | 1 + 4 files changed, 180 insertions(+), 118 deletions(-) diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc index 2328c8a..fc5d988 100644 --- a/doc/src/declarative/globalobject.qdoc +++ b/doc/src/declarative/globalobject.qdoc @@ -42,7 +42,6 @@ /*! \page qmlglobalobject.html \title QML Global Object - Contains all the properties of the ECMAScript global object, plus: \list @@ -53,11 +52,186 @@ Contains all the properties of the ECMAScript global object, plus: \o openDatabase \endlist +Contents: +\tableofcontents \section1 Qt Object -\section1 Asynchronous JavaScript and XML +The Qt object provides useful enums and functions from Qt, for use in all QML +files. + +\section2 Enums +The Qt object contains all enums in the Qt namespace. For example, you can +access the AlignLeft member of the Qt::AlignmentFlag enum with \c Qt.AlignLeft. + +For a full list of enums, see the Qt Namespace documentation. + +\section2 Types +The Qt object also contains helper functions for creating objects of specific +data types. This is primarily useful when setting the properties of an item +when the property has one of the following types: + +\list +\o Color +\o Rect +\o Point +\o Size +\o Vector3D +\endlist + +There are also string based constructors for these types, see \l{basicqmltypes.html}{Qml Types}. + +\section3 Qt.rgba(int red, int green, int blue, int alpha) +This function returns a Color with the specified \c red, \c green, \c blue and \c alpha components. All components should be in the range 0-255 inclusive. + +\section3 Qt.hsla(int hue, int saturation, int lightness, int alpha) +This function returns a Color with the specified \c hue, \c saturation, \c lightness and \c alpha components. All components should be in the range 0-255 inclusive. + +\section3 Qt.rect(int x, int y, int width, int height) +This function returns a Rect with the top-left corner at \c x,\c y and the specified \c width and \c height. +\section3 Qt.point(int x, int y) +This function returns a Point with the specified \c x and \c y coordinates. +\section3 Qt.size(int width, int height) +returns as Size with the specified width and height. +\section3 Qt.vector(real x, real y, real z) + This function is intended for use inside QML only. In C++ just create a + QVector3D as usual. + + This function takes three numeric components and combines them into a + QVector3D value that can be used with any property that takes a + QVector3D argument. The following QML code: + + \code + transform: Rotation { + id: rotation + origin.x: Container.width / 2; + axis: vector(0, 1, 1) + } + \endcode + + is equivalent to: + + \code + transform: Rotation { + id: rotation + origin.x: Container.width / 2; + axis.x: 0; axis.y: 1; axis.z: 0 + } + \endcode + + +\section2 Functions +The Qt object also contains the following miscellaneous functions which expose Qt functionality for use in QML. + +\section3 Qt.lighter(color baseColor) +This function returns a color 50% lighter than \c baseColor. See QColor::lighter() for further details. +\section3 Qt.darker(color baseColor) +This function returns a color 50% darker than \c baseColor. See QColor::lighter() for further details. +\section3 Qt.tint(color baseColor, color tintColor) + This function allows tinting one color with another. + The tint color should usually be mostly transparent, or you will not be able to see the underlying color. The below example provides a slight red tint by having the tint color be pure red which is only 1/16th opaque. + + \qml + Rectangle { x: 0; width: 80; height: 80; color: "lightsteelblue" } + Rectangle { x: 100; width: 80; height: 80; color: Qt.tint("lightsteelblue", "#10FF0000") } + \endqml + \image declarative-rect_tint.png + + Tint is most useful when a subtle change is intended to be conveyed due to some event; you can then use tinting to more effectively tune the visible color. +\section3 Qt.playSound(url soundLocation) +This function plays the audio file located at \c soundLocation. Only .wav files are supported. + +\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. +\endlist + +\section1 Dynamic Object Creation +The following functions on the global object allow you to dynamically create QML +items from files or strings. + +You can also dynamically create objects in a declarative manner, using items +such as ListView, Repeater and Loader. + +\section2 createComponent(url file) + This function takes the URL of a QML file as its only argument. It returns + a component object which can be used to create and load that QML file. + + Example QML script is below. Remember that QML files that might be loaded + over the network cannot be expected to be ready immediately. + \code + var component; + var sprite; + function finishCreation(){ + if(component.isReady()){ + sprite = component.createObject(); + if(sprite == 0){ + // Error Handling + }else{ + sprite.parent = page; + sprite.x = 200; + //... + } + }else if(component.isError()){ + // Error Handling + } + } + + component = createComponent("Sprite.qml"); + if(component.isReady()){ + finishCreation(); + }else{ + component.statusChanged.connect(finishCreation); + } + \endcode + + If you are certain the files will be local, you could simplify to + + \code + component = createComponent("Sprite.qml"); + sprite = component.createObject(); + if(sprite == 0){ + // Error Handling + print(component.errorsString()); + }else{ + sprite.parent = page; + sprite.x = 200; + //... + } + \endcode + + If you want to just create an arbitrary string of QML, instead of + loading a QML file, consider the createQmlObject() function. + +\section2 createQmlObject(string qml, object parent, string filepath) + Creates a new object from the specified string of QML. It requires a + second argument, which is the id of an existing QML object to use as + the new object's parent. If a third argument is provided, this is used + for error reporting as the filepath that the QML came from. + + Example (where targetItem is the id of an existing QML item): + \code + newObject = createQmlObject('import Qt 4.6; Rectangle {color: "red"; width: 20; height: 20}', + targetItem, "dynamicSnippet1"); + \endcode + + This function is intended for use inside QML only. It is intended to behave + similarly to eval, but for creating QML elements. + + Returns the created object, or null if there is an error. In the case of an + error, details of the error are output using qWarning(). + + Note that this function returns immediately, and therefore may not work if + the QML loads new components. If you are trying to load a new component, + for example from a QML file, consider the createComponent() function + instead. 'New components' refers to external QML files that have not yet + been loaded, and so it is safe to use createQmlObject to load built-in + components. + +\section1 Asynchronous JavaScript and XML +QML script supports the XMLHttpRequest object, which can be used to asynchronously obtain data from over a network. +\section2 XMLHttpRequest() +In QML you can construct an XMLHttpRequest object just like in a web browser! TODO: Real documentation for this object. \section1 Offline Storage API The \c openDatabase() and related functions diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index 5d8623b..3be90f7 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -98,6 +98,7 @@ completely new applications. QML is fully \l {Extending QML}{extensible from C+ \section1 Reference: \list \o \l {QML Elements} +\o \l {QML Global Object} \o \l {Extending QML} \endlist diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 6c303e3..8581751 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -121,6 +121,8 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) nodeListClass(0), namedNodeMapClass(0), sqlQueryClass(0), cleanup(0), scriptEngine(this), componentAttacheds(0), rootComponent(0), networkAccessManager(0), typeManager(e), uniqueId(1) { + // Note that all documentation for stuff put on the global object goes in + // doc/src/declarative/globalobject.qdoc QScriptValue qtObject = scriptEngine.newQMetaObject(StaticQtMetaObject::get()); scriptEngine.globalObject().setProperty(QLatin1String("Qt"), qtObject); @@ -584,59 +586,6 @@ QmlContext *QmlEnginePrivate::getContext(QScriptContext *ctxt) return contextClass->contextFromValue(scopeNode); } -/*! - This function is intended for use inside QML only. In C++ just create a - component object as usual. - - This function takes the URL of a QML file as its only argument. It returns - a component object which can be used to create and load that QML file. - - Example QmlJS is below, remember that QML files that might be loaded - over the network cannot be expected to be ready immediately. - \code - var component; - var sprite; - function finishCreation(){ - if(component.isReady()){ - sprite = component.createObject(); - if(sprite == 0){ - // Error Handling - }else{ - sprite.parent = page; - sprite.x = 200; - //... - } - }else if(component.isError()){ - // Error Handling - } - } - - component = createComponent("Sprite.qml"); - if(component.isReady()){ - finishCreation(); - }else{ - component.statusChanged.connect(finishCreation); - } - \endcode - - If you are certain the files will be local, you could simplify to - - \code - component = createComponent("Sprite.qml"); - sprite = component.createObject(); - if(sprite == 0){ - // Error Handling - print(component.errorsString()); - }else{ - sprite.parent = page; - sprite.x = 200; - //... - } - \endcode - - If you want to just create an arbitrary string of QML, instead of - loading a qml file, consider the createQmlObject() function. -*/ QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, QScriptEngine *engine) { @@ -659,31 +608,6 @@ QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, return engine->newQObject(c); } -/*! - Creates a new object from the specified string of QML. It requires a - second argument, which is the id of an existing QML object to use as - the new object's parent. If a third argument is provided, this is used - as the filepath that the qml came from. - - Example (where targetItem is the id of an existing QML item): - \code - newObject = createQmlObject('import Qt 4.6; Rectangle {color: "red"; width: 20; height: 20}', - targetItem, "dynamicSnippet1"); - \endcode - - This function is intended for use inside QML only. It is intended to behave - similarly to eval, but for creating QML elements. - - Returns the created object, or null if there is an error. In the case of an - error, details of the error are output using qWarning(). - - Note that this function returns immediately, and therefore may not work if - the QML loads new components. If you are trying to load a new component, - for example from a QML file, consider the createComponent() function - instead. 'New components' refers to external QML files that have not yet - been loaded, and so it is safe to use createQmlObject to load built-in - components. -*/ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine) { QmlEnginePrivate *activeEnginePriv = @@ -736,32 +660,6 @@ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngi return engine->nullValue(); } -/*! - This function is intended for use inside QML only. In C++ just create a - QVector3D as usual. - - This function takes three numeric components and combines them into a - QVector3D value that can be used with any property that takes a - QVector3D argument. The following QML code: - - \code - transform: Rotation { - id: rotation - origin.x: Container.width / 2; - axis: vector(0, 1, 1) - } - \endcode - - is equivalent to: - - \code - transform: Rotation { - id: rotation - origin.x: Container.width / 2; - axis.x: 0; axis.y: 1; axis.z: 0 - } - \endcode -*/ QScriptValue QmlEnginePrivate::vector(QScriptContext *ctxt, QScriptEngine *engine) { if(ctxt->argumentCount() < 3) @@ -894,19 +792,7 @@ QScriptValue QmlEnginePrivate::desktopOpenUrl(QScriptContext *ctxt, QScriptEngin bool ret = QDesktopServices::openUrl(QUrl(ctxt->argument(0).toString())); return e->newVariant(QVariant(ret)); } -/*! - This function allows tinting one color with another. - - The tint color should usually be mostly transparent, or you will not be able to see the underlying color. The below example provides a slight red tint by having the tint color be pure red which is only 1/16th opaque. - \qml - Rectangle { x: 0; width: 80; height: 80; color: "lightsteelblue" } - Rectangle { x: 100; width: 80; height: 80; color: Qt.tint("lightsteelblue", "#10FF0000") } - \endqml - \image declarative-rect_tint.png - - Tint is most useful when a subtle change is intended to be conveyed due to some event; you can then use tinting to more effectively tune the visible color. -*/ QScriptValue QmlEnginePrivate::tint(QScriptContext *ctxt, QScriptEngine *engine) { if(ctxt->argumentCount() < 2) diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index 7629dc1..f5bc015 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -250,6 +250,7 @@ public: QVariant scriptValueToVariant(const QScriptValue &); static QScriptValue qmlScriptObject(QObject*, QmlEngine*); + static QScriptValue createComponent(QScriptContext*, QScriptEngine*); static QScriptValue createQmlObject(QScriptContext*, QScriptEngine*); static QScriptValue vector(QScriptContext*, QScriptEngine*); -- cgit v0.12 From 6652eccc7bf7c749838c9e8df13a827937ddc417 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 28 Oct 2009 18:30:54 +1000 Subject: Remove QML SQL classes Sadly, these are not being maintained. There's still SQL offline storage for all your SQL needs. --- demos/declarative/contacts/Button.qml | 60 -- demos/declarative/contacts/Contact.qml | 116 --- demos/declarative/contacts/ContactField.qml | 60 -- demos/declarative/contacts/FieldText.qml | 154 --- demos/declarative/contacts/RemoveButton.qml | 122 --- demos/declarative/contacts/SearchBar.qml | 26 - demos/declarative/contacts/contacts.qml | 319 ------- demos/declarative/contacts/contacts.sqlite | Bin 86016 -> 0 bytes demos/declarative/contacts/pics/cancel.png | Bin 1038 -> 0 bytes demos/declarative/contacts/pics/email.png | Bin 977 -> 0 bytes demos/declarative/contacts/pics/new.png | Bin 688 -> 0 bytes demos/declarative/contacts/pics/ok.png | Bin 655 -> 0 bytes demos/declarative/contacts/pics/phone.png | Bin 624 -> 0 bytes demos/declarative/contacts/pics/search.png | Bin 635 -> 0 bytes demos/declarative/contacts/pics/trash.png | Bin 989 -> 0 bytes doc/src/declarative/elements.qdoc | 1 - doc/src/declarative/qtdeclarative.qdoc | 6 - doc/src/tutorials/declarative.qdoc | 674 ------------- .../1_Drawing_and_animation.qml | 36 - .../1_Drawing_and_Animation/2/RemoveButton.qml | 20 - .../1_Drawing_and_Animation/2a/RemoveButton.qml | 22 - .../1_Drawing_and_Animation/3/RemoveButton.qml | 41 - .../1_Drawing_and_Animation/4/RemoveButton.qml | 107 --- .../1_Drawing_and_Animation/4a/RemoveButton.qml | 114 --- .../1_Drawing_and_Animation/5/RemoveButton.qml | 114 --- .../contacts/1_Drawing_and_Animation/GroupBox.qml | 59 -- .../tutorials/contacts/2_Reuse/1/ContactField.qml | 32 - .../tutorials/contacts/2_Reuse/1/RemoveButton.qml | 112 --- .../tutorials/contacts/2_Reuse/1a/ContactField.qml | 35 - .../tutorials/contacts/2_Reuse/1a/RemoveButton.qml | 112 --- .../tutorials/contacts/2_Reuse/1b/BlueRect.qml | 35 - .../contacts/2_Reuse/1b/lib/RemoveButton.qml | 114 --- .../tutorials/contacts/2_Reuse/2/ContactField.qml | 34 - .../tutorials/contacts/2_Reuse/2/RemoveButton.qml | 120 --- .../tutorials/contacts/2_Reuse/2_Reuse.qml | 39 - .../tutorials/contacts/2_Reuse/3/Contact.qml | 50 - .../tutorials/contacts/2_Reuse/3/ContactField.qml | 61 -- .../tutorials/contacts/2_Reuse/3/FieldText.qml | 144 --- .../tutorials/contacts/2_Reuse/3/RemoveButton.qml | 116 --- .../tutorials/contacts/2_Reuse/4/Contact.qml | 53 -- .../tutorials/contacts/2_Reuse/4/ContactField.qml | 58 -- .../tutorials/contacts/2_Reuse/4/FieldText.qml | 145 --- .../tutorials/contacts/2_Reuse/4/RemoveButton.qml | 120 --- .../tutorials/contacts/2_Reuse/GroupBox.qml | 59 -- .../contacts/3_Collections/1/ContactView.qml | 46 - .../contacts/3_Collections/2/ContactView.qml | 124 --- .../contacts/3_Collections/3/ContactView.qml | 137 --- .../contacts/3_Collections/3_Collections.qml | 31 - .../tutorials/contacts/3_Collections/GroupBox.qml | 59 -- .../contacts/3_Collections/lib/Button.qml | 60 -- .../contacts/3_Collections/lib/Contact.qml | 47 - .../contacts/3_Collections/lib/ContactField.qml | 58 -- .../contacts/3_Collections/lib/FieldText.qml | 145 --- .../contacts/3_Collections/lib/RemoveButton.qml | 119 --- .../tutorials/contacts/shared/contactGenSQL.pl | 82 -- .../tutorials/contacts/shared/contacts.sqlite | Bin 86016 -> 0 bytes .../tutorials/contacts/shared/email.txt | 7 - .../tutorials/contacts/shared/english-f.txt | 143 --- .../tutorials/contacts/shared/english-m.txt | 130 --- .../tutorials/contacts/shared/english-s.txt | 1003 -------------------- .../tutorials/contacts/shared/pics/cancel.png | Bin 1038 -> 0 bytes .../tutorials/contacts/shared/pics/email.png | Bin 977 -> 0 bytes .../tutorials/contacts/shared/pics/new.png | Bin 688 -> 0 bytes .../tutorials/contacts/shared/pics/ok.png | Bin 655 -> 0 bytes .../tutorials/contacts/shared/pics/phone.png | Bin 624 -> 0 bytes .../tutorials/contacts/shared/pics/search.png | Bin 635 -> 0 bytes .../tutorials/contacts/shared/pics/trash.png | Bin 989 -> 0 bytes src/declarative/extra/extra.pri | 8 - src/declarative/extra/qmlsqlconnection.cpp | 429 --------- src/declarative/extra/qmlsqlconnection.h | 116 --- src/declarative/extra/qmlsqlquery.cpp | 788 --------------- src/declarative/extra/qmlsqlquery.h | 143 --- src/declarative/qml/qml.pri | 2 + 73 files changed, 2 insertions(+), 7165 deletions(-) delete mode 100644 demos/declarative/contacts/Button.qml delete mode 100644 demos/declarative/contacts/Contact.qml delete mode 100644 demos/declarative/contacts/ContactField.qml delete mode 100644 demos/declarative/contacts/FieldText.qml delete mode 100644 demos/declarative/contacts/RemoveButton.qml delete mode 100644 demos/declarative/contacts/SearchBar.qml delete mode 100644 demos/declarative/contacts/contacts.qml delete mode 100644 demos/declarative/contacts/contacts.sqlite delete mode 100644 demos/declarative/contacts/pics/cancel.png delete mode 100644 demos/declarative/contacts/pics/email.png delete mode 100644 demos/declarative/contacts/pics/new.png delete mode 100644 demos/declarative/contacts/pics/ok.png delete mode 100644 demos/declarative/contacts/pics/phone.png delete mode 100644 demos/declarative/contacts/pics/search.png delete mode 100644 demos/declarative/contacts/pics/trash.png delete mode 100644 doc/src/tutorials/declarative.qdoc delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/1_Drawing_and_animation.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2a/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/3/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4a/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/5/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/GroupBox.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1a/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1a/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1b/BlueRect.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/1b/lib/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/2/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/2_Reuse.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/3/Contact.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/3/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/3/FieldText.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/3/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/4/Contact.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/4/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/4/FieldText.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/4/RemoveButton.qml delete mode 100644 examples/declarative/tutorials/contacts/2_Reuse/GroupBox.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/1/ContactView.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/2/ContactView.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/3/ContactView.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/3_Collections.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/GroupBox.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/lib/Button.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/lib/Contact.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/lib/ContactField.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/lib/FieldText.qml delete mode 100644 examples/declarative/tutorials/contacts/3_Collections/lib/RemoveButton.qml delete mode 100755 examples/declarative/tutorials/contacts/shared/contactGenSQL.pl delete mode 100644 examples/declarative/tutorials/contacts/shared/contacts.sqlite delete mode 100644 examples/declarative/tutorials/contacts/shared/email.txt delete mode 100644 examples/declarative/tutorials/contacts/shared/english-f.txt delete mode 100644 examples/declarative/tutorials/contacts/shared/english-m.txt delete mode 100644 examples/declarative/tutorials/contacts/shared/english-s.txt delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/cancel.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/email.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/new.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/ok.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/phone.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/search.png delete mode 100644 examples/declarative/tutorials/contacts/shared/pics/trash.png delete mode 100644 src/declarative/extra/qmlsqlconnection.cpp delete mode 100644 src/declarative/extra/qmlsqlconnection.h delete mode 100644 src/declarative/extra/qmlsqlquery.cpp delete mode 100644 src/declarative/extra/qmlsqlquery.h diff --git a/demos/declarative/contacts/Button.qml b/demos/declarative/contacts/Button.qml deleted file mode 100644 index 9719231..0000000 --- a/demos/declarative/contacts/Button.qml +++ /dev/null @@ -1,60 +0,0 @@ -import Qt 4.6 - -Item { - id: button - width: 30 - height: 30 - property var icon: "" - signal clicked - Rectangle { - id: buttonRect - anchors.fill: parent - color: "lightgreen" - radius: 5 - Image { - id: iconImage - source: button.icon - anchors.horizontalCenter: buttonRect.horizontalCenter - anchors.verticalCenter: buttonRect.verticalCenter - } - MouseRegion { - id: buttonMouseRegion - anchors.fill: buttonRect - onClicked: { button.clicked() } - } - states: [ - State { - name: "pressed" - when: buttonMouseRegion.pressed == true - PropertyChanges { - target: buttonRect - color: "green" - } - } - ] - transitions: [ - Transition { - from: "*" - to: "pressed" - ColorAnimation { - property: "color" - duration: 200 - } - }, - Transition { - from: "pressed" - to: "*" - ColorAnimation { - property: "color" - duration: 1000 - } - } - ] - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } -} diff --git a/demos/declarative/contacts/Contact.qml b/demos/declarative/contacts/Contact.qml deleted file mode 100644 index e12cd3b..0000000 --- a/demos/declarative/contacts/Contact.qml +++ /dev/null @@ -1,116 +0,0 @@ -import Qt 4.6 - -Item { - id: contactDetails - anchors.fill: parent - - property var contactId: "" - property var label: "" - property var phone: "" - property var email: "" - - onLabelChanged: { labelField.value = label } - onEmailChanged: { emailField.value = email } - onPhoneChanged: { phoneField.value = phone } - - resources: [ - SqlQuery { - id: updateContactQuery - connection: contactDatabase - query: "UPDATE contacts SET label = :l, email = :e, phone = :p WHERE recid = :r" - bindings: [ - SqlBind { - name: ":r" - value: contactId - }, - SqlBind { - name: ":l" - value: labelField.value - }, - SqlBind { - name: ":e" - value: emailField.value - }, - SqlBind { - name: ":p" - value: phoneField.value - } - ] - }, - SqlQuery { - id: insertContactQuery - connection: contactDatabase - query: "INSERT INTO contacts (label, email, phone) VALUES(:l, :e, :p)" - bindings: [ - SqlBind { - name: ":l" - value: labelField.value - }, - SqlBind { - name: ":e" - value: emailField.value - }, - SqlBind { - name: ":p" - value: phoneField.value - } - ] - }, - SqlQuery { - id: removeContactQuery - connection: contactDatabase - query: "DELETE FROM contacts WHERE recid = :r" - bindings: SqlBind { - name: ":r" - value: contactId - } - } - ] - function refresh() { - labelField.value = label; - emailField.value = email; - phoneField.value = phone; - } - function update() { - updateContactQuery.exec(); - } - function insert() { - insertContactQuery.exec(); - } - function remove() { - removeContactQuery.exec(); - } - Column { - id: layout - width: childrenRect.width - height: childrenRect.height - anchors.centerIn: parent - spacing: 5 - ContactField { - id: labelField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - label: "Name" - } - ContactField { - id: phoneField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "pics/phone.png" - label: "Phone" - } - ContactField { - id: emailField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "pics/email.png" - label: "Email" - } - } -} diff --git a/demos/declarative/contacts/ContactField.qml b/demos/declarative/contacts/ContactField.qml deleted file mode 100644 index 6cf7baa..0000000 --- a/demos/declarative/contacts/ContactField.qml +++ /dev/null @@ -1,60 +0,0 @@ -import Qt 4.6 - -Item { - id: contactField - clip: true - height: 30 - property var label: "Name" - property var icon: "" - property var value: "" - onValueChanged: { fieldText.text = contactField.value } - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - expandedWidth: contactField.width - onConfirmed: { print('Clear field text'); fieldText.text='' } - } - FieldText { - id: fieldText - width: contactField.width-70 - anchors.right: removeButton.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - label: contactField.label - text: contactField.value - onConfirmed: { contactField.value=fieldText.text } - } - Image { - anchors.right: fieldText.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - source: contactField.icon - } - states: [ - State { - name: "editingText" - when: fieldText.state == 'editing' - PropertyChanges { - target: removeButton.anchors - rightMargin: -35 - } - PropertyChanges { - target: fieldText - width: contactField.width - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "width,rightMargin" - duration: 200 - } - } - ] -} diff --git a/demos/declarative/contacts/FieldText.qml b/demos/declarative/contacts/FieldText.qml deleted file mode 100644 index 1e89793..0000000 --- a/demos/declarative/contacts/FieldText.qml +++ /dev/null @@ -1,154 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: fieldText - height: 30 - radius: 5 - color: "black" - property var text: "" - property var label: "" - onTextChanged: { reset() } - signal confirmed - - Script { - - function edit() { - if (!contacts.mouseGrabbed) { - fieldText.state='editing'; - contacts.mouseGrabbed=true; - } - } - function confirm() { - fieldText.text = textEdit.text; - fieldText.state=''; - contacts.mouseGrabbed=false; - fieldText.confirmed(); - } - function reset() { - textEdit.text = fieldText.text; - fieldText.state=''; - contacts.mouseGrabbed=false; - } - - } - - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "pics/cancel.png" - opacity: 0 - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "pics/ok.png" - opacity: 0 - } - TextEdit { - id: textEdit - anchors.left: parent.left - anchors.leftMargin: 0 - anchors.right: parent.right - anchors.rightMargin: 0 - anchors.verticalCenter: parent.verticalCenter - color: "white" - font.bold: true - readOnly: true - wrap: false - } - Text { - id: textLabel - x: 5 - width: parent.width-10 - anchors.verticalCenter: parent.verticalCenter - horizontalAlignment: Text.AlignHCenter - color: contactDetails.state == "editing" ? "#505050" : "#AAAAAA" - font.italic: true - font.bold: true - text: fieldText.label - opacity: textEdit.text == '' ? 1 : 0 - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } - MouseRegion { - anchors.fill: cancelIcon - onClicked: { reset() } - } - MouseRegion { - anchors.fill: confirmIcon - onClicked: { confirm() } - } - MouseRegion { - id: editRegion - anchors.fill: textEdit - onClicked: { edit() } - } - states: [ - State { - name: "editing" - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: fieldText - color: "white" - } - PropertyChanges { - target: textEdit - color: "black" - } - PropertyChanges { - target: textEdit - readOnly: false - } - PropertyChanges { - target: textEdit - focus: true - } - PropertyChanges { - target: editRegion - opacity: 0 - } - PropertyChanges { - target: textEdit.anchors - leftMargin: 34 - } - PropertyChanges { - target: textEdit.anchors - rightMargin: 34 - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "opacity,leftMargin,rightMargin" - duration: 200 - } - ColorAnimation { - property: "color" - duration: 150 - } - } - ] -} diff --git a/demos/declarative/contacts/RemoveButton.qml b/demos/declarative/contacts/RemoveButton.qml deleted file mode 100644 index 0cb013e..0000000 --- a/demos/declarative/contacts/RemoveButton.qml +++ /dev/null @@ -1,122 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - property var expandedWidth: 230 - signal confirmed - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - contacts.mouseGrabbed=false; - } else { - if (!contacts.mouseGrabbed) { - removeButton.state = 'opened'; - contacts.mouseGrabbed=true; - } - } - } - } - - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle(); removeButton.confirmed() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: Text.AlignHCenter - text: "Remove" - opacity: 0 - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: removeButton.expandedWidth - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/demos/declarative/contacts/SearchBar.qml b/demos/declarative/contacts/SearchBar.qml deleted file mode 100644 index b326fd3..0000000 --- a/demos/declarative/contacts/SearchBar.qml +++ /dev/null @@ -1,26 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: searchBar - color: "white" - property var text: searchEdit.text - Image { - id: searchIcon - anchors.left: parent.left - anchors.leftMargin: 5 - anchors.verticalCenter: parent.verticalCenter - source: "pics/search.png" - } - TextEdit { - id: searchEdit - anchors.left: searchIcon.right - anchors.right: parent.right - anchors.leftMargin: 5 - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - readOnly: false - wrap: false - focus: true - text: "" - } -} diff --git a/demos/declarative/contacts/contacts.qml b/demos/declarative/contacts/contacts.qml deleted file mode 100644 index 2b0d983..0000000 --- a/demos/declarative/contacts/contacts.qml +++ /dev/null @@ -1,319 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: contacts - width: 240 - height: 320 - color: "black" - property var mode: "list" - property var mouseGrabbed: false - resources: [ - SqlConnection { - id: contactDatabase - name: "qmlConnection" - driver: "QSQLITE" - databaseName: "contacts.sqlite" - }, - SqlQuery { - id: contactList - connection: contactDatabase - query: "SELECT recid, label, email, phone FROM contacts WHERE lower(label) LIKE lower(:searchTerm) ORDER BY label, recid" - bindings: SqlBind { - name: ":searchTerm" - value: '%' + searchBar.text + '%' - } - }, - Component { - id: contactDelegate - Item { - id: wrapper - x: 0 - width: ListView.view.width - height: 34 - Text { - id: label - x: 40 - y: 12 - width: parent.width-30 - text: model.label - color: "white" - font.bold: true - children: [ - MouseRegion { - anchors.fill: parent - onClicked: { - Details.source = 'Contact.qml'; - wrapper.state ='opened'; - contacts.mode = 'edit'; - } - } - ] - states: [ - State { - name: "currentItem" - when: wrapper.ListView.isCurrentItem - PropertyChanges { - target: label - color: "black" - } - } - ] - transitions: [ - Transition { - ColorAnimation { - duration: 250 - property: "color" - } - } - ] - } - Loader { - id: Details - anchors.fill: wrapper - opacity: 0 - Binding { - target: Details.item - property: "contactId" - value: model.recid - } - Binding { - target: Details.item - property: "label" - value: model.label - } - Binding { - target: Details.item - property: "phone" - value: model.phone - } - Binding { - target: Details.item - property: "email" - value: model.email - } - } - states: [ - State { - name: "opened" - PropertyChanges { - target: wrapper - height: contactListView.height - } - PropertyChanges { - target: contactListView - viewportY: wrapper.y - } - PropertyChanges { - target: contactListView - interactive: 0 - } - PropertyChanges { - target: label - opacity: 0 - } - PropertyChanges { - target: Details - opacity: 1 - } - } - ] - transitions: [ - Transition { - NumberAnimation { - duration: 500 - properties: "viewportY,height,opacity" - } - } - ] - Connection { - sender: confirmEditButton - signal: "clicked()" - script: { - if (wrapper.state == 'opened' && !contacts.mouseGrabbed) { - Details.item.update(); - wrapper.state = ''; - contacts.mode = 'list'; - contactList.exec(); - } - - } - } - Connection { - sender: cancelEditButton - signal: "clicked()" - script: { - if (wrapper.state == 'opened' && !contacts.mouseGrabbed) { - wrapper.state = ''; - contacts.mode = 'list'; - } - - } - } - Connection { - sender: removeContactButton - signal: "confirmed()" - script: { - if (wrapper.state == 'opened' && !contacts.mouseGrabbed) { - Details.item.remove(); - wrapper.state = ''; - contacts.mode = 'list'; - contactList.exec(); - } - - } - } - } - } - ] - Button { - id: newContactButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - icon: "pics/new.png" - onClicked: { newContactItem.refresh(); contacts.mode = 'new' } - opacity: contacts.mode == 'list' ? 1 : 0 - } - Button { - id: confirmEditButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.left: parent.left - anchors.leftMargin: 5 - icon: "pics/ok.png" - opacity: contacts.mode == 'list' || contacts.mouseGrabbed ? 0 : 1 - } - Button { - id: cancelEditButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - icon: "pics/cancel.png" - opacity: contacts.mode == 'list' || contacts.mouseGrabbed ? 0 : 1 - } - RemoveButton { - id: removeContactButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.horizontalCenter: parent.horizontalCenter - opacity: (contacts.mode == 'edit' && (!contacts.mouseGrabbed || removeContactButton.state =='opened')) ? 1 : 0 - } - ListView { - id: contactListView - anchors.left: parent.left - anchors.right: parent.right - anchors.top: cancelEditButton.bottom - anchors.bottom: searchBarWrapper.top - anchors.topMargin: 5 - clip: true - model: contactList - delegate: contactDelegate - highlight: [ - Rectangle { - id: contactHighlight - border.width: 0 - color: 'white' - opacity: contacts.mode == 'list' ? 1 : 0 - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } - ] - highlightFollowsCurrentItem: true - focus: false - } - FocusScope { - id: newContactWrapper - anchors.fill: contactListView - opacity: 0 - focus: contacts.mode == 'new' - Contact { - id: newContactItem - anchors.fill: parent - } - } - Connection { - sender: confirmEditButton - signal: "clicked()" - script: { - if (contacts.mode == 'new' && contacts.mouseGrabbed != 'true') { - newContactItem.insert(); - contacts.mode = 'list'; - contactList.exec(); - } - } - } - Connection { - sender: cancelEditButton - signal: "clicked()" - script: { - if (contacts.mode == 'new' && contacts.mouseGrabbed != 'true') { - contacts.mode = 'list'; - } - } - } - FocusScope { - id: searchBarWrapper - height: 30 - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.bottomMargin: 0 - focus: false - SearchBar { - id: searchBar - anchors.fill: parent - } - states: [ - State { - name: "searchHidden" - when: searchBar.text == '' || contacts.mode != 'list' - PropertyChanges { - target: searchBarWrapper.anchors - bottomMargin: -30 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "*" - NumberAnimation { - property: "bottomMargin" - duration: 250 - } - } - ] - } - focus: contacts.mode != 'new' - Keys.forwardTo: { contacts.mode == "list" ? [searchBarWrapper, contactListView] : [contactListView]} - states: [ - State { - name: "editNewState" - when: contacts.mode == 'new' - PropertyChanges { - target: contactListView - opacity: 0 - } - PropertyChanges { - target: newContactWrapper - opacity: 1 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "*" - NumberAnimation { - property: "opacity" - duration: 500 - } - } - ] -} diff --git a/demos/declarative/contacts/contacts.sqlite b/demos/declarative/contacts/contacts.sqlite deleted file mode 100644 index d33e0c7..0000000 Binary files a/demos/declarative/contacts/contacts.sqlite and /dev/null differ diff --git a/demos/declarative/contacts/pics/cancel.png b/demos/declarative/contacts/pics/cancel.png deleted file mode 100644 index ecc9533..0000000 Binary files a/demos/declarative/contacts/pics/cancel.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/email.png b/demos/declarative/contacts/pics/email.png deleted file mode 100644 index 04b3865..0000000 Binary files a/demos/declarative/contacts/pics/email.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/new.png b/demos/declarative/contacts/pics/new.png deleted file mode 100644 index c7ebac3..0000000 Binary files a/demos/declarative/contacts/pics/new.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/ok.png b/demos/declarative/contacts/pics/ok.png deleted file mode 100644 index 5795f04..0000000 Binary files a/demos/declarative/contacts/pics/ok.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/phone.png b/demos/declarative/contacts/pics/phone.png deleted file mode 100644 index fc9c222..0000000 Binary files a/demos/declarative/contacts/pics/phone.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/search.png b/demos/declarative/contacts/pics/search.png deleted file mode 100644 index cc74e69..0000000 Binary files a/demos/declarative/contacts/pics/search.png and /dev/null differ diff --git a/demos/declarative/contacts/pics/trash.png b/demos/declarative/contacts/pics/trash.png deleted file mode 100644 index 2042595..0000000 Binary files a/demos/declarative/contacts/pics/trash.png and /dev/null differ diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index 3ea5989..0eda95e 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -88,7 +88,6 @@ The following table lists the QML elements provided by the Qt Declarative module \o \l ListModel, \l ListElement \o \l VisualItemModel \o \l XmlListModel and XmlRole -\o \l SqlQuery, \l SqlConnection, and \l SqlBind \o \l DateTimeFormatter \o \l NumberFormatter \endlist diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index 5d8623b..c31156d 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -100,10 +100,4 @@ completely new applications. QML is fully \l {Extending QML}{extensible from C+ \o \l {QML Elements} \o \l {Extending QML} \endlist - -\section1 Deprecated -\list -\o \l {tutorials-declarative-contacts.html}{Tutorial: 'Introduction to QML'} -\endlist - */ diff --git a/doc/src/tutorials/declarative.qdoc b/doc/src/tutorials/declarative.qdoc deleted file mode 100644 index bbc3d15..0000000 --- a/doc/src/tutorials/declarative.qdoc +++ /dev/null @@ -1,674 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the documentation 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page tutorials-declarative-contacts.html - \startpage {index.html}{Qt Reference Documentation} - \nextpage {tutorials/declarative/contacts/part1}{Chapter 1} - - \title Declarative UI Tutorial - \ingroup howto - \ingroup tutorials - \brief An introduction to using Qt Declarative UI to put together a - simple animated application. - - \omit - At the time of writing the tutorial Declarative UI was still under - development. It is extremely likely that an update will be required - prior to 4.6 release. - \endomit - - This tutorial gives an introduction to using the Qt Declarative UI - animation framework. - - In this process we will learn about some of the basics of using - Declarative UI, such as - - \list - \o Basic drawing - \o States and Transitions - \o Reuse of components - \o Models and Views - \endlist - - An existing knowledge of Qt is not required. - - The tutorial's source code is located in Qt's - \c examples/declarative/tutorials/contacts directory. - It is split up into a number of sub directories, and within each - sub directory the files are numbered in an order of increasing features. - - The code in this example is not compiled, but interpreted at run time. - This means you should use the qmlviewer application provided with - Qt to run the examples. - - \list - \o \l{tutorials/declarative/contacts/part1}{Drawing and Animation} - \o \l{tutorials/declarative/contacts/part2}{Reusing QML Components} - \o \l{tutorials/declarative/contacts/part3}{Models, Views and Delegates} - \endlist -*/ - -/*! - \page tutorials-declarative-contacts-part1.html - \contentspage {Declarative UI Tutorial}{Contents} - \nextpage {tutorials/declarative/contacts/part2}{Chapter 2} - \example tutorials/declarative/contacts/part1 - \title Drawing and Animation - \tableofcontents - - The first part of this tutorial covers basic drawing of elements on the - screen and causing them to animate. - - \section1 Drawing - - In this first chapter we will build a button that indicates something - can be removed and asks for confirmation. When clicked it will expand - from a small button with a trash can icon, to a wide button with a - confirm icon on the left, the text "Remove" in the middle, and a - cancel icon on the right. - - \image declarative-removebutton.gif - - Because Declarative UI is declarative, you don't pass instructions on - what to paint in a sequential manner as you may be used to. Instead - elements and how they appear on the screen are declared in much the - same was as elements on a web page are declared. This is done using - the Qt Markup Language which we will refer to by the abbreviation QML - for the remainder of the tutorial. - - We will start by drawing a simple red rectangle with rounded corners. - - \image declarative-roundrect.png - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/1/RemoveButton.qml 0 - - This is one of the simplest of QML components. It describes a rectangle with - some simple properties. In QML all components start with a capital - letter, and their properties with lower case letters. - - Apart from the properties all QML components share, the \l{Rectangle}{Rectangle} component has the properties - - \list - \o color - The background color of the rectangle - \o tintColor - The overlay color of the rectangle - \o gradientColor - The color at the base of the rectangle to blend upwards - \o pen - The description of how to draw the border of the rectangle - \o radius - The corner radius used to draw rounded rectangles. - \endlist - - There are also a number of properties all QML components shares, described - in the \l{Item}{Item} element reference documentation. The rectangle drawn in the - above code uses the properties; - - \list - \o id - An identifier of the component - \o width - the width of the component when drawn - \o height - the height of the component when drawn - \endlist - - Currently we have described a rectangle with a width and height of 30 pixels, filled in with - the color red and with rounded corners using a radius of 5. - - \section1 Layout - - The next step of the tutorial adds an image over the rectangle. We - will do this by adding an \l{Image}{Image} component as a child of the - \l{Rectangle}{Rectangle} component. All QML components have a list of children which - are drawn in order after the parent component has been drawn. - By having the \l{Image}{Image} - component as a child of the \l{Rectangle}{Rectangle} component we ensure it is drawn - over the \l{Rectangle}{Rectangle} component. Children also are affected by the opacity - of the parent component and calculate their position in within the bounds of - the parent component. - - \image declarative-removebutton-close.png - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/2/RemoveButton.qml 0 - - The trashIcon image is added as a child of the Rectangle. In this case - the children property isn't explicitly used because the default property - of the \l{Rectangle}{Rectangle} component is its children. Some elements often don't have children - and use some other default component. When this is the case its possible - to explicitly list the sub component as a child as follows: - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/2a/RemoveButton.qml 0 - - The \l{Image}{Image} element allows loading an image file for display. The source - specified is a URL, and in this case refers to a portable network graphics - file in a relative directory to where the QML file was loaded from. - - Also new in this code is the use of anchors. In QML components can either - have their position and size specified explicitly using x, y, width - and height, or they can instead specify the size and position in relation - to either parent or sibling elements. The \l{Image}{Image} component uses - a combination of both styles. It has a fixed size, but specifies its - position to align to the right of its parent and for its vertical center - to align with the vertical center of its parent. Setting a property - by the identifier of a separate property binds them. This means - that if while running the example the position of the \l{Rectangle}{Rectangle} component's - vertical center changed, so to would the vertical center of - the \l{Image}{Image} component. - - The parent value is a special identifier that always refers to the - parent component of a component. - - Anchors are most useful when the size of items might change based on - the component state or contents. However they are limited in that they - must always refer to a parent or sibling component. See - \l{anchor-layout}{Anchor-based Layout} for more information on using - anchors in QML. - - At this point the initial state of the RemoveButton is complete. A small - rounded rectangle with a trash icon. Next we will design the open - state for the button. - - \image declarative-removebutton-open.png - - This is a wider rectangle with two images and some text. The code to - draw this state of the button could be written as follows: - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/3/RemoveButton.qml 0 - - The rectangle width is now wider by 200 pixels. Also the trashIcon has - been replaced. Normally we wouldn't - remove the trashIcon when developing an alternate state of the RemoveButton, - however since this is a tutorial its been done so that its easier to - understand the alternate state we are aiming for and how it relates to - transitioning between states. - - We also introduce the \l{Text}{Text} element. - Left and Right anchors are specified in terms of the neighboring icons - because we want text to fill the space between the icons. This - means as the parent removeButton gets wider, so will the text component. - It also means that if we animate a width change on the removeButton, - any bindings, that is the values specified by an expression such as - \c{parent.left} will be evaluated and animated as well. - - \section1 Defining States - - When designing a component with multiple states, it should be developed - in the initial state and the changes that would be made specified - as an additional state. Its not normally possible to add new children - to an element when changing state - This means that all possible child components should be included - in the initial state, and those that should not be visible in the initial - state should have their opacity set to zero. Thus - for the RemoveButton we specify the starting size of the RemoveButton - and hide any items that should not initially be visible. - - The code snippet below shows what the start of the duel state specification - might look like. - - \code - Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - src: "../../shared/pics/trash.png" - opacity: 1 - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - src: "../../shared/pics/cancel.png" - opacity: 0 - } - \endcode - - The code above includes components from both states of the RemoveButton, - but by setting opacity="0" for the cancelIcon it means that the - components of the second state won't be drawn yet. - The base state of a component always has an empty name, however new - states can be added that describe how a component and its children - should be changed. For the RemoveButton there is only one non-base state - required. In this tutorial we will name it the 'opened' state. - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml states - - In the opened state the width of the button itself changes from the base - width of 30 to the new width of 230. Also the opacity of the children - are changed so that the trash icon is now hidden and the other elements - are now visible. - - \section1 Changing States - - To trigger the change we will react to the 'clicked' signal of a - MouseRegion component. - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml mouse region - - MouseRegion components handle mouse actions within their geometry. This - geometry behaves the same way as painted components, such that children - cover their parents and later siblings will cover earlier siblings and - all the children of the earlier sibling, should they overlap. - - When a component has a signal, such as clicked, the action for the signal - can be specified using \c{onSignalName}, as is done above. In this - case when the clicked signal is emitted by the MouseRegion component, - a function called \c{toggle()} is called. It might also have been written - - \code - onClicked: { removeButton.state='opened' } - \endcode - - However in this case we are using a function because it allows multiple - mouse regions to use the same functionality, and also makes it - easier to specify complex behavior in response to a signal. - - An alternative would be to explicitly state the connection: - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/4a/RemoveButton.qml mouse region - - This will connect to the \c{clicked()} signal of the trashMouseRegion component - and execute the associated script. - - The \c{toggle()} function is a new function specified as part of the remove - button element. - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml script - - Any QML component can have a set of resources specified. One of those - resources is any Script that might be needed. See the - \l{QtScript Module} for more information on how to write - script code in Qt. - - It is possible to refer to identified QML components - within the script. Hence the function for our RemoveButton will check - if the state is already open to determine what the new state should be. - - \section1 Animation - - Currently the RemoveButton is functional, but snaps between our two states. - Fortunately making the transition between states smooth is very simple. - We only need one more bit of code at the end of our removeButton component. - - \snippet declarative/tutorials/contacts/1_Drawing_and_Animation/5/RemoveButton.qml transition - - All QML components have a transitions property. This describes how - properties of items within the component should change. In this case - we specify that if the x, width or opacity of the removeButton or its - children change due to a change in state, that they should take 200ms - to complete their transition. - - \omit - TODO More on types of animation, e.g. ColorAnimation, Behaviors. - \endomit - - In the next chapter we will show how we can use the remove button in - other QML components. -*/ - -/*! - \page tutorials-declarative-contacts-part2.html - \contentspage {Declarative UI Tutorial}{Contents} - \previouspage {tutorials/declarative/contacts/part1}{Chapter 1} - \nextpage {tutorials/declarative/contacts/part3}{Chapter 3} - \example tutorials/declarative/contacts/part2 - \title Reusing QML Components - \tableofcontents - - The second part of this tutorial covers how to reuse QML components and - have them interact with each other. The RemoveButton developed in the - previous chapter is intended to be part of a more complex control for - editing a field of our contact. This ContactField in turn is intended - to be used in a contact editing control. - - \image declarative-reuse-3.png - - \section1 Loading QML Components - - Reusing the RemoveButton itself is very simple. When parsing a QML file - if a Component is referred to that isn't already in the system, Qt - will try to load it from a file of the same name with the ".qml" extension. - - \snippet declarative/tutorials/contacts/2_Reuse/1/ContactField.qml load - - The above QML code will attempt to load the RemoveButton component from - a file with the name "RemoveButton.qml" from the following search paths. - - \list - \o Any imported directories. These are listed at the start of the file using - \c { import "path" }. - \o the directory of the QML code file - \endlist - - All the properties of the button are - accessible and can be overridden from defaults. The loaded component - can also refer to elements further up in the tree, so that code within - RemoveButton.qml could refer to the contactField component. - Only properties of the top level element in RemoveButton.qml are visible to - the contact field. - - There are also two other ways to reuse components in QML. A component - can be reused from within the same QML file using Component and Loader - elements. The next code snippet produces three red rounded rectangles - within a large blue rectangle. - - \image declarative-reuse-bluerect.png - - \snippet declarative/tutorials/contacts/2_Reuse/1b/BlueRect.qml all - - This can be useful when the component is not complex enough to justify its - own file. The third way to reuse components allows for delaying loading - of the QML until some later event. \l{Loader}{Loader} includes - a special child, item, which has its definition provided by the - contents of the source property of the loader. - - \snippet declarative/tutorials/contacts/2_Reuse/1a/ContactField.qml load - - This last method is useful if the contents of a item need to change at - run time or if the initial complexity of the loaded QML needs to be - reduced in order to improve the time it takes to start the application. In - chapter three this method is used to improve performance of - scrolling through very large numbers of items. - - Because of its simplicity, the first method is the recommended in most - cases and will be the focus of the remainder of this chapter. - - \section1 Properties and Signals - - The next task is to be able to control aspects of the RemoveButton from - the components that use it. In particular controlling how far it - expands and how it reacts when the user clicks on the confirm icon - of the remove button. When reusing a component in a separate QML file - only the attributes of the root element are visible. To allow controlling - attributes of child elements within an imported component we need to define - some properties and signals for the RemoveButton. - - \snippet declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml define properties and signals - - The children of the remove button can use these properties and signals. The - opened state can now bind the expanded width to the expandedWidth property. - - \snippet declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml use width - - Also when the confirm icon is clicked, as well as toggling the state it will - emit the confirmed signal of the RemoveButton component. - - \snippet declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml use signal - - These properties and signals can also be accessed from the contact field the same - way standard system component properties and signals are accessed. - - \snippet declarative/tutorials/contacts/2_Reuse/2/ContactField.qml use properties and signals - - Now when the remove button is expanded, it will expand to the width of the - contact field. Also when the user confirms the remove action, the - text section of the contact field will be cleared. - - \section1 States - - Its also possible to access the state of included components. The FieldText - component we will use in this tutorial is also been written specifically - for our contacts application. In - this case we want it to expand when editing. One way to do this would - be to anchor the field text component to the center of its parent and - then let its own width change push the remove button away, however that - would make it difficult to have the remove button also push the field - text to the left when the remove button expands. Instead we will anchor - the right edge of the field text to the left edge of the remove button - and use a state change in the contact field itself to move the - remove button and the field icon out of - view. - - \snippet declarative/tutorials/contacts/2_Reuse/3/ContactField.qml all - - Apart from accessing the fieldText.state, the above code also uses the when - attribute of its own editingText state. This is an alternative to using - a signal to change state. When the value of the expression for the - when attribute changes, Qt will detect if the contactField needs to enter - that state. In the FieldText element a similar approach is used to fade - out the label of the FieldText when the user enters some text of their own. - - \snippet declarative/tutorials/contacts/2_Reuse/3/FieldText.qml behavior - - \c{fieldText} is the enclosing component and \c{textEdit} is a TextEdit element - provided by Qt. In the QML code above, the opacity of the textLabel is - only 1 if the text for the textEdit is empty. This is a form of - short cut to using states for an element, useful if only one property - is changing as it is for the textLabel. To animate a property change is - similar to animating a state change. Using the Behavior element we can - specify how the property changes if it does change state, allowing for - a smooth transition. - - \section1 Key and Mouse Focus - - Setting focus to true on a component does not always mean - that the component has focus. This is due to the declarative nature - of QML, and can be affected by multiple components both indicating - focus to be true. At the time of writing this tutorial both key and mouse - focus handling are still being improved. Hence we will only lightly cover - the topic. - - For an item to have key focus in QML it is required that: - - \list - \o If there is a FocusScope ancestor of the component that it has focus as well. - \o That it is the most recent component within the focus realms descendent's - to receive focus - \endlist - - The read-only property focus can be used to determine whether a - component will receive key input. Any un-handled keys will be passed to - the components parent, which in turn will pass keys it doesn't handle up to its - own ancestors. - - Some components such as ListView components are also FocusScope components, as they - handle focus among the child list items. - - At this stage of the tutorial it is sufficient to use the setting of 'focus' - as we only have a list of line edits and only one should be active at any given time. - - Currently if multiple contact fields were put into our contact editor, - any of the FieldText components could be clicked and opened, and - any of the RemoveButton components could be clicked and opened, all - at the same time. This leads to situations where the users actions - are ambiguous - - \image declarative-reuse-focus.png - - To counteract this we will add a property of the root element to indicate - when an element has 'grabbed' mouse interaction, preventing other - clickable elements from reacting. - - \snippet declarative/tutorials/contacts/2_Reuse/4/Contact.qml grab property - - The code that we want to disable then simply needs to check this property before - acting. - - \snippet declarative/tutorials/contacts/2_Reuse/4/RemoveButton.qml grab - - \note Handling Key and Mouse focus in QML is quite likely to change before - the Qt 4.6 release. -*/ - -/*! - \page tutorials-declarative-contacts-part3.html - \contentspage {Declarative UI Tutorial}{Contents} - \previouspage {tutorials/declarative/contacts/part2}{Chapter 2} - \example tutorials/declarative/contacts/part3 - \title Models, Views and Delegates - \tableofcontents - - In the previous chapters we designed a component to display and - edit a contact. The next step is to display a list of those contacts - and allow the user to expand individual contacts for editing. - - As the previous elements will not be changed in this section, they have - been moved to a lib directory for this tutorial and the relevant - import path has been used. - - \section1 Simple List View - - Displaying lists requires three components. A model that holds the - data displayed, a delegate to indicate how elements are drawn and - a view to arrange the elements. - - \image declarative-tutorial-list.gif - - For the purposes of this tutorial we will be using an SQL query as our - data model. This can be declared in the resources section of - the parent item. - - \snippet declarative/tutorials/contacts/3_Collections/1/ContactView.qml model - - The SqlConnection component describes how to connect to the database in - much the same ways as the QSqlDatabase::addDatabase() function is used. - In this case an SQLite database is used as it can be connected to as a - file, reducing complexity in setting up a database server or credentials. - - The SqlQuery component allows various forms of queries to be described. - When the query is a select statement, the component also acts as a model - allowing it to provide data to a ListView component. The query above - retrieves the fields recid, label, email and phone from a contacts table, - and orders the results by the label of the contact first, and then by - the recid for any contacts with equivalent labels. - - The ListView component is suitable for displaying models and is declared - much like any other QML component. The ListView component also has - a delegate property that defines how to construct components for items in the list. - - \snippet declarative/tutorials/contacts/3_Collections/1/ContactView.qml delegate - - Unlike a child element, this describes a template on how to build the component - for each element, much in the same way that components are loaded from - files such as RemoveButton.qml. The are constructed or destroyed as items - scroll into our out of the visible area of the list. - - The entire view component will look like: - - \snippet declarative/tutorials/contacts/3_Collections/1/ContactView.qml view - - This gives us a list of contacts that the user can flick through. - - \section1 Animating Delegates - - The next step is to allow the user to click on a contact to edit the - contact. We will take advantage of QML to open a Contact component - in the list rather than as a new dialog or view. This is very - similar to how the contents of the FieldText and RemoveButton components - are swapped in and out. - - \image declarative-tutorial-list-open.gif - - \snippet declarative/tutorials/contacts/3_Collections/2/ContactView.qml components - - The first step is to have two children of our delegate component that can - be swapped between. The plain Text component and the Contact component built - in the previous chapters. We also add a MouseRegion that can be clicked upon - to change the state of the delegate component. - - \snippet declarative/tutorials/contacts/3_Collections/2/ContactView.qml states - - This defines the open state of the delegate. It changes the height of the delegate - component to that of the whole list view, pushing the other items off each end of - the list. It sets the listview's scroll viewportY of the ListView to the - y value of the delegate so that the top of the delegate matches the top of the list view. - The next step is to lock the list view. This prevents the user being able to flick - the list view. The final to properties that are set should - be familiar from previous chapters, setting the opacity of the items such - that the new item is visible and the old item hidden. - - We then add a transition so that this becomes animated: - - \snippet declarative/tutorials/contacts/3_Collections/2/ContactView.qml transitions - - This allows the user to click on an item to enter the open state. Elsewhere on our - contact view we add a button so that the user can leave the detailed view of the contact. - - \snippet declarative/tutorials/contacts/3_Collections/2/ContactView.qml button - - And connect it's clicked value to some script to set the state of the delegate - back to its default state. - - \snippet declarative/tutorials/contacts/3_Collections/2/ContactView.qml connections - - Something worth noting at this point is that every delegate created has this connection. - It is important to check whether the delegate is the one in the open state, and - taking some effort to ensure only one is, before acting on the signal from the button. - - \section1 Performance Considerations - - We have now made a contact application that can view a list of contacts, open one, - and close it again. Its now time to take a moment and consider the implications - of a list view delegate. It is created for each and every item in the list, - and while the list cleans up after itself and only has delegate components constructed - for visible items and any single point of animation, the list can scroll very quickly. - This means potentially thousands of delegate components will be constructed and - destroyed when the user is flicking through the list. - - Its important then to try and minimize the complexity of the delegate. This - can be done by delaying the loading of the component. By using the qml property - of the \l{Item}{Item} component, we can delay building the Contact.qml item until the user - attempts to open the list. - - \snippet declarative/tutorials/contacts/3_Collections/3/ContactView.qml setting qml - - \l{Loader}{Loader} has a source property that represents the filename for the contents of - a special item child of the \l{Loader}{Loader}. By setting the source property of the Details - component on clicking the mouse region, the more complex component isn't loaded - until needed. The down side about this though is the properties of Contact - cannot be set until the item is loaded. This requires using the Bind element. - - - \snippet declarative/tutorials/contacts/3_Collections/3/ContactView.qml binding - - Unlike binding a value to the property of a component directly, the Bind element - allows both the target and the property set to themselves be to dynamic values. - This means that when the source property is set, it will change the - item property of the Details component. This in turn triggers the Bind - elements to set the required properties of the item, which is now - an instance of the Contact component. -*/ diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/1_Drawing_and_animation.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/1_Drawing_and_animation.qml deleted file mode 100644 index 050f05f..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/1_Drawing_and_animation.qml +++ /dev/null @@ -1,36 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: page - width: layout.width - height: layout.height - color: "white" - Column { - id: layout - width: childrenRect.width - GroupBox { - contents: "1/RemoveButton.qml" - label: "Rectangle Component" - } - GroupBox { - contents: "2/RemoveButton.qml" - label: "Closed Remove Item Button" - } - GroupBox { - contents: "2a/RemoveButton.qml" - label: "Alternative Closed Button" - } - GroupBox { - contents: "3/RemoveButton.qml" - label: "Open Remove Item Button" - } - GroupBox { - contents: "4/RemoveButton.qml" - label: "State Based Button" - } - GroupBox { - contents: "5/RemoveButton.qml" - label: "Animated Button" - } - } -} diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2/RemoveButton.qml deleted file mode 100644 index e323381..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2/RemoveButton.qml +++ /dev/null @@ -1,20 +0,0 @@ -import Qt 4.6 - -//! [0] -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - } -} -//! [0] diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2a/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2a/RemoveButton.qml deleted file mode 100644 index acada5b..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/2a/RemoveButton.qml +++ /dev/null @@ -1,22 +0,0 @@ -import Qt 4.6 - -//! [0] -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - children: [ - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - } - ] -} -//! [0] diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/3/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/3/RemoveButton.qml deleted file mode 100644 index 247d266..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/3/RemoveButton.qml +++ /dev/null @@ -1,41 +0,0 @@ -import Qt 4.6 - -//! [0] -Rectangle { - id: removeButton - width: 230 - height: 30 - color: "red" - radius: 5 - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - } -} -//! [0] diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml deleted file mode 100644 index ed74c4c..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4/RemoveButton.qml +++ /dev/null @@ -1,107 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 -//! [script] - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] -//! [script] -//! [mouse region] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } -//! [mouse region] - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } -//! [states] - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] -//! [states] -} diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4a/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4a/RemoveButton.qml deleted file mode 100644 index 7dc95c8..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/4a/RemoveButton.qml +++ /dev/null @@ -1,114 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 -//! [script] - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] -//! [script] -//! [mouse region] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - id: trashMouseRegion - anchors.fill: parent - } - Connection { - sender: trashMouseRegion - signal: clicked() - script: { - toggle() - } - } - } -//! [mouse region] - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } -//! [states] - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] -//! [states] -} diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/5/RemoveButton.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/5/RemoveButton.qml deleted file mode 100644 index 75d5aaa..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/5/RemoveButton.qml +++ /dev/null @@ -1,114 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] -//! [transition] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -//! [transition] -} diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/GroupBox.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/GroupBox.qml deleted file mode 100644 index 327c2bf..0000000 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/GroupBox.qml +++ /dev/null @@ -1,59 +0,0 @@ -import Qt 4.6 - -FocusScope { - id: groupBox - width: Math.max(270, subItem.width+40) - height: Math.max(70, subItem.height+40) - - property var contents - property var label - - Rectangle { - id: wrapper - x: 5 - y: 10 - radius: 10 - width: groupBox.width-20 - height: groupBox.height-20 - color: "white" - border.color: "black" - Loader { - id: subItem - source: groupBox.contents - anchors.top: parent.top - anchors.topMargin: 10 - anchors.right: parent.right - anchors.rightMargin: 10 - width: item.width - height: item.height - } - } - Rectangle { - x: 20 - y: 0 - height: text.height - width: text.width+10 - color: "white" - Text { - x: 5 - id: text - text: label - font.bold: true - } - } - Rectangle { - color: "black" - anchors.fill: parent - opacity: parent.focus ? 0 : 0.3 - MouseRegion { - anchors.fill: parent - onClicked: { parent.parent.focus=true } - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1/ContactField.qml b/examples/declarative/tutorials/contacts/2_Reuse/1/ContactField.qml deleted file mode 100644 index 9508018..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1/ContactField.qml +++ /dev/null @@ -1,32 +0,0 @@ -import Qt 4.6 - -//! [load] -Item { - id: contactField - clip: true - width: 230 - height: 30 - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - } -//! [load] - Text { - id: fieldText - width: contactField.width-80 - anchors.right: removeButton.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - font.bold: true - color: "black" - text: "123123" - } - Image { - source: "../../shared/pics/phone.png" - anchors.right: fieldText.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/1/RemoveButton.qml deleted file mode 100644 index 5ac62ce..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1/RemoveButton.qml +++ /dev/null @@ -1,112 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1a/ContactField.qml b/examples/declarative/tutorials/contacts/2_Reuse/1a/ContactField.qml deleted file mode 100644 index e50dcc5..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1a/ContactField.qml +++ /dev/null @@ -1,35 +0,0 @@ -import Qt 4.6 - -//! [load] -Item { - id: contactField - clip: true - width: 230 - height: 30 - Loader { - id: removeButton - source: "RemoveButton.qml" - width: item.width - height: item.height - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - } -//! [load] - Text { - id: fieldText - width: contactField.width-80 - anchors.right: removeButton.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - font.bold: true - color: "black" - text: "123123" - } - Image { - source: "../../shared/pics/phone.png" - anchors.right: fieldText.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1a/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/1a/RemoveButton.qml deleted file mode 100644 index 5ac62ce..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1a/RemoveButton.qml +++ /dev/null @@ -1,112 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1b/BlueRect.qml b/examples/declarative/tutorials/contacts/2_Reuse/1b/BlueRect.qml deleted file mode 100644 index 7bcdf50..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1b/BlueRect.qml +++ /dev/null @@ -1,35 +0,0 @@ -import Qt 4.6 - -//! [all] -Rectangle { - width: 100 - height: 100 - color: "blue" - resources: [ - Component { - id: redRectangle - Rectangle { - width: 30 - height: 30 - color: "red" - radius: 5 - } - } - ] - Loader { - sourceComponent: redRectangle - anchors.right: parent.right - anchors.top: parent.top - } - Loader { - sourceComponent: redRectangle - anchors.left: parent.left - anchors.top: parent.top - } - Loader { - sourceComponent: redRectangle - anchors.left: parent.left - anchors.bottom: parent.bottom - } -} -//! [all] diff --git a/examples/declarative/tutorials/contacts/2_Reuse/1b/lib/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/1b/lib/RemoveButton.qml deleted file mode 100644 index eb694ce..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/1b/lib/RemoveButton.qml +++ /dev/null @@ -1,114 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - resources: [ - Script { - - function toggle() { - print('removeButton.toggle()'); - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: 230 - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/2/ContactField.qml b/examples/declarative/tutorials/contacts/2_Reuse/2/ContactField.qml deleted file mode 100644 index ce6a289..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/2/ContactField.qml +++ /dev/null @@ -1,34 +0,0 @@ -import Qt 4.6 - -Item { - id: contactField - clip: true - width: 230 - height: 30 -//! [use properties and signals] - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - expandedWidth: contactField.width - onConfirmed: { fieldText.text='' } - } -//! [use properties and signals] - Text { - id: fieldText - width: contactField.width-80 - anchors.right: removeButton.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - font.bold: true - color: "black" - text: "123123" - } - Image { - source: "../../shared/pics/phone.png" - anchors.right: fieldText.left - anchors.rightMargin: 10 - anchors.verticalCenter: parent.verticalCenter - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml deleted file mode 100644 index b1cd72e..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/2/RemoveButton.qml +++ /dev/null @@ -1,120 +0,0 @@ -import Qt 4.6 - -//! [define properties and signals] -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - property var expandedWidth: 230 - signal confirmed -//! [define properties and signals] - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 -//! [use signal] - MouseRegion { - anchors.fill: parent - onClicked: { toggle(); removeButton.confirmed() } - } -//! [use signal] - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" -//! [use width] - PropertyChanges { - target: removeButton - width: removeButton.expandedWidth - } -//! [use width] - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/2_Reuse.qml b/examples/declarative/tutorials/contacts/2_Reuse/2_Reuse.qml deleted file mode 100644 index a913dda..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/2_Reuse.qml +++ /dev/null @@ -1,39 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: page - width: layout.width - height: layout.height - color: "white" - Grid { - id: layout - columns: 2 - rows: 4 - width: childrenRect.width - GroupBox { - contents: "1/ContactField.qml" - label: "Loading: simple" - } - GroupBox { - contents: "1a/ContactField.qml" - label: "Loading: qml property" - } - GroupBox { - contents: "2/ContactField.qml" - label: "Using properties" - } - GroupBox { - id: prev - contents: "3/ContactField.qml" - label: "Defining signals" - } - GroupBox { - contents: "3/Contact.qml" - label: "Multiple Items" - } - GroupBox { - contents: "4/Contact.qml" - label: "Mouse Grabbing" - } - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/3/Contact.qml b/examples/declarative/tutorials/contacts/2_Reuse/3/Contact.qml deleted file mode 100644 index f253763..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/3/Contact.qml +++ /dev/null @@ -1,50 +0,0 @@ -import Qt 4.6 - -Item { - id: contactDetails - width: 230 - height: layout.height - - property var contactId: "" - property var label: "" - property var phone: "" - property var email: "" - - onLabelChanged: { labelField.value = label } - onEmailChanged: { emailField.value = email } - onPhoneChanged: { phoneField.value = phone } - - Column { - id: layout - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - spacing: 5 - ContactField { - id: labelField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - label: "Name" - } - ContactField { - id: phoneField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/phone.png" - label: "Phone" - } - ContactField { - id: emailField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/email.png" - label: "Email" - } - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/3/ContactField.qml b/examples/declarative/tutorials/contacts/2_Reuse/3/ContactField.qml deleted file mode 100644 index 1517a74..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/3/ContactField.qml +++ /dev/null @@ -1,61 +0,0 @@ -import Qt 4.6 - -//! [all] -Item { - id: contactField - clip: true - width: 230 - height: 30 - property var label: "Name" - property var icon: "../../shared/pics/phone.png" - property var value: "" - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - expandedWidth: contactField.width - onConfirmed: { fieldText.text='' } - } - FieldText { - id: fieldText - width: contactField.width-70 - anchors.right: removeButton.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - label: contactField.label - text: contactField.value - } - Image { - anchors.right: fieldText.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - source: contactField.icon - } - states: [ - State { - name: "editingText" - when: fieldText.state == 'editing' - PropertyChanges { - target: removeButton.anchors - rightMargin: -35 - } - PropertyChanges { - target: fieldText - width: contactField.width - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "width,rightMargin" - duration: 200 - } - } - ] -} -//! [all] diff --git a/examples/declarative/tutorials/contacts/2_Reuse/3/FieldText.qml b/examples/declarative/tutorials/contacts/2_Reuse/3/FieldText.qml deleted file mode 100644 index 3a8bb7f..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/3/FieldText.qml +++ /dev/null @@ -1,144 +0,0 @@ -import Qt 4.6 - -//! [value change] -Rectangle { - id: fieldText - height: 30 - radius: 5 - color: "white" - property var text: "" - onTextChanged: { reset() } -//! [value change] - property var label: "" - signal confirmed - resources: [ - Script { - - function edit() { - fieldText.state='editing'; - } - function confirm() { - fieldText.text = textEdit.text; - fieldText.state=''; - fieldText.confirmed(); - } - function reset() { - textEdit.text = fieldText.text; - fieldText.state=''; - } - - } - ] - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - } - TextEdit { - id: textEdit - anchors.left: parent.left - anchors.leftMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - color: "black" - font.bold: true - readOnly: true - wrap: false - } -//! [behavior] - Text { - id: textLabel - x: 5 - width: parent.width-10 - anchors.verticalCenter: parent.verticalCenter - horizontalAlignment: "AlignHCenter" - color: "#505050" - font.italic: true - text: fieldText.label - opacity: textEdit.text == '' ? 1 : 0 - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } -//! [behavior] - MouseRegion { - anchors.fill: cancelIcon - onClicked: { reset() } - } - MouseRegion { - anchors.fill: confirmIcon - onClicked: { confirm() } - } - MouseRegion { - id: editRegion - anchors.fill: textEdit - onClicked: { edit() } - } - states: [ - State { - name: "editing" - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: textEdit - readOnly: false - } - PropertyChanges { - target: textEdit - focus: true - } - PropertyChanges { - target: editRegion - opacity: 0 - } - PropertyChanges { - target: textEdit.anchors - leftMargin: 39 - } - PropertyChanges { - target: textEdit.anchors - rightMargin: 39 - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "opacity,leftMargin,rightMargin" - duration: 200 - } - ColorAnimation { - property: "color" - duration: 150 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/3/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/3/RemoveButton.qml deleted file mode 100644 index 1276c6b..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/3/RemoveButton.qml +++ /dev/null @@ -1,116 +0,0 @@ -import Qt 4.6 - -//! [all] -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - property var expandedWidth: 230 - signal confirmed - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - } else { - removeButton.state = 'opened'; - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle(); removeButton.confirmed() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: removeButton.expandedWidth - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} -//! [all] diff --git a/examples/declarative/tutorials/contacts/2_Reuse/4/Contact.qml b/examples/declarative/tutorials/contacts/2_Reuse/4/Contact.qml deleted file mode 100644 index db85d2a..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/4/Contact.qml +++ /dev/null @@ -1,53 +0,0 @@ -import Qt 4.6 - -//! [grab property] -Item { - id: contactDetails - width: 230 - height: layout.height - property var mouseGrabbed: false -//! [grab property] - - property var contactId: "" - property var label: "" - property var phone: "" - property var email: "" - - onLabelChanged: { labelField.value = label } - onEmailChanged: { emailField.value = email } - onPhoneChanged: { phoneField.value = phone } - - Column { - id: layout - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - spacing: 5 - ContactField { - id: labelField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - label: "Name" - } - ContactField { - id: phoneField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/phone.png" - label: "Phone" - } - ContactField { - id: emailField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/email.png" - label: "Email" - } - } -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/4/ContactField.qml b/examples/declarative/tutorials/contacts/2_Reuse/4/ContactField.qml deleted file mode 100644 index ccd756e..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/4/ContactField.qml +++ /dev/null @@ -1,58 +0,0 @@ -import Qt 4.6 - -Item { - id: contactField - clip: true - height: 30 - property var label: "Name" - property var icon: "../../shared/pics/phone.png" - property var value: "" - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - expandedWidth: contactField.width - onConfirmed: { fieldText.text='' } - } - FieldText { - id: fieldText - width: contactField.width-70 - anchors.right: removeButton.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - label: contactField.label - text: contactField.value - } - Image { - anchors.right: fieldText.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - source: contactField.icon - } - states: [ - State { - name: "editingText" - when: fieldText.state == 'editing' - PropertyChanges { - target: removeButton.anchors - rightMargin: -35 - } - PropertyChanges { - target: fieldText - width: contactField.width - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "width,rightMargin" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/4/FieldText.qml b/examples/declarative/tutorials/contacts/2_Reuse/4/FieldText.qml deleted file mode 100644 index 8f98ede..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/4/FieldText.qml +++ /dev/null @@ -1,145 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: fieldText - height: 30 - radius: 5 - color: "white" - property var text: "" - property var label: "" - onTextChanged: { reset() } - signal confirmed - resources: [ - Script { - - function edit() { - if (!contactDetails.mouseGrabbed) { - fieldText.state='editing'; - contactDetails.mouseGrabbed=true; - } - } - function confirm() { - fieldText.text = textEdit.text; - fieldText.state=''; - contactDetails.mouseGrabbed=false; - fieldText.confirmed(); - } - function reset() { - textEdit.text = fieldText.text; - fieldText.state=''; - contactDetails.mouseGrabbed=false; - } - - } - ] - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - } - TextEdit { - id: textEdit - anchors.left: parent.left - anchors.leftMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - color: "black" - font.bold: true - readOnly: true - wrap: false - } - Text { - id: textLabel - x: 5 - width: parent.width-10 - anchors.verticalCenter: parent.verticalCenter - horizontalAlignment: "AlignHCenter" - color: "#505050" - font.italic: true - text: fieldText.label - opacity: textEdit.text == '' ? 1 : 0 - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } - MouseRegion { - anchors.fill: cancelIcon - onClicked: { reset() } - } - MouseRegion { - anchors.fill: confirmIcon - onClicked: { confirm() } - } - MouseRegion { - id: editRegion - anchors.fill: textEdit - onClicked: { edit() } - } - states: [ - State { - name: "editing" - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: textEdit - readOnly: false - } - PropertyChanges { - target: textEdit - focus: true - } - PropertyChanges { - target: editRegion - opacity: 0 - } - PropertyChanges { - target: textEdit.anchors - leftMargin: 39 - } - PropertyChanges { - target: textEdit.anchors - rightMargin: 39 - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "opacity,leftMargin,rightMargin" - duration: 200 - } - ColorAnimation { - property: "color" - duration: 150 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/4/RemoveButton.qml b/examples/declarative/tutorials/contacts/2_Reuse/4/RemoveButton.qml deleted file mode 100644 index 8938184..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/4/RemoveButton.qml +++ /dev/null @@ -1,120 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - property var expandedWidth: 230 - signal confirmed - resources: [ -//! [grab] - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - contactDetails.mouseGrabbed=false; - } else { - if (!contactDetails.mouseGrabbed) { - removeButton.state = 'opened'; - contactDetails.mouseGrabbed=true; - } - } - } - - } -//! [grab] - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle(); removeButton.confirmed() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - width: removeButton.expandedWidth - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/2_Reuse/GroupBox.qml b/examples/declarative/tutorials/contacts/2_Reuse/GroupBox.qml deleted file mode 100644 index 327c2bf..0000000 --- a/examples/declarative/tutorials/contacts/2_Reuse/GroupBox.qml +++ /dev/null @@ -1,59 +0,0 @@ -import Qt 4.6 - -FocusScope { - id: groupBox - width: Math.max(270, subItem.width+40) - height: Math.max(70, subItem.height+40) - - property var contents - property var label - - Rectangle { - id: wrapper - x: 5 - y: 10 - radius: 10 - width: groupBox.width-20 - height: groupBox.height-20 - color: "white" - border.color: "black" - Loader { - id: subItem - source: groupBox.contents - anchors.top: parent.top - anchors.topMargin: 10 - anchors.right: parent.right - anchors.rightMargin: 10 - width: item.width - height: item.height - } - } - Rectangle { - x: 20 - y: 0 - height: text.height - width: text.width+10 - color: "white" - Text { - x: 5 - id: text - text: label - font.bold: true - } - } - Rectangle { - color: "black" - anchors.fill: parent - opacity: parent.focus ? 0 : 0.3 - MouseRegion { - anchors.fill: parent - onClicked: { parent.parent.focus=true } - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/1/ContactView.qml b/examples/declarative/tutorials/contacts/3_Collections/1/ContactView.qml deleted file mode 100644 index 25cb539..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/1/ContactView.qml +++ /dev/null @@ -1,46 +0,0 @@ -import Qt 4.6 - -import "../lib" -Item { - id: contacts - width: 240 - height: 230 - property var mouseGrabbed: false - resources: [ -//! [model] - SqlConnection { - id: contactDatabase - name: "qmlConnection" - driver: "QSQLITE" - databaseName: "../../shared/contacts.sqlite" - }, - SqlQuery { - id: contactList - connection: contactDatabase - query: "SELECT recid, label, email, phone FROM contacts ORDER BY label, recid" - } -//! [model] - ] -//! [view] - ListView { - id: contactListView - anchors.fill: parent - clip: true - model: contactList - focus: true -//! [delegate] - delegate: [ - Text { - x: 45 - y: 12 - width: contactListView.width-45 - height: 30 - color: "black" - font.bold: true - text: model.label - } - ] -//! [delegate] - } -//! [view] -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/2/ContactView.qml b/examples/declarative/tutorials/contacts/3_Collections/2/ContactView.qml deleted file mode 100644 index 8ee51c3..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/2/ContactView.qml +++ /dev/null @@ -1,124 +0,0 @@ -import Qt 4.6 - -import "../lib" -Item { - id: contacts - width: 240 - height: 230 - property var mouseGrabbed: false - resources: [ - SqlConnection { - id: contactDatabase - name: "qmlConnection" - driver: "QSQLITE" - databaseName: "../../shared/contacts.sqlite" - }, - SqlQuery { - id: contactList - connection: contactDatabase - query: "SELECT recid, label, email, phone FROM contacts ORDER BY label, recid" - } - ] -//! [button] - Button { - id: cancelEditButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - icon: "../../shared/pics/cancel.png" - opacity: mouseGrabbed ? 0 : 1 - } -//! [button] - ListView { - id: contactListView - anchors.left: parent.left - anchors.right: parent.right - anchors.top: cancelEditButton.bottom - anchors.bottom: parent.bottom - clip: true - model: contactList - focus: true - delegate: [ -//! [components] - Item { - id: wrapper - x: 0 - width: ListView.view.width - height: 34 - Text { - id: label - x: 45 - y: 12 - width: parent.width-45 - color: "black" - font.bold: true - text: model.label - } - MouseRegion { - anchors.fill: label - onClicked: { wrapper.state='opened'; } - } - Contact { - id: Details - anchors.fill: parent - contactId: model.recid - label: model.label - email: model.email - phone: model.phone - opacity: 0 - } -//! [components] -//! [states] - states: [ - State { - name: "opened" - PropertyChanges { - target: wrapper - height: contactListView.height - } - PropertyChanges { - target: contactListView - explicit: true - yPosition: wrapper.y - } - PropertyChanges { - target: contactListView - interactive: 0 - } - PropertyChanges { - target: label - opacity: 0 - } - PropertyChanges { - target: Details - opacity: 1 - } - } - ] -//! [states] -//! [transitions] - transitions: [ - Transition { - NumberAnimation { - duration: 500 - properties: "yPosition,height,opacity" - } - } - ] -//! [transitions] -//! [connections] - Connection { - sender: cancelEditButton - signal: "clicked()" - script: { - if (wrapper.state == 'opened') { - wrapper.state = ''; - } - } - } -//! [connections] - } - ] - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/3/ContactView.qml b/examples/declarative/tutorials/contacts/3_Collections/3/ContactView.qml deleted file mode 100644 index 76dc3e2..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/3/ContactView.qml +++ /dev/null @@ -1,137 +0,0 @@ -import Qt 4.6 - -import "../lib" -Item { - id: contacts - width: 240 - height: 230 - property var mouseGrabbed: false - resources: [ - SqlConnection { - id: contactDatabase - name: "qmlConnection" - driver: "QSQLITE" - databaseName: "../../shared/contacts.sqlite" - }, - SqlQuery { - id: contactList - connection: contactDatabase - query: "SELECT recid, label, email, phone FROM contacts ORDER BY label, recid" - } - ] - Button { - id: cancelEditButton - anchors.top: parent.top - anchors.topMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - icon: "../../shared/pics/cancel.png" - opacity: mouseGrabbed ? 0 : 1 - } - ListView { - id: contactListView - anchors.left: parent.left - anchors.right: parent.right - anchors.top: cancelEditButton.bottom - anchors.bottom: parent.bottom - clip: true - model: contactList - focus: true - delegate: [ - Item { - id: wrapper - x: 0 - width: ListView.view.width - height: 34 - Text { - id: label - x: 45 - y: 12 - width: parent.width-45 - color: "black" - font.bold: true - text: model.label - } -//! [setting qml] - MouseRegion { - anchors.fill: label - onClicked: { - Details.source = 'Contact.qml'; - wrapper.state='opened'; - } - } - Loader { - id: Details - anchors.fill: parent - opacity: 0 -//! [setting qml] -//! [binding] - Binding { - target: Details.item - property: "contactId" - value: model.recid - } - Binding { - target: Details.item - property: "label" - value: model.label - } - Binding { - target: Details.item - property: "phone" - value: model.phone - } - Binding { - target: Details.item - property: "email" - value: model.email - } -//! [binding] - } - states: [ - State { - name: "opened" - PropertyChanges { - target: wrapper - height: contactListView.height - } - PropertyChanges { - target: contactListView - explicit: true - yPosition: wrapper.y - } - PropertyChanges { - target: contactListView - interactive: 0 - } - PropertyChanges { - target: label - opacity: 0 - } - PropertyChanges { - target: Details - opacity: 1 - } - } - ] - transitions: [ - Transition { - NumberAnimation { - duration: 500 - properties: "yPosition,height,opacity" - } - } - ] - Connection { - sender: cancelEditButton - signal: "clicked()" - script: { - if (wrapper.state == 'opened') { - wrapper.state = ''; - } - } - } - } - ] - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/3_Collections.qml b/examples/declarative/tutorials/contacts/3_Collections/3_Collections.qml deleted file mode 100644 index cd14a08..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/3_Collections.qml +++ /dev/null @@ -1,31 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: page - width: layout.width - height: layout.height - color: "white" - Binding { - id: currentItem - value: true - } - // relies on the current focus behavior whereby setting focus=true on a - // component removes focus from any previous element - Grid { - id: layout - width: childrenRect.width - height: childrenRect.height - GroupBox { - contents: "1/ContactView.qml" - label: "list only" - } - GroupBox { - contents: "2/ContactView.qml" - label: "dynamic delegate" - } - GroupBox { - contents: "3/ContactView.qml" - label: "delayed loading" - } - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/GroupBox.qml b/examples/declarative/tutorials/contacts/3_Collections/GroupBox.qml deleted file mode 100644 index 327c2bf..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/GroupBox.qml +++ /dev/null @@ -1,59 +0,0 @@ -import Qt 4.6 - -FocusScope { - id: groupBox - width: Math.max(270, subItem.width+40) - height: Math.max(70, subItem.height+40) - - property var contents - property var label - - Rectangle { - id: wrapper - x: 5 - y: 10 - radius: 10 - width: groupBox.width-20 - height: groupBox.height-20 - color: "white" - border.color: "black" - Loader { - id: subItem - source: groupBox.contents - anchors.top: parent.top - anchors.topMargin: 10 - anchors.right: parent.right - anchors.rightMargin: 10 - width: item.width - height: item.height - } - } - Rectangle { - x: 20 - y: 0 - height: text.height - width: text.width+10 - color: "white" - Text { - x: 5 - id: text - text: label - font.bold: true - } - } - Rectangle { - color: "black" - anchors.fill: parent - opacity: parent.focus ? 0 : 0.3 - MouseRegion { - anchors.fill: parent - onClicked: { parent.parent.focus=true } - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/lib/Button.qml b/examples/declarative/tutorials/contacts/3_Collections/lib/Button.qml deleted file mode 100644 index 9719231..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/lib/Button.qml +++ /dev/null @@ -1,60 +0,0 @@ -import Qt 4.6 - -Item { - id: button - width: 30 - height: 30 - property var icon: "" - signal clicked - Rectangle { - id: buttonRect - anchors.fill: parent - color: "lightgreen" - radius: 5 - Image { - id: iconImage - source: button.icon - anchors.horizontalCenter: buttonRect.horizontalCenter - anchors.verticalCenter: buttonRect.verticalCenter - } - MouseRegion { - id: buttonMouseRegion - anchors.fill: buttonRect - onClicked: { button.clicked() } - } - states: [ - State { - name: "pressed" - when: buttonMouseRegion.pressed == true - PropertyChanges { - target: buttonRect - color: "green" - } - } - ] - transitions: [ - Transition { - from: "*" - to: "pressed" - ColorAnimation { - property: "color" - duration: 200 - } - }, - Transition { - from: "pressed" - to: "*" - ColorAnimation { - property: "color" - duration: 1000 - } - } - ] - } - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/lib/Contact.qml b/examples/declarative/tutorials/contacts/3_Collections/lib/Contact.qml deleted file mode 100644 index 58a542b..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/lib/Contact.qml +++ /dev/null @@ -1,47 +0,0 @@ -import Qt 4.6 - -Item { - id: contactDetails - anchors.fill: parent - - property var contactId: "" - property var label: "" - property var phone: "" - property var email: "" - - onLabelChanged: { labelField.value = label } - onEmailChanged: { emailField.value = email } - onPhoneChanged: { phoneField.value = phone } - - Column { - id: layout - anchors.fill: parent - spacing: 5 - ContactField { - id: labelField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - label: "Name" - } - ContactField { - id: phoneField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/phone.png" - label: "Phone" - } - ContactField { - id: emailField - anchors.left: layout.left - anchors.leftMargin: 5 - anchors.right: layout.right - anchors.rightMargin: 5 - icon: "../../shared/pics/email.png" - label: "Email" - } - } -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/lib/ContactField.qml b/examples/declarative/tutorials/contacts/3_Collections/lib/ContactField.qml deleted file mode 100644 index ccd756e..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/lib/ContactField.qml +++ /dev/null @@ -1,58 +0,0 @@ -import Qt 4.6 - -Item { - id: contactField - clip: true - height: 30 - property var label: "Name" - property var icon: "../../shared/pics/phone.png" - property var value: "" - RemoveButton { - id: removeButton - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - expandedWidth: contactField.width - onConfirmed: { fieldText.text='' } - } - FieldText { - id: fieldText - width: contactField.width-70 - anchors.right: removeButton.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - label: contactField.label - text: contactField.value - } - Image { - anchors.right: fieldText.left - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - source: contactField.icon - } - states: [ - State { - name: "editingText" - when: fieldText.state == 'editing' - PropertyChanges { - target: removeButton.anchors - rightMargin: -35 - } - PropertyChanges { - target: fieldText - width: contactField.width - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "width,rightMargin" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/lib/FieldText.qml b/examples/declarative/tutorials/contacts/3_Collections/lib/FieldText.qml deleted file mode 100644 index 228a00d..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/lib/FieldText.qml +++ /dev/null @@ -1,145 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: fieldText - height: 30 - radius: 5 - color: "white" - property var text: "" - property var label: "" - onTextChanged: { reset() } - signal confirmed - resources: [ - Script { - - function edit() { - if (!contacts.mouseGrabbed) { - fieldText.state='editing'; - contacts.mouseGrabbed=true; - } - } - function confirm() { - fieldText.text = textEdit.text; - fieldText.state=''; - contacts.mouseGrabbed=false; - fieldText.confirmed(); - } - function reset() { - textEdit.text = fieldText.text; - fieldText.state=''; - contacts.mouseGrabbed=false; - } - - } - ] - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - } - TextEdit { - id: textEdit - anchors.left: parent.left - anchors.leftMargin: 5 - anchors.right: parent.right - anchors.rightMargin: 5 - anchors.verticalCenter: parent.verticalCenter - color: "black" - font.bold: true - readOnly: true - wrap: false - } - Text { - id: textLabel - x: 5 - width: parent.width-10 - anchors.verticalCenter: parent.verticalCenter - horizontalAlignment: "AlignHCenter" - color: "#505050" - font.italic: true - text: fieldText.label - opacity: textEdit.text == '' ? 1 : 0 - opacity: Behavior { - NumberAnimation { - property: "opacity" - duration: 250 - } - } - } - MouseRegion { - anchors.fill: cancelIcon - onClicked: { reset() } - } - MouseRegion { - anchors.fill: confirmIcon - onClicked: { confirm() } - } - MouseRegion { - id: editRegion - anchors.fill: textEdit - onClicked: { edit() } - } - states: [ - State { - name: "editing" - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: textEdit - readOnly: false - } - PropertyChanges { - target: textEdit - focus: true - } - PropertyChanges { - target: editRegion - opacity: 0 - } - PropertyChanges { - target: textEdit.anchors - leftMargin: 39 - } - PropertyChanges { - target: textEdit.anchors - rightMargin: 39 - } - } - ] - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - properties: "opacity,leftMargin,rightMargin" - duration: 200 - } - ColorAnimation { - property: "color" - duration: 150 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/3_Collections/lib/RemoveButton.qml b/examples/declarative/tutorials/contacts/3_Collections/lib/RemoveButton.qml deleted file mode 100644 index 3c77cd8..0000000 --- a/examples/declarative/tutorials/contacts/3_Collections/lib/RemoveButton.qml +++ /dev/null @@ -1,119 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: removeButton - width: 30 - height: 30 - color: "red" - radius: 5 - property var expandedWidth: 230 - signal confirmed - resources: [ - Script { - function toggle() { - if (removeButton.state == 'opened') { - removeButton.state = ''; - contacts.mouseGrabbed=false; - } else { - if (!contacts.mouseGrabbed) { - removeButton.state = 'opened'; - contacts.mouseGrabbed=true; - } - } - } - - } - ] - Image { - id: trashIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/trash.png" - opacity: 1 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: cancelIcon - width: 22 - height: 22 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/cancel.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle() } - } - } - Image { - id: confirmIcon - width: 22 - height: 22 - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.verticalCenter: parent.verticalCenter - source: "../../shared/pics/ok.png" - opacity: 0 - MouseRegion { - anchors.fill: parent - onClicked: { toggle(); removeButton.confirmed() } - } - } - Text { - id: text - anchors.verticalCenter: parent.verticalCenter - anchors.left: confirmIcon.right - anchors.leftMargin: 4 - anchors.right: cancelIcon.left - anchors.rightMargin: 4 - font.bold: true - color: "white" - horizontalAlignment: "AlignHCenter" - text: "Remove" - opacity: 0 - } - states: [ - State { - name: "opened" - PropertyChanges { - target: removeButton - explicit: true - width: removeButton.expandedWidth - } - PropertyChanges { - target: text - opacity: 1 - } - PropertyChanges { - target: confirmIcon - opacity: 1 - } - PropertyChanges { - target: cancelIcon - opacity: 1 - } - PropertyChanges { - target: trashIcon - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "*" - to: "opened" - reversible: true - NumberAnimation { - properties: "opacity,x,width" - duration: 200 - } - } - ] -} diff --git a/examples/declarative/tutorials/contacts/shared/contactGenSQL.pl b/examples/declarative/tutorials/contacts/shared/contactGenSQL.pl deleted file mode 100755 index 2d328da..0000000 --- a/examples/declarative/tutorials/contacts/shared/contactGenSQL.pl +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use strict; - -my $count = shift; - -open(MFIRST, "; -my @fnames = ; -my @surnames = ; -my @isps = ; - -print "BEGIN;\n"; -print "CREATE TABLE contacts (recid INTEGER PRIMARY KEY, label TEXT, phone TEXT, email TEXT);\n"; -print "CREATE INDEX contactSortOrder ON contacts(label, recid);\n"; - -my $i = 0; -while ($i < $count) { - $i++; - my $fn = randomFirstName(); - my $sn = randomLastName(); - my $em = randomEmail($fn, $sn); - my $ph = randomPhoneNumber(); - - $fn =~ s/'/''/g; - $sn =~ s/'/''/g; - $em =~ s/'/''/g; - print "INSERT INTO contacts (label, email, phone) VALUES('$fn $sn', '$em', '$ph');\n" -} - -print "COMMIT;\n"; - - -sub randomFirstName -{ - my $name; - if (int(rand 2) == 1) { - $name = $mnames[int(rand @mnames)]; - } else { - $name = $fnames[int(rand @fnames)]; - } - chomp $name; - $name; -} - -sub randomLastName -{ - my $name = $surnames[int(rand @surnames)]; - chomp $name; - $name; -} - -sub randomEmail -{ - my ($fn, $ln) = @_; - my $isp = $isps[int(rand @isps)]; - chomp $isp; - my $path = int(rand 3); - my $email; - if ($path == 0) { - $email = "$fn.$ln\@$isp"; - } elsif ($path == 1) { - $email = "$fn\@$isp"; - } elsif ($path == 2) { - $email = "$ln\@$isp"; - } -} - -sub randomPhoneNumber -{ - my @digits = qw(1 2 3 4 5 6 7 8 9 0); - my $phonenumber; - for (1 .. 8) { - $phonenumber .= $digits[int(rand @digits)]; - } - $phonenumber; -} diff --git a/examples/declarative/tutorials/contacts/shared/contacts.sqlite b/examples/declarative/tutorials/contacts/shared/contacts.sqlite deleted file mode 100644 index d903775..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/contacts.sqlite and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/email.txt b/examples/declarative/tutorials/contacts/shared/email.txt deleted file mode 100644 index de9894b..0000000 --- a/examples/declarative/tutorials/contacts/shared/email.txt +++ /dev/null @@ -1,7 +0,0 @@ -emails.com -emails.net -mailserver.org -mailserver.net -mailserver.com -BobsMail.com -BillMail.com diff --git a/examples/declarative/tutorials/contacts/shared/english-f.txt b/examples/declarative/tutorials/contacts/shared/english-f.txt deleted file mode 100644 index 7da5474..0000000 --- a/examples/declarative/tutorials/contacts/shared/english-f.txt +++ /dev/null @@ -1,143 +0,0 @@ -Aimee -Aleksandra -Alice -Alicia -Allison -Alyssa -Amy -Andrea -Angel -Angela -Ann -Anna -Anne -Anne -Marie -Annie -Ashley -Barbara -Beatrice -Beth -Betty -Brenda -Brooke -Candace -Cara -Caren -Carol -Caroline -Carolyn -Carrie -Cassandra -Catherine -Charlotte -Chrissy -Christen -Christina -Christine -Christy -Claire -Claudia -Courtney -Crystal -Cynthia -Dana -Danielle -Deanne -Deborah -Deirdre -Denise -Diane -Dianne -Dorothy -Eileen -Elena -Elizabeth -Emily -Erica -Erin -Frances -Gina -Giulietta -Heather -Helen -Jane -Janet -Janice -Jenna -Jennifer -Jessica -Joanna -Joyce -Julia -Juliana -Julie -Justine -Kara -Karen -Katharine -Katherine -Kathleen -Kathryn -Katrina -Kelly -Kerry -Kim -Kimberly -Kristen -Kristina -Kristine -Laura -Laurel -Lauren -Laurie -Leah -Linda -Lisa -Lori -Marcia -Margaret -Maria -Marina -Marisa -Martha -Mary -Mary -Ann -Maya -Melanie -Melissa -Michelle -Monica -Nancy -Natalie -Nicole -Nina -Pamela -Patricia -Rachel -Rebecca -Renee -Sandra -Sara -Sharon -Sheri -Shirley -Sonia -Stefanie -Stephanie -Susan -Suzanne -Sylvia -Tamara -Tara -Tatiana -Terri -Theresa -Tiffany -Tracy -Valerie -Veronica -Vicky -Vivian -Wendy diff --git a/examples/declarative/tutorials/contacts/shared/english-m.txt b/examples/declarative/tutorials/contacts/shared/english-m.txt deleted file mode 100644 index 3c7b13e..0000000 --- a/examples/declarative/tutorials/contacts/shared/english-m.txt +++ /dev/null @@ -1,130 +0,0 @@ -Aaron -Adam -Adrian -Alan -Alejandro -Alex -Allen -Andrew -Andy -Anthony -Art -Arthur -Barry -Bart -Ben -Benjamin -Bill -Bobby -Brad -Bradley -Brendan -Brett -Brian -Bruce -Bryan -Carlos -Chad -Charles -Chris -Christopher -Chuck -Clay -Corey -Craig -Dan -Daniel -Darren -Dave -David -Dean -Dennis -Denny -Derek -Don -Doug -Duane -Edward -Eric -Eugene -Evan -Frank -Fred -Gary -Gene -George -Gordon -Greg -Harry -Henry -Hunter -Ivan -Jack -James -Jamie -Jason -Jay -Jeff -Jeffrey -Jeremy -Jim -Joe -Joel -John -Jonathan -Joseph -Justin -Keith -Ken -Kevin -Larry -Logan -Marc -Mark -Matt -Matthew -Michael -Mike -Nat -Nathan -Patrick -Paul -Perry -Peter -Philip -Phillip -Randy -Raymond -Ricardo -Richard -Rick -Rob -Robert -Rod -Roger -Ross -Ruben -Russell -Ryan -Sam -Scot -Scott -Sean -Shaun -Stephen -Steve -Steven -Stewart -Stuart -Ted -Thomas -Tim -Toby -Todd -Tom -Troy -Victor -Wade -Walter -Wayne -William diff --git a/examples/declarative/tutorials/contacts/shared/english-s.txt b/examples/declarative/tutorials/contacts/shared/english-s.txt deleted file mode 100644 index 1f3682d..0000000 --- a/examples/declarative/tutorials/contacts/shared/english-s.txt +++ /dev/null @@ -1,1003 +0,0 @@ -Adams -Adamson -Adler -Akers -Akin -Aleman -Alexander -Allen -Allison -Allwood -Anderson -Andreou -Anthony -Appelbaum -Applegate -Arbore -Arenson -Armold -Arntzen -Askew -Athanas -Atkinson -Ausman -Austin -Averitt -Avila-Sakar -Badders -Baer -Baggerly -Bailliet -Baird -Baker -Ball -Ballentine -Ballew -Banks -Baptist-Nguyen -Barbee -Barber -Barchas -Barcio -Bardsley -Barkauskas -Barnes -Barnett -Barnwell -Barrera -Barreto -Barroso -Barrow -Bart -Barton -Bass -Bates -Bavinger -Baxter -Bazaldua -Becker -Beeghly -Belforte -Bellamy -Bellavance -Beltran -Belusar -Bennett -Benoit -Bensley -Berger -Berggren -Bergman -Berry -Bertelson -Bess -Beusse -Bickford -Bierner -Bird -Birdwell -Bixby -Blackmon -Blackwell -Blair -Blankinship -Blanton -Block -Blomkalns -Bloomfield -Blume -Boeckenhauer -Bolding -Bolt -Bolton -Book -Boucher -Boudreau -Bowman -Boyd -Boyes -Boyles -Braby -Braden -Bradley -Brady -Bragg -Brandow -Brantley -Brauner -Braunhardt -Bray -Bredenberg -Bremer -Breyer -Bricout -Briggs -Brittain -Brockman -Brockmoller -Broman -Brooks -Brown -Brubaker -Bruce -Brumfield -Brumley -Bruning -Buck -Budd -Buhler -Buhr -Burleson -Burns -Burton -Bush -Butterfield -Byers -Byon -Byrd -Bzostek -Cabrera -Caesar -Caffey -Caffrey -Calhoun -Call -Callahan -Campbell -Cano -Capri -Carey -Carlisle -Carlson -Carmichael -Carnes -Carr -Carreira -Carroll -Carson -Carswell -Carter -Cartwright -Cason -Cates -Catlett -Caudle -Cavallaro -Cave -Cazamias -Chabot -Chance -Chapman -Characklis -Cheatham -Chen -Chern -Cheville -Chong -Christensen -Church -Claibourn -Clark -Clasen -Claude -Close -Coakley -Coffey -Cohen -Cole -Collier -Conant -Connell -Conte -Conway -Cooley -Cooper -Copeland -Coram -Corbett -Cort -Cortes -Cousins -Cowsar -Cox -Coyne -Crain -Crankshaw -Craven -Crawford -Cressman -Crestani -Crier -Crocker -Cromwell -Crouse -Crowder -Crowe -Culpepper -Cummings -Cunningham -Currie -Cusey -Cutcher -Cyprus -D'Ascenzo -Dabak -Dakoulas -Daly -Dana -Danburg -Danenhauer -Darley -Darrouzet -Dartt -Daugherty -Davila -Davis -Dawkins -Day -DeHart -DeMoss -DeMuth -DeVincentis -Deaton -Dees -Degenhardt -Deggeller -Deigaard -Delabroy -Delaney -Demir -Denison -Denney -Derr -Deuel -Devitt -Diamond -Dickinson -Dietrich -Dilbeck -Dobson -Dodds -Dodson -Doherty -Dooley -Dorsey -Dortch -Doughty -Dove -Dowd -Dowling -Drescher -Drucker -Dryer -Dryver -Duckworth -Dunbar -Dunham -Dunn -Duston -Dettweiler -Dyson -Eason -Eaton -Ebert -Eckhoff -Edelman -Edmonds -Eichhorn -Eisbach -Elders -Elias -Elijah -Elizabeth -Elliott -Elliston -Elms -Emerson -Engelberg -Engle -Eplett -Epp -Erickson -Estades -Etezadi -Evans -Ewing -Fair -Farfan -Fargason -Farhat -Farry -Fawcett -Faye -Federle -Felcher -Feldman -Ferguson -Fergusson -Fernandez -Ferrer -Fine -Fineman -Fisher -Flanagan -Flathmann -Fleming -Fletcher -Folk -Fortune -Fossati -Foster -Foulston -Fowler -Fox -Francis -Frantom -Franz -Frazer -Fredericks -Frey -Freymann -Fuentes -Fuller -Fundling -Furlong -Gainer -Galang -Galeazzi -Gamse -Gannaway -Garcia -Gardner -Garneau -Gartler -Garverick -Garza -Gatt -Gattis -Gayman -Geiger -Gelder -George -Gerbino -Gerbode -Gibson -Gifford -Gillespie -Gillingham -Gilpin -Gilyot -Girgis -Gjertsen -Glantz -Glaze -Glenn -Glotzbach -Gobble -Gockenbach -Goff -Goffin -Golden -Goldwyn -Gomez -Gonzalez -Good -Graham -Gramm -Granlund -Grant -Gray -Grayson -Greene -Greenslade -Greenwood -Greer -Griffin -Grinstein -Grisham -Gross -Grove -Guthrie -Guyton -Haas -Hackney -Haddock -Hagelstein -Hagen -Haggard -Haines -Hale -Haley -Hall -Halladay -Hamill -Hamilton -Hammer -Hancock -Hane -Hansen -Harding -Harless -Harms -Harper -Harrigan -Harris -Harrison -Hart -Harton -Hartz -Harvey -Hastings -Hauenstein -Haushalter -Haven -Hawes -Hawkins -Hawley -Haygood -Haylock -Hazard -Heath -Heidel -Heins -Hellums -Hendricks -Henry -Henson -Herbert -Herman -Hernandez -Herrera -Hertzmann -Hewitt -Hightower -Hildebrand -Hill -Hindman -Hirasaki -Hirsh -Hochman -Hocker -Hoffman -Hoffmann -Holder -Holland -Holloman -Holstein -Holt -Holzer -Honeyman -Hood -Hooks -Hopper -Horne -House -Houston -Howard -Howell -Howley -Huang -Hudgings -Huffman -Hughes -Humphrey -Hunt -Hunter -Hurley -Huston -Hutchinson -Hyatt -Irving -Jacobs -Jaramillo -Jaranson -Jarboe -Jarrell -Jenkins -Johnson -Johnston -Jones -Joy -Juette -Julicher -Jumper -Kabir -Kamberova -Kamen -Kamine -Kampe -Kane -Kang -Kapetanovic -Kargatis -Karlin -Karlsson -Kasbekar -Kasper -Kastensmidt -Katz -Kauffman -Kavanagh -Kaydos -Kearsley -Keleher -Kelly -Kelty -Kendrick -Key -Kicinski -Kiefer -Kielt -Kim -Kimmel -Kincaid -King -Kinney -Kipp -Kirby -Kirk -Kirkland -Kirkpatrick -Klamczynski -Klein -Kopnicky -Kotsonis -Koutras -Kramer -Kremer -Krohn -Kuhlken -Kunitz -LaLonde -LaValle -LaWare -Lacy -Lam -Lamb -Lampkin -Lane -Langston -Lanier -Larsen -Lassiter -Latchford -Lawera -LeBlanc -LeGrand -Leatherbury -Lebron -Ledman -Lee -Leinenbach -Leslie -Levy -Lewis -Lichtenstein -Lisowski -Liston -Litvak -Llano-Restrepo -Lloyd -Lock -Lodge -Logan -Lomonaco -Long -Lopez -Lopez-Bassols -Loren -Loughridge -Love -Ludtke -Luers -Lukes -Luxemburg -MacAllister -MacLeod -Mackey -Maddox -Magee -Mallinson -Mann -Manning -Manthos -Marie -Marrow -Marshall -Martin -Martinez -Martisek -Massey -Mathis -Matt -Maxwell -Mayer -Mazurek -McAdams -McAfee -McAlexander -McBride -McCarthy -McClure -McCord -McCoy -McCrary -McCrossin -McDonald -McElfresh -McFarland -McGarr -McGhee -McGoldrick -McGrath -McGuire -McKinley -McMahan -McMahon -McMath -McNally -Mcdonald -Meade -Meador -Mebane -Medrano -Melton -Merchant -Merwin -Millam -Millard -Miller -Mills -Milstead -Minard -Miner -Minkoff -Minnotte -Minyard -Mirza -Mitchell -Money -Monk -Montgomery -Monton -Moore -Moren -Moreno -Morris -Morse -Moss -Moyer -Mueller -Mull -Mullet -Mullins -Munn -Murdock -Murphey -Murphy -Murray -Murry -Mutchler -Myers -Myrick -Nassar -Nathan -Nazzal -Neal -Nederveld -Nelson -Nguyen -Nichols -Nielsen -Nockton -Nolan -Noonan -Norbury -Nordlander -Norris -Norvell -Noyes -Nugent -Nunn -O'Brien -O'Connell -O'Neill -O'Steen -Ober -Odegard -Oliver -Ollmann -Olson -Ongley -Ordway -Ortiz -Ouellette -Overcash -Overfelt -Overley -Owens -Page -Paige -Pardue -Parham -Parker -Parks -Patterson -Patton -Paul -Payne -Peck -Penisson -Percer -Perez -Perlioni -Perrino -Peterman -Peters -Pfeiffer -Phelps -Philip -Philippe -Phillips -Pickett -Pippenger -Pistole -Platzek -Player -Poddar -Poirier -Poklepovic -Polk -Polking -Pond -Popish -Porter -Pound -Pounds -Powell -Powers -Prado -Preston -Price -Prichep -Priour -Prischmann -Pryor -Puckett -Raglin -Ralston -Rampersad -Ratner -Rawles -Ray -Read -Reddy -Reed -Reese -Reeves -Reichenbach -Reifel -Rein -Reiten -Reiter -Reitmeier -Reynolds -Richardson -Rider -Rhinehart -Ritchie -Rittenbach -Roberts -Robinson -Rodriguez -Rogers -Roper -Rosemblun -Rosen -Rosenberg -Rosenblatt -Ross -Roth -Rowatt -Roy -Royston -Rozendal -Rubble -Ruhlin -Rupert -Russell -Ruthruff -Ryan -Rye -Sabry -Sachitano -Sachs -Sammartino -Sands -Saunders -Savely -Scales -Schaefer -Schafer -Scheer -Schild -Schlitt -Schmitz -Schneider -Schoenberger -Schoppe -Scott -Seay -Segura -Selesnick -Self -Seligmann -Sewall -Shami -Shampine -Sharp -Shaw -Shefelbine -Sheldon -Sherrill -Shidle -Shifley -Shillingsburg -Shisler -Shopbell -Shupack -Sievert -Simpson -Sims -Sissman -Smayling -Smith -Snyder -Solomon -Solon -Soltero -Sommers -Sonneborn -Sorensen -Southworth -Spear -Speight -Spencer -Spruell -Spudich -Stacy -Staebel -Steele -Steinhour -Steinke -Stepp -Stevens -Stewart -Stickel -Stine -Stivers -Stobb -Stone -Stratmann -Stubbers -Stuckey -Stugart -Sullivan -Sultan -Sumrall -Sunley -Sunshine -Sutton -Swaim -Swales -Sweed -Swick -Swift -Swindell -Swint -Symonds -Syzdek -Szafranski -Takimoto -Talbott -Talwar -Tanner -Taslimi -Tate -Tatum -Taylor -Tchainikov -Terk -Thacker -Thomas -Thompson -Thomson -Thornton -Thurman -Thurow -Tilley -Tolle -Towns -Trafton -Tran -Trevas -Trevino -Triggs -Truchard -Tunison -Turner -Twedell -Tyler -Tyree -Unger -Van -Vanderzanden -Vanlandingham -Varanasi -Varela -Varman -Venier -Verspoor -Vick -Visinsky -Voltz -Wagner -Wake -Walcott -Waldron -Walker -Wallace -Walters -Walton -Ward -Wardle -Warnes -Warren -Washington -Watson -Watters -Webber -Weidenfeller -Weien -Weimer -Weiner -Weinger -Weinheimer -Weirich -Welch -Wells -Wendt -West -Westmoreland -Wex -Whitaker -White -Whitley -Wiediger -Wilburn -Williams -Williamson -Willman -Wilson -Winger -Wise -Wisur -Witt -Wong -Woodbury -Wooten -Workman -Wright -Wyatt -Yates -Yeamans -Yen -York -Yotov -Younan -Young -Zeldin -Zettner -Ziegler -Zitterkopf -Zucker diff --git a/examples/declarative/tutorials/contacts/shared/pics/cancel.png b/examples/declarative/tutorials/contacts/shared/pics/cancel.png deleted file mode 100644 index ecc9533..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/cancel.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/email.png b/examples/declarative/tutorials/contacts/shared/pics/email.png deleted file mode 100644 index 04b3865..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/email.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/new.png b/examples/declarative/tutorials/contacts/shared/pics/new.png deleted file mode 100644 index c7ebac3..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/new.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/ok.png b/examples/declarative/tutorials/contacts/shared/pics/ok.png deleted file mode 100644 index 5795f04..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/ok.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/phone.png b/examples/declarative/tutorials/contacts/shared/pics/phone.png deleted file mode 100644 index fc9c222..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/phone.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/search.png b/examples/declarative/tutorials/contacts/shared/pics/search.png deleted file mode 100644 index cc74e69..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/search.png and /dev/null differ diff --git a/examples/declarative/tutorials/contacts/shared/pics/trash.png b/examples/declarative/tutorials/contacts/shared/pics/trash.png deleted file mode 100644 index 2042595..0000000 Binary files a/examples/declarative/tutorials/contacts/shared/pics/trash.png and /dev/null differ diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri index 502504a..5e5e74e 100644 --- a/src/declarative/extra/extra.pri +++ b/src/declarative/extra/extra.pri @@ -25,11 +25,3 @@ contains(QT_CONFIG, xmlpatterns) { HEADERS += extra/qmlxmllistmodel.h } -# SQL is permanently enabled :-/ -#contains(QT_CONFIG, sql) { - QT+= sql - SOURCES += extra/qmlsqlquery.cpp \ - extra/qmlsqlconnection.cpp - HEADERS += extra/qmlsqlquery.h \ - extra/qmlsqlconnection.h -#} diff --git a/src/declarative/extra/qmlsqlconnection.cpp b/src/declarative/extra/qmlsqlconnection.cpp deleted file mode 100644 index bed92ef..0000000 --- a/src/declarative/extra/qmlsqlconnection.cpp +++ /dev/null @@ -1,429 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlsqlconnection.h" -#include "private/qobject_p.h" - -#include -#include -#include - -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,SqlConnection,QmlSqlConnection) - -class QmlSqlConnectionPrivate: public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlSqlConnection) -public: - QmlSqlConnectionPrivate() : port(0) {} - - int port; - QString name, databaseName, connectionOptions; - QString hostName, userName, password, driver; -}; - -/*! - \qmlclass SqlConnection QmlSqlConnection - \brief The SqlConnection element describes a connection to an SQL database. - - The SqlConnection element works in a similar way to - QSqlDatabase::addDatabase(). It allows setting the database properties - such that the connection does not need to be set up in C++ code. - It differs from QSqlDatabase::addDatabase() in that it will automatically - open the database. - - The database can then either be used from an SqlQuery element using its id - as a bind, or using its name. If the database is set up externally to - Qml the query should connect using its name. - - \qml - SqlConnection { - id: myConnection - name: "qmlConnection" - driver: "QSQLITE" - databaseName: "mydb.sqlite" - } - SqlQuery { id: listmodel; connection: myConnection; query: "SELECT * FROM mytable" } - SqlQuery { id: othermodel; connection: "qmlConnection"; query: "SELECT * FROM myothertable" } - \endqml -*/ - -/*! - \qmlproperty QString SqlConnection::name - - Defines the connection's name. The name allows the connection to be - retrieved using the connection property of SqlQuery or when - QSqlDatabase::database() -*/ - -/*! - \qmlproperty list SqlConnection::tables - - Defines the set of tables that exist in the database for the connection. -*/ - -/*! - \qmlproperty string SqlConnection::databaseName - - Defines the connection's database name. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::driver - - Defines the driver type of the connection. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::connectOptions - - Defines the options used when connecting to the database. These are used - when opening the connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::hostName - - Defines the connection's host name. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty int SqlConnection::port - - Defines the connection's port number. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::userName - - Defines the connection's user name. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::password - - Defines the connection's password. This is used when opening the - connection to the database. -*/ - -/*! - \qmlproperty string SqlConnection::lastError - - Defines the last error, if one occurred, when working with the database. - If the error occurred in conjunction with an SQL query the error will be - defined by SqlQuery::lastError. -*/ - -/*! - \internal - \class QmlSqlConnection - \brief The QmlSqlConnection class manages a connection to an SQL database. -*/ - -/*! - Constructs a QmlSqlConnection with the given \a parent. -*/ -QmlSqlConnection::QmlSqlConnection(QObject *parent) -: QObject(*(new QmlSqlConnectionPrivate), parent) -{ -} - -/*! - Destroys the QmlSqlConnection. -*/ -QmlSqlConnection::~QmlSqlConnection() -{ - QSqlDatabase db = database(); - if (db.isOpen()) - db.close(); -} - -/*! - Returns the connection's name. - This is equivalent to QSqlDatabase::connectionName(). - \sa setName() -*/ -QString QmlSqlConnection::name() const -{ - Q_D(const QmlSqlConnection); - return d->name; -} - -/*! - Returns the connection's database name. - This is equivalent to QSqlDatabase::databaseName(). - \sa setDatabaseName() -*/ -QString QmlSqlConnection::databaseName() const -{ - Q_D(const QmlSqlConnection); - return d->databaseName; -} - -/*! - Returns the connect options string used for this connection. - - \sa setConnectOptions() -*/ -QString QmlSqlConnection::connectOptions() const -{ - Q_D(const QmlSqlConnection); - return d->connectionOptions; -} - -/*! - Returns the connection's host name. - \sa setHostName() -*/ -QString QmlSqlConnection::hostName() const -{ - Q_D(const QmlSqlConnection); - return d->hostName; -} - -/*! - Returns the connection's port number. The value is undefined if the port - number has not been set. - - \sa setPort() -*/ -int QmlSqlConnection::port() const -{ - Q_D(const QmlSqlConnection); - return d->port; -} - -/*! - Returns the connection's user name. - - \sa setUserName() -*/ -QString QmlSqlConnection::userName() const -{ - Q_D(const QmlSqlConnection); - return d->userName; -} - -/*! - Returns the connection's password. - - \sa setPassword)() -*/ -QString QmlSqlConnection::password() const -{ - Q_D(const QmlSqlConnection); - return d->password; -} - -/*! - Returns the connection's driver name. - - \sa setDriver() -*/ -QString QmlSqlConnection::driver() const -{ - Q_D(const QmlSqlConnection); - return d->driver; -} - -/*! - Returns a list of the database's tables. -*/ -QStringList QmlSqlConnection::tables() const -{ - return database().tables(); -} - -/*! - Sets the connection's name to the given \a name. - - \sa name() -*/ -void QmlSqlConnection::setName(const QString &name) -{ - Q_D(QmlSqlConnection); - d->name = name; -} - -/*! - Set's the connection's database name to the given \a name. - - \sa databaseName() -*/ -void QmlSqlConnection::setDatabaseName(const QString &name) -{ - Q_D(QmlSqlConnection); - d->databaseName = name; -} - -/*! - Sets the connection's options to the given \a options. - - \sa connectOptions(), QSqlDatabase::setConnectOptions() -*/ -void QmlSqlConnection::setConnectOptions(const QString &options) -{ - Q_D(QmlSqlConnection); - d->connectionOptions = options; -} - -/*! - Sets the connection's host name to the given \a name. - - \sa hostName() -*/ -void QmlSqlConnection::setHostName(const QString &name) -{ - Q_D(QmlSqlConnection); - d->hostName = name; -} - -/*! - Sets the connection's port number to the given \a port. - - \sa port() -*/ -void QmlSqlConnection::setPort(int port) -{ - Q_D(QmlSqlConnection); - d->port = port; -} - -/*! - Sets the connection's user name to the given \a name. - - \sa userName() -*/ -void QmlSqlConnection::setUserName(const QString &name) -{ - Q_D(QmlSqlConnection); - d->userName = name; -} - -/*! - Sets the connection's password to the given \a password. - - \sa password() -*/ -void QmlSqlConnection::setPassword(const QString &password) -{ - Q_D(QmlSqlConnection); - d->password = password; -} - -/*! - Returns information about the last error that occurred on the database. - - Failures that occur in conjunction with an individual query are - reported by QmlSqlQuery::lastError() -*/ -QString QmlSqlConnection::lastError() const -{ - return database().lastError().text(); -} - -/*! - Sets the connection's driver to the specified driver \a type. - - \sa driver(), QSqlDatabase::addDatabase() -*/ -void QmlSqlConnection::setDriver(const QString &type) -{ - Q_D(QmlSqlConnection); - d->driver = type; -} - -/*! - Returns the database object associated with this connection. - If the database is not yet open, it will open the database - passed on the settings specified for the SQL connection. -*/ -QSqlDatabase QmlSqlConnection::database() const -{ - Q_D(const QmlSqlConnection); - - QSqlDatabase db; - if (QSqlDatabase::connectionNames().contains(d->name)) { - db = QSqlDatabase::database(d->name); - } else { - db = QSqlDatabase::addDatabase( - d->driver.isEmpty() - ? QLatin1String("QSQLITE") - : d->driver, - d->name.isEmpty() - ? QLatin1String(QSqlDatabase::defaultConnection) - : d->name); - } - if (db.isOpen()) - return db; - if ((d->driver.isEmpty() || d->driver == QLatin1String("QSQLITE")) && - qmlContext(this)) { - // SQLITE uses files for databases, hence use relative pathing - // if possible. - QUrl url = qmlContext(this)->resolvedUrl(QUrl(d->databaseName)); - if (url.isRelative() || url.scheme() == QLatin1String("file")) - db.setDatabaseName(url.toLocalFile()); - else - db.setDatabaseName(d->databaseName); - } else { - db.setDatabaseName(d->databaseName); - } - db.setConnectOptions(d->connectionOptions); - db.setHostName(d->hostName); - db.setPassword(d->password); - db.setPort(d->port); - db.setUserName(d->userName); - if (!db.open()) - qWarning() << "Failed to open database" << lastError(); - - return db; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlsqlconnection.h b/src/declarative/extra/qmlsqlconnection.h deleted file mode 100644 index 740bbc2..0000000 --- a/src/declarative/extra/qmlsqlconnection.h +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSQLCONNECTION_H -#define QMLSQLCONNECTION_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QSqlDatabase; -class QmlSqlConnectionPrivate; -class Q_DECLARATIVE_EXPORT QmlSqlConnection : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QStringList tables READ tables) - Q_PROPERTY(QString databaseName READ databaseName WRITE setDatabaseName) - Q_PROPERTY(QString driver READ driver WRITE setDriver) - Q_PROPERTY(QString connectOptions READ connectOptions WRITE setConnectOptions) - Q_PROPERTY(QString hostName READ hostName WRITE setHostName) - Q_PROPERTY(int port READ port WRITE setPort) - Q_PROPERTY(QString userName READ userName WRITE setUserName) - Q_PROPERTY(QString password READ password WRITE setPassword) - Q_PROPERTY(QString lastError READ lastError) -public: - QmlSqlConnection(QObject *parent = 0); - ~QmlSqlConnection(); - - QString name() const; - void setName(const QString &); - - QStringList tables() const; - - QString databaseName() const; - void setDatabaseName(const QString &); - - QString connectOptions() const; - void setConnectOptions(const QString &); - - QString hostName() const; - void setHostName(const QString &); - - int port() const; - void setPort(int); - - QString userName() const; - void setUserName(const QString &); - - QString password() const; - void setPassword(const QString &); - - QString driver() const; - void setDriver(const QString &); - - QString lastError() const; - - QSqlDatabase database() const; -private: - Q_DISABLE_COPY(QmlSqlConnection) - Q_DECLARE_PRIVATE(QmlSqlConnection) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlSqlConnection) - -QT_END_HEADER - -#endif // QMLXMLLISTMODEL_H - diff --git a/src/declarative/extra/qmlsqlquery.cpp b/src/declarative/extra/qmlsqlquery.cpp deleted file mode 100644 index fe6e220..0000000 --- a/src/declarative/extra/qmlsqlquery.cpp +++ /dev/null @@ -1,788 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlsqlquery.h" -#include "qmlsqlconnection.h" -#include "private/qobject_p.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,SqlBind,QmlSqlBind) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,SqlQuery,QmlSqlQuery) - -class QmlSqlBindPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlSqlBind) -public: - QmlSqlBindPrivate() {} - - QString name; - QVariant value; -}; - -/*! - \qmlclass SqlBind QmlSqlBind - \brief The SqlBind element specifies a value binding for an SqlQuery element. - - By using bindings its possible to cause a SqlQuery to update itself - when values bound through the SqlBind change. Hence in the example - below the results for the SqlQuery will change as searchText changes. - - If the query is not a SELECT statement, the effects of the bound - values will only apply when the SqlQuery exec() slot is called. - - \qml - SqlQuery { - query: "SELECT * FROM mytable WHERE name LIKE :value" - bindings: SqlBind { - name: ":value" - value: searchText + '%' - } - } - SqlQuery { - query: "SELECT * FROM mytable WHERE type = ?" - bindings: SqlBind { - value: "simple" - } - } - \endqml -*/ - -/*! - \internal - \class QmlSqlBind - \brief The QmlSqlBind class specifies a value binding for a QmlSqlQuery. -*/ - -/*! - \fn void QmlSqlBind::valueChanged() - - This signal is emitted when the value property of the SqlBind changes. -*/ - -/*! - \qmlproperty QString SqlBind::name - - Defines the placeholder name of the bind. If no name is specified the - bind will use its position within the SqlQuery's bindings to bind - into the query. -*/ - -/*! - \qmlproperty QVariant SqlBind::value - - Defines the value to bind into the query. -*/ - -/*! - Constructs a QmlSqlVind with the given \a parent -*/ -QmlSqlBind::QmlSqlBind(QObject *parent) -: QObject(*(new QmlSqlBindPrivate()), parent) -{ -} - -/*! - Destroys the QmlSqlBind. -*/ -QmlSqlBind::~QmlSqlBind() -{ -} - -/*! - Returns the binding's name. - - \sa setName() -*/ -QString QmlSqlBind::name() const -{ - Q_D(const QmlSqlBind); - return d->name; -} - -/*! - Returns the binding's value. - - \sa setValue() -*/ -QVariant QmlSqlBind::value() const -{ - Q_D(const QmlSqlBind); - return d->value; -} - -/*! - Sets the binding's name to the given \a name. - - \sa name() -*/ -void QmlSqlBind::setName(const QString &name) -{ - Q_D(QmlSqlBind); - d->name = name; -} - -/*! - Sets the binding's value to the given \a value. - - \sa value() -*/ -void QmlSqlBind::setValue(const QVariant &value) -{ - Q_D(QmlSqlBind); - if (d->value != value) { - d->value = value; - emit valueChanged(); - } -} - -class QmlSqlQueryPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlSqlQuery) -public: - QmlSqlQueryPrivate(QmlSqlQuery *owner) - : isSel(false), query(NULL), requireCache(false), count(-1), - cacheNear(100), cacheRetain(100), cacheSize(1000), - cacheInterval(250), scheduledRow(-1), cacheTimer(-1), - binds(owner) {} - void prepareQuery() const; - void bindQuery() const; - void grabRoles() const; - - void clearCache(); - void initCache() const; - void hitCache(int row) const; - - void enactShift(int row) const; - - QString queryText; - bool isSel; - QVariant connectionVariant; - mutable QSqlQuery *query; - mutable bool requireCache; - mutable int count; - mutable QList roles; - mutable QStringList roleNames; - - typedef QContiguousCache Column; - mutable QVector< Column * > cache; - - int cacheNear, cacheRetain, cacheSize, cacheInterval; - - mutable int scheduledRow; - mutable int cacheTimer; - - class QmlSqlBindList : public QmlList - { - public: - QmlSqlBindList(QmlSqlQuery *owner) - : q(owner){} - - void append(QmlSqlBind *o) { - m_contents.append(o); - QObject::connect(o, SIGNAL(valueChanged()), q, SLOT(resetBinds())); - } - void clear() { m_contents.clear(); } - int count() const { return m_contents.count(); } - void removeAt(int pos) { return m_contents.removeAt(pos); } - QmlSqlBind *at(int pos) const { return m_contents.at(pos); } - void insert(int pos, QmlSqlBind *o) { m_contents.insert(pos, o); } - private: - QList m_contents; - QmlSqlQuery *q; - }; - - QmlSqlBindList binds; -}; - -/*! - \qmlclass SqlQuery QmlSqlQuery - \brief The SqlQuery element describes a query into an SQL database. - - The SqlQuery element has three parts. The first is the query itself, - which can either be specified using the query property or by the - default text for the element. The second specifies the connection - to the database. This can either be a bound id from an SqlConnection - or the connections name. If the connection is specified in a QML - SqlConnection it is recommend to bind to the id to help ensure the - database is complete before attempting to attach to it. If no - connectoin is specified the default connection is used. - - It is also possible to bind values into the query using the bindings - property. See SqlBind for more information on how to bind values into - the query. - - If the query is a select statement it can be used as a model for a ListView. - The roles will be the columns of the result set. Use the SQL AS keyword - in the query if you want to override the column names from that of the - table selected. You should also use the AS keyword if there is no - appropriate table column name for the result column. - - \qml - SqlQuery { connection: qmlConnectionId; query: "DELETE FROM mytable" } - SqlQuery { - connection: "connectionName" - query: "SELECT * FROM mytable" - } - SqlQuery { query: "SELECT id AS recordId, (firstName || ' ' || lastName) AS fullName FROM mytable" } - \endqml -*/ - -/* - \class QmlSqlQuery - \brief the QmlSqlQuery class manages a query into an SQL database. -*/ - -/*! - \qmlproperty QString SqlQuery::query - - Defines the query text. -*/ - -/*! - \qmlproperty QVariant SqlQuery::connection - - Defines the connection to an SQL database used by the query. -*/ - -/*! - \qmlproperty QString SqlQuery::lastError - - Defines the last error, if one occurred, when working with the query. -*/ - -/*! - \qmlproperty list SqlQuery::bindings - - The bindings property contains the list of values to bind into the - query. See SqlBind for more information. -*/ - -/*! - Constructs a QmlSqlQuery with the given \a parent. -*/ -QmlSqlQuery::QmlSqlQuery(QObject *parent) -: QListModelInterface(*(new QmlSqlQueryPrivate(this)), parent) -{ -} - -/*! - Destroys the QmlSqlQuery. -*/ -QmlSqlQuery::~QmlSqlQuery() -{ - Q_D(QmlSqlQuery); - if (d->query) - delete d->query; -} - -/*! - Returns the query's bound variables. -*/ -QmlList *QmlSqlQuery::bindings() -{ - Q_D(QmlSqlQuery); - return &d->binds; -} - -/*! - Returns the query's bound variables. -*/ -const QmlList *QmlSqlQuery::bindings() const -{ - Q_D(const QmlSqlQuery); - return &d->binds; -} - -/*! - Returns the query text. - - \sa setQuery() -*/ -QString QmlSqlQuery::query() const -{ - Q_D(const QmlSqlQuery); - return d->queryText; -} - -/*! - Sets the query text to the given \a text. -*/ -void QmlSqlQuery::setQuery(const QString &text) -{ - Q_D(QmlSqlQuery); - if (text != d->queryText) { - d->queryText = text; - - static const QLatin1String select("select"); - d-> isSel = text.trimmed().indexOf(select, 0, Qt::CaseInsensitive) == 0; - - if (d->query) - resetQuery(); - } -} - -/*! - Returns the query's connection specifier. - - \sa setConnection() -*/ -QVariant QmlSqlQuery::connection() const -{ - Q_D(const QmlSqlQuery); - return d->connectionVariant; -} - -/*! - Sets the query's connection specifier. - - \sa connection() -*/ -void QmlSqlQuery::setConnection(const QVariant &connection) -{ - Q_D(QmlSqlQuery); - if (connection != d->connectionVariant) { - d->connectionVariant = connection; - if (d->query) - resetQuery(); - else if (d->count == 0) // data has been requested - d->prepareQuery(); - } -} - -/*! - Returns the set of values for a given set of requested \a roles for the - specified \a row of the query result set. Returns an empty hash if the - query is not a select statement. - - \sa count(), roles(), toString() -*/ -QHash QmlSqlQuery::data(int row, const QList &roles) const -{ - Q_D(const QmlSqlQuery); - if (!d->query) - d->prepareQuery(); - QHash result; - - if (!d->isSel) - return result; - - Q_ASSERT(row >= 0 && row <= d->count); - - if (!d->requireCache) - d->query->seek(row); - else - d->hitCache(row); - - for (int i = 0; i < roles.count(); ++i) { - int column = roles[i]; - if (d->requireCache) - result.insert(column, d->cache[column]->at(row)); - else - result.insert(column, d->query->value(column)); - } - return result; -} - -/*! - Returns the number of rows in the query result set. Returns 0 if - the query is not a select statement. - - \sa data(), roles(), toString() -*/ -int QmlSqlQuery::count() const -{ - Q_D(const QmlSqlQuery); - if (!d->query) - d->prepareQuery(); - return d->count; -} - -/*! - Returns the list of role integer identifiers for the query result set. - Returns and empty list if the query is not a select statement. - - \sa data(), count(), toString() -*/ -QList QmlSqlQuery::roles() const -{ - Q_D(const QmlSqlQuery); - if (!d->query) - d->prepareQuery(); - - if (!d->isSel) - return QList(); - - if (d->roleNames.isEmpty() && !d->requireCache) { - d->query->seek(0); - d->grabRoles(); - } - - return d->roles; -} - -/*! - Returns the corresponding role name for the given \a role identifier. - - \sa data(), roles(), toString() -*/ -QString QmlSqlQuery::toString(int role) const -{ - Q_D(const QmlSqlQuery); - if (!d->query) - d->prepareQuery(); - - if (d->roleNames.isEmpty() && !d->requireCache) { - d->query->seek(0); - d->grabRoles(); - } - - return d->roleNames[role]; -} - -/*! - Returns information about the last error that occurred on the query. -*/ -QString QmlSqlQuery::lastError() const -{ - Q_D(const QmlSqlQuery); - if (d->query) - return d->query->lastError().text(); - return QString(); -} - -/*! - \reimp -*/ -void QmlSqlQuery::componentComplete() -{ - Q_D(QmlSqlQuery); - if (!d->query) - d->prepareQuery(); -} - -/*! - \internal - Rebinds the query, and if needed, emits rows inserted or rows - added so any attached ListView elements will correctly. - - This slot is called automatically when the SqlBind elements in - the bindings property of the query change. -*/ -void QmlSqlQuery::resetBinds() -{ - Q_D(QmlSqlQuery); - if (!d->query) - return; - int oldcount = d->count; - d->clearCache(); - d->roles.clear(); - d->roleNames.clear(); - d->bindQuery(); - if (d->isSel) { - if (!d->query->isActive()) { - if (!d->query->exec()) - qWarning() << "failed to execute query" << d->query->lastQuery() << d->query->boundValues() << d->query->lastError().text(); - } - d->initCache(); // may finish query - emitChanges(oldcount); - } -} - -/*! - Executes the query. For SELECT statements this is normally only required - if the database changes outside of the SQL query element. Statements that - modify the database, such as UPDATE and INSERT, will not be applied until - this function is called. -*/ -void QmlSqlQuery::exec() -{ - Q_D(QmlSqlQuery); - if (!d->query) - d->prepareQuery(); - Q_ASSERT(d->query); - - if (d->isSel) { - int oldcount = d->count; - d->clearCache(); - d->roles.clear(); - d->roleNames.clear(); - if (!d->query->exec()) - qWarning() << "failed to execute query" << d->query->lastQuery() << d->query->boundValues() << d->query->lastError().text(); - d->initCache(); // may finish query - emitChanges(oldcount); - } else { - if (!d->query->exec()) - qWarning() << "failed to execute query" << d->query->lastQuery() << d->query->boundValues() << d->query->lastError().text(); - d->query->finish(); - } -} - -/*! - \internal - - Resets the query and query cache. -*/ -void QmlSqlQuery::resetQuery() -{ - Q_D(QmlSqlQuery); - Q_ASSERT(d->query != 0); - delete d->query; - d->query = 0; - d->clearCache(); - d->roles.clear(); - d->roleNames.clear(); - int oldcount = d->count; - d->prepareQuery(); - emitChanges(oldcount); -} - -/*! - \internal - - emits row number changes based of differences between the given - \a oldcount and the current count of the query result set. -*/ -void QmlSqlQuery::emitChanges(int oldcount) -{ - Q_D(QmlSqlQuery); - if (d->count > oldcount) - emit itemsInserted(oldcount, d->count-oldcount); - else if (d->count < oldcount) - emit itemsRemoved(d->count, oldcount-d->count); - if (d->count > 0 && oldcount > 0) - emit itemsChanged(0, qMin(d->count, oldcount), roles()); -} - -/* - \internal - - Handles delayed caching of the query. -*/ -void QmlSqlQuery::timerEvent(QTimerEvent *event) -{ - Q_D(QmlSqlQuery); - if (event->timerId() == d->cacheTimer) { - killTimer(d->cacheTimer); - d->cacheTimer = -1; - d->enactShift(d->scheduledRow); - d->scheduledRow = -1; - } -} - -/* - Prepares the query. If the query starts with SELECT it is assumed to - be a SELECT statement and the query is also executed. -*/ -void QmlSqlQueryPrivate::prepareQuery() const -{ - QObject *object = qvariant_cast(connectionVariant); - QmlSqlConnection *connection = qobject_cast(object); - QString connectionString = qvariant_cast(connectionVariant); - - Q_ASSERT(query == 0); - QSqlDatabase db = connection ? connection->database() - : QSqlDatabase::database(connectionString.isEmpty() - ? QLatin1String(QSqlDatabase::defaultConnection) - : connectionString, false); - - if (!db.isOpen()) { - count = 0; - return; - } - - query = new QSqlQuery(db); - - requireCache = - query->driver()->hasFeature(QSqlDriver::SimpleLocking) - || !query->driver()->hasFeature(QSqlDriver::QuerySize); - - if (requireCache) - query->setForwardOnly(true); - if (!query->prepare(queryText)) - qWarning() << "failed to prepare query" << query->lastQuery() << query->lastError().text(); - bindQuery(); - if (isSel) { - if (!query->exec()) - qWarning() << "failed to execute query" << query->lastQuery() << query->boundValues() << query->lastError().text(); - initCache(); - } -} - -/* - Binds values into the prepared query using the bindings property of the SqlQuery element. -*/ -void QmlSqlQueryPrivate::bindQuery() const -{ - for (int i = 0; i < binds.count(); ++i) { - QmlSqlBind *bind = binds.at(i); - if (bind->name().isEmpty()) { - query->bindValue(i, bind->value()); - } else { - query->bindValue(bind->name(), bind->value()); - } - } -} - -/* - Clears cached query results -*/ -void QmlSqlQueryPrivate::clearCache() -{ - for (int i = 0; i < cache.size(); ++i) - delete cache[i]; - cache.resize(0); -} - -/* - If caching is required, initializes the cache with - column definitions and initial rows. - - Otherwise caches the count for the query. -*/ -void QmlSqlQueryPrivate::initCache() const -{ - if (requireCache) { - int row = 0; - if (query->next()) { - if (roleNames.isEmpty()) { - grabRoles(); - cache.resize(roleNames.count()); - for (int i = 0; i < cache.size(); ++i) - cache[i] = new Column(cacheSize); - } - Q_ASSERT(cache.size() > 0); - do { - for (int i = 0; i < cache.size(); ++i) - cache[i]->insert(row, query->value(i)); - row++; - } while (!cache[0]->isFull() && query->next()); - while(query->next()) row++; - } - count = row; - query->finish(); - } else { - count = query->size(); - } -} - -/* - Schedules future background cache loading based of - the given row. - - Should only be called if caching is active. -*/ -void QmlSqlQueryPrivate::hitCache(int row) const -{ - Q_Q(const QmlSqlQuery); - - Q_ASSERT(cache.size() > 0 && requireCache); - if (cache[0]->containsIndex(row)) { - int fi = cache[0]->firstIndex(); - int li = cache[0]->lastIndex(); - if (fi > 0 && row < fi + cacheNear) - scheduledRow = qMax(0, row + cacheRetain - cacheSize); - else if (li < count-1 && row > li - cacheNear) - scheduledRow = qMax(0, row - cacheRetain); - - if (scheduledRow != -1 && cacheTimer == -1) - cacheTimer = ((QmlSqlQuery *)q)->startTimer(cacheInterval); - } else { - if (cacheTimer != -1) { - ((QmlSqlQuery *)q)->killTimer(cacheTimer); - cacheTimer = -1; - } - scheduledRow = -1; - qDebug() << "cache miss for row:" << row << "count:" << count; - enactShift(row); - } -} - -/* - Load items from sql centered around row. -*/ -void QmlSqlQueryPrivate::enactShift(int targetRow) const -{ - Q_ASSERT(query && cache.size()); - query->exec(); - int row = targetRow < cache[0]->firstIndex() ? targetRow : qMax(targetRow, cache[0]->lastIndex()+1); - - if (query->seek(row)) { - do { - for (int i = 0; i < cache.size(); ++i) { - cache[i]->insert(row, query->value(i)); - } - row++; - } while(row < targetRow + cacheSize && query->next()); - } -} - -/* - Gets the column names for the roles of the SqlQuery element. - - The query must be active and on a valid row. -*/ -void QmlSqlQueryPrivate::grabRoles() const -{ - Q_ASSERT(query); - Q_ASSERT(query->isValid()); - Q_ASSERT(roleNames.isEmpty()); - Q_ASSERT(roles.isEmpty()); - - QSqlRecord record = query->record(); - for (int i = 0; i < record.count(); ++i) { - roleNames.append(record.fieldName(i)); - roles.append(i); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlsqlquery.h b/src/declarative/extra/qmlsqlquery.h deleted file mode 100644 index 0f27709..0000000 --- a/src/declarative/extra/qmlsqlquery.h +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSQLQUERYMODEL_H -#define QMLSQLQUERYMODEL_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlSqlBindPrivate; -class Q_DECLARATIVE_EXPORT QmlSqlBind : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QVariant value READ value WRITE setValue) - - Q_CLASSINFO("DefaultValue", "value") - -public: - QmlSqlBind(QObject *parent = 0); - ~QmlSqlBind(); - - QString name() const; - QVariant value() const; - - void setName(const QString &name); - void setValue(const QVariant &); - -Q_SIGNALS: - void valueChanged(); - -private: - Q_DISABLE_COPY(QmlSqlBind) - Q_DECLARE_PRIVATE(QmlSqlBind) -}; - -class QSqlQuery; -class QmlSqlQueryPrivate; -class Q_DECLARATIVE_EXPORT QmlSqlQuery : public QListModelInterface, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString query READ query WRITE setQuery) - Q_PROPERTY(QVariant connection READ connection WRITE setConnection) - Q_PROPERTY(QString lastError READ lastError) - - Q_PROPERTY(QmlList *bindings READ bindings) -public: - QmlSqlQuery(QObject *parent = 0); - ~QmlSqlQuery(); - - QString query() const; - void setQuery(const QString &); - - QVariant connection() const; - void setConnection(const QVariant &); - - virtual QHash data(int index, const QList &roles = (QList())) const; - virtual int count() const; - virtual QList roles() const; - virtual QString toString(int role) const; - - QString lastError() const; - - //### missing classBegin - virtual void componentComplete(); - - QmlList *bindings(); - const QmlList *bindings() const; - -public Q_SLOTS: - void exec(); - -protected: - void timerEvent(QTimerEvent *); - -private Q_SLOTS: - void resetBinds(); - void resetQuery(); - -private: - void emitChanges(int oldcount); - - Q_DISABLE_COPY(QmlSqlQuery) - Q_DECLARE_PRIVATE(QmlSqlQuery) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlSqlBind) -QML_DECLARE_TYPE(QmlSqlQuery) - -QT_END_HEADER - -#endif - diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index cbc2f85..6c00beb 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -116,6 +116,8 @@ HEADERS += qml/qmlparser_p.h \ # for qtscript debugger contains(QT_CONFIG, scripttools):QT += scripttools +QT += sql + include(parser/parser.pri) include(rewriter/rewriter.pri) -- cgit v0.12 From c6afc5d26fbf2022435ff55a4bbc99b2d71f1e7c Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 28 Oct 2009 18:36:54 +1000 Subject: Doc --- src/declarative/fx/qfxitem.cpp | 213 +++++++++++++++++++++-------------------- 1 file changed, 107 insertions(+), 106 deletions(-) diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index ed07696..72833e1 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -1285,46 +1285,68 @@ QFxKeysAttached *QFxKeysAttached::qmlAttachedProperties(QObject *obj) */ /*! - \fn void QFxItem::baselineOffsetChanged() - - This signal is emitted when the baseline offset of the item - is changed. + \property QFxItem::baseline + \internal */ /*! - \fn void QFxItem::widthChanged() + \property QFxItem::effect + \internal +*/ - This signal is emitted when the width of the item changes. +/*! + \property QFxItem::focus + \internal */ /*! - \fn void QFxItem::heightChanged() + \property QFxItem::wantsFocus + \internal +*/ - This signal is emitted when the height of the item changes. +/*! + \property QFxItem::transformOrigin + \internal */ /*! - \fn void QFxItem::stateChanged(const QString &state) + \fn void QFxItem::childrenRectChanged() + \internal +*/ - This signal is emitted when the \a state of the item changes. +/*! + \fn void QFxItem::baselineOffsetChanged() + \internal +*/ - \sa {qmlstates}{States} +/*! + \fn void QFxItem::widthChanged() + \internal */ /*! - \fn void QFxItem::parentChanged() + \fn void QFxItem::heightChanged() + \internal +*/ - This signal is emitted when the parent of the item changes. +/*! + \fn void QFxItem::stateChanged(const QString &state) + \internal +*/ - \sa setParentItem() +/*! + \fn void QFxItem::parentChanged() + \internal */ /*! \fn void QFxItem::focusChanged() + \internal +*/ - This signal is emitted when the item's focus state changes. - - \sa QFxItem::setFocus() +/*! + \fn void QFxItem::wantsFocusChanged() + \internal */ static inline void qfxitem_registerAnchorLine() { @@ -1454,15 +1476,12 @@ QFxItem *QFxItem::parentItem() const /*! \property QFxItem::children - - This property contains the list of visual children of this item. + \internal */ /*! \property QFxItem::resources - - This property contains non-visual resources that you want to - reference by name. + \internal */ /*! @@ -1482,8 +1501,10 @@ bool QFxItem::isComponentComplete() const /*! \property QFxItem::anchors - \brief The anchors (alignments) used by the item. + \internal */ + +/*! \internal */ QFxAnchors *QFxItem::anchors() { Q_D(QFxItem); @@ -1676,15 +1697,10 @@ void QFxItemPrivate::transform_clear() /*! \property QFxItem::data + \internal +*/ - The data property is allows you to freely mix the visual children - and the non-visual resources of an item. If you assign a visual - item to the data list it becomes a child and if you assign any - other object type, it is added as a resource. - - data is a behind-the-scenes property: you should never need to - explicitly specify it. - */ +/*! \internal */ QmlList *QFxItem::data() { Q_D(QFxItem); @@ -1852,9 +1868,7 @@ void QFxItem::geometryChanged(const QRectF &newGeometry, } } -/*! - \reimp -*/ +/*! \internal */ void QFxItem::keyPressEvent(QKeyEvent *event) { Q_D(QFxItem); @@ -1864,9 +1878,7 @@ void QFxItem::keyPressEvent(QKeyEvent *event) event->ignore(); } -/*! - \reimp -*/ +/*! \internal */ void QFxItem::keyReleaseEvent(QKeyEvent *event) { Q_D(QFxItem); @@ -1876,6 +1888,7 @@ void QFxItem::keyReleaseEvent(QKeyEvent *event) event->ignore(); } +/*! \internal */ void QFxItem::inputMethodEvent(QInputMethodEvent *event) { Q_D(QFxItem); @@ -1885,6 +1898,7 @@ void QFxItem::inputMethodEvent(QInputMethodEvent *event) event->ignore(); } +/*! \internal */ QVariant QFxItem::inputMethodQuery(Qt::InputMethodQuery query) const { Q_D(const QFxItem); @@ -1968,6 +1982,7 @@ QFxAnchorLine QFxItem::verticalCenter() const return d->anchorLines()->vCenter; } + /*! \internal */ @@ -1979,50 +1994,32 @@ QFxAnchorLine QFxItem::baseline() const /*! \property QFxItem::top - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! \property QFxItem::bottom - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! \property QFxItem::left - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! \property QFxItem::right - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! \property QFxItem::horizontalCenter - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! \property QFxItem::verticalCenter - - One of the anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. + \internal */ /*! @@ -2125,9 +2122,6 @@ qreal QFxItem::baselineOffset() const return d->_baselineOffset; } -/*! - \internal -*/ void QFxItem::setBaselineOffset(qreal offset) { Q_D(QFxItem); @@ -2258,7 +2252,7 @@ void QFxItem::setBaselineOffset(qreal offset) Returns a value indicating whether mouse input should remain with this item exclusively. - \sa setKeepMouseGrab + \sa setKeepMouseGrab() */ bool QFxItem::keepMouseGrab() const { @@ -2291,6 +2285,8 @@ void QFxItem::setKeepMouseGrab(bool keep) } /*! + \internal + This function emits the \e focusChanged signal. Subclasses overriding this function should call up @@ -2302,12 +2298,14 @@ void QFxItem::focusChanged(bool flag) emit focusChanged(); } +/*! \internal */ QmlList *QFxItem::fxChildren() { Q_D(QFxItem); return &(d->children); } +/*! \internal */ QmlList *QFxItem::resources() { Q_D(QFxItem); @@ -2333,10 +2331,9 @@ QmlList *QFxItem::resources() /*! \property QFxItem::states - This property holds a list of states defined by the item. - - \sa {qmlstate}{States} + \internal */ +/*! \internal */ QmlList* QFxItem::states() { Q_D(QFxItem); @@ -2362,10 +2359,10 @@ QmlList* QFxItem::states() /*! \property QFxItem::transitions - This property holds a list of transitions defined by the item. - - \sa {state-transitions}{Transitions} + \internal */ + +/*! \internal */ QmlList* QFxItem::transitions() { Q_D(QFxItem); @@ -2441,29 +2438,10 @@ QmlList* QFxItem::transitions() /*! \property QFxItem::state - - This property holds the name of the current state of the item. - - This property is often used in scripts to change between states. For - example: - - \qml - Script { - function toggle() { - if (button.state == 'On') - button.state = 'Off'; - else - button.state = 'On'; - } - } - \endqml - - If the item is in its base state (i.e. no explicit state has been - set), \c state will be a blank string. Likewise, you can return an - item to its base state by setting its current state to \c ''. - - \sa {qmlstates}{States} + \internal */ + +/*! \internal */ QString QFxItem::state() const { Q_D(const QFxItem); @@ -2473,6 +2451,7 @@ QString QFxItem::state() const return d->_stateGroup->state(); } +/*! \internal */ void QFxItem::setState(const QString &state) { Q_D(QFxItem); @@ -2488,8 +2467,10 @@ void QFxItem::setState(const QString &state) /*! \property QFxItem::transform - This property holds a list of transformations set on the item. + \internal */ + +/*! \internal */ QmlList* QFxItem::transform() { Q_D(QFxItem); @@ -2497,6 +2478,8 @@ QmlList* QFxItem::transform() } /*! + \internal + classBegin() is called when the item is constructed, but its properties have not yet been set. @@ -2513,6 +2496,8 @@ void QFxItem::classBegin() } /*! + \internal + componentComplete() is called when all items in the component have been constructed. It is often desireable to delay some processing until the component is complete an all bindings in the @@ -2597,9 +2582,7 @@ QPointF QFxItemPrivate::computeTransformOrigin() const } } -/*! - \reimp -*/ +/*! \internal */ bool QFxItem::sceneEvent(QEvent *event) { bool rv = QGraphicsItem::sceneEvent(event); @@ -2612,9 +2595,7 @@ bool QFxItem::sceneEvent(QEvent *event) return rv; } -/*! - \reimp -*/ +/*! \internal */ QVariant QFxItem::itemChange(GraphicsItemChange change, const QVariant &value) { @@ -2625,9 +2606,7 @@ QVariant QFxItem::itemChange(GraphicsItemChange change, return QGraphicsItem::itemChange(change, value); } -/*! - \reimp -*/ +/*! \internal */ QRectF QFxItem::boundingRect() const { Q_D(const QFxItem); @@ -2681,18 +2660,33 @@ void QFxItem::setTransformOrigin(TransformOrigin origin) By default smooth transformations are off. */ + +/*! + Returns true if the item should be drawn with antialiasing and + smooth pixmap filtering, false otherwise. + + The default is false. + + \sa setSmoothTransform() +*/ bool QFxItem::smoothTransform() const { Q_D(const QFxItem); return d->smooth; } -void QFxItem::setSmoothTransform(bool s) +/*! + Sets whether the item should be drawn with antialiasing and + smooth pixmap filtering to \a smooth. + + \sa smoothTransform() +*/ +void QFxItem::setSmoothTransform(bool smooth) { Q_D(QFxItem); - if (d->smooth == s) + if (d->smooth == smooth) return; - d->smooth = s; + d->smooth = smooth; update(); } @@ -2819,6 +2813,8 @@ bool QFxItem::heightValid() const This property indicates whether the item has has an active focus request. */ + +/*! \internal */ bool QFxItem::wantsFocus() const { return focusItem() != 0; @@ -2829,11 +2825,14 @@ bool QFxItem::wantsFocus() const This property indicates whether the item has keyboard input focus. Set this property to true to request focus. */ + +/*! \internal */ bool QFxItem::hasFocus() const { return QGraphicsItem::hasFocus(); } +/*! \internal */ void QFxItem::setFocus(bool focus) { if (focus) @@ -2844,6 +2843,7 @@ void QFxItem::setFocus(bool focus) /*! \reimp + \internal */ void QFxItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) { @@ -2851,6 +2851,7 @@ void QFxItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) /*! \reimp + \internal */ bool QFxItem::event(QEvent *ev) { -- cgit v0.12 From 928bb6dfe9b3d5db9c7d669979ae6ccdf661df38 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 28 Oct 2009 08:41:31 +0100 Subject: Fix namespace build. At least Qt fails building with a namespace on Mac without this change. What happends is that inserting a namespace before the includes, will add the namespace twize if the included files also inserts the namespace. Rev-By: Alexis --- src/gui/kernel/qdesktopwidget.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qdesktopwidget.cpp b/src/gui/kernel/qdesktopwidget.cpp index b1e1008..c6d5000 100644 --- a/src/gui/kernel/qdesktopwidget.cpp +++ b/src/gui/kernel/qdesktopwidget.cpp @@ -40,12 +40,11 @@ ****************************************************************************/ #include "qglobal.h" - -QT_BEGIN_NAMESPACE - #include "qdesktopwidget.h" #include "qwidget_p.h" +QT_BEGIN_NAMESPACE + const QRect QDesktopWidget::screenGeometry(const QWidget *widget) const { QRect rect = QWidgetPrivate::screenGeometry(widget); -- cgit v0.12 From 8cda1c6fef8bd9c4635743fae05158306c2ab09f Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 28 Oct 2009 09:38:21 +0100 Subject: Fix namespace build Looks like a couple of files missed the namespace macro... Rev-By: gunnar --- src/opengl/gl2paintengineex/qtriangulatingstroker.cpp | 4 ++++ src/opengl/gl2paintengineex/qtriangulatingstroker_p.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp b/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp index a3c8266..ec05020 100644 --- a/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp +++ b/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp @@ -42,6 +42,7 @@ #include "qtriangulatingstroker_p.h" #include +QT_BEGIN_NAMESPACE #define CURVE_FLATNESS Q_PI / 8 @@ -338,3 +339,6 @@ void QDashedStrokeProcessor::process(const QVectorPath &path, const QPen &pen) m_dash_stroker.end(); } + +QT_END_NAMESPACE + diff --git a/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h b/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h index b7354db..483cea9 100644 --- a/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h +++ b/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h @@ -48,6 +48,7 @@ #include #include +QT_BEGIN_NAMESPACE class QTriangulatingStroker { @@ -295,5 +296,6 @@ void QTriangulatingStroker::join(const qreal *pts) emitLineSegment(m_cx, m_cy, m_nvx, m_nvy); } +QT_END_NAMESPACE #endif -- cgit v0.12 From 08e5bae295204ac0cadc1dda6c7a01599f66a2bb Mon Sep 17 00:00:00 2001 From: Andreas Aardal Hanssen Date: Wed, 28 Oct 2009 09:42:14 +0100 Subject: Let QGraphicsItem set QObjectPrivate::wasDeleted when appropriate. This change allows children of QGraphicsObject-derived classes to check if the parent is being deleted by checking the private flag wasDeleted. Reverts 37b16d5cbb4e7bc534f690ebf50434d228b5ecfc, p4 change 9681, to allow QGraphicsItem to set QObjectPrivate's wasDeleted member before entering QObjectPrivate's destructor. The original code was in there to let the user know, via the console output, that QObject was double-deleted (e.g., when placing QObject on the stack, and also giving it a parent, so that if the parent is deleted first, bang). Reviewed-by: Aaron Kennedy Reviewed-by: Bradley T. Hughes --- src/corelib/kernel/qobject.cpp | 7 ---- src/gui/graphicsview/qgraphicsitem.cpp | 2 ++ tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp | 42 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 7be19b3..5303975 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -835,14 +835,7 @@ QObject::QObject(QObjectPrivate &dd, QObject *parent) QObject::~QObject() { Q_D(QObject); - if (d->wasDeleted) { -#if defined(QT_DEBUG) - qWarning("QObject: Double deletion detected"); -#endif - return; - } d->wasDeleted = true; - d->blockSig = 0; // unblock signals so we always emit destroyed() if (!d->isWidget) { diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index ad672a3..2e68d3e 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1286,6 +1286,8 @@ QGraphicsItem::QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent, */ QGraphicsItem::~QGraphicsItem() { + if (d_ptr->isObject) + QObjectPrivate::get(static_cast(this))->wasDeleted = true; d_ptr->inDestructor = 1; d_ptr->removeExtraItemCache(); diff --git a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp index a9fd55a..194665d 100644 --- a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp +++ b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include "../../shared/util.h" class tst_QGraphicsObject : public QObject { @@ -65,6 +66,7 @@ private slots: void opacity(); void enabled(); void visible(); + void deleted(); }; @@ -249,6 +251,46 @@ void tst_QGraphicsObject::visible() QVERIFY(object.property("visible") == true); } +class DeleteTester : public QGraphicsObject +{ +public: + DeleteTester(bool *w, bool *pw, QGraphicsItem *parent = 0) + : QGraphicsObject(parent), wasDeleted(w), parentWasDeleted(pw) + { } + + ~DeleteTester() + { + *wasDeleted = QObjectPrivate::get(this)->wasDeleted; + if (QGraphicsItem *p = parentItem()) { + if (QGraphicsObject *o = p->toGraphicsObject()) + *parentWasDeleted = QObjectPrivate::get(o)->wasDeleted; + } + } + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0) + { } + QRectF boundingRect() const + { return QRectF(); } + + bool *wasDeleted; + bool *parentWasDeleted; +}; + +void tst_QGraphicsObject::deleted() +{ + bool item1_parentWasDeleted = false; + bool item1_wasDeleted = false; + bool item2_parentWasDeleted = false; + bool item2_wasDeleted = false; + DeleteTester *item1 = new DeleteTester(&item1_wasDeleted, &item1_parentWasDeleted); + DeleteTester *item2 = new DeleteTester(&item2_wasDeleted, &item2_parentWasDeleted, item1); + delete item1; + + QVERIFY(!item1_wasDeleted); // destructor not called yet + QVERIFY(!item1_parentWasDeleted); // no parent + QVERIFY(!item2_wasDeleted); // destructor not called yet + QVERIFY(item2_parentWasDeleted); +} QTEST_MAIN(tst_QGraphicsObject) #include "tst_qgraphicsobject.moc" -- cgit v0.12 From 0533c709188d07be0c165838b503124cb6b271e1 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Mon, 26 Oct 2009 13:21:27 +0100 Subject: Say hello to QScriptProgram :-) QScriptProgram encapsulates a Qt Script program (AKA a script). It retains the compiled representation of the script, so that repeated evaluation of the same script becomes faster. An overload of QScriptEngine::evaluate() that takes a QScriptProgram has been added. Reviewed-by: Olivier Goffart --- src/script/api/api.pri | 3 + src/script/api/qscriptengine.cpp | 151 ++++++++------ src/script/api/qscriptengine.h | 3 + src/script/api/qscriptengine_p.h | 5 + src/script/api/qscriptprogram.cpp | 225 +++++++++++++++++++++ src/script/api/qscriptprogram.h | 86 ++++++++ src/script/api/qscriptprogram_p.h | 95 +++++++++ tests/auto/qscriptengine/tst_qscriptengine.cpp | 149 ++++++++++++++ .../qscriptengineagent/tst_qscriptengineagent.cpp | 86 ++++++++ .../benchmarks/qscriptengine/tst_qscriptengine.cpp | 19 +- 10 files changed, 763 insertions(+), 59 deletions(-) create mode 100644 src/script/api/qscriptprogram.cpp create mode 100644 src/script/api/qscriptprogram.h create mode 100644 src/script/api/qscriptprogram_p.h diff --git a/src/script/api/api.pri b/src/script/api/api.pri index 17ec9b6..aebadd5 100644 --- a/src/script/api/api.pri +++ b/src/script/api/api.pri @@ -6,6 +6,7 @@ SOURCES += \ $$PWD/qscriptengine.cpp \ $$PWD/qscriptengineagent.cpp \ $$PWD/qscriptextensionplugin.cpp \ + $$PWD/qscriptprogram.cpp \ $$PWD/qscriptstring.cpp \ $$PWD/qscriptvalue.cpp \ $$PWD/qscriptvalueiterator.cpp \ @@ -23,6 +24,8 @@ HEADERS += \ $$PWD/qscriptengineagent_p.h \ $$PWD/qscriptextensioninterface.h \ $$PWD/qscriptextensionplugin.h \ + $$PWD/qscriptprogram.h \ + $$PWD/qscriptprogram_p.h \ $$PWD/qscriptstring.h \ $$PWD/qscriptstring_p.h \ $$PWD/qscriptvalue.h \ diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp index 9288723..2b60a46 100644 --- a/src/script/api/qscriptengine.cpp +++ b/src/script/api/qscriptengine.cpp @@ -51,6 +51,8 @@ #include "qscriptvalue_p.h" #include "qscriptvalueiterator.h" #include "qscriptclass.h" +#include "qscriptprogram.h" +#include "qscriptprogram_p.h" #include "qdebug.h" #include @@ -1155,6 +1157,73 @@ void QScriptEnginePrivate::agentDeleted(QScriptEngineAgent *agent) } } +JSC::JSValue QScriptEnginePrivate::evaluateHelper(JSC::ExecState *exec, intptr_t sourceId, + JSC::EvalExecutable *executable, + bool &compile) +{ + Q_Q(QScriptEngine); + JSC::JSLock lock(false); // ### hmmm + QBoolBlocker inEvalBlocker(inEval, true); + q->currentContext()->activationObject(); //force the creation of a context for native function; + + JSC::Debugger* debugger = originalGlobalObject()->debugger(); + if (debugger) + debugger->evaluateStart(sourceId); + + q->clearExceptions(); + JSC::DynamicGlobalObjectScope dynamicGlobalObjectScope(exec, exec->scopeChain()->globalObject()); + + if (compile) { + JSC::JSObject* error = executable->compile(exec, exec->scopeChain()); + if (error) { + compile = false; + exec->setException(error); + + if (debugger) { + debugger->exceptionThrow(JSC::DebuggerCallFrame(exec, error), sourceId, false); + debugger->evaluateStop(error, sourceId); + } + + return error; + } + } + + JSC::JSValue thisValue = thisForContext(exec); + JSC::JSObject* thisObject = (!thisValue || thisValue.isUndefinedOrNull()) + ? exec->dynamicGlobalObject() : thisValue.toObject(exec); + JSC::JSValue exceptionValue; + timeoutChecker()->setShouldAbort(false); + if (processEventsInterval > 0) + timeoutChecker()->reset(); + + JSC::JSValue result = exec->interpreter()->execute(executable, exec, thisObject, exec->scopeChain(), &exceptionValue); + + if (timeoutChecker()->shouldAbort()) { + if (abortResult.isError()) + exec->setException(scriptValueToJSCValue(abortResult)); + + if (debugger) + debugger->evaluateStop(scriptValueToJSCValue(abortResult), sourceId); + + return scriptValueToJSCValue(abortResult); + } + + if (exceptionValue) { + exec->setException(exceptionValue); + + if (debugger) + debugger->evaluateStop(exceptionValue, sourceId); + + return exceptionValue; + } + + if (debugger) + debugger->evaluateStop(result, sourceId); + + Q_ASSERT(!exec->hadException()); + return result; +} + #ifndef QT_NO_QOBJECT JSC::JSValue QScriptEnginePrivate::newQObject( @@ -2115,75 +2184,41 @@ QScriptSyntaxCheckResult QScriptEnginePrivate::checkSyntax(const QString &progra QScriptValue QScriptEngine::evaluate(const QString &program, const QString &fileName, int lineNumber) { Q_D(QScriptEngine); - - JSC::JSLock lock(false); // ### hmmm - QBoolBlocker inEval(d->inEval, true); - currentContext()->activationObject(); //force the creation of a context for native function; - - JSC::Debugger* debugger = d->originalGlobalObject()->debugger(); - - JSC::UString jscProgram = program; - JSC::UString jscFileName = fileName; - JSC::ExecState* exec = d->currentFrame; WTF::PassRefPtr provider - = QScript::UStringSourceProviderWithFeedback::create(jscProgram, jscFileName, lineNumber, d); + = QScript::UStringSourceProviderWithFeedback::create(program, fileName, lineNumber, d); intptr_t sourceId = provider->asID(); JSC::SourceCode source(provider, lineNumber); //after construction of SourceCode provider variable will be null. - if (debugger) - debugger->evaluateStart(sourceId); - - clearExceptions(); - JSC::DynamicGlobalObjectScope dynamicGlobalObjectScope(exec, exec->scopeChain()->globalObject()); - + JSC::ExecState* exec = d->currentFrame; JSC::EvalExecutable executable(exec, source); - JSC::JSObject* error = executable.compile(exec, exec->scopeChain()); - if (error) { - exec->setException(error); - - if (debugger) { - debugger->exceptionThrow(JSC::DebuggerCallFrame(exec, error), sourceId, false); - debugger->evaluateStop(error, sourceId); - } - - return d->scriptValueFromJSCValue(error); - } - - JSC::JSValue thisValue = d->thisForContext(exec); - JSC::JSObject* thisObject = (!thisValue || thisValue.isUndefinedOrNull()) ? exec->dynamicGlobalObject() : thisValue.toObject(exec); - JSC::JSValue exceptionValue; - d->timeoutChecker()->setShouldAbort(false); - if (d->processEventsInterval > 0) - d->timeoutChecker()->reset(); - JSC::JSValue result = exec->interpreter()->execute(&executable, exec, thisObject, exec->scopeChain(), &exceptionValue); - - if (d->timeoutChecker()->shouldAbort()) { - if (d->abortResult.isError()) - exec->setException(d->scriptValueToJSCValue(d->abortResult)); - - if (debugger) - debugger->evaluateStop(d->scriptValueToJSCValue(d->abortResult), sourceId); - - return d->abortResult; - } - - if (exceptionValue) { - exec->setException(exceptionValue); - - if (debugger) - debugger->evaluateStop(exceptionValue, sourceId); + bool compile = true; + return d->scriptValueFromJSCValue(d->evaluateHelper(exec, sourceId, &executable, compile)); +} - return d->scriptValueFromJSCValue(exceptionValue); - } +/*! + \internal + \since 4.6 - if (debugger) - debugger->evaluateStop(result, sourceId); + Evaluates the given \a program and returns the result of the + evaluation. +*/ +QScriptValue QScriptEngine::evaluate(const QScriptProgram &program) +{ + Q_D(QScriptEngine); + QScriptProgramPrivate *program_d = QScriptProgramPrivate::get(program); + if (!program_d) + return QScriptValue(); - Q_ASSERT(!exec->hadException()); + JSC::ExecState* exec = d->currentFrame; + JSC::EvalExecutable *executable = program_d->executable(exec, d); + bool compile = !program_d->isCompiled; + JSC::JSValue result = d->evaluateHelper(exec, program_d->sourceId, + executable, compile); + if (compile) + program_d->isCompiled = true; return d->scriptValueFromJSCValue(result); } - /*! Returns the current context. diff --git a/src/script/api/qscriptengine.h b/src/script/api/qscriptengine.h index 701f9c6..3f438da 100644 --- a/src/script/api/qscriptengine.h +++ b/src/script/api/qscriptengine.h @@ -67,6 +67,7 @@ class QDateTime; class QScriptClass; class QScriptEngineAgent; class QScriptEnginePrivate; +class QScriptProgram; #ifndef QT_NO_QOBJECT @@ -166,6 +167,8 @@ public: QScriptValue evaluate(const QString &program, const QString &fileName = QString(), int lineNumber = 1); + QScriptValue evaluate(const QScriptProgram &program); + bool isEvaluating() const; void abortEvaluation(const QScriptValue &result = QScriptValue()); diff --git a/src/script/api/qscriptengine_p.h b/src/script/api/qscriptengine_p.h index ec7c144..d12b0f4 100644 --- a/src/script/api/qscriptengine_p.h +++ b/src/script/api/qscriptengine_p.h @@ -70,6 +70,7 @@ namespace JSC { + class EvalExecutable; class ExecState; typedef ExecState CallFrame; class JSCell; @@ -211,6 +212,10 @@ public: const QByteArray &targetType, void **result); + JSC::JSValue evaluateHelper(JSC::ExecState *exec, intptr_t sourceId, + JSC::EvalExecutable *executable, + bool &compile); + QScript::QObjectData *qobjectData(QObject *object); void disposeQObject(QObject *object); void emitSignalHandlerException(); diff --git a/src/script/api/qscriptprogram.cpp b/src/script/api/qscriptprogram.cpp new file mode 100644 index 0000000..c30f381 --- /dev/null +++ b/src/script/api/qscriptprogram.cpp @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** 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 QtScript 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$ +** +****************************************************************************/ + +#include "config.h" +#include "qscriptprogram.h" +#include "qscriptprogram_p.h" +#include "qscriptengine.h" +#include "qscriptengine_p.h" + +#include "Executable.h" + +QT_BEGIN_NAMESPACE + +/*! + \internal + + \since 4.6 + \class QScriptProgram + + \brief The QScriptProgram class encapsulates a Qt Script program. + + \ingroup script + + QScriptProgram retains the compiled representation of the script if + possible. Thus, QScriptProgram can be used to evaluate the same + script multiple times more efficiently. + + \code + QScriptEngine engine; + QScriptProgram program("1 + 2"); + QScriptValue result = engine.evaluate(program); + \endcode +*/ + +QScriptProgramPrivate::QScriptProgramPrivate(const QString &src, + const QString &fn, + int ln) + : sourceCode(src), fileName(fn), firstLineNumber(ln), + engine(0), _executable(0), sourceId(-1), isCompiled(false) +{ + ref = 0; +} + +QScriptProgramPrivate::~QScriptProgramPrivate() +{ + delete _executable; +} + +QScriptProgramPrivate *QScriptProgramPrivate::get(const QScriptProgram &q) +{ + return const_cast(q.d_func()); +} + +JSC::EvalExecutable *QScriptProgramPrivate::executable(JSC::ExecState *exec, + QScriptEnginePrivate *eng) +{ + if (_executable) { + if (eng == engine) + return _executable; + delete _executable; + } + WTF::PassRefPtr provider + = QScript::UStringSourceProviderWithFeedback::create(sourceCode, fileName, firstLineNumber, eng); + sourceId = provider->asID(); + JSC::SourceCode source(provider, firstLineNumber); //after construction of SourceCode provider variable will be null. + _executable = new JSC::EvalExecutable(exec, source); + engine = eng; + isCompiled = false; + return _executable; +} + +/*! + Constructs a null QScriptProgram. +*/ +QScriptProgram::QScriptProgram() + : d_ptr(0) +{ +} + +/*! + Constructs a new QScriptProgram with the given \a sourceCode, \a + fileName and \a firstLineNumber. +*/ +QScriptProgram::QScriptProgram(const QString &sourceCode, + const QString fileName, + int firstLineNumber) + : d_ptr(new QScriptProgramPrivate(sourceCode, fileName, firstLineNumber)) +{ +} + +/*! + Constructs a new QScriptProgram that is a copy of \a other. +*/ +QScriptProgram::QScriptProgram(const QScriptProgram &other) + : d_ptr(other.d_ptr) +{ +} + +/*! + Destroys this QScriptProgram. +*/ +QScriptProgram::~QScriptProgram() +{ + Q_D(QScriptProgram); + // if (d->engine && (d->ref == 1)) + // d->engine->unregisterScriptProgram(d); +} + +/*! + Assigns the \a other value to this QScriptProgram. +*/ +QScriptProgram &QScriptProgram::operator=(const QScriptProgram &other) +{ + // if (d_func() && d_func()->engine && (d_func()->ref == 1)) + // d_func()->engine->unregisterScriptProgram(d_func()); + // } + d_ptr = other.d_ptr; + return *this; +} + +/*! + Returns true if this QScriptProgram is null; otherwise + returns false. +*/ +bool QScriptProgram::isNull() const +{ + Q_D(const QScriptProgram); + return (d == 0); +} + +/*! + Returns the source code of this program. +*/ +QString QScriptProgram::sourceCode() const +{ + Q_D(const QScriptProgram); + if (!d) + return QString(); + return d->sourceCode; +} + +/*! + Returns the filename associated with this program. +*/ +QString QScriptProgram::fileName() const +{ + Q_D(const QScriptProgram); + if (!d) + return QString(); + return d->fileName; +} + +/*! + Returns the line number associated with this program. +*/ +int QScriptProgram::firstLineNumber() const +{ + Q_D(const QScriptProgram); + if (!d) + return -1; + return d->firstLineNumber; +} + +/*! + Returns true if this QScriptProgram is equal to \a other; + otherwise returns false. +*/ +bool QScriptProgram::operator==(const QScriptProgram &other) const +{ + Q_D(const QScriptProgram); + if (d == other.d_func()) + return true; + return (sourceCode() == other.sourceCode()) + && (fileName() == other.fileName()) + && (firstLineNumber() == other.firstLineNumber()); +} + +/*! + Returns true if this QScriptProgram is not equal to \a other; + otherwise returns false. +*/ +bool QScriptProgram::operator!=(const QScriptProgram &other) const +{ + return !operator==(other); +} + +QT_END_NAMESPACE diff --git a/src/script/api/qscriptprogram.h b/src/script/api/qscriptprogram.h new file mode 100644 index 0000000..de891cd --- /dev/null +++ b/src/script/api/qscriptprogram.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** 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 QtScript 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 QSCRIPTPROGRAM_H +#define QSCRIPTPROGRAM_H + +#include + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Script) + +class QScriptProgramPrivate; +class Q_SCRIPT_EXPORT QScriptProgram +{ +public: + QScriptProgram(); + QScriptProgram(const QString &sourceCode, + const QString fileName = QString(), + int firstLineNumber = 1); + QScriptProgram(const QScriptProgram &other); + ~QScriptProgram(); + + QScriptProgram &operator=(const QScriptProgram &other); + + bool isNull() const; + + QString sourceCode() const; + QString fileName() const; + int firstLineNumber() const; + + bool operator==(const QScriptProgram &other) const; + bool operator!=(const QScriptProgram &other) const; + +private: + QExplicitlySharedDataPointer d_ptr; + Q_DECLARE_PRIVATE(QScriptProgram) +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QSCRIPTPROGRAM_H diff --git a/src/script/api/qscriptprogram_p.h b/src/script/api/qscriptprogram_p.h new file mode 100644 index 0000000..5175079 --- /dev/null +++ b/src/script/api/qscriptprogram_p.h @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** 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 QtScript 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 QSCRIPTPROGRAM_P_H +#define QSCRIPTPROGRAM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +namespace JSC +{ + class EvalExecutable; + class ExecState; +} + +QT_BEGIN_NAMESPACE + +class QScriptEnginePrivate; + +class QScriptProgramPrivate +{ +public: + QScriptProgramPrivate(const QString &sourceCode, + const QString &fileName, + int firstLineNumber); + ~QScriptProgramPrivate(); + + static QScriptProgramPrivate *get(const QScriptProgram &q); + + JSC::EvalExecutable *executable(JSC::ExecState *exec, + QScriptEnginePrivate *engine); + + QBasicAtomicInt ref; + + QString sourceCode; + QString fileName; + int firstLineNumber; + + QScriptEnginePrivate *engine; + JSC::EvalExecutable *_executable; + intptr_t sourceId; + bool isCompiled; +}; + +QT_END_NAMESPACE + +#endif diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index 25ee00f..804534f 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -52,6 +53,7 @@ Q_DECLARE_METATYPE(QList) Q_DECLARE_METATYPE(QObjectList) +Q_DECLARE_METATYPE(QScriptProgram) //TESTED_CLASS= //TESTED_FILES= @@ -151,6 +153,7 @@ private slots: void installTranslatorFunctions(); void functionScopes(); void nativeFunctionScopes(); + void evaluateProgram(); void qRegExpInport_data(); void qRegExpInport(); @@ -4289,6 +4292,152 @@ void tst_QScriptEngine::nativeFunctionScopes() } } +static QScriptValue createProgram(QScriptContext *ctx, QScriptEngine *eng) +{ + QString code = ctx->argument(0).toString(); + QScriptProgram result(code); + return qScriptValueFromValue(eng, result); +} + +void tst_QScriptEngine::evaluateProgram() +{ + QScriptEngine eng; + + { + QString code("1 + 2"); + QString fileName("hello.js"); + int lineNumber(123); + QScriptProgram program(code, fileName, lineNumber); + QVERIFY(!program.isNull()); + QCOMPARE(program.sourceCode(), code); + QCOMPARE(program.fileName(), fileName); + QCOMPARE(program.firstLineNumber(), lineNumber); + + QScriptValue expected = eng.evaluate(code); + for (int x = 0; x < 10; ++x) { + QScriptValue ret = eng.evaluate(program); + QVERIFY(ret.equals(expected)); + } + + // operator= + QScriptProgram sameProgram = program; + QVERIFY(sameProgram == program); + QVERIFY(eng.evaluate(sameProgram).equals(expected)); + + // copy constructor + QScriptProgram sameProgram2(program); + QVERIFY(sameProgram2 == program); + QVERIFY(eng.evaluate(sameProgram2).equals(expected)); + + QScriptProgram differentProgram("2 + 3"); + QVERIFY(differentProgram != program); + QVERIFY(!eng.evaluate(differentProgram).equals(expected)); + } + + // Program that accesses variable in the scope + { + QScriptProgram program("a"); + QVERIFY(!program.isNull()); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(ret.isError()); + QCOMPARE(ret.toString(), QString::fromLatin1("ReferenceError: Can't find variable: a")); + } + + QScriptValue obj = eng.newObject(); + obj.setProperty("a", 123); + QScriptContext *ctx = eng.currentContext(); + ctx->pushScope(obj); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(!ret.isError()); + QVERIFY(ret.equals(obj.property("a"))); + } + + obj.setProperty("a", QScriptValue()); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(ret.isError()); + } + + QScriptValue obj2 = eng.newObject(); + obj2.setProperty("a", 456); + ctx->pushScope(obj2); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(!ret.isError()); + QVERIFY(ret.equals(obj2.property("a"))); + } + + ctx->popScope(); + } + + // Program that creates closure + { + QScriptProgram program("(function() { var count = 0; return function() { return count++; }; })"); + QVERIFY(!program.isNull()); + QScriptValue createCounter = eng.evaluate(program); + QVERIFY(createCounter.isFunction()); + QScriptValue counter = createCounter.call(); + QVERIFY(counter.isFunction()); + { + QScriptValue ret = counter.call(); + QVERIFY(ret.isNumber()); + } + QScriptValue counter2 = createCounter.call(); + QVERIFY(counter2.isFunction()); + QVERIFY(!counter2.equals(counter)); + { + QScriptValue ret = counter2.call(); + QVERIFY(ret.isNumber()); + } + } + + // Program created in a function call, then executed later + { + QScriptValue fun = eng.newFunction(createProgram); + QScriptProgram program = qscriptvalue_cast( + fun.call(QScriptValue(), QScriptValueList() << "a + 1")); + QVERIFY(!program.isNull()); + eng.globalObject().setProperty("a", QScriptValue()); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(ret.isError()); + QCOMPARE(ret.toString(), QString::fromLatin1("ReferenceError: Can't find variable: a")); + } + eng.globalObject().setProperty("a", 122); + { + QScriptValue ret = eng.evaluate(program); + QVERIFY(!ret.isError()); + QVERIFY(ret.isNumber()); + QCOMPARE(ret.toInt32(), 123); + } + } + + // Same program run in different engines + { + QString code("1 + 2"); + QScriptProgram program(code); + QVERIFY(!program.isNull()); + double expected = eng.evaluate(program).toNumber(); + for (int x = 0; x < 2; ++x) { + QScriptEngine eng2; + for (int y = 0; y < 2; ++y) { + double ret = eng2.evaluate(program).toNumber(); + QCOMPARE(ret, expected); + } + } + } + + // No program + { + QScriptProgram program; + QVERIFY(program.isNull()); + QScriptValue ret = eng.evaluate(program); + QVERIFY(!ret.isValid()); + } +} + static QRegExp minimal(QRegExp r) { r.setMinimal(true); return r; } void tst_QScriptEngine::qRegExpInport_data() diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp index 82c8ccd..032c34b 100644 --- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp +++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp @@ -44,6 +44,7 @@ #include #include +#include #include //TESTED_CLASS= @@ -110,6 +111,9 @@ private slots: void extension(); void isEvaluatingInExtension(); void hasUncaughtException(); + void evaluateProgram(); + void evaluateProgram_SyntaxError(); + void evaluateNullProgram(); private: double m_testProperty; @@ -2219,6 +2223,88 @@ void tst_QScriptEngineAgent::hasUncaughtException() QVERIFY2(spy->isPass(), "At least one of a functionExit event should set hasUncaughtException flag."); } +void tst_QScriptEngineAgent::evaluateProgram() +{ + QScriptEngine eng; + QScriptProgram program("1 + 2", "foo.js", 123); + ScriptEngineSpy *spy = new ScriptEngineSpy(&eng); + qint64 scriptId = -1; + for (int x = 0; x < 10; ++x) { + spy->clear(); + (void)eng.evaluate(program); + QCOMPARE(spy->count(), (x == 0) ? 4 : 3); + + if (x == 0) { + // script is only loaded on first execution + QCOMPARE(spy->at(0).type, ScriptEngineEvent::ScriptLoad); + scriptId = spy->at(0).scriptId; + QVERIFY(scriptId != -1); + QCOMPARE(spy->at(0).script, program.sourceCode()); + QCOMPARE(spy->at(0).fileName, program.fileName()); + QCOMPARE(spy->at(0).lineNumber, program.firstLineNumber()); + spy->removeFirst(); + } + + QCOMPARE(spy->at(0).type, ScriptEngineEvent::FunctionEntry); // evaluate() + QCOMPARE(spy->at(0).scriptId, scriptId); + + QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange); + QCOMPARE(spy->at(1).scriptId, scriptId); + QCOMPARE(spy->at(1).lineNumber, program.firstLineNumber()); + + QCOMPARE(spy->at(2).type, ScriptEngineEvent::FunctionExit); // evaluate() + QCOMPARE(spy->at(2).scriptId, scriptId); + QVERIFY(spy->at(2).value.isNumber()); + QCOMPARE(spy->at(2).value.toNumber(), qsreal(3)); + } +} + +void tst_QScriptEngineAgent::evaluateProgram_SyntaxError() +{ + QScriptEngine eng; + QScriptProgram program("this is not valid syntax", "foo.js", 123); + ScriptEngineSpy *spy = new ScriptEngineSpy(&eng); + qint64 scriptId = -1; + for (int x = 0; x < 10; ++x) { + spy->clear(); + (void)eng.evaluate(program); + QCOMPARE(spy->count(), (x == 0) ? 8 : 7); + + if (x == 0) { + // script is only loaded on first execution + QCOMPARE(spy->at(0).type, ScriptEngineEvent::ScriptLoad); + scriptId = spy->at(0).scriptId; + QVERIFY(scriptId != -1); + QCOMPARE(spy->at(0).script, program.sourceCode()); + QCOMPARE(spy->at(0).fileName, program.fileName()); + QCOMPARE(spy->at(0).lineNumber, program.firstLineNumber()); + spy->removeFirst(); + } + + QCOMPARE(spy->at(0).type, ScriptEngineEvent::FunctionEntry); // evaluate() + QCOMPARE(spy->at(0).scriptId, scriptId); + + QCOMPARE(spy->at(1).type, ScriptEngineEvent::ContextPush); // SyntaxError constructor + QCOMPARE(spy->at(2).type, ScriptEngineEvent::FunctionEntry); // SyntaxError constructor + QCOMPARE(spy->at(3).type, ScriptEngineEvent::FunctionExit); // SyntaxError constructor + QCOMPARE(spy->at(4).type, ScriptEngineEvent::ContextPop); // SyntaxError constructor + + QCOMPARE(spy->at(5).type, ScriptEngineEvent::ExceptionThrow); + QVERIFY(spy->at(5).value.isError()); + QCOMPARE(spy->at(5).value.toString(), QString::fromLatin1("SyntaxError: Parse error")); + + QCOMPARE(spy->at(6).type, ScriptEngineEvent::FunctionExit); // evaluate() + QCOMPARE(spy->at(6).scriptId, scriptId); + } +} + +void tst_QScriptEngineAgent::evaluateNullProgram() +{ + QScriptEngine eng; + ScriptEngineSpy *spy = new ScriptEngineSpy(&eng); + (void)eng.evaluate(QScriptProgram()); + QCOMPARE(spy->count(), 0); +} QTEST_MAIN(tst_QScriptEngineAgent) #include "tst_qscriptengineagent.moc" diff --git a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp b/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp index 4f011c4..8d5f6e6 100644 --- a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp +++ b/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp @@ -60,6 +60,8 @@ private slots: void constructor(); void evaluate_data(); void evaluate(); + void evaluateProgram_data(); + void evaluateProgram(); void connectAndDisconnect(); void newObject(); void newQObject(); @@ -153,6 +155,22 @@ void tst_QScriptEngine::connectAndDisconnect() } } +void tst_QScriptEngine::evaluateProgram_data() +{ + evaluate_data(); +} + +void tst_QScriptEngine::evaluateProgram() +{ + QFETCH(QString, code); + QScriptEngine engine; + QScriptProgram program(code); + + QBENCHMARK { + (void)engine.evaluate(program); + } +} + void tst_QScriptEngine::newObject() { QScriptEngine engine; @@ -241,6 +259,5 @@ void tst_QScriptEngine::nativeCall() } } - QTEST_MAIN(tst_QScriptEngine) #include "tst_qscriptengine.moc" -- cgit v0.12 From de7de35082ec21d506a90e68cb30888540ec64cc Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Tue, 20 Oct 2009 13:31:02 +0200 Subject: Fix XML entities in QTextDocument::toHtml() If a QTextDocument contains an anchor with a & in it, this & is not escaped in the toHtml() function, meaning the resulting document can't be parsed as XML as it will contain invalid entities. Reviewed-by: Olivier Goffart Merge-request: 1753 --- src/gui/text/qtextdocument.cpp | 33 ++++++++++++++++++++------ tests/auto/qtextdocument/qtextdocument.pro | 1 + tests/auto/qtextdocument/tst_qtextdocument.cpp | 32 +++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 9 deletions(-) diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index a8956b8..17981e3 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -168,6 +168,25 @@ QString Qt::escape(const QString& plain) return rich; } +static QString escapeXml(const QString &plain) +{ + QString rich; + rich.reserve(int(plain.length() * 1.1)); + for (int i = 0; i < plain.length(); ++i) { + if (plain.at(i) == QLatin1Char('<')) + rich += QLatin1String("<"); + else if (plain.at(i) == QLatin1Char('>')) + rich += QLatin1String(">"); + else if (plain.at(i) == QLatin1Char('&')) + rich += QLatin1String("&"); + else if (plain.at(i) == QLatin1Char('"')) + rich += QLatin1String("""); + else + rich += plain.at(i); + } + return rich; +} + /*! \fn QString Qt::convertFromPlainText(const QString &plain, WhiteSpaceMode mode) @@ -2038,7 +2057,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu html += QLatin1Char(' '); html += QLatin1String(attribute); html += QLatin1String("=\""); - html += value; + html += escapeXml(value); html += QLatin1Char('"'); } @@ -2302,12 +2321,12 @@ void QTextHtmlExporter::emitFontFamily(const QString &family) { html += QLatin1String(" font-family:"); - QLatin1Char quote('\''); - if (family.contains(quote)) - quote = QLatin1Char('\"'); + QLatin1String quote("\'"); + if (family.contains(QLatin1Char('\''))) + quote = QLatin1String("""); html += quote; - html += family; + html += escapeXml(family); html += quote; html += QLatin1Char(';'); } @@ -2341,13 +2360,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment) const QString name = format.anchorName(); if (!name.isEmpty()) { html += QLatin1String(""); } const QString href = format.anchorHref(); if (!href.isEmpty()) { html += QLatin1String(""); closeAnchor = true; } diff --git a/tests/auto/qtextdocument/qtextdocument.pro b/tests/auto/qtextdocument/qtextdocument.pro index d3ec45d..1e44a9c 100644 --- a/tests/auto/qtextdocument/qtextdocument.pro +++ b/tests/auto/qtextdocument/qtextdocument.pro @@ -1,4 +1,5 @@ load(qttest_p4) +QT += xml HEADERS += common.h SOURCES += tst_qtextdocument.cpp diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index f393393..452b683 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include "common.h" @@ -732,7 +733,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes1") << QTextDocumentFragment(&doc) - << QString("

Blah

"); + << QString("

Blah

"); } { @@ -743,7 +744,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes2") << QTextDocumentFragment(&doc) - << QString("

Blah

"); + << QString("

Blah

"); } { @@ -974,6 +975,30 @@ void tst_QTextDocument::toHtml_data() { CREATE_DOC_AND_CURSOR(); + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a=1&b=2"); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with &") << QTextDocumentFragment(&doc) + << QString("

Blah

"); + } + + { + CREATE_DOC_AND_CURSOR(); + + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a='&b=\""); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with ' and \"") << QTextDocumentFragment(&doc) + << QString("

Blah

"); + } + + { + CREATE_DOC_AND_CURSOR(); + cursor.insertTable(2, 2); QTest::newRow("simpletable") << QTextDocumentFragment(&doc) @@ -1541,6 +1566,9 @@ void tst_QTextDocument::toHtml() QString output = doc->toHtml(); QCOMPARE(output, expectedOutput); + + QDomDocument document; + QVERIFY2(document.setContent(output), "Output was not valid XML"); } void tst_QTextDocument::toHtml2() -- cgit v0.12 From 1f3218e086778a0e324542a00937cd44e8e10c79 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 27 Oct 2009 20:37:27 +0100 Subject: Qt::escape(): also escape the quote (") This amend previous commit by removing the duplicate function. The quote need to be escaped in attributes. Reviewed-by: Thomas Zander --- dist/changes-4.6.0 | 3 +++ src/gui/text/qtextdocument.cpp | 27 +++++--------------------- tests/auto/qtextdocument/tst_qtextdocument.cpp | 26 +++++++++++++++++++++++-- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0 index 7f723da..ba2b051 100644 --- a/dist/changes-4.6.0 +++ b/dist/changes-4.6.0 @@ -35,6 +35,9 @@ information about a particular change. * Added QVariant::toFloat() and QVariant::toReal() * Added QVariant(float) constructor + - Qt::escape + * now escape the double quote (") + **************************************************************************** * Platform Specific Changes * **************************************************************************** diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index 17981e3..6978b6c 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -140,7 +140,7 @@ bool Qt::mightBeRichText(const QString& text) /*! Converts the plain text string \a plain to a HTML string with - HTML metacharacters \c{<}, \c{>}, and \c{&} replaced by HTML + HTML metacharacters \c{<}, \c{>}, \c{&}, and \c{"} replaced by HTML entities. Example: @@ -162,23 +162,6 @@ QString Qt::escape(const QString& plain) rich += QLatin1String(">"); else if (plain.at(i) == QLatin1Char('&')) rich += QLatin1String("&"); - else - rich += plain.at(i); - } - return rich; -} - -static QString escapeXml(const QString &plain) -{ - QString rich; - rich.reserve(int(plain.length() * 1.1)); - for (int i = 0; i < plain.length(); ++i) { - if (plain.at(i) == QLatin1Char('<')) - rich += QLatin1String("<"); - else if (plain.at(i) == QLatin1Char('>')) - rich += QLatin1String(">"); - else if (plain.at(i) == QLatin1Char('&')) - rich += QLatin1String("&"); else if (plain.at(i) == QLatin1Char('"')) rich += QLatin1String("""); else @@ -2057,7 +2040,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu html += QLatin1Char(' '); html += QLatin1String(attribute); html += QLatin1String("=\""); - html += escapeXml(value); + html += Qt::escape(value); html += QLatin1Char('"'); } @@ -2326,7 +2309,7 @@ void QTextHtmlExporter::emitFontFamily(const QString &family) quote = QLatin1String("""); html += quote; - html += escapeXml(family); + html += Qt::escape(family); html += quote; html += QLatin1Char(';'); } @@ -2360,13 +2343,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment) const QString name = format.anchorName(); if (!name.isEmpty()) { html += QLatin1String(""); } const QString href = format.anchorHref(); if (!href.isEmpty()) { html += QLatin1String(""); closeAnchor = true; } diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index 452b683..5237438 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -176,6 +176,8 @@ private slots: void testUndoBlocks(); void receiveCursorPositionChangedAfterContentsChange(); + void escape_data(); + void escape(); private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); @@ -577,7 +579,7 @@ void tst_QTextDocument::task240325() } void tst_QTextDocument::stylesheetFont_data() -{ +{ QTest::addColumn("stylesheet"); QTest::addColumn("font"); @@ -1566,7 +1568,7 @@ void tst_QTextDocument::toHtml() QString output = doc->toHtml(); QCOMPARE(output, expectedOutput); - + QDomDocument document; QVERIFY2(document.setContent(output), "Output was not valid XML"); } @@ -2680,5 +2682,25 @@ void tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange() QCOMPARE(rec.first, QString("contentsChanged")); } +void tst_QTextDocument::escape_data() +{ + QTest::addColumn("original"); + QTest::addColumn("expected"); + + QTest::newRow("1") << "Hello World\n" << "Hello World\n"; + QTest::newRow("2") << "#include " << "#include <QtCore>"; + QTest::newRow("3") << "

plop -->

" + << "<p class="cool"><a href="http://example.com/?foo=bar&amp;bar=foo">plop --&gt; </a></p>"; + QTest::newRow("4") << QString::fromUtf8("<\320\222\321\201>") << QString::fromUtf8("<\320\222\321\201>"); +} + +void tst_QTextDocument::escape() +{ + QFETCH(QString, original); + QFETCH(QString, expected); + + QCOMPARE(Qt::escape(original), expected); +} + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc" -- cgit v0.12 From a925ba1ab6316a155f2ac61f898c52f07a1340b4 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Wed, 28 Oct 2009 09:58:18 +0100 Subject: QSplitter would not show previously collapsed widgets. After deleting or hiding the last non collapsed item in a QSplitter, none would be visible. We now check wether there is any non-hidden, collapsed widget, and set it to non-collapsed. Auto-test included. Task-number: QTBUG-4101 Reviewed-by: Olivier --- src/gui/widgets/qsplitter.cpp | 17 +++++++++++++++-- tests/auto/qsplitter/tst_qsplitter.cpp | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp index e3121ae..520a802 100644 --- a/src/gui/widgets/qsplitter.cpp +++ b/src/gui/widgets/qsplitter.cpp @@ -360,13 +360,26 @@ void QSplitterPrivate::recalc(bool update) before a hidden widget must be hidden. */ bool first = true; + bool allInvisible = n != 0; for (int i = 0; i < n ; ++i) { QSplitterLayoutStruct *s = list.at(i); - s->handle->setHidden(first || s->widget->isHidden()); - if (!s->widget->isHidden()) + bool widgetHidden = s->widget->isHidden(); + if (allInvisible && !widgetHidden && !s->collapsed) + allInvisible = false; + s->handle->setHidden(first || widgetHidden); + if (!widgetHidden) first = false; } + if (allInvisible) + for (int i = 0; i < n ; ++i) { + QSplitterLayoutStruct *s = list.at(i); + if (!s->widget->isHidden()) { + s->collapsed = false; + break; + } + } + int fi = 2 * q->frameWidth(); int maxl = fi; int minl = fi; diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp index cf16421..b832f3a 100644 --- a/tests/auto/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/qsplitter/tst_qsplitter.cpp @@ -102,6 +102,8 @@ private slots: void task187373_addAbstractScrollAreas(); void task187373_addAbstractScrollAreas_data(); void task169702_sizes(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget_data(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget(); private: void removeThirdWidget(); @@ -1281,6 +1283,8 @@ class MyFriendlySplitter : public QSplitter public: MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {} void setRubberBand(int pos) { QSplitter::setRubberBand(pos); } + + friend class tst_QSplitter; }; void tst_QSplitter::rubberBandNotInSplitter() @@ -1403,5 +1407,35 @@ void tst_QSplitter::task169702_sizes() QCOMPARE(testW->size().height(), testW->minimumSizeHint().height()); } +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data() +{ + QTest::addColumn("testingHide"); + + QTest::newRow("last non collapsed hidden") << true; + QTest::newRow("last non collapsed deleted") << false; +} + +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget() +{ + QFETCH(bool, testingHide); + + MyFriendlySplitter s; + QLabel *l; + for (int i = 0; i < 5; ++i) { + l = new QLabel(QString("Label ") + QChar('A' + i)); + l->setAlignment(Qt::AlignCenter); + s.addWidget(l); + s.moveSplitter(0, i); // Collapse all the labels except the last one. + } + + s.show(); + if (testingHide) + l->hide(); + else + delete l; + QTest::qWait(100); + QVERIFY(s.sizes().at(0) > 0); +} + QTEST_MAIN(tst_QSplitter) #include "tst_qsplitter.moc" -- cgit v0.12 From 44f8fac4e2fc4a4258b921ac595c2826ca96e99c Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 28 Oct 2009 11:31:33 +0100 Subject: Double-clicking a dock widget titlebar could make it disappear If it wasn't already docked on a mainwindow, its state would become unexpected. Task-number: QTBUG-945 Reviewed-by: gabi --- src/gui/widgets/qdockwidget.cpp | 10 ++++++---- tests/auto/qdockwidget/tst_qdockwidget.cpp | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp index 6710275..a8e2a37 100644 --- a/src/gui/widgets/qdockwidget.cpp +++ b/src/gui/widgets/qdockwidget.cpp @@ -685,8 +685,6 @@ void QDockWidgetPrivate::_q_toggleTopLevel() void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) { - Q_Q(QDockWidget); - if (state != 0) return; @@ -694,8 +692,6 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) Q_ASSERT(win != 0); QMainWindowLayout *layout = qobject_cast(win->layout()); Q_ASSERT(layout != 0); - if (layout->layoutState.indexOf(q).isEmpty()) //The dock widget has not been added into the main window - return; if (layout->pluggingWidget != 0) // the main window is animating a docking operation return; @@ -1012,6 +1008,12 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect { Q_Q(QDockWidget); + if (!floating && parent) { + QMainWindowLayout *mwlayout = qobject_cast(q->parentWidget()->layout()); + if (!mwlayout || mwlayout->dockWidgetArea(q) == Qt::NoDockWidgetArea) + return; // this dockwidget can't be redocked + } + bool wasFloating = q->isFloating(); bool hidden = q->isHidden(); diff --git a/tests/auto/qdockwidget/tst_qdockwidget.cpp b/tests/auto/qdockwidget/tst_qdockwidget.cpp index dc67f36..e62ba8c 100644 --- a/tests/auto/qdockwidget/tst_qdockwidget.cpp +++ b/tests/auto/qdockwidget/tst_qdockwidget.cpp @@ -86,6 +86,7 @@ private slots: void visibilityChanged(); void dockLocationChanged(); void setTitleBarWidget(); + void titleBarDoubleClick(); // task specific tests: void task165177_deleteFocusWidget(); void task169808_setFloating(); @@ -694,6 +695,24 @@ void tst_QDockWidget::setTitleBarWidget() QCOMPARE(w2.isVisible(), false); } +void tst_QDockWidget::titleBarDoubleClick() +{ + QMainWindow win; + QDockWidget dock(&win); + win.show(); + dock.setFloating(true); + + QEvent e(QEvent::NonClientAreaMouseButtonDblClick); + QApplication::sendEvent(&dock, &e); + QVERIFY(dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::NoDockWidgetArea); + + win.addDockWidget(Qt::TopDockWidgetArea, &dock); + dock.setFloating(true); + QApplication::sendEvent(&dock, &e); + QVERIFY(!dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::TopDockWidgetArea); +} void tst_QDockWidget::task165177_deleteFocusWidget() { -- cgit v0.12 From cc34b794439b59e3e226e2a8dc896fec5e27689d Mon Sep 17 00:00:00 2001 From: Andreas Aardal Hanssen Date: Wed, 28 Oct 2009 11:25:31 +0100 Subject: Fix initial focus bug in ItemIsFocusScope. The task provides an example that doesn't gain input focus when started. The fix contains two parts: one is to allow items with focus scope ancestors to become focus items even if the scope is inactive. The other is to fix up the focusItem pointers on reparent. Before, the focus scopes' focusItem pointers always pointed to itself, or the next scope. Now these items are treated no differently than other items in that respect. The change has a performance impact when reparenting a large subtree that has a sub focus item onto another item (one more dig). Task-number: QT-2331 Reviewed-by: Alexis Menard --- src/gui/graphicsview/qgraphicsitem.cpp | 39 +++++++++--- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 87 +++++++++++++++++++++++--- 2 files changed, 112 insertions(+), 14 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 0107fba..ef43d5c 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1039,13 +1039,31 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent) } // Update focus scope item ptr in new scope. - if (newParent) { + QGraphicsItem *newFocusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; + if (newFocusScopeItem && newParent) { + if (subFocusItem) { + // Find the subFocusItem's topmost focus scope. + QGraphicsItem *ancestorScope = 0; + QGraphicsItem *p = subFocusItem->d_ptr->parent; + while (p) { + if (p->flags() & QGraphicsItem::ItemIsFocusScope) + ancestorScope = p; + if (p->isPanel()) + break; + p = p->parentItem(); + } + if (ancestorScope) + newFocusScopeItem = ancestorScope; + } + QGraphicsItem *p = newParent; while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { - p->d_ptr->focusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; - // ### The below line might not make sense... - if (subFocusItem) + p->d_ptr->focusScopeItem = newFocusScopeItem; + // Ensure the new item is no longer the subFocusItem. The + // only way to set focus on a child of a focus scope is + // by setting focus on the scope itself. + if (subFocusItem && !p->focusItem()) subFocusItem->d_ptr->clearSubFocus(); break; } @@ -2983,8 +3001,11 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { p->d_ptr->focusScopeItem = q_ptr; - if (!q_ptr->isActive() || !p->focusItem()) + if (!p->focusItem()) { + // If you call setFocus on a child of a focus scope that + // doesn't currently have a focus item, then stop. return; + } break; } p = p->d_ptr->parent; @@ -10751,8 +10772,12 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item) return debug; } - debug << "QGraphicsItem(this =" << ((void*)item) - << ", parent =" << ((void*)item->parentItem()) + if (QGraphicsObject *o = item->toGraphicsObject()) + debug << o->metaObject()->className(); + else + debug << "QGraphicsItem"; + debug << "(this =" << (void*)item + << ", parent =" << (void*)item->parentItem() << ", pos =" << item->pos() << ", z =" << item->zValue() << ", flags = " << item->flags() << ")"; diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index dabf64c..2c948cc 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -391,6 +391,7 @@ private slots: void moveWhileDeleting(); void ensureDirtySceneTransform(); void focusScope(); + void focusScope2(); void stackBefore(); void sceneModality(); void panelModality(); @@ -8465,7 +8466,7 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope2->focusScopeItem()); scope3->setParentItem(scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope2); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); QGraphicsRectItem *scope1 = new QGraphicsRectItem; scope1->setData(0, "scope1"); @@ -8474,9 +8475,9 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope1->focusScopeItem()); scope2->setParentItem(scope1); - QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope1); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)0); - QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)scope3); QCOMPARE(scope1->focusScopeItem(), (QGraphicsItem *)scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); @@ -8527,11 +8528,13 @@ void tst_QGraphicsItem::focusScope() rect5->setFocus(); rect5->setParentItem(rect4); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)rect5); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); rect4->setParentItem(0); + QVERIFY(rect5->hasFocus()); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); - QVERIFY(scope3->hasFocus()); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QVERIFY(!scope3->hasFocus()); QGraphicsRectItem *rectA = new QGraphicsRectItem; QGraphicsRectItem *scopeA = new QGraphicsRectItem(rectA); @@ -8542,7 +8545,7 @@ void tst_QGraphicsItem::focusScope() scopeB->setFocus(); scene.addItem(rectA); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); QVERIFY(!scopeB->hasFocus()); scopeA->setFocus(); @@ -8550,6 +8553,76 @@ void tst_QGraphicsItem::focusScope() QCOMPARE(scopeB->focusItem(), (QGraphicsItem *)scopeB); } +void tst_QGraphicsItem::focusScope2() +{ + QGraphicsRectItem *child1 = new QGraphicsRectItem; + child1->setFlags(QGraphicsItem::ItemIsFocusable); + child1->setFocus(); + QCOMPARE(child1->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *child2 = new QGraphicsRectItem; + child2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *rootFocusScope = new QGraphicsRectItem; + rootFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + rootFocusScope->setFocus(); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)rootFocusScope); + + child1->setParentItem(rootFocusScope); + child2->setParentItem(rootFocusScope); + + QCOMPARE(rootFocusScope->focusScopeItem(), (QGraphicsItem *)child1); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *siblingChild1 = new QGraphicsRectItem; + siblingChild1->setFlags(QGraphicsItem::ItemIsFocusable); + siblingChild1->setFocus(); + + QGraphicsRectItem *siblingChild2 = new QGraphicsRectItem; + siblingChild2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *siblingFocusScope = new QGraphicsRectItem; + siblingFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + + siblingChild1->setParentItem(siblingFocusScope); + siblingChild2->setParentItem(siblingFocusScope); + + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild1); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + QGraphicsItem *root = new QGraphicsRectItem; + rootFocusScope->setParentItem(root); + siblingFocusScope->setParentItem(root); + + QCOMPARE(root->focusItem(), (QGraphicsItem *)child1); + + QGraphicsScene scene; + scene.addItem(root); + + QEvent activate(QEvent::WindowActivate); + qApp->sendEvent(&scene, &activate); + scene.setFocus(); + + QCOMPARE(scene.focusItem(), (QGraphicsItem *)child1); + + // You cannot set focus on a descendant of a focus scope directly; + // this will only change the scope's focus scope item pointer. If + // you want to give true input focus, you must set it directly on + // the scope itself + siblingChild2->setFocus(); + QVERIFY(!siblingChild2->hasFocus()); + QVERIFY(!siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + // Set focus on the scope; focus is forwarded to the focus scope item. + siblingFocusScope->setFocus(); + QVERIFY(siblingChild2->hasFocus()); + QVERIFY(siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)siblingChild2); +} + void tst_QGraphicsItem::stackBefore() { QGraphicsRectItem parent; -- cgit v0.12 From 51a644360cdf9ef4d936700f02da6cc380ae1f9d Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 28 Oct 2009 11:43:40 +0100 Subject: Make the QPropertyAnimation pass on windows by waiting slightly longer Timers on windows are not accurate enough to "only" wait for the animation duration + 50. --- tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp index 7dd17e5..92bed7d 100644 --- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp +++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp @@ -495,7 +495,7 @@ void tst_QPropertyAnimation::startWhenAnotherIsRunning() anim->setEndValue(100); QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); anim->start(QVariantAnimation::DeleteWhenStopped); - QTest::qWait(anim->duration() + 50); + QTest::qWait(anim->duration() + 100); QCOMPARE(runningSpy.count(), 2); //started and then stopped QVERIFY(!anim); } @@ -659,7 +659,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setStartValue(0); anim.setEndValue(100); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -667,7 +667,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setDirection(QVariantAnimation::Backward); anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); @@ -676,7 +676,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); QCOMPARE(anim.currentTime(), anim.duration()); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); } -- cgit v0.12 From 8cf53009aa8012c1d911eb3ccac5c5345da712e7 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 28 Oct 2009 11:46:35 +0100 Subject: Changing the time we wait for the end of the animation We now wait for the animation duration + 100 (instead of 50). It makes tests more reliable on windows (and probably embedded) --- tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp index 92bed7d..56c1ced 100644 --- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp +++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp @@ -1093,7 +1093,7 @@ void tst_QPropertyAnimation::valueChanged() QSignalSpy spy(&anim, SIGNAL(valueChanged(QVariant))); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -1144,7 +1144,7 @@ void tst_QPropertyAnimation::twoAnimations() o1.anim.start(); o2.anim.start(); - QTest::qWait(o1.anim.duration() + 50); + QTest::qWait(o1.anim.duration() + 100); QCOMPARE(o1.anim.state(), QAbstractAnimation::Stopped); QCOMPARE(o2.anim.state(), QAbstractAnimation::Stopped); @@ -1194,7 +1194,7 @@ void tst_QPropertyAnimation::deletedInUpdateCurrentTime() MyComposedAnimation composedAnimation(&o, "value", "realValue"); composedAnimation.start(); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Running); - QTest::qWait(composedAnimation.duration() + 50); + QTest::qWait(composedAnimation.duration() + 100); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Stopped); QCOMPARE(o.value(), 1000); -- cgit v0.12 From 0b637c89e785cf4151fbda91eda905032d4baf1e Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 28 Oct 2009 13:17:17 +0100 Subject: Allow to put the central widget in a QMainWindow after it was shown Task-number: QTBUG-1171 --- src/gui/widgets/qdockarealayout.cpp | 14 ++++++++------ src/gui/widgets/qdockarealayout_p.h | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp index 5a0a9d4..df131ee 100644 --- a/src/gui/widgets/qdockarealayout.cpp +++ b/src/gui/widgets/qdockarealayout.cpp @@ -2259,7 +2259,7 @@ QRect QDockAreaLayoutInfo::tabContentRect() const ** QDockAreaLayout */ -QDockAreaLayout::QDockAreaLayout(QMainWindow *win) +QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : have_central(false) { mainWindow = win; sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win); @@ -2582,7 +2582,9 @@ void QDockAreaLayout::getGrid(QVector *_ver_struct_list, { QSize center_hint(0, 0); QSize center_min(0, 0); - bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); + const bool old_have_central = have_central; + have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); + const bool fallbackToSizeHints = !old_have_central && have_central; if (have_central) { center_hint = centralWidgetRect.size(); if (!center_hint.isValid()) @@ -2601,28 +2603,28 @@ void QDockAreaLayout::getGrid(QVector *_ver_struct_list, center_rect.setBottom(rect.bottom() - docks[QInternal::BottomDock].rect.height() - sep); QSize left_hint = docks[QInternal::LeftDock].size(); - if (left_hint.isNull()) + if (left_hint.isNull() || fallbackToSizeHints) left_hint = docks[QInternal::LeftDock].sizeHint(); QSize left_min = docks[QInternal::LeftDock].minimumSize(); QSize left_max = docks[QInternal::LeftDock].maximumSize(); left_hint = left_hint.boundedTo(left_max).expandedTo(left_min); QSize right_hint = docks[QInternal::RightDock].size(); - if (right_hint.isNull()) + if (right_hint.isNull() || fallbackToSizeHints) right_hint = docks[QInternal::RightDock].sizeHint(); QSize right_min = docks[QInternal::RightDock].minimumSize(); QSize right_max = docks[QInternal::RightDock].maximumSize(); right_hint = right_hint.boundedTo(right_max).expandedTo(right_min); QSize top_hint = docks[QInternal::TopDock].size(); - if (top_hint.isNull()) + if (top_hint.isNull() || fallbackToSizeHints) top_hint = docks[QInternal::TopDock].sizeHint(); QSize top_min = docks[QInternal::TopDock].minimumSize(); QSize top_max = docks[QInternal::TopDock].maximumSize(); top_hint = top_hint.boundedTo(top_max).expandedTo(top_min); QSize bottom_hint = docks[QInternal::BottomDock].size(); - if (bottom_hint.isNull()) + if (bottom_hint.isNull() || fallbackToSizeHints) bottom_hint = docks[QInternal::BottomDock].sizeHint(); QSize bottom_min = docks[QInternal::BottomDock].minimumSize(); QSize bottom_max = docks[QInternal::BottomDock].maximumSize(); diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h index 99a9dbb..1ed14ce 100644 --- a/src/gui/widgets/qdockarealayout_p.h +++ b/src/gui/widgets/qdockarealayout_p.h @@ -233,6 +233,7 @@ public: QDockAreaLayout(QMainWindow *win); QDockAreaLayoutInfo docks[4]; int sep; // separator extent + bool have_central; mutable QVector separatorWidgets; bool isValid() const; -- cgit v0.12 From 9862d354c0e2135df848dd02417f958b1d7e16f5 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 28 Oct 2009 13:33:16 +0100 Subject: Compile on 64bit Reviewed-by: Jan-Arve --- src/gui/graphicsview/qsimplex_p.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 66ea739..084ad7f 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -123,11 +123,11 @@ struct QSimplexConstraint #ifdef QT_DEBUG QString toString() { QString result; - result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16); + result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(quintptr(this), 0, 16); QHash::const_iterator iter; for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) { - result += QString::fromAscii(" %1 x %2").arg(iter.value()).arg(int(iter.key()), 0, 16); + result += QString::fromAscii(" %1 x %2").arg(iter.value()).arg(quintptr(iter.key()), 0, 16); } switch (ratio) { -- cgit v0.12 From f62e0f8323304b2afbf2e3b918d611ea1d0f6856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Wed, 28 Oct 2009 13:30:28 +0100 Subject: Stabilize tst_QGraphicsView::optimizationFlags_dontSavePainterState2 Make sure the view is painted, otherwise the transforms are identity and comparisons don't make sense. --- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 092f81d..89628d8 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -2486,7 +2486,7 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState2() scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2)); scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200)); - QGraphicsView view(&scene); + CustomView view(&scene); if (!savePainter) view.setOptimizationFlag(QGraphicsView::DontSavePainterState); view.rotate(45); @@ -2495,7 +2495,11 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState2() #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&view); #endif - QTest::qWait(150); + + // Make sure the view is repainted; otherwise the tests below will fail. + view.viewport()->repaint(); + QTest::qWait(200); + QVERIFY(view.painted); // Make sure the painter's world transform is preserved after drawItems. const QTransform expectedTransform = view.viewportTransform(); -- cgit v0.12 From 992f5cef19ce9e313dd06279c47d7535c6dbc857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Wed, 28 Oct 2009 12:39:33 +0100 Subject: Wrong caching of opaque children in QWidget. The opaque children cache was clipped to all the ancestors up to the top-level, which means whenever a widget changes geometry all the children must be invalidated. However, the bug was that we didn't invalidate the children, and that is of course slow so we don't want to do it either. A better solution is to only clip the children cache to the widget itself (widget->rect() instead of widget->clipRect()), and we can perfectly do this because the region we subtract the opaque children from is already inside the clipRect(). Auto-test included. Task-number: QTBUG-4245 (related to) --- src/gui/kernel/qwidget.cpp | 22 ++++++++------------ src/gui/kernel/qwidget_p.h | 1 - tests/auto/qwidget/tst_qwidget.cpp | 42 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 14 deletions(-) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 5fa9a92..1951ab2 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1825,18 +1825,6 @@ void QWidgetPrivate::setDirtyOpaqueRegion() pd->setDirtyOpaqueRegion(); } -QRegion QWidgetPrivate::getOpaqueRegion() const -{ - Q_Q(const QWidget); - - QRegion r = isOpaque ? q->rect() : getOpaqueChildren(); - if (extra && extra->hasMask) - r &= extra->mask; - if (r.isEmpty()) - return r; - return r & clipRect(); -} - const QRegion &QWidgetPrivate::getOpaqueChildren() const { if (!dirtyOpaqueChildren) @@ -1851,9 +1839,17 @@ const QRegion &QWidgetPrivate::getOpaqueChildren() const continue; const QPoint offset = child->geometry().topLeft(); - that->opaqueChildren += child->d_func()->getOpaqueRegion().translated(offset); + QWidgetPrivate *childd = child->d_func(); + QRegion r = childd->isOpaque ? child->rect() : childd->getOpaqueChildren(); + if (childd->extra && childd->extra->hasMask) + r &= childd->extra->mask; + if (r.isEmpty()) + continue; + r.translate(offset); + that->opaqueChildren += r; } + that->opaqueChildren &= q_func()->rect(); that->dirtyOpaqueChildren = false; return that->opaqueChildren; diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 159a3f2..5cea641 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -386,7 +386,6 @@ public: bool paintOnScreen() const; void invalidateGraphicsEffectsRecursively(); - QRegion getOpaqueRegion() const; const QRegion &getOpaqueChildren() const; void setDirtyOpaqueRegion(); diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 050d1c5..9c421d1 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -332,6 +332,7 @@ private slots: void doubleRepaint(); #ifndef Q_WS_MAC void resizeInPaintEvent(); + void opaqueChildren(); #endif void setMaskInResizeEvent(); @@ -8272,6 +8273,47 @@ void tst_QWidget::resizeInPaintEvent() // Make sure the resize triggers another update. QTRY_COMPARE(widget.numPaintEvents, 1); } + +void tst_QWidget::opaqueChildren() +{ + QWidget widget; + widget.resize(200, 200); + + QWidget child(&widget); + child.setGeometry(-700, -700, 200, 200); + + QWidget grandChild(&child); + grandChild.resize(200, 200); + + QWidget greatGrandChild(&grandChild); + greatGrandChild.setGeometry(50, 50, 200, 200); + greatGrandChild.setPalette(Qt::red); + greatGrandChild.setAutoFillBackground(true); // Opaque child widget. + + widget.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&widget); +#endif + QTest::qWait(100); + + // Child, grandChild and greatGrandChild are outside the ancestor clip. + QRegion expectedOpaqueRegion(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Now they are all inside the ancestor clip. + child.setGeometry(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Set mask on greatGrandChild. + const QRegion mask(10, 10, 50, 50); + greatGrandChild.setMask(mask); + expectedOpaqueRegion &= mask.translated(50, 50); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Make greatGrandChild "transparent". + greatGrandChild.setAutoFillBackground(false); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), QRegion()); +} #endif -- cgit v0.12 From e2584b9e910da18e7e472b5681eb7d0d1630647a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20L=C3=A9tourneau?= Date: Mon, 14 Sep 2009 16:54:13 -0400 Subject: Use qLowerBound in qBinaryFind The current implementation of qBinaryFind use 64bit arithmetics even on a 32bit system, which make it slow The docs mention qBinaryFind will find any occurence of the search value not necessarily the first one, but this is not case with current implementation So nothing prevents the use of qLowerBound Reviewed-by: Olivier Goffart Merge-request: 1513 --- src/corelib/tools/qalgorithms.h | 42 ++++++++++------------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h index a68ce27..f70821a 100644 --- a/src/corelib/tools/qalgorithms.h +++ b/src/corelib/tools/qalgorithms.h @@ -295,23 +295,12 @@ template Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) { // Implementation is duplicated from QAlgorithmsPrivate. - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (value < begin[i]) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (begin[i] < value || value < begin[i]) + RandomAccessIterator it = qLowerBound(begin, end, value); + + if (it == end || value < *it) return end; - else - return begin + i; + + return it; } template @@ -520,23 +509,12 @@ Q_OUTOFLINE_TEMPLATE RandomAccessIterator qUpperBoundHelper(RandomAccessIterator template Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) { - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (lessThan(value, begin[i])) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (lessThan(begin[i], value) || lessThan(value, begin[i])) + RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); + + if (it == end || lessThan(value, *it)) return end; - else - return begin + i; + + return it; } } //namespace QAlgorithmsPrivate -- cgit v0.12 From b41086b8f68f280f1f683d0f107b26d1c6221883 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 28 Oct 2009 14:20:29 +0100 Subject: Extand test of qBinaryFind --- tests/auto/qalgorithms/tst_qalgorithms.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp index 1f1de82..176a451 100644 --- a/tests/auto/qalgorithms/tst_qalgorithms.cpp +++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp @@ -602,9 +602,15 @@ void tst_QAlgorithms::test_qUpperBound() void tst_QAlgorithms::test_qBinaryFind_data() { QTest::addColumn >("data"); - QTest::addColumn("resultValue"); + QTest::addColumn("resultValue"); // -42 means not found QTest::newRow("sorted-duplicate") << (QList() << 1 << 2 << 2 << 3) << 2; + QTest::newRow("sorted-end") << (QList() << -5 << -2 << 0 << 8) << 8; + QTest::newRow("sorted-beginning") << (QList() << -5 << -2 << 0 << 8) << -5; + QTest::newRow("sorted-duplicate-beginning") << (QList() << -5 << -5 << -2 << 0 << 8) << -5; + QTest::newRow("empty") << (QList()) << -42; + QTest::newRow("not found 1 ") << (QList() << 1 << 5 << 8 << 65) << -42; + QTest::newRow("not found 2 ") << (QList() << -456 << -5 << 8 << 65) << -42; } void tst_QAlgorithms::test_qBinaryFind() @@ -612,6 +618,15 @@ void tst_QAlgorithms::test_qBinaryFind() QFETCH(QList, data); QFETCH(int, resultValue); + //-42 means not found + if (resultValue == -42) { + QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data, resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue, qLess()) == data.end()); + return; + } + QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data.begin(), data.end(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data, resultValue), resultValue); -- cgit v0.12 From 88632908b8923e626f36b6132ac179553d39c333 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 28 Oct 2009 14:48:32 +0100 Subject: Fixed possible crash when inserting semicolon. Don't insert T_SEMICOLON when yytoken == -1 Done-with: joerg --- src/declarative/qml/parser/qmljs.g | 2 +- src/declarative/qml/parser/qmljsgrammar.cpp | 2 +- src/declarative/qml/parser/qmljsgrammar_p.h | 2 +- src/declarative/qml/parser/qmljsparser.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index eb9a8ab..c5b2764 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -2949,7 +2949,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; const int errorState = state_stack[tos]; // automatic insertion of `;' - if (t_action(errorState, T_AUTOMATIC_SEMICOLON) && automatic(driver, yytoken)) { + if (yytoken != -1 && t_action(errorState, T_AUTOMATIC_SEMICOLON) && automatic(driver, yytoken)) { SavedToken &tk = token_buffer[0]; tk.token = yytoken; tk.dval = yylval; diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index da3ce2a..2b92b82 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -4,7 +4,7 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** -** This file is part of the QtCore module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index b297f81..20d7188 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -4,7 +4,7 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** -** This file is part of the QtCore module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 402aaeb..dd2553f 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -1713,7 +1713,7 @@ case 337: { const int errorState = state_stack[tos]; // automatic insertion of `;' - if (t_action(errorState, T_AUTOMATIC_SEMICOLON) && automatic(driver, yytoken)) { + if (yytoken != -1 && t_action(errorState, T_AUTOMATIC_SEMICOLON) && automatic(driver, yytoken)) { SavedToken &tk = token_buffer[0]; tk.token = yytoken; tk.dval = yylval; -- cgit v0.12 From 36e362cffe74d8f7fb3eb6b6a67fbab2ebda1a21 Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Wed, 28 Oct 2009 15:15:46 +0100 Subject: Make Qt on QNX compile again Fix a typo, update the tmp path to match current qws behavior. --- mkspecs/unsupported/qnx-g++/qplatformdefs.h | 2 +- mkspecs/unsupported/qws/qnx-i386-g++/qmake.conf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mkspecs/unsupported/qnx-g++/qplatformdefs.h b/mkspecs/unsupported/qnx-g++/qplatformdefs.h index f309f81..1bf9ffcb 100644 --- a/mkspecs/unsupported/qnx-g++/qplatformdefs.h +++ b/mkspecs/unsupported/qnx-g++/qplatformdefs.h @@ -167,6 +167,6 @@ inline float strtof(const char *b, char **e) return float(strtod(b, e)); } -#define QT_QWS_TEMP_DIR qgetenv("TMP"); +#define QT_QWS_TEMP_DIR QString::fromLatin1(qgetenv("TMP")) #endif // QPLATFORMDEFS_H diff --git a/mkspecs/unsupported/qws/qnx-i386-g++/qmake.conf b/mkspecs/unsupported/qws/qnx-i386-g++/qmake.conf index 3f24cd9..fffb80f 100644 --- a/mkspecs/unsupported/qws/qnx-i386-g++/qmake.conf +++ b/mkspecs/unsupported/qws/qnx-i386-g++/qmake.conf @@ -56,10 +56,10 @@ QMAKE_PCH_OUTPUT_EXT = .gch QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, -include(../../common/unix.conf) +include(../../../common/unix.conf) QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CLFAGS_THREAD +QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_INCDIR = QMAKE_LIBDIR = -- cgit v0.12 From 5d8dcd57cd13fdd9c8643fa3bdda9f197a4351ff Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 28 Oct 2009 15:09:47 +0100 Subject: Greatly improve the performance of obtaining a state's transitions Transitions are children of their source state. We use QObject::children() and qobject_cast() each child to a QAbstractTransition to see if it is indeed a transition. However, calling qobject_cast() is very expensive. This commit introduces a cached list of transitions. The list is invalidated after a child object has been added or removed. In the typical case we expect the object hierarchy to remain fairly constant once the state machine has been started (states, child states and transitions are usually "static"), in other words the cached list is not likely to be invalidated much. Obtaining a state's transitions needs to be as fast as possible because it's in the critical path of the state machine algorithm. Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/statemachine/qstate.cpp | 23 +++++++++++++++-------- src/corelib/statemachine/qstate_p.h | 2 ++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/corelib/statemachine/qstate.cpp b/src/corelib/statemachine/qstate.cpp index a6e4a57..9abf20b 100644 --- a/src/corelib/statemachine/qstate.cpp +++ b/src/corelib/statemachine/qstate.cpp @@ -124,7 +124,8 @@ QT_BEGIN_NAMESPACE */ QStatePrivate::QStatePrivate() - : errorState(0), initialState(0), childMode(QState::ExclusiveStates) + : errorState(0), initialState(0), childMode(QState::ExclusiveStates), + transitionsListNeedsRefresh(true) { } @@ -205,14 +206,17 @@ QList QStatePrivate::historyStates() const QList QStatePrivate::transitions() const { - QList result; - QList::const_iterator it; - for (it = children.constBegin(); it != children.constEnd(); ++it) { - QAbstractTransition *t = qobject_cast(*it); - if (t) - result.append(t); + if (transitionsListNeedsRefresh) { + transitionsList.clear(); + QList::const_iterator it; + for (it = children.constBegin(); it != children.constEnd(); ++it) { + QAbstractTransition *t = qobject_cast(*it); + if (t) + transitionsList.append(t); + } + transitionsListNeedsRefresh = false; } - return result; + return transitionsList; } #ifndef QT_NO_PROPERTIES @@ -468,6 +472,9 @@ void QState::setChildMode(ChildMode mode) */ bool QState::event(QEvent *e) { + Q_D(QState); + if ((e->type() == QEvent::ChildAdded) || (e->type() == QEvent::ChildRemoved)) + d->transitionsListNeedsRefresh = true; return QAbstractState::event(e); } diff --git a/src/corelib/statemachine/qstate_p.h b/src/corelib/statemachine/qstate_p.h index 20cda29..3b5f416 100644 --- a/src/corelib/statemachine/qstate_p.h +++ b/src/corelib/statemachine/qstate_p.h @@ -99,6 +99,8 @@ public: QAbstractState *errorState; QAbstractState *initialState; QState::ChildMode childMode; + mutable bool transitionsListNeedsRefresh; + mutable QList transitionsList; QList propertyAssignments; }; -- cgit v0.12 From 71913d435213188959441a89454de6308fd76484 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Wed, 28 Oct 2009 15:38:33 +0100 Subject: Delete the tst_QWebFrame::setHtmlWithBaseURL test until its fixed upstream. Reviewed-by: TrustMe --- .../WebKit/qt/tests/qwebframe/tst_qwebframe.cpp | 23 ---------------------- 1 file changed, 23 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index 80c9d72..100f272 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -586,7 +586,6 @@ private slots: void javaScriptWindowObjectClearedOnEvaluate(); void setHtml(); void setHtmlWithResource(); - void setHtmlWithBaseURL(); void ipv6HostEncoding(); void metaData(); void popupFocus(); @@ -2372,28 +2371,6 @@ void tst_QWebFrame::setHtmlWithResource() QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("red")); } -void tst_QWebFrame::setHtmlWithBaseURL() -{ - QString html("

hello world

"); - - QWebPage page; - QWebFrame* frame = page.mainFrame(); - - // in few seconds, the image should be completey loaded - QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); - - frame->setHtml(html, QUrl::fromLocalFile(QDir::currentPath())); - QTest::qWait(200); - QCOMPARE(spy.count(), 1); - - QCOMPARE(frame->evaluateJavaScript("document.images.length").toInt(), 1); - QCOMPARE(frame->evaluateJavaScript("document.images[0].width").toInt(), 128); - QCOMPARE(frame->evaluateJavaScript("document.images[0].height").toInt(), 128); - - // no history item has to be added. - QCOMPARE(m_view->page()->history()->count(), 0); -} - class TestNetworkManager : public QNetworkAccessManager { public: -- cgit v0.12 From 6e228d57da9d5dd9b7365d5539f6ed88cafb5d97 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Wed, 28 Oct 2009 16:00:49 +0100 Subject: Fixed missing repaints on QTreeView when moving the mouse ..from the decoration to the item itself. QAbstractItemView can't handle that because it doesn't know anything about decoration. Reviewed-by: gabi --- src/gui/itemviews/qtreeview.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index 16b454d..bad9dfe 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1226,8 +1226,12 @@ bool QTreeView::viewportEvent(QEvent *event) if (oldIndex != newIndex) { QRect oldRect = visualRect(oldIndex); QRect newRect = visualRect(newIndex); - viewport()->update(oldRect.left() - d->indent, oldRect.top(), d->indent, oldRect.height()); - viewport()->update(newRect.left() - d->indent, newRect.top(), d->indent, newRect.height()); + oldRect.rLeft() -= d->indent; + newRect.rLeft() -= d->indent; + //we need to paint the whole items (including the decoration) so that when the user + //moves the mouse over those elements they are updated + viewport()->update(oldRect); + viewport()->update(newRect); } } if (selectionBehavior() == QAbstractItemView::SelectRows) { -- cgit v0.12 From d560894ad085ac8c6266fd1af66139db950f473f Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Wed, 28 Oct 2009 15:10:36 +0100 Subject: Fixed bug in QTableView spans. In some cases, the spans internal structure was left in an inconsistent state. Auto-test included. Bonus: spans consistency checking method. Task-number: QTBUG-5062 Reviewed-by: Olivier --- src/gui/itemviews/qtableview.cpp | 43 +++++++++++++++++++++++++++++++- src/gui/itemviews/qtableview_p.h | 6 ++++- tests/auto/qtableview/tst_qtableview.cpp | 38 ++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index c80faa2..02e5fff 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -117,7 +117,7 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height) Index::iterator it_y = index.lowerBound(-span->bottom()); Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list while (-it_y.key() <= span->top() + old_height -1) { - if(-it_y.key() != span->bottom()) { + if (-it_y.key() > span->bottom()) { (*it_y).remove(-span->left()); if (it_y->isEmpty()) { it_y = index.erase(it_y) - 1; @@ -544,6 +544,47 @@ void QSpanCollection::updateRemovedColumns(int start, int end) qDeleteAll(toBeDeleted); } +#ifdef QT_BUILD_INTERNAL +/*! + \internal + Checks whether the span index structure is self-consistent, and consistent with the spans list. +*/ +bool QSpanCollection::checkConsistency() const +{ + for (Index::const_iterator it_y = index.begin(); it_y != index.end(); ++it_y) { + int y = -it_y.key(); + const SubIndex &subIndex = it_y.value(); + for (SubIndex::const_iterator it = subIndex.begin(); it != subIndex.end(); ++it) { + int x = -it.key(); + Span *span = it.value(); + if (!spans.contains(span) || span->left() != x + || y < span->top() || y > span->bottom()) + return false; + } + } + + foreach (const Span *span, spans) { + if (span->width() < 1 || span->height() < 1 + || (span->width() == 1 && span->height() == 1)) + return false; + for (int y = span->top(); y <= span->bottom(); ++y) { + Index::const_iterator it_y = index.find(-y); + if (it_y == index.end()) { + if (y == span->top()) + return false; + else + continue; + } + const SubIndex &subIndex = it_y.value(); + SubIndex::const_iterator it = subIndex.find(-span->left()); + if (it == subIndex.end() || it.value() != span) + return false; + } + } + return true; +} +#endif + class QTableCornerButton : public QAbstractButton { Q_OBJECT diff --git a/src/gui/itemviews/qtableview_p.h b/src/gui/itemviews/qtableview_p.h index 9fa14c2..6b19ded 100644 --- a/src/gui/itemviews/qtableview_p.h +++ b/src/gui/itemviews/qtableview_p.h @@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE * The key of the first map is the row where the subspan starts, the value of the first map is * a list (map) of all subspans that starts at the same row. It is indexed with its row */ -class QSpanCollection +class Q_AUTOTEST_EXPORT QSpanCollection { public: struct Span @@ -112,6 +112,10 @@ public: void updateRemovedRows(int start, int end); void updateRemovedColumns(int start, int end); +#ifdef QT_BUILD_INTERNAL + bool checkConsistency() const; +#endif + typedef QLinkedList SpanList; SpanList spans; //lists of all spans private: diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index 8f8781d..fe2794f 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -41,6 +41,7 @@ #include +#include #include #include "../../shared/util.h" #include "private/qapplication_p.h" @@ -58,6 +59,13 @@ } \ } while(0) +#ifdef QT_BUILD_INTERNAL +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) \ + QVERIFY(static_cast(QObjectPrivate::get(TEST_VIEW_))->spans.checkConsistency()) +#else +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) (void)false +#endif + typedef QList IntList; Q_DECLARE_METATYPE(IntList) @@ -188,6 +196,7 @@ private slots: void task248688_autoScrollNavigation(); void task259308_scrollVerticalHeaderSwappedSections(); void task191545_dragSelectRows(); + void taskQTBUG_5062_spansInconsistency(); void mouseWheel_data(); void mouseWheel(); @@ -2899,6 +2908,8 @@ void tst_QTableView::span() view.clearSpans(); QCOMPARE(view.rowSpan(row, column), 1); QCOMPARE(view.columnSpan(row, column), 1); + + VERIFY_SPANS_CONSISTENCY(&view); } typedef QVector SpanList; @@ -3034,6 +3045,8 @@ void tst_QTableView::spans() QCOMPARE(view.columnSpan(pos.x(), pos.y()), expectedColumnSpan); QCOMPARE(view.rowSpan(pos.x(), pos.y()), expectedRowSpan); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowInsertion() @@ -3068,6 +3081,8 @@ void tst_QTableView::spansAfterRowInsertion() view.model()->insertRows(12, 2); QCOMPARE(view.rowSpan(7, 3), 5); QCOMPARE(view.columnSpan(7, 3), 3); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnInsertion() @@ -3102,6 +3117,8 @@ void tst_QTableView::spansAfterColumnInsertion() view.model()->insertColumns(12, 2); QCOMPARE(view.rowSpan(3, 7), 3); QCOMPARE(view.columnSpan(3, 7), 5); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowRemoval() @@ -3139,6 +3156,8 @@ void tst_QTableView::spansAfterRowRemoval() QCOMPARE(view.columnSpan(span.top(), span.left()), span.width()); QCOMPARE(view.rowSpan(span.top(), span.left()), span.height()); } + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnRemoval() @@ -3177,6 +3196,8 @@ void tst_QTableView::spansAfterColumnRemoval() QCOMPARE(view.columnSpan(span.left(), span.top()), span.height()); QCOMPARE(view.rowSpan(span.left(), span.top()), span.width()); } + + VERIFY_SPANS_CONSISTENCY(&view); } class Model : public QAbstractTableModel { @@ -3845,5 +3866,22 @@ void tst_QTableView::task234926_setHeaderSorting() QCOMPARE(model.stringList() , sortedDataD); } +void tst_QTableView::taskQTBUG_5062_spansInconsistency() +{ + const int nRows = 5; + const int nColumns = 5; + + QtTestTableModel model(nRows, nColumns); + QtTestTableView view; + view.setModel(&model); + + for (int i = 0; i < nRows; ++i) + view.setSpan(i, 0, 1, nColumns); + view.setSpan(2, 0, 1, 1); + view.setSpan(3, 0, 1, 1); + + VERIFY_SPANS_CONSISTENCY(&view); +} + QTEST_MAIN(tst_QTableView) #include "tst_qtableview.moc" -- cgit v0.12 From ee52cd0bb8ec4f5f74efc9c26be81dd93f1881c8 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Wed, 28 Oct 2009 11:41:52 +0100 Subject: QNativeSocketEngine: Actually use translations Task-number: QTBUG-4984 Reviewed-by: Thiago --- src/network/socket/qnativesocketengine.cpp | 52 +++++++++++++++--------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp index e7f8401..8de821b 100644 --- a/src/network/socket/qnativesocketengine.cpp +++ b/src/network/socket/qnativesocketengine.cpp @@ -194,82 +194,82 @@ void QNativeSocketEnginePrivate::setError(QAbstractSocket::SocketError error, Er switch (errorString) { case NonBlockingInitFailedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unable to initialize non-blocking socket")); + socketErrorString = QNativeSocketEngine::tr("Unable to initialize non-blocking socket"); break; case BroadcastingInitFailedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unable to initialize broadcast socket")); + socketErrorString = QNativeSocketEngine::tr("Unable to initialize broadcast socket"); break; case NoIpV6ErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Attempt to use IPv6 socket on a platform with no IPv6 support")); + socketErrorString = QNativeSocketEngine::tr("Attempt to use IPv6 socket on a platform with no IPv6 support"); break; case RemoteHostClosedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "The remote host closed the connection")); + socketErrorString = QNativeSocketEngine::tr("The remote host closed the connection"); break; case TimeOutErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Network operation timed out")); + socketErrorString = QNativeSocketEngine::tr("Network operation timed out"); break; case ResourceErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Out of resources")); + socketErrorString = QNativeSocketEngine::tr("Out of resources"); break; case OperationUnsupportedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unsupported socket operation")); + socketErrorString = QNativeSocketEngine::tr("Unsupported socket operation"); break; case ProtocolUnsupportedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Protocol type not supported")); + socketErrorString = QNativeSocketEngine::tr("Protocol type not supported"); break; case InvalidSocketErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Invalid socket descriptor")); + socketErrorString = QNativeSocketEngine::tr("Invalid socket descriptor"); break; case HostUnreachableErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Host unreachable")); + socketErrorString = QNativeSocketEngine::tr("Host unreachable"); break; case NetworkUnreachableErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Network unreachable")); + socketErrorString = QNativeSocketEngine::tr("Network unreachable"); break; case AccessErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Permission denied")); + socketErrorString = QNativeSocketEngine::tr("Permission denied"); break; case ConnectionTimeOutErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Connection timed out")); + socketErrorString = QNativeSocketEngine::tr("Connection timed out"); break; case ConnectionRefusedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Connection refused")); + socketErrorString = QNativeSocketEngine::tr("Connection refused"); break; case AddressInuseErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "The bound address is already in use")); + socketErrorString = QNativeSocketEngine::tr("The bound address is already in use"); break; case AddressNotAvailableErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "The address is not available")); + socketErrorString = QNativeSocketEngine::tr("The address is not available"); break; case AddressProtectedErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "The address is protected")); + socketErrorString = QNativeSocketEngine::tr("The address is protected"); break; case DatagramTooLargeErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Datagram was too large to send")); + socketErrorString = QNativeSocketEngine::tr("Datagram was too large to send"); break; case SendDatagramErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unable to send a message")); + socketErrorString = QNativeSocketEngine::tr("Unable to send a message"); break; case ReceiveDatagramErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unable to receive a message")); + socketErrorString = QNativeSocketEngine::tr("Unable to receive a message"); break; case WriteErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unable to write")); + socketErrorString = QNativeSocketEngine::tr("Unable to write"); break; case ReadErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Network error")); + socketErrorString = QNativeSocketEngine::tr("Network error"); break; case PortInuseErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Another socket is already listening on the same port")); + socketErrorString = QNativeSocketEngine::tr("Another socket is already listening on the same port"); break; case NotSocketErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Operation on non-socket")); + socketErrorString = QNativeSocketEngine::tr("Operation on non-socket"); break; case InvalidProxyTypeString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "The proxy type is invalid for this operation")); + socketErrorString = QNativeSocketEngine::tr("The proxy type is invalid for this operation"); break; case UnknownSocketErrorString: - socketErrorString = QLatin1String(QT_TRANSLATE_NOOP("QNativeSocketEngine", "Unknown error")); + socketErrorString = QNativeSocketEngine::tr("Unknown error"); break; } } -- cgit v0.12 From da1519020a53dbdc717fb3bffeaad07c5142a6e3 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Wed, 28 Oct 2009 15:01:44 +0100 Subject: QSslError: Actually make strings show up in the ts file I suspect because of missing quotation marks those strings were not showing up. Also, wrapping QT_TRANSLATE_NOOP inside a tr() call makes no sense. Also changed the class from QObject to QSslSocket. Task-number: QTBUG-5059 Reviewed-by: ossi --- src/network/ssl/qsslerror.cpp | 57 +++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/src/network/ssl/qsslerror.cpp b/src/network/ssl/qsslerror.cpp index 62fcd4c..4bb58b1 100644 --- a/src/network/ssl/qsslerror.cpp +++ b/src/network/ssl/qsslerror.cpp @@ -91,6 +91,7 @@ */ #include "qsslerror.h" +#include "qsslsocket.h" #ifndef QT_NO_DEBUG_STREAM #include @@ -209,81 +210,79 @@ QString QSslError::errorString() const QString errStr; switch (d->error) { case NoError: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "No error")); + errStr = QSslSocket::tr("No error"); break; case UnableToGetIssuerCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The issuer certificate could not be found")); + errStr = QSslSocket::tr("The issuer certificate could not be found"); break; case UnableToDecryptCertificateSignature: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate signature could not be decrypted")); + errStr = QSslSocket::tr("The certificate signature could not be decrypted"); break; case UnableToDecodeIssuerPublicKey: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The public key in the certificate could not be read")); + errStr = QSslSocket::tr("The public key in the certificate could not be read"); break; case CertificateSignatureFailed: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The signature of the certificate is invalid")); + errStr = QSslSocket::tr("The signature of the certificate is invalid"); break; case CertificateNotYetValid: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate is not yet valid")); + errStr = QSslSocket::tr("The certificate is not yet valid"); break; case CertificateExpired: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate has expired")); + errStr = QSslSocket::tr("The certificate has expired"); break; case InvalidNotBeforeField: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate's notBefore field contains an invalid time")); + errStr = QSslSocket::tr("The certificate's notBefore field contains an invalid time"); break; case InvalidNotAfterField: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate's notAfter field contains an invalid time")); + errStr = QSslSocket::tr("The certificate's notAfter field contains an invalid time"); break; case SelfSignedCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The certificate is self-signed, and untrusted")); + errStr = QSslSocket::tr("The certificate is self-signed, and untrusted"); break; case SelfSignedCertificateInChain: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The root certificate of the certificate chain is self-signed, and untrusted")); + errStr = QSslSocket::tr("The root certificate of the certificate chain is self-signed, and untrusted"); break; case UnableToGetLocalIssuerCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The issuer certificate of a locally looked up certificate could not be found")); + errStr = QSslSocket::tr("The issuer certificate of a locally looked up certificate could not be found"); break; case UnableToVerifyFirstCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "No certificates could be verified")); + errStr = QSslSocket::tr("No certificates could be verified"); break; case InvalidCaCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "One of the CA certificates is invalid")); + errStr = QSslSocket::tr("One of the CA certificates is invalid"); break; case PathLengthExceeded: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The basicConstraints pathlength parameter has been exceeded")); + errStr = QSslSocket::tr("The basicConstraints pathlength parameter has been exceeded"); break; case InvalidPurpose: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The supplied certificate is unsuited for this purpose")); + errStr = QSslSocket::tr("The supplied certificate is unsuited for this purpose"); break; case CertificateUntrusted: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The root CA certificate is not trusted for this purpose")); + errStr = QSslSocket::tr("The root CA certificate is not trusted for this purpose"); break; case CertificateRejected: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The root CA certificate is marked to reject the specified purpose")); + errStr = QSslSocket::tr("The root CA certificate is marked to reject the specified purpose"); break; case SubjectIssuerMismatch: // hostname mismatch - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, - "The current candidate issuer certificate was rejected because its" - " subject name did not match the issuer name of the current certificate")); + errStr = QSslSocket::tr("The current candidate issuer certificate was rejected because its" + " subject name did not match the issuer name of the current certificate"); break; case AuthorityIssuerSerialNumberMismatch: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The current candidate issuer certificate was rejected because" - " its issuer name and serial number was present and did not match the" - " authority key identifier of the current certificate")); + errStr = QSslSocket::tr("The current candidate issuer certificate was rejected because" + " its issuer name and serial number was present and did not match the" + " authority key identifier of the current certificate"); break; case NoPeerCertificate: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "The peer did not present any certificate")); + errStr = QSslSocket::tr("The peer did not present any certificate"); break; case HostNameMismatch: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, - "The host name did not match any of the valid hosts" - " for this certificate")); + errStr = QSslSocket::tr("The host name did not match any of the valid hosts" + " for this certificate"); break; case NoSslSupport: break; default: - errStr = QObject::tr(QT_TRANSLATE_NOOP(QSslError, "Unknown error")); + errStr = QSslSocket::tr("Unknown error"); break; } -- cgit v0.12 From 51f1d68addd23516d7e6e252e476feac0a95d0c0 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 28 Oct 2009 15:55:47 +0100 Subject: Fix warning in qvariant.h header + make sure QVariant in QVariant works as expected Also add more test Reviewed-by: Thierry --- src/corelib/kernel/qvariant.h | 39 ++---- tests/auto/qvariant/tst_qvariant.cpp | 245 +++++++++++++++++++++++++++++++++++ 2 files changed, 257 insertions(+), 27 deletions(-) diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index 4cce529..a1ab4e9 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -456,9 +456,9 @@ template inline void qVariantSetValue(QVariant &v, const T &t) { //if possible we reuse the current QVariant private - const int type = qMetaTypeId(reinterpret_cast(0)); + const uint type = qMetaTypeId(reinterpret_cast(0)); QVariant::Private &d = v.data_ptr(); - if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) { + if (v.isDetached() && (type <= uint(QVariant::Char) || type == d.type)) { d.type = type; d.is_null = false; T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); @@ -470,6 +470,13 @@ inline void qVariantSetValue(QVariant &v, const T &t) } } +template <> +inline void qVariantSetValue(QVariant &v, const QVariant &t) +{ + v = t; +} + + inline QVariant::QVariant() {} inline bool QVariant::isValid() const { return d.type != Invalid; } @@ -559,9 +566,7 @@ inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) #endif #ifndef QT_MOC -#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300 - -template T qvariant_cast(const QVariant &v, T * = 0) +template inline T qvariant_cast(const QVariant &v) { const int vid = qMetaTypeId(static_cast(0)); if (vid == v.userType()) @@ -574,28 +579,9 @@ template T qvariant_cast(const QVariant &v, T * = 0) return T(); } -template -inline T qVariantValue(const QVariant &variant, T *t = 0) -{ return qvariant_cast(variant, t); } - -template -inline bool qVariantCanConvert(const QVariant &variant, T *t = 0) +template<> inline QVariant qvariant_cast(const QVariant &v) { - return variant.canConvert(static_cast(qMetaTypeId(t))); -} -#else - -template T qvariant_cast(const QVariant &v) -{ - const int vid = qMetaTypeId(static_cast(0)); - if (vid == v.userType()) - return *reinterpret_cast(v.constData()); - if (vid < int(QMetaType::User)) { - T t; - if (qvariant_cast_helper(v, QVariant::Type(vid), &t)) - return t; - } - return T(); + return v; } template @@ -609,7 +595,6 @@ inline bool qVariantCanConvert(const QVariant &variant) qMetaTypeId(static_cast(0)))); } #endif -#endif Q_DECLARE_SHARED(QVariant) Q_DECLARE_TYPEINFO(QVariant, Q_MOVABLE_TYPE); diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp index de4d7b4..61e9a4f 100644 --- a/tests/auto/qvariant/tst_qvariant.cpp +++ b/tests/auto/qvariant/tst_qvariant.cpp @@ -270,6 +270,8 @@ private slots: void task256984_setValue(); void numericalConvert(); + void moreCustomTypes(); + void variantInVariant(); }; Q_DECLARE_METATYPE(QDate) @@ -3135,7 +3137,250 @@ void tst_QVariant::numericalConvert() } +template void playWithVariant(const T &orig, bool isNull, const QString &toString, double toDouble, bool toBool) +{ + QVariant v = QVariant::fromValue(orig); + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast(v), orig); + + { + QVariant v2 = v; + QCOMPARE(v2, v); + QVERIFY(v2.isValid()); + QCOMPARE(v2.isNull(), isNull); + QCOMPARE(v2.toString(), toString); + QCOMPARE(v2.toDouble(), toDouble); + QCOMPARE(v2.toBool(), toBool); + QCOMPARE(qvariant_cast(v2), orig); + + QVariant v3; + v = QVariant(); + QCOMPARE(v3, v); + v = v2; + QCOMPARE(v, v2); + QCOMPARE(qvariant_cast(v2), qvariant_cast(v)); + QCOMPARE(v2.toString(), toString); + v3 = qVariantFromValue(orig); + + QVERIFY(v3.isValid()); + QCOMPARE(v3.isNull(), isNull); + QCOMPARE(v3.toString(), toString); + QCOMPARE(v3.toDouble(), toDouble); + QCOMPARE(v3.toBool(), toBool); + QCOMPARE(qvariant_cast(v3), qvariant_cast(v)); + } + + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast(v), orig); + + if (qMetaTypeId() != qMetaTypeId()) { + QCOMPARE(v.userType(), qMetaTypeId()); + QCOMPARE(QVariant::typeToName(QVariant::Type(v.userType())), QMetaType::typeName(qMetaTypeId())); + } +} + + +struct MyPrimitive +{ + char x, y; + bool operator==(const MyPrimitive &o) const + { + return x == o.x && y == o.y; + } +}; +Q_DECLARE_TYPEINFO(MyPrimitive, Q_PRIMITIVE_TYPE); + +struct MyData +{ + void *ptr; + MyData() : ptr(this) {} + ~MyData() { Q_ASSERT(ptr == this); } + MyData(const MyData& o) : ptr(this) { Q_ASSERT(o.ptr == &o); } + MyData &operator=(const MyData &o) + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return *this; + } + bool operator==(const MyData &o) const + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return true; + } +}; + +struct MyMovable +{ + static int count; + int v; + MyMovable() { v = count++; } + ~MyMovable() { count--; } + MyMovable(const MyMovable &o) : v(o.v) { count++; } + + bool operator==(const MyMovable &o) const + { + return v == o.v; + } +}; + +int MyMovable::count = 0; + + +Q_DECLARE_TYPEINFO(MyMovable, Q_MOVABLE_TYPE); + +Q_DECLARE_METATYPE(QList) +Q_DECLARE_METATYPE(MyPrimitive) +Q_DECLARE_METATYPE(MyData) +Q_DECLARE_METATYPE(MyMovable) +Q_DECLARE_METATYPE(QList) +Q_DECLARE_METATYPE(QList) +Q_DECLARE_METATYPE(QList) +Q_DECLARE_METATYPE(MyPrimitive *) +Q_DECLARE_METATYPE(MyData *) +Q_DECLARE_METATYPE(MyMovable *) + +void tst_QVariant::moreCustomTypes() +{ + { + QList listSize; + playWithVariant(listSize, false, QString(), 0, false); + listSize << QSize(4,5) << QSize(89,23) << QSize(5,6); + playWithVariant(listSize, false, QString(), 0, false); + } + + { + QString str; + playWithVariant(str, true, QString(), 0, false); + str = QString::fromLatin1("123456789.123"); + playWithVariant(str, false, str, 123456789.123, true); + } + + { + QSize size; + playWithVariant(size, false, QString(), 0, false); + playWithVariant(QSize(45,78), false, QString(), 0, false); + } + + { + MyData d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList l; + playWithVariant(l, false, QString(), 0, false); + l << MyData() << MyData(); + playWithVariant(l, false, QString(), 0, false); + } + + { + MyPrimitive d = { 4, 5 }; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList l; + playWithVariant(l, false, QString(), 0, false); + l << d; + playWithVariant(l, false, QString(), 0, false); + } + + { + MyMovable d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList l; + playWithVariant(l, false, QString(), 0, false); + l << MyMovable() << d; + playWithVariant(l, false, QString(), 0, false); + } + QCOMPARE(MyMovable::count, 0); + + { + playWithVariant(12.12, false, "12.12", 12.12, true); + playWithVariant(12.12f, false, "12.12", 12.12f, true); + playWithVariant('a', false, "a", 'a', true); + playWithVariant((unsigned char)('a'), false, "a", 'a', true); + playWithVariant( quint8(12), false, "\xc", 12, true); + playWithVariant( qint8(13), false, "\xd", 13, true); + playWithVariant(quint16(14), false, "14", 14, true); + playWithVariant( qint16(15), false, "15", 15, true); + playWithVariant(quint32(16), false, "16", 16, true); + playWithVariant( qint32(17), false, "17", 17, true); + playWithVariant(quint64(18), false, "18", 18, true); + playWithVariant( qint64(19), false, "19", 19, true); + playWithVariant( qint8(-12), false, "\xf4", -12, true); + playWithVariant( qint16(-13), false, "-13", -13, true); + playWithVariant( qint32(-14), false, "-14", -14, true); + playWithVariant( qint64(-15), false, "-15", -15, true); + playWithVariant(quint64(0), false, "0", 0, false); + playWithVariant( true, false, "true", 1, true); + playWithVariant( false, false, "false", 0, false); + + playWithVariant(QString("hello\n"), false, "hello\n", 0, true); + } + + { + int i = 5; + playWithVariant((void *)(&i), false, QString(), 0, false); + playWithVariant((void *)(0), false, QString(), 0, false); + } + + { + QVariant v1 = QVariant::fromValue(5); + QVariant v2 = QVariant::fromValue(5.0); + QVariant v3 = QVariant::fromValue(quint16(5)); + QVariant v4 = 5; + QVariant v5 = QVariant::fromValue(MyPrimitive()); + QVariant v6 = QVariant::fromValue(MyMovable()); + QVariant v7 = QVariant::fromValue(MyData()); + playWithVariant(v1, false, "5", 5, true); + playWithVariant(v2, false, "5", 5, true); + playWithVariant(v3, false, "5", 5, true); + playWithVariant(v4, false, "5", 5, true); + + playWithVariant(v5, false, QString(), 0, false); + } +} + + +void tst_QVariant::variantInVariant() +{ + QVariant var1 = 5; + QCOMPARE(var1.type(), QVariant::Int); + QVariant var2 = var1; + QCOMPARE(var2, var1); + QCOMPARE(var2.type(), QVariant::Int); + QVariant var3 = QVariant::fromValue(var1); + QCOMPARE(var3, var1); + QCOMPARE(var3.type(), QVariant::Int); + QVariant var4 = qvariant_cast(var1); + QCOMPARE(var4, var1); + QCOMPARE(var4.type(), QVariant::Int); + QVariant var5; + var5 = var1; + QCOMPARE(var5, var1); + QCOMPARE(var5.type(), QVariant::Int); + QVariant var6; + var6.setValue(var1); + QCOMPARE(var6, var1); + QCOMPARE(var6.type(), QVariant::Int); + + QCOMPARE(QVariant::fromValue(var1), QVariant::fromValue(var2)); + QCOMPARE(qvariant_cast(var3), QVariant::fromValue(var4)); + QCOMPARE(qvariant_cast(var5), qvariant_cast(var6)); + + QString str("hello"); + QVariant var8 = qvariant_cast(QVariant::fromValue(QVariant::fromValue(str))); + QCOMPARE((int)var8.type(), (int)QVariant::String); + QCOMPARE(qvariant_cast(QVariant(qvariant_cast(var8))), str); +} QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" -- cgit v0.12 From d9b009bfed86ac273da4fc589daa34d852437254 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 28 Oct 2009 17:46:14 +0100 Subject: make magic comment parsing stricter there must be a space after the //: and similar comments, otherwise harmless comments of the sort of //====== foo here ===== will be parsed as message ids, etc. --- tools/linguist/lupdate/cpp.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp index 7a616e3..6374912 100644 --- a/tools/linguist/lupdate/cpp.cpp +++ b/tools/linguist/lupdate/cpp.cpp @@ -1899,25 +1899,25 @@ void CppParser::parseInternal(ConversionData &cd, QSet &inclusions) case Tok_Comment: if (!tor) goto case_default; - if (yyWord.startsWith(QLatin1Char(':'))) { - yyWord.remove(0, 1); + if (yyWord.at(0) == QLatin1Char(':') && yyWord.at(1).isSpace()) { + yyWord.remove(0, 2); extracomment += yyWord; extracomment.detach(); - } else if (yyWord.startsWith(QLatin1Char('='))) { - yyWord.remove(0, 1); + } else if (yyWord.at(0) == QLatin1Char('=') && yyWord.at(1).isSpace()) { + yyWord.remove(0, 2); msgid = yyWord.simplified(); msgid.detach(); - } else if (yyWord.startsWith(QLatin1Char('~'))) { - yyWord.remove(0, 1); + } else if (yyWord.at(0) == QLatin1Char('~') && yyWord.at(1).isSpace()) { + yyWord.remove(0, 2); text = yyWord.trimmed(); int k = text.indexOf(QLatin1Char(' ')); if (k > -1) extra.insert(text.left(k), text.mid(k + 1).trimmed()); text.clear(); - } else if (yyWord.startsWith(QLatin1Char('%'))) { - sourcetext.reserve(sourcetext.length() + yyWord.length()); + } else if (yyWord.at(0) == QLatin1Char('%') && yyWord.at(1).isSpace()) { + sourcetext.reserve(sourcetext.length() + yyWord.length() - 2); ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length(); - int p = 1, c; + int p = 2, c; forever { if (p >= yyWord.length()) break; -- cgit v0.12 From 9fbece67bacee0f88261c3cd07c443fdf6385f81 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Thu, 29 Oct 2009 08:03:27 +1000 Subject: Remove QVGEGLWindowSurfaceQImage from QtOpenVG Rendering into a QImage as a window backing store isn't very efficient and isn't needed by any of our current platforms. If a specific graphics system needs it in the future, it can implement it directly. Reviewed-by: trustme --- src/openvg/qwindowsurface_vg.cpp | 4 +-- src/openvg/qwindowsurface_vgegl.cpp | 59 ------------------------------------- src/openvg/qwindowsurface_vgegl_p.h | 19 ------------ 3 files changed, 2 insertions(+), 80 deletions(-) diff --git a/src/openvg/qwindowsurface_vg.cpp b/src/openvg/qwindowsurface_vg.cpp index 661e06a..f8486a6 100644 --- a/src/openvg/qwindowsurface_vg.cpp +++ b/src/openvg/qwindowsurface_vg.cpp @@ -54,8 +54,8 @@ QT_BEGIN_NAMESPACE QVGWindowSurface::QVGWindowSurface(QWidget *window) : QWindowSurface(window) { - d_ptr = QVGEGLWindowSurfacePrivate::create - (QVGEGLWindowSurfacePrivate::WindowSurface, this); + // Create the default type of EGL window surface for windows. + d_ptr = new QVGEGLWindowSurfaceDirect(this); } QVGWindowSurface::QVGWindowSurface diff --git a/src/openvg/qwindowsurface_vgegl.cpp b/src/openvg/qwindowsurface_vgegl.cpp index d622c1f..103f84d 100644 --- a/src/openvg/qwindowsurface_vgegl.cpp +++ b/src/openvg/qwindowsurface_vgegl.cpp @@ -101,18 +101,6 @@ QImage::Format qt_vg_config_to_image_format(QEglContext *context) return argbFormat; // XXX } -static void copySubImage(QImage *image, VGImage vgImage, const QRect& rect) -{ - vgGetImageSubData - (vgImage, - image->bits() + rect.bottom() * image->bytesPerLine() + - rect.x() * (image->depth() / 8), - -(image->bytesPerLine()), - qt_vg_image_to_vg_format(image->format()), - rect.x(), (image->height() - 1) - rect.bottom(), - rect.width(), rect.height()); -} - #if !defined(QVG_NO_SINGLE_CONTEXT) class QVGSharedContext @@ -336,20 +324,6 @@ QVGEGLWindowSurfacePrivate::~QVGEGLWindowSurfacePrivate() destroyPaintEngine(); } -QVGEGLWindowSurfacePrivate *QVGEGLWindowSurfacePrivate::create - (SurfaceType type, QWindowSurface *win) -{ -#if defined(QVG_VGIMAGE_BACKBUFFERS) - if (type == VGImageSurface) - return new QVGEGLWindowSurfaceVGImage(win); - else if (type == QImageSurface) - return new QVGEGLWindowSurfaceQImage(win); -#endif - if (type == WindowSurface) - return new QVGEGLWindowSurfaceDirect(win); - return 0; -} - QVGPaintEngine *QVGEGLWindowSurfacePrivate::paintEngine() { if (!engine) @@ -514,39 +488,6 @@ EGLSurface QVGEGLWindowSurfaceVGImage::mainSurface() const return qt_vg_shared_surface(); } -QVGEGLWindowSurfaceQImage::QVGEGLWindowSurfaceQImage(QWindowSurface *win) - : QVGEGLWindowSurfaceVGImage(win) -{ -} - -QVGEGLWindowSurfaceQImage::~QVGEGLWindowSurfaceQImage() -{ -} - -void QVGEGLWindowSurfaceQImage::endPaint - (QWidget *widget, const QRegion& region, QImage *image) -{ - QEglContext *context = ensureContext(widget); - if (context) { - if (backBufferSurface != EGL_NO_SURFACE) { - if (isPaintingActive) - vgFlush(); - context->makeCurrent(mainSurface()); - QRegion rgn = region.intersected - (QRect(0, 0, image->width(), image->height())); - if (rgn.numRects() == 1) { - copySubImage(image, backBuffer, rgn.boundingRect()); - } else { - QVector rects = rgn.rects(); - for (int index = 0; index < rects.size(); ++index) - copySubImage(image, backBuffer, rects[index]); - } - context->lazyDoneCurrent(); - } - isPaintingActive = false; - } -} - #endif // QVG_VGIMAGE_BACKBUFFERS QVGEGLWindowSurfaceDirect::QVGEGLWindowSurfaceDirect(QWindowSurface *win) diff --git a/src/openvg/qwindowsurface_vgegl_p.h b/src/openvg/qwindowsurface_vgegl_p.h index fa36b94..7fa60ea 100644 --- a/src/openvg/qwindowsurface_vgegl_p.h +++ b/src/openvg/qwindowsurface_vgegl_p.h @@ -70,16 +70,6 @@ public: QVGEGLWindowSurfacePrivate(QWindowSurface *win); virtual ~QVGEGLWindowSurfacePrivate(); - enum SurfaceType - { - WindowSurface, - VGImageSurface, - QImageSurface - }; - - static QVGEGLWindowSurfacePrivate *create - (SurfaceType type, QWindowSurface *win); - QVGPaintEngine *paintEngine(); virtual QEglContext *ensureContext(QWidget *widget) = 0; virtual void beginPaint(QWidget *widget) = 0; @@ -126,15 +116,6 @@ protected: EGLSurface mainSurface() const; }; -class Q_OPENVG_EXPORT QVGEGLWindowSurfaceQImage : public QVGEGLWindowSurfaceVGImage -{ -public: - QVGEGLWindowSurfaceQImage(QWindowSurface *win); - virtual ~QVGEGLWindowSurfaceQImage(); - - void endPaint(QWidget *widget, const QRegion& region, QImage *image); -}; - #endif // EGL_OPENVG_IMAGE class Q_OPENVG_EXPORT QVGEGLWindowSurfaceDirect : public QVGEGLWindowSurfacePrivate -- cgit v0.12 From cabfa68f3e37e79a18775a9970f6d166e75ece07 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Thu, 29 Oct 2009 08:29:23 +1000 Subject: Remove shader/program binary support for now After API review discussions, it was decided to remove shader binary support until we have a better handle on what we need. Applications can directly load shader binaries on the shaderId() using glShaderBinary() directly so they aren't prevented from using the feature. Reviewed-by: trustme --- src/opengl/qglshaderprogram.cpp | 213 ---------------------------------------- src/opengl/qglshaderprogram.h | 9 -- 2 files changed, 222 deletions(-) diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp index d028522..90b496e 100644 --- a/src/opengl/qglshaderprogram.cpp +++ b/src/opengl/qglshaderprogram.cpp @@ -612,95 +612,6 @@ bool QGLShader::compileFile(const QString& fileName) } /*! - Sets the binary code for this shader to the \a length bytes from - the array \a binary. The \a format specifies how the binary data - should be interpreted by the OpenGL engine. Returns true if the - binary was set on the shader; false otherwise. - - This function cannot be used with PartialVertexShader or - PartialFragmentShader. - - If this function succeeds, then the shader will be considered compiled. - - \sa shaderBinaryFormats() -*/ -bool QGLShader::setShaderBinary(GLenum format, const void *binary, int length) -{ - Q_D(QGLShader); -#if !defined(QT_OPENGL_ES_2) - if (!glShaderBinary) - return false; -#endif - GLuint shader = d->shaderGuard.id(); - if (d->isPartial || !shader) - return false; - glGetError(); // Clear error state. - glShaderBinary(1, &shader, format, binary, length); - d->compiled = (glGetError() == GL_NO_ERROR); - return d->compiled; -} - -/*! - Sets the binary code for this shader to the \a length bytes from - the array \a binary. The \a format specifies how the binary data - should be interpreted by the OpenGL engine. Returns true if the - binary was set on the shader; false otherwise. - - The \a otherShader will also have binary code set on it. This is - for the case where \a binary contains both vertex and fragment - shader code. - - This function cannot be used with PartialVertexShader or - PartialFragmentShader. - - If this function succeeds, then the shader will be considered compiled. - - \sa shaderBinaryFormats() -*/ -bool QGLShader::setShaderBinary - (QGLShader& otherShader, GLenum format, const void *binary, int length) -{ - Q_D(QGLShader); -#if !defined(QT_OPENGL_ES_2) - if (!glShaderBinary) - return false; -#endif - if (d->isPartial || !d->shaderGuard.id()) - return false; - if (otherShader.d_func()->isPartial || !otherShader.d_func()->shaderGuard.id()) - return false; - glGetError(); // Clear error state. - GLuint shaders[2]; - shaders[0] = d->shaderGuard.id(); - shaders[1] = otherShader.d_func()->shaderGuard.id(); - glShaderBinary(2, shaders, format, binary, length); - d->compiled = (glGetError() == GL_NO_ERROR); - otherShader.d_func()->compiled = d->compiled; - return d->compiled; -} - -/*! - Returns a list of all binary formats that are supported by - setShaderBinary() on this system. - - \sa setShaderBinary() -*/ -QList QGLShader::shaderBinaryFormats() -{ - GLint num; - QList list; - glGetError(); // Clear error state. - glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &num); - if (glGetError() != GL_NO_ERROR || num <= 0) - return list; - QVarLengthArray formats(num); - glGetIntegerv(GL_SHADER_BINARY_FORMATS, formats.data()); - for (GLint i = 0; i < num; ++i) - list += (GLenum)(formats[i]); - return list; -} - -/*! Returns the source code for this shader. \sa compile() @@ -1068,130 +979,6 @@ void QGLShaderProgram::removeAllShaders() d->removingShaders = false; } -#if defined(QT_OPENGL_ES_2) - -#ifndef GL_PROGRAM_BINARY_LENGTH_OES -#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 -#endif -#ifndef GL_NUM_PROGRAM_BINARY_FORMATS_OES -#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE -#endif -#ifndef GL_PROGRAM_BINARY_FORMATS_OES -#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF -#endif - -#endif - -/*! - Returns the program binary associated with this shader program. - The numeric identifier of the program binary format is returned - in \a format. The \c OES_get_program_binary extension will need - to be supported by the system for binary retrieval to succeed. - - Returns an empty QByteArray if the program binary cannot be - retrieved on this system, or the shader program has not yet - been linked. - - The returned binary can be supplied to setProgramBinary() on the - same machine at some future point to reload the program. It contains - the compiled code of all of the shaders that were attached to the - program at the time programBinary() is called. - - \sa setProgramBinary(), programBinaryFormats() -*/ -QByteArray QGLShaderProgram::programBinary(int *format) const -{ -#if defined(QT_OPENGL_ES_2) - Q_D(const QGLShaderProgram); - if (!isLinked()) - return QByteArray(); - - // Get the length of the binary data, bailing out if there is none. - GLint length = 0; - GLuint program = d->programGuard.id(); - glGetProgramiv(program, GL_PROGRAM_BINARY_LENGTH_OES, &length); - if (length <= 0) - return QByteArray(); - - // Retrieve the binary data. - QByteArray binary(length, 0); - GLenum binaryFormat; - glGetProgramBinaryOES(program, length, 0, &binaryFormat, binary.data()); - if (format) - *format = (int)binaryFormat; - return binary; -#else - Q_UNUSED(format); - return QByteArray(); -#endif -} - -/*! - Sets the \a binary for this shader program according to \a format. - Returns true if the binary was set, or false if the binary format - is not supported or this system does not support program binaries. - The program will be linked if the load succeeds. - - \sa programBinary(), programBinaryFormats(), isLinked() -*/ -bool QGLShaderProgram::setProgramBinary(int format, const QByteArray& binary) -{ -#if defined(QT_OPENGL_ES_2) - // Load the binary and check that it was linked correctly. - Q_D(QGLShaderProgram); - GLuint program = d->programGuard.id(); - if (!program) - return false; - glProgramBinaryOES(program, (GLenum)format, - binary.constData(), binary.size()); - GLint value = 0; - glGetProgramiv(program, GL_LINK_STATUS, &value); - d->linked = (value != 0); - value = 0; - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &value); - d->log = QString(); - if (value > 1) { - char *logbuf = new char [value]; - GLint len; - glGetProgramInfoLog(program, value, &len, logbuf); - d->log = QString::fromLatin1(logbuf); - QString name = objectName(); - if (name.isEmpty()) - qWarning() << "QGLShader::setProgramBinary:" << d->log; - else - qWarning() << "QGLShader::setProgramBinary[" << name << "]:" << d->log; - delete [] logbuf; - } - return d->linked; -#else - Q_UNUSED(format); - Q_UNUSED(binary); - return false; -#endif -} - -/*! - Returns the list of program binary formats that are accepted by - this system for use with setProgramBinary(). - - \sa programBinary(), setProgramBinary() -*/ -QList QGLShaderProgram::programBinaryFormats() -{ -#if defined(QT_OPENGL_ES_2) - GLint count = 0; - glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS_OES, &count); - if (count <= 0) - return QList(); - QVector list; - list.resize(count); - glGetIntegerv(GL_PROGRAM_BINARY_FORMATS_OES, list.data()); - return list.toList(); -#else - return QList(); -#endif -} - /*! Links together the shaders that were added to this program with addShader(). Returns true if the link was successful or diff --git a/src/opengl/qglshaderprogram.h b/src/opengl/qglshaderprogram.h index d8b9a0c..708cf09 100644 --- a/src/opengl/qglshaderprogram.h +++ b/src/opengl/qglshaderprogram.h @@ -88,11 +88,6 @@ public: bool compile(const QString& source); bool compileFile(const QString& fileName); - bool setShaderBinary(GLenum format, const void *binary, int length); - bool setShaderBinary(QGLShader& otherShader, GLenum format, const void *binary, int length); - - static QList shaderBinaryFormats(); - QByteArray sourceCode() const; bool isCompiled() const; @@ -133,10 +128,6 @@ public: void removeAllShaders(); - QByteArray programBinary(int *format) const; - bool setProgramBinary(int format, const QByteArray& binary); - static QList programBinaryFormats(); - virtual bool link(); bool isLinked() const; QString log() const; -- cgit v0.12 From 6c548e21f48b07d55187952ff21cbbc23fdd3927 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 29 Oct 2009 09:03:06 +1000 Subject: Update viewport size when items are added/removed/resized. --- examples/declarative/listview/dynamic.qml | 22 ++++++++++++++++++++++ src/declarative/fx/qfxlistview.cpp | 16 ++++++++++++---- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/examples/declarative/listview/dynamic.qml b/examples/declarative/listview/dynamic.qml index 78346f3..2607527 100644 --- a/examples/declarative/listview/dynamic.qml +++ b/examples/declarative/listview/dynamic.qml @@ -1,5 +1,6 @@ import Qt 4.6 import "content" +import "../scrollbar" Rectangle { width: 640; height: 480 @@ -99,10 +100,31 @@ Rectangle { } ListView { + id: view model: fruitModel; delegate: fruitDelegate anchors { top: parent.top; left: parent.left; right: parent.right; bottom: buttons.top } } + // Attach scrollbar to the right edge of the view. + ScrollBar { + id: verticalScrollBar + opacity: 0 + orientation: "Vertical" + position: view.visibleArea.yPosition + pageSize: view.visibleArea.heightRatio + width: 8 + height: view.height + anchors.right: view.right + // Only show the scrollbar when the view is moving. + states: [ + State { + name: "ShowBars"; when: view.moving + PropertyChanges { target: verticalScrollBar; opacity: 1 } + } + ] + transitions: [ Transition { NumberAnimation { properties: "opacity"; duration: 400 } } ] + } + Row { x: 8; width: childrenRect.width height: childrenRect.height diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 15680e1..f9ae0c0 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -343,6 +343,15 @@ public: return true; } + void updateViewport() { + Q_Q(QFxListView); + if (orient == QFxListView::Vertical) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } + + // for debugging only void checkVisible() const { int skip = 0; @@ -553,10 +562,7 @@ void QFxListViewPrivate::refill(qreal from, qreal to) updateAverage(); if (!sectionExpression.isEmpty()) updateCurrentSection(); - if (orient == QFxListView::Vertical) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); + updateViewport(); } } @@ -581,6 +587,7 @@ void QFxListViewPrivate::layout() updateHighlight(); fixupPosition(); updateUnrequestedPositions(); + updateViewport(); } void QFxListViewPrivate::updateUnrequestedIndexes() @@ -1804,6 +1811,7 @@ void QFxListView::itemsInserted(int modelIndex, int count) for (int j = 0; j < added.count(); ++j) added.at(j)->attached->emitAdd(); d->updateUnrequestedPositions(); + d->updateViewport(); emit countChanged(); } -- cgit v0.12 From 526fdcafdba2b2984924b09b68c473b5160443a1 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 28 Oct 2009 10:19:24 +1000 Subject: Change all valid Task-Tracker references to bugreports.qt.nokia.com reference. --- tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp | 2 +- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 2 +- tests/auto/qsound/tst_qsound.cpp | 2 +- tests/auto/qwidget/tst_qwidget.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp b/tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp index 002aeb7..dedc0cb 100644 --- a/tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp +++ b/tests/auto/qdatawidgetmapper/tst_qdatawidgetmapper.cpp @@ -379,7 +379,7 @@ void tst_QDataWidgetMapper::comboBox() model->setData(model->index(0, 1), QString("read write item z"), Qt::EditRole); QCOMPARE(readOnlyBox.currentIndex(), 2); - QEXPECT_FAIL("", "See tasks 125493 and 147153", Abort); + QEXPECT_FAIL("", "See task 125493 and QTBUG-428", Abort); QCOMPARE(readWriteBox.currentText(), QString("read write item z")); } diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index dc08d0e..9b5e114 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -3735,7 +3735,7 @@ void tst_QGraphicsView::task259503_scrollingArtifacts() { // qDebug() << event->region(); // qDebug() << updateRegion; - QEXPECT_FAIL("", "The event region doesn't include the original item position region. See task #259503.", Continue); + QEXPECT_FAIL("", "The event region doesn't include the original item position region. See QTBUG-4416", Continue); QCOMPARE(event->region(), updateRegion); } } diff --git a/tests/auto/qsound/tst_qsound.cpp b/tests/auto/qsound/tst_qsound.cpp index fdbf6a2..56a330b 100644 --- a/tests/auto/qsound/tst_qsound.cpp +++ b/tests/auto/qsound/tst_qsound.cpp @@ -66,7 +66,7 @@ void tst_QSound::checkFinished() QTest::qWait(5000); #if defined(Q_WS_QWS) - QEXPECT_FAIL("", "QSound buggy on embedded (task 122221)", Abort); + QEXPECT_FAIL("", "QSound buggy on embedded (task QTBUG-157)", Abort); #endif QVERIFY(sound.isFinished() ); } diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 050d1c5..5630370 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -2982,7 +2982,7 @@ void tst_QWidget::stackUnder() qApp->processEvents(); #endif #ifndef Q_WS_MAC - QEXPECT_FAIL(0, "Task 153869", Continue); + QEXPECT_FAIL(0, "See QTBUG-493", Continue); #endif QCOMPARE(child->numPaintEvents, 0); } else { -- cgit v0.12 From f425c08d4f2e7f061a0ee8e4a1eee2b17fa64962 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 13:20:50 +1000 Subject: doc typo --- doc/src/frameworks-technologies/eventsandfilters.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/frameworks-technologies/eventsandfilters.qdoc b/doc/src/frameworks-technologies/eventsandfilters.qdoc index c769884..52d596a 100644 --- a/doc/src/frameworks-technologies/eventsandfilters.qdoc +++ b/doc/src/frameworks-technologies/eventsandfilters.qdoc @@ -215,7 +215,7 @@ \l{QCoreApplication::}{postEvent()} posts the event on a queue for later dispatch. The next time Qt's main event loop runs, it dispatches all posted events, with some optimization. For example, if there are - several resize events, they are are compressed into one. The same + several resize events, they are compressed into one. The same applies to paint events: QWidget::update() calls \l{QCoreApplication::}{postEvent()}, which eliminates flickering and increases speed by avoiding multiple repaints. -- cgit v0.12 From e8bc4cebe9963a8a4534a5febbd606a6e4d6a332 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 29 Oct 2009 13:32:18 +1000 Subject: Simple compiler statistics --- src/declarative/qml/qmlcompiler.cpp | 31 +++++++++++++++++++++++++++++++ src/declarative/qml/qmlcompiler_p.h | 18 ++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 7a417bb..8f3d6a2 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -76,6 +76,7 @@ QT_BEGIN_NAMESPACE DEFINE_BOOL_CONFIG_OPTION(compilerDump, QML_COMPILER_DUMP); +DEFINE_BOOL_CONFIG_OPTION(compilerStatDump, QML_COMPILER_STATISTICS_DUMP); using namespace QmlParser; @@ -613,6 +614,8 @@ bool QmlCompiler::compile(QmlEngine *engine, if (!isError()) { if (compilerDump()) out->dumpInstructions(); + if (compilerStatDump()) + dumpStats(); } else { reset(out); } @@ -664,6 +667,8 @@ void QmlCompiler::compileTree(Object *tree) bool QmlCompiler::buildObject(Object *obj, const BindingContext &ctxt) { + componentStat.objects++; + Q_ASSERT (obj->type != -1); const QmlCompiledData::TypeReference &tr = output->types.at(obj->type); @@ -1148,15 +1153,21 @@ bool QmlCompiler::buildComponentFromRoot(QmlParser::Object *obj, const BindingContext &ctxt) { ComponentCompileState oldComponentCompileState = compileState; + ComponentStat oldComponentStat = componentStat; + compileState = ComponentCompileState(); compileState.root = obj; + componentStat = ComponentStat(); + componentStat.lineNumber = obj->location.start.line; + if (obj) COMPILE_CHECK(buildObject(obj, ctxt)); COMPILE_CHECK(completeComponentBuild()); compileState = oldComponentCompileState; + componentStat = oldComponentStat; return true; } @@ -1646,6 +1657,7 @@ void QmlCompiler::saveComponentState() Q_ASSERT(!savedCompileStates.contains(compileState.root)); savedCompileStates.insert(compileState.root, compileState); + savedComponentStats.append(componentStat); } QmlCompiler::ComponentCompileState @@ -2454,6 +2466,8 @@ int QmlCompiler::genContextCache() bool QmlCompiler::completeComponentBuild() { + componentStat.ids = compileState.ids.count(); + for (int ii = 0; ii < compileState.aliasingObjects.count(); ++ii) { Object *aliasObject = compileState.aliasingObjects.at(ii); COMPILE_CHECK(buildDynamicMeta(aliasObject, ResolveAliases)); @@ -2478,6 +2492,8 @@ bool QmlCompiler::completeComponentBuild() QByteArray(bs.compileData(), bs.compileDataSize()); type = QmlExpressionPrivate::BasicScriptEngineData; binding.isBasicScript = true; + + componentStat.optimizedBindings++; } else { type = QmlExpressionPrivate::PreTransformedQtScriptData; @@ -2495,6 +2511,8 @@ bool QmlCompiler::completeComponentBuild() QByteArray((const char *)expression.constData(), expression.length() * sizeof(QChar)); binding.isBasicScript = false; + + componentStat.scriptBindings++; } binding.compiledData.prepend(QByteArray((const char *)&type, sizeof(quint32))); @@ -2505,6 +2523,19 @@ bool QmlCompiler::completeComponentBuild() return true; } +void QmlCompiler::dumpStats() +{ + qWarning().nospace() << "QML Document: " << output->url.toString(); + for (int ii = 0; ii < savedComponentStats.count(); ++ii) { + const ComponentStat &stat = savedComponentStats.at(ii); + qWarning().nospace() << " Component Line " << stat.lineNumber; + qWarning().nospace() << " Total Objects: " << stat.objects; + qWarning().nospace() << " IDs Used: " << stat.ids; + qWarning().nospace() << " Optimized Bindings: " << stat.optimizedBindings; + qWarning().nospace() << " QScript Bindings: " << stat.scriptBindings; + } +} + /*! Returns true if from can be assigned to a (QObject) property of type to. diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h index 8a9ca9c..6050c20 100644 --- a/src/declarative/qml/qmlcompiler_p.h +++ b/src/declarative/qml/qmlcompiler_p.h @@ -255,6 +255,8 @@ private: void addId(const QString &, QmlParser::Object *); + void dumpStats(); + struct BindingReference { QmlParser::Variant expression; QmlParser::Property *property; @@ -280,9 +282,25 @@ private: }; ComponentCompileState compileState; + struct ComponentStat + { + ComponentStat() + : ids(0), scriptBindings(0), optimizedBindings(0), objects(0) {} + + int lineNumber; + + int ids; + int scriptBindings; + int optimizedBindings; + int objects; + }; + ComponentStat componentStat; + void saveComponentState(); + ComponentCompileState componentState(QmlParser::Object *); QHash savedCompileStates; + QList savedComponentStats; QList exceptions; QmlCompiledData *output; -- cgit v0.12 From e5e62799cde71e9b3142dc798f138b99d9890f18 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 13:32:27 +1000 Subject: fix merge duplication --- src/gui/math3d/qvector3d.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/math3d/qvector3d.cpp b/src/gui/math3d/qvector3d.cpp index e17cbdf..9552e3a 100644 --- a/src/gui/math3d/qvector3d.cpp +++ b/src/gui/math3d/qvector3d.cpp @@ -45,7 +45,6 @@ #include #include #include -#include QT_BEGIN_NAMESPACE -- cgit v0.12 From c0a13ae7fd61dcd7a56e068ca6bb7bf44400bbeb Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 29 Oct 2009 13:57:51 +1000 Subject: Avoid unnecessary viewport scrolling when bringing currentItem into view. Task-number: QT-2399 --- src/declarative/fx/qfxlistview.cpp | 29 +++++++++++++++-------- tests/auto/declarative/listview/data/listview.qml | 1 + 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index f9ae0c0..18c3062 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -1679,37 +1679,46 @@ void QFxListView::trackedPositionChanged() return; if (!isFlicking() && !d->moving && d->moveReason != QFxListViewPrivate::Mouse) { const qreal trackedPos = d->trackedItem->position(); + const qreal viewPos = d->position(); if (d->haveHighlightRange) { if (d->highlightRange == StrictlyEnforceRange) { - qreal pos = d->position(); + qreal pos = viewPos; if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size()) pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); if (trackedPos < pos + d->highlightRangeStart) pos = trackedPos - d->highlightRangeStart; d->setPosition(pos); } else { - qreal pos = d->position(); + qreal pos = viewPos; if (trackedPos < d->startPosition() + d->highlightRangeStart) { pos = d->startPosition(); } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) { pos = d->endPosition() - d->size(); } else { - if (trackedPos < d->position() + d->highlightRangeStart) { + if (trackedPos < viewPos + d->highlightRangeStart) { pos = trackedPos - d->highlightRangeStart; - } else if (trackedPos > d->position() + d->highlightRangeEnd - d->trackedItem->size()) { + } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) { pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); } } d->setPosition(pos); } } else { - if (trackedPos < d->position()) { - d->setPosition(trackedPos); + if (trackedPos < viewPos && d->currentItem->position() < viewPos) { + d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position()); d->fixupPosition(); - } else if (d->trackedItem->endPosition() > d->position() + d->size()) { - qreal pos = d->trackedItem->endPosition() - d->size(); - if (d->trackedItem->size() > d->size()) - pos = trackedPos; + } else if (d->trackedItem->endPosition() > viewPos + d->size() + && d->currentItem->endPosition() > viewPos + d->size()) { + qreal pos; + if (d->trackedItem->endPosition() < d->currentItem->endPosition()) { + pos = d->trackedItem->endPosition() - d->size(); + if (d->trackedItem->size() > d->size()) + pos = trackedPos; + } else { + pos = d->currentItem->endPosition() - d->size(); + if (d->currentItem->size() > d->size()) + pos = d->currentItem->position(); + } d->setPosition(pos); d->fixupPosition(); } diff --git a/tests/auto/declarative/listview/data/listview.qml b/tests/auto/declarative/listview/data/listview.qml index 5083329..9039b55 100644 --- a/tests/auto/declarative/listview/data/listview.qml +++ b/tests/auto/declarative/listview/data/listview.qml @@ -31,6 +31,7 @@ Rectangle { x: 200 text: wrapper.y } + color: ListView.isCurrentItem ? "lightsteelblue" : "white" } } ] -- cgit v0.12 From 220eea1b5a978cf62e27878e7d9b2e1f4d10e91e Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 29 Oct 2009 13:52:36 +1000 Subject: Merge QmlComponentJS into QmlComponent createComponent() and Component{} are now the same, and so Component{}s can now be passed around for use in script. Also this commit fixes the minor bug QT-2386 --- examples/declarative/dynamic/dynamic.qml | 2 +- src/declarative/qml/qml.pri | 3 - src/declarative/qml/qmlcomponent.cpp | 48 +++++++++++ src/declarative/qml/qmlcomponent.h | 8 ++ src/declarative/qml/qmlcomponent_p.h | 3 +- src/declarative/qml/qmlcomponentjs.cpp | 131 ------------------------------- src/declarative/qml/qmlcomponentjs_p.h | 98 ----------------------- src/declarative/qml/qmlcomponentjs_p_p.h | 77 ------------------ src/declarative/qml/qmlengine.cpp | 18 +++-- 9 files changed, 69 insertions(+), 319 deletions(-) delete mode 100644 src/declarative/qml/qmlcomponentjs.cpp delete mode 100644 src/declarative/qml/qmlcomponentjs_p.h delete mode 100644 src/declarative/qml/qmlcomponentjs_p_p.h diff --git a/examples/declarative/dynamic/dynamic.qml b/examples/declarative/dynamic/dynamic.qml index ea4e0cd..9bfab0e 100644 --- a/examples/declarative/dynamic/dynamic.qml +++ b/examples/declarative/dynamic/dynamic.qml @@ -108,7 +108,7 @@ Item { } Button { text: "Create" - onClicked: {var obj=createQmlObject(qmlText.text, window, 'CustomObject'); obj.parent=window;} + onClicked: createQmlObject(qmlText.text, window, 'CustomObject'); } } } diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 6c00beb..4c02f95 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -5,7 +5,6 @@ SOURCES += qml/qmlparser.cpp \ qml/qmlexpression.cpp \ qml/qmlbinding.cpp \ qml/qmlmetaproperty.cpp \ - qml/qmlcomponentjs.cpp \ qml/qmlcomponent.cpp \ qml/qmlcontext.cpp \ qml/qmlcustomparser.cpp \ @@ -56,8 +55,6 @@ HEADERS += qml/qmlparser_p.h \ qml/qmlbinding.h \ qml/qmlbinding_p.h \ qml/qmlmetaproperty.h \ - qml/qmlcomponentjs_p.h \ - qml/qmlcomponentjs_p_p.h \ qml/qmlcomponent.h \ qml/qmlcomponent_p.h \ qml/qmlcustomparser_p.h \ diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index 6181f41..72ead87 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -409,6 +409,9 @@ valid for components created directly from QML. */ QmlContext *QmlComponent::creationContext() const { + Q_D(const QmlComponent); + if(d->creationContext) + return d->creationContext; QmlDeclarativeData *ddata = QmlDeclarativeData::get(this); if (ddata) return ddata->context; @@ -417,6 +420,17 @@ QmlContext *QmlComponent::creationContext() const } /*! + \internal + Sets the QmlContext the component was created in. This is only + desirable for components created in QML script. +*/ +void QmlComponent::setCreationContext(QmlContext* c) +{ + Q_D(QmlComponent); + d->creationContext = c; +} + +/*! Load the QmlComponent from the provided \a url. */ void QmlComponent::loadUrl(const QUrl &url) @@ -462,6 +476,24 @@ QList QmlComponent::errors() const } /*! + \internal + errorsString is only meant as a way to get the errors in script +*/ +QString QmlComponent::errorsString() const +{ + Q_D(const QmlComponent); + QString ret; + if(!isError()) + return ret; + foreach(const QmlError &e, d->errors) { + ret += e.url().toString() + QLatin1String(":") + + QString::number(e.line()) + QLatin1String(" ") + + e.description() + QLatin1String("\n"); + } + return ret; +} + +/*! Return the component URL. This is the URL passed to either the constructor, or the loadUrl() or setData() methods. */ @@ -481,6 +513,22 @@ QmlComponent::QmlComponent(QmlComponentPrivate &dd, QObject *parent) /*! + \internal + A version of create which returns a scriptObject, for use in script +*/ +QScriptValue QmlComponent::createObject() +{ + Q_D(QmlComponent); + QmlContext* ctxt = creationContext(); + if(!ctxt){ + qWarning() << QLatin1String("createObject can only be used in QML"); + return QScriptValue(); + } + QObject* ret = create(ctxt); + return QmlEnginePrivate::qmlScriptObject(ret, d->engine); +} + +/*! Create an object instance from this component. Returns 0 if creation failed. \a context specifies the context within which to create the object instance. diff --git a/src/declarative/qml/qmlcomponent.h b/src/declarative/qml/qmlcomponent.h index a72aa4e..382b335 100644 --- a/src/declarative/qml/qmlcomponent.h +++ b/src/declarative/qml/qmlcomponent.h @@ -64,6 +64,10 @@ class Q_DECLARATIVE_EXPORT QmlComponent : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QmlComponent) + Q_PROPERTY(bool isNull READ isNull NOTIFY statusChanged) + Q_PROPERTY(bool isReady READ isReady NOTIFY statusChanged) + Q_PROPERTY(bool isError READ isError NOTIFY statusChanged) + Q_PROPERTY(bool isLoading READ isLoading NOTIFY statusChanged) public: QmlComponent(QObject *parent = 0); @@ -84,6 +88,7 @@ public: bool isLoading() const; QList errors() const; + Q_INVOKABLE QString errorsString() const; qreal progress() const; @@ -93,9 +98,12 @@ public: virtual QObject *beginCreate(QmlContext *); virtual void completeCreate(); + Q_INVOKABLE QScriptValue createObject(); + void loadUrl(const QUrl &url); void setData(const QByteArray &, const QUrl &baseUrl); + void setCreationContext(QmlContext*); QmlContext *creationContext() const; static QmlComponentAttached *qmlAttachedProperties(QObject *); diff --git a/src/declarative/qml/qmlcomponent_p.h b/src/declarative/qml/qmlcomponent_p.h index f90502f..cd886d5 100644 --- a/src/declarative/qml/qmlcomponent_p.h +++ b/src/declarative/qml/qmlcomponent_p.h @@ -76,7 +76,7 @@ class QmlComponentPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QmlComponent) public: - QmlComponentPrivate() : typeData(0), progress(0.), start(-1), count(-1), cc(0), componentAttacheds(0), completePending(false), engine(0) {} + QmlComponentPrivate() : typeData(0), progress(0.), start(-1), count(-1), cc(0), componentAttacheds(0), completePending(false), engine(0), creationContext(0) {} QObject *create(QmlContext *context, const QBitField &); @@ -104,6 +104,7 @@ public: bool completePending; QmlEngine *engine; + QmlContext *creationContext; void clear(); diff --git a/src/declarative/qml/qmlcomponentjs.cpp b/src/declarative/qml/qmlcomponentjs.cpp deleted file mode 100644 index df3e834..0000000 --- a/src/declarative/qml/qmlcomponentjs.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlcomponentjs_p.h" -#include "qmlcomponentjs_p_p.h" -#include "qmlengine_p.h" -#include "qmlcomponent.h" - -QT_BEGIN_NAMESPACE - -QmlComponentJS::QmlComponentJS(QmlEngine *engine, QObject *parent) - : QmlComponent(*(new QmlComponentJSPrivate), parent) -{ - Q_D(QmlComponentJS); - d->engine = engine; - connect(this, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(statusChange(QmlComponent::Status))); -} - -QmlComponentJS::QmlComponentJS(QmlEngine *engine, const QUrl &url, QObject *parent) - : QmlComponent(*(new QmlComponentJSPrivate), parent) -{ - Q_D(QmlComponentJS); - d->engine = engine; - loadUrl(url); - connect(this, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(statusChange(QmlComponent::Status))); -} - -void QmlComponentJS::setContext(QmlContext* c) -{ - Q_D(QmlComponentJS); - d->ctxt =c; -} -/*! - Create a script object instance from this component. Returns a null - script object if creation failed. It will create the instance in the - same context that it was created it. QmlComponentJS is only - meant to be created from with script - C++ developers should just use - QmlComponent directly. - - Similar to QmlComponent::create(), but creates an object suitable - for usage within scripts. -*/ -QScriptValue QmlComponentJS::createObject() -{ - Q_D(QmlComponentJS); - QObject* ret = create(d->ctxt); - return QmlEnginePrivate::qmlScriptObject(ret, d->engine); -} - -/*! - Return the list of errors that occured during the last compile or create - operation, as a single string. An empty string is returned if isError() - is not set. - - This function is similar to errors(), except more useful when called from - QML. C++ code should usually use errors(). - - \sa errors() -*/ -QString QmlComponentJS::errorsString() const -{ - Q_D(const QmlComponentJS); - QString ret; - if(!isError()) - return ret; - foreach(const QmlError &e, d->errors) { - ret += e.url().toString() + QLatin1String(":") + - QString::number(e.line()) + QLatin1String(" ") + - e.description() + QLatin1String("\n"); - } - return ret; -} - - -void QmlComponentJS::statusChange(QmlComponent::Status newStatus) -{ - Q_D(QmlComponentJS); - if(newStatus == d->prevStatus) - return; - if(newStatus == QmlComponent::Null || d->prevStatus == QmlComponent::Null) - emit isNullChanged(); - if(newStatus == QmlComponent::Ready || d->prevStatus == QmlComponent::Ready) - emit isReadyChanged(); - if(newStatus == QmlComponent::Loading || d->prevStatus == QmlComponent::Loading) - emit isLoadingChanged(); - if(newStatus == QmlComponent::Error || d->prevStatus == QmlComponent::Error) - emit isErrorChanged(); - d->prevStatus = newStatus; -} - -QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlcomponentjs_p.h b/src/declarative/qml/qmlcomponentjs_p.h deleted file mode 100644 index 3213929..0000000 --- a/src/declarative/qml/qmlcomponentjs_p.h +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLCOMPONENTJS_P_H -#define QMLCOMPONENTJS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlComponentJSPrivate; -class QmlEngine; -class QmlContext; -class Q_DECLARATIVE_EXPORT QmlComponentJS : public QmlComponent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlComponentJS) - Q_PROPERTY(bool isNull READ isNull NOTIFY isNullChanged) - Q_PROPERTY(bool isReady READ isReady NOTIFY isReadyChanged) - Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged) - Q_PROPERTY(bool isLoading READ isLoading NOTIFY isLoadingChanged) - friend class QmlEngine; -public: - QmlComponentJS(QmlEngine *, const QUrl &url, QObject *parent = 0); - QmlComponentJS(QmlEngine *, QObject *parent=0); - - Q_INVOKABLE QScriptValue createObject(); - Q_INVOKABLE QString errorsString() const; - - void setContext(QmlContext* c); -Q_SIGNALS: - void isNullChanged(); - void isErrorChanged(); - void isReadyChanged(); - void isLoadingChanged(); -private Q_SLOTS: - void statusChange(QmlComponent::Status newStatus); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlComponentJS) - -#endif // QMLCOMPONENTJS_P_H diff --git a/src/declarative/qml/qmlcomponentjs_p_p.h b/src/declarative/qml/qmlcomponentjs_p_p.h deleted file mode 100644 index 47ce491..0000000 --- a/src/declarative/qml/qmlcomponentjs_p_p.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLCOMPONENTJS_P_P_H -#define QMLCOMPONENTJS_P_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlcomponent.h" -#include "qmlcomponentjs_p.h" -#include "qmlcomponent_p.h" - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlComponentJSPrivate : public QmlComponentPrivate -{ - Q_DECLARE_PUBLIC(QmlComponentJS) -public: - QmlComponentJSPrivate() : QmlComponentPrivate(), - prevStatus(QmlComponentJS::Null), ctxt(0) - { } - - QmlComponent::Status prevStatus; - QmlContext* ctxt; -}; - -QT_END_NAMESPACE - -#endif // QMLCOMPONENTJS_P_P_H diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 3da8aa9..84186d4 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -75,8 +75,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -651,7 +651,7 @@ QmlContext *QmlEnginePrivate::getContext(QScriptContext *ctxt) QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, QScriptEngine *engine) { - QmlComponentJS* c; + QmlComponent* c; QmlEnginePrivate *activeEnginePriv = static_cast(engine)->p; @@ -659,14 +659,14 @@ QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, QmlContext* context = activeEnginePriv->getContext(ctxt); if(ctxt->argumentCount() != 1) { - c = new QmlComponentJS(activeEngine); + c = new QmlComponent(activeEngine); }else{ QUrl url = QUrl(context->resolvedUrl(ctxt->argument(0).toString())); if(!url.isValid()) url = QUrl(ctxt->argument(0).toString()); - c = new QmlComponentJS(activeEngine, url, activeEngine); + c = new QmlComponent(activeEngine, url, activeEngine); } - c->setContext(context); + c->setCreationContext(context); return engine->newQObject(c); } @@ -708,8 +708,6 @@ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngi QUrl url; if(ctxt->argumentCount() > 2) url = QUrl(ctxt->argument(2).toString()); - else - url = QUrl(QLatin1String("DynamicQML")); QObject *parentArg = activeEnginePriv->objectClass->toQObject(ctxt->argument(1)); QmlContext *qmlCtxt = qmlContext(parentArg); if (url.isEmpty()) { @@ -719,6 +717,7 @@ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngi } QmlComponent component(activeEngine, qml.toUtf8(), url); + if(component.isError()) { QList errors = component.errors(); qWarning() <<"QmlEngine::createQmlObject():"; @@ -741,7 +740,10 @@ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngi if(obj) { obj->setParent(parentArg); - obj->setProperty("parent", QVariant::fromValue(parentArg)); + QGraphicsObject* gobj = qobject_cast(obj); + QGraphicsObject* gparent = qobject_cast(parentArg); + if(gobj && gparent) + gobj->setParentItem(gparent); return qmlScriptObject(obj, activeEngine); } return engine->nullValue(); -- cgit v0.12 From e532322a7bb58f6b2527fa42063b5bccde318105 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 29 Oct 2009 14:08:18 +1000 Subject: Remove duplicated doc global object functions are now in globalobject.qdoc --- src/declarative/qml/qmlengine.cpp | 78 --------------------------------------- 1 file changed, 78 deletions(-) diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 84186d4..9d69f94 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -595,59 +595,6 @@ QmlContext *QmlEnginePrivate::getContext(QScriptContext *ctxt) return contextClass->contextFromValue(scopeNode); } -/*! - This function is intended for use inside QML only. In C++ just create a - component object as usual. - - This function takes the URL of a QML file as its only argument. It returns - a component object which can be used to create and load that QML file. - - Example QmlJS is below, remember that QML files that might be loaded - over the network cannot be expected to be ready immediately. - \code - var component; - var sprite; - function finishCreation(){ - if(component.isReady()){ - sprite = component.createObject(); - if(sprite == 0){ - // Error Handling - }else{ - sprite.parent = page; - sprite.x = 200; - //... - } - }else if(component.isError()){ - // Error Handling - } - } - - component = createComponent("Sprite.qml"); - if(component.isReady()){ - finishCreation(); - }else{ - component.statusChanged.connect(finishCreation); - } - \endcode - - If you are certain the files will be local, you could simplify to - - \code - component = createComponent("Sprite.qml"); - sprite = component.createObject(); - if(sprite == 0){ - // Error Handling - print(component.errorsString()); - }else{ - sprite.parent = page; - sprite.x = 200; - //... - } - \endcode - - If you want to just create an arbitrary string of QML, instead of - loading a qml file, consider the createQmlObject() function. -*/ QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, QScriptEngine *engine) { @@ -670,31 +617,6 @@ QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, return engine->newQObject(c); } -/*! - Creates a new object from the specified string of QML. It requires a - second argument, which is the id of an existing QML object to use as - the new object's parent. If a third argument is provided, this is used - as the filepath that the qml came from. - - Example (where targetItem is the id of an existing QML item): - \code - newObject = createQmlObject('import Qt 4.6; Rectangle {color: "red"; width: 20; height: 20}', - targetItem, "dynamicSnippet1"); - \endcode - - This function is intended for use inside QML only. It is intended to behave - similarly to eval, but for creating QML elements. - - Returns the created object, or null if there is an error. In the case of an - error, details of the error are output using qWarning(). - - Note that this function returns immediately, and therefore may not work if - the QML loads new components. If you are trying to load a new component, - for example from a QML file, consider the createComponent() function - instead. 'New components' refers to external QML files that have not yet - been loaded, and so it is safe to use createQmlObject to load built-in - components. -*/ QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine) { QmlEnginePrivate *activeEnginePriv = -- cgit v0.12 From 6c3b7fb91fe512479f7321eb4d3f577cb8bbd1a7 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 29 Oct 2009 15:01:10 +1000 Subject: Doc --- doc/src/declarative/globalobject.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc index fc5d988..e327047 100644 --- a/doc/src/declarative/globalobject.qdoc +++ b/doc/src/declarative/globalobject.qdoc @@ -82,10 +82,10 @@ when the property has one of the following types: There are also string based constructors for these types, see \l{basicqmltypes.html}{Qml Types}. \section3 Qt.rgba(int red, int green, int blue, int alpha) -This function returns a Color with the specified \c red, \c green, \c blue and \c alpha components. All components should be in the range 0-255 inclusive. +This function returns a Color with the specified \c red, \c green, \c blue and \c alpha components. All components should be in the range 0-1 inclusive. \section3 Qt.hsla(int hue, int saturation, int lightness, int alpha) -This function returns a Color with the specified \c hue, \c saturation, \c lightness and \c alpha components. All components should be in the range 0-255 inclusive. +This function returns a Color with the specified \c hue, \c saturation, \c lightness and \c alpha components. All components should be in the range 0-1 inclusive. \section3 Qt.rect(int x, int y, int width, int height) This function returns a Rect with the top-left corner at \c x,\c y and the specified \c width and \c height. -- cgit v0.12 From fd92687cce5ae0ffb540762852f5ac9c0d327892 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 15:27:39 +1000 Subject: fix headers --- demos/declarative/minehunt/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/dial/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/adding/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/adding/person.cpp | 40 ++++++++++++++++++++++ .../extending/attached/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/attached/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/attached/person.cpp | 40 ++++++++++++++++++++++ .../extending/binding/birthdayparty.cpp | 40 ++++++++++++++++++++++ .../extending/binding/happybirthday.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/binding/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/binding/person.cpp | 40 ++++++++++++++++++++++ .../extending/coercion/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/coercion/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/coercion/person.cpp | 40 ++++++++++++++++++++++ .../extending/default/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/default/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/default/person.cpp | 40 ++++++++++++++++++++++ .../declarative/extending/extended/lineedit.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/extended/main.cpp | 40 ++++++++++++++++++++++ .../extending/grouped/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/grouped/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/grouped/person.cpp | 40 ++++++++++++++++++++++ .../extending/properties/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/properties/main.cpp | 40 ++++++++++++++++++++++ .../declarative/extending/properties/person.cpp | 40 ++++++++++++++++++++++ .../declarative/extending/signal/birthdayparty.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/signal/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/extending/signal/person.cpp | 40 ++++++++++++++++++++++ .../extending/valuesource/birthdayparty.cpp | 40 ++++++++++++++++++++++ .../extending/valuesource/happybirthday.cpp | 40 ++++++++++++++++++++++ .../declarative/extending/valuesource/main.cpp | 40 ++++++++++++++++++++++ .../declarative/extending/valuesource/person.cpp | 40 ++++++++++++++++++++++ examples/declarative/loader/main.cpp | 40 ++++++++++++++++++++++ examples/declarative/loader/qmlfolderlistmodel.cpp | 34 +++++++++--------- mkspecs/linux-g++-x11egl/qplatformdefs.h | 36 +++++++++++++++++-- mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h | 32 ++++++++--------- src/declarative/debugger/qmldebug.cpp | 40 ++++++++++++++++++++++ src/declarative/debugger/qmldebug.h | 40 ++++++++++++++++++++++ tools/qmlviewer/main.cpp | 38 +++++++++++++++++--- tools/qmlviewer/proxysettings.cpp | 38 +++++++++++++++++--- tools/qmlviewer/qfxtester.cpp | 38 +++++++++++++++++--- tools/qmlviewer/qmlviewer.cpp | 38 +++++++++++++++++--- 42 files changed, 1598 insertions(+), 56 deletions(-) diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp index a9b8828..2dc5a0d 100644 --- a/demos/declarative/minehunt/main.cpp +++ b/demos/declarative/minehunt/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 demonstration applications 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$ +** +****************************************************************************/ #include "qmlengine.h" #include "qmlcontext.h" #include "qml.h" diff --git a/examples/declarative/dial/main.cpp b/examples/declarative/dial/main.cpp index b65c9ff..6b0633d 100644 --- a/examples/declarative/dial/main.cpp +++ b/examples/declarative/dial/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/adding/main.cpp b/examples/declarative/extending/adding/main.cpp index 7e5cbef..82e4946 100644 --- a/examples/declarative/extending/adding/main.cpp +++ b/examples/declarative/extending/adding/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/adding/person.cpp b/examples/declarative/extending/adding/person.cpp index ccf08b3..0035282 100644 --- a/examples/declarative/extending/adding/person.cpp +++ b/examples/declarative/extending/adding/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" // ![0] diff --git a/examples/declarative/extending/attached/birthdayparty.cpp b/examples/declarative/extending/attached/birthdayparty.cpp index 2c4c218..58ea6a0 100644 --- a/examples/declarative/extending/attached/birthdayparty.cpp +++ b/examples/declarative/extending/attached/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayPartyAttached::BirthdayPartyAttached(QObject *object) diff --git a/examples/declarative/extending/attached/main.cpp b/examples/declarative/extending/attached/main.cpp index 8b05b9d..d99bfd3 100644 --- a/examples/declarative/extending/attached/main.cpp +++ b/examples/declarative/extending/attached/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/attached/person.cpp b/examples/declarative/extending/attached/person.cpp index eeedd1d..a4138c7 100644 --- a/examples/declarative/extending/attached/person.cpp +++ b/examples/declarative/extending/attached/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" ShoeDescription::ShoeDescription(QObject *parent) diff --git a/examples/declarative/extending/binding/birthdayparty.cpp b/examples/declarative/extending/binding/birthdayparty.cpp index b4f09eb..cfa35c1 100644 --- a/examples/declarative/extending/binding/birthdayparty.cpp +++ b/examples/declarative/extending/binding/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayPartyAttached::BirthdayPartyAttached(QObject *object) diff --git a/examples/declarative/extending/binding/happybirthday.cpp b/examples/declarative/extending/binding/happybirthday.cpp index dd1247f..ffd6de4 100644 --- a/examples/declarative/extending/binding/happybirthday.cpp +++ b/examples/declarative/extending/binding/happybirthday.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "happybirthday.h" #include diff --git a/examples/declarative/extending/binding/main.cpp b/examples/declarative/extending/binding/main.cpp index e808b32..c4090c4 100644 --- a/examples/declarative/extending/binding/main.cpp +++ b/examples/declarative/extending/binding/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/binding/person.cpp b/examples/declarative/extending/binding/person.cpp index 849b3de..a388452 100644 --- a/examples/declarative/extending/binding/person.cpp +++ b/examples/declarative/extending/binding/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" ShoeDescription::ShoeDescription(QObject *parent) diff --git a/examples/declarative/extending/coercion/birthdayparty.cpp b/examples/declarative/extending/coercion/birthdayparty.cpp index ea97f548..81303aa 100644 --- a/examples/declarative/extending/coercion/birthdayparty.cpp +++ b/examples/declarative/extending/coercion/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayParty::BirthdayParty(QObject *parent) diff --git a/examples/declarative/extending/coercion/main.cpp b/examples/declarative/extending/coercion/main.cpp index 75846fa..1ad6d26 100644 --- a/examples/declarative/extending/coercion/main.cpp +++ b/examples/declarative/extending/coercion/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/coercion/person.cpp b/examples/declarative/extending/coercion/person.cpp index d075851..9009612 100644 --- a/examples/declarative/extending/coercion/person.cpp +++ b/examples/declarative/extending/coercion/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" Person::Person(QObject *parent) diff --git a/examples/declarative/extending/default/birthdayparty.cpp b/examples/declarative/extending/default/birthdayparty.cpp index ea97f548..81303aa 100644 --- a/examples/declarative/extending/default/birthdayparty.cpp +++ b/examples/declarative/extending/default/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayParty::BirthdayParty(QObject *parent) diff --git a/examples/declarative/extending/default/main.cpp b/examples/declarative/extending/default/main.cpp index 75846fa..1ad6d26 100644 --- a/examples/declarative/extending/default/main.cpp +++ b/examples/declarative/extending/default/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/default/person.cpp b/examples/declarative/extending/default/person.cpp index 7c468c6..2c93f5b 100644 --- a/examples/declarative/extending/default/person.cpp +++ b/examples/declarative/extending/default/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" Person::Person(QObject *parent) diff --git a/examples/declarative/extending/extended/lineedit.cpp b/examples/declarative/extending/extended/lineedit.cpp index 0597540..c6015ff 100644 --- a/examples/declarative/extending/extended/lineedit.cpp +++ b/examples/declarative/extending/extended/lineedit.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "lineedit.h" #include diff --git a/examples/declarative/extending/extended/main.cpp b/examples/declarative/extending/extended/main.cpp index 1006214..c956ebc 100644 --- a/examples/declarative/extending/extended/main.cpp +++ b/examples/declarative/extending/extended/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/grouped/birthdayparty.cpp b/examples/declarative/extending/grouped/birthdayparty.cpp index ea97f548..81303aa 100644 --- a/examples/declarative/extending/grouped/birthdayparty.cpp +++ b/examples/declarative/extending/grouped/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayParty::BirthdayParty(QObject *parent) diff --git a/examples/declarative/extending/grouped/main.cpp b/examples/declarative/extending/grouped/main.cpp index 490e596..baf5349 100644 --- a/examples/declarative/extending/grouped/main.cpp +++ b/examples/declarative/extending/grouped/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/grouped/person.cpp b/examples/declarative/extending/grouped/person.cpp index eeedd1d..a4138c7 100644 --- a/examples/declarative/extending/grouped/person.cpp +++ b/examples/declarative/extending/grouped/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" ShoeDescription::ShoeDescription(QObject *parent) diff --git a/examples/declarative/extending/properties/birthdayparty.cpp b/examples/declarative/extending/properties/birthdayparty.cpp index 92bc3ba..0e82b87 100644 --- a/examples/declarative/extending/properties/birthdayparty.cpp +++ b/examples/declarative/extending/properties/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayParty::BirthdayParty(QObject *parent) diff --git a/examples/declarative/extending/properties/main.cpp b/examples/declarative/extending/properties/main.cpp index d487fbe..590628e 100644 --- a/examples/declarative/extending/properties/main.cpp +++ b/examples/declarative/extending/properties/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/properties/person.cpp b/examples/declarative/extending/properties/person.cpp index 99fa33e..764e159 100644 --- a/examples/declarative/extending/properties/person.cpp +++ b/examples/declarative/extending/properties/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" Person::Person(QObject *parent) diff --git a/examples/declarative/extending/signal/birthdayparty.cpp b/examples/declarative/extending/signal/birthdayparty.cpp index d6a0d56..49072e0 100644 --- a/examples/declarative/extending/signal/birthdayparty.cpp +++ b/examples/declarative/extending/signal/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayPartyAttached::BirthdayPartyAttached(QObject *object) diff --git a/examples/declarative/extending/signal/main.cpp b/examples/declarative/extending/signal/main.cpp index 181614d..d4e32a1 100644 --- a/examples/declarative/extending/signal/main.cpp +++ b/examples/declarative/extending/signal/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/signal/person.cpp b/examples/declarative/extending/signal/person.cpp index eeedd1d..a4138c7 100644 --- a/examples/declarative/extending/signal/person.cpp +++ b/examples/declarative/extending/signal/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" ShoeDescription::ShoeDescription(QObject *parent) diff --git a/examples/declarative/extending/valuesource/birthdayparty.cpp b/examples/declarative/extending/valuesource/birthdayparty.cpp index 6bca2ef..c2e8346 100644 --- a/examples/declarative/extending/valuesource/birthdayparty.cpp +++ b/examples/declarative/extending/valuesource/birthdayparty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "birthdayparty.h" BirthdayPartyAttached::BirthdayPartyAttached(QObject *object) diff --git a/examples/declarative/extending/valuesource/happybirthday.cpp b/examples/declarative/extending/valuesource/happybirthday.cpp index 4862aa9..8c9763b 100644 --- a/examples/declarative/extending/valuesource/happybirthday.cpp +++ b/examples/declarative/extending/valuesource/happybirthday.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "happybirthday.h" #include diff --git a/examples/declarative/extending/valuesource/main.cpp b/examples/declarative/extending/valuesource/main.cpp index e808b32..c4090c4 100644 --- a/examples/declarative/extending/valuesource/main.cpp +++ b/examples/declarative/extending/valuesource/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/extending/valuesource/person.cpp b/examples/declarative/extending/valuesource/person.cpp index eeedd1d..a4138c7 100644 --- a/examples/declarative/extending/valuesource/person.cpp +++ b/examples/declarative/extending/valuesource/person.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include "person.h" ShoeDescription::ShoeDescription(QObject *parent) diff --git a/examples/declarative/loader/main.cpp b/examples/declarative/loader/main.cpp index c4d3f81..4e6cb23 100644 --- a/examples/declarative/loader/main.cpp +++ b/examples/declarative/loader/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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$ +** +****************************************************************************/ #include #include #include diff --git a/examples/declarative/loader/qmlfolderlistmodel.cpp b/examples/declarative/loader/qmlfolderlistmodel.cpp index 4de0edf..a90ff61 100644 --- a/examples/declarative/loader/qmlfolderlistmodel.cpp +++ b/examples/declarative/loader/qmlfolderlistmodel.cpp @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtDeclarative module of the Qt Toolkit. +** This file is part of the examples 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/mkspecs/linux-g++-x11egl/qplatformdefs.h b/mkspecs/linux-g++-x11egl/qplatformdefs.h index e52b07a..1430916 100644 --- a/mkspecs/linux-g++-x11egl/qplatformdefs.h +++ b/mkspecs/linux-g++-x11egl/qplatformdefs.h @@ -1,11 +1,41 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the $MODULE$ of the Qt Toolkit. +** This file is part of the qmake spec of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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$ ** ****************************************************************************/ diff --git a/mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h b/mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h index 919ac0f..60e0f5e 100644 --- a/mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h +++ b/mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the qmake spec of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index 5a8cda0..c19abe3 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ #include "qmldebug.h" #include "qmldebugclient.h" #include diff --git a/src/declarative/debugger/qmldebug.h b/src/declarative/debugger/qmldebug.h index bd076ff..3b31aba 100644 --- a/src/declarative/debugger/qmldebug.h +++ b/src/declarative/debugger/qmldebug.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ #ifndef QMLDEBUG_H #define QMLDEBUG_H diff --git a/tools/qmlviewer/main.cpp b/tools/qmlviewer/main.cpp index 3f531e4..23194b2 100644 --- a/tools/qmlviewer/main.cpp +++ b/tools/qmlviewer/main.cpp @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ diff --git a/tools/qmlviewer/proxysettings.cpp b/tools/qmlviewer/proxysettings.cpp index f232fd1..52fa74f 100644 --- a/tools/qmlviewer/proxysettings.cpp +++ b/tools/qmlviewer/proxysettings.cpp @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ diff --git a/tools/qmlviewer/qfxtester.cpp b/tools/qmlviewer/qfxtester.cpp index 0ccc9c0..fa400c3 100644 --- a/tools/qmlviewer/qfxtester.cpp +++ b/tools/qmlviewer/qfxtester.cpp @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp index 3aeb0da..f0762c8 100644 --- a/tools/qmlviewer/qmlviewer.cpp +++ b/tools/qmlviewer/qmlviewer.cpp @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ -- cgit v0.12 From 8e38aca65545b63d998249cf23cefa52728cd94d Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 15:42:51 +1000 Subject: fix headers --- src/declarative/debugger/qmldebug.h | 32 ++++++++--------- src/declarative/debugger/qmldebugclient.h | 32 ++++++++--------- src/declarative/debugger/qmldebuggerstatus.h | 32 ++++++++--------- src/declarative/debugger/qmldebugservice.h | 32 ++++++++--------- src/declarative/debugger/qpacketprotocol.h | 32 ++++++++--------- src/declarative/extra/qfxanimatedimageitem.cpp | 32 ++++++++--------- src/declarative/extra/qfxanimatedimageitem.h | 32 ++++++++--------- src/declarative/extra/qfxanimatedimageitem_p.h | 32 ++++++++--------- src/declarative/extra/qfxintegermodel.cpp | 32 ++++++++--------- src/declarative/extra/qfxintegermodel.h | 32 ++++++++--------- src/declarative/extra/qfxparticles.cpp | 32 ++++++++--------- src/declarative/extra/qfxparticles.h | 32 ++++++++--------- src/declarative/extra/qmlbehavior.cpp | 32 ++++++++--------- src/declarative/extra/qmlbehavior.h | 32 ++++++++--------- src/declarative/extra/qmldatetimeformatter.cpp | 32 ++++++++--------- src/declarative/extra/qmldatetimeformatter.h | 32 ++++++++--------- src/declarative/extra/qmlfontloader.cpp | 32 ++++++++--------- src/declarative/extra/qmlfontloader.h | 32 ++++++++--------- src/declarative/extra/qmlnumberformatter.cpp | 32 ++++++++--------- src/declarative/extra/qmlnumberformatter.h | 32 ++++++++--------- src/declarative/extra/qmlxmllistmodel.cpp | 32 ++++++++--------- src/declarative/extra/qmlxmllistmodel.h | 32 ++++++++--------- src/declarative/extra/qnumberformat.cpp | 32 ++++++++--------- src/declarative/extra/qnumberformat.h | 32 ++++++++--------- src/declarative/fx/qfxanchors.cpp | 32 ++++++++--------- src/declarative/fx/qfxanchors.h | 32 ++++++++--------- src/declarative/fx/qfxanchors_p.h | 32 ++++++++--------- src/declarative/fx/qfxborderimage.cpp | 32 ++++++++--------- src/declarative/fx/qfxborderimage.h | 32 ++++++++--------- src/declarative/fx/qfxborderimage_p.h | 32 ++++++++--------- src/declarative/fx/qfxeffects.cpp | 40 ++++++++++++++++++++++ src/declarative/fx/qfxevents.cpp | 32 ++++++++--------- src/declarative/fx/qfxevents_p.h | 32 ++++++++--------- src/declarative/fx/qfxflickable.cpp | 32 ++++++++--------- src/declarative/fx/qfxflickable.h | 32 ++++++++--------- src/declarative/fx/qfxflickable_p.h | 32 ++++++++--------- src/declarative/fx/qfxflipable.cpp | 32 ++++++++--------- src/declarative/fx/qfxflipable.h | 32 ++++++++--------- src/declarative/fx/qfxfocuspanel.cpp | 32 ++++++++--------- src/declarative/fx/qfxfocuspanel.h | 32 ++++++++--------- src/declarative/fx/qfxfocusscope.cpp | 32 ++++++++--------- src/declarative/fx/qfxfocusscope.h | 32 ++++++++--------- src/declarative/fx/qfxgraphicsobjectcontainer.cpp | 32 ++++++++--------- src/declarative/fx/qfxgraphicsobjectcontainer.h | 32 ++++++++--------- src/declarative/fx/qfxgridview.cpp | 32 ++++++++--------- src/declarative/fx/qfxgridview.h | 32 ++++++++--------- src/declarative/fx/qfximage.cpp | 32 ++++++++--------- src/declarative/fx/qfximage.h | 32 ++++++++--------- src/declarative/fx/qfximage_p.h | 32 ++++++++--------- src/declarative/fx/qfximagebase.cpp | 32 ++++++++--------- src/declarative/fx/qfximagebase.h | 32 ++++++++--------- src/declarative/fx/qfximagebase_p.h | 32 ++++++++--------- src/declarative/fx/qfxitem.cpp | 32 ++++++++--------- src/declarative/fx/qfxitem.h | 32 ++++++++--------- src/declarative/fx/qfxitem_p.h | 32 ++++++++--------- src/declarative/fx/qfxlayoutitem.cpp | 32 ++++++++--------- src/declarative/fx/qfxlayoutitem.h | 32 ++++++++--------- src/declarative/fx/qfxlistview.cpp | 32 ++++++++--------- src/declarative/fx/qfxlistview.h | 32 ++++++++--------- src/declarative/fx/qfxloader.cpp | 32 ++++++++--------- src/declarative/fx/qfxloader.h | 32 ++++++++--------- src/declarative/fx/qfxloader_p.h | 32 ++++++++--------- src/declarative/fx/qfxmouseregion.cpp | 32 ++++++++--------- src/declarative/fx/qfxmouseregion.h | 32 ++++++++--------- src/declarative/fx/qfxmouseregion_p.h | 32 ++++++++--------- src/declarative/fx/qfxpainteditem.cpp | 32 ++++++++--------- src/declarative/fx/qfxpainteditem.h | 32 ++++++++--------- src/declarative/fx/qfxpainteditem_p.h | 32 ++++++++--------- src/declarative/fx/qfxpath.cpp | 32 ++++++++--------- src/declarative/fx/qfxpath.h | 32 ++++++++--------- src/declarative/fx/qfxpath_p.h | 32 ++++++++--------- src/declarative/fx/qfxpathview.cpp | 32 ++++++++--------- src/declarative/fx/qfxpathview.h | 32 ++++++++--------- src/declarative/fx/qfxpathview_p.h | 32 ++++++++--------- src/declarative/fx/qfxpixmapcache.cpp | 32 ++++++++--------- src/declarative/fx/qfxpixmapcache.h | 32 ++++++++--------- src/declarative/fx/qfxpositioners.cpp | 32 ++++++++--------- src/declarative/fx/qfxpositioners.h | 32 ++++++++--------- src/declarative/fx/qfxpositioners_p.h | 32 ++++++++--------- src/declarative/fx/qfxrect.cpp | 32 ++++++++--------- src/declarative/fx/qfxrect.h | 32 ++++++++--------- src/declarative/fx/qfxrect_p.h | 32 ++++++++--------- src/declarative/fx/qfxrepeater.cpp | 32 ++++++++--------- src/declarative/fx/qfxrepeater.h | 32 ++++++++--------- src/declarative/fx/qfxrepeater_p.h | 32 ++++++++--------- src/declarative/fx/qfxscalegrid.cpp | 32 ++++++++--------- src/declarative/fx/qfxscalegrid_p.h | 32 ++++++++--------- src/declarative/fx/qfxtext.cpp | 32 ++++++++--------- src/declarative/fx/qfxtext.h | 32 ++++++++--------- src/declarative/fx/qfxtext_p.h | 32 ++++++++--------- src/declarative/fx/qfxtextedit.cpp | 32 ++++++++--------- src/declarative/fx/qfxtextedit.h | 32 ++++++++--------- src/declarative/fx/qfxtextedit_p.h | 32 ++++++++--------- src/declarative/fx/qfxtextinput.cpp | 32 ++++++++--------- src/declarative/fx/qfxtextinput.h | 32 ++++++++--------- src/declarative/fx/qfxtextinput_p.h | 32 ++++++++--------- src/declarative/fx/qfxvisualitemmodel.cpp | 32 ++++++++--------- src/declarative/fx/qfxvisualitemmodel.h | 32 ++++++++--------- src/declarative/fx/qfxwebview.cpp | 32 ++++++++--------- src/declarative/fx/qfxwebview.h | 32 ++++++++--------- src/declarative/qml/parser/qmljs.g | 4 +-- src/declarative/qml/parser/qmljsast.cpp | 34 +++++++++--------- src/declarative/qml/parser/qmljsast_p.h | 32 ++++++++--------- src/declarative/qml/parser/qmljsastfwd_p.h | 34 +++++++++--------- src/declarative/qml/parser/qmljsastvisitor.cpp | 34 +++++++++--------- src/declarative/qml/parser/qmljsastvisitor_p.h | 34 +++++++++--------- src/declarative/qml/parser/qmljsengine_p.cpp | 32 ++++++++--------- src/declarative/qml/parser/qmljsengine_p.h | 32 ++++++++--------- src/declarative/qml/parser/qmljsglobal_p.h | 40 ++++++++++++++++++++++ src/declarative/qml/parser/qmljsgrammar.cpp | 32 ++++++++--------- src/declarative/qml/parser/qmljsgrammar_p.h | 32 ++++++++--------- src/declarative/qml/parser/qmljslexer.cpp | 32 ++++++++--------- src/declarative/qml/parser/qmljslexer_p.h | 34 +++++++++--------- src/declarative/qml/parser/qmljsmemorypool_p.h | 32 ++++++++--------- src/declarative/qml/parser/qmljsnodepool_p.h | 32 ++++++++--------- src/declarative/qml/parser/qmljsparser.cpp | 34 +++++++++--------- src/declarative/qml/parser/qmljsparser_p.h | 34 +++++++++--------- src/declarative/qml/qbitfield_p.h | 32 ++++++++--------- src/declarative/qml/qmetaobjectbuilder.cpp | 32 ++++++++--------- src/declarative/qml/qmetaobjectbuilder_p.h | 32 ++++++++--------- src/declarative/qml/qml.h | 32 ++++++++--------- src/declarative/qml/qmlbasicscript.cpp | 32 ++++++++--------- src/declarative/qml/qmlbasicscript_p.h | 32 ++++++++--------- src/declarative/qml/qmlbinding.cpp | 32 ++++++++--------- src/declarative/qml/qmlbinding.h | 32 ++++++++--------- src/declarative/qml/qmlbinding_p.h | 32 ++++++++--------- src/declarative/qml/qmlbindingoptimizations.cpp | 32 ++++++++--------- src/declarative/qml/qmlbindingoptimizations_p.h | 32 ++++++++--------- src/declarative/qml/qmlboundsignal.cpp | 32 ++++++++--------- src/declarative/qml/qmlboundsignal_p.h | 32 ++++++++--------- src/declarative/qml/qmlclassfactory.cpp | 32 ++++++++--------- src/declarative/qml/qmlclassfactory_p.h | 32 ++++++++--------- src/declarative/qml/qmlcleanup.cpp | 32 ++++++++--------- src/declarative/qml/qmlcleanup_p.h | 32 ++++++++--------- src/declarative/qml/qmlcompileddata.cpp | 32 ++++++++--------- src/declarative/qml/qmlcompiler.cpp | 32 ++++++++--------- src/declarative/qml/qmlcompiler_p.h | 32 ++++++++--------- src/declarative/qml/qmlcomponent.cpp | 32 ++++++++--------- src/declarative/qml/qmlcomponent.h | 32 ++++++++--------- src/declarative/qml/qmlcomponent_p.h | 32 ++++++++--------- src/declarative/qml/qmlcomponentjs.cpp | 32 ++++++++--------- src/declarative/qml/qmlcomponentjs_p.h | 32 ++++++++--------- src/declarative/qml/qmlcomponentjs_p_p.h | 32 ++++++++--------- src/declarative/qml/qmlcompositetypedata_p.h | 32 ++++++++--------- src/declarative/qml/qmlcompositetypemanager.cpp | 32 ++++++++--------- src/declarative/qml/qmlcompositetypemanager_p.h | 32 ++++++++--------- src/declarative/qml/qmlcontext.cpp | 32 ++++++++--------- src/declarative/qml/qmlcontext.h | 32 ++++++++--------- src/declarative/qml/qmlcontext_p.h | 32 ++++++++--------- src/declarative/qml/qmlcontextscriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmlcontextscriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlcustomparser.cpp | 32 ++++++++--------- src/declarative/qml/qmlcustomparser_p.h | 32 ++++++++--------- src/declarative/qml/qmlcustomparser_p_p.h | 32 ++++++++--------- src/declarative/qml/qmldeclarativedata_p.h | 32 ++++++++--------- src/declarative/qml/qmldom.cpp | 32 ++++++++--------- src/declarative/qml/qmldom.h | 32 ++++++++--------- src/declarative/qml/qmldom_p.h | 32 ++++++++--------- src/declarative/qml/qmlengine.cpp | 32 ++++++++--------- src/declarative/qml/qmlengine.h | 32 ++++++++--------- src/declarative/qml/qmlengine_p.h | 32 ++++++++--------- src/declarative/qml/qmlenginedebug.cpp | 32 ++++++++--------- src/declarative/qml/qmlenginedebug_p.h | 32 ++++++++--------- src/declarative/qml/qmlerror.cpp | 32 ++++++++--------- src/declarative/qml/qmlerror.h | 32 ++++++++--------- src/declarative/qml/qmlexpression.cpp | 32 ++++++++--------- src/declarative/qml/qmlexpression.h | 32 ++++++++--------- src/declarative/qml/qmlexpression_p.h | 32 ++++++++--------- src/declarative/qml/qmlglobalscriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmlglobalscriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlinfo.cpp | 32 ++++++++--------- src/declarative/qml/qmlinfo.h | 32 ++++++++--------- src/declarative/qml/qmlinstruction.cpp | 32 ++++++++--------- src/declarative/qml/qmlinstruction_p.h | 32 ++++++++--------- src/declarative/qml/qmlintegercache.cpp | 32 ++++++++--------- src/declarative/qml/qmlintegercache_p.h | 32 ++++++++--------- src/declarative/qml/qmllist.h | 32 ++++++++--------- src/declarative/qml/qmllistscriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmllistscriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlmetaproperty.cpp | 32 ++++++++--------- src/declarative/qml/qmlmetaproperty.h | 32 ++++++++--------- src/declarative/qml/qmlmetaproperty_p.h | 32 ++++++++--------- src/declarative/qml/qmlmetatype.cpp | 32 ++++++++--------- src/declarative/qml/qmlmetatype.h | 32 ++++++++--------- src/declarative/qml/qmlobjectscriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmlobjectscriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlparser.cpp | 32 ++++++++--------- src/declarative/qml/qmlparser_p.h | 32 ++++++++--------- src/declarative/qml/qmlparserstatus.cpp | 32 ++++++++--------- src/declarative/qml/qmlparserstatus.h | 32 ++++++++--------- src/declarative/qml/qmlprivate.cpp | 32 ++++++++--------- src/declarative/qml/qmlprivate.h | 32 ++++++++--------- src/declarative/qml/qmlpropertycache.cpp | 32 ++++++++--------- src/declarative/qml/qmlpropertycache_p.h | 32 ++++++++--------- .../qml/qmlpropertyvalueinterceptor.cpp | 32 ++++++++--------- src/declarative/qml/qmlpropertyvalueinterceptor.h | 32 ++++++++--------- src/declarative/qml/qmlpropertyvaluesource.cpp | 32 ++++++++--------- src/declarative/qml/qmlpropertyvaluesource.h | 32 ++++++++--------- src/declarative/qml/qmlproxymetaobject.cpp | 32 ++++++++--------- src/declarative/qml/qmlproxymetaobject_p.h | 32 ++++++++--------- src/declarative/qml/qmlrefcount.cpp | 32 ++++++++--------- src/declarative/qml/qmlrefcount_p.h | 32 ++++++++--------- src/declarative/qml/qmlrewrite.cpp | 32 ++++++++--------- src/declarative/qml/qmlrewrite_p.h | 32 ++++++++--------- src/declarative/qml/qmlscript.cpp | 32 ++++++++--------- src/declarative/qml/qmlscriptparser.cpp | 32 ++++++++--------- src/declarative/qml/qmlscriptparser_p.h | 32 ++++++++--------- src/declarative/qml/qmlscriptstring.cpp | 32 ++++++++--------- src/declarative/qml/qmlscriptstring.h | 32 ++++++++--------- src/declarative/qml/qmlsqldatabase.cpp | 32 ++++++++--------- src/declarative/qml/qmlsqldatabase_p.h | 32 ++++++++--------- src/declarative/qml/qmlstringconverters.cpp | 32 ++++++++--------- src/declarative/qml/qmlstringconverters_p.h | 32 ++++++++--------- src/declarative/qml/qmltypenamecache.cpp | 32 ++++++++--------- src/declarative/qml/qmltypenamecache_p.h | 32 ++++++++--------- src/declarative/qml/qmltypenamescriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmltypenamescriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlvaluetype.cpp | 32 ++++++++--------- src/declarative/qml/qmlvaluetype_p.h | 32 ++++++++--------- src/declarative/qml/qmlvaluetypescriptclass.cpp | 32 ++++++++--------- src/declarative/qml/qmlvaluetypescriptclass_p.h | 32 ++++++++--------- src/declarative/qml/qmlvme.cpp | 32 ++++++++--------- src/declarative/qml/qmlvme_p.h | 32 ++++++++--------- src/declarative/qml/qmlvmemetaobject.cpp | 32 ++++++++--------- src/declarative/qml/qmlvmemetaobject_p.h | 32 ++++++++--------- src/declarative/qml/qmlwatcher.cpp | 32 ++++++++--------- src/declarative/qml/qmlwatcher_p.h | 32 ++++++++--------- src/declarative/qml/qmlxmlhttprequest.cpp | 32 ++++++++--------- src/declarative/qml/qmlxmlhttprequest_p.h | 32 ++++++++--------- src/declarative/qml/qpodvector_p.h | 32 ++++++++--------- src/declarative/qml/rewriter/rewriter.cpp | 32 ++++++++--------- src/declarative/qml/rewriter/rewriter_p.h | 32 ++++++++--------- src/declarative/qml/rewriter/textwriter.cpp | 32 ++++++++--------- src/declarative/qml/rewriter/textwriter_p.h | 32 ++++++++--------- src/declarative/util/qfxglobal.h | 32 ++++++++--------- src/declarative/util/qfxperf.cpp | 32 ++++++++--------- src/declarative/util/qfxperf_p.h | 32 ++++++++--------- src/declarative/util/qmlanimation.cpp | 32 ++++++++--------- src/declarative/util/qmlanimation.h | 32 ++++++++--------- src/declarative/util/qmlanimation_p.h | 32 ++++++++--------- src/declarative/util/qmlbind.cpp | 32 ++++++++--------- src/declarative/util/qmlbind.h | 32 ++++++++--------- src/declarative/util/qmlconnection.cpp | 32 ++++++++--------- src/declarative/util/qmlconnection.h | 32 ++++++++--------- src/declarative/util/qmleasefollow.cpp | 32 ++++++++--------- src/declarative/util/qmleasefollow.h | 32 ++++++++--------- src/declarative/util/qmllistaccessor.cpp | 32 ++++++++--------- src/declarative/util/qmllistaccessor.h | 32 ++++++++--------- src/declarative/util/qmllistmodel.cpp | 32 ++++++++--------- src/declarative/util/qmllistmodel.h | 32 ++++++++--------- src/declarative/util/qmlnullablevalue_p.h | 32 ++++++++--------- src/declarative/util/qmlopenmetaobject.cpp | 32 ++++++++--------- src/declarative/util/qmlopenmetaobject.h | 32 ++++++++--------- src/declarative/util/qmlpackage.cpp | 32 ++++++++--------- src/declarative/util/qmlpackage.h | 32 ++++++++--------- src/declarative/util/qmlpropertychanges.cpp | 32 ++++++++--------- src/declarative/util/qmlpropertychanges.h | 32 ++++++++--------- src/declarative/util/qmlpropertymap.cpp | 32 ++++++++--------- src/declarative/util/qmlpropertymap.h | 32 ++++++++--------- src/declarative/util/qmlspringfollow.cpp | 32 ++++++++--------- src/declarative/util/qmlspringfollow.h | 32 ++++++++--------- src/declarative/util/qmlstate.cpp | 32 ++++++++--------- src/declarative/util/qmlstate.h | 32 ++++++++--------- src/declarative/util/qmlstate_p.h | 32 ++++++++--------- src/declarative/util/qmlstategroup.cpp | 32 ++++++++--------- src/declarative/util/qmlstategroup.h | 32 ++++++++--------- src/declarative/util/qmlstateoperations.cpp | 32 ++++++++--------- src/declarative/util/qmlstateoperations.h | 32 ++++++++--------- src/declarative/util/qmlsystempalette.cpp | 32 ++++++++--------- src/declarative/util/qmlsystempalette.h | 32 ++++++++--------- src/declarative/util/qmltimeline.cpp | 32 ++++++++--------- src/declarative/util/qmltimeline_p.h | 32 ++++++++--------- src/declarative/util/qmltimer.cpp | 32 ++++++++--------- src/declarative/util/qmltimer.h | 32 ++++++++--------- src/declarative/util/qmltransition.cpp | 32 ++++++++--------- src/declarative/util/qmltransition.h | 32 ++++++++--------- src/declarative/util/qmltransitionmanager.cpp | 32 ++++++++--------- src/declarative/util/qmltransitionmanager_p.h | 32 ++++++++--------- src/declarative/util/qmlview.cpp | 32 ++++++++--------- src/declarative/util/qmlview.h | 32 ++++++++--------- src/declarative/util/qperformancelog.cpp | 32 ++++++++--------- src/declarative/util/qperformancelog_p.h | 32 ++++++++--------- src/declarative/widgets/graphicslayouts.cpp | 32 ++++++++--------- src/declarative/widgets/graphicslayouts.h | 32 ++++++++--------- src/declarative/widgets/graphicswidgets.cpp | 32 ++++++++--------- src/declarative/widgets/graphicswidgets.h | 32 ++++++++--------- 286 files changed, 4617 insertions(+), 4537 deletions(-) diff --git a/src/declarative/debugger/qmldebug.h b/src/declarative/debugger/qmldebug.h index 3b31aba..23d98aa 100644 --- a/src/declarative/debugger/qmldebug.h +++ b/src/declarative/debugger/qmldebug.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebugclient.h b/src/declarative/debugger/qmldebugclient.h index 6397670..d64541b 100644 --- a/src/declarative/debugger/qmldebugclient.h +++ b/src/declarative/debugger/qmldebugclient.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebuggerstatus.h b/src/declarative/debugger/qmldebuggerstatus.h index a8480f4..7c8070b 100644 --- a/src/declarative/debugger/qmldebuggerstatus.h +++ b/src/declarative/debugger/qmldebuggerstatus.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebugservice.h b/src/declarative/debugger/qmldebugservice.h index 5d20ba0..436d7ea 100644 --- a/src/declarative/debugger/qmldebugservice.h +++ b/src/declarative/debugger/qmldebugservice.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qpacketprotocol.h b/src/declarative/debugger/qpacketprotocol.h index f3fb44b..29bd5bb 100644 --- a/src/declarative/debugger/qpacketprotocol.h +++ b/src/declarative/debugger/qpacketprotocol.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxanimatedimageitem.cpp b/src/declarative/extra/qfxanimatedimageitem.cpp index 5a491e0..a0ebd66 100644 --- a/src/declarative/extra/qfxanimatedimageitem.cpp +++ b/src/declarative/extra/qfxanimatedimageitem.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxanimatedimageitem.h b/src/declarative/extra/qfxanimatedimageitem.h index 4002a3f..eae243e 100644 --- a/src/declarative/extra/qfxanimatedimageitem.h +++ b/src/declarative/extra/qfxanimatedimageitem.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxanimatedimageitem_p.h b/src/declarative/extra/qfxanimatedimageitem_p.h index 56252ca..6103192 100644 --- a/src/declarative/extra/qfxanimatedimageitem_p.h +++ b/src/declarative/extra/qfxanimatedimageitem_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxintegermodel.cpp b/src/declarative/extra/qfxintegermodel.cpp index 3cd46d7..bd2c54d 100644 --- a/src/declarative/extra/qfxintegermodel.cpp +++ b/src/declarative/extra/qfxintegermodel.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxintegermodel.h b/src/declarative/extra/qfxintegermodel.h index 7fced2c..18773b3 100644 --- a/src/declarative/extra/qfxintegermodel.h +++ b/src/declarative/extra/qfxintegermodel.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxparticles.cpp b/src/declarative/extra/qfxparticles.cpp index 8e77c34..bf25671 100644 --- a/src/declarative/extra/qfxparticles.cpp +++ b/src/declarative/extra/qfxparticles.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qfxparticles.h b/src/declarative/extra/qfxparticles.h index 959c518..3427a64 100644 --- a/src/declarative/extra/qfxparticles.h +++ b/src/declarative/extra/qfxparticles.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlbehavior.cpp b/src/declarative/extra/qmlbehavior.cpp index 654cb4e..4679b8d 100644 --- a/src/declarative/extra/qmlbehavior.cpp +++ b/src/declarative/extra/qmlbehavior.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlbehavior.h b/src/declarative/extra/qmlbehavior.h index 6508455..6ce76b6 100644 --- a/src/declarative/extra/qmlbehavior.h +++ b/src/declarative/extra/qmlbehavior.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmldatetimeformatter.cpp b/src/declarative/extra/qmldatetimeformatter.cpp index 9b3d37a..892ce5b 100644 --- a/src/declarative/extra/qmldatetimeformatter.cpp +++ b/src/declarative/extra/qmldatetimeformatter.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmldatetimeformatter.h b/src/declarative/extra/qmldatetimeformatter.h index be0ae02..e350f96 100644 --- a/src/declarative/extra/qmldatetimeformatter.h +++ b/src/declarative/extra/qmldatetimeformatter.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlfontloader.cpp b/src/declarative/extra/qmlfontloader.cpp index f9857f6..6f5ab74 100644 --- a/src/declarative/extra/qmlfontloader.cpp +++ b/src/declarative/extra/qmlfontloader.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlfontloader.h b/src/declarative/extra/qmlfontloader.h index c2c7a16..d02a181 100644 --- a/src/declarative/extra/qmlfontloader.h +++ b/src/declarative/extra/qmlfontloader.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp index 5b76e45..b223e68 100644 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ b/src/declarative/extra/qmlnumberformatter.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlnumberformatter.h b/src/declarative/extra/qmlnumberformatter.h index d9abee7..23e0c9e 100644 --- a/src/declarative/extra/qmlnumberformatter.h +++ b/src/declarative/extra/qmlnumberformatter.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index a3c96fd..6a5ddea 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h index 1bcc008..5d1b940 100644 --- a/src/declarative/extra/qmlxmllistmodel.h +++ b/src/declarative/extra/qmlxmllistmodel.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qnumberformat.cpp b/src/declarative/extra/qnumberformat.cpp index cde2fb0..78a2f14 100644 --- a/src/declarative/extra/qnumberformat.cpp +++ b/src/declarative/extra/qnumberformat.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/extra/qnumberformat.h b/src/declarative/extra/qnumberformat.h index 830cf79..1a7b8e4 100644 --- a/src/declarative/extra/qnumberformat.h +++ b/src/declarative/extra/qnumberformat.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxanchors.cpp b/src/declarative/fx/qfxanchors.cpp index 8d4a8b8..eed2aaf 100644 --- a/src/declarative/fx/qfxanchors.cpp +++ b/src/declarative/fx/qfxanchors.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxanchors.h b/src/declarative/fx/qfxanchors.h index 3dd64c7..ac00495 100644 --- a/src/declarative/fx/qfxanchors.h +++ b/src/declarative/fx/qfxanchors.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxanchors_p.h b/src/declarative/fx/qfxanchors_p.h index 9b1bc18..b243fe9 100644 --- a/src/declarative/fx/qfxanchors_p.h +++ b/src/declarative/fx/qfxanchors_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxborderimage.cpp b/src/declarative/fx/qfxborderimage.cpp index f1574e5..be8abca 100644 --- a/src/declarative/fx/qfxborderimage.cpp +++ b/src/declarative/fx/qfxborderimage.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxborderimage.h b/src/declarative/fx/qfxborderimage.h index 5bc1067..9fe117e 100644 --- a/src/declarative/fx/qfxborderimage.h +++ b/src/declarative/fx/qfxborderimage.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxborderimage_p.h b/src/declarative/fx/qfxborderimage_p.h index aebe13f..fb77b6f 100644 --- a/src/declarative/fx/qfxborderimage_p.h +++ b/src/declarative/fx/qfxborderimage_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxeffects.cpp b/src/declarative/fx/qfxeffects.cpp index ebdd880..0ffe07c 100644 --- a/src/declarative/fx/qfxeffects.cpp +++ b/src/declarative/fx/qfxeffects.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ #include #include #include diff --git a/src/declarative/fx/qfxevents.cpp b/src/declarative/fx/qfxevents.cpp index 43f0dd7..7317aa5 100644 --- a/src/declarative/fx/qfxevents.cpp +++ b/src/declarative/fx/qfxevents.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxevents_p.h b/src/declarative/fx/qfxevents_p.h index 7b0c24c..fbac995 100644 --- a/src/declarative/fx/qfxevents_p.h +++ b/src/declarative/fx/qfxevents_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp index 0fb8474..bf5e1bb 100644 --- a/src/declarative/fx/qfxflickable.cpp +++ b/src/declarative/fx/qfxflickable.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxflickable.h b/src/declarative/fx/qfxflickable.h index 3db4ca7..5b88129 100644 --- a/src/declarative/fx/qfxflickable.h +++ b/src/declarative/fx/qfxflickable.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxflickable_p.h b/src/declarative/fx/qfxflickable_p.h index 07d66b8..115372e 100644 --- a/src/declarative/fx/qfxflickable_p.h +++ b/src/declarative/fx/qfxflickable_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxflipable.cpp b/src/declarative/fx/qfxflipable.cpp index d381cfe..42cbb5f 100644 --- a/src/declarative/fx/qfxflipable.cpp +++ b/src/declarative/fx/qfxflipable.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxflipable.h b/src/declarative/fx/qfxflipable.h index e1bd9ea..e746c5c 100644 --- a/src/declarative/fx/qfxflipable.h +++ b/src/declarative/fx/qfxflipable.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxfocuspanel.cpp b/src/declarative/fx/qfxfocuspanel.cpp index 3bb0b25..15ba804 100644 --- a/src/declarative/fx/qfxfocuspanel.cpp +++ b/src/declarative/fx/qfxfocuspanel.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxfocuspanel.h b/src/declarative/fx/qfxfocuspanel.h index 1fea011..2ee76d3 100644 --- a/src/declarative/fx/qfxfocuspanel.h +++ b/src/declarative/fx/qfxfocuspanel.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxfocusscope.cpp b/src/declarative/fx/qfxfocusscope.cpp index 9bcc17e..2ca43b9 100644 --- a/src/declarative/fx/qfxfocusscope.cpp +++ b/src/declarative/fx/qfxfocusscope.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxfocusscope.h b/src/declarative/fx/qfxfocusscope.h index e337fc6..c44901a 100644 --- a/src/declarative/fx/qfxfocusscope.h +++ b/src/declarative/fx/qfxfocusscope.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp b/src/declarative/fx/qfxgraphicsobjectcontainer.cpp index 5a61d12..626e594 100644 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp +++ b/src/declarative/fx/qfxgraphicsobjectcontainer.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.h b/src/declarative/fx/qfxgraphicsobjectcontainer.h index 656a7f8..a335b93 100644 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.h +++ b/src/declarative/fx/qfxgraphicsobjectcontainer.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp index c07258d..dea06bf 100644 --- a/src/declarative/fx/qfxgridview.cpp +++ b/src/declarative/fx/qfxgridview.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxgridview.h b/src/declarative/fx/qfxgridview.h index 1c0a700..7490ccc 100644 --- a/src/declarative/fx/qfxgridview.h +++ b/src/declarative/fx/qfxgridview.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp index 45a481c..bb5a183 100644 --- a/src/declarative/fx/qfximage.cpp +++ b/src/declarative/fx/qfximage.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximage.h b/src/declarative/fx/qfximage.h index fc8079c..d577964 100644 --- a/src/declarative/fx/qfximage.h +++ b/src/declarative/fx/qfximage.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximage_p.h b/src/declarative/fx/qfximage_p.h index 8bdcc14..b938f41 100644 --- a/src/declarative/fx/qfximage_p.h +++ b/src/declarative/fx/qfximage_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximagebase.cpp b/src/declarative/fx/qfximagebase.cpp index a68c1f9..3638ace 100644 --- a/src/declarative/fx/qfximagebase.cpp +++ b/src/declarative/fx/qfximagebase.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximagebase.h b/src/declarative/fx/qfximagebase.h index 226d3c3..75549b4 100644 --- a/src/declarative/fx/qfximagebase.h +++ b/src/declarative/fx/qfximagebase.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfximagebase_p.h b/src/declarative/fx/qfximagebase_p.h index a6fcc80..c235e3b 100644 --- a/src/declarative/fx/qfximagebase_p.h +++ b/src/declarative/fx/qfximagebase_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index 72833e1..88dac8d 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h index b2aefe2..c9b0827 100644 --- a/src/declarative/fx/qfxitem.h +++ b/src/declarative/fx/qfxitem.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxitem_p.h b/src/declarative/fx/qfxitem_p.h index 2c7440f..17e63fd 100644 --- a/src/declarative/fx/qfxitem_p.h +++ b/src/declarative/fx/qfxitem_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxlayoutitem.cpp b/src/declarative/fx/qfxlayoutitem.cpp index 61998e7..5cb1641 100644 --- a/src/declarative/fx/qfxlayoutitem.cpp +++ b/src/declarative/fx/qfxlayoutitem.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxlayoutitem.h b/src/declarative/fx/qfxlayoutitem.h index 7150554..5f00525 100644 --- a/src/declarative/fx/qfxlayoutitem.h +++ b/src/declarative/fx/qfxlayoutitem.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index f9ae0c0..b959594 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxlistview.h b/src/declarative/fx/qfxlistview.h index b31b951..9e03348 100644 --- a/src/declarative/fx/qfxlistview.h +++ b/src/declarative/fx/qfxlistview.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxloader.cpp b/src/declarative/fx/qfxloader.cpp index da4a280..b0d0e78 100644 --- a/src/declarative/fx/qfxloader.cpp +++ b/src/declarative/fx/qfxloader.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxloader.h b/src/declarative/fx/qfxloader.h index b967465..e439014 100644 --- a/src/declarative/fx/qfxloader.h +++ b/src/declarative/fx/qfxloader.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxloader_p.h b/src/declarative/fx/qfxloader_p.h index 0700fcd..72374c4 100644 --- a/src/declarative/fx/qfxloader_p.h +++ b/src/declarative/fx/qfxloader_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxmouseregion.cpp b/src/declarative/fx/qfxmouseregion.cpp index 315a273..f8f9f7e 100644 --- a/src/declarative/fx/qfxmouseregion.cpp +++ b/src/declarative/fx/qfxmouseregion.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxmouseregion.h b/src/declarative/fx/qfxmouseregion.h index 114ea87..c80fc766 100644 --- a/src/declarative/fx/qfxmouseregion.h +++ b/src/declarative/fx/qfxmouseregion.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxmouseregion_p.h b/src/declarative/fx/qfxmouseregion_p.h index caed2ab..89b690a 100644 --- a/src/declarative/fx/qfxmouseregion_p.h +++ b/src/declarative/fx/qfxmouseregion_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp index e0ef99f..475d270 100644 --- a/src/declarative/fx/qfxpainteditem.cpp +++ b/src/declarative/fx/qfxpainteditem.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpainteditem.h b/src/declarative/fx/qfxpainteditem.h index 13c6b15..ee69a8f 100644 --- a/src/declarative/fx/qfxpainteditem.h +++ b/src/declarative/fx/qfxpainteditem.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpainteditem_p.h b/src/declarative/fx/qfxpainteditem_p.h index 179fd61..72fa37c 100644 --- a/src/declarative/fx/qfxpainteditem_p.h +++ b/src/declarative/fx/qfxpainteditem_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpath.cpp b/src/declarative/fx/qfxpath.cpp index 26fafc5..fbc716d 100644 --- a/src/declarative/fx/qfxpath.cpp +++ b/src/declarative/fx/qfxpath.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpath.h b/src/declarative/fx/qfxpath.h index 04d24c6..6049c54 100644 --- a/src/declarative/fx/qfxpath.h +++ b/src/declarative/fx/qfxpath.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpath_p.h b/src/declarative/fx/qfxpath_p.h index d4a419a..1b13e80 100644 --- a/src/declarative/fx/qfxpath_p.h +++ b/src/declarative/fx/qfxpath_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpathview.cpp b/src/declarative/fx/qfxpathview.cpp index c580e98..bb52813 100644 --- a/src/declarative/fx/qfxpathview.cpp +++ b/src/declarative/fx/qfxpathview.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpathview.h b/src/declarative/fx/qfxpathview.h index c8c0ac0..bf4da00 100644 --- a/src/declarative/fx/qfxpathview.h +++ b/src/declarative/fx/qfxpathview.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpathview_p.h b/src/declarative/fx/qfxpathview_p.h index 60bfdb3..5c158dc 100644 --- a/src/declarative/fx/qfxpathview_p.h +++ b/src/declarative/fx/qfxpathview_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpixmapcache.cpp b/src/declarative/fx/qfxpixmapcache.cpp index 13e1b16..46b3c75 100644 --- a/src/declarative/fx/qfxpixmapcache.cpp +++ b/src/declarative/fx/qfxpixmapcache.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpixmapcache.h b/src/declarative/fx/qfxpixmapcache.h index fb5b88a..e15bf88 100644 --- a/src/declarative/fx/qfxpixmapcache.h +++ b/src/declarative/fx/qfxpixmapcache.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpositioners.cpp b/src/declarative/fx/qfxpositioners.cpp index 86a069d..3dac816 100644 --- a/src/declarative/fx/qfxpositioners.cpp +++ b/src/declarative/fx/qfxpositioners.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpositioners.h b/src/declarative/fx/qfxpositioners.h index d62da08..0632172 100644 --- a/src/declarative/fx/qfxpositioners.h +++ b/src/declarative/fx/qfxpositioners.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxpositioners_p.h b/src/declarative/fx/qfxpositioners_p.h index 8960952..a08db84 100644 --- a/src/declarative/fx/qfxpositioners_p.h +++ b/src/declarative/fx/qfxpositioners_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrect.cpp b/src/declarative/fx/qfxrect.cpp index d4207a6..c468b66 100644 --- a/src/declarative/fx/qfxrect.cpp +++ b/src/declarative/fx/qfxrect.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrect.h b/src/declarative/fx/qfxrect.h index e5bb8d3..ecfcdfb 100644 --- a/src/declarative/fx/qfxrect.h +++ b/src/declarative/fx/qfxrect.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrect_p.h b/src/declarative/fx/qfxrect_p.h index c055b76..688f640 100644 --- a/src/declarative/fx/qfxrect_p.h +++ b/src/declarative/fx/qfxrect_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp index 94954e7..9b833ef 100644 --- a/src/declarative/fx/qfxrepeater.cpp +++ b/src/declarative/fx/qfxrepeater.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrepeater.h b/src/declarative/fx/qfxrepeater.h index 7a0318b..acabe5d 100644 --- a/src/declarative/fx/qfxrepeater.h +++ b/src/declarative/fx/qfxrepeater.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxrepeater_p.h b/src/declarative/fx/qfxrepeater_p.h index a4eb96d..1ec6592 100644 --- a/src/declarative/fx/qfxrepeater_p.h +++ b/src/declarative/fx/qfxrepeater_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxscalegrid.cpp b/src/declarative/fx/qfxscalegrid.cpp index 4c6a522..9fe190e 100644 --- a/src/declarative/fx/qfxscalegrid.cpp +++ b/src/declarative/fx/qfxscalegrid.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxscalegrid_p.h b/src/declarative/fx/qfxscalegrid_p.h index bae1436..db7fbb0 100644 --- a/src/declarative/fx/qfxscalegrid_p.h +++ b/src/declarative/fx/qfxscalegrid_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtext.cpp b/src/declarative/fx/qfxtext.cpp index 4a01cbd..593bba5 100644 --- a/src/declarative/fx/qfxtext.cpp +++ b/src/declarative/fx/qfxtext.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtext.h b/src/declarative/fx/qfxtext.h index cdb8025..adabf06 100644 --- a/src/declarative/fx/qfxtext.h +++ b/src/declarative/fx/qfxtext.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtext_p.h b/src/declarative/fx/qfxtext_p.h index a10cdfa..e2e0efe 100644 --- a/src/declarative/fx/qfxtext_p.h +++ b/src/declarative/fx/qfxtext_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index ccb8f7e..85fd525 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextedit.h b/src/declarative/fx/qfxtextedit.h index f4f101a..42b457a 100644 --- a/src/declarative/fx/qfxtextedit.h +++ b/src/declarative/fx/qfxtextedit.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextedit_p.h b/src/declarative/fx/qfxtextedit_p.h index 82481ff..3dce50e 100644 --- a/src/declarative/fx/qfxtextedit_p.h +++ b/src/declarative/fx/qfxtextedit_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp index e9ddd3f..a99774f 100644 --- a/src/declarative/fx/qfxtextinput.cpp +++ b/src/declarative/fx/qfxtextinput.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextinput.h b/src/declarative/fx/qfxtextinput.h index 2540d41..d90c1ee 100644 --- a/src/declarative/fx/qfxtextinput.h +++ b/src/declarative/fx/qfxtextinput.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxtextinput_p.h b/src/declarative/fx/qfxtextinput_p.h index 3978be4..d1e9c44 100644 --- a/src/declarative/fx/qfxtextinput_p.h +++ b/src/declarative/fx/qfxtextinput_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxvisualitemmodel.cpp b/src/declarative/fx/qfxvisualitemmodel.cpp index 7ee6eea..222d15e 100644 --- a/src/declarative/fx/qfxvisualitemmodel.cpp +++ b/src/declarative/fx/qfxvisualitemmodel.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxvisualitemmodel.h b/src/declarative/fx/qfxvisualitemmodel.h index 8e33279..8396a34 100644 --- a/src/declarative/fx/qfxvisualitemmodel.h +++ b/src/declarative/fx/qfxvisualitemmodel.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp index f7030ca..2652eda 100644 --- a/src/declarative/fx/qfxwebview.cpp +++ b/src/declarative/fx/qfxwebview.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/fx/qfxwebview.h b/src/declarative/fx/qfxwebview.h index a31b2b0..7ee4014 100644 --- a/src/declarative/fx/qfxwebview.h +++ b/src/declarative/fx/qfxwebview.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index c5b2764..70cf06a 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -105,7 +105,7 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -159,7 +159,7 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index 4c45bc8..6986bd2 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index ef8a66b..b5f7264 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsastfwd_p.h b/src/declarative/qml/parser/qmljsastfwd_p.h index fcb97ad..b558a23 100644 --- a/src/declarative/qml/parser/qmljsastfwd_p.h +++ b/src/declarative/qml/parser/qmljsastfwd_p.h @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsastvisitor.cpp b/src/declarative/qml/parser/qmljsastvisitor.cpp index d3a1d53..1290c89 100644 --- a/src/declarative/qml/parser/qmljsastvisitor.cpp +++ b/src/declarative/qml/parser/qmljsastvisitor.cpp @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsastvisitor_p.h b/src/declarative/qml/parser/qmljsastvisitor_p.h index eea492a..7db84b0 100644 --- a/src/declarative/qml/parser/qmljsastvisitor_p.h +++ b/src/declarative/qml/parser/qmljsastvisitor_p.h @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsengine_p.cpp b/src/declarative/qml/parser/qmljsengine_p.cpp index 32068c0..cee90a3 100644 --- a/src/declarative/qml/parser/qmljsengine_p.cpp +++ b/src/declarative/qml/parser/qmljsengine_p.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsengine_p.h b/src/declarative/qml/parser/qmljsengine_p.h index 8627a99..a60c515 100644 --- a/src/declarative/qml/parser/qmljsengine_p.h +++ b/src/declarative/qml/parser/qmljsengine_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsglobal_p.h b/src/declarative/qml/parser/qmljsglobal_p.h index 99bb19f..c91de49 100644 --- a/src/declarative/qml/parser/qmljsglobal_p.h +++ b/src/declarative/qml/parser/qmljsglobal_p.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QMLJSGLOBAL_P_H #define QMLJSGLOBAL_P_H diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index 2b92b82..b8c6560 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -2,7 +2,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -10,8 +11,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -21,21 +22,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index 20d7188..d607e8d 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -2,7 +2,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -10,8 +11,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -21,21 +22,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljslexer.cpp b/src/declarative/qml/parser/qmljslexer.cpp index 2c03c21..d316f93 100644 --- a/src/declarative/qml/parser/qmljslexer.cpp +++ b/src/declarative/qml/parser/qmljslexer.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljslexer_p.h b/src/declarative/qml/parser/qmljslexer_p.h index 50f7c4b..f499750 100644 --- a/src/declarative/qml/parser/qmljslexer_p.h +++ b/src/declarative/qml/parser/qmljslexer_p.h @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsmemorypool_p.h b/src/declarative/qml/parser/qmljsmemorypool_p.h index 70e7737..24a2145 100644 --- a/src/declarative/qml/parser/qmljsmemorypool_p.h +++ b/src/declarative/qml/parser/qmljsmemorypool_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsnodepool_p.h b/src/declarative/qml/parser/qmljsnodepool_p.h index dfe3bac..ca4d729 100644 --- a/src/declarative/qml/parser/qmljsnodepool_p.h +++ b/src/declarative/qml/parser/qmljsnodepool_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index dd2553f..453503b 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -3,16 +3,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -22,21 +23,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index b35bec3..7fad58a 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -3,16 +3,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -22,21 +23,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qbitfield_p.h b/src/declarative/qml/qbitfield_p.h index a8cc9dc..8b3afdb 100644 --- a/src/declarative/qml/qbitfield_p.h +++ b/src/declarative/qml/qbitfield_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmetaobjectbuilder.cpp b/src/declarative/qml/qmetaobjectbuilder.cpp index e7a7591..c2f5659 100644 --- a/src/declarative/qml/qmetaobjectbuilder.cpp +++ b/src/declarative/qml/qmetaobjectbuilder.cpp @@ -1,16 +1,17 @@ /**************************************************************************** ** ** 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 QtCore module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://www.qtsoftware.com/contact. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmetaobjectbuilder_p.h b/src/declarative/qml/qmetaobjectbuilder_p.h index fc26c11..3eff4ff 100644 --- a/src/declarative/qml/qmetaobjectbuilder_p.h +++ b/src/declarative/qml/qmetaobjectbuilder_p.h @@ -1,16 +1,17 @@ /**************************************************************************** ** ** 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 QtCore module of the Qt Toolkit. +** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://www.qtsoftware.com/contact. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qml.h b/src/declarative/qml/qml.h index 818b4e7..43351b3 100644 --- a/src/declarative/qml/qml.h +++ b/src/declarative/qml/qml.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index eba4307..601ebca 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbasicscript_p.h b/src/declarative/qml/qmlbasicscript_p.h index 5ad7735..57d4fa7 100644 --- a/src/declarative/qml/qmlbasicscript_p.h +++ b/src/declarative/qml/qmlbasicscript_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index 317a4b3..50767d6 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbinding.h b/src/declarative/qml/qmlbinding.h index 6a3e92a..7af276b 100644 --- a/src/declarative/qml/qmlbinding.h +++ b/src/declarative/qml/qmlbinding.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbinding_p.h b/src/declarative/qml/qmlbinding_p.h index c9378cb..6977e5b 100644 --- a/src/declarative/qml/qmlbinding_p.h +++ b/src/declarative/qml/qmlbinding_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbindingoptimizations.cpp b/src/declarative/qml/qmlbindingoptimizations.cpp index 6dc221e..0efa600 100644 --- a/src/declarative/qml/qmlbindingoptimizations.cpp +++ b/src/declarative/qml/qmlbindingoptimizations.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlbindingoptimizations_p.h b/src/declarative/qml/qmlbindingoptimizations_p.h index d0a4df4..5a00eb2 100644 --- a/src/declarative/qml/qmlbindingoptimizations_p.h +++ b/src/declarative/qml/qmlbindingoptimizations_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlboundsignal.cpp b/src/declarative/qml/qmlboundsignal.cpp index d715309..63c2af2 100644 --- a/src/declarative/qml/qmlboundsignal.cpp +++ b/src/declarative/qml/qmlboundsignal.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlboundsignal_p.h b/src/declarative/qml/qmlboundsignal_p.h index 51c7155..35679fd 100644 --- a/src/declarative/qml/qmlboundsignal_p.h +++ b/src/declarative/qml/qmlboundsignal_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlclassfactory.cpp b/src/declarative/qml/qmlclassfactory.cpp index ddfbd78..3c19c2f 100644 --- a/src/declarative/qml/qmlclassfactory.cpp +++ b/src/declarative/qml/qmlclassfactory.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlclassfactory_p.h b/src/declarative/qml/qmlclassfactory_p.h index cd80ffc..91f616e 100644 --- a/src/declarative/qml/qmlclassfactory_p.h +++ b/src/declarative/qml/qmlclassfactory_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcleanup.cpp b/src/declarative/qml/qmlcleanup.cpp index 7799cfc..ef803d0 100644 --- a/src/declarative/qml/qmlcleanup.cpp +++ b/src/declarative/qml/qmlcleanup.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcleanup_p.h b/src/declarative/qml/qmlcleanup_p.h index e9196a3..c140e43 100644 --- a/src/declarative/qml/qmlcleanup_p.h +++ b/src/declarative/qml/qmlcleanup_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompileddata.cpp b/src/declarative/qml/qmlcompileddata.cpp index 7032a3b..f587053 100644 --- a/src/declarative/qml/qmlcompileddata.cpp +++ b/src/declarative/qml/qmlcompileddata.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 7a417bb..cc177f9 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h index 8a9ca9c..9a37832 100644 --- a/src/declarative/qml/qmlcompiler_p.h +++ b/src/declarative/qml/qmlcompiler_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index 6181f41..65af9a5 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponent.h b/src/declarative/qml/qmlcomponent.h index a72aa4e..2aa77d3 100644 --- a/src/declarative/qml/qmlcomponent.h +++ b/src/declarative/qml/qmlcomponent.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponent_p.h b/src/declarative/qml/qmlcomponent_p.h index f90502f..6b53086 100644 --- a/src/declarative/qml/qmlcomponent_p.h +++ b/src/declarative/qml/qmlcomponent_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponentjs.cpp b/src/declarative/qml/qmlcomponentjs.cpp index df3e834..4a63542 100644 --- a/src/declarative/qml/qmlcomponentjs.cpp +++ b/src/declarative/qml/qmlcomponentjs.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponentjs_p.h b/src/declarative/qml/qmlcomponentjs_p.h index 3213929..488f355 100644 --- a/src/declarative/qml/qmlcomponentjs_p.h +++ b/src/declarative/qml/qmlcomponentjs_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcomponentjs_p_p.h b/src/declarative/qml/qmlcomponentjs_p_p.h index 47ce491..4cb412e 100644 --- a/src/declarative/qml/qmlcomponentjs_p_p.h +++ b/src/declarative/qml/qmlcomponentjs_p_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompositetypedata_p.h b/src/declarative/qml/qmlcompositetypedata_p.h index ffcef4c..0d2843d 100644 --- a/src/declarative/qml/qmlcompositetypedata_p.h +++ b/src/declarative/qml/qmlcompositetypedata_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompositetypemanager.cpp b/src/declarative/qml/qmlcompositetypemanager.cpp index 075c359..3c4982b 100644 --- a/src/declarative/qml/qmlcompositetypemanager.cpp +++ b/src/declarative/qml/qmlcompositetypemanager.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcompositetypemanager_p.h b/src/declarative/qml/qmlcompositetypemanager_p.h index b6f84db..af028df 100644 --- a/src/declarative/qml/qmlcompositetypemanager_p.h +++ b/src/declarative/qml/qmlcompositetypemanager_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcontext.cpp b/src/declarative/qml/qmlcontext.cpp index 5032ff4..fe0d9cb 100644 --- a/src/declarative/qml/qmlcontext.cpp +++ b/src/declarative/qml/qmlcontext.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcontext.h b/src/declarative/qml/qmlcontext.h index 03baafa..de1d092 100644 --- a/src/declarative/qml/qmlcontext.h +++ b/src/declarative/qml/qmlcontext.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcontext_p.h b/src/declarative/qml/qmlcontext_p.h index 6af5f64..286b882 100644 --- a/src/declarative/qml/qmlcontext_p.h +++ b/src/declarative/qml/qmlcontext_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcontextscriptclass.cpp b/src/declarative/qml/qmlcontextscriptclass.cpp index a978df2..4615764 100644 --- a/src/declarative/qml/qmlcontextscriptclass.cpp +++ b/src/declarative/qml/qmlcontextscriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcontextscriptclass_p.h b/src/declarative/qml/qmlcontextscriptclass_p.h index 95dff5b..bbd779b 100644 --- a/src/declarative/qml/qmlcontextscriptclass_p.h +++ b/src/declarative/qml/qmlcontextscriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcustomparser.cpp b/src/declarative/qml/qmlcustomparser.cpp index dbcbeb1..32a745c 100644 --- a/src/declarative/qml/qmlcustomparser.cpp +++ b/src/declarative/qml/qmlcustomparser.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcustomparser_p.h b/src/declarative/qml/qmlcustomparser_p.h index eb3e579..a3697a7 100644 --- a/src/declarative/qml/qmlcustomparser_p.h +++ b/src/declarative/qml/qmlcustomparser_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlcustomparser_p_p.h b/src/declarative/qml/qmlcustomparser_p_p.h index 25023d3..2e0f14a 100644 --- a/src/declarative/qml/qmlcustomparser_p_p.h +++ b/src/declarative/qml/qmlcustomparser_p_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmldeclarativedata_p.h b/src/declarative/qml/qmldeclarativedata_p.h index f6ecc3d..aa82f32 100644 --- a/src/declarative/qml/qmldeclarativedata_p.h +++ b/src/declarative/qml/qmldeclarativedata_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 21eeb7c..a2d2b4c 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmldom.h b/src/declarative/qml/qmldom.h index 5816780..8c43c4a 100644 --- a/src/declarative/qml/qmldom.h +++ b/src/declarative/qml/qmldom.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmldom_p.h b/src/declarative/qml/qmldom_p.h index b15844a..4b4de80 100644 --- a/src/declarative/qml/qmldom_p.h +++ b/src/declarative/qml/qmldom_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 3da8aa9..f7f770e 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlengine.h b/src/declarative/qml/qmlengine.h index b4233e4..0b18e94 100644 --- a/src/declarative/qml/qmlengine.h +++ b/src/declarative/qml/qmlengine.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index efd26bf..18f7f35 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlenginedebug.cpp b/src/declarative/qml/qmlenginedebug.cpp index 63be6b0..05c5429 100644 --- a/src/declarative/qml/qmlenginedebug.cpp +++ b/src/declarative/qml/qmlenginedebug.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlenginedebug_p.h b/src/declarative/qml/qmlenginedebug_p.h index a8572eb..23657d9 100644 --- a/src/declarative/qml/qmlenginedebug_p.h +++ b/src/declarative/qml/qmlenginedebug_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlerror.cpp b/src/declarative/qml/qmlerror.cpp index f4c9580..3532cf5 100644 --- a/src/declarative/qml/qmlerror.cpp +++ b/src/declarative/qml/qmlerror.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlerror.h b/src/declarative/qml/qmlerror.h index ee3d7b4..c54f932 100644 --- a/src/declarative/qml/qmlerror.h +++ b/src/declarative/qml/qmlerror.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index e5e5cf9..dc2d4cd 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlexpression.h b/src/declarative/qml/qmlexpression.h index 127d3f3..9b123be 100644 --- a/src/declarative/qml/qmlexpression.h +++ b/src/declarative/qml/qmlexpression.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h index 4e13de3..24c3987 100644 --- a/src/declarative/qml/qmlexpression_p.h +++ b/src/declarative/qml/qmlexpression_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlglobalscriptclass.cpp b/src/declarative/qml/qmlglobalscriptclass.cpp index 91187c7..a9c5d3d 100644 --- a/src/declarative/qml/qmlglobalscriptclass.cpp +++ b/src/declarative/qml/qmlglobalscriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlglobalscriptclass_p.h b/src/declarative/qml/qmlglobalscriptclass_p.h index 1b58f1e..1658c27 100644 --- a/src/declarative/qml/qmlglobalscriptclass_p.h +++ b/src/declarative/qml/qmlglobalscriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlinfo.cpp b/src/declarative/qml/qmlinfo.cpp index 119641f..c0d9eca 100644 --- a/src/declarative/qml/qmlinfo.cpp +++ b/src/declarative/qml/qmlinfo.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlinfo.h b/src/declarative/qml/qmlinfo.h index f2d17fe..2e26ea4 100644 --- a/src/declarative/qml/qmlinfo.h +++ b/src/declarative/qml/qmlinfo.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlinstruction.cpp b/src/declarative/qml/qmlinstruction.cpp index a465445..dd075a8 100644 --- a/src/declarative/qml/qmlinstruction.cpp +++ b/src/declarative/qml/qmlinstruction.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlinstruction_p.h b/src/declarative/qml/qmlinstruction_p.h index dc18b05..f8954d5 100644 --- a/src/declarative/qml/qmlinstruction_p.h +++ b/src/declarative/qml/qmlinstruction_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlintegercache.cpp b/src/declarative/qml/qmlintegercache.cpp index 06955c7..b20b6eb 100644 --- a/src/declarative/qml/qmlintegercache.cpp +++ b/src/declarative/qml/qmlintegercache.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlintegercache_p.h b/src/declarative/qml/qmlintegercache_p.h index 6e9fadd..7816004 100644 --- a/src/declarative/qml/qmlintegercache_p.h +++ b/src/declarative/qml/qmlintegercache_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmllist.h b/src/declarative/qml/qmllist.h index 80c3138..c631d9e 100644 --- a/src/declarative/qml/qmllist.h +++ b/src/declarative/qml/qmllist.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmllistscriptclass.cpp b/src/declarative/qml/qmllistscriptclass.cpp index 09bde8c..f067db6 100644 --- a/src/declarative/qml/qmllistscriptclass.cpp +++ b/src/declarative/qml/qmllistscriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmllistscriptclass_p.h b/src/declarative/qml/qmllistscriptclass_p.h index 7592098..0c10472 100644 --- a/src/declarative/qml/qmllistscriptclass_p.h +++ b/src/declarative/qml/qmllistscriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp index edec988..6241b3f 100644 --- a/src/declarative/qml/qmlmetaproperty.cpp +++ b/src/declarative/qml/qmlmetaproperty.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlmetaproperty.h b/src/declarative/qml/qmlmetaproperty.h index 4a2b864..ba44ce18 100644 --- a/src/declarative/qml/qmlmetaproperty.h +++ b/src/declarative/qml/qmlmetaproperty.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlmetaproperty_p.h b/src/declarative/qml/qmlmetaproperty_p.h index 368ca30..925f1ea 100644 --- a/src/declarative/qml/qmlmetaproperty_p.h +++ b/src/declarative/qml/qmlmetaproperty_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlmetatype.cpp b/src/declarative/qml/qmlmetatype.cpp index 1ab7aff..6ce51bd 100644 --- a/src/declarative/qml/qmlmetatype.cpp +++ b/src/declarative/qml/qmlmetatype.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlmetatype.h b/src/declarative/qml/qmlmetatype.h index 42c278c..eb5fd28 100644 --- a/src/declarative/qml/qmlmetatype.h +++ b/src/declarative/qml/qmlmetatype.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlobjectscriptclass.cpp b/src/declarative/qml/qmlobjectscriptclass.cpp index eac354d..c5641e5 100644 --- a/src/declarative/qml/qmlobjectscriptclass.cpp +++ b/src/declarative/qml/qmlobjectscriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlobjectscriptclass_p.h b/src/declarative/qml/qmlobjectscriptclass_p.h index 7fb727e..6169812 100644 --- a/src/declarative/qml/qmlobjectscriptclass_p.h +++ b/src/declarative/qml/qmlobjectscriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlparser.cpp b/src/declarative/qml/qmlparser.cpp index f9e3c50..b666c33 100644 --- a/src/declarative/qml/qmlparser.cpp +++ b/src/declarative/qml/qmlparser.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlparser_p.h b/src/declarative/qml/qmlparser_p.h index f0867ea..5bffff2 100644 --- a/src/declarative/qml/qmlparser_p.h +++ b/src/declarative/qml/qmlparser_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlparserstatus.cpp b/src/declarative/qml/qmlparserstatus.cpp index 0d262ca..69ccfda 100644 --- a/src/declarative/qml/qmlparserstatus.cpp +++ b/src/declarative/qml/qmlparserstatus.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlparserstatus.h b/src/declarative/qml/qmlparserstatus.h index 88ed865..e12c7b5 100644 --- a/src/declarative/qml/qmlparserstatus.h +++ b/src/declarative/qml/qmlparserstatus.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlprivate.cpp b/src/declarative/qml/qmlprivate.cpp index 21b19e8..01353cc 100644 --- a/src/declarative/qml/qmlprivate.cpp +++ b/src/declarative/qml/qmlprivate.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlprivate.h b/src/declarative/qml/qmlprivate.h index 1b57f03..6ab36a2 100644 --- a/src/declarative/qml/qmlprivate.h +++ b/src/declarative/qml/qmlprivate.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertycache.cpp b/src/declarative/qml/qmlpropertycache.cpp index 4c24cdd..339bdef 100644 --- a/src/declarative/qml/qmlpropertycache.cpp +++ b/src/declarative/qml/qmlpropertycache.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertycache_p.h b/src/declarative/qml/qmlpropertycache_p.h index 6c3142a..c2e8abe 100644 --- a/src/declarative/qml/qmlpropertycache_p.h +++ b/src/declarative/qml/qmlpropertycache_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertyvalueinterceptor.cpp b/src/declarative/qml/qmlpropertyvalueinterceptor.cpp index 9a9aba8..c8a3f74 100644 --- a/src/declarative/qml/qmlpropertyvalueinterceptor.cpp +++ b/src/declarative/qml/qmlpropertyvalueinterceptor.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertyvalueinterceptor.h b/src/declarative/qml/qmlpropertyvalueinterceptor.h index 678c12c..71cc6c5 100644 --- a/src/declarative/qml/qmlpropertyvalueinterceptor.h +++ b/src/declarative/qml/qmlpropertyvalueinterceptor.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertyvaluesource.cpp b/src/declarative/qml/qmlpropertyvaluesource.cpp index 3317289..7c42e2f 100644 --- a/src/declarative/qml/qmlpropertyvaluesource.cpp +++ b/src/declarative/qml/qmlpropertyvaluesource.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlpropertyvaluesource.h b/src/declarative/qml/qmlpropertyvaluesource.h index 384d2f9..2017fb2 100644 --- a/src/declarative/qml/qmlpropertyvaluesource.h +++ b/src/declarative/qml/qmlpropertyvaluesource.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlproxymetaobject.cpp b/src/declarative/qml/qmlproxymetaobject.cpp index 0baea31..983c350 100644 --- a/src/declarative/qml/qmlproxymetaobject.cpp +++ b/src/declarative/qml/qmlproxymetaobject.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlproxymetaobject_p.h b/src/declarative/qml/qmlproxymetaobject_p.h index 736bd91..8ab3b6c 100644 --- a/src/declarative/qml/qmlproxymetaobject_p.h +++ b/src/declarative/qml/qmlproxymetaobject_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlrefcount.cpp b/src/declarative/qml/qmlrefcount.cpp index 6c409e1..9422625 100644 --- a/src/declarative/qml/qmlrefcount.cpp +++ b/src/declarative/qml/qmlrefcount.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlrefcount_p.h b/src/declarative/qml/qmlrefcount_p.h index a87d596..cd6afd3 100644 --- a/src/declarative/qml/qmlrefcount_p.h +++ b/src/declarative/qml/qmlrefcount_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlrewrite.cpp b/src/declarative/qml/qmlrewrite.cpp index 7cf8888..1f011c2 100644 --- a/src/declarative/qml/qmlrewrite.cpp +++ b/src/declarative/qml/qmlrewrite.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlrewrite_p.h b/src/declarative/qml/qmlrewrite_p.h index 59057d5..914f997 100644 --- a/src/declarative/qml/qmlrewrite_p.h +++ b/src/declarative/qml/qmlrewrite_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlscript.cpp b/src/declarative/qml/qmlscript.cpp index 307d72f..7242498 100644 --- a/src/declarative/qml/qmlscript.cpp +++ b/src/declarative/qml/qmlscript.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index fb84651..8364f53 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlscriptparser_p.h b/src/declarative/qml/qmlscriptparser_p.h index b25d6bf..d4cdeda 100644 --- a/src/declarative/qml/qmlscriptparser_p.h +++ b/src/declarative/qml/qmlscriptparser_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlscriptstring.cpp b/src/declarative/qml/qmlscriptstring.cpp index 8a6afcc..6f669d5 100644 --- a/src/declarative/qml/qmlscriptstring.cpp +++ b/src/declarative/qml/qmlscriptstring.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlscriptstring.h b/src/declarative/qml/qmlscriptstring.h index c6067ce..73a473f 100644 --- a/src/declarative/qml/qmlscriptstring.h +++ b/src/declarative/qml/qmlscriptstring.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlsqldatabase.cpp b/src/declarative/qml/qmlsqldatabase.cpp index 9e39ffc..01d0590 100644 --- a/src/declarative/qml/qmlsqldatabase.cpp +++ b/src/declarative/qml/qmlsqldatabase.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlsqldatabase_p.h b/src/declarative/qml/qmlsqldatabase_p.h index f76a2fd..5a38bf0 100644 --- a/src/declarative/qml/qmlsqldatabase_p.h +++ b/src/declarative/qml/qmlsqldatabase_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlstringconverters.cpp b/src/declarative/qml/qmlstringconverters.cpp index 34025c5..0f6ada9 100644 --- a/src/declarative/qml/qmlstringconverters.cpp +++ b/src/declarative/qml/qmlstringconverters.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlstringconverters_p.h b/src/declarative/qml/qmlstringconverters_p.h index ab7448c..a31f06a 100644 --- a/src/declarative/qml/qmlstringconverters_p.h +++ b/src/declarative/qml/qmlstringconverters_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmltypenamecache.cpp b/src/declarative/qml/qmltypenamecache.cpp index d706c63..5c0d23b 100644 --- a/src/declarative/qml/qmltypenamecache.cpp +++ b/src/declarative/qml/qmltypenamecache.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmltypenamecache_p.h b/src/declarative/qml/qmltypenamecache_p.h index ec1e79d..6ff403d 100644 --- a/src/declarative/qml/qmltypenamecache_p.h +++ b/src/declarative/qml/qmltypenamecache_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmltypenamescriptclass.cpp b/src/declarative/qml/qmltypenamescriptclass.cpp index 7a14432..8b2addf 100644 --- a/src/declarative/qml/qmltypenamescriptclass.cpp +++ b/src/declarative/qml/qmltypenamescriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmltypenamescriptclass_p.h b/src/declarative/qml/qmltypenamescriptclass_p.h index d8112d2..f630854 100644 --- a/src/declarative/qml/qmltypenamescriptclass_p.h +++ b/src/declarative/qml/qmltypenamescriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvaluetype.cpp b/src/declarative/qml/qmlvaluetype.cpp index 84c9ecb..1713205 100644 --- a/src/declarative/qml/qmlvaluetype.cpp +++ b/src/declarative/qml/qmlvaluetype.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvaluetype_p.h b/src/declarative/qml/qmlvaluetype_p.h index d3adf1e..9842c02 100644 --- a/src/declarative/qml/qmlvaluetype_p.h +++ b/src/declarative/qml/qmlvaluetype_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvaluetypescriptclass.cpp b/src/declarative/qml/qmlvaluetypescriptclass.cpp index 6a7bdeb..0c30992 100644 --- a/src/declarative/qml/qmlvaluetypescriptclass.cpp +++ b/src/declarative/qml/qmlvaluetypescriptclass.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvaluetypescriptclass_p.h b/src/declarative/qml/qmlvaluetypescriptclass_p.h index d656a22..bd31ec1 100644 --- a/src/declarative/qml/qmlvaluetypescriptclass_p.h +++ b/src/declarative/qml/qmlvaluetypescriptclass_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index b986b60..ad5dfb4 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvme_p.h b/src/declarative/qml/qmlvme_p.h index 38ba06f..ab58b6a 100644 --- a/src/declarative/qml/qmlvme_p.h +++ b/src/declarative/qml/qmlvme_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvmemetaobject.cpp b/src/declarative/qml/qmlvmemetaobject.cpp index 83f904b..5315089 100644 --- a/src/declarative/qml/qmlvmemetaobject.cpp +++ b/src/declarative/qml/qmlvmemetaobject.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlvmemetaobject_p.h b/src/declarative/qml/qmlvmemetaobject_p.h index 74b6d09..9262b19 100644 --- a/src/declarative/qml/qmlvmemetaobject_p.h +++ b/src/declarative/qml/qmlvmemetaobject_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlwatcher.cpp b/src/declarative/qml/qmlwatcher.cpp index 8cd51e0..263d9df 100644 --- a/src/declarative/qml/qmlwatcher.cpp +++ b/src/declarative/qml/qmlwatcher.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlwatcher_p.h b/src/declarative/qml/qmlwatcher_p.h index 0bfcd71..5050949 100644 --- a/src/declarative/qml/qmlwatcher_p.h +++ b/src/declarative/qml/qmlwatcher_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp index eb7235b..0c0cd9c 100644 --- a/src/declarative/qml/qmlxmlhttprequest.cpp +++ b/src/declarative/qml/qmlxmlhttprequest.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qmlxmlhttprequest_p.h b/src/declarative/qml/qmlxmlhttprequest_p.h index 2142bc6..dfed5d2 100644 --- a/src/declarative/qml/qmlxmlhttprequest_p.h +++ b/src/declarative/qml/qmlxmlhttprequest_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/qpodvector_p.h b/src/declarative/qml/qpodvector_p.h index 77f7425..3fe2e65 100644 --- a/src/declarative/qml/qpodvector_p.h +++ b/src/declarative/qml/qpodvector_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/rewriter/rewriter.cpp b/src/declarative/qml/rewriter/rewriter.cpp index 1248a1c..ae1db30 100644 --- a/src/declarative/qml/rewriter/rewriter.cpp +++ b/src/declarative/qml/rewriter/rewriter.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/rewriter/rewriter_p.h b/src/declarative/qml/rewriter/rewriter_p.h index ae59226..ed9be16 100644 --- a/src/declarative/qml/rewriter/rewriter_p.h +++ b/src/declarative/qml/rewriter/rewriter_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/rewriter/textwriter.cpp b/src/declarative/qml/rewriter/textwriter.cpp index 1ec0675..8f89f12 100644 --- a/src/declarative/qml/rewriter/textwriter.cpp +++ b/src/declarative/qml/rewriter/textwriter.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/qml/rewriter/textwriter_p.h b/src/declarative/qml/rewriter/textwriter_p.h index 5894e6c..14c4726 100644 --- a/src/declarative/qml/rewriter/textwriter_p.h +++ b/src/declarative/qml/rewriter/textwriter_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qfxglobal.h b/src/declarative/util/qfxglobal.h index 9b4aee1..d720406 100644 --- a/src/declarative/util/qfxglobal.h +++ b/src/declarative/util/qfxglobal.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qfxperf.cpp b/src/declarative/util/qfxperf.cpp index 739e480..c55e34f 100644 --- a/src/declarative/util/qfxperf.cpp +++ b/src/declarative/util/qfxperf.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qfxperf_p.h b/src/declarative/util/qfxperf_p.h index cea7e80..3956eb1 100644 --- a/src/declarative/util/qfxperf_p.h +++ b/src/declarative/util/qfxperf_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index f103a6b..d93af1f 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlanimation.h b/src/declarative/util/qmlanimation.h index f4f9f38..f1d297d 100644 --- a/src/declarative/util/qmlanimation.h +++ b/src/declarative/util/qmlanimation.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlanimation_p.h b/src/declarative/util/qmlanimation_p.h index 1f52fcd..9a667a0 100644 --- a/src/declarative/util/qmlanimation_p.h +++ b/src/declarative/util/qmlanimation_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlbind.cpp b/src/declarative/util/qmlbind.cpp index d18ef47..baa8d68 100644 --- a/src/declarative/util/qmlbind.cpp +++ b/src/declarative/util/qmlbind.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlbind.h b/src/declarative/util/qmlbind.h index 731cdf8..a4ba81d 100644 --- a/src/declarative/util/qmlbind.h +++ b/src/declarative/util/qmlbind.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlconnection.cpp b/src/declarative/util/qmlconnection.cpp index 5475fb2..73d69ff 100644 --- a/src/declarative/util/qmlconnection.cpp +++ b/src/declarative/util/qmlconnection.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlconnection.h b/src/declarative/util/qmlconnection.h index 3d69c6f..7a69771 100644 --- a/src/declarative/util/qmlconnection.h +++ b/src/declarative/util/qmlconnection.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmleasefollow.cpp b/src/declarative/util/qmleasefollow.cpp index 9d17d25..cf750cd 100644 --- a/src/declarative/util/qmleasefollow.cpp +++ b/src/declarative/util/qmleasefollow.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmleasefollow.h b/src/declarative/util/qmleasefollow.h index a653ea6..d242821 100644 --- a/src/declarative/util/qmleasefollow.h +++ b/src/declarative/util/qmleasefollow.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmllistaccessor.cpp b/src/declarative/util/qmllistaccessor.cpp index 3e4cb64..cdde748 100644 --- a/src/declarative/util/qmllistaccessor.cpp +++ b/src/declarative/util/qmllistaccessor.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmllistaccessor.h b/src/declarative/util/qmllistaccessor.h index c3ff632..2697606 100644 --- a/src/declarative/util/qmllistaccessor.h +++ b/src/declarative/util/qmllistaccessor.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp index 9c9fa6a..23ff60b 100644 --- a/src/declarative/util/qmllistmodel.cpp +++ b/src/declarative/util/qmllistmodel.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmllistmodel.h b/src/declarative/util/qmllistmodel.h index 7bb94cf..5568fd2 100644 --- a/src/declarative/util/qmllistmodel.h +++ b/src/declarative/util/qmllistmodel.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlnullablevalue_p.h b/src/declarative/util/qmlnullablevalue_p.h index 6455642..151a3d4 100644 --- a/src/declarative/util/qmlnullablevalue_p.h +++ b/src/declarative/util/qmlnullablevalue_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlopenmetaobject.cpp b/src/declarative/util/qmlopenmetaobject.cpp index 11648f6..a9be1ff 100644 --- a/src/declarative/util/qmlopenmetaobject.cpp +++ b/src/declarative/util/qmlopenmetaobject.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlopenmetaobject.h b/src/declarative/util/qmlopenmetaobject.h index be0490d..1cf12f8 100644 --- a/src/declarative/util/qmlopenmetaobject.h +++ b/src/declarative/util/qmlopenmetaobject.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpackage.cpp b/src/declarative/util/qmlpackage.cpp index 7df8453..b6bdd1a 100644 --- a/src/declarative/util/qmlpackage.cpp +++ b/src/declarative/util/qmlpackage.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpackage.h b/src/declarative/util/qmlpackage.h index 7cceaa7..abb57c6 100644 --- a/src/declarative/util/qmlpackage.h +++ b/src/declarative/util/qmlpackage.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpropertychanges.cpp b/src/declarative/util/qmlpropertychanges.cpp index 7e1f15c..325e7cf 100644 --- a/src/declarative/util/qmlpropertychanges.cpp +++ b/src/declarative/util/qmlpropertychanges.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpropertychanges.h b/src/declarative/util/qmlpropertychanges.h index 2931cdb..87562de 100644 --- a/src/declarative/util/qmlpropertychanges.h +++ b/src/declarative/util/qmlpropertychanges.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpropertymap.cpp b/src/declarative/util/qmlpropertymap.cpp index a587af3..c6641b7 100644 --- a/src/declarative/util/qmlpropertymap.cpp +++ b/src/declarative/util/qmlpropertymap.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlpropertymap.h b/src/declarative/util/qmlpropertymap.h index 24b4395..0f641b2 100644 --- a/src/declarative/util/qmlpropertymap.h +++ b/src/declarative/util/qmlpropertymap.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlspringfollow.cpp b/src/declarative/util/qmlspringfollow.cpp index 569cc48..a12ef49 100644 --- a/src/declarative/util/qmlspringfollow.cpp +++ b/src/declarative/util/qmlspringfollow.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlspringfollow.h b/src/declarative/util/qmlspringfollow.h index 1b77861..cadb344 100644 --- a/src/declarative/util/qmlspringfollow.h +++ b/src/declarative/util/qmlspringfollow.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 425480c..fb3ef5c 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstate.h b/src/declarative/util/qmlstate.h index 50128c0..9d18390 100644 --- a/src/declarative/util/qmlstate.h +++ b/src/declarative/util/qmlstate.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstate_p.h b/src/declarative/util/qmlstate_p.h index 63fc6da..5e414dc 100644 --- a/src/declarative/util/qmlstate_p.h +++ b/src/declarative/util/qmlstate_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstategroup.cpp b/src/declarative/util/qmlstategroup.cpp index bb40a8b..c2a419f 100644 --- a/src/declarative/util/qmlstategroup.cpp +++ b/src/declarative/util/qmlstategroup.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstategroup.h b/src/declarative/util/qmlstategroup.h index cf79eb4..a8f393c 100644 --- a/src/declarative/util/qmlstategroup.h +++ b/src/declarative/util/qmlstategroup.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 4d469f9..2cb1a94 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index 237e3e8..43eca61 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlsystempalette.cpp b/src/declarative/util/qmlsystempalette.cpp index 014eca8..ba4f04b 100644 --- a/src/declarative/util/qmlsystempalette.cpp +++ b/src/declarative/util/qmlsystempalette.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlsystempalette.h b/src/declarative/util/qmlsystempalette.h index 6558c7e..e87534e 100644 --- a/src/declarative/util/qmlsystempalette.h +++ b/src/declarative/util/qmlsystempalette.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltimeline.cpp b/src/declarative/util/qmltimeline.cpp index 5ba310d..56fa203 100644 --- a/src/declarative/util/qmltimeline.cpp +++ b/src/declarative/util/qmltimeline.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltimeline_p.h b/src/declarative/util/qmltimeline_p.h index abed80a..f1e716c 100644 --- a/src/declarative/util/qmltimeline_p.h +++ b/src/declarative/util/qmltimeline_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp index f1991f5..ee90143 100644 --- a/src/declarative/util/qmltimer.cpp +++ b/src/declarative/util/qmltimer.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltimer.h b/src/declarative/util/qmltimer.h index 22478cb..7d40d5a 100644 --- a/src/declarative/util/qmltimer.h +++ b/src/declarative/util/qmltimer.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltransition.cpp b/src/declarative/util/qmltransition.cpp index 97a3b74..328d5ca 100644 --- a/src/declarative/util/qmltransition.cpp +++ b/src/declarative/util/qmltransition.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltransition.h b/src/declarative/util/qmltransition.h index b09341d..27c4ec7 100644 --- a/src/declarative/util/qmltransition.h +++ b/src/declarative/util/qmltransition.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp index 7eaccac..eae812d 100644 --- a/src/declarative/util/qmltransitionmanager.cpp +++ b/src/declarative/util/qmltransitionmanager.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmltransitionmanager_p.h b/src/declarative/util/qmltransitionmanager_p.h index 74a3950..4b7052a 100644 --- a/src/declarative/util/qmltransitionmanager_p.h +++ b/src/declarative/util/qmltransitionmanager_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlview.cpp b/src/declarative/util/qmlview.cpp index 329a9b2..095ee4c 100644 --- a/src/declarative/util/qmlview.cpp +++ b/src/declarative/util/qmlview.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qmlview.h b/src/declarative/util/qmlview.h index 822827a..3a9e4bf 100644 --- a/src/declarative/util/qmlview.h +++ b/src/declarative/util/qmlview.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qperformancelog.cpp b/src/declarative/util/qperformancelog.cpp index 8e11997..e1cc9ab 100644 --- a/src/declarative/util/qperformancelog.cpp +++ b/src/declarative/util/qperformancelog.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/util/qperformancelog_p.h b/src/declarative/util/qperformancelog_p.h index 6655a8d..e7a3b5e 100644 --- a/src/declarative/util/qperformancelog_p.h +++ b/src/declarative/util/qperformancelog_p.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/widgets/graphicslayouts.cpp b/src/declarative/widgets/graphicslayouts.cpp index 8707b94..80b1700 100644 --- a/src/declarative/widgets/graphicslayouts.cpp +++ b/src/declarative/widgets/graphicslayouts.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/widgets/graphicslayouts.h b/src/declarative/widgets/graphicslayouts.h index 45f1439..9bb4053 100644 --- a/src/declarative/widgets/graphicslayouts.h +++ b/src/declarative/widgets/graphicslayouts.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/widgets/graphicswidgets.cpp b/src/declarative/widgets/graphicswidgets.cpp index cfcc87b..0378500 100644 --- a/src/declarative/widgets/graphicswidgets.cpp +++ b/src/declarative/widgets/graphicswidgets.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/widgets/graphicswidgets.h b/src/declarative/widgets/graphicswidgets.h index 8147400..9e08980 100644 --- a/src/declarative/widgets/graphicswidgets.h +++ b/src/declarative/widgets/graphicswidgets.h @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ -- cgit v0.12 From 5a9235d7d7a8d9fbe40efb573b5cf91236d11d6f Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 15:55:14 +1000 Subject: fix headers --- src/script/bridge/qscriptdeclarativeclass.cpp | 2 +- src/script/bridge/qscriptdeclarativeclass_p.h | 2 +- src/script/bridge/qscriptdeclarativeobject.cpp | 2 +- src/script/bridge/qscriptdeclarativeobject_p.h | 2 +- tests/auto/declarative/anchors/tst_anchors.cpp | 40 ++++++++++++++++++++++ .../animatedimage/tst_animatedimage.cpp | 40 ++++++++++++++++++++++ .../auto/declarative/animations/tst_animations.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/behaviors/tst_behaviors.cpp | 40 ++++++++++++++++++++++ .../datetimeformatter/tst_datetimeformatter.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/examples/tst_examples.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/layouts/tst_layouts.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/listview/tst_listview.cpp | 40 ++++++++++++++++++++++ .../numberformatter/tst_numberformatter.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/pathview/tst_pathview.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qfxloader/tst_qfxloader.cpp | 40 ++++++++++++++++++++++ .../qfxpixmapcache/tst_qfxpixmapcache.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qfxtext/tst_qfxtext.cpp | 40 ++++++++++++++++++++++ .../declarative/qfxtextedit/tst_qfxtextedit.cpp | 40 ++++++++++++++++++++++ .../declarative/qfxtextinput/tst_qfxtextinput.cpp | 40 ++++++++++++++++++++++ .../auto/declarative/qfxwebview/tst_qfxwebview.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmldom/tst_qmldom.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmlecmascript/testtypes.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmlecmascript/testtypes.h | 40 ++++++++++++++++++++++ .../qmlecmascript/tst_qmlecmascript.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmllanguage/testtypes.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmllanguage/testtypes.h | 40 ++++++++++++++++++++++ .../declarative/qmllanguage/tst_qmllanguage.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmllist/tst_qmllist.cpp | 40 ++++++++++++++++++++++ .../qmllistaccessor/tst_qmllistaccessor.cpp | 40 ++++++++++++++++++++++ .../qmlmetaproperty/tst_qmlmetaproperty.cpp | 40 ++++++++++++++++++++++ .../qmlpropertymap/tst_qmlpropertymap.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/qmltimer/tst_qmltimer.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/repeater/tst_repeater.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/sql/tst_sql.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/states/tst_states.cpp | 40 ++++++++++++++++++++++ tests/auto/declarative/visual/tst_visual.cpp | 40 ++++++++++++++++++++++ .../benchmarks/declarative/binding/tst_binding.cpp | 34 ++++++++++++++++++ .../declarative/pointers/tst_pointers.cpp | 34 ++++++++++++++++++ .../declarative/qmlcomponent/tst_qmlcomponent.cpp | 34 ++++++++++++++++++ .../qmlmetaproperty/tst_qmlmetaproperty.cpp | 34 ++++++++++++++++++ tests/benchmarks/qmlpainting/tst_qmlpainting.cpp | 32 ++++++++--------- tools/linguist/lupdate/qml.cpp | 32 ++++++++--------- .../creatorplugin/inspectoroutputpane.cpp | 40 ++++++++++++++++++++++ .../creatorplugin/inspectoroutputpane.h | 40 ++++++++++++++++++++++ tools/qmldebugger/creatorplugin/qmlinspector.h | 40 ++++++++++++++++++++++ .../qmldebugger/creatorplugin/qmlinspectormode.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/creatorplugin/qmlinspectormode.h | 40 ++++++++++++++++++++++ .../creatorplugin/qmlinspectorplugin.cpp | 40 ++++++++++++++++++++++ .../qmldebugger/creatorplugin/qmlinspectorplugin.h | 40 ++++++++++++++++++++++ tools/qmldebugger/creatorplugin/runcontrol.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/creatorplugin/runcontrol.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/canvasframerate.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/canvasframerate.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/engine.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/engine.h | 40 ++++++++++++++++++++++ .../standalone/expressionquerywidget.cpp | 40 ++++++++++++++++++++++ .../qmldebugger/standalone/expressionquerywidget.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/main.cpp | 40 ++++++++++++++++++++++ .../standalone/objectpropertiesview.cpp | 40 ++++++++++++++++++++++ .../qmldebugger/standalone/objectpropertiesview.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/objecttree.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/objecttree.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/qmldebugger.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/qmldebugger.h | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/watchtable.cpp | 40 ++++++++++++++++++++++ tools/qmldebugger/standalone/watchtable.h | 40 ++++++++++++++++++++++ tools/qmlviewer/proxysettings.h | 38 +++++++++++++++++--- tools/qmlviewer/qfxtester.h | 38 +++++++++++++++++--- tools/qmlviewer/qmlviewer.h | 38 +++++++++++++++++--- 69 files changed, 2511 insertions(+), 51 deletions(-) diff --git a/src/script/bridge/qscriptdeclarativeclass.cpp b/src/script/bridge/qscriptdeclarativeclass.cpp index 1e59f66..f0c1c45 100644 --- a/src/script/bridge/qscriptdeclarativeclass.cpp +++ b/src/script/bridge/qscriptdeclarativeclass.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/script/bridge/qscriptdeclarativeclass_p.h b/src/script/bridge/qscriptdeclarativeclass_p.h index 559e842..4e06931 100644 --- a/src/script/bridge/qscriptdeclarativeclass_p.h +++ b/src/script/bridge/qscriptdeclarativeclass_p.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/script/bridge/qscriptdeclarativeobject.cpp b/src/script/bridge/qscriptdeclarativeobject.cpp index 76c2eb0..1af632d 100644 --- a/src/script/bridge/qscriptdeclarativeobject.cpp +++ b/src/script/bridge/qscriptdeclarativeobject.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/src/script/bridge/qscriptdeclarativeobject_p.h b/src/script/bridge/qscriptdeclarativeobject_p.h index c6dfb83..73e5527 100644 --- a/src/script/bridge/qscriptdeclarativeobject_p.h +++ b/src/script/bridge/qscriptdeclarativeobject_p.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtScript module of the Qt Toolkit. +** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp index ec977da..b7b5a45 100644 --- a/tests/auto/declarative/anchors/tst_anchors.cpp +++ b/tests/auto/declarative/anchors/tst_anchors.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index 5c71731..440973a 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp index a6f67b8..141174a 100644 --- a/tests/auto/declarative/animations/tst_animations.cpp +++ b/tests/auto/declarative/animations/tst_animations.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp index 7bfadf6..073d5bc 100644 --- a/tests/auto/declarative/behaviors/tst_behaviors.cpp +++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp index 556912e..a59953a 100644 --- a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp +++ b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp index 51f6e5f..ac12204 100644 --- a/tests/auto/declarative/examples/tst_examples.cpp +++ b/tests/auto/declarative/examples/tst_examples.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index d1e6aab..31e5415 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp index 1875836..462ae21 100644 --- a/tests/auto/declarative/listview/tst_listview.cpp +++ b/tests/auto/declarative/listview/tst_listview.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp index 412557f..31816fa 100644 --- a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp +++ b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp index 6e670bf..2ab2ede 100644 --- a/tests/auto/declarative/pathview/tst_pathview.cpp +++ b/tests/auto/declarative/pathview/tst_pathview.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp index 2109898..8d3905f 100644 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp index 5e24831..665aacd 100644 --- a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp +++ b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp index cae85a4..e446409 100644 --- a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp +++ b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp index f78e564..4d9b440 100644 --- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp +++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include "../../../shared/util.h" #include diff --git a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp index 069574c..277c33d 100644 --- a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp +++ b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include "../../../shared/util.h" #include diff --git a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp index dc124ce..45aa734 100644 --- a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp +++ b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include "../../../shared/util.h" #include diff --git a/tests/auto/declarative/qmldom/tst_qmldom.cpp b/tests/auto/declarative/qmldom/tst_qmldom.cpp index 8079a23..350e985 100644 --- a/tests/auto/declarative/qmldom/tst_qmldom.cpp +++ b/tests/auto/declarative/qmldom/tst_qmldom.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmlecmascript/testtypes.cpp b/tests/auto/declarative/qmlecmascript/testtypes.cpp index 22e3071..9af8ed7 100644 --- a/tests/auto/declarative/qmlecmascript/testtypes.cpp +++ b/tests/auto/declarative/qmlecmascript/testtypes.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include "testtypes.h" class BaseExtensionObject : public QObject diff --git a/tests/auto/declarative/qmlecmascript/testtypes.h b/tests/auto/declarative/qmlecmascript/testtypes.h index ae3a954..88616096 100644 --- a/tests/auto/declarative/qmlecmascript/testtypes.h +++ b/tests/auto/declarative/qmlecmascript/testtypes.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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 TESTTYPES_H #define TESTTYPES_H diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp index 48c2249..a788109 100644 --- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp +++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmllanguage/testtypes.cpp b/tests/auto/declarative/qmllanguage/testtypes.cpp index 58d99f1..8b1ab59 100644 --- a/tests/auto/declarative/qmllanguage/testtypes.cpp +++ b/tests/auto/declarative/qmllanguage/testtypes.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include "testtypes.h" QML_DEFINE_INTERFACE(MyInterface); diff --git a/tests/auto/declarative/qmllanguage/testtypes.h b/tests/auto/declarative/qmllanguage/testtypes.h index 355ff8b..ace86f0 100644 --- a/tests/auto/declarative/qmllanguage/testtypes.h +++ b/tests/auto/declarative/qmllanguage/testtypes.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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 TESTTYPES_H #define TESTTYPES_H diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp index 6494c40..7fa2f25 100644 --- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp +++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmllist/tst_qmllist.cpp b/tests/auto/declarative/qmllist/tst_qmllist.cpp index 541ca64..c59ff1d 100644 --- a/tests/auto/declarative/qmllist/tst_qmllist.cpp +++ b/tests/auto/declarative/qmllist/tst_qmllist.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp index f5b57ea..aee723f 100644 --- a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp +++ b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp index 65d061e..52c673f 100644 --- a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp +++ b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp index 7d3cc43..407c09c 100644 --- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp +++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp index 15b558f..ecf8b25 100644 --- a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp +++ b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp index 68007a6..d58ab4a 100644 --- a/tests/auto/declarative/repeater/tst_repeater.cpp +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp index 0ebdccd..338d8fe 100644 --- a/tests/auto/declarative/sql/tst_sql.cpp +++ b/tests/auto/declarative/sql/tst_sql.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include "../../../shared/util.h" #include diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp index b2532a2..7d59b36 100644 --- a/tests/auto/declarative/states/tst_states.cpp +++ b/tests/auto/declarative/states/tst_states.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/auto/declarative/visual/tst_visual.cpp b/tests/auto/declarative/visual/tst_visual.cpp index a9f4740..a79b6f9 100644 --- a/tests/auto/declarative/visual/tst_visual.cpp +++ b/tests/auto/declarative/visual/tst_visual.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include #include #include diff --git a/tests/benchmarks/declarative/binding/tst_binding.cpp b/tests/benchmarks/declarative/binding/tst_binding.cpp index e593382..02312e6 100644 --- a/tests/benchmarks/declarative/binding/tst_binding.cpp +++ b/tests/benchmarks/declarative/binding/tst_binding.cpp @@ -1,8 +1,42 @@ /**************************************************************************** ** ** 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 test suite 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$ +** ****************************************************************************/ #include diff --git a/tests/benchmarks/declarative/pointers/tst_pointers.cpp b/tests/benchmarks/declarative/pointers/tst_pointers.cpp index f397c0c..5026660 100644 --- a/tests/benchmarks/declarative/pointers/tst_pointers.cpp +++ b/tests/benchmarks/declarative/pointers/tst_pointers.cpp @@ -1,8 +1,42 @@ /**************************************************************************** ** ** 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 test suite 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$ +** ****************************************************************************/ #include diff --git a/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp b/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp index f0e029d..50cfc93 100644 --- a/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp +++ b/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp @@ -1,8 +1,42 @@ /**************************************************************************** ** ** 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 test suite 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$ +** ****************************************************************************/ #include diff --git a/tests/benchmarks/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp b/tests/benchmarks/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp index c22af03..3a3dc7a 100644 --- a/tests/benchmarks/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp +++ b/tests/benchmarks/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp @@ -1,8 +1,42 @@ /**************************************************************************** ** ** 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 test suite 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$ +** ****************************************************************************/ #include diff --git a/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp b/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp index ae6f9a3..3c17dee 100644 --- a/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp +++ b/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the test suite of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/tools/linguist/lupdate/qml.cpp b/tools/linguist/lupdate/qml.cpp index f66a6bd..860d87c 100644 --- a/tools/linguist/lupdate/qml.cpp +++ b/tools/linguist/lupdate/qml.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/tools/qmldebugger/creatorplugin/inspectoroutputpane.cpp b/tools/qmldebugger/creatorplugin/inspectoroutputpane.cpp index 5023e3e..b830007 100644 --- a/tools/qmldebugger/creatorplugin/inspectoroutputpane.cpp +++ b/tools/qmldebugger/creatorplugin/inspectoroutputpane.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include "inspectoroutputpane.h" diff --git a/tools/qmldebugger/creatorplugin/inspectoroutputpane.h b/tools/qmldebugger/creatorplugin/inspectoroutputpane.h index 60c648a..04f506d 100644 --- a/tools/qmldebugger/creatorplugin/inspectoroutputpane.h +++ b/tools/qmldebugger/creatorplugin/inspectoroutputpane.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 INSPECTOROUTPUTPANE_H #define INSPECTOROUTPUTPANE_H diff --git a/tools/qmldebugger/creatorplugin/qmlinspector.h b/tools/qmldebugger/creatorplugin/qmlinspector.h index 98b9cbe..354e88e 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspector.h +++ b/tools/qmldebugger/creatorplugin/qmlinspector.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 QMLINSPECTOR_H #define QMLINSPECTOR_H diff --git a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp index 5881cd1..50d56f0 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp +++ b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include #include diff --git a/tools/qmldebugger/creatorplugin/qmlinspectormode.h b/tools/qmldebugger/creatorplugin/qmlinspectormode.h index c70d630..93c2e44 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectormode.h +++ b/tools/qmldebugger/creatorplugin/qmlinspectormode.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 QMLINSPECTORMODE_H #define QMLINSPECTORMODE_H diff --git a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp index 5108c35..35366c9 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp +++ b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include #include diff --git a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.h b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.h index b0237e2..57d9fb3 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.h +++ b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 QMLINSPECTORPLUGIN_H #define QMLINSPECTORPLUGIN_H diff --git a/tools/qmldebugger/creatorplugin/runcontrol.cpp b/tools/qmldebugger/creatorplugin/runcontrol.cpp index 11c7165..279f287 100644 --- a/tools/qmldebugger/creatorplugin/runcontrol.cpp +++ b/tools/qmldebugger/creatorplugin/runcontrol.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include diff --git a/tools/qmldebugger/creatorplugin/runcontrol.h b/tools/qmldebugger/creatorplugin/runcontrol.h index b2976f6..312fe56 100644 --- a/tools/qmldebugger/creatorplugin/runcontrol.h +++ b/tools/qmldebugger/creatorplugin/runcontrol.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 QMLINSPECTORRUNCONTROL_H #define QMLINSPECTORRUNCONTROL_H diff --git a/tools/qmldebugger/standalone/canvasframerate.cpp b/tools/qmldebugger/standalone/canvasframerate.cpp index 10c3dbf..ca9aceb 100644 --- a/tools/qmldebugger/standalone/canvasframerate.cpp +++ b/tools/qmldebugger/standalone/canvasframerate.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include "canvasframerate.h" #include #include diff --git a/tools/qmldebugger/standalone/canvasframerate.h b/tools/qmldebugger/standalone/canvasframerate.h index 6c1ff9f..bdf995a 100644 --- a/tools/qmldebugger/standalone/canvasframerate.h +++ b/tools/qmldebugger/standalone/canvasframerate.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 CANVASFRAMERATE_H #define CANVASFRAMERATE_H diff --git a/tools/qmldebugger/standalone/engine.cpp b/tools/qmldebugger/standalone/engine.cpp index f1eada8..806a7d8 100644 --- a/tools/qmldebugger/standalone/engine.cpp +++ b/tools/qmldebugger/standalone/engine.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include #include diff --git a/tools/qmldebugger/standalone/engine.h b/tools/qmldebugger/standalone/engine.h index a3ebe46..7625702 100644 --- a/tools/qmldebugger/standalone/engine.h +++ b/tools/qmldebugger/standalone/engine.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 ENGINE_H #define ENGINE_H diff --git a/tools/qmldebugger/standalone/expressionquerywidget.cpp b/tools/qmldebugger/standalone/expressionquerywidget.cpp index e064189..98d9a85 100644 --- a/tools/qmldebugger/standalone/expressionquerywidget.cpp +++ b/tools/qmldebugger/standalone/expressionquerywidget.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include diff --git a/tools/qmldebugger/standalone/expressionquerywidget.h b/tools/qmldebugger/standalone/expressionquerywidget.h index 3fe0295..515d6b0 100644 --- a/tools/qmldebugger/standalone/expressionquerywidget.h +++ b/tools/qmldebugger/standalone/expressionquerywidget.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 EXPRESSIONQUERYWIDGET_H #define EXPRESSIONQUERYWIDGET_H diff --git a/tools/qmldebugger/standalone/main.cpp b/tools/qmldebugger/standalone/main.cpp index c9983cd..2f2a30e 100644 --- a/tools/qmldebugger/standalone/main.cpp +++ b/tools/qmldebugger/standalone/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include "qmldebugger.h" diff --git a/tools/qmldebugger/standalone/objectpropertiesview.cpp b/tools/qmldebugger/standalone/objectpropertiesview.cpp index d6fefa0..8558e30 100644 --- a/tools/qmldebugger/standalone/objectpropertiesview.cpp +++ b/tools/qmldebugger/standalone/objectpropertiesview.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include diff --git a/tools/qmldebugger/standalone/objectpropertiesview.h b/tools/qmldebugger/standalone/objectpropertiesview.h index 306e5b9..27b6b87 100644 --- a/tools/qmldebugger/standalone/objectpropertiesview.h +++ b/tools/qmldebugger/standalone/objectpropertiesview.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 PROPERTIESTABLEMODEL_H #define PROPERTIESTABLEMODEL_H diff --git a/tools/qmldebugger/standalone/objecttree.cpp b/tools/qmldebugger/standalone/objecttree.cpp index 6c132b6..2bcd10f 100644 --- a/tools/qmldebugger/standalone/objecttree.cpp +++ b/tools/qmldebugger/standalone/objecttree.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include #include diff --git a/tools/qmldebugger/standalone/objecttree.h b/tools/qmldebugger/standalone/objecttree.h index ba2e78f..f7b3a3f 100644 --- a/tools/qmldebugger/standalone/objecttree.h +++ b/tools/qmldebugger/standalone/objecttree.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 OBJECTTREE_H #define OBJECTTREE_H diff --git a/tools/qmldebugger/standalone/qmldebugger.cpp b/tools/qmldebugger/standalone/qmldebugger.cpp index 5882cb2..f4061ed 100644 --- a/tools/qmldebugger/standalone/qmldebugger.cpp +++ b/tools/qmldebugger/standalone/qmldebugger.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include #include #include diff --git a/tools/qmldebugger/standalone/qmldebugger.h b/tools/qmldebugger/standalone/qmldebugger.h index 9203e33..36a0851 100644 --- a/tools/qmldebugger/standalone/qmldebugger.h +++ b/tools/qmldebugger/standalone/qmldebugger.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 QMLDEBUGGER_H #define QMLDEBUGGER_H diff --git a/tools/qmldebugger/standalone/watchtable.cpp b/tools/qmldebugger/standalone/watchtable.cpp index 19f034e..5feee1f 100644 --- a/tools/qmldebugger/standalone/watchtable.cpp +++ b/tools/qmldebugger/standalone/watchtable.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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$ +** +****************************************************************************/ #include "watchtable.h" #include diff --git a/tools/qmldebugger/standalone/watchtable.h b/tools/qmldebugger/standalone/watchtable.h index 67c2565..fd12d3d 100644 --- a/tools/qmldebugger/standalone/watchtable.h +++ b/tools/qmldebugger/standalone/watchtable.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 Qt QML Debugger 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 WATCHTABLEMODEL_H #define WATCHTABLEMODEL_H diff --git a/tools/qmlviewer/proxysettings.h b/tools/qmlviewer/proxysettings.h index 1d4d577..b2f3e25 100644 --- a/tools/qmlviewer/proxysettings.h +++ b/tools/qmlviewer/proxysettings.h @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ diff --git a/tools/qmlviewer/qfxtester.h b/tools/qmlviewer/qfxtester.h index 52987db..217c0ad 100644 --- a/tools/qmlviewer/qfxtester.h +++ b/tools/qmlviewer/qfxtester.h @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h index e1f53f9..56ce286 100644 --- a/tools/qmlviewer/qmlviewer.h +++ b/tools/qmlviewer/qmlviewer.h @@ -1,13 +1,41 @@ /**************************************************************************** ** -** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** 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 $MODULE$ of the Qt Toolkit. +** This file is part of the tools applications of the Qt Toolkit. ** -** $TROLLTECH_DUAL_LICENSE$ +** $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. ** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** 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$ ** ****************************************************************************/ -- cgit v0.12 From 5b3fc8dfb20934e5a64c111335a292337320195a Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 29 Oct 2009 15:56:57 +1000 Subject: Store filename as a QUrl rather than convert to QString. Saves about 700KB heap in samegame. --- src/declarative/qml/qmlbinding.cpp | 6 +++--- src/declarative/qml/qmlexpression.cpp | 16 ++++++++-------- src/declarative/qml/qmlexpression_p.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index 317a4b3..83ca65b 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -170,15 +170,15 @@ void QmlBinding::update(QmlMetaProperty::WriteFlags flags) if (!isUndefined && data->property.object() && !data->property.write(value, flags)) { - QString fileName = data->fileName; + QUrl url = data->url; int line = data->line; - if (fileName.isEmpty()) fileName = QLatin1String(""); + if (url.isEmpty()) url = QUrl(QLatin1String("")); const char *valueType = 0; if (value.userType() == QVariant::Invalid) valueType = "null"; else valueType = QMetaType::typeName(value.userType()); - data->error.setUrl(fileName); + data->error.setUrl(url); data->error.setLine(line); data->error.setColumn(-1); data->error.setDescription(QLatin1String("Unable to assign ") + diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index e5e5cf9..7c69c16 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -92,7 +92,7 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, const QString &expr, void QmlExpressionPrivate::init(QmlContext *ctxt, void *expr, QmlRefCount *rc, QObject *me, const QUrl &url, int lineNumber) { - data->fileName = url.toString(); + data->url = url; data->line = lineNumber; quint32 *exprData = (quint32 *)expr; @@ -113,7 +113,7 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, void *expr, QmlRefCount *rc, #if !defined(Q_OS_SYMBIAN) //XXX Why doesn't this work? if (!dd->programs.at(progIdx)) { dd->programs[progIdx] = - new QScriptProgram(data->expression, data->fileName, data->line); + new QScriptProgram(data->expression, data->url.toString(), data->line); } #endif @@ -310,12 +310,12 @@ QVariant QmlExpressionPrivate::evalQtScript(QObject *secondaryScope, bool *isUnd if (data->expressionRewritten) { data->expressionFunction = scriptEngine->evaluate(data->expression, - data->fileName, data->line); + data->url.toString(), data->line); } else { QmlRewrite::RewriteBinding rewriteBinding; const QString code = rewriteBinding(data->expression); - data->expressionFunction = scriptEngine->evaluate(code, data->fileName, data->line); + data->expressionFunction = scriptEngine->evaluate(code, data->url.toString(), data->line); } scriptEngine->popContext(); @@ -484,7 +484,7 @@ void QmlExpression::setTrackChange(bool trackChange) QUrl QmlExpression::sourceFile() const { Q_D(const QmlExpression); - return QUrl(d->data->fileName); + return d->data->url; } /*! @@ -498,13 +498,13 @@ int QmlExpression::lineNumber() const } /*! - Set the location of this expression to \a line of \a fileName. This information + Set the location of this expression to \a line of \a url. This information is used by the script engine. */ -void QmlExpression::setSourceLocation(const QUrl &fileName, int line) +void QmlExpression::setSourceLocation(const QUrl &url, int line) { Q_D(QmlExpression); - d->data->fileName = fileName.toString(); + d->data->url = url; d->data->line = line; } diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h index 4e13de3..6360852 100644 --- a/src/declarative/qml/qmlexpression_p.h +++ b/src/declarative/qml/qmlexpression_p.h @@ -98,7 +98,7 @@ public: QObject *me; bool trackChange; - QString fileName; + QUrl url; int line; struct SignalGuard : public QGuard { -- cgit v0.12 From 1dce8e5fa590a5264d7e5d8a5898bde72022c911 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 29 Oct 2009 16:21:39 +1000 Subject: Save a little more memory. --- src/declarative/extra/qfxparticles.cpp | 8 ++++---- src/declarative/util/qmlpropertychanges.cpp | 9 +++++---- src/declarative/util/qmlspringfollow.cpp | 11 ++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/declarative/extra/qfxparticles.cpp b/src/declarative/extra/qfxparticles.cpp index 8e77c34..80255b9 100644 --- a/src/declarative/extra/qfxparticles.cpp +++ b/src/declarative/extra/qfxparticles.cpp @@ -359,7 +359,6 @@ public: qreal minX; qreal maxY; qreal minY; - QVarLengthArray pixmapData; QFxParticlesPrivate* d; }; @@ -384,7 +383,6 @@ public: { Q_Q(QFxParticles); paintItem = new QFxParticlesPainter(this, q); - paintItem->pixmapData.resize(count); } void tick(int time); @@ -702,8 +700,6 @@ void QFxParticles::setCount(int cnt) int oldCount = d->count; d->count = cnt; - if (cnt > oldCount) - d->paintItem->pixmapData.resize(d->count); d->addParticleTime = 0; d->addParticleCount = d->particles.count(); if (!oldCount && d->clock.state() != QAbstractAnimation::Running && d->count) { @@ -1104,6 +1100,10 @@ void QFxParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, Q const int myX = x() + parentItem()->x(); const int myY = y() + parentItem()->y(); + static QVarLengthArray pixmapData; + if (pixmapData.count() < d->particles.count()) + pixmapData.resize(d->particles.count()); + const QRectF sourceRect = d->image.rect(); for (int i = 0; i < d->particles.count(); ++i) { const QFxParticle &particle = d->particles.at(i); diff --git a/src/declarative/util/qmlpropertychanges.cpp b/src/declarative/util/qmlpropertychanges.cpp index 7e1f15c..0ac168b 100644 --- a/src/declarative/util/qmlpropertychanges.cpp +++ b/src/declarative/util/qmlpropertychanges.cpp @@ -127,11 +127,12 @@ public: QObject *object; QByteArray data; - bool decoded; - void decode(); - bool restore; - bool isExplicit; + bool decoded : 1; + bool restore : 1; + bool isExplicit : 1; + + void decode(); QList > properties; QList > expressions; diff --git a/src/declarative/util/qmlspringfollow.cpp b/src/declarative/util/qmlspringfollow.cpp index 569cc48..3b2526b 100644 --- a/src/declarative/util/qmlspringfollow.cpp +++ b/src/declarative/util/qmlspringfollow.cpp @@ -56,8 +56,8 @@ class QmlSpringFollowPrivate : public QObjectPrivate public: QmlSpringFollowPrivate() : sourceValue(0), maxVelocity(0), lastTime(0) - , mass(1.0), useMass(false), spring(0.), damping(0.), velocity(0), epsilon(0.01) - , modulus(0.0), haveModulus(false), enabled(true), mode(Track), clock(this) {} + , mass(1.0), spring(0.), damping(0.), velocity(0), epsilon(0.01) + , modulus(0.0), useMass(false), haveModulus(false), enabled(true), mode(Track), clock(this) {} QmlMetaProperty property; qreal currentValue; @@ -66,14 +66,15 @@ public: qreal velocityms; int lastTime; qreal mass; - bool useMass; qreal spring; qreal damping; qreal velocity; qreal epsilon; qreal modulus; - bool haveModulus; - bool enabled; + + bool useMass : 1; + bool haveModulus : 1; + bool enabled : 1; enum Mode { Track, -- cgit v0.12 From 7d8fc7c68a85aa356e0ea8956f81c0d56216e320 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 16:26:37 +1000 Subject: auto-detect declarative --- configure | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/configure b/configure index ac2eabb..8907ca6 100755 --- a/configure +++ b/configure @@ -672,7 +672,7 @@ CFG_PHONON=auto CFG_PHONON_BACKEND=yes CFG_MULTIMEDIA=yes CFG_SVG=yes -CFG_DECLARATIVE=yes +CFG_DECLARATIVE=auto CFG_WEBKIT=auto # (yes|no|auto) CFG_JAVASCRIPTCORE_JIT=auto @@ -1846,7 +1846,7 @@ while [ "$#" -gt 0 ]; do fi ;; declarative) - if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then + if [ "$VAL" = "yes" ]; then CFG_DECLARATIVE="yes" else if [ "$VAL" = "no" ]; then @@ -3402,8 +3402,8 @@ fi -no-scripttools .... Do not build the QtScriptTools module. + -scripttools ....... Build the QtScriptTools module. - -no-declarative .....Do not build the declarative module. - + -declarative ....... Build the declarative module. + + -no-declarative .....Do not build the declarative module. + -declarative ....... Build the declarative module. -platform target ... The operating system and compiler you are building on ($PLATFORM). @@ -5781,6 +5781,19 @@ if [ "$CFG_ALSA" = "auto" ]; then fi fi +if [ -f "$relpath/src/declarative/declarative.pro" ]; then + if [ "$CFG_DECLARATIVE" = "auto" ]; then + CFG_DECLARATIVE=yes + fi +else + if [ "$CFG_DECLARATIVE" = "auto" ] || [ "$CFG_DECLARATIVE" = "no" ]; then + CFG_DECLARATIVE=no + else + echo "Error: Unable to locate the qt-declarative package. Refer to the documentation on how to build the package." + exit 1 + fi +fi + if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS -- cgit v0.12 From d85d7addc5084ee7d5de31dec562437f9c31c35d Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 29 Oct 2009 16:27:07 +1000 Subject: fix macros --- src/declarative/debugger/qmldebug.h | 14 ++++++++++++-- src/declarative/debugger/qmldebugservice.h | 2 ++ src/declarative/debugger/qpacketprotocol.h | 2 +- src/declarative/extra/qmlxmllistmodel.h | 2 +- src/declarative/fx/qfximagebase.h | 4 ++++ src/declarative/fx/qfxvisualitemmodel.h | 2 +- src/declarative/qml/qmlcomponent_p.h | 2 +- src/declarative/util/qmleasefollow.h | 2 +- src/declarative/widgets/graphicswidgets.h | 4 ++++ 9 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/declarative/debugger/qmldebug.h b/src/declarative/debugger/qmldebug.h index 23d98aa..d7e4f5a 100644 --- a/src/declarative/debugger/qmldebug.h +++ b/src/declarative/debugger/qmldebug.h @@ -45,6 +45,12 @@ #include #include +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + class QmlDebugConnection; class QmlDebugWatch; class QmlDebugPropertyWatch; @@ -105,7 +111,7 @@ public: int objectDebugId() const; State state() const; -signals: +Q_SIGNALS: void stateChanged(State); //void objectChanged(int, const QmlDebugObjectReference &); //void valueChanged(int, const QVariant &); @@ -161,7 +167,7 @@ public: // bool waitUntilCompleted(); -signals: +Q_SIGNALS: void stateChanged(State); protected: @@ -351,4 +357,8 @@ private: }; +QT_END_NAMESPACE + +QT_END_HEADER + #endif // QMLDEBUG_H diff --git a/src/declarative/debugger/qmldebugservice.h b/src/declarative/debugger/qmldebugservice.h index 436d7ea..b406a3c 100644 --- a/src/declarative/debugger/qmldebugservice.h +++ b/src/declarative/debugger/qmldebugservice.h @@ -48,6 +48,8 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +QT_MODULE(Declarative) + class QmlDebugServicePrivate; class Q_DECLARATIVE_EXPORT QmlDebugService : public QObject { diff --git a/src/declarative/debugger/qpacketprotocol.h b/src/declarative/debugger/qpacketprotocol.h index 29bd5bb..265af81 100644 --- a/src/declarative/debugger/qpacketprotocol.h +++ b/src/declarative/debugger/qpacketprotocol.h @@ -77,7 +77,7 @@ public: QIODevice * device(); -signals: +Q_SIGNALS: void readyRead(); void invalidPacket(); void packetWritten(); diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h index 5d1b940..7857629 100644 --- a/src/declarative/extra/qmlxmllistmodel.h +++ b/src/declarative/extra/qmlxmllistmodel.h @@ -103,7 +103,7 @@ public: virtual void classBegin(); virtual void componentComplete(); -signals: +Q_SIGNALS: void statusChanged(Status); void progressChanged(qreal progress); void countChanged(); diff --git a/src/declarative/fx/qfximagebase.h b/src/declarative/fx/qfximagebase.h index 75549b4..08adc9c 100644 --- a/src/declarative/fx/qfximagebase.h +++ b/src/declarative/fx/qfximagebase.h @@ -45,8 +45,11 @@ #include QT_BEGIN_HEADER + QT_BEGIN_NAMESPACE +QT_MODULE(Declarative) + class QFxImageBasePrivate; class QFxImageBase : public QFxItem { @@ -85,6 +88,7 @@ private: }; QT_END_NAMESPACE + QT_END_HEADER #endif // QFXIMAGEBASE_H diff --git a/src/declarative/fx/qfxvisualitemmodel.h b/src/declarative/fx/qfxvisualitemmodel.h index 8396a34..62363f9 100644 --- a/src/declarative/fx/qfxvisualitemmodel.h +++ b/src/declarative/fx/qfxvisualitemmodel.h @@ -128,7 +128,7 @@ public: static QFxVisualItemModelAttached *qmlAttachedProperties(QObject *obj); -signals: +Q_SIGNALS: void childrenChanged(); private: diff --git a/src/declarative/qml/qmlcomponent_p.h b/src/declarative/qml/qmlcomponent_p.h index 6b53086..4b1a076 100644 --- a/src/declarative/qml/qmlcomponent_p.h +++ b/src/declarative/qml/qmlcomponent_p.h @@ -122,7 +122,7 @@ public: QmlComponentAttached **prev; QmlComponentAttached *next; -signals: +Q_SIGNALS: void completed(); private: diff --git a/src/declarative/util/qmleasefollow.h b/src/declarative/util/qmleasefollow.h index d242821..3de72f2 100644 --- a/src/declarative/util/qmleasefollow.h +++ b/src/declarative/util/qmleasefollow.h @@ -95,7 +95,7 @@ public: virtual void setTarget(const QmlMetaProperty &); -signals: +Q_SIGNALS: void sourceChanged(); void velocityChanged(); void durationChanged(); diff --git a/src/declarative/widgets/graphicswidgets.h b/src/declarative/widgets/graphicswidgets.h index 9e08980..2b39db3 100644 --- a/src/declarative/widgets/graphicswidgets.h +++ b/src/declarative/widgets/graphicswidgets.h @@ -50,6 +50,8 @@ QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + QT_MODULE(Declarative) QML_DECLARE_TYPE(QGraphicsView) @@ -57,6 +59,8 @@ QML_DECLARE_TYPE_HASMETATYPE(QGraphicsScene) QML_DECLARE_TYPE(QGraphicsWidget) QML_DECLARE_INTERFACE_HASMETATYPE(QGraphicsItem) +QT_END_NAMESPACE + QT_END_HEADER #endif // GRAPHICSWIDGETS_H -- cgit v0.12 From f32abd2b9febdeadeb5536d0318f77be4180f142 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 29 Oct 2009 17:01:36 +1000 Subject: Compile with -no-qt3support Reviewed-by: andreas --- src/gui/itemviews/qtreeview.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index bad9dfe..be64c46 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1226,8 +1226,8 @@ bool QTreeView::viewportEvent(QEvent *event) if (oldIndex != newIndex) { QRect oldRect = visualRect(oldIndex); QRect newRect = visualRect(newIndex); - oldRect.rLeft() -= d->indent; - newRect.rLeft() -= d->indent; + oldRect.setLeft(oldRect.left() - d->indent); + newRect.setLeft(newRect.left() - d->indent); //we need to paint the whole items (including the decoration) so that when the user //moves the mouse over those elements they are updated viewport()->update(oldRect); -- cgit v0.12 From ca1361116bf36d1afe9cbcc293e171260978f315 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 29 Oct 2009 17:56:05 +1000 Subject: Add local highscores to SameGame --- demos/declarative/samegame/content/Dialog.qml | 2 +- demos/declarative/samegame/content/samegame.js | 43 +++++++++++++++++++++++--- demos/declarative/samegame/samegame.qml | 9 ++++-- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/demos/declarative/samegame/content/Dialog.qml b/demos/declarative/samegame/content/Dialog.qml index 661257b..f9a281a 100644 --- a/demos/declarative/samegame/content/Dialog.qml +++ b/demos/declarative/samegame/content/Dialog.qml @@ -11,7 +11,7 @@ Rectangle { page.opacity = 1; } signal closed(); - color: "white"; border.width: 1; width: myText.width + 20; height: 60; + color: "white"; border.width: 1; width: myText.width + 20; height: myText.height + 40; opacity: 0 opacity: Behavior { NumberAnimation { duration: 1000 } diff --git a/demos/declarative/samegame/content/samegame.js b/demos/declarative/samegame/content/samegame.js index 1b81f87..4d5a6be 100755 --- a/demos/declarative/samegame/content/samegame.js +++ b/demos/declarative/samegame/content/samegame.js @@ -6,6 +6,7 @@ var maxIndex = maxX*maxY; var board = new Array(maxIndex); var tileSrc = "content/BoomBlock.qml"; var scoresURL = "http://qtfx-nokia.trolltech.com.au/samegame/scores.php"; +var scoresURL = ""; var timer; var component = createComponent(tileSrc); @@ -157,10 +158,8 @@ function victoryCheck() //Checks for game over if(deservesBonus || !(floodMoveCheck(0,maxY-1, -1))){ timer = new Date() - timer; - if(scoresURL != "") - scoreName.show("You've won! Please enter your name: "); - else - dialog.show("Game Over. Your score is " + gameCanvas.score); + scoreName.show("You won! Please enter your name: "); + //dialog.show("Game Over. Your score is " + gameCanvas.score); } } @@ -207,6 +206,42 @@ function createBlock(xIdx,yIdx){ return true; } +function saveHighScore(name) { + if(scoresURL!="") + sendHighScore(name); + //OfflineStorage + var db = openDatabase("SameGameScores", "1.0", "Local SameGame High Scores",100); + var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)"; + var data = [name, gameCanvas.score, maxX+"x"+maxY ,Math.floor(timer/1000)]; + db.transaction( + function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(name TEXT, score NUMBER, gridSize TEXT, time NUMBER)',[]); + tx.executeSql(dataStr, data); + + tx.executeSql('SELECT * FROM Scores WHERE gridSize = "12x17" ORDER BY score desc LIMIT 10',[], + function(tx, rs) { + var r = "\nHIGH SCORES for a standard sized grid\n\n" + for(var i = 0; i < rs.rows.length; i++){ + r += (i+1)+". " + rs.rows.item(i).name +' got ' + + rs.rows.item(i).score + ' points in ' + + rs.rows.item(i).time + ' seconds.\n'; + } + dialog.show(r); + }, + function(tx, error) { + print("ERROR:", error.message); + } + ); + }, + function() { + print("ERROR in transaction"); + }, + function() { + //print("Transaction successful"); + } + ); +} + function sendHighScore(name) { var postman = new XMLHttpRequest() var postData = "name="+name+"&score="+gameCanvas.score diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index 38a781a..4560b56 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -37,16 +37,21 @@ Rectangle { Dialog { id: dialog; anchors.centerIn: parent; z: 21 } Dialog { id: scoreName; anchors.centerIn: parent; z: 22; + Text { + id: spacer + opacity: 0 + text: " You won! Please enter your name:" + } TextInput { id: editor onAccepted: { if(scoreName.opacity==1&&editor.text!="") - sendHighScore(editor.text); + saveHighScore(editor.text); scoreName.forceClose(); } anchors.verticalCenter: parent.verticalCenter width: 72; focus: true - anchors.right: scoreName.right + anchors.left: spacer.right } } -- cgit v0.12 From 0ccd69cd51c7e067fbb26f6c47270c03f5c0568c Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 29 Oct 2009 18:09:38 +1000 Subject: Testcase for warnings at shutdown --- .../declarative/qmlecmascript/data/shutdownErrors.qml | 13 +++++++++++++ .../declarative/qmlecmascript/tst_qmlecmascript.cpp | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/auto/declarative/qmlecmascript/data/shutdownErrors.qml diff --git a/tests/auto/declarative/qmlecmascript/data/shutdownErrors.qml b/tests/auto/declarative/qmlecmascript/data/shutdownErrors.qml new file mode 100644 index 0000000..398489a --- /dev/null +++ b/tests/auto/declarative/qmlecmascript/data/shutdownErrors.qml @@ -0,0 +1,13 @@ +import Qt 4.6 + +Item { + property int test: myObject.object.a + + Item { + id: myObject + property Object object; + object: Object { + property int a: 10 + } + } +} diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp index 48c2249..98e9daf 100644 --- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp +++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp @@ -67,6 +67,7 @@ private slots: void listProperties(); void exceptionClearsOnReeval(); void transientErrors(); + void shutdownErrors(); private: QmlEngine engine; @@ -870,6 +871,22 @@ void tst_qmlecmascript::transientErrors() QCOMPARE(transientErrorsMsgCount, 0); } +// Check that errors during shutdown are minimized +void tst_qmlecmascript::shutdownErrors() +{ + QmlComponent component(&engine, TEST_FILE("shutdownErrors.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + transientErrorsMsgCount = 0; + QtMsgHandler old = qInstallMsgHandler(transientErrorsMsgHandler); + + delete object; + + qInstallMsgHandler(old); + QCOMPARE(transientErrorsMsgCount, 0); +} + QTEST_MAIN(tst_qmlecmascript) #include "tst_qmlecmascript.moc" -- cgit v0.12 From c31d661d0f1269a9e06a595346b8be193974a68d Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 29 Oct 2009 18:35:16 +1000 Subject: Add attached properties typeinfo --- tests/auto/declarative/qmlecmascript/testtypes.h | 1 + tests/auto/declarative/qmllanguage/testtypes.h | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/auto/declarative/qmlecmascript/testtypes.h b/tests/auto/declarative/qmlecmascript/testtypes.h index ae3a954..8b5b10c 100644 --- a/tests/auto/declarative/qmlecmascript/testtypes.h +++ b/tests/auto/declarative/qmlecmascript/testtypes.h @@ -95,6 +95,7 @@ private: QList m_objectQList; }; +QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES) QML_DECLARE_TYPE(MyQmlObject); class MyQmlContainer : public QObject diff --git a/tests/auto/declarative/qmllanguage/testtypes.h b/tests/auto/declarative/qmllanguage/testtypes.h index 355ff8b..c16d2f5 100644 --- a/tests/auto/declarative/qmllanguage/testtypes.h +++ b/tests/auto/declarative/qmllanguage/testtypes.h @@ -111,6 +111,7 @@ private: MyQmlObject *m_qmlobject; MyCustomVariantType m_custom; }; +QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES) QML_DECLARE_TYPE(MyQmlObject); class MyGroupedObject : public QObject -- cgit v0.12 From d6b889fcd8f28e430d6082f0290b00030e30d3ca Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 29 Oct 2009 14:50:51 +0100 Subject: qdoc3: Fixed a linking error for qml properties. This: https://qtmetrics.europe.nokia.com/kinetic-declarativeui/qml-item.html#rotation-prop should now be this: https://qtmetrics.europe.nokia.com/kinetic-declarativeui/qml-item.html#transformOrigin-prop) --- tools/qdoc3/htmlgenerator.cpp | 11 +++++++---- tools/qdoc3/pagegenerator.cpp | 19 +++++++------------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 18c7916..eaf4b2e 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -3467,10 +3467,13 @@ QString HtmlGenerator::refForNode(const Node *node) ref += "-" + QString::number(func->overloadNumber()); } break; - case Node::Property: -#ifdef QDOC_QML +#ifdef QDOC_QML + case Node::Fake: + if (node->subType() != Node::QmlPropertyGroup) + break; case Node::QmlProperty: #endif + case Node::Property: ref = node->name() + "-prop"; break; #ifdef QDOC_QML @@ -3512,9 +3515,9 @@ QString HtmlGenerator::linkForNode(const Node *node, const Node *relative) // ### reintroduce this test, without breaking .dcf files if (fn != outFileName()) #endif - link += fn; + link += fn; - if (!node->isInnerNode()) { + if (!node->isInnerNode() || node->subType() == Node::QmlPropertyGroup) { ref = refForNode(node); if (relative && fn == fileName(relative) && ref == refForNode(relative)) return QString(); diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp index 83ea561..7d9fbee 100644 --- a/tools/qdoc3/pagegenerator.cpp +++ b/tools/qdoc3/pagegenerator.cpp @@ -81,14 +81,13 @@ QString PageGenerator::fileBase(const Node *node) { if (node->relates()) node = node->relates(); - else if (!node->isInnerNode()) { + else if (!node->isInnerNode()) node = node->parent(); #ifdef QDOC_QML - if (node->subType() == Node::QmlPropertyGroup) { - node = node->parent(); - } -#endif + if (node->subType() == Node::QmlPropertyGroup) { + node = node->parent(); } +#endif QString base = node->doc().baseName(); if (!base.isEmpty()) @@ -97,6 +96,7 @@ QString PageGenerator::fileBase(const Node *node) const Node *p = node; forever { + const Node *pp = p->parent(); base.prepend(p->name()); #ifdef QDOC_QML /* @@ -104,15 +104,10 @@ QString PageGenerator::fileBase(const Node *node) we prepend "qml-" to the file name of QML element doc files. */ - if ((p->subType() == Node::QmlClass) || - (p->subType() == Node::QmlPropertyGroup)) - base.prepend("qml-"); - else if ((p->type() == Node::QmlProperty) || - (p->type() == Node::QmlSignal) || - (p->type() == Node::QmlMethod)) + if (p->subType() == Node::QmlClass) { base.prepend("qml-"); + } #endif - const Node *pp = p->parent(); if (!pp || pp->name().isEmpty() || pp->type() == Node::Fake) break; base.prepend(QLatin1Char('-')); -- cgit v0.12 From ff1a4e75056b200b7eb9117ddfd5b6cd27f4e92e Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 11:35:50 +1000 Subject: improve clock example --- examples/declarative/clock/Clock.qml | 69 ++++++++++++++++----------------- examples/declarative/clock/center.png | Bin 0 -> 765 bytes examples/declarative/clock/clock.png | Bin 0 -> 21780 bytes examples/declarative/clock/display.qml | 9 ++++- examples/declarative/clock/hour.png | Bin 391 -> 625 bytes examples/declarative/clock/minute.png | Bin 445 -> 625 bytes examples/declarative/clock/second.png | Bin 345 -> 303 bytes 7 files changed, 41 insertions(+), 37 deletions(-) create mode 100755 examples/declarative/clock/center.png create mode 100755 examples/declarative/clock/clock.png mode change 100644 => 100755 examples/declarative/clock/hour.png mode change 100644 => 100755 examples/declarative/clock/minute.png mode change 100644 => 100755 examples/declarative/clock/second.png diff --git a/examples/declarative/clock/Clock.qml b/examples/declarative/clock/Clock.qml index a061488..636c99f 100644 --- a/examples/declarative/clock/Clock.qml +++ b/examples/declarative/clock/Clock.qml @@ -2,79 +2,76 @@ import Qt 4.6 Item { id: clock - width: 200; height: 200 - property var time + width: 200; height: 230 + + property alias city: cityLabel.text property var hours property var minutes property var seconds - onTimeChanged: { + property int shift : 0 + + function timeChanged() { var date = new Date; - hours = date.getHours(); - minutes = date.getMinutes(); - seconds = date.getSeconds(); + hours = date.getUTCHours() + clock.shift + minutes = date.getUTCMinutes(); + seconds = date.getUTCSeconds(); } + Timer { - interval: 100; running: true; repeat: true; triggeredOnStart: true - onTriggered: clock.time = new Date() + interval: 1000; running: true; repeat: true; triggeredOnStart: true + onTriggered: clock.timeChanged() } - Image { source: "background.png" } + Image { id: background; source: "clock.png" } + Image { - x: 95 - y: 54 + x: 92.5; y: 27 source: "hour.png" smooth: true transform: Rotation { id: hourRotation - origin.x: 4; origin.y: 45 - angle: 0 + origin.x: 7.5; origin.y: 73; angle: 0 angle: SpringFollow { - spring: 2 - damping: .2 - source: clock.hours * 50 * 3 + clock.minutes / 2 + spring: 2; damping: 0.2; modulus: 360 + source: (clock.hours * 30) + (clock.minutes * 0.5) } } } + Image { - x: 95 - y: 30 + x: 93.5; y: 17 source: "minute.png" smooth: true transform: Rotation { id: minuteRotation - origin.x: 4; origin.y: 70 - angle: 0 + origin.x: 6.5; origin.y: 83; angle: 0 angle: SpringFollow { - spring: 2 - damping: .2 + spring: 2; damping: 0.2; modulus: 360 source: clock.minutes * 6 } } } + Image { - x: 96 - y: 40 + x: 97.5; y: 20 source: "second.png" smooth: true transform: Rotation { id: secondRotation - origin.x: 2; origin.y: 60 - angle: 0 + origin.x: 2.5; origin.y: 80; angle: 0 angle: SpringFollow { - spring: 5 - damping: .25 - modulus: 360 + spring: 5; damping: 0.25; modulus: 360 source: clock.seconds * 6 } } } - Rectangle { - x: 93 - y: 94 - width: 11 - height: 11 - radius: 5 - color: "black" + Image { + anchors.centerIn: background; source: "center.png" + } + + Text { + id: cityLabel; font.bold: true; font.pixelSize: 14; y:200; color: "white" + anchors.horizontalCenter: parent.horizontalCenter } } diff --git a/examples/declarative/clock/center.png b/examples/declarative/clock/center.png new file mode 100755 index 0000000..7fbd802 Binary files /dev/null and b/examples/declarative/clock/center.png differ diff --git a/examples/declarative/clock/clock.png b/examples/declarative/clock/clock.png new file mode 100755 index 0000000..30bc577 Binary files /dev/null and b/examples/declarative/clock/clock.png differ diff --git a/examples/declarative/clock/display.qml b/examples/declarative/clock/display.qml index 20e254d..927adfa 100644 --- a/examples/declarative/clock/display.qml +++ b/examples/declarative/clock/display.qml @@ -3,5 +3,12 @@ import Qt 4.6 Rectangle { width: childrenRect.width height: childrenRect.height - Clock { id: clock } + color: "#646464" + + Grid { + columns: 3 + Clock { city: "New York"; shift: -4 } + Clock { city: "London" } + Clock { city: "Brisbane"; shift: 10 } + } } diff --git a/examples/declarative/clock/hour.png b/examples/declarative/clock/hour.png old mode 100644 new mode 100755 index 603466b..f8061a1 Binary files a/examples/declarative/clock/hour.png and b/examples/declarative/clock/hour.png differ diff --git a/examples/declarative/clock/minute.png b/examples/declarative/clock/minute.png old mode 100644 new mode 100755 index 0207405..1297ec7 Binary files a/examples/declarative/clock/minute.png and b/examples/declarative/clock/minute.png differ diff --git a/examples/declarative/clock/second.png b/examples/declarative/clock/second.png old mode 100644 new mode 100755 index bfcef68..4aa9fb5 Binary files a/examples/declarative/clock/second.png and b/examples/declarative/clock/second.png differ -- cgit v0.12 From 72932c6683729071c1acb3f4832c5dc53a561bdd Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 11:50:47 +1000 Subject: cleanup --- .../declarative/border-image/MyBorderImage.qml | 37 ---------- examples/declarative/border-image/animated.qml | 17 ++--- examples/declarative/border-image/borders.qml | 4 +- examples/declarative/border-image/bw.png | Bin 1357 -> 0 bytes examples/declarative/border-image/colors-round.sci | 7 -- .../declarative/border-image/colors-stretch.sci | 5 -- examples/declarative/border-image/colors.png | Bin 1655 -> 0 bytes .../border-image/content/MyBorderImage.qml | 37 ++++++++++ examples/declarative/border-image/content/bw.png | Bin 0 -> 1357 bytes .../border-image/content/colors-round.sci | 7 ++ .../border-image/content/colors-stretch.sci | 5 ++ .../declarative/border-image/content/colors.png | Bin 0 -> 1655 bytes examples/declarative/border-image/example.qml | 31 --------- examples/declarative/clock/Clock.qml | 77 --------------------- examples/declarative/clock/background.png | Bin 46895 -> 0 bytes examples/declarative/clock/center.png | Bin 765 -> 0 bytes examples/declarative/clock/clock.png | Bin 21780 -> 0 bytes examples/declarative/clock/display.qml | 14 ---- examples/declarative/clock/hour.png | Bin 625 -> 0 bytes examples/declarative/clock/minute.png | Bin 625 -> 0 bytes examples/declarative/clock/second.png | Bin 303 -> 0 bytes examples/declarative/clocks/clocks.qml | 15 ++++ examples/declarative/clocks/content/Clock.qml | 77 +++++++++++++++++++++ examples/declarative/clocks/content/background.png | Bin 0 -> 46895 bytes examples/declarative/clocks/content/center.png | Bin 0 -> 765 bytes examples/declarative/clocks/content/clock.png | Bin 0 -> 21780 bytes examples/declarative/clocks/content/hour.png | Bin 0 -> 625 bytes examples/declarative/clocks/content/minute.png | Bin 0 -> 625 bytes examples/declarative/clocks/content/second.png | Bin 0 -> 303 bytes 29 files changed, 152 insertions(+), 181 deletions(-) delete mode 100644 examples/declarative/border-image/MyBorderImage.qml delete mode 100644 examples/declarative/border-image/bw.png delete mode 100644 examples/declarative/border-image/colors-round.sci delete mode 100644 examples/declarative/border-image/colors-stretch.sci delete mode 100644 examples/declarative/border-image/colors.png create mode 100644 examples/declarative/border-image/content/MyBorderImage.qml create mode 100644 examples/declarative/border-image/content/bw.png create mode 100644 examples/declarative/border-image/content/colors-round.sci create mode 100644 examples/declarative/border-image/content/colors-stretch.sci create mode 100644 examples/declarative/border-image/content/colors.png delete mode 100644 examples/declarative/border-image/example.qml delete mode 100644 examples/declarative/clock/Clock.qml delete mode 100644 examples/declarative/clock/background.png delete mode 100755 examples/declarative/clock/center.png delete mode 100755 examples/declarative/clock/clock.png delete mode 100644 examples/declarative/clock/display.qml delete mode 100755 examples/declarative/clock/hour.png delete mode 100755 examples/declarative/clock/minute.png delete mode 100755 examples/declarative/clock/second.png create mode 100644 examples/declarative/clocks/clocks.qml create mode 100644 examples/declarative/clocks/content/Clock.qml create mode 100644 examples/declarative/clocks/content/background.png create mode 100755 examples/declarative/clocks/content/center.png create mode 100755 examples/declarative/clocks/content/clock.png create mode 100755 examples/declarative/clocks/content/hour.png create mode 100755 examples/declarative/clocks/content/minute.png create mode 100755 examples/declarative/clocks/content/second.png diff --git a/examples/declarative/border-image/MyBorderImage.qml b/examples/declarative/border-image/MyBorderImage.qml deleted file mode 100644 index 9eb1270..0000000 --- a/examples/declarative/border-image/MyBorderImage.qml +++ /dev/null @@ -1,37 +0,0 @@ -import Qt 4.6 - -Item { - property alias horizontalMode: image.horizontalTileMode - property alias verticalMode: image.verticalTileMode - property alias source: image.source - - property int minWidth - property int minHeight - property int maxWidth - property int maxHeight - property int margin - - id: container - width: 240; height: 240 - - BorderImage { - id: image; x: container.width / 2 - width / 2; y: container.height / 2 - height / 2 - - width: SequentialAnimation { - running: true; repeat: true - NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 2000; easing: "easeInOutQuad"} - NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 2000; easing: "easeInOutQuad" } - } - - height: SequentialAnimation { - running: true; repeat: true - NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 2000; easing: "easeInOutQuad"} - NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 2000; easing: "easeInOutQuad" } - } - - border.top: container.margin - border.left: container.margin - border.bottom: container.margin - border.right: container.margin - } -} diff --git a/examples/declarative/border-image/animated.qml b/examples/declarative/border-image/animated.qml index aaaf495..29c02b3 100644 --- a/examples/declarative/border-image/animated.qml +++ b/examples/declarative/border-image/animated.qml @@ -1,4 +1,5 @@ import Qt 4.6 +import "content" Rectangle { id: page @@ -8,47 +9,47 @@ Rectangle { MyBorderImage { x: 20; y: 20; minWidth: 120; maxWidth: 240 minHeight: 120; maxHeight: 240 - source: "colors.png"; margin: 30 + source: "content/colors.png"; margin: 30 } MyBorderImage { x: 270; y: 20; minWidth: 120; maxWidth: 240 minHeight: 120; maxHeight: 240 - source: "colors.png"; margin: 30 + source: "content/colors.png"; margin: 30 horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat } MyBorderImage { x: 520; y: 20; minWidth: 120; maxWidth: 240 minHeight: 120; maxHeight: 240 - source: "colors.png"; margin: 30 + source: "content/colors.png"; margin: 30 horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat } MyBorderImage { x: 770; y: 20; minWidth: 120; maxWidth: 240 minHeight: 120; maxHeight: 240 - source: "colors.png"; margin: 30 + source: "content/colors.png"; margin: 30 horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round } MyBorderImage { x: 20; y: 280; minWidth: 60; maxWidth: 200 minHeight: 40; maxHeight: 200 - source: "bw.png"; margin: 10 + source: "content/bw.png"; margin: 10 } MyBorderImage { x: 270; y: 280; minWidth: 60; maxWidth: 200 minHeight: 40; maxHeight: 200 - source: "bw.png"; margin: 10 + source: "content/bw.png"; margin: 10 horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat } MyBorderImage { x: 520; y: 280; minWidth: 60; maxWidth: 200 minHeight: 40; maxHeight: 200 - source: "bw.png"; margin: 10 + source: "content/bw.png"; margin: 10 horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat } MyBorderImage { x: 770; y: 280; minWidth: 60; maxWidth: 200 minHeight: 40; maxHeight: 200 - source: "bw.png"; margin: 10 + source: "content/bw.png"; margin: 10 horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round } } diff --git a/examples/declarative/border-image/borders.qml b/examples/declarative/border-image/borders.qml index e90abe6..9879416 100644 --- a/examples/declarative/border-image/borders.qml +++ b/examples/declarative/border-image/borders.qml @@ -8,11 +8,11 @@ Rectangle { BorderImage { x: 20; y: 20; width: 230; height: 240 smooth: true - source: "colors-stretch.sci" + source: "content/colors-stretch.sci" } BorderImage { x: 270; y: 20; width: 230; height: 240 smooth: true - source: "colors-round.sci" + source: "content/colors-round.sci" } } diff --git a/examples/declarative/border-image/bw.png b/examples/declarative/border-image/bw.png deleted file mode 100644 index 486eaae..0000000 Binary files a/examples/declarative/border-image/bw.png and /dev/null differ diff --git a/examples/declarative/border-image/colors-round.sci b/examples/declarative/border-image/colors-round.sci deleted file mode 100644 index 506f6f5..0000000 --- a/examples/declarative/border-image/colors-round.sci +++ /dev/null @@ -1,7 +0,0 @@ -border.left:30 -border.top:30 -border.right:30 -border.bottom:30 -horizontalTileRule:Round -verticalTileRule:Round -source:colors.png diff --git a/examples/declarative/border-image/colors-stretch.sci b/examples/declarative/border-image/colors-stretch.sci deleted file mode 100644 index e4989a7..0000000 --- a/examples/declarative/border-image/colors-stretch.sci +++ /dev/null @@ -1,5 +0,0 @@ -border.left:30 -border.top:30 -border.right:30 -border.bottom:30 -source:colors.png diff --git a/examples/declarative/border-image/colors.png b/examples/declarative/border-image/colors.png deleted file mode 100644 index dfb62f3..0000000 Binary files a/examples/declarative/border-image/colors.png and /dev/null differ diff --git a/examples/declarative/border-image/content/MyBorderImage.qml b/examples/declarative/border-image/content/MyBorderImage.qml new file mode 100644 index 0000000..9eb1270 --- /dev/null +++ b/examples/declarative/border-image/content/MyBorderImage.qml @@ -0,0 +1,37 @@ +import Qt 4.6 + +Item { + property alias horizontalMode: image.horizontalTileMode + property alias verticalMode: image.verticalTileMode + property alias source: image.source + + property int minWidth + property int minHeight + property int maxWidth + property int maxHeight + property int margin + + id: container + width: 240; height: 240 + + BorderImage { + id: image; x: container.width / 2 - width / 2; y: container.height / 2 - height / 2 + + width: SequentialAnimation { + running: true; repeat: true + NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 2000; easing: "easeInOutQuad"} + NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 2000; easing: "easeInOutQuad" } + } + + height: SequentialAnimation { + running: true; repeat: true + NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 2000; easing: "easeInOutQuad"} + NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 2000; easing: "easeInOutQuad" } + } + + border.top: container.margin + border.left: container.margin + border.bottom: container.margin + border.right: container.margin + } +} diff --git a/examples/declarative/border-image/content/bw.png b/examples/declarative/border-image/content/bw.png new file mode 100644 index 0000000..486eaae Binary files /dev/null and b/examples/declarative/border-image/content/bw.png differ diff --git a/examples/declarative/border-image/content/colors-round.sci b/examples/declarative/border-image/content/colors-round.sci new file mode 100644 index 0000000..506f6f5 --- /dev/null +++ b/examples/declarative/border-image/content/colors-round.sci @@ -0,0 +1,7 @@ +border.left:30 +border.top:30 +border.right:30 +border.bottom:30 +horizontalTileRule:Round +verticalTileRule:Round +source:colors.png diff --git a/examples/declarative/border-image/content/colors-stretch.sci b/examples/declarative/border-image/content/colors-stretch.sci new file mode 100644 index 0000000..e4989a7 --- /dev/null +++ b/examples/declarative/border-image/content/colors-stretch.sci @@ -0,0 +1,5 @@ +border.left:30 +border.top:30 +border.right:30 +border.bottom:30 +source:colors.png diff --git a/examples/declarative/border-image/content/colors.png b/examples/declarative/border-image/content/colors.png new file mode 100644 index 0000000..dfb62f3 Binary files /dev/null and b/examples/declarative/border-image/content/colors.png differ diff --git a/examples/declarative/border-image/example.qml b/examples/declarative/border-image/example.qml deleted file mode 100644 index 25c19d9..0000000 --- a/examples/declarative/border-image/example.qml +++ /dev/null @@ -1,31 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: page - color: "white" - width: 520; height: 280 - - Row { - anchors.centerIn: parent - spacing: 50 -//! [0] - BorderImage { - width: 180; height: 180 - border.left: 30; border.top: 30 - border.right: 30; border.bottom: 30 - horizontalTileMode: BorderImage.Stretch - verticalTileMode: BorderImage.Stretch - source: "colors.png" - } - - BorderImage { - width: 180; height: 180 - border.left: 30; border.top: 30 - border.right: 30; border.bottom: 30 - horizontalTileMode: BorderImage.Round - verticalTileMode: BorderImage.Round - source: "colors.png" - } -//! [0] - } -} diff --git a/examples/declarative/clock/Clock.qml b/examples/declarative/clock/Clock.qml deleted file mode 100644 index 636c99f..0000000 --- a/examples/declarative/clock/Clock.qml +++ /dev/null @@ -1,77 +0,0 @@ -import Qt 4.6 - -Item { - id: clock - width: 200; height: 230 - - property alias city: cityLabel.text - property var hours - property var minutes - property var seconds - property int shift : 0 - - function timeChanged() { - var date = new Date; - hours = date.getUTCHours() + clock.shift - minutes = date.getUTCMinutes(); - seconds = date.getUTCSeconds(); - } - - Timer { - interval: 1000; running: true; repeat: true; triggeredOnStart: true - onTriggered: clock.timeChanged() - } - - Image { id: background; source: "clock.png" } - - Image { - x: 92.5; y: 27 - source: "hour.png" - smooth: true - transform: Rotation { - id: hourRotation - origin.x: 7.5; origin.y: 73; angle: 0 - angle: SpringFollow { - spring: 2; damping: 0.2; modulus: 360 - source: (clock.hours * 30) + (clock.minutes * 0.5) - } - } - } - - Image { - x: 93.5; y: 17 - source: "minute.png" - smooth: true - transform: Rotation { - id: minuteRotation - origin.x: 6.5; origin.y: 83; angle: 0 - angle: SpringFollow { - spring: 2; damping: 0.2; modulus: 360 - source: clock.minutes * 6 - } - } - } - - Image { - x: 97.5; y: 20 - source: "second.png" - smooth: true - transform: Rotation { - id: secondRotation - origin.x: 2.5; origin.y: 80; angle: 0 - angle: SpringFollow { - spring: 5; damping: 0.25; modulus: 360 - source: clock.seconds * 6 - } - } - } - - Image { - anchors.centerIn: background; source: "center.png" - } - - Text { - id: cityLabel; font.bold: true; font.pixelSize: 14; y:200; color: "white" - anchors.horizontalCenter: parent.horizontalCenter - } -} diff --git a/examples/declarative/clock/background.png b/examples/declarative/clock/background.png deleted file mode 100644 index a885950..0000000 Binary files a/examples/declarative/clock/background.png and /dev/null differ diff --git a/examples/declarative/clock/center.png b/examples/declarative/clock/center.png deleted file mode 100755 index 7fbd802..0000000 Binary files a/examples/declarative/clock/center.png and /dev/null differ diff --git a/examples/declarative/clock/clock.png b/examples/declarative/clock/clock.png deleted file mode 100755 index 30bc577..0000000 Binary files a/examples/declarative/clock/clock.png and /dev/null differ diff --git a/examples/declarative/clock/display.qml b/examples/declarative/clock/display.qml deleted file mode 100644 index 927adfa..0000000 --- a/examples/declarative/clock/display.qml +++ /dev/null @@ -1,14 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: childrenRect.width - height: childrenRect.height - color: "#646464" - - Grid { - columns: 3 - Clock { city: "New York"; shift: -4 } - Clock { city: "London" } - Clock { city: "Brisbane"; shift: 10 } - } -} diff --git a/examples/declarative/clock/hour.png b/examples/declarative/clock/hour.png deleted file mode 100755 index f8061a1..0000000 Binary files a/examples/declarative/clock/hour.png and /dev/null differ diff --git a/examples/declarative/clock/minute.png b/examples/declarative/clock/minute.png deleted file mode 100755 index 1297ec7..0000000 Binary files a/examples/declarative/clock/minute.png and /dev/null differ diff --git a/examples/declarative/clock/second.png b/examples/declarative/clock/second.png deleted file mode 100755 index 4aa9fb5..0000000 Binary files a/examples/declarative/clock/second.png and /dev/null differ diff --git a/examples/declarative/clocks/clocks.qml b/examples/declarative/clocks/clocks.qml new file mode 100644 index 0000000..3235153 --- /dev/null +++ b/examples/declarative/clocks/clocks.qml @@ -0,0 +1,15 @@ +import Qt 4.6 +import "content" + +Rectangle { + width: childrenRect.width + height: childrenRect.height + color: "#646464" + + Grid { + columns: 3 + Clock { city: "New York"; shift: -4 } + Clock { city: "London" } + Clock { city: "Brisbane"; shift: 10 } + } +} diff --git a/examples/declarative/clocks/content/Clock.qml b/examples/declarative/clocks/content/Clock.qml new file mode 100644 index 0000000..636c99f --- /dev/null +++ b/examples/declarative/clocks/content/Clock.qml @@ -0,0 +1,77 @@ +import Qt 4.6 + +Item { + id: clock + width: 200; height: 230 + + property alias city: cityLabel.text + property var hours + property var minutes + property var seconds + property int shift : 0 + + function timeChanged() { + var date = new Date; + hours = date.getUTCHours() + clock.shift + minutes = date.getUTCMinutes(); + seconds = date.getUTCSeconds(); + } + + Timer { + interval: 1000; running: true; repeat: true; triggeredOnStart: true + onTriggered: clock.timeChanged() + } + + Image { id: background; source: "clock.png" } + + Image { + x: 92.5; y: 27 + source: "hour.png" + smooth: true + transform: Rotation { + id: hourRotation + origin.x: 7.5; origin.y: 73; angle: 0 + angle: SpringFollow { + spring: 2; damping: 0.2; modulus: 360 + source: (clock.hours * 30) + (clock.minutes * 0.5) + } + } + } + + Image { + x: 93.5; y: 17 + source: "minute.png" + smooth: true + transform: Rotation { + id: minuteRotation + origin.x: 6.5; origin.y: 83; angle: 0 + angle: SpringFollow { + spring: 2; damping: 0.2; modulus: 360 + source: clock.minutes * 6 + } + } + } + + Image { + x: 97.5; y: 20 + source: "second.png" + smooth: true + transform: Rotation { + id: secondRotation + origin.x: 2.5; origin.y: 80; angle: 0 + angle: SpringFollow { + spring: 5; damping: 0.25; modulus: 360 + source: clock.seconds * 6 + } + } + } + + Image { + anchors.centerIn: background; source: "center.png" + } + + Text { + id: cityLabel; font.bold: true; font.pixelSize: 14; y:200; color: "white" + anchors.horizontalCenter: parent.horizontalCenter + } +} diff --git a/examples/declarative/clocks/content/background.png b/examples/declarative/clocks/content/background.png new file mode 100644 index 0000000..a885950 Binary files /dev/null and b/examples/declarative/clocks/content/background.png differ diff --git a/examples/declarative/clocks/content/center.png b/examples/declarative/clocks/content/center.png new file mode 100755 index 0000000..7fbd802 Binary files /dev/null and b/examples/declarative/clocks/content/center.png differ diff --git a/examples/declarative/clocks/content/clock.png b/examples/declarative/clocks/content/clock.png new file mode 100755 index 0000000..30bc577 Binary files /dev/null and b/examples/declarative/clocks/content/clock.png differ diff --git a/examples/declarative/clocks/content/hour.png b/examples/declarative/clocks/content/hour.png new file mode 100755 index 0000000..f8061a1 Binary files /dev/null and b/examples/declarative/clocks/content/hour.png differ diff --git a/examples/declarative/clocks/content/minute.png b/examples/declarative/clocks/content/minute.png new file mode 100755 index 0000000..1297ec7 Binary files /dev/null and b/examples/declarative/clocks/content/minute.png differ diff --git a/examples/declarative/clocks/content/second.png b/examples/declarative/clocks/content/second.png new file mode 100755 index 0000000..4aa9fb5 Binary files /dev/null and b/examples/declarative/clocks/content/second.png differ -- cgit v0.12 From 502f58df4643c6d9189db0297d3869bdb6a6ba4b Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 30 Oct 2009 11:57:31 +1000 Subject: qdoc3: display 'read-only' in QML docs for read only properties. --- tools/qdoc3/cppcodeparser.cpp | 21 +++++++++++++++++---- tools/qdoc3/htmlgenerator.cpp | 4 +++- tools/qdoc3/node.h | 7 +++++++ tools/qdoc3/test/classic.css | 7 ++++++- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp index 84ec3f4..509613a 100644 --- a/tools/qdoc3/cppcodeparser.cpp +++ b/tools/qdoc3/cppcodeparser.cpp @@ -799,14 +799,26 @@ Node *CppCodeParser::processTopicCommandGroup(const Doc& doc, } } if (qmlPropGroup) { - new QmlPropertyNode(qmlPropGroup,property,type,attached); + const ClassNode *correspondingClass = static_cast(qmlPropGroup->parent())->classNode(); + PropertyNode *correspondingProperty = 0; + if (correspondingClass) + correspondingProperty = static_cast((Node*)correspondingClass->findNode(property, Node::Property)); + QmlPropertyNode *qmlPropNode = new QmlPropertyNode(qmlPropGroup,property,type,attached); + if (correspondingProperty) { + bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*'); + qmlPropNode->setWritable(writableList || correspondingProperty->isWritable()); + } ++arg; while (arg != args.end()) { if (splitQmlPropertyArg(doc,(*arg),type,element,property)) { - new QmlPropertyNode(qmlPropGroup, + QmlPropertyNode * qmlPropNode = new QmlPropertyNode(qmlPropGroup, property, type, attached); + if (correspondingProperty) { + bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*'); + qmlPropNode->setWritable(writableList || correspondingProperty->isWritable()); + } } ++arg; } @@ -1751,9 +1763,10 @@ bool CppCodeParser::matchProperty(InnerNode *parent) if (key == "READ") tre->addPropertyFunction(property, value, PropertyNode::Getter); - else if (key == "WRITE") + else if (key == "WRITE") { tre->addPropertyFunction(property, value, PropertyNode::Setter); - else if (key == "STORED") + property->setWritable(true); + } else if (key == "STORED") property->setStored(value.toLower() == "true"); else if (key == "DESIGNABLE") property->setDesignable(value.toLower() == "true"); diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index eaf4b2e..35bb6c2 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4192,13 +4192,15 @@ void HtmlGenerator::generateDetailedQmlMember(const Node *node, const QmlPropGroupNode* qpgn = static_cast(node); NodeList::ConstIterator p = qpgn->childNodes().begin(); out() << "
"; - out() << ""; + out() << "
"; while (p != qpgn->childNodes().end()) { if ((*p)->type() == Node::QmlProperty) { qpn = static_cast(*p); out() << ""; if (qpgn->isDefault()) { diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index 3252964..5712879 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -398,11 +398,13 @@ class QmlPropertyNode : public LeafNode void setDataType(const QString& dataType) { dt = dataType; } void setStored(bool stored) { sto = toTrool(stored); } void setDesignable(bool designable) { des = toTrool(designable); } + void setWritable(bool writable) { wri = toTrool(writable); } const QString &dataType() const { return dt; } QString qualifiedDataType() const { return dt; } bool isStored() const { return fromTrool(sto,true); } bool isDesignable() const { return fromTrool(des,false); } + bool isWritable() const { return fromTrool(wri,true); } bool isAttached() const { return att; } const QString& element() const { return static_cast(parent())->element(); } @@ -416,6 +418,7 @@ class QmlPropertyNode : public LeafNode QString dt; Trool sto; Trool des; + Trool wri; bool att; }; @@ -637,6 +640,7 @@ class PropertyNode : public LeafNode void addSignal(FunctionNode *function, FunctionRole role); void setStored(bool stored) { sto = toTrool(stored); } void setDesignable(bool designable) { des = toTrool(designable); } + void setWritable(bool writable) { wri = toTrool(writable); } void setOverriddenFrom(const PropertyNode *baseProperty); const QString &dataType() const { return dt; } @@ -649,6 +653,7 @@ class PropertyNode : public LeafNode NodeList notifiers() const { return functions(Notifier); } bool isStored() const { return fromTrool(sto, storedDefault()); } bool isDesignable() const { return fromTrool(des, designableDefault()); } + bool isWritable() const { return fromTrool(wri, writableDefault()); } const PropertyNode *overriddenFrom() const { return overrides; } private: @@ -659,11 +664,13 @@ class PropertyNode : public LeafNode bool storedDefault() const { return true; } bool designableDefault() const { return !setters().isEmpty(); } + bool writableDefault() const { return !setters().isEmpty(); } QString dt; NodeList funcs[NumFunctionRoles]; Trool sto; Trool des; + Trool wri; const PropertyNode *overrides; }; diff --git a/tools/qdoc3/test/classic.css b/tools/qdoc3/test/classic.css index 320da66..b8cae8e 100644 --- a/tools/qdoc3/test/classic.css +++ b/tools/qdoc3/test/classic.css @@ -268,10 +268,15 @@ span.string,span.char border-style: solid; border-color: #ddd; font-weight: bold; - padding: 6px 0px 6px 10px; + padding: 6px 10px 6px 10px; margin: 42px 0px 0px 0px; } +.qmlreadonly { + float: right; + color: red +} + .qmldoc { } -- cgit v0.12 From 77fee8c28157186837807b53776fd93a94130cfa Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 30 Oct 2009 12:07:25 +1000 Subject: Doc. Be explicit about element<->class relationship in docs. Until this is automatically set up by qdoc, we need to do it manually so things like the display of 'read-only' work properly. --- src/declarative/extra/qfxanimatedimageitem.cpp | 2 +- src/declarative/extra/qmlxmllistmodel.cpp | 4 ++-- src/declarative/fx/qfxeffects.cpp | 14 +++++++------- src/declarative/fx/qfxflickable.cpp | 2 +- src/declarative/fx/qfxfocuspanel.cpp | 2 +- src/declarative/fx/qfxfocusscope.cpp | 2 +- src/declarative/fx/qfxgridview.cpp | 2 +- src/declarative/fx/qfxitem.cpp | 6 +++--- src/declarative/fx/qfxlistview.cpp | 2 +- src/declarative/fx/qfxloader.cpp | 2 +- src/declarative/fx/qfxmouseregion.cpp | 2 +- src/declarative/fx/qfxpath.cpp | 12 ++++++------ src/declarative/fx/qfxpathview.cpp | 2 +- src/declarative/fx/qfxpositioners.cpp | 4 ++-- src/declarative/fx/qfxrepeater.cpp | 2 +- src/declarative/fx/qfxtextedit.cpp | 2 +- src/declarative/fx/qfxtextinput.cpp | 2 +- src/declarative/fx/qfxwebview.cpp | 2 +- src/declarative/util/qmlanimation.cpp | 2 +- src/declarative/util/qmllistmodel.cpp | 2 +- src/declarative/util/qmlstate.cpp | 2 +- src/declarative/util/qmlstateoperations.cpp | 4 ++-- src/declarative/util/qmltimer.cpp | 2 +- 23 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/declarative/extra/qfxanimatedimageitem.cpp b/src/declarative/extra/qfxanimatedimageitem.cpp index 5a491e0..84f2b4c 100644 --- a/src/declarative/extra/qfxanimatedimageitem.cpp +++ b/src/declarative/extra/qfxanimatedimageitem.cpp @@ -55,7 +55,7 @@ QT_BEGIN_NAMESPACE */ /*! - \qmlclass AnimatedImage + \qmlclass AnimatedImage QFxAnimatedImageItem \inherits Image This item provides for playing animations stored as images containing a series of frames, diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index a3c96fd..27d1125 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -62,7 +62,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,XmlRole,QmlXmlListModelRole) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,XmlListModel,QmlXmlListModel) /*! - \qmlclass XmlRole + \qmlclass XmlRole QmlXmlListModelRole \brief The XmlRole element allows you to specify a role for an XmlListModel. */ @@ -411,7 +411,7 @@ void QmlXmlRoleList::insert(int i, QmlXmlListModelRole *role) */ /*! - \qmlclass XmlListModel + \qmlclass XmlListModel QmlXmlListModel \brief The XmlListModel element allows you to specify a model using XPath expressions. XmlListModel allows you to construct a model from XML data that can then be used as a data source diff --git a/src/declarative/fx/qfxeffects.cpp b/src/declarative/fx/qfxeffects.cpp index ebdd880..8da5635 100644 --- a/src/declarative/fx/qfxeffects.cpp +++ b/src/declarative/fx/qfxeffects.cpp @@ -9,7 +9,7 @@ QML_DECLARE_TYPE(QGraphicsBlurEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Blur,QGraphicsBlurEffect) /*! - \qmlclass Blur + \qmlclass Blur QGraphicsBlurEffect \brief The Blur object provides a blur effect. A blur effect blurs the source item. This effect is useful for reducing details, @@ -46,7 +46,7 @@ QML_DECLARE_TYPE(QGraphicsGrayscaleEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grayscale,QGraphicsGrayscaleEffect) /*! - \qmlclass Grayscale + \qmlclass Grayscale QGraphicsGrayscaleEffect \brief The Grayscale object provides a grayscale effect. A grayscale effect renders the source item in shades of gray. @@ -65,7 +65,7 @@ QML_DECLARE_TYPE(QGraphicsColorizeEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Colorize,QGraphicsColorizeEffect) /*! - \qmlclass Colorize + \qmlclass Colorize QGraphicsColorizeEffect \brief The Colorize object provides a colorize effect. A colorize effect renders the source item with a tint of its color. @@ -93,7 +93,7 @@ QML_DECLARE_TYPE(QGraphicsPixelizeEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pixelize,QGraphicsPixelizeEffect) /*! - \qmlclass Pixelize + \qmlclass Pixelize QGraphicsPixelizeEffect \brief The Pixelize object provides a pixelize effect. A pixelize effect renders the source item in lower resolution. The resolution @@ -119,7 +119,7 @@ QML_DECLARE_TYPE(QGraphicsDropShadowEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,DropShadow,QGraphicsDropShadowEffect) /*! - \qmlclass DropShadow + \qmlclass DropShadow QGraphicsDropShadowEffect \brief The DropShadow object provides a drop shadow effect. A drop shadow effect renders the source item with a drop shadow. The color of @@ -162,7 +162,7 @@ QML_DECLARE_TYPE(QGraphicsOpacityEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Opacity,QGraphicsOpacityEffect) /*! - \qmlclass Opacity + \qmlclass Opacity QGraphicsOpacityEffect \brief The Opacity object provides an opacity effect. An opacity effect renders the source with an opacity. This effect is useful @@ -188,7 +188,7 @@ QML_DECLARE_TYPE(QGraphicsBloomEffect) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Bloom,QGraphicsBloomEffect) /*! - \qmlclass Bloom + \qmlclass Bloom QGraphicsBloomEffect \brief The Bloom object provides a bloom/glow effect. A bloom/glow effect adds fringes of light around bright areas in the source item. diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp index 0fb8474..f9029c3 100644 --- a/src/declarative/fx/qfxflickable.cpp +++ b/src/declarative/fx/qfxflickable.cpp @@ -344,7 +344,7 @@ void QFxFlickablePrivate::updateBeginningEnd() QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QFxFlickable) /*! - \qmlclass Flickable + \qmlclass Flickable QFxFlickable \brief The Flickable item provides a surface that can be "flicked". \inherits Item diff --git a/src/declarative/fx/qfxfocuspanel.cpp b/src/declarative/fx/qfxfocuspanel.cpp index 3bb0b25..92e603b 100644 --- a/src/declarative/fx/qfxfocuspanel.cpp +++ b/src/declarative/fx/qfxfocuspanel.cpp @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QFxFocusPanel) /*! - \qmlclass FocusPanel + \qmlclass FocusPanel QFxFocusPanel \brief The FocusPanel item explicitly creates a focus panel. \inherits Item diff --git a/src/declarative/fx/qfxfocusscope.cpp b/src/declarative/fx/qfxfocusscope.cpp index 9bcc17e..9451f0f 100644 --- a/src/declarative/fx/qfxfocusscope.cpp +++ b/src/declarative/fx/qfxfocusscope.cpp @@ -46,7 +46,7 @@ QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QFxFocusScope) /*! - \qmlclass FocusScope + \qmlclass FocusScope QFxFocusScope \brief The FocusScope object explicitly creates a focus scope. \inherits Item diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp index c07258d..6f57f8d 100644 --- a/src/declarative/fx/qfxgridview.cpp +++ b/src/declarative/fx/qfxgridview.cpp @@ -658,7 +658,7 @@ void QFxGridViewPrivate::updateCurrent(int modelIndex) //---------------------------------------------------------------------------- /*! - \qmlclass GridView + \qmlclass GridView QFxGridView \inherits Flickable \brief The GridView item provides a grid view of items provided by a model. diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index 72833e1..7ceaf17 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -79,7 +79,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) #include "qfxeffects.cpp" /*! - \qmlclass Transform + \qmlclass Transform QGraphicsTransform \brief The Transform elements provide a way of building advanced transformations on Items. The Transform elements let you create and control advanced transformations that can be configured @@ -92,7 +92,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) */ /*! - \qmlclass Scale + \qmlclass Scale QGraphicsScale \brief The Scale object provides a way to scale an Item. The Scale object gives more control over scaling than using Item's scale property. Specifically, @@ -130,7 +130,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) */ /*! - \qmlclass Rotation + \qmlclass Rotation QGraphicsRotation \brief The Rotation object provides a way to rotate an Item. The Rotation object gives more control over rotation than using Item's rotation property. diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 18c3062..54af383 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -954,7 +954,7 @@ void QFxListViewPrivate::flickY(qreal velocity) //---------------------------------------------------------------------------- /*! - \qmlclass ListView + \qmlclass ListView QFxListView \inherits Flickable \brief The ListView item provides a list view of items provided by a model. diff --git a/src/declarative/fx/qfxloader.cpp b/src/declarative/fx/qfxloader.cpp index da4a280..d36ed96 100644 --- a/src/declarative/fx/qfxloader.cpp +++ b/src/declarative/fx/qfxloader.cpp @@ -56,7 +56,7 @@ QFxLoaderPrivate::~QFxLoaderPrivate() QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QFxLoader) /*! - \qmlclass Loader + \qmlclass Loader QFxLoader \inherits Item \brief The Loader item allows dynamically loading an Item-based diff --git a/src/declarative/fx/qfxmouseregion.cpp b/src/declarative/fx/qfxmouseregion.cpp index 315a273..140d1df 100644 --- a/src/declarative/fx/qfxmouseregion.cpp +++ b/src/declarative/fx/qfxmouseregion.cpp @@ -120,7 +120,7 @@ void QFxDrag::setYmax(qreal m) } /*! - \qmlclass MouseRegion + \qmlclass MouseRegion QFxMouseRegion \brief The MouseRegion item enables simple mouse handling. \inherits Item diff --git a/src/declarative/fx/qfxpath.cpp b/src/declarative/fx/qfxpath.cpp index 26fafc5..741c44b 100644 --- a/src/declarative/fx/qfxpath.cpp +++ b/src/declarative/fx/qfxpath.cpp @@ -57,7 +57,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QFxPathQuad) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QFxPathCubic) /*! - \qmlclass PathElement + \qmlclass PathElement QFxPathElement \brief PathElement is the base path type. This type is the base for all path types. It cannot @@ -464,7 +464,7 @@ void QFxCurve::setY(qreal y) /****************************************************************************/ /*! - \qmlclass PathAttribute + \qmlclass PathAttribute QFxPathAttribute \brief The PathAttribute allows setting an attribute at a given position in a Path. The PathAttribute object allows attibutes consisting of a name and @@ -543,7 +543,7 @@ void QFxPathAttribute::setValue(qreal value) /****************************************************************************/ /*! - \qmlclass PathLine + \qmlclass PathLine QFxPathLine \brief The PathLine defines a straight line. The example below creates a path consisting of a straight line from @@ -583,7 +583,7 @@ void QFxPathLine::addToPath(QPainterPath &path) /****************************************************************************/ /*! - \qmlclass PathQuad + \qmlclass PathQuad QFxPathQuad \brief The PathQuad defines a quadratic Bezier curve with a control point. The following QML produces the path shown below: @@ -667,7 +667,7 @@ void QFxPathQuad::addToPath(QPainterPath &path) /****************************************************************************/ /*! - \qmlclass PathCubic + \qmlclass PathCubic QFxPathCubic \brief The PathCubic defines a cubic Bezier curve with two control points. The following QML produces the path shown below: @@ -777,7 +777,7 @@ void QFxPathCubic::addToPath(QPainterPath &path) /****************************************************************************/ /*! - \qmlclass PathPercent + \qmlclass PathPercent QFxPathPercent \brief The PathPercent manipulates the way a path is interpreted. The examples below show the normal distrubution of items along a path diff --git a/src/declarative/fx/qfxpathview.cpp b/src/declarative/fx/qfxpathview.cpp index c580e98..1a51349 100644 --- a/src/declarative/fx/qfxpathview.cpp +++ b/src/declarative/fx/qfxpathview.cpp @@ -97,7 +97,7 @@ private: */ /*! - \qmlclass PathView + \qmlclass PathView QFxPathView \brief The PathView element lays out model-provided items on a path. \inherits Item diff --git a/src/declarative/fx/qfxpositioners.cpp b/src/declarative/fx/qfxpositioners.cpp index 86a069d..9f002e8 100644 --- a/src/declarative/fx/qfxpositioners.cpp +++ b/src/declarative/fx/qfxpositioners.cpp @@ -333,7 +333,7 @@ void QFxBasePositioner::applyRemove(const QList >& chan QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QFxColumn) /*! - \qmlclass Column + \qmlclass Column QFxColumn \brief The Column item lines up its children vertically. \inherits Item @@ -519,7 +519,7 @@ void QFxColumn::doPositioning() QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QFxRow) /*! - \qmlclass Row + \qmlclass Row QFxRow \brief The Row item lines up its children horizontally. \inherits Item diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp index 94954e7..128903c 100644 --- a/src/declarative/fx/qfxrepeater.cpp +++ b/src/declarative/fx/qfxrepeater.cpp @@ -59,7 +59,7 @@ QFxRepeaterPrivate::~QFxRepeaterPrivate() QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QFxRepeater) /*! - \qmlclass Repeater + \qmlclass Repeater QFxRepeater \inherits Item \brief The Repeater item allows you to repeat a component based on a model. diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index ccb8f7e..be5809d 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QFxTextEdit) /*! - \qmlclass TextEdit + \qmlclass TextEdit QFxTextEdit \brief The TextEdit item allows you to add editable formatted text to a scene. It can display both plain and rich text. For example: diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp index e9ddd3f..71fdd81 100644 --- a/src/declarative/fx/qfxtextinput.cpp +++ b/src/declarative/fx/qfxtextinput.cpp @@ -54,7 +54,7 @@ QML_DEFINE_NOCREATE_TYPE(QValidator); QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); /*! - \qmlclass TextInput + \qmlclass TextInput QFxTextInput The TextInput item allows you to add an editable line of text to a scene. TextInput can only display a single line of text, and can only display diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp index f7030ca..b37bc08 100644 --- a/src/declarative/fx/qfxwebview.cpp +++ b/src/declarative/fx/qfxwebview.cpp @@ -208,7 +208,7 @@ public: }; /*! - \qmlclass WebView + \qmlclass WebView QFxWebView \brief The WebView item allows you to add web content to a canvas. \inherits Item diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index f103a6b..6cb6fc5 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -139,7 +139,7 @@ QEasingCurve stringToCurve(const QString &curve) QML_DEFINE_NOCREATE_TYPE(QmlAbstractAnimation) /*! - \qmlclass Animation + \qmlclass Animation QmlAbstractAnimation \brief The Animation element is the base of all QML animations. The Animation element cannot be used directly in a QML file. It exists diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp index 9c9fa6a..977385e 100644 --- a/src/declarative/util/qmllistmodel.cpp +++ b/src/declarative/util/qmllistmodel.cpp @@ -72,7 +72,7 @@ struct ListModelData static void dump(ModelNode *node, int ind); /*! - \qmlclass ListModel + \qmlclass ListModel QmlListModel \brief The ListModel element defines a free-form list data source. The ListModel is a simple hierarchy of elements containing data roles. The contents can diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 425480c..a49b6a9 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -125,7 +125,7 @@ QmlStateOperation::QmlStateOperation(QObjectPrivate &dd, QObject *parent) } /*! - \qmlclass State + \qmlclass State QmlState \brief The State element defines configurations of objects and properties. A state is specified as a set of batched changes from the default configuration. diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 4d469f9..8ae9a8d 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -138,7 +138,7 @@ void QmlParentChangePrivate::doChange(QFxItem *targetParent, QFxItem *stackBefor /*! \preliminary - \qmlclass ParentChange + \qmlclass ParentChange QmlParentChange \brief The ParentChange element allows you to reparent an Item in a state change. ParentChange reparents an Item while preserving its visual appearance (position, rotation, @@ -352,7 +352,7 @@ QmlStateChangeScript::ActionList QmlStateChangeScript::actions() } /*! - \qmlclass AnchorChanges + \qmlclass AnchorChanges QmlAnchorChanges \brief The AnchorChanges element allows you to change the anchors of an item in a state. \snippet examples/declarative/anchors/anchor-changes.qml 0 diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp index f1991f5..5dddab2 100644 --- a/src/declarative/util/qmltimer.cpp +++ b/src/declarative/util/qmltimer.cpp @@ -66,7 +66,7 @@ public: }; /*! - \qmlclass Timer QFxTimer + \qmlclass Timer QmlTimer \brief The Timer item triggers a handler at a specified interval. A timer can be used to trigger an action either once, or repeatedly -- cgit v0.12 From f37e9d787bd418d8f75997a8d46c1c42e842c673 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 13:36:19 +1000 Subject: cleanup --- examples/declarative/connections/Button.qml | 12 --- examples/declarative/connections/bg1.jpg | Bin 23771 -> 0 bytes examples/declarative/connections/connections.qml | 9 ++- .../declarative/connections/content/Button.qml | 12 +++ examples/declarative/connections/content/bg1.jpg | Bin 0 -> 23771 bytes .../connections/content/rotate-left.png | Bin 0 -> 3061 bytes .../connections/content/rotate-right.png | Bin 0 -> 3115 bytes examples/declarative/connections/rotate-left.png | Bin 3061 -> 0 bytes examples/declarative/connections/rotate-right.png | Bin 3115 -> 0 bytes examples/declarative/dynamic/Button.qml | 24 ------ examples/declarative/dynamic/GenericItem.qml | 13 ---- examples/declarative/dynamic/PaletteItem.qml | 13 ---- examples/declarative/dynamic/PerspectiveItem.qml | 12 --- examples/declarative/dynamic/Sun.qml | 24 ------ examples/declarative/dynamic/dynamic.qml | 11 +-- examples/declarative/dynamic/itemCreation.js | 81 -------------------- examples/declarative/dynamic/qml/Button.qml | 24 ++++++ examples/declarative/dynamic/qml/GenericItem.qml | 13 ++++ examples/declarative/dynamic/qml/PaletteItem.qml | 13 ++++ .../declarative/dynamic/qml/PerspectiveItem.qml | 12 +++ examples/declarative/dynamic/qml/Sun.qml | 24 ++++++ examples/declarative/dynamic/qml/itemCreation.js | 82 +++++++++++++++++++++ 22 files changed, 191 insertions(+), 188 deletions(-) delete mode 100644 examples/declarative/connections/Button.qml delete mode 100644 examples/declarative/connections/bg1.jpg create mode 100644 examples/declarative/connections/content/Button.qml create mode 100644 examples/declarative/connections/content/bg1.jpg create mode 100644 examples/declarative/connections/content/rotate-left.png create mode 100644 examples/declarative/connections/content/rotate-right.png delete mode 100644 examples/declarative/connections/rotate-left.png delete mode 100644 examples/declarative/connections/rotate-right.png delete mode 100644 examples/declarative/dynamic/Button.qml delete mode 100644 examples/declarative/dynamic/GenericItem.qml delete mode 100644 examples/declarative/dynamic/PaletteItem.qml delete mode 100644 examples/declarative/dynamic/PerspectiveItem.qml delete mode 100644 examples/declarative/dynamic/Sun.qml delete mode 100644 examples/declarative/dynamic/itemCreation.js create mode 100644 examples/declarative/dynamic/qml/Button.qml create mode 100644 examples/declarative/dynamic/qml/GenericItem.qml create mode 100644 examples/declarative/dynamic/qml/PaletteItem.qml create mode 100644 examples/declarative/dynamic/qml/PerspectiveItem.qml create mode 100644 examples/declarative/dynamic/qml/Sun.qml create mode 100644 examples/declarative/dynamic/qml/itemCreation.js diff --git a/examples/declarative/connections/Button.qml b/examples/declarative/connections/Button.qml deleted file mode 100644 index 1d46acc..0000000 --- a/examples/declarative/connections/Button.qml +++ /dev/null @@ -1,12 +0,0 @@ -import Qt 4.6 - -Item { - id: button - width: 48; height: 48 - - property alias image: icon.source - signal clicked - - Image { id: icon } - MouseRegion { anchors.fill: icon; onClicked: button.clicked() } -} diff --git a/examples/declarative/connections/bg1.jpg b/examples/declarative/connections/bg1.jpg deleted file mode 100644 index dfc7cee..0000000 Binary files a/examples/declarative/connections/bg1.jpg and /dev/null differ diff --git a/examples/declarative/connections/connections.qml b/examples/declarative/connections/connections.qml index 5dc211e..07f71bb 100644 --- a/examples/declarative/connections/connections.qml +++ b/examples/declarative/connections/connections.qml @@ -1,7 +1,8 @@ import Qt 4.6 +import "content" Rectangle { - id: window; color: "#343434" + id: window; color: "#646464" width: 640; height: 480 function turnLeft() { @@ -12,16 +13,16 @@ Rectangle { } Image { - id: image; source: "bg1.jpg"; anchors.centerIn: parent; transformOrigin: Item.Center + id: image; source: "content/bg1.jpg"; anchors.centerIn: parent; transformOrigin: Item.Center rotation: Behavior { NumberAnimation { easing: "easeOutCubic"; duration: 300 } } } Button { - id: leftButton; image: "rotate-left.png" + id: leftButton; image: "content/rotate-left.png" anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 10 } } Button { - id: rightButton; image: "rotate-right.png" + id: rightButton; image: "content/rotate-right.png" anchors { right: parent.right; bottom: parent.bottom; rightMargin: 10; bottomMargin: 10 } } diff --git a/examples/declarative/connections/content/Button.qml b/examples/declarative/connections/content/Button.qml new file mode 100644 index 0000000..1d46acc --- /dev/null +++ b/examples/declarative/connections/content/Button.qml @@ -0,0 +1,12 @@ +import Qt 4.6 + +Item { + id: button + width: 48; height: 48 + + property alias image: icon.source + signal clicked + + Image { id: icon } + MouseRegion { anchors.fill: icon; onClicked: button.clicked() } +} diff --git a/examples/declarative/connections/content/bg1.jpg b/examples/declarative/connections/content/bg1.jpg new file mode 100644 index 0000000..dfc7cee Binary files /dev/null and b/examples/declarative/connections/content/bg1.jpg differ diff --git a/examples/declarative/connections/content/rotate-left.png b/examples/declarative/connections/content/rotate-left.png new file mode 100644 index 0000000..c30387e Binary files /dev/null and b/examples/declarative/connections/content/rotate-left.png differ diff --git a/examples/declarative/connections/content/rotate-right.png b/examples/declarative/connections/content/rotate-right.png new file mode 100644 index 0000000..1b05674 Binary files /dev/null and b/examples/declarative/connections/content/rotate-right.png differ diff --git a/examples/declarative/connections/rotate-left.png b/examples/declarative/connections/rotate-left.png deleted file mode 100644 index c30387e..0000000 Binary files a/examples/declarative/connections/rotate-left.png and /dev/null differ diff --git a/examples/declarative/connections/rotate-right.png b/examples/declarative/connections/rotate-right.png deleted file mode 100644 index 1b05674..0000000 Binary files a/examples/declarative/connections/rotate-right.png and /dev/null differ diff --git a/examples/declarative/dynamic/Button.qml b/examples/declarative/dynamic/Button.qml deleted file mode 100644 index 0b8b6db..0000000 --- a/examples/declarative/dynamic/Button.qml +++ /dev/null @@ -1,24 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: container - - property var text - signal clicked - - SystemPalette { id: activePalette; colorGroup: Qt.Active } - height: text.height + 10 - width: text.width + 20 - border.width: 1 - radius: 4 - gradient: Gradient { - GradientStop { position: 0.0; - color: if(!mr.pressed){activePalette.light;}else{activePalette.button;} - } - GradientStop { position: 1.0; - color: if(!mr.pressed){activePalette.button;}else{activePalette.dark;} - } - } - MouseRegion { id:mr; anchors.fill: parent; onClicked: container.clicked() } - Text { id: text; anchors.centerIn:parent; font.pointSize: 10; text: parent.text; color: activePalette.buttonText } -} diff --git a/examples/declarative/dynamic/GenericItem.qml b/examples/declarative/dynamic/GenericItem.qml deleted file mode 100644 index 10e3dba..0000000 --- a/examples/declarative/dynamic/GenericItem.qml +++ /dev/null @@ -1,13 +0,0 @@ -import Qt 4.6 - -Item{ - property bool created: false - property string image - width: imageItem.width - height: imageItem.height - z: 2 - Image{ - id: imageItem - source: image; - } -} diff --git a/examples/declarative/dynamic/PaletteItem.qml b/examples/declarative/dynamic/PaletteItem.qml deleted file mode 100644 index bb6036d..0000000 --- a/examples/declarative/dynamic/PaletteItem.qml +++ /dev/null @@ -1,13 +0,0 @@ -import Qt 4.6 - -GenericItem { - id: itemButton - property string file - Script { source: "itemCreation.js" } - MouseRegion { - anchors.fill: parent; - onPressed: startDrag(mouse); - onPositionChanged: moveDrag(mouse); - onReleased: endDrag(mouse); - } -} diff --git a/examples/declarative/dynamic/PerspectiveItem.qml b/examples/declarative/dynamic/PerspectiveItem.qml deleted file mode 100644 index 9e09dd2..0000000 --- a/examples/declarative/dynamic/PerspectiveItem.qml +++ /dev/null @@ -1,12 +0,0 @@ -import Qt 4.6 - -Image { - id: tree - property bool created: false - opacity: y+height > window.height/2 ? 1 : 0.25 - onCreatedChanged: if (created && y+height<=window.height/2) { tree.destroy() } - scale: y+height > window.height/2 ? (y+height-250)*0.01 : 1 - transformOrigin: "Center" - source: image; - z: y -} diff --git a/examples/declarative/dynamic/Sun.qml b/examples/declarative/dynamic/Sun.qml deleted file mode 100644 index a9f5d40..0000000 --- a/examples/declarative/dynamic/Sun.qml +++ /dev/null @@ -1,24 +0,0 @@ -import Qt 4.6 - -Image { - id: sun - property bool created: false - property string image: "images/sun.png" - onCreatedChanged: if(created){window.activeSuns++;}else{window.activeSuns--;} - - source: image; - z: 1 - - //x and y get set when instantiated - //head offscreen - y: NumberAnimation { - to: parent.height; - duration: 10000; - running: created - } - - states: State { - name: "OffScreen"; when: created && y > window.height/2;//Below the ground - StateChangeScript { script: { sun.created = false; sun.destroy() } } - } -} diff --git a/examples/declarative/dynamic/dynamic.qml b/examples/declarative/dynamic/dynamic.qml index 9bfab0e..0166b4c 100644 --- a/examples/declarative/dynamic/dynamic.qml +++ b/examples/declarative/dynamic/dynamic.qml @@ -1,4 +1,5 @@ import Qt 4.6 +import "qml" Item { id: window @@ -71,26 +72,26 @@ Item { PaletteItem{ anchors.verticalCenter: parent.verticalCenter file: "Sun.qml"; - image: "images/sun.png" + image: "../images/sun.png" } PaletteItem{ file: "GenericItem.qml" - image: "images/moon.png" + image: "../images/moon.png" } PaletteItem{ anchors.verticalCenter: parent.verticalCenter file: "PerspectiveItem.qml" - image: "images/tree_s.png" + image: "../images/tree_s.png" } PaletteItem{ anchors.verticalCenter: parent.verticalCenter file: "PerspectiveItem.qml" - image: "images/rabbit_brown.png" + image: "../images/rabbit_brown.png" } PaletteItem{ anchors.verticalCenter: parent.verticalCenter file: "PerspectiveItem.qml" - image: "images/rabbit_bw.png" + image: "../images/rabbit_bw.png" } } Text{ text: "Active Suns: " + activeSuns } diff --git a/examples/declarative/dynamic/itemCreation.js b/examples/declarative/dynamic/itemCreation.js deleted file mode 100644 index 06e67c5..0000000 --- a/examples/declarative/dynamic/itemCreation.js +++ /dev/null @@ -1,81 +0,0 @@ -var itemComponent = null; -var draggedItem = null; -var startingMouse; -var startingZ; -//Until QT-2385 is resolved we need to convert to scene coordinates manually -var xOffset; -var yOffset; -function setSceneOffset() -{ - xOffset = 0; - yOffset = 0; - var p = itemButton; - while(p != window){ - xOffset += p.x; - yOffset += p.y; - p = p.parent; - } -} - -function startDrag(mouse) -{ - setSceneOffset(); - startingMouse = { x: mouse.x, y: mouse.y } - loadComponent(); -} - -//Creation is split into two functions due to an asyncronous wait while -//possible external files are loaded. - -function loadComponent() { - if (itemComponent != null) //Already loaded the component - createItem(); - - itemComponent = createComponent(itemButton.file); - if(itemComponent.isLoading){ - component.statusChanged.connect(finishCreation); - }else{//Depending on the content, it can be ready or error immediately - createItem(); - } -} - -function createItem() { - if (itemComponent.isReady && draggedItem == null) { - draggedItem = itemComponent.createObject(); - draggedItem.parent = window; - draggedItem.image = itemButton.image; - draggedItem.x = xOffset; - draggedItem.y = yOffset; - startingZ = draggedItem.z; - draggedItem.z = 4;//On top - } else if (itemComponent.isError) { - draggedItem = null; - print("error creating component"); - print(component.errorsString()); - } -} - -function moveDrag(mouse) -{ - if(draggedItem == null) - return; - - draggedItem.x = mouse.x + xOffset - startingMouse.x; - draggedItem.y = mouse.y + yOffset - startingMouse.y; -} - -function endDrag(mouse) -{ - if(draggedItem == null) - return; - - if(draggedItem.x + draggedItem.width > toolbox.x){ //Don't drop it in the toolbox - draggedItem.destroy(); - draggedItem = null; - }else{ - draggedItem.z = startingZ; - draggedItem.created = true; - draggedItem = null; - } -} - diff --git a/examples/declarative/dynamic/qml/Button.qml b/examples/declarative/dynamic/qml/Button.qml new file mode 100644 index 0000000..2769cd8 --- /dev/null +++ b/examples/declarative/dynamic/qml/Button.qml @@ -0,0 +1,24 @@ +import Qt 4.6 + +Rectangle { + id: container + + property var text + signal clicked + + SystemPalette { id: activePalette; colorGroup: Qt.Active } + height: text.height + 10 + width: text.width + 20 + border.width: 1 + radius: 4; smooth: true + gradient: Gradient { + GradientStop { position: 0.0; + color: if(!mr.pressed){activePalette.light;}else{activePalette.button;} + } + GradientStop { position: 1.0; + color: if(!mr.pressed){activePalette.button;}else{activePalette.dark;} + } + } + MouseRegion { id:mr; anchors.fill: parent; onClicked: container.clicked() } + Text { id: text; anchors.centerIn:parent; font.pointSize: 10; text: parent.text; color: activePalette.buttonText } +} diff --git a/examples/declarative/dynamic/qml/GenericItem.qml b/examples/declarative/dynamic/qml/GenericItem.qml new file mode 100644 index 0000000..10e3dba --- /dev/null +++ b/examples/declarative/dynamic/qml/GenericItem.qml @@ -0,0 +1,13 @@ +import Qt 4.6 + +Item{ + property bool created: false + property string image + width: imageItem.width + height: imageItem.height + z: 2 + Image{ + id: imageItem + source: image; + } +} diff --git a/examples/declarative/dynamic/qml/PaletteItem.qml b/examples/declarative/dynamic/qml/PaletteItem.qml new file mode 100644 index 0000000..bb6036d --- /dev/null +++ b/examples/declarative/dynamic/qml/PaletteItem.qml @@ -0,0 +1,13 @@ +import Qt 4.6 + +GenericItem { + id: itemButton + property string file + Script { source: "itemCreation.js" } + MouseRegion { + anchors.fill: parent; + onPressed: startDrag(mouse); + onPositionChanged: moveDrag(mouse); + onReleased: endDrag(mouse); + } +} diff --git a/examples/declarative/dynamic/qml/PerspectiveItem.qml b/examples/declarative/dynamic/qml/PerspectiveItem.qml new file mode 100644 index 0000000..9e09dd2 --- /dev/null +++ b/examples/declarative/dynamic/qml/PerspectiveItem.qml @@ -0,0 +1,12 @@ +import Qt 4.6 + +Image { + id: tree + property bool created: false + opacity: y+height > window.height/2 ? 1 : 0.25 + onCreatedChanged: if (created && y+height<=window.height/2) { tree.destroy() } + scale: y+height > window.height/2 ? (y+height-250)*0.01 : 1 + transformOrigin: "Center" + source: image; + z: y +} diff --git a/examples/declarative/dynamic/qml/Sun.qml b/examples/declarative/dynamic/qml/Sun.qml new file mode 100644 index 0000000..796a370 --- /dev/null +++ b/examples/declarative/dynamic/qml/Sun.qml @@ -0,0 +1,24 @@ +import Qt 4.6 + +Image { + id: sun + property bool created: false + property string image: "../images/sun.png" + onCreatedChanged: if(created){window.activeSuns++;}else{window.activeSuns--;} + + source: image; + z: 1 + + //x and y get set when instantiated + //head offscreen + y: NumberAnimation { + to: parent.height; + duration: 10000; + running: created + } + + states: State { + name: "OffScreen"; when: created && y > window.height / 2;//Below the ground + StateChangeScript { script: { sun.created = false; sun.destroy() } } + } +} diff --git a/examples/declarative/dynamic/qml/itemCreation.js b/examples/declarative/dynamic/qml/itemCreation.js new file mode 100644 index 0000000..b3e8ba5 --- /dev/null +++ b/examples/declarative/dynamic/qml/itemCreation.js @@ -0,0 +1,82 @@ +var itemComponent = null; +var draggedItem = null; +var startingMouse; +var startingZ; +//Until QT-2385 is resolved we need to convert to scene coordinates manually +var xOffset; +var yOffset; +function setSceneOffset() +{ + xOffset = 0; + yOffset = 0; + var p = itemButton; + while(p != window){ + xOffset += p.x; + yOffset += p.y; + p = p.parent; + } +} + +function startDrag(mouse) +{ + setSceneOffset(); + startingMouse = { x: mouse.x, y: mouse.y } + loadComponent(); +} + +//Creation is split into two functions due to an asyncronous wait while +//possible external files are loaded. + +function loadComponent() { + if (itemComponent != null) //Already loaded the component + createItem(); + + itemComponent = createComponent(itemButton.file); + print(itemButton.file) + if(itemComponent.isLoading){ + component.statusChanged.connect(finishCreation); + }else{//Depending on the content, it can be ready or error immediately + createItem(); + } +} + +function createItem() { + if (itemComponent.isReady && draggedItem == null) { + draggedItem = itemComponent.createObject(); + draggedItem.parent = window; + draggedItem.image = itemButton.image; + draggedItem.x = xOffset; + draggedItem.y = yOffset; + startingZ = draggedItem.z; + draggedItem.z = 4;//On top + } else if (itemComponent.isError) { + draggedItem = null; + print("error creating component"); + print(component.errorsString()); + } +} + +function moveDrag(mouse) +{ + if(draggedItem == null) + return; + + draggedItem.x = mouse.x + xOffset - startingMouse.x; + draggedItem.y = mouse.y + yOffset - startingMouse.y; +} + +function endDrag(mouse) +{ + if(draggedItem == null) + return; + + if(draggedItem.x + draggedItem.width > toolbox.x){ //Don't drop it in the toolbox + draggedItem.destroy(); + draggedItem = null; + }else{ + draggedItem.z = startingZ; + draggedItem.created = true; + draggedItem = null; + } +} + -- cgit v0.12 From ce2581dc8e77a9e1e27730a1b22257323a067d97 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 13:55:07 +1000 Subject: change cities in clock example --- examples/declarative/clocks/clocks.qml | 4 ++-- examples/declarative/clocks/content/Clock.qml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/declarative/clocks/clocks.qml b/examples/declarative/clocks/clocks.qml index 3235153..624748a 100644 --- a/examples/declarative/clocks/clocks.qml +++ b/examples/declarative/clocks/clocks.qml @@ -9,7 +9,7 @@ Rectangle { Grid { columns: 3 Clock { city: "New York"; shift: -4 } - Clock { city: "London" } - Clock { city: "Brisbane"; shift: 10 } + Clock { city: "Mumbai"; shift: 5.5 } + Clock { city: "Tokyo"; shift: 9 } } } diff --git a/examples/declarative/clocks/content/Clock.qml b/examples/declarative/clocks/content/Clock.qml index 636c99f..4e9984f 100644 --- a/examples/declarative/clocks/content/Clock.qml +++ b/examples/declarative/clocks/content/Clock.qml @@ -8,12 +8,12 @@ Item { property var hours property var minutes property var seconds - property int shift : 0 + property var shift : 0 function timeChanged() { var date = new Date; - hours = date.getUTCHours() + clock.shift - minutes = date.getUTCMinutes(); + hours = date.getUTCHours() + Math.floor(clock.shift) + minutes = date.getUTCMinutes() + ((clock.shift % 1) * 60); seconds = date.getUTCSeconds(); } -- cgit v0.12 From 45cc1ea534640cb492bd00405bf8fcd5dbfbcf5c Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 14:15:22 +1000 Subject: Rename QFx classes to QmlGraphics --- doc/src/declarative/measuring-performance.qdoc | 6 +- doc/src/declarative/qtprogrammers.qdoc | 10 +- src/declarative/3rdparty/qlistmodelinterface.cpp | 4 +- src/declarative/extra/qfxanimatedimageitem.cpp | 60 +- src/declarative/extra/qfxanimatedimageitem.h | 18 +- src/declarative/extra/qfxanimatedimageitem_p.h | 6 +- src/declarative/extra/qfxintegermodel.cpp | 28 +- src/declarative/extra/qfxintegermodel.h | 12 +- src/declarative/extra/qfxparticles.cpp | 318 ++++----- src/declarative/extra/qfxparticles.h | 74 +- src/declarative/fx/qfxanchors.cpp | 392 +++++----- src/declarative/fx/qfxanchors.h | 76 +- src/declarative/fx/qfxanchors_p.h | 50 +- src/declarative/fx/qfxborderimage.cpp | 80 +-- src/declarative/fx/qfxborderimage.h | 26 +- src/declarative/fx/qfxborderimage_p.h | 24 +- src/declarative/fx/qfxevents.cpp | 12 +- src/declarative/fx/qfxevents_p.h | 14 +- src/declarative/fx/qfxflickable.cpp | 352 ++++----- src/declarative/fx/qfxflickable.h | 30 +- src/declarative/fx/qfxflickable_p.h | 24 +- src/declarative/fx/qfxflipable.cpp | 68 +- src/declarative/fx/qfxflipable.h | 26 +- src/declarative/fx/qfxfocuspanel.cpp | 14 +- src/declarative/fx/qfxfocuspanel.h | 10 +- src/declarative/fx/qfxfocusscope.cpp | 10 +- src/declarative/fx/qfxfocusscope.h | 8 +- src/declarative/fx/qfxgraphicsobjectcontainer.cpp | 52 +- src/declarative/fx/qfxgraphicsobjectcontainer.h | 12 +- src/declarative/fx/qfxgridview.cpp | 376 +++++----- src/declarative/fx/qfxgridview.h | 28 +- src/declarative/fx/qfximage.cpp | 40 +- src/declarative/fx/qfximage.h | 16 +- src/declarative/fx/qfximage_p.h | 10 +- src/declarative/fx/qfximagebase.cpp | 44 +- src/declarative/fx/qfximagebase.h | 14 +- src/declarative/fx/qfximagebase_p.h | 10 +- src/declarative/fx/qfxitem.cpp | 792 ++++++++++----------- src/declarative/fx/qfxitem.h | 70 +- src/declarative/fx/qfxitem_p.h | 76 +- src/declarative/fx/qfxlayoutitem.cpp | 16 +- src/declarative/fx/qfxlayoutitem.h | 8 +- src/declarative/fx/qfxlistview.cpp | 488 ++++++------- src/declarative/fx/qfxlistview.h | 28 +- src/declarative/fx/qfxloader.cpp | 80 +-- src/declarative/fx/qfxloader.h | 18 +- src/declarative/fx/qfxloader_p.h | 12 +- src/declarative/fx/qfxmouseregion.cpp | 168 ++--- src/declarative/fx/qfxmouseregion.h | 52 +- src/declarative/fx/qfxmouseregion_p.h | 12 +- src/declarative/fx/qfxpainteditem.cpp | 78 +- src/declarative/fx/qfxpainteditem.h | 16 +- src/declarative/fx/qfxpainteditem_p.h | 6 +- src/declarative/fx/qfxpath.cpp | 194 ++--- src/declarative/fx/qfxpath.h | 62 +- src/declarative/fx/qfxpath_p.h | 10 +- src/declarative/fx/qfxpathview.cpp | 232 +++--- src/declarative/fx/qfxpathview.h | 30 +- src/declarative/fx/qfxpathview_p.h | 34 +- src/declarative/fx/qfxpixmapcache.cpp | 28 +- src/declarative/fx/qfxpixmapcache.h | 4 +- src/declarative/fx/qfxpositioners.cpp | 168 ++--- src/declarative/fx/qfxpositioners.h | 52 +- src/declarative/fx/qfxpositioners_p.h | 24 +- src/declarative/fx/qfxrect.cpp | 100 +-- src/declarative/fx/qfxrect.h | 52 +- src/declarative/fx/qfxrect_p.h | 24 +- src/declarative/fx/qfxrepeater.cpp | 88 +-- src/declarative/fx/qfxrepeater.h | 16 +- src/declarative/fx/qfxrepeater_p.h | 14 +- src/declarative/fx/qfxscalegrid.cpp | 54 +- src/declarative/fx/qfxscalegrid_p.h | 28 +- src/declarative/fx/qfxtext.cpp | 178 ++--- src/declarative/fx/qfxtext.h | 16 +- src/declarative/fx/qfxtext_p.h | 22 +- src/declarative/fx/qfxtextedit.cpp | 314 ++++---- src/declarative/fx/qfxtextedit.h | 14 +- src/declarative/fx/qfxtextedit_p.h | 18 +- src/declarative/fx/qfxtextinput.cpp | 246 +++---- src/declarative/fx/qfxtextinput.h | 14 +- src/declarative/fx/qfxtextinput_p.h | 18 +- src/declarative/fx/qfxvisualitemmodel.cpp | 338 ++++----- src/declarative/fx/qfxvisualitemmodel.h | 78 +- src/declarative/fx/qfxwebview.cpp | 328 ++++----- src/declarative/fx/qfxwebview.h | 48 +- src/declarative/qml/qmlbinding.cpp | 2 +- src/declarative/qml/qmlboundsignal.cpp | 4 +- src/declarative/qml/qmlcompiler.cpp | 2 +- src/declarative/qml/qmlcomponent.cpp | 4 +- src/declarative/qml/qmldom.cpp | 2 +- src/declarative/qml/qmlengine.cpp | 4 +- src/declarative/qml/qmlexpression.cpp | 6 +- src/declarative/qml/qmlscriptparser.cpp | 2 +- src/declarative/util/qfxglobal.h | 6 +- src/declarative/util/qfxperf.cpp | 16 +- src/declarative/util/qfxperf_p.h | 6 +- src/declarative/util/qmlanimation.cpp | 18 +- src/declarative/util/qmlanimation.h | 14 +- src/declarative/util/qmlanimation_p.h | 4 +- src/declarative/util/qmlstategroup.cpp | 2 +- src/declarative/util/qmlstateoperations.cpp | 164 ++--- src/declarative/util/qmlstateoperations.h | 60 +- src/declarative/util/qmltimer.cpp | 2 +- src/declarative/util/qmlview.cpp | 22 +- src/declarative/util/qmlview.h | 6 +- src/gui/graphicsview/qgraphicsitem_p.h | 2 +- tests/auto/declarative/anchors/tst_anchors.cpp | 84 +-- .../animatedimage/tst_animatedimage.cpp | 8 +- .../auto/declarative/animations/tst_animations.cpp | 22 +- tests/auto/declarative/behaviors/tst_behaviors.cpp | 30 +- tests/auto/declarative/layouts/tst_layouts.cpp | 66 +- tests/auto/declarative/listview/tst_listview.cpp | 108 +-- tests/auto/declarative/pathview/tst_pathview.cpp | 52 +- tests/auto/declarative/qfxloader/tst_qfxloader.cpp | 16 +- .../qfxpixmapcache/tst_qfxpixmapcache.cpp | 22 +- tests/auto/declarative/qfxtext/tst_qfxtext.cpp | 62 +- .../declarative/qfxtextedit/tst_qfxtextedit.cpp | 52 +- .../declarative/qfxtextinput/tst_qfxtextinput.cpp | 42 +- .../auto/declarative/qfxwebview/tst_qfxwebview.cpp | 4 +- .../declarative/qmllanguage/tst_qmllanguage.cpp | 28 +- .../qmlpropertymap/tst_qmlpropertymap.cpp | 2 +- tests/auto/declarative/repeater/tst_repeater.cpp | 28 +- tests/auto/declarative/sql/tst_sql.cpp | 2 +- tests/auto/declarative/states/tst_states.cpp | 22 +- tests/benchmarks/qmlpainting/tst_qmlpainting.cpp | 6 +- tools/qdoc3/htmlgenerator.cpp | 4 +- tools/qmlviewer/qfxtester.cpp | 48 +- tools/qmlviewer/qfxtester.h | 32 +- tools/qmlviewer/qmlviewer.cpp | 2 +- tools/qmlviewer/qmlviewer.h | 6 +- 130 files changed, 4108 insertions(+), 4108 deletions(-) diff --git a/doc/src/declarative/measuring-performance.qdoc b/doc/src/declarative/measuring-performance.qdoc index 01e7b03..bd1b0eb 100644 --- a/doc/src/declarative/measuring-performance.qdoc +++ b/doc/src/declarative/measuring-performance.qdoc @@ -71,14 +71,14 @@ Q_DEFINE_PERFORMANCE_METRIC(TextSize, "Text Size Calculation"); You could then use this category in the code: \code -void QFxText::updateSize() +void QmlGraphicsText::updateSize() { - QFxPerfTimer perf; + QmlPerfTimer perf; ... } \endcode -Because there is no cost for a QFxPerfTimer when Q_ENABLE_PERFORMANCE_LOG is not defined, this line can persist in the code and be used to help detect performance bottlenecks and regressions. See the QPerformanceLog documentation for more information on this performance framework. +Because there is no cost for a QmlPerfTimer when Q_ENABLE_PERFORMANCE_LOG is not defined, this line can persist in the code and be used to help detect performance bottlenecks and regressions. See the QPerformanceLog documentation for more information on this performance framework. \section1 FPS Measurements diff --git a/doc/src/declarative/qtprogrammers.qdoc b/doc/src/declarative/qtprogrammers.qdoc index 4c28255..6892005 100644 --- a/doc/src/declarative/qtprogrammers.qdoc +++ b/doc/src/declarative/qtprogrammers.qdoc @@ -84,14 +84,14 @@ QML Items also serve these purposes. Each is considered separately below. \section2 Simple Widgets -The most important rule to remember while implementing a new QFxItem in C++ +The most important rule to remember while implementing a new QmlGraphicsItem in C++ is that it should not contain any look and feel policies - leave that to the QML usage of the item. As an example, imagine you wanted a reusable Button item. If you therefore -decided to write a QFxItem subclass to implement a button, +decided to write a QmlGraphicsItem subclass to implement a button, just as QToolButton subclasses QWidget for this purpose, following the rule above, your -\c QFxButton would not have any appearance - just the notions of enabled, triggering, etc. +\c QmlGraphicsButton would not have any appearance - just the notions of enabled, triggering, etc. But there is already an object in Qt that does this: QAction. @@ -103,8 +103,8 @@ The look and feel of an action - the appearance of the button, the transition be and exactly how it respond to mouse, key, or touch input, should all be left for definition in QML. -It is illustrative to note that QFxTextEdit is built upon QTextControl, -QFxWebView is built upon QWebPage, and ListView uses QListModelInterface, +It is illustrative to note that QmlGraphicsTextEdit is built upon QTextControl, +QmlGraphicsWebView is built upon QWebPage, and ListView uses QListModelInterface, just as QTextEdit, QWebView, and QListView are built upon those same UI-agnostic components. diff --git a/src/declarative/3rdparty/qlistmodelinterface.cpp b/src/declarative/3rdparty/qlistmodelinterface.cpp index 4213ff2..b47ed8b 100644 --- a/src/declarative/3rdparty/qlistmodelinterface.cpp +++ b/src/declarative/3rdparty/qlistmodelinterface.cpp @@ -46,11 +46,11 @@ QT_BEGIN_NAMESPACE /*! \internal \class QListModelInterface - \brief The QListModelInterface class can be subclassed to provide C++ models to QFx Views + \brief The QListModelInterface class can be subclassed to provide C++ models to QmlGraphics Views This class is comprised primarily of pure virtual functions which you must implement in a subclass. You can then use the subclass - as a model for a QFx view, such as a QFxListView. + as a model for a QmlGraphics view, such as a QmlGraphicsListView. */ /*! \fn QListModelInterface::QListModelInterface(QObject *parent) diff --git a/src/declarative/extra/qfxanimatedimageitem.cpp b/src/declarative/extra/qfxanimatedimageitem.cpp index 5a491e0..8a6046e 100644 --- a/src/declarative/extra/qfxanimatedimageitem.cpp +++ b/src/declarative/extra/qfxanimatedimageitem.cpp @@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE /*! - \class QFxAnimatedImageItem + \class QmlGraphicsAnimatedImageItem \internal */ @@ -77,21 +77,21 @@ Item { \endqml \endtable */ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,AnimatedImage,QFxAnimatedImageItem) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,AnimatedImage,QmlGraphicsAnimatedImageItem) -QFxAnimatedImageItem::QFxAnimatedImageItem(QFxItem *parent) - : QFxImage(*(new QFxAnimatedImageItemPrivate), parent) +QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent) + : QmlGraphicsImage(*(new QmlGraphicsAnimatedImageItemPrivate), parent) { } -QFxAnimatedImageItem::QFxAnimatedImageItem(QFxAnimatedImageItemPrivate &dd, QFxItem *parent) - : QFxImage(dd, parent) +QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImage(dd, parent) { } -QFxAnimatedImageItem::~QFxAnimatedImageItem() +QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); delete d->_movie; } @@ -101,17 +101,17 @@ QFxAnimatedImageItem::~QFxAnimatedImageItem() Defaults to false, and can be set to true when you want to pause. */ -bool QFxAnimatedImageItem::isPaused() const +bool QmlGraphicsAnimatedImageItem::isPaused() const { - Q_D(const QFxAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImageItem); if(!d->_movie) return false; return d->_movie->state()==QMovie::Paused; } -void QFxAnimatedImageItem::setPaused(bool pause) +void QmlGraphicsAnimatedImageItem::setPaused(bool pause) { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); if(pause == d->paused) return; d->paused = pause; @@ -125,17 +125,17 @@ void QFxAnimatedImageItem::setPaused(bool pause) Defaults to true, so as to start playing immediately. */ -bool QFxAnimatedImageItem::isPlaying() const +bool QmlGraphicsAnimatedImageItem::isPlaying() const { - Q_D(const QFxAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImageItem); if (!d->_movie) return false; return d->_movie->state()!=QMovie::NotRunning; } -void QFxAnimatedImageItem::setPlaying(bool play) +void QmlGraphicsAnimatedImageItem::setPlaying(bool play) { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); if(play == d->playing) return; d->playing = play; @@ -155,33 +155,33 @@ void QFxAnimatedImageItem::setPlaying(bool play) allow other things to animate at the same time as the image. frameCount is the number of frames in the animation. For some animation formats, frameCount is unknown and set to zero. */ -int QFxAnimatedImageItem::currentFrame() const +int QmlGraphicsAnimatedImageItem::currentFrame() const { - Q_D(const QFxAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImageItem); if (!d->_movie) return -1; return d->_movie->currentFrameNumber(); } -void QFxAnimatedImageItem::setCurrentFrame(int frame) +void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); if (!d->_movie) return; d->_movie->jumpToFrame(frame); } -int QFxAnimatedImageItem::frameCount() const +int QmlGraphicsAnimatedImageItem::frameCount() const { - Q_D(const QFxAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImageItem); if (!d->_movie) return 0; return d->_movie->frameCount(); } -void QFxAnimatedImageItem::setSource(const QUrl &url) +void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); if (url == d->url) return; @@ -209,9 +209,9 @@ void QFxAnimatedImageItem::setSource(const QUrl &url) emit statusChanged(d->status); } -void QFxAnimatedImageItem::movieRequestFinished() +void QmlGraphicsAnimatedImageItem::movieRequestFinished() { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); d->_movie = new QMovie(d->reply); if (!d->_movie->isValid()){ qWarning() << "Error Reading Animated Image File " << d->url; @@ -233,16 +233,16 @@ void QFxAnimatedImageItem::movieRequestFinished() setPixmap(d->_movie->currentPixmap()); } -void QFxAnimatedImageItem::movieUpdate() +void QmlGraphicsAnimatedImageItem::movieUpdate() { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); setPixmap(d->_movie->currentPixmap()); emit frameChanged(); } -void QFxAnimatedImageItem::playingStatusChanged() +void QmlGraphicsAnimatedImageItem::playingStatusChanged() { - Q_D(QFxAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImageItem); if((d->_movie->state() != QMovie::NotRunning) != d->playing){ d->playing = (d->_movie->state() != QMovie::NotRunning); emit playingChanged(); diff --git a/src/declarative/extra/qfxanimatedimageitem.h b/src/declarative/extra/qfxanimatedimageitem.h index 4002a3f..782f920 100644 --- a/src/declarative/extra/qfxanimatedimageitem.h +++ b/src/declarative/extra/qfxanimatedimageitem.h @@ -51,9 +51,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QMovie; -class QFxAnimatedImageItemPrivate; +class QmlGraphicsAnimatedImageItemPrivate; -class Q_DECLARATIVE_EXPORT QFxAnimatedImageItem : public QFxImage +class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage { Q_OBJECT @@ -62,8 +62,8 @@ class Q_DECLARATIVE_EXPORT QFxAnimatedImageItem : public QFxImage Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) Q_PROPERTY(int frameCount READ frameCount) public: - QFxAnimatedImageItem(QFxItem *parent=0); - ~QFxAnimatedImageItem(); + QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsAnimatedImageItem(); bool isPlaying() const; void setPlaying(bool play); @@ -76,7 +76,7 @@ public: int frameCount() const; - // Extends QFxImage's src property*/ + // Extends QmlGraphicsImage's src property*/ virtual void setSource(const QUrl&); Q_SIGNALS: @@ -90,16 +90,16 @@ private Q_SLOTS: void playingStatusChanged(); protected: - QFxAnimatedImageItem(QFxAnimatedImageItemPrivate &dd, QFxItem *parent); + QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); private: - Q_DISABLE_COPY(QFxAnimatedImageItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxAnimatedImageItem) + Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxAnimatedImageItem) +QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) QT_END_HEADER diff --git a/src/declarative/extra/qfxanimatedimageitem_p.h b/src/declarative/extra/qfxanimatedimageitem_p.h index 56252ca..e61c488 100644 --- a/src/declarative/extra/qfxanimatedimageitem_p.h +++ b/src/declarative/extra/qfxanimatedimageitem_p.h @@ -60,12 +60,12 @@ QT_BEGIN_NAMESPACE class QMovie; class QNetworkReply; -class QFxAnimatedImageItemPrivate : public QFxImagePrivate +class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate { - Q_DECLARE_PUBLIC(QFxAnimatedImageItem) + Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) public: - QFxAnimatedImageItemPrivate() + QmlGraphicsAnimatedImageItemPrivate() : playing(true), paused(false), _movie(0), reply(0) { } diff --git a/src/declarative/extra/qfxintegermodel.cpp b/src/declarative/extra/qfxintegermodel.cpp index 3cd46d7..496cd3e 100644 --- a/src/declarative/extra/qfxintegermodel.cpp +++ b/src/declarative/extra/qfxintegermodel.cpp @@ -43,53 +43,53 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,IntegerModel,QFxIntegerModel) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,IntegerModel,QmlGraphicsIntegerModel) -class QFxIntegerModelPrivate +class QmlGraphicsIntegerModelPrivate { public: - QFxIntegerModelPrivate() : minimum(0), maximum(0) {} + QmlGraphicsIntegerModelPrivate() : minimum(0), maximum(0) {} int minimum; int maximum; }; -QFxIntegerModel::QFxIntegerModel(QObject *parent) +QmlGraphicsIntegerModel::QmlGraphicsIntegerModel(QObject *parent) : QListModelInterface(parent) { - d = new QFxIntegerModelPrivate; + d = new QmlGraphicsIntegerModelPrivate; } -QFxIntegerModel::~QFxIntegerModel() +QmlGraphicsIntegerModel::~QmlGraphicsIntegerModel() { delete d; } -int QFxIntegerModel::minimum() const +int QmlGraphicsIntegerModel::minimum() const { return d->minimum; } -void QFxIntegerModel::setMinimum(int minimum) +void QmlGraphicsIntegerModel::setMinimum(int minimum) { d->minimum = minimum; } -int QFxIntegerModel::maximum() const +int QmlGraphicsIntegerModel::maximum() const { return d->maximum; } -void QFxIntegerModel::setMaximum(int maximum) +void QmlGraphicsIntegerModel::setMaximum(int maximum) { d->maximum = maximum; } -int QFxIntegerModel::count() const +int QmlGraphicsIntegerModel::count() const { return qMax(0, d->maximum - d->minimum + 1); } -QHash QFxIntegerModel::data(int index, const QList &roles) const +QHash QmlGraphicsIntegerModel::data(int index, const QList &roles) const { QHash returnHash; @@ -108,7 +108,7 @@ QHash QFxIntegerModel::data(int index, const QList &roles) co return returnHash; } -QString QFxIntegerModel::toString(int role) const +QString QmlGraphicsIntegerModel::toString(int role) const { switch(role) { case Qt::DisplayRole: @@ -118,7 +118,7 @@ QString QFxIntegerModel::toString(int role) const } } -QList QFxIntegerModel::roles() const +QList QmlGraphicsIntegerModel::roles() const { return QList() << Qt::DisplayRole; } diff --git a/src/declarative/extra/qfxintegermodel.h b/src/declarative/extra/qfxintegermodel.h index 7fced2c..cf69bdc 100644 --- a/src/declarative/extra/qfxintegermodel.h +++ b/src/declarative/extra/qfxintegermodel.h @@ -52,13 +52,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxIntegerModelPrivate; -class Q_DECLARATIVE_EXPORT QFxIntegerModel : public QListModelInterface +class QmlGraphicsIntegerModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsIntegerModel : public QListModelInterface { Q_OBJECT public: - QFxIntegerModel(QObject *parent=0); - ~QFxIntegerModel(); + QmlGraphicsIntegerModel(QObject *parent=0); + ~QmlGraphicsIntegerModel(); Q_PROPERTY(int minimum READ minimum WRITE setMinimum) int minimum() const; @@ -74,12 +74,12 @@ public: QString toString(int role) const; private: - QFxIntegerModelPrivate *d; + QmlGraphicsIntegerModelPrivate *d; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxIntegerModel) +QML_DECLARE_TYPE(QmlGraphicsIntegerModel) QT_END_HEADER diff --git a/src/declarative/extra/qfxparticles.cpp b/src/declarative/extra/qfxparticles.cpp index 80255b9..0bb4826 100644 --- a/src/declarative/extra/qfxparticles.cpp +++ b/src/declarative/extra/qfxparticles.cpp @@ -81,10 +81,10 @@ inline qreal fastCos(qreal theta) return fastSin(theta); } -class QFxParticle +class QmlGraphicsParticle { public: - QFxParticle(int time) : lifeSpan(1000), fadeOutAge(800) + QmlGraphicsParticle(int time) : lifeSpan(1000), fadeOutAge(800) , opacity(0), birthTime(time), x_velocity(0), y_velocity(0) , state(FadeIn), data(0) { @@ -105,21 +105,21 @@ public: //--------------------------------------------------------------------------- -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotion,QFxParticleMotion) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotion,QmlGraphicsParticleMotion) /*! - \class QFxParticleMotion + \class QmlGraphicsParticleMotion \ingroup group_effects - \brief The QFxParticleMotion class is the base class for particle motion. + \brief The QmlGraphicsParticleMotion class is the base class for particle motion. \internal This class causes the particles to remain static. */ /*! - Constructs a QFxParticleMotion with parent object \a parent. + Constructs a QmlGraphicsParticleMotion with parent object \a parent. */ -QFxParticleMotion::QFxParticleMotion(QObject *parent) : +QmlGraphicsParticleMotion::QmlGraphicsParticleMotion(QObject *parent) : QObject(parent) { } @@ -128,7 +128,7 @@ QFxParticleMotion::QFxParticleMotion(QObject *parent) : Move the \a particle to its new position. \a interval is the number of milliseconds elapsed since it was last moved. */ -void QFxParticleMotion::advance(QFxParticle &particle, int interval) +void QmlGraphicsParticleMotion::advance(QmlGraphicsParticle &particle, int interval) { Q_UNUSED(particle); Q_UNUSED(interval); @@ -138,7 +138,7 @@ void QFxParticleMotion::advance(QFxParticle &particle, int interval) The \a particle has just been created. Some motion strategies require additional state information. This can be allocated by this function. */ -void QFxParticleMotion::created(QFxParticle &particle) +void QmlGraphicsParticleMotion::created(QmlGraphicsParticle &particle) { Q_UNUSED(particle); } @@ -147,7 +147,7 @@ void QFxParticleMotion::created(QFxParticle &particle) The \a particle is about to be destroyed. Any additional memory that has been allocated for the particle should be freed. */ -void QFxParticleMotion::destroy(QFxParticle &particle) +void QmlGraphicsParticleMotion::destroy(QmlGraphicsParticle &particle) { Q_UNUSED(particle); } @@ -161,14 +161,14 @@ void QFxParticleMotion::destroy(QFxParticle &particle) /*! \internal - \class QFxParticleMotionLinear + \class QmlGraphicsParticleMotionLinear \ingroup group_effects - \brief The QFxParticleMotionLinear class moves the particles linearly. + \brief The QmlGraphicsParticleMotionLinear class moves the particles linearly. */ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionLinear,QFxParticleMotionLinear) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionLinear,QmlGraphicsParticleMotionLinear) -void QFxParticleMotionLinear::advance(QFxParticle &p, int interval) +void QmlGraphicsParticleMotionLinear::advance(QmlGraphicsParticle &p, int interval) { p.x += interval * p.x_velocity; p.y += interval * p.y_velocity; @@ -183,12 +183,12 @@ void QFxParticleMotionLinear::advance(QFxParticle &p, int interval) /*! \internal - \class QFxParticleMotionGravity + \class QmlGraphicsParticleMotionGravity \ingroup group_effects - \brief The QFxParticleMotionGravity class moves the particles towards a point. + \brief The QmlGraphicsParticleMotionGravity class moves the particles towards a point. */ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionGravity,QFxParticleMotionGravity) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionGravity,QmlGraphicsParticleMotionGravity) /*! \qmlproperty int ParticleMotionGravity::xattractor @@ -202,21 +202,21 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionGravity,QFxParticl */ /*! - \property QFxParticleMotionGravity::xattractor + \property QmlGraphicsParticleMotionGravity::xattractor \brief the x coordinate of the point attracting the particles. */ /*! - \property QFxParticleMotionGravity::yattractor + \property QmlGraphicsParticleMotionGravity::yattractor \brief the y coordinate of the point attracting the particles. */ /*! - \property QFxParticleMotionGravity::acceleration + \property QmlGraphicsParticleMotionGravity::acceleration \brief the acceleration to apply to the particles. */ -void QFxParticleMotionGravity::advance(QFxParticle &p, int interval) +void QmlGraphicsParticleMotionGravity::advance(QmlGraphicsParticle &p, int interval) { qreal xdiff = p.x - _xAttr; qreal ydiff = p.y - _yAttr; @@ -270,32 +270,32 @@ Rectangle { /*! \internal - \class QFxParticleMotionWander + \class QmlGraphicsParticleMotionWander \ingroup group_effects - \brief The QFxParticleMotionWander class moves particles in a somewhat random fashion. + \brief The QmlGraphicsParticleMotionWander class moves particles in a somewhat random fashion. The particles will continue roughly in the original direction, however will randomly drift to each side. */ /*! - \qmlproperty int QFxParticleMotionWander::xvariance - \qmlproperty int QFxParticleMotionWander::yvariance + \qmlproperty int QmlGraphicsParticleMotionWander::xvariance + \qmlproperty int QmlGraphicsParticleMotionWander::yvariance These properties set the amount to wander in the x and y directions. */ /*! - \qmlproperty int QFxParticleMotionWander::pace + \qmlproperty int QmlGraphicsParticleMotionWander::pace This property holds how quickly the paricles will move from side to side. */ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionWander,QFxParticleMotionWander) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionWander,QmlGraphicsParticleMotionWander) -void QFxParticleMotionWander::advance(QFxParticle &p, int interval) +void QmlGraphicsParticleMotionWander::advance(QmlGraphicsParticle &p, int interval) { if (!particles) - particles = qobject_cast(parent()); + particles = qobject_cast(parent()); if (particles) { Data *d = (Data*)p.data; if (_xvariance != 0.) { @@ -320,7 +320,7 @@ void QFxParticleMotionWander::advance(QFxParticle &p, int interval) } } -void QFxParticleMotionWander::created(QFxParticle &p) +void QmlGraphicsParticleMotionWander::created(QmlGraphicsParticle &p) { if (!p.data) { Data *d = new Data; @@ -334,18 +334,18 @@ void QFxParticleMotionWander::created(QFxParticle &p) } } -void QFxParticleMotionWander::destroy(QFxParticle &p) +void QmlGraphicsParticleMotionWander::destroy(QmlGraphicsParticle &p) { if (p.data) delete (Data*)p.data; } //--------------------------------------------------------------------------- -class QFxParticlesPainter : public QFxItem +class QmlGraphicsParticlesPainter : public QmlGraphicsItem { public: - QFxParticlesPainter(QFxParticlesPrivate *p, QFxItem* parent) - : QFxItem(parent), d(p) + QmlGraphicsParticlesPainter(QmlGraphicsParticlesPrivate *p, QmlGraphicsItem* parent) + : QmlGraphicsItem(parent), d(p) { setFlag(QGraphicsItem::ItemHasNoContents, false); maxX = minX = maxY = minY = 0; @@ -359,15 +359,15 @@ public: qreal minX; qreal maxY; qreal minY; - QFxParticlesPrivate* d; + QmlGraphicsParticlesPrivate* d; }; //--------------------------------------------------------------------------- -class QFxParticlesPrivate : public QFxItemPrivate +class QmlGraphicsParticlesPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxParticles) + Q_DECLARE_PUBLIC(QmlGraphicsParticles) public: - QFxParticlesPrivate() + QmlGraphicsParticlesPrivate() : count(1), lifeSpan(1000), lifeSpanDev(1000), fadeInDur(200), fadeOutDur(300) , angle(0), angleDev(0), velocity(0), velocityDev(0) , addParticleTime(0), addParticleCount(0), lastAdvTime(0), stream(false), streamDelay(0) @@ -375,19 +375,19 @@ public: { } - ~QFxParticlesPrivate() + ~QmlGraphicsParticlesPrivate() { } void init() { - Q_Q(QFxParticles); - paintItem = new QFxParticlesPainter(this, q); + Q_Q(QmlGraphicsParticles); + paintItem = new QmlGraphicsParticlesPainter(this, q); } void tick(int time); void createParticle(int time); - void updateOpacity(QFxParticle &p, int age); + void updateOpacity(QmlGraphicsParticle &p, int age); QUrl url; QPixmap image; @@ -406,30 +406,30 @@ public: bool stream; int streamDelay; bool emitting; - QFxParticleMotion *motion; - QFxParticlesPainter *paintItem; + QmlGraphicsParticleMotion *motion; + QmlGraphicsParticlesPainter *paintItem; bool pendingPixmapCache; - QList particles; - QTickAnimationProxy clock; + QList particles; + QTickAnimationProxy clock; }; -void QFxParticlesPrivate::tick(int time) +void QmlGraphicsParticlesPrivate::tick(int time) { - Q_Q(QFxParticles); + Q_Q(QmlGraphicsParticles); if (!motion) - motion = new QFxParticleMotionLinear(q); + motion = new QmlGraphicsParticleMotionLinear(q); int oldCount = particles.count(); int removed = 0; int interval = time - lastAdvTime; for (int i = 0; i < particles.count(); ) { - QFxParticle &particle = particles[i]; + QmlGraphicsParticle &particle = particles[i]; int age = time - particle.birthTime; if (age >= particle.lifeSpan) { - QFxParticle part = particles.takeAt(i); + QmlGraphicsParticle part = particles.takeAt(i); motion->destroy(part); ++removed; } else { @@ -478,13 +478,13 @@ void QFxParticlesPrivate::tick(int time) } } -void QFxParticlesPrivate::createParticle(int time) +void QmlGraphicsParticlesPrivate::createParticle(int time) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer x; + QmlPerfTimer x; #endif - Q_Q(QFxParticles); - QFxParticle p(time); + Q_Q(QmlGraphicsParticles); + QmlGraphicsParticle p(time); p.x = q->x() + q->width() * qreal(rand()) / RAND_MAX - image.width()/2.0; p.y = q->y() + q->height() * qreal(rand()) / RAND_MAX - image.height()/2.0; p.lifeSpan = lifeSpan; @@ -492,7 +492,7 @@ void QFxParticlesPrivate::createParticle(int time) p.lifeSpan += int(lifeSpanDev/2 - lifeSpanDev * qreal(rand()) / RAND_MAX); p.fadeOutAge = p.lifeSpan - fadeOutDur; if (fadeInDur == 0.) { - p.state= QFxParticle::Solid; + p.state= QmlGraphicsParticle::Solid; p.opacity = 1.0; } qreal a = angle; @@ -509,32 +509,32 @@ void QFxParticlesPrivate::createParticle(int time) motion->created(particles.last()); } -void QFxParticlesPrivate::updateOpacity(QFxParticle &p, int age) +void QmlGraphicsParticlesPrivate::updateOpacity(QmlGraphicsParticle &p, int age) { switch (p.state) { - case QFxParticle::FadeIn: + case QmlGraphicsParticle::FadeIn: if (age <= fadeInDur) { p.opacity = qreal(age) / fadeInDur; break; } else { p.opacity = 1.0; - p.state = QFxParticle::Solid; + p.state = QmlGraphicsParticle::Solid; // Fall through } - case QFxParticle::Solid: + case QmlGraphicsParticle::Solid: if (age <= p.fadeOutAge) { break; } else { - p.state = QFxParticle::FadeOut; + p.state = QmlGraphicsParticle::FadeOut; // Fall through } - case QFxParticle::FadeOut: + case QmlGraphicsParticle::FadeOut: p.opacity = qreal(p.lifeSpan - age) / fadeOutDur; break; } } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Particles,QFxParticles) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Particles,QmlGraphicsParticles) /*! \qmlclass Particles @@ -596,30 +596,30 @@ Rectangle { /*! \internal - \class QFxParticles + \class QmlGraphicsParticles \ingroup group_effects - \brief The QFxParticles class generates and moves particles. + \brief The QmlGraphicsParticles class generates and moves particles. */ -QFxParticles::QFxParticles(QFxItem *parent) - : QFxItem(*(new QFxParticlesPrivate), parent) +QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsParticlesPrivate), parent) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->init(); } -QFxParticles::QFxParticles(QFxParticlesPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->init(); } -QFxParticles::~QFxParticles() +QmlGraphicsParticles::~QmlGraphicsParticles() { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); if (d->pendingPixmapCache) - QFxPixmapCache::cancelGet(d->url, this); + QmlGraphicsPixmapCache::cancelGet(d->url, this); } /*! @@ -628,33 +628,33 @@ QFxParticles::~QFxParticles() */ /*! - \property QFxParticles::source + \property QmlGraphicsParticles::source \brief the URL of the particle image. */ -QUrl QFxParticles::source() const +QUrl QmlGraphicsParticles::source() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->url; } -void QFxParticles::imageLoaded() +void QmlGraphicsParticles::imageLoaded() { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->pendingPixmapCache = false; - QFxPixmapCache::find(d->url, &d->image); + QmlGraphicsPixmapCache::find(d->url, &d->image); d->paintItem->updateSize(); d->paintItem->update(); } -void QFxParticles::setSource(const QUrl &name) +void QmlGraphicsParticles::setSource(const QUrl &name) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); if ((d->url.isEmpty() == name.isEmpty()) && name == d->url) return; if (d->pendingPixmapCache) { - QFxPixmapCache::cancelGet(d->url, this); + QmlGraphicsPixmapCache::cancelGet(d->url, this); d->pendingPixmapCache = false; } if (name.isEmpty()) { @@ -665,7 +665,7 @@ void QFxParticles::setSource(const QUrl &name) } else { d->url = name; Q_ASSERT(!name.isRelative()); - QNetworkReply *reply = QFxPixmapCache::get(qmlEngine(this), d->url, &d->image); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->image); if (reply) { connect(reply, SIGNAL(finished()), this, SLOT(imageLoaded())); d->pendingPixmapCache = true; @@ -683,18 +683,18 @@ void QFxParticles::setSource(const QUrl &name) */ /*! - \property QFxParticles::count + \property QmlGraphicsParticles::count \brief the target number of particles */ -int QFxParticles::count() const +int QmlGraphicsParticles::count() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->count; } -void QFxParticles::setCount(int cnt) +void QmlGraphicsParticles::setCount(int cnt) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); if (cnt == d->count) return; @@ -731,27 +731,27 @@ Particles { */ /*! - \property QFxParticles::lifeSpan + \property QmlGraphicsParticles::lifeSpan \brief the life span of each particle. Default value is 1000ms. - \sa QFxParticles::lifeSpanDeviation + \sa QmlGraphicsParticles::lifeSpanDeviation */ -int QFxParticles::lifeSpan() const +int QmlGraphicsParticles::lifeSpan() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->lifeSpan; } -void QFxParticles::setLifeSpan(int ls) +void QmlGraphicsParticles::setLifeSpan(int ls) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->lifeSpan = ls; } /*! - \property QFxParticles::lifeSpanDeviation + \property QmlGraphicsParticles::lifeSpanDeviation \brief the maximum possible deviation from the set lifeSpan. Randomly varies the lifeSpan up to the specified variation. For @@ -766,17 +766,17 @@ Particles { } \endqml - \sa QFxParticles::lifeSpan + \sa QmlGraphicsParticles::lifeSpan */ -int QFxParticles::lifeSpanDeviation() const +int QmlGraphicsParticles::lifeSpanDeviation() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->lifeSpanDev; } -void QFxParticles::setLifeSpanDeviation(int dev) +void QmlGraphicsParticles::setLifeSpanDeviation(int dev) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->lifeSpanDev = dev; } @@ -789,39 +789,39 @@ void QFxParticles::setLifeSpanDeviation(int dev) */ /*! - \property QFxParticles::fadeInDuration + \property QmlGraphicsParticles::fadeInDuration \brief the time taken to fade in the particles. Default value is 200ms. */ -int QFxParticles::fadeInDuration() const +int QmlGraphicsParticles::fadeInDuration() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->fadeInDur; } -void QFxParticles::setFadeInDuration(int dur) +void QmlGraphicsParticles::setFadeInDuration(int dur) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); if (dur >= 0.0) d->fadeInDur = dur; } /*! - \property QFxParticles::fadeOutDuration + \property QmlGraphicsParticles::fadeOutDuration \brief the time taken to fade out the particles. Default value is 300ms. */ -int QFxParticles::fadeOutDuration() const +int QmlGraphicsParticles::fadeOutDuration() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->fadeOutDur; } -void QFxParticles::setFadeOutDuration(int dur) +void QmlGraphicsParticles::setFadeOutDuration(int dur) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); if (dur >= 0.0) d->fadeOutDur = dur; } @@ -846,25 +846,25 @@ Particles { */ /*! - \property QFxParticles::angle + \property QmlGraphicsParticles::angle \brief the initial angle of direction. - \sa QFxParticles::angleDeviation + \sa QmlGraphicsParticles::angleDeviation */ -qreal QFxParticles::angle() const +qreal QmlGraphicsParticles::angle() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->angle * 180.0 / M_PI; } -void QFxParticles::setAngle(qreal angle) +void QmlGraphicsParticles::setAngle(qreal angle) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->angle = angle * M_PI / 180.0; } /*! - \property QFxParticles::angleDeviation + \property QmlGraphicsParticles::angleDeviation \brief the maximum possible deviation from the set angle. Randomly varies the direction up to the specified variation. For @@ -879,17 +879,17 @@ Particles { } \endqml - \sa QFxParticles::angle + \sa QmlGraphicsParticles::angle */ -qreal QFxParticles::angleDeviation() const +qreal QmlGraphicsParticles::angleDeviation() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->angleDev * 180.0 / M_PI; } -void QFxParticles::setAngleDeviation(qreal dev) +void QmlGraphicsParticles::setAngleDeviation(qreal dev) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->angleDev = dev * M_PI / 180.0;; } @@ -913,25 +913,25 @@ Particles { */ /*! - \property QFxParticles::velocity + \property QmlGraphicsParticles::velocity \brief the initial velocity of the particles. - \sa QFxParticles::velocityDeviation + \sa QmlGraphicsParticles::velocityDeviation */ -qreal QFxParticles::velocity() const +qreal QmlGraphicsParticles::velocity() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->velocity * 1000.0; } -void QFxParticles::setVelocity(qreal velocity) +void QmlGraphicsParticles::setVelocity(qreal velocity) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->velocity = velocity / 1000.0; } /*! - \property QFxParticles::velocityDeviation + \property QmlGraphicsParticles::velocityDeviation \brief the maximum possible deviation from the set velocity. Randomly varies the velocity up to the specified variation. For @@ -946,17 +946,17 @@ Particles { } \endqml - \sa QFxParticles::velocity + \sa QmlGraphicsParticles::velocity */ -qreal QFxParticles::velocityDeviation() const +qreal QmlGraphicsParticles::velocityDeviation() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->velocityDev * 1000.0; } -void QFxParticles::setVelocityDeviation(qreal velocity) +void QmlGraphicsParticles::setVelocityDeviation(qreal velocity) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->velocityDev = velocity / 1000.0; } @@ -970,7 +970,7 @@ void QFxParticles::setVelocityDeviation(qreal velocity) particles to unclump over time. */ /*! - \property QFxParticles::streamIn + \property QmlGraphicsParticles::streamIn \brief determines whether the particles stream in at a constant rate When stream is set to true the particles will stream in at a constant rate. @@ -979,15 +979,15 @@ void QFxParticles::setVelocityDeviation(qreal velocity) */ //The name may need a rethink -bool QFxParticles::streamIn() const +bool QmlGraphicsParticles::streamIn() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->stream; } -void QFxParticles::setStreamIn(bool b) +void QmlGraphicsParticles::setStreamIn(bool b) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->stream = b; } @@ -1003,7 +1003,7 @@ void QFxParticles::setStreamIn(bool b) will be produced until it is set to true. */ /*! - \property QFxParticles::emitting + \property QmlGraphicsParticles::emitting If emitting is set to false no new particles will be created. This means that when a particle reaches the end of its lifespan it is not replaced. This property can be used to turn particles on and off with a more natural look. @@ -1011,15 +1011,15 @@ void QFxParticles::setStreamIn(bool b) The default setting is true. Note that if it initialized to false no particles will be produced until it is set to true. */ -bool QFxParticles::emitting() const +bool QmlGraphicsParticles::emitting() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->emitting; } -void QFxParticles::setEmitting(bool r) +void QmlGraphicsParticles::setEmitting(bool r) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->emitting = r; if (d->count && r) d->clock.start(); @@ -1036,28 +1036,28 @@ void QFxParticles::setEmitting(bool r) */ /*! - \property QFxParticles::motion + \property QmlGraphicsParticles::motion \brief sets the type of motion to apply to the particles. When a particle is created it will have an initial direction and velocity. The motion of the particle during its lifeSpan is then influenced by the motion property. - Default motion is QFxParticleMotionLinear. + Default motion is QmlGraphicsParticleMotionLinear. */ -QFxParticleMotion *QFxParticles::motion() const +QmlGraphicsParticleMotion *QmlGraphicsParticles::motion() const { - Q_D(const QFxParticles); + Q_D(const QmlGraphicsParticles); return d->motion; } -void QFxParticles::setMotion(QFxParticleMotion *motion) +void QmlGraphicsParticles::setMotion(QmlGraphicsParticleMotion *motion) { - Q_D(QFxParticles); + Q_D(QmlGraphicsParticles); d->motion = motion; } -void QFxParticlesPainter::updateSize() +void QmlGraphicsParticlesPainter::updateSize() { if (!isComponentComplete()) return; @@ -1065,7 +1065,7 @@ void QFxParticlesPainter::updateSize() const int parentX = parentItem()->x(); const int parentY = parentItem()->y(); for (int i = 0; i < d->particles.count(); ++i) { - const QFxParticle &particle = d->particles.at(i); + const QmlGraphicsParticle &particle = d->particles.at(i); if(particle.x > maxX) maxX = particle.x; if(particle.x < minX) @@ -1086,13 +1086,13 @@ void QFxParticlesPainter::updateSize() setY(myY); } -void QFxParticles::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsParticles::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { Q_UNUSED(p); //painting is done by the ParticlesPainter, so it can have the right size } -void QFxParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { if (d->image.isNull() || d->particles.isEmpty()) return; @@ -1106,7 +1106,7 @@ void QFxParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, Q const QRectF sourceRect = d->image.rect(); for (int i = 0; i < d->particles.count(); ++i) { - const QFxParticle &particle = d->particles.at(i); + const QmlGraphicsParticle &particle = d->particles.at(i); pixmapData[i].point = QPointF(particle.x - myX, particle.y - myY); pixmapData[i].opacity = particle.opacity; @@ -1119,10 +1119,10 @@ void QFxParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, Q qDrawPixmaps(p, pixmapData.data(), d->particles.count(), d->image); } -void QFxParticles::componentComplete() +void QmlGraphicsParticles::componentComplete() { - Q_D(QFxParticles); - QFxItem::componentComplete(); + Q_D(QmlGraphicsParticles); + QmlGraphicsItem::componentComplete(); if (d->count) { d->paintItem->updateSize(); d->clock.start(); diff --git a/src/declarative/extra/qfxparticles.h b/src/declarative/extra/qfxparticles.h index 959c518..5e5a581 100644 --- a/src/declarative/extra/qfxparticles.h +++ b/src/declarative/extra/qfxparticles.h @@ -50,30 +50,30 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxParticle; -class QFxParticles; -class Q_DECLARATIVE_EXPORT QFxParticleMotion : public QObject +class QmlGraphicsParticle; +class QmlGraphicsParticles; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotion : public QObject { Q_OBJECT public: - QFxParticleMotion(QObject *parent=0); + QmlGraphicsParticleMotion(QObject *parent=0); - virtual void advance(QFxParticle &, int interval); - virtual void created(QFxParticle &); - virtual void destroy(QFxParticle &); + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); }; -class Q_DECLARATIVE_EXPORT QFxParticleMotionLinear : public QFxParticleMotion +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionLinear : public QmlGraphicsParticleMotion { Q_OBJECT public: - QFxParticleMotionLinear(QObject *parent=0) - : QFxParticleMotion(parent) {} + QmlGraphicsParticleMotionLinear(QObject *parent=0) + : QmlGraphicsParticleMotion(parent) {} - virtual void advance(QFxParticle &, int interval); + virtual void advance(QmlGraphicsParticle &, int interval); }; -class Q_DECLARATIVE_EXPORT QFxParticleMotionGravity : public QFxParticleMotion +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionGravity : public QmlGraphicsParticleMotion { Q_OBJECT @@ -81,8 +81,8 @@ class Q_DECLARATIVE_EXPORT QFxParticleMotionGravity : public QFxParticleMotion Q_PROPERTY(int yattractor READ yAttractor WRITE setYAttractor) Q_PROPERTY(int acceleration READ acceleration WRITE setAcceleration) public: - QFxParticleMotionGravity(QObject *parent=0) - : QFxParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} + QmlGraphicsParticleMotionGravity(QObject *parent=0) + : QmlGraphicsParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} int xAttractor() const { return _xAttr; } void setXAttractor(int x) { _xAttr = x; } @@ -93,7 +93,7 @@ public: int acceleration() const { return int(_accel * 1000000); } void setAcceleration(int accel) { _accel = qreal(accel)/1000000.0; } - virtual void advance(QFxParticle &, int interval); + virtual void advance(QmlGraphicsParticle &, int interval); private: int _xAttr; @@ -101,16 +101,16 @@ private: qreal _accel; }; -class Q_DECLARATIVE_EXPORT QFxParticleMotionWander : public QFxParticleMotion +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionWander : public QmlGraphicsParticleMotion { Q_OBJECT public: - QFxParticleMotionWander() - : QFxParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} + QmlGraphicsParticleMotionWander() + : QmlGraphicsParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} - virtual void advance(QFxParticle &, int interval); - virtual void created(QFxParticle &); - virtual void destroy(QFxParticle &); + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); struct Data { qreal x_targetV; @@ -134,14 +134,14 @@ public: void setPace(int pace) { _pace = pace / 1000.0; } private: - QFxParticles *particles; + QmlGraphicsParticles *particles; qreal _xvariance; qreal _yvariance; qreal _pace; }; -class QFxParticlesPrivate; -class Q_DECLARATIVE_EXPORT QFxParticles : public QFxItem +class QmlGraphicsParticlesPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticles : public QmlGraphicsItem { Q_OBJECT @@ -157,12 +157,12 @@ class Q_DECLARATIVE_EXPORT QFxParticles : public QFxItem Q_PROPERTY(qreal velocityDeviation READ velocityDeviation WRITE setVelocityDeviation) Q_PROPERTY(bool streamIn READ streamIn WRITE setStreamIn) Q_PROPERTY(bool emitting READ emitting WRITE setEmitting) - Q_PROPERTY(QFxParticleMotion *motion READ motion WRITE setMotion) + Q_PROPERTY(QmlGraphicsParticleMotion *motion READ motion WRITE setMotion) Q_CLASSINFO("DefaultProperty", "motion") public: - QFxParticles(QFxItem *parent=0); - ~QFxParticles(); + QmlGraphicsParticles(QmlGraphicsItem *parent=0); + ~QmlGraphicsParticles(); QUrl source() const; void setSource(const QUrl &); @@ -200,30 +200,30 @@ public: bool emitting() const; void setEmitting(bool); - QFxParticleMotion *motion() const; - void setMotion(QFxParticleMotion *); + QmlGraphicsParticleMotion *motion() const; + void setMotion(QmlGraphicsParticleMotion *); void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); protected: virtual void componentComplete(); - QFxParticles(QFxParticlesPrivate &dd, QFxItem *parent); + QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent); private Q_SLOTS: void imageLoaded(); private: - Q_DISABLE_COPY(QFxParticles) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxParticles) + Q_DISABLE_COPY(QmlGraphicsParticles) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsParticles) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxParticleMotion) -QML_DECLARE_TYPE(QFxParticleMotionLinear) -QML_DECLARE_TYPE(QFxParticleMotionGravity) -QML_DECLARE_TYPE(QFxParticleMotionWander) -QML_DECLARE_TYPE(QFxParticles) +QML_DECLARE_TYPE(QmlGraphicsParticleMotion) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionLinear) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionGravity) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionWander) +QML_DECLARE_TYPE(QmlGraphicsParticles) QT_END_HEADER diff --git a/src/declarative/fx/qfxanchors.cpp b/src/declarative/fx/qfxanchors.cpp index 8d4a8b8..3908520 100644 --- a/src/declarative/fx/qfxanchors.cpp +++ b/src/declarative/fx/qfxanchors.cpp @@ -47,36 +47,36 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QFxAnchors) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QmlGraphicsAnchors) //TODO: should we cache relationships, so we don't have to check each time (parent-child or sibling)? //TODO: support non-parent, non-sibling (need to find lowest common ancestor) //### const item? //local position -static qreal position(QFxItem *item, QFxAnchorLine::AnchorLine anchorLine) +static qreal position(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) { qreal ret = 0.0; switch(anchorLine) { - case QFxAnchorLine::Left: + case QmlGraphicsAnchorLine::Left: ret = item->x(); break; - case QFxAnchorLine::Right: + case QmlGraphicsAnchorLine::Right: ret = item->x() + item->width(); break; - case QFxAnchorLine::Top: + case QmlGraphicsAnchorLine::Top: ret = item->y(); break; - case QFxAnchorLine::Bottom: + case QmlGraphicsAnchorLine::Bottom: ret = item->y() + item->height(); break; - case QFxAnchorLine::HCenter: + case QmlGraphicsAnchorLine::HCenter: ret = item->x() + item->width()/2; break; - case QFxAnchorLine::VCenter: + case QmlGraphicsAnchorLine::VCenter: ret = item->y() + item->height()/2; break; - case QFxAnchorLine::Baseline: + case QmlGraphicsAnchorLine::Baseline: ret = item->y() + item->baselineOffset(); break; default: @@ -87,29 +87,29 @@ static qreal position(QFxItem *item, QFxAnchorLine::AnchorLine anchorLine) } //position when origin is 0,0 -static qreal adjustedPosition(QFxItem *item, QFxAnchorLine::AnchorLine anchorLine) +static qreal adjustedPosition(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) { int ret = 0; switch(anchorLine) { - case QFxAnchorLine::Left: + case QmlGraphicsAnchorLine::Left: ret = 0; break; - case QFxAnchorLine::Right: + case QmlGraphicsAnchorLine::Right: ret = item->width(); break; - case QFxAnchorLine::Top: + case QmlGraphicsAnchorLine::Top: ret = 0; break; - case QFxAnchorLine::Bottom: + case QmlGraphicsAnchorLine::Bottom: ret = item->height(); break; - case QFxAnchorLine::HCenter: + case QmlGraphicsAnchorLine::HCenter: ret = item->width()/2; break; - case QFxAnchorLine::VCenter: + case QmlGraphicsAnchorLine::VCenter: ret = item->height()/2; break; - case QFxAnchorLine::Baseline: + case QmlGraphicsAnchorLine::Baseline: ret = item->baselineOffset(); break; default: @@ -121,21 +121,21 @@ static qreal adjustedPosition(QFxItem *item, QFxAnchorLine::AnchorLine anchorLin /*! \internal - \class QFxAnchors + \class QmlGraphicsAnchors \ingroup group_layouts - \brief The QFxAnchors class provides a way to lay out items relative to other items. + \brief The QmlGraphicsAnchors class provides a way to lay out items relative to other items. \warning Currently, only anchoring to siblings or parent is supported. */ -QFxAnchors::QFxAnchors(QObject *parent) - : QObject(*new QFxAnchorsPrivate(), parent) +QmlGraphicsAnchors::QmlGraphicsAnchors(QObject *parent) + : QObject(*new QmlGraphicsAnchorsPrivate(), parent) { } -QFxAnchors::~QFxAnchors() +QmlGraphicsAnchors::~QmlGraphicsAnchors() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->remDepend(d->fill); d->remDepend(d->centerIn); d->remDepend(d->left.item); @@ -147,7 +147,7 @@ QFxAnchors::~QFxAnchors() d->remDepend(d->baseline.item); } -void QFxAnchorsPrivate::fillChanged() +void QmlGraphicsAnchorsPrivate::fillChanged() { if (!fill || !isItemComplete()) return; @@ -161,7 +161,7 @@ void QFxAnchorsPrivate::fillChanged() setItemHeight(fill->height()-topMargin-bottomMargin); } -void QFxAnchorsPrivate::centerInChanged() +void QmlGraphicsAnchorsPrivate::centerInChanged() { if (!centerIn || fill || !isItemComplete()) return; @@ -179,7 +179,7 @@ void QFxAnchorsPrivate::centerInChanged() } } -void QFxAnchorsPrivate::clearItem(QFxItem *item) +void QmlGraphicsAnchorsPrivate::clearItem(QmlGraphicsItem *item) { if (!item) return; @@ -189,107 +189,107 @@ void QFxAnchorsPrivate::clearItem(QFxItem *item) centerIn = 0; if (left.item == item) { left.item = 0; - usedAnchors &= ~QFxAnchors::HasLeftAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasLeftAnchor; } if (right.item == item) { right.item = 0; - usedAnchors &= ~QFxAnchors::HasRightAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasRightAnchor; } if (top.item == item) { top.item = 0; - usedAnchors &= ~QFxAnchors::HasTopAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasTopAnchor; } if (bottom.item == item) { bottom.item = 0; - usedAnchors &= ~QFxAnchors::HasBottomAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasBottomAnchor; } if (vCenter.item == item) { vCenter.item = 0; - usedAnchors &= ~QFxAnchors::HasVCenterAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasVCenterAnchor; } if (hCenter.item == item) { hCenter.item = 0; - usedAnchors &= ~QFxAnchors::HasHCenterAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasHCenterAnchor; } if (baseline.item == item) { baseline.item = 0; - usedAnchors &= ~QFxAnchors::HasBaselineAnchor; + usedAnchors &= ~QmlGraphicsAnchors::HasBaselineAnchor; } } -void QFxAnchorsPrivate::addDepend(QFxItem *item) +void QmlGraphicsAnchorsPrivate::addDepend(QmlGraphicsItem *item) { - Q_Q(QFxAnchors); + Q_Q(QmlGraphicsAnchors); if (!item) return; - QFxItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); p->dependantAnchors.append(q); } -void QFxAnchorsPrivate::remDepend(QFxItem *item) +void QmlGraphicsAnchorsPrivate::remDepend(QmlGraphicsItem *item) { - Q_Q(QFxAnchors); + Q_Q(QmlGraphicsAnchors); if (!item) return; - QFxItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); p->dependantAnchors.removeOne(q); } -bool QFxAnchorsPrivate::isItemComplete() const +bool QmlGraphicsAnchorsPrivate::isItemComplete() const { return componentComplete; } -void QFxAnchors::classBegin() +void QmlGraphicsAnchors::classBegin() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->componentComplete = false; } -void QFxAnchors::componentComplete() +void QmlGraphicsAnchors::componentComplete() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->componentComplete = true; } -void QFxAnchorsPrivate::setItemHeight(qreal v) +void QmlGraphicsAnchorsPrivate::setItemHeight(qreal v) { updatingMe = true; item->setHeight(v); updatingMe = false; } -void QFxAnchorsPrivate::setItemWidth(qreal v) +void QmlGraphicsAnchorsPrivate::setItemWidth(qreal v) { updatingMe = true; item->setWidth(v); updatingMe = false; } -void QFxAnchorsPrivate::setItemX(qreal v) +void QmlGraphicsAnchorsPrivate::setItemX(qreal v) { updatingMe = true; item->setX(v); updatingMe = false; } -void QFxAnchorsPrivate::setItemY(qreal v) +void QmlGraphicsAnchorsPrivate::setItemY(qreal v) { updatingMe = true; item->setY(v); updatingMe = false; } -void QFxAnchorsPrivate::setItemPos(const QPointF &v) +void QmlGraphicsAnchorsPrivate::setItemPos(const QPointF &v) { updatingMe = true; item->setPos(v); updatingMe = false; } -void QFxAnchorsPrivate::updateMe() +void QmlGraphicsAnchorsPrivate::updateMe() { if (updatingMe) { updatingMe = false; @@ -302,7 +302,7 @@ void QFxAnchorsPrivate::updateMe() updateVerticalAnchors(); } -void QFxAnchorsPrivate::updateOnComplete() +void QmlGraphicsAnchorsPrivate::updateOnComplete() { fillChanged(); centerInChanged(); @@ -310,7 +310,7 @@ void QFxAnchorsPrivate::updateOnComplete() updateVerticalAnchors(); } -void QFxAnchorsPrivate::update(QFxItem *, const QRectF &newG, const QRectF &oldG) +void QmlGraphicsAnchorsPrivate::update(QmlGraphicsItem *, const QRectF &newG, const QRectF &oldG) { fillChanged(); centerInChanged(); @@ -321,15 +321,15 @@ void QFxAnchorsPrivate::update(QFxItem *, const QRectF &newG, const QRectF &oldG updateVerticalAnchors(); } -QFxItem *QFxAnchors::fill() const +QmlGraphicsItem *QmlGraphicsAnchors::fill() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->fill; } -void QFxAnchors::setFill(QFxItem *f) +void QmlGraphicsAnchors::setFill(QmlGraphicsItem *f) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!f) { d->remDepend(d->fill); d->fill = f; @@ -346,15 +346,15 @@ void QFxAnchors::setFill(QFxItem *f) d->fillChanged(); } -QFxItem *QFxAnchors::centerIn() const +QmlGraphicsItem *QmlGraphicsAnchors::centerIn() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->centerIn; } -void QFxAnchors::setCenterIn(QFxItem* c) +void QmlGraphicsAnchors::setCenterIn(QmlGraphicsItem* c) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!c) { d->remDepend(d->centerIn); d->centerIn = c; @@ -372,11 +372,11 @@ void QFxAnchors::setCenterIn(QFxItem* c) d->centerInChanged(); } -bool QFxAnchorsPrivate::calcStretch(const QFxAnchorLine &edge1, - const QFxAnchorLine &edge2, +bool QmlGraphicsAnchorsPrivate::calcStretch(const QmlGraphicsAnchorLine &edge1, + const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, - QFxAnchorLine::AnchorLine line, + QmlGraphicsAnchorLine::AnchorLine line, int &stretch) { bool edge1IsParent = (edge1.item == item->parentItem()); @@ -401,21 +401,21 @@ bool QFxAnchorsPrivate::calcStretch(const QFxAnchorLine &edge1, return invalid; } -void QFxAnchorsPrivate::updateVerticalAnchors() +void QmlGraphicsAnchorsPrivate::updateVerticalAnchors() { if (fill || centerIn || !isItemComplete()) return; if (updatingVerticalAnchor < 2) { ++updatingVerticalAnchor; - if (usedAnchors & QFxAnchors::HasTopAnchor) { + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor) { //Handle stretching bool invalid = true; int height = 0; - if (usedAnchors & QFxAnchors::HasBottomAnchor) { - invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QFxAnchorLine::Top, height); - } else if (usedAnchors & QFxAnchors::HasVCenterAnchor) { - invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QFxAnchorLine::Top, height); + if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { + invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QmlGraphicsAnchorLine::Top, height); + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QmlGraphicsAnchorLine::Top, height); height *= 2; } if (!invalid) @@ -427,12 +427,12 @@ void QFxAnchorsPrivate::updateVerticalAnchors() } else if (top.item->parentItem() == item->parentItem()) { setItemY(position(top.item, top.anchorLine) + topMargin); } - } else if (usedAnchors & QFxAnchors::HasBottomAnchor) { + } else if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { //Handle stretching (top + bottom case is handled above) - if (usedAnchors & QFxAnchors::HasVCenterAnchor) { + if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { int height = 0; bool invalid = calcStretch(vCenter, bottom, vCenterOffset, -bottomMargin, - QFxAnchorLine::Top, height); + QmlGraphicsAnchorLine::Top, height); if (!invalid) setItemHeight(height*2); } @@ -443,7 +443,7 @@ void QFxAnchorsPrivate::updateVerticalAnchors() } else if (bottom.item->parentItem() == item->parentItem()) { setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); } - } else if (usedAnchors & QFxAnchors::HasVCenterAnchor) { + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { //(stetching handled above) //Handle vCenter @@ -453,7 +453,7 @@ void QFxAnchorsPrivate::updateVerticalAnchors() } else if (vCenter.item->parentItem() == item->parentItem()) { setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); } - } else if (usedAnchors & QFxAnchors::HasBaselineAnchor) { + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor) { //Handle baseline if (baseline.item->parentItem() == item->parentItem()) { setItemY(position(baseline.item, baseline.anchorLine) - item->baselineOffset() + baselineOffset); @@ -462,11 +462,11 @@ void QFxAnchorsPrivate::updateVerticalAnchors() --updatingVerticalAnchor; } else { // ### Make this certain :) - qmlInfo(QFxAnchors::tr("Possible anchor loop detected on vertical anchor."), item); + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on vertical anchor."), item); } } -void QFxAnchorsPrivate::updateHorizontalAnchors() +void QmlGraphicsAnchorsPrivate::updateHorizontalAnchors() { if (fill || centerIn || !isItemComplete()) return; @@ -474,14 +474,14 @@ void QFxAnchorsPrivate::updateHorizontalAnchors() if (updatingHorizontalAnchor < 2) { ++updatingHorizontalAnchor; - if (usedAnchors & QFxAnchors::HasLeftAnchor) { + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor) { //Handle stretching bool invalid = true; int width = 0; - if (usedAnchors & QFxAnchors::HasRightAnchor) { - invalid = calcStretch(left, right, leftMargin, -rightMargin, QFxAnchorLine::Left, width); - } else if (usedAnchors & QFxAnchors::HasHCenterAnchor) { - invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QFxAnchorLine::Left, width); + if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { + invalid = calcStretch(left, right, leftMargin, -rightMargin, QmlGraphicsAnchorLine::Left, width); + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QmlGraphicsAnchorLine::Left, width); width *= 2; } if (!invalid) @@ -493,12 +493,12 @@ void QFxAnchorsPrivate::updateHorizontalAnchors() } else if (left.item->parentItem() == item->parentItem()) { setItemX(position(left.item, left.anchorLine) + leftMargin); } - } else if (usedAnchors & QFxAnchors::HasRightAnchor) { + } else if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { //Handle stretching (left + right case is handled in updateLeftAnchor) - if (usedAnchors & QFxAnchors::HasHCenterAnchor) { + if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { int width = 0; bool invalid = calcStretch(hCenter, right, hCenterOffset, -rightMargin, - QFxAnchorLine::Left, width); + QmlGraphicsAnchorLine::Left, width); if (!invalid) setItemWidth(width*2); } @@ -509,7 +509,7 @@ void QFxAnchorsPrivate::updateHorizontalAnchors() } else if (right.item->parentItem() == item->parentItem()) { setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); } - } else if (usedAnchors & QFxAnchors::HasHCenterAnchor) { + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { //Handle hCenter if (hCenter.item == item->parentItem()) { setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); @@ -521,19 +521,19 @@ void QFxAnchorsPrivate::updateHorizontalAnchors() --updatingHorizontalAnchor; } else { // ### Make this certain :) - qmlInfo(QFxAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); } } -QFxAnchorLine QFxAnchors::top() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::top() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->top; } -void QFxAnchors::setTop(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setTop(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkVAnchorValid(edge)) return; @@ -550,24 +550,24 @@ void QFxAnchors::setTop(const QFxAnchorLine &edge) d->updateVerticalAnchors(); } -void QFxAnchors::resetTop() +void QmlGraphicsAnchors::resetTop() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasTopAnchor; d->remDepend(d->top.item); - d->top = QFxAnchorLine(); + d->top = QmlGraphicsAnchorLine(); d->updateVerticalAnchors(); } -QFxAnchorLine QFxAnchors::bottom() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::bottom() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->bottom; } -void QFxAnchors::setBottom(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setBottom(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkVAnchorValid(edge)) return; @@ -584,24 +584,24 @@ void QFxAnchors::setBottom(const QFxAnchorLine &edge) d->updateVerticalAnchors(); } -void QFxAnchors::resetBottom() +void QmlGraphicsAnchors::resetBottom() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasBottomAnchor; d->remDepend(d->bottom.item); - d->bottom = QFxAnchorLine(); + d->bottom = QmlGraphicsAnchorLine(); d->updateVerticalAnchors(); } -QFxAnchorLine QFxAnchors::verticalCenter() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::verticalCenter() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->vCenter; } -void QFxAnchors::setVerticalCenter(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setVerticalCenter(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkVAnchorValid(edge)) return; @@ -618,24 +618,24 @@ void QFxAnchors::setVerticalCenter(const QFxAnchorLine &edge) d->updateVerticalAnchors(); } -void QFxAnchors::resetVerticalCenter() +void QmlGraphicsAnchors::resetVerticalCenter() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasVCenterAnchor; d->remDepend(d->vCenter.item); - d->vCenter = QFxAnchorLine(); + d->vCenter = QmlGraphicsAnchorLine(); d->updateVerticalAnchors(); } -QFxAnchorLine QFxAnchors::baseline() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::baseline() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->baseline; } -void QFxAnchors::setBaseline(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setBaseline(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkVAnchorValid(edge)) return; @@ -652,24 +652,24 @@ void QFxAnchors::setBaseline(const QFxAnchorLine &edge) d->updateVerticalAnchors(); } -void QFxAnchors::resetBaseline() +void QmlGraphicsAnchors::resetBaseline() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasBaselineAnchor; d->remDepend(d->baseline.item); - d->baseline = QFxAnchorLine(); + d->baseline = QmlGraphicsAnchorLine(); d->updateVerticalAnchors(); } -QFxAnchorLine QFxAnchors::left() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::left() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->left; } -void QFxAnchors::setLeft(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setLeft(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkHAnchorValid(edge)) return; @@ -686,24 +686,24 @@ void QFxAnchors::setLeft(const QFxAnchorLine &edge) d->updateHorizontalAnchors(); } -void QFxAnchors::resetLeft() +void QmlGraphicsAnchors::resetLeft() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasLeftAnchor; d->remDepend(d->left.item); - d->left = QFxAnchorLine(); + d->left = QmlGraphicsAnchorLine(); d->updateHorizontalAnchors(); } -QFxAnchorLine QFxAnchors::right() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::right() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->right; } -void QFxAnchors::setRight(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setRight(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkHAnchorValid(edge)) return; @@ -721,24 +721,24 @@ void QFxAnchors::setRight(const QFxAnchorLine &edge) d->updateHorizontalAnchors(); } -void QFxAnchors::resetRight() +void QmlGraphicsAnchors::resetRight() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasRightAnchor; d->remDepend(d->right.item); - d->right = QFxAnchorLine(); + d->right = QmlGraphicsAnchorLine(); d->updateHorizontalAnchors(); } -QFxAnchorLine QFxAnchors::horizontalCenter() const +QmlGraphicsAnchorLine QmlGraphicsAnchors::horizontalCenter() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->hCenter; } -void QFxAnchors::setHorizontalCenter(const QFxAnchorLine &edge) +void QmlGraphicsAnchors::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (!d->checkHAnchorValid(edge)) return; @@ -755,24 +755,24 @@ void QFxAnchors::setHorizontalCenter(const QFxAnchorLine &edge) d->updateHorizontalAnchors(); } -void QFxAnchors::resetHorizontalCenter() +void QmlGraphicsAnchors::resetHorizontalCenter() { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->usedAnchors &= ~HasHCenterAnchor; d->remDepend(d->hCenter.item); - d->hCenter = QFxAnchorLine(); + d->hCenter = QmlGraphicsAnchorLine(); d->updateHorizontalAnchors(); } -qreal QFxAnchors::leftMargin() const +qreal QmlGraphicsAnchors::leftMargin() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->leftMargin; } -void QFxAnchors::setLeftMargin(qreal offset) +void QmlGraphicsAnchors::setLeftMargin(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->leftMargin == offset) return; d->leftMargin = offset; @@ -780,15 +780,15 @@ void QFxAnchors::setLeftMargin(qreal offset) emit leftMarginChanged(); } -qreal QFxAnchors::rightMargin() const +qreal QmlGraphicsAnchors::rightMargin() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->rightMargin; } -void QFxAnchors::setRightMargin(qreal offset) +void QmlGraphicsAnchors::setRightMargin(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->rightMargin == offset) return; d->rightMargin = offset; @@ -796,15 +796,15 @@ void QFxAnchors::setRightMargin(qreal offset) emit rightMarginChanged(); } -qreal QFxAnchors::horizontalCenterOffset() const +qreal QmlGraphicsAnchors::horizontalCenterOffset() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->hCenterOffset; } -void QFxAnchors::setHorizontalCenterOffset(qreal offset) +void QmlGraphicsAnchors::setHorizontalCenterOffset(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->hCenterOffset == offset) return; d->hCenterOffset = offset; @@ -812,15 +812,15 @@ void QFxAnchors::setHorizontalCenterOffset(qreal offset) emit horizontalCenterOffsetChanged(); } -qreal QFxAnchors::topMargin() const +qreal QmlGraphicsAnchors::topMargin() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->topMargin; } -void QFxAnchors::setTopMargin(qreal offset) +void QmlGraphicsAnchors::setTopMargin(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->topMargin == offset) return; d->topMargin = offset; @@ -828,15 +828,15 @@ void QFxAnchors::setTopMargin(qreal offset) emit topMarginChanged(); } -qreal QFxAnchors::bottomMargin() const +qreal QmlGraphicsAnchors::bottomMargin() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->bottomMargin; } -void QFxAnchors::setBottomMargin(qreal offset) +void QmlGraphicsAnchors::setBottomMargin(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->bottomMargin == offset) return; d->bottomMargin = offset; @@ -844,15 +844,15 @@ void QFxAnchors::setBottomMargin(qreal offset) emit bottomMarginChanged(); } -qreal QFxAnchors::verticalCenterOffset() const +qreal QmlGraphicsAnchors::verticalCenterOffset() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->vCenterOffset; } -void QFxAnchors::setVerticalCenterOffset(qreal offset) +void QmlGraphicsAnchors::setVerticalCenterOffset(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->vCenterOffset == offset) return; d->vCenterOffset = offset; @@ -860,15 +860,15 @@ void QFxAnchors::setVerticalCenterOffset(qreal offset) emit verticalCenterOffsetChanged(); } -qreal QFxAnchors::baselineOffset() const +qreal QmlGraphicsAnchors::baselineOffset() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->baselineOffset; } -void QFxAnchors::setBaselineOffset(qreal offset) +void QmlGraphicsAnchors::setBaselineOffset(qreal offset) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); if (d->baselineOffset == offset) return; d->baselineOffset = offset; @@ -876,80 +876,80 @@ void QFxAnchors::setBaselineOffset(qreal offset) emit baselineOffsetChanged(); } -QFxAnchors::UsedAnchors QFxAnchors::usedAnchors() const +QmlGraphicsAnchors::UsedAnchors QmlGraphicsAnchors::usedAnchors() const { - Q_D(const QFxAnchors); + Q_D(const QmlGraphicsAnchors); return d->usedAnchors; } -void QFxAnchors::setItem(QFxItem *item) +void QmlGraphicsAnchors::setItem(QmlGraphicsItem *item) { - Q_D(QFxAnchors); + Q_D(QmlGraphicsAnchors); d->item = item; } -bool QFxAnchorsPrivate::checkHValid() const +bool QmlGraphicsAnchorsPrivate::checkHValid() const { - if (usedAnchors & QFxAnchors::HasLeftAnchor && - usedAnchors & QFxAnchors::HasRightAnchor && - usedAnchors & QFxAnchors::HasHCenterAnchor) { - qmlInfo(QFxAnchors::tr("Can't specify left, right, and hcenter anchors."), item); + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor && + usedAnchors & QmlGraphicsAnchors::HasRightAnchor && + usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify left, right, and hcenter anchors."), item); return false; } return true; } -bool QFxAnchorsPrivate::checkHAnchorValid(QFxAnchorLine anchor) const +bool QmlGraphicsAnchorsPrivate::checkHAnchorValid(QmlGraphicsAnchorLine anchor) const { if (!anchor.item) { - qmlInfo(QFxAnchors::tr("Can't anchor to a null item."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); return false; - } else if (anchor.anchorLine & QFxAnchorLine::Vertical_Mask) { - qmlInfo(QFxAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Vertical_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); return false; } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QFxAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); return false; } else if (anchor.item == item) { - qmlInfo(QFxAnchors::tr("Can't anchor item to self."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); return false; } return true; } -bool QFxAnchorsPrivate::checkVValid() const +bool QmlGraphicsAnchorsPrivate::checkVValid() const { - if (usedAnchors & QFxAnchors::HasTopAnchor && - usedAnchors & QFxAnchors::HasBottomAnchor && - usedAnchors & QFxAnchors::HasVCenterAnchor) { - qmlInfo(QFxAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor && + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor && + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); return false; - } else if (usedAnchors & QFxAnchors::HasBaselineAnchor && - (usedAnchors & QFxAnchors::HasTopAnchor || - usedAnchors & QFxAnchors::HasBottomAnchor || - usedAnchors & QFxAnchors::HasVCenterAnchor)) { - qmlInfo(QFxAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor && + (usedAnchors & QmlGraphicsAnchors::HasTopAnchor || + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor || + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor)) { + qmlInfo(QmlGraphicsAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); return false; } return true; } -bool QFxAnchorsPrivate::checkVAnchorValid(QFxAnchorLine anchor) const +bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) const { if (!anchor.item) { - qmlInfo(QFxAnchors::tr("Can't anchor to a null item."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); return false; - } else if (anchor.anchorLine & QFxAnchorLine::Horizontal_Mask) { - qmlInfo(QFxAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Horizontal_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); return false; } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QFxAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); return false; } else if (anchor.item == item){ - qmlInfo(QFxAnchors::tr("Can't anchor item to self."), item); + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); return false; } diff --git a/src/declarative/fx/qfxanchors.h b/src/declarative/fx/qfxanchors.h index 3dd64c7..9e2bac6 100644 --- a/src/declarative/fx/qfxanchors.h +++ b/src/declarative/fx/qfxanchors.h @@ -53,19 +53,19 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxAnchorsPrivate; -class QFxAnchorLine; -class Q_DECLARATIVE_EXPORT QFxAnchors : public QObject +class QmlGraphicsAnchorsPrivate; +class QmlGraphicsAnchorLine; +class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject { Q_OBJECT - Q_PROPERTY(QFxAnchorLine left READ left WRITE setLeft RESET resetLeft) - Q_PROPERTY(QFxAnchorLine right READ right WRITE setRight RESET resetRight) - Q_PROPERTY(QFxAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) - Q_PROPERTY(QFxAnchorLine top READ top WRITE setTop RESET resetTop) - Q_PROPERTY(QFxAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) - Q_PROPERTY(QFxAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) - Q_PROPERTY(QFxAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) @@ -73,12 +73,12 @@ class Q_DECLARATIVE_EXPORT QFxAnchors : public QObject Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) - Q_PROPERTY(QFxItem *fill READ fill WRITE setFill) - Q_PROPERTY(QFxItem *centerIn READ centerIn WRITE setCenterIn) + Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) + Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) public: - QFxAnchors(QObject *parent=0); - virtual ~QFxAnchors(); + QmlGraphicsAnchors(QObject *parent=0); + virtual ~QmlGraphicsAnchors(); enum UsedAnchor { HasLeftAnchor = 0x01, @@ -93,32 +93,32 @@ public: }; Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) - QFxAnchorLine left() const; - void setLeft(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); void resetLeft(); - QFxAnchorLine right() const; - void setRight(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); void resetRight(); - QFxAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); void resetHorizontalCenter(); - QFxAnchorLine top() const; - void setTop(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); void resetTop(); - QFxAnchorLine bottom() const; - void setBottom(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); void resetBottom(); - QFxAnchorLine verticalCenter() const; - void setVerticalCenter(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); void resetVerticalCenter(); - QFxAnchorLine baseline() const; - void setBaseline(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); void resetBaseline(); qreal leftMargin() const; @@ -142,15 +142,15 @@ public: qreal baselineOffset() const; void setBaselineOffset(qreal); - QFxItem *fill() const; - void setFill(QFxItem *); + QmlGraphicsItem *fill() const; + void setFill(QmlGraphicsItem *); - QFxItem *centerIn() const; - void setCenterIn(QFxItem *); + QmlGraphicsItem *centerIn() const; + void setCenterIn(QmlGraphicsItem *); UsedAnchors usedAnchors() const; - void setItem(QFxItem *item); + void setItem(QmlGraphicsItem *item); void classBegin(); void componentComplete(); @@ -165,15 +165,15 @@ Q_SIGNALS: void baselineOffsetChanged(); private: - friend class QFxItem; - Q_DISABLE_COPY(QFxAnchors) - Q_DECLARE_PRIVATE(QFxAnchors) + friend class QmlGraphicsItem; + Q_DISABLE_COPY(QmlGraphicsAnchors) + Q_DECLARE_PRIVATE(QmlGraphicsAnchors) }; -Q_DECLARE_OPERATORS_FOR_FLAGS(QFxAnchors::UsedAnchors) +Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxAnchors) +QML_DECLARE_TYPE(QmlGraphicsAnchors) QT_END_HEADER diff --git a/src/declarative/fx/qfxanchors_p.h b/src/declarative/fx/qfxanchors_p.h index 9b1bc18..50f1dc4 100644 --- a/src/declarative/fx/qfxanchors_p.h +++ b/src/declarative/fx/qfxanchors_p.h @@ -58,10 +58,10 @@ QT_BEGIN_NAMESPACE -class QFxAnchorLine +class QmlGraphicsAnchorLine { public: - QFxAnchorLine() : item(0), anchorLine(Invalid) + QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) { } @@ -78,16 +78,16 @@ public: Vertical_Mask = Top | Bottom | VCenter | Baseline }; - QFxItem *item; + QmlGraphicsItem *item; AnchorLine anchorLine; }; -Q_DECLARE_METATYPE(QFxAnchorLine) +Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) -class QFxAnchorsPrivate : public QObjectPrivate +class QmlGraphicsAnchorsPrivate : public QObjectPrivate { - Q_DECLARE_PUBLIC(QFxAnchors) + Q_DECLARE_PUBLIC(QmlGraphicsAnchors) public: - QFxAnchorsPrivate() + QmlGraphicsAnchorsPrivate() : updatingMe(false), updatingHorizontalAnchor(0), updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), @@ -100,10 +100,10 @@ public: { } - void clearItem(QFxItem *); + void clearItem(QmlGraphicsItem *); - void addDepend(QFxItem *); - void remDepend(QFxItem *); + void addDepend(QmlGraphicsItem *); + void remDepend(QmlGraphicsItem *); bool isItemComplete() const; bool updatingMe; @@ -118,32 +118,32 @@ public: void updateOnComplete(); void updateMe(); - void update(QFxItem *, const QRectF &, const QRectF &); + void update(QmlGraphicsItem *, const QRectF &, const QRectF &); bool checkHValid() const; bool checkVValid() const; - bool checkHAnchorValid(QFxAnchorLine anchor) const; - bool checkVAnchorValid(QFxAnchorLine anchor) const; - bool calcStretch(const QFxAnchorLine &edge1, const QFxAnchorLine &edge2, int offset1, int offset2, QFxAnchorLine::AnchorLine line, int &stretch); + bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); void updateHorizontalAnchors(); void updateVerticalAnchors(); void fillChanged(); void centerInChanged(); - QFxItem *item; - QFxAnchors::UsedAnchors usedAnchors; + QmlGraphicsItem *item; + QmlGraphicsAnchors::UsedAnchors usedAnchors; - QFxItem *fill; - QFxItem *centerIn; + QmlGraphicsItem *fill; + QmlGraphicsItem *centerIn; - QFxAnchorLine left; - QFxAnchorLine right; - QFxAnchorLine top; - QFxAnchorLine bottom; - QFxAnchorLine vCenter; - QFxAnchorLine hCenter; - QFxAnchorLine baseline; + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine baseline; qreal leftMargin; qreal rightMargin; diff --git a/src/declarative/fx/qfxborderimage.cpp b/src/declarative/fx/qfxborderimage.cpp index f1574e5..1ee2f71 100644 --- a/src/declarative/fx/qfxborderimage.cpp +++ b/src/declarative/fx/qfxborderimage.cpp @@ -48,10 +48,10 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QFxBorderImage) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QmlGraphicsBorderImage) /*! - \qmlclass BorderImage QFxBorderImage + \qmlclass BorderImage QmlGraphicsBorderImage \brief The BorderImage element provides an image that can be used as a border. \inherits Item @@ -64,23 +64,23 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QFxBorderImage) /*! \internal - \class QFxBorderImage BorderImage - \brief The QFxBorderImage class provides an image item that you can add to a QmlView. + \class QmlGraphicsBorderImage BorderImage + \brief The QmlGraphicsBorderImage class provides an image item that you can add to a QmlView. */ -QFxBorderImage::QFxBorderImage(QFxItem *parent) - : QFxImageBase(*(new QFxBorderImagePrivate), parent) +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsBorderImagePrivate), parent) { setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxBorderImage::~QFxBorderImage() +QmlGraphicsBorderImage::~QmlGraphicsBorderImage() { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (d->sciReply) d->sciReply->deleteLater(); if (d->sciPendingPixmapCache) - QFxPixmapCache::cancelGet(d->sciurl, this); + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); } /*! \qmlproperty enum BorderImage::status @@ -147,9 +147,9 @@ static QString toLocalFileOrQrc(const QUrl& url) } -void QFxBorderImage::setSource(const QUrl &url) +void QmlGraphicsBorderImage::setSource(const QUrl &url) { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); //equality is fairly expensive, so we bypass for simple, common case if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) return; @@ -160,11 +160,11 @@ void QFxBorderImage::setSource(const QUrl &url) } if (d->pendingPixmapCache) { - QFxPixmapCache::cancelGet(d->url, this); + QmlGraphicsPixmapCache::cancelGet(d->url, this); d->pendingPixmapCache = false; } if (d->sciPendingPixmapCache) { - QFxPixmapCache::cancelGet(d->sciurl, this); + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); d->sciPendingPixmapCache = false; } @@ -193,7 +193,7 @@ void QFxBorderImage::setSource(const QUrl &url) if (!lf.isEmpty()) { QFile file(lf); file.open(QIODevice::ReadOnly); - setGridScaledImage(QFxGridScaledImage(&file)); + setGridScaledImage(QmlGraphicsGridScaledImage(&file)); } else #endif { @@ -203,7 +203,7 @@ void QFxBorderImage::setSource(const QUrl &url) this, SLOT(sciRequestFinished())); } } else { - QNetworkReply *reply = QFxPixmapCache::get(qmlEngine(this), d->url, &d->pix); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); if (reply) { d->pendingPixmapCache = true; connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); @@ -254,9 +254,9 @@ void QFxBorderImage::setSource(const QUrl &url) \l {BorderImage::source}{.sci file}. */ -QFxScaleGrid *QFxBorderImage::border() +QmlGraphicsScaleGrid *QmlGraphicsBorderImage::border() { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); return d->getScaleGrid(); } @@ -272,15 +272,15 @@ QFxScaleGrid *QFxBorderImage::border() \o Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. \endlist */ -QFxBorderImage::TileMode QFxBorderImage::horizontalTileMode() const +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::horizontalTileMode() const { - Q_D(const QFxBorderImage); + Q_D(const QmlGraphicsBorderImage); return d->horizontalTileMode; } -void QFxBorderImage::setHorizontalTileMode(TileMode t) +void QmlGraphicsBorderImage::setHorizontalTileMode(TileMode t) { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (t != d->horizontalTileMode) { d->horizontalTileMode = t; emit horizontalTileModeChanged(); @@ -288,15 +288,15 @@ void QFxBorderImage::setHorizontalTileMode(TileMode t) } } -QFxBorderImage::TileMode QFxBorderImage::verticalTileMode() const +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::verticalTileMode() const { - Q_D(const QFxBorderImage); + Q_D(const QmlGraphicsBorderImage); return d->verticalTileMode; } -void QFxBorderImage::setVerticalTileMode(TileMode t) +void QmlGraphicsBorderImage::setVerticalTileMode(TileMode t) { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (t != d->verticalTileMode) { d->verticalTileMode = t; emit verticalTileModeChanged(); @@ -304,14 +304,14 @@ void QFxBorderImage::setVerticalTileMode(TileMode t) } } -void QFxBorderImage::setGridScaledImage(const QFxGridScaledImage& sci) +void QmlGraphicsBorderImage::setGridScaledImage(const QmlGraphicsGridScaledImage& sci) { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (!sci.isValid()) { d->status = Error; emit statusChanged(d->status); } else { - QFxScaleGrid *sg = border(); + QmlGraphicsScaleGrid *sg = border(); sg->setTop(sci.gridTop()); sg->setBottom(sci.gridBottom()); sg->setLeft(sci.gridLeft()); @@ -320,7 +320,7 @@ void QFxBorderImage::setGridScaledImage(const QFxGridScaledImage& sci) d->verticalTileMode = sci.verticalTileRule(); d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl())); - QNetworkReply *reply = QFxPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); if (reply) { d->sciPendingPixmapCache = true; connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); @@ -342,16 +342,16 @@ void QFxBorderImage::setGridScaledImage(const QFxGridScaledImage& sci) } } -void QFxBorderImage::requestFinished() +void QmlGraphicsBorderImage::requestFinished() { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (d->url.path().endsWith(QLatin1String(".sci"))) { d->sciPendingPixmapCache = false; - QFxPixmapCache::find(d->sciurl, &d->pix); + QmlGraphicsPixmapCache::find(d->sciurl, &d->pix); } else { d->pendingPixmapCache = false; - if (!QFxPixmapCache::find(d->url, &d->pix)) + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) d->status = Error; } setImplicitWidth(d->pix.width()); @@ -366,25 +366,25 @@ void QFxBorderImage::requestFinished() update(); } -void QFxBorderImage::sciRequestFinished() +void QmlGraphicsBorderImage::sciRequestFinished() { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (d->sciReply->error() != QNetworkReply::NoError) { d->status = Error; d->sciReply->deleteLater(); d->sciReply = 0; emit statusChanged(d->status); } else { - QFxGridScaledImage sci(d->sciReply); + QmlGraphicsGridScaledImage sci(d->sciReply); d->sciReply->deleteLater(); d->sciReply = 0; setGridScaledImage(sci); } } -void QFxBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { - Q_D(QFxBorderImage); + Q_D(QmlGraphicsBorderImage); if (d->pix.isNull()) return; @@ -402,8 +402,8 @@ void QFxBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidge } } -QFxBorderImage::QFxBorderImage(QFxBorderImagePrivate &dd, QFxItem *parent) - : QFxImageBase(dd, parent) +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) { setFlag(QGraphicsItem::ItemHasNoContents, false); } diff --git a/src/declarative/fx/qfxborderimage.h b/src/declarative/fx/qfxborderimage.h index 5bc1067..b6f99a3 100644 --- a/src/declarative/fx/qfxborderimage.h +++ b/src/declarative/fx/qfxborderimage.h @@ -50,23 +50,23 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxScaleGrid; -class QFxGridScaledImage; -class QFxBorderImagePrivate; -class Q_DECLARATIVE_EXPORT QFxBorderImage : public QFxImageBase +class QmlGraphicsScaleGrid; +class QmlGraphicsGridScaledImage; +class QmlGraphicsBorderImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase { Q_OBJECT Q_ENUMS(TileMode) - Q_PROPERTY(QFxScaleGrid *border READ border CONSTANT) + Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) public: - QFxBorderImage(QFxItem *parent=0); - ~QFxBorderImage(); + QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsBorderImage(); - QFxScaleGrid *border(); + QmlGraphicsScaleGrid *border(); enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; @@ -84,22 +84,22 @@ Q_SIGNALS: void verticalTileModeChanged(); protected: - QFxBorderImage(QFxBorderImagePrivate &dd, QFxItem *parent); + QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); private: - void setGridScaledImage(const QFxGridScaledImage& sci); + void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); private Q_SLOTS: void requestFinished(); void sciRequestFinished(); private: - Q_DISABLE_COPY(QFxBorderImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxBorderImage) + Q_DISABLE_COPY(QmlGraphicsBorderImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxBorderImage) +QML_DECLARE_TYPE(QmlGraphicsBorderImage) QT_END_HEADER #endif // QFXBORDERIMAGE_H diff --git a/src/declarative/fx/qfxborderimage_p.h b/src/declarative/fx/qfxborderimage_p.h index aebe13f..75a638c 100644 --- a/src/declarative/fx/qfxborderimage_p.h +++ b/src/declarative/fx/qfxborderimage_p.h @@ -59,37 +59,37 @@ QT_BEGIN_NAMESPACE class QNetworkReply; -class QFxBorderImagePrivate : public QFxImageBasePrivate +class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate { - Q_DECLARE_PUBLIC(QFxBorderImage) + Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) public: - QFxBorderImagePrivate() + QmlGraphicsBorderImagePrivate() : border(0), sciReply(0), sciPendingPixmapCache(false), - horizontalTileMode(QFxBorderImage::Stretch), - verticalTileMode(QFxBorderImage::Stretch) + horizontalTileMode(QmlGraphicsBorderImage::Stretch), + verticalTileMode(QmlGraphicsBorderImage::Stretch) { } - ~QFxBorderImagePrivate() + ~QmlGraphicsBorderImagePrivate() { } - QFxScaleGrid *getScaleGrid() + QmlGraphicsScaleGrid *getScaleGrid() { - Q_Q(QFxBorderImage); + Q_Q(QmlGraphicsBorderImage); if (!border) - border = new QFxScaleGrid(q); + border = new QmlGraphicsScaleGrid(q); return border; } - QFxScaleGrid *border; + QmlGraphicsScaleGrid *border; QUrl sciurl; QNetworkReply *sciReply; bool sciPendingPixmapCache; - QFxBorderImage::TileMode horizontalTileMode; - QFxBorderImage::TileMode verticalTileMode; + QmlGraphicsBorderImage::TileMode horizontalTileMode; + QmlGraphicsBorderImage::TileMode verticalTileMode; }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxevents.cpp b/src/declarative/fx/qfxevents.cpp index 43f0dd7..fe249f9 100644 --- a/src/declarative/fx/qfxevents.cpp +++ b/src/declarative/fx/qfxevents.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE /*! - \qmlclass KeyEvent QFxKeyEvent + \qmlclass KeyEvent QmlGraphicsKeyEvent \brief The KeyEvent object provides information about a key event. For example, the following changes the Item's state property when the Enter @@ -58,7 +58,7 @@ Item { /*! \internal - \class QFxKeyEvent + \class QmlGraphicsKeyEvent */ /*! @@ -112,7 +112,7 @@ Item { /*! - \qmlclass MouseEvent QFxMouseEvent + \qmlclass MouseEvent QmlGraphicsMouseEvent \brief The MouseEvent object provides information about a mouse event. The position of the mouse can be found via the x and y properties. @@ -121,7 +121,7 @@ Item { /*! \internal - \class QFxMouseEvent + \class QmlGraphicsMouseEvent */ /*! @@ -189,7 +189,7 @@ MouseRegion { \endqml */ -QML_DEFINE_NOCREATE_TYPE(QFxKeyEvent) -QML_DEFINE_NOCREATE_TYPE(QFxMouseEvent) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsKeyEvent) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsMouseEvent) QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxevents_p.h b/src/declarative/fx/qfxevents_p.h index 7b0c24c..e558c42 100644 --- a/src/declarative/fx/qfxevents_p.h +++ b/src/declarative/fx/qfxevents_p.h @@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE -class QFxKeyEvent : public QObject +class QmlGraphicsKeyEvent : public QObject { Q_OBJECT Q_PROPERTY(int key READ key) @@ -71,9 +71,9 @@ class QFxKeyEvent : public QObject Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) public: - QFxKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) + QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } - QFxKeyEvent(const QKeyEvent &ke) + QmlGraphicsKeyEvent(const QKeyEvent &ke) : event(ke) { event.setAccepted(false); } int key() const { return event.key(); } @@ -89,7 +89,7 @@ private: QKeyEvent event; }; -class QFxMouseEvent : public QObject +class QmlGraphicsMouseEvent : public QObject { Q_OBJECT Q_PROPERTY(int x READ x) @@ -102,7 +102,7 @@ class QFxMouseEvent : public QObject Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) public: - QFxMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers + QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers , bool isClick=false, bool wasHeld=false) : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} @@ -131,7 +131,7 @@ private: QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxKeyEvent) -QML_DECLARE_TYPE(QFxMouseEvent) +QML_DECLARE_TYPE(QmlGraphicsKeyEvent) +QML_DECLARE_TYPE(QmlGraphicsMouseEvent) #endif // QFXEVENTS_P_H diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp index 0fb8474..34e3e75 100644 --- a/src/declarative/fx/qfxflickable.cpp +++ b/src/declarative/fx/qfxflickable.cpp @@ -60,7 +60,7 @@ static const int FlickThreshold = 20; // Really slow flicks can be annoying. static const int minimumFlickVelocity = 200; -class QFxFlickableVisibleArea : public QObject +class QmlGraphicsFlickableVisibleArea : public QObject { Q_OBJECT @@ -70,7 +70,7 @@ class QFxFlickableVisibleArea : public QObject Q_PROPERTY(qreal heightRatio READ heightRatio NOTIFY pageChanged) public: - QFxFlickableVisibleArea(QFxFlickable *parent=0); + QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent=0); qreal xPosition() const; qreal widthRatio() const; @@ -83,42 +83,42 @@ signals: void pageChanged(); private: - QFxFlickable *flickable; + QmlGraphicsFlickable *flickable; qreal m_xPosition; qreal m_widthRatio; qreal m_yPosition; qreal m_heightRatio; }; -QFxFlickableVisibleArea::QFxFlickableVisibleArea(QFxFlickable *parent) +QmlGraphicsFlickableVisibleArea::QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent) : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) , m_yPosition(0.), m_heightRatio(0.) { } -qreal QFxFlickableVisibleArea::widthRatio() const +qreal QmlGraphicsFlickableVisibleArea::widthRatio() const { return m_widthRatio; } -qreal QFxFlickableVisibleArea::xPosition() const +qreal QmlGraphicsFlickableVisibleArea::xPosition() const { return m_xPosition; } -qreal QFxFlickableVisibleArea::heightRatio() const +qreal QmlGraphicsFlickableVisibleArea::heightRatio() const { return m_heightRatio; } -qreal QFxFlickableVisibleArea::yPosition() const +qreal QmlGraphicsFlickableVisibleArea::yPosition() const { return m_yPosition; } -void QFxFlickableVisibleArea::updateVisible() +void QmlGraphicsFlickableVisibleArea::updateVisible() { - QFxFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); + QmlGraphicsFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); bool pageChange = false; // Vertical @@ -155,21 +155,21 @@ void QFxFlickableVisibleArea::updateVisible() } -QFxFlickablePrivate::QFxFlickablePrivate() - : viewport(new QFxItem), _moveX(viewport, &QFxItem::setX), _moveY(viewport, &QFxItem::setY) +QmlGraphicsFlickablePrivate::QmlGraphicsFlickablePrivate() + : viewport(new QmlGraphicsItem), _moveX(viewport, &QmlGraphicsItem::setX), _moveY(viewport, &QmlGraphicsItem::setY) , vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false) , pressed(false), atXEnd(false), atXBeginning(true), atYEnd(false), atYBeginning(true) , interactive(true), deceleration(500), maxVelocity(5000), reportedVelocitySmoothing(100) , delayedPressEvent(0), delayedPressTarget(0), pressDelay(0) , horizontalVelocity(this), verticalVelocity(this), vTime(0), visibleArea(0) { - fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); - fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); + fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); + fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); } -void QFxFlickablePrivate::init() +void QmlGraphicsFlickablePrivate::init() { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); viewport->setParent(q); QObject::connect(&timeline, SIGNAL(updated()), q, SLOT(ticked())); QObject::connect(&timeline, SIGNAL(completed()), q, SLOT(movementEnding())); @@ -181,9 +181,9 @@ void QFxFlickablePrivate::init() QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(widthChange())); } -void QFxFlickablePrivate::flickX(qreal velocity) +void QmlGraphicsFlickablePrivate::flickX(qreal velocity) { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); qreal maxDistance = -1; if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; @@ -219,9 +219,9 @@ void QFxFlickablePrivate::flickX(qreal velocity) } } -void QFxFlickablePrivate::flickY(qreal velocity) +void QmlGraphicsFlickablePrivate::flickY(qreal velocity) { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); qreal maxDistance = -1; // -ve velocity means list is moving up if (velocity > 0) { @@ -255,9 +255,9 @@ void QFxFlickablePrivate::flickY(qreal velocity) } } -void QFxFlickablePrivate::fixupX() +void QmlGraphicsFlickablePrivate::fixupX() { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); if (!q->xflick() || _moveX.timeLine()) return; @@ -277,9 +277,9 @@ void QFxFlickablePrivate::fixupX() } } -void QFxFlickablePrivate::fixupY() +void QmlGraphicsFlickablePrivate::fixupY() { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); if (!q->yflick() || _moveY.timeLine()) return; @@ -299,9 +299,9 @@ void QFxFlickablePrivate::fixupY() } } -void QFxFlickablePrivate::updateBeginningEnd() +void QmlGraphicsFlickablePrivate::updateBeginningEnd() { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); bool atBoundaryChange = false; // Vertical @@ -341,7 +341,7 @@ void QFxFlickablePrivate::updateBeginningEnd() visibleArea->updateVisible(); } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QFxFlickable) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QmlGraphicsFlickable) /*! \qmlclass Flickable @@ -369,12 +369,12 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QFxFlickable) /*! \internal - \class QFxFlickable - \brief The QFxFlickable class provides a view that can be "flicked". + \class QmlGraphicsFlickable + \brief The QmlGraphicsFlickable class provides a view that can be "flicked". \ingroup group_widgets - QFxFlickable allows its children to be dragged and flicked. + QmlGraphicsFlickable allows its children to be dragged and flicked. \code Flickable { @@ -383,8 +383,8 @@ Flickable { } \endcode - Note that QFxFlickable does not automatically clip its contents. If - it is not full-screen it is likely that QFxItem::clip should be set + Note that QmlGraphicsFlickable does not automatically clip its contents. If + it is not full-screen it is likely that QmlGraphicsItem::clip should be set to true. */ @@ -410,21 +410,21 @@ Flickable { \endcode */ -QFxFlickable::QFxFlickable(QFxItem *parent) - : QFxItem(*(new QFxFlickablePrivate), parent) +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsFlickablePrivate), parent) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->init(); } -QFxFlickable::QFxFlickable(QFxFlickablePrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->init(); } -QFxFlickable::~QFxFlickable() +QmlGraphicsFlickable::~QmlGraphicsFlickable() { } @@ -436,15 +436,15 @@ QFxFlickable::~QFxFlickable() corner of the Flickable. For example, if you flick an image up 100 pixels, \c yPosition will be 100. */ -qreal QFxFlickable::viewportX() const +qreal QmlGraphicsFlickable::viewportX() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return -d->_moveX.value(); } -void QFxFlickable::setViewportX(qreal pos) +void QmlGraphicsFlickable::setViewportX(qreal pos) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); pos = qRound(pos); d->timeline.reset(d->_moveX); if (-pos != d->_moveX.value()) { @@ -453,15 +453,15 @@ void QFxFlickable::setViewportX(qreal pos) } } -qreal QFxFlickable::viewportY() const +qreal QmlGraphicsFlickable::viewportY() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return -d->_moveY.value(); } -void QFxFlickable::setViewportY(qreal pos) +void QmlGraphicsFlickable::setViewportY(qreal pos) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); pos = qRound(pos); d->timeline.reset(d->_moveY); if (-pos != d->_moveY.value()) { @@ -479,15 +479,15 @@ void QFxFlickable::setViewportY(qreal pos) special interaction with Flickable's children: for example, you might want to freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable. */ -bool QFxFlickable::isInteractive() const +bool QmlGraphicsFlickable::isInteractive() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->interactive; } -void QFxFlickable::setInteractive(bool interactive) +void QmlGraphicsFlickable::setInteractive(bool interactive) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->interactive = interactive; if (!interactive && d->flicked) { d->timeline.clear(); @@ -507,15 +507,15 @@ void QFxFlickable::setInteractive(bool interactive) The reported velocity is smoothed to avoid erratic output. reportedVelocitySmoothing determines how much smoothing is applied. */ -qreal QFxFlickable::horizontalVelocity() const +qreal QmlGraphicsFlickable::horizontalVelocity() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->horizontalVelocity.value(); } -qreal QFxFlickable::verticalVelocity() const +qreal QmlGraphicsFlickable::verticalVelocity() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->verticalVelocity.value(); } @@ -528,62 +528,62 @@ qreal QFxFlickable::verticalVelocity() const These properties are true if the flickable view is positioned at the beginning, or end respecively. */ -bool QFxFlickable::isAtXEnd() const +bool QmlGraphicsFlickable::isAtXEnd() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->atXEnd; } -bool QFxFlickable::isAtXBeginning() const +bool QmlGraphicsFlickable::isAtXBeginning() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->atXBeginning; } -bool QFxFlickable::isAtYEnd() const +bool QmlGraphicsFlickable::isAtYEnd() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->atYEnd; } -bool QFxFlickable::isAtYBeginning() const +bool QmlGraphicsFlickable::isAtYBeginning() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->atYBeginning; } -void QFxFlickable::ticked() +void QmlGraphicsFlickable::ticked() { viewportMoved(); } -QFxItem *QFxFlickable::viewport() +QmlGraphicsItem *QmlGraphicsFlickable::viewport() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); return d->viewport; } -qreal QFxFlickable::visibleX() const +qreal QmlGraphicsFlickable::visibleX() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return -d->_moveX.value(); } -qreal QFxFlickable::visibleY() const +qreal QmlGraphicsFlickable::visibleY() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return -d->_moveY.value(); } -QFxFlickableVisibleArea *QFxFlickable::visibleArea() +QmlGraphicsFlickableVisibleArea *QmlGraphicsFlickable::visibleArea() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (!d->visibleArea) - d->visibleArea = new QFxFlickableVisibleArea(this); + d->visibleArea = new QmlGraphicsFlickableVisibleArea(this); return d->visibleArea; } -void QFxFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) { if (interactive && timeline.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10)) stealMouse = true; // If we've been flicked then steal the click. @@ -594,18 +594,18 @@ void QFxFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) velocityX = 0; velocityY = 0; lastPos = QPoint(); - QFxItemPrivate::start(lastPosTime); + QmlGraphicsItemPrivate::start(lastPosTime); pressPos = event->pos(); pressX = _moveX.value(); pressY = _moveY.value(); flicked = false; - QFxItemPrivate::start(pressTime); - QFxItemPrivate::start(velocityTime); + QmlGraphicsItemPrivate::start(pressTime); + QmlGraphicsItemPrivate::start(velocityTime); } -void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); if (!interactive || lastPosTime.isNull()) return; bool rejectY = false; @@ -614,7 +614,7 @@ void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) if (q->yflick()) { int dy = int(event->pos().y() - pressPos.y()); - if (qAbs(dy) > DragThreshold || QFxItemPrivate::elapsed(pressTime) > 200) { + if (qAbs(dy) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { qreal newY = dy + pressY; const qreal minY = q->minYExtent(); const qreal maxY = q->maxYExtent(); @@ -641,7 +641,7 @@ void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) if (q->xflick()) { int dx = int(event->pos().x() - pressPos.x()); - if (qAbs(dx) > DragThreshold || QFxItemPrivate::elapsed(pressTime) > 200) { + if (qAbs(dx) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { qreal newX = dx + pressX; const qreal minX = q->minXExtent(); const qreal maxX = q->maxXExtent(); @@ -668,7 +668,7 @@ void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) } if (!lastPos.isNull()) { - qreal elapsed = qreal(QFxItemPrivate::restart(lastPosTime)) / 1000.; + qreal elapsed = qreal(QmlGraphicsItemPrivate::restart(lastPosTime)) / 1000.; if (elapsed <= 0) elapsed = 1; if (q->yflick()) { @@ -697,14 +697,14 @@ void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) lastPos = event->pos(); } -void QFxFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); pressed = false; if (lastPosTime.isNull()) return; - if (QFxItemPrivate::elapsed(lastPosTime) > 100) { + if (QmlGraphicsItemPrivate::elapsed(lastPosTime) > 100) { // if we drag then pause before release we should not cause a flick. velocityX = 0.0; velocityY = 0.0; @@ -736,32 +736,32 @@ void QFxFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *even q->movementEnding(); } -void QFxFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->handleMousePressEvent(event); event->accept(); } -void QFxFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->handleMouseMoveEvent(event); event->accept(); } -void QFxFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->clearDelayedPress(); d->handleMouseReleaseEvent(event); event->accept(); ungrabMouse(); } -void QFxFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) +void QmlGraphicsFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); if (!q->scene() || pressDelay <= 0) return; delayedPressTarget = q->scene()->mouseGrabberItem(); @@ -787,7 +787,7 @@ void QFxFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) delayedPressTimer.start(pressDelay, q); } -void QFxFlickablePrivate::clearDelayedPress() +void QmlGraphicsFlickablePrivate::clearDelayedPress() { if (delayedPressEvent) { delayedPressTimer.stop(); @@ -796,13 +796,13 @@ void QFxFlickablePrivate::clearDelayedPress() } } -void QFxFlickable::timerEvent(QTimerEvent *event) +void QmlGraphicsFlickable::timerEvent(QTimerEvent *event) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (event->timerId() == d->delayedPressTimer.timerId()) { d->delayedPressTimer.stop(); if (d->delayedPressEvent) { - QFxItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; + QmlGraphicsItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; if (!grabber || grabber != this) scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); delete d->delayedPressEvent; @@ -811,32 +811,32 @@ void QFxFlickable::timerEvent(QTimerEvent *event) } } -qreal QFxFlickable::minYExtent() const +qreal QmlGraphicsFlickable::minYExtent() const { return 0.0; } -qreal QFxFlickable::minXExtent() const +qreal QmlGraphicsFlickable::minXExtent() const { return 0.0; } /* returns -ve */ -qreal QFxFlickable::maxXExtent() const +qreal QmlGraphicsFlickable::maxXExtent() const { return width() - vWidth(); } /* returns -ve */ -qreal QFxFlickable::maxYExtent() const +qreal QmlGraphicsFlickable::maxYExtent() const { return height() - vHeight(); } -void QFxFlickable::viewportMoved() +void QmlGraphicsFlickable::viewportMoved() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); - int elapsed = QFxItemPrivate::elapsed(d->velocityTime); + int elapsed = QmlGraphicsItemPrivate::elapsed(d->velocityTime); if (elapsed) { qreal prevY = d->lastFlickablePosition.x(); @@ -861,7 +861,7 @@ void QFxFlickable::viewportMoved() } d->lastFlickablePosition = QPointF(d->_moveY.value(), d->_moveX.value()); - QFxItemPrivate::restart(d->velocityTime); + QmlGraphicsItemPrivate::restart(d->velocityTime); d->updateBeginningEnd(); if (d->flicked) { @@ -889,61 +889,61 @@ void QFxFlickable::viewportMoved() } } -void QFxFlickable::cancelFlick() +void QmlGraphicsFlickable::cancelFlick() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->timeline.reset(d->_moveX); d->timeline.reset(d->_moveY); movementEnding(); } -void QFxFlickablePrivate::data_removeAt(int) +void QmlGraphicsFlickablePrivate::data_removeAt(int) { // ### } -int QFxFlickablePrivate::data_count() const +int QmlGraphicsFlickablePrivate::data_count() const { // ### return 0; } -void QFxFlickablePrivate::data_append(QObject *o) +void QmlGraphicsFlickablePrivate::data_append(QObject *o) { - Q_Q(QFxFlickable); - QFxItem *i = qobject_cast(o); + Q_Q(QmlGraphicsFlickable); + QmlGraphicsItem *i = qobject_cast(o); if (i) viewport->fxChildren()->append(i); else o->setParent(q); } -void QFxFlickablePrivate::data_insert(int, QObject *) +void QmlGraphicsFlickablePrivate::data_insert(int, QObject *) { // ### } -QObject *QFxFlickablePrivate::data_at(int) const +QObject *QmlGraphicsFlickablePrivate::data_at(int) const { // ### return 0; } -void QFxFlickablePrivate::data_clear() +void QmlGraphicsFlickablePrivate::data_clear() { // ### } -QmlList *QFxFlickable::flickableData() +QmlList *QmlGraphicsFlickable::flickableData() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); return &d->data; } -QmlList *QFxFlickable::flickableChildren() +QmlList *QmlGraphicsFlickable::flickableChildren() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); return d->viewport->fxChildren(); } @@ -957,15 +957,15 @@ QmlList *QFxFlickable::flickableChildren() the feeling that the edges of the view are soft, rather than a hard physical boundary. */ -bool QFxFlickable::overShoot() const +bool QmlGraphicsFlickable::overShoot() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->overShoot; } -void QFxFlickable::setOverShoot(bool o) +void QmlGraphicsFlickable::setOverShoot(bool o) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->overShoot = o; } @@ -983,15 +983,15 @@ void QFxFlickable::setOverShoot(bool o) } \endcode */ -qreal QFxFlickable::viewportWidth() const +qreal QmlGraphicsFlickable::viewportWidth() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->vWidth; } -void QFxFlickable::setViewportWidth(qreal w) +void QmlGraphicsFlickable::setViewportWidth(qreal w) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->vWidth == w) return; d->vWidth = w; @@ -1006,9 +1006,9 @@ void QFxFlickable::setViewportWidth(qreal w) d->updateBeginningEnd(); } -void QFxFlickable::widthChange() +void QmlGraphicsFlickable::widthChange() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->vWidth < 0) { d->viewport->setWidth(width()); emit viewportWidthChanged(); @@ -1016,9 +1016,9 @@ void QFxFlickable::widthChange() d->updateBeginningEnd(); } -void QFxFlickable::heightChange() +void QmlGraphicsFlickable::heightChange() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->vHeight < 0) { d->viewport->setHeight(height()); emit viewportHeightChanged(); @@ -1026,15 +1026,15 @@ void QFxFlickable::heightChange() d->updateBeginningEnd(); } -qreal QFxFlickable::viewportHeight() const +qreal QmlGraphicsFlickable::viewportHeight() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->vHeight; } -void QFxFlickable::setViewportHeight(qreal h) +void QmlGraphicsFlickable::setViewportHeight(qreal h) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->vHeight == h) return; d->vHeight = h; @@ -1049,42 +1049,42 @@ void QFxFlickable::setViewportHeight(qreal h) d->updateBeginningEnd(); } -qreal QFxFlickable::vWidth() const +qreal QmlGraphicsFlickable::vWidth() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); if (d->vWidth < 0) return width(); else return d->vWidth; } -qreal QFxFlickable::vHeight() const +qreal QmlGraphicsFlickable::vHeight() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); if (d->vHeight < 0) return height(); else return d->vHeight; } -bool QFxFlickable::xflick() const +bool QmlGraphicsFlickable::xflick() const { return vWidth() != width(); } -bool QFxFlickable::yflick() const +bool QmlGraphicsFlickable::yflick() const { return vHeight() != height(); } -bool QFxFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) +bool QmlGraphicsFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); QGraphicsSceneMouseEvent mouseEvent(event->type()); QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); QGraphicsScene *s = scene(); - QFxItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { mouseEvent.setAccepted(false); for (int i = 0x1; i <= 0x10; i <<= 1) { @@ -1119,7 +1119,7 @@ bool QFxFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) default: break; } - grabber = qobject_cast(s->mouseGrabberItem()); + grabber = qobject_cast(s->mouseGrabberItem()); if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) { d->clearDelayedPress(); grabMouse(); @@ -1134,10 +1134,10 @@ bool QFxFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) return false; } -bool QFxFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) +bool QmlGraphicsFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) { if (!isVisible()) - return QFxItem::sceneEventFilter(i, e); + return QmlGraphicsItem::sceneEventFilter(i, e); switch (e->type()) { case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseMove: @@ -1147,7 +1147,7 @@ bool QFxFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) break; } - return QFxItem::sceneEventFilter(i, e); + return QmlGraphicsItem::sceneEventFilter(i, e); } /*! @@ -1156,15 +1156,15 @@ bool QFxFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) The default is 5000 pixels/s */ -qreal QFxFlickable::maximumFlickVelocity() const +qreal QmlGraphicsFlickable::maximumFlickVelocity() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->maxVelocity; } -void QFxFlickable::setMaximumFlickVelocity(qreal v) +void QmlGraphicsFlickable::setMaximumFlickVelocity(qreal v) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (v == d->maxVelocity) return; d->maxVelocity = v; @@ -1176,21 +1176,21 @@ void QFxFlickable::setMaximumFlickVelocity(qreal v) The default is 500. */ -qreal QFxFlickable::flickDeceleration() const +qreal QmlGraphicsFlickable::flickDeceleration() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->deceleration; } -void QFxFlickable::setFlickDeceleration(qreal deceleration) +void QmlGraphicsFlickable::setFlickDeceleration(qreal deceleration) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); d->deceleration = deceleration; } -bool QFxFlickable::isFlicking() const +bool QmlGraphicsFlickable::isFlicking() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->flicked; } @@ -1205,29 +1205,29 @@ bool QFxFlickable::isFlicking() const the press event will not be delivered. If the button is released within the timeout, both the press and release will be delivered. */ -int QFxFlickable::pressDelay() const +int QmlGraphicsFlickable::pressDelay() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->pressDelay; } -void QFxFlickable::setPressDelay(int delay) +void QmlGraphicsFlickable::setPressDelay(int delay) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->pressDelay == delay) return; d->pressDelay = delay; } -qreal QFxFlickable::reportedVelocitySmoothing() const +qreal QmlGraphicsFlickable::reportedVelocitySmoothing() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->reportedVelocitySmoothing; } -void QFxFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) +void QmlGraphicsFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); Q_ASSERT(reportedVelocitySmoothing >= 0); if (reportedVelocitySmoothing == d->reportedVelocitySmoothing) return; @@ -1235,15 +1235,15 @@ void QFxFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) emit reportedVelocitySmoothingChanged(reportedVelocitySmoothing); } -bool QFxFlickable::isMoving() const +bool QmlGraphicsFlickable::isMoving() const { - Q_D(const QFxFlickable); + Q_D(const QmlGraphicsFlickable); return d->moving; } -void QFxFlickable::movementStarting() +void QmlGraphicsFlickable::movementStarting() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (!d->moving) { d->moving = true; emit movingChanged(); @@ -1251,9 +1251,9 @@ void QFxFlickable::movementStarting() } } -void QFxFlickable::movementEnding() +void QmlGraphicsFlickable::movementEnding() { - Q_D(QFxFlickable); + Q_D(QmlGraphicsFlickable); if (d->moving) { d->moving = false; emit movingChanged(); @@ -1268,16 +1268,16 @@ void QFxFlickable::movementEnding() d->verticalVelocity.setValue(0); } -void QFxFlickablePrivate::updateVelocity() +void QmlGraphicsFlickablePrivate::updateVelocity() { - Q_Q(QFxFlickable); + Q_Q(QmlGraphicsFlickable); emit q->horizontalVelocityChanged(); emit q->verticalVelocityChanged(); } QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxFlickableVisibleArea) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QFxFlickableVisibleArea) +QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) #include "qfxflickable.moc" diff --git a/src/declarative/fx/qfxflickable.h b/src/declarative/fx/qfxflickable.h index 3db4ca7..634fe88 100644 --- a/src/declarative/fx/qfxflickable.h +++ b/src/declarative/fx/qfxflickable.h @@ -50,9 +50,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxFlickablePrivate; -class QFxFlickableVisibleArea; -class Q_DECLARATIVE_EXPORT QFxFlickable : public QFxItem +class QmlGraphicsFlickablePrivate; +class QmlGraphicsFlickableVisibleArea; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem { Q_OBJECT @@ -79,18 +79,18 @@ class Q_DECLARATIVE_EXPORT QFxFlickable : public QFxItem Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) - Q_PROPERTY(QFxFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) + Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) Q_PROPERTY(QmlList* flickableData READ flickableData) - Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) + Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) Q_CLASSINFO("DefaultProperty", "flickableData") public: - QFxFlickable(QFxItem *parent=0); - ~QFxFlickable(); + QmlGraphicsFlickable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlickable(); QmlList *flickableData(); - QmlList *flickableChildren(); + QmlList *flickableChildren(); bool overShoot() const; void setOverShoot(bool); @@ -133,7 +133,7 @@ public: bool isAtYEnd() const; bool isAtYBeginning() const; - QFxItem *viewport(); + QmlGraphicsItem *viewport(); Q_SIGNALS: void viewportWidthChanged(); @@ -162,7 +162,7 @@ protected: qreal visibleX() const; qreal visibleY() const; - QFxFlickableVisibleArea *visibleArea(); + QmlGraphicsFlickableVisibleArea *visibleArea(); protected Q_SLOTS: virtual void ticked(); @@ -186,17 +186,17 @@ protected: void cancelFlick(); protected: - QFxFlickable(QFxFlickablePrivate &dd, QFxItem *parent); + QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); private: - Q_DISABLE_COPY(QFxFlickable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxFlickable) - friend class QFxFlickableVisibleArea; + Q_DISABLE_COPY(QmlGraphicsFlickable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) + friend class QmlGraphicsFlickableVisibleArea; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxFlickable) +QML_DECLARE_TYPE(QmlGraphicsFlickable) QT_END_HEADER diff --git a/src/declarative/fx/qfxflickable_p.h b/src/declarative/fx/qfxflickable_p.h index 07d66b8..5e9863f 100644 --- a/src/declarative/fx/qfxflickable_p.h +++ b/src/declarative/fx/qfxflickable_p.h @@ -62,13 +62,13 @@ QT_BEGIN_NAMESPACE -class QFxFlickableVisibleArea; -class QFxFlickablePrivate : public QFxItemPrivate +class QmlGraphicsFlickableVisibleArea; +class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxFlickable) + Q_DECLARE_PUBLIC(QmlGraphicsFlickable) public: - QFxFlickablePrivate(); + QmlGraphicsFlickablePrivate(); void init(); virtual void flickX(qreal velocity); virtual void flickY(qreal velocity); @@ -80,9 +80,9 @@ public: void clearDelayedPress(); public: - QFxItem *viewport; - QmlTimeLineValueProxy _moveX; - QmlTimeLineValueProxy _moveY; + QmlGraphicsItem *viewport; + QmlTimeLineValueProxy _moveX; + QmlTimeLineValueProxy _moveY; QmlTimeLine timeline; qreal vWidth; qreal vHeight; @@ -121,19 +121,19 @@ public: void updateVelocity(); struct Velocity : public QmlTimeLineValue { - Velocity(QFxFlickablePrivate *p) + Velocity(QmlGraphicsFlickablePrivate *p) : parent(p) {} virtual void setValue(qreal v) { QmlTimeLineValue::setValue(v); parent->updateVelocity(); } - QFxFlickablePrivate *parent; + QmlGraphicsFlickablePrivate *parent; }; Velocity horizontalVelocity; Velocity verticalVelocity; int vTime; QmlTimeLine velocityTimeline; - QFxFlickableVisibleArea *visibleArea; + QmlGraphicsFlickableVisibleArea *visibleArea; void handleMousePressEvent(QGraphicsSceneMouseEvent *); void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); @@ -147,8 +147,8 @@ public: QObject *data_at(int) const; void data_clear(); - friend class QFxFlickableVisibleArea; - QML_DECLARE_LIST_PROXY(QFxFlickablePrivate, QObject *, data) + friend class QmlGraphicsFlickableVisibleArea; + QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxflipable.cpp b/src/declarative/fx/qfxflipable.cpp index d381cfe..090f8a0 100644 --- a/src/declarative/fx/qfxflipable.cpp +++ b/src/declarative/fx/qfxflipable.cpp @@ -46,23 +46,23 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QFxFlipable) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QmlGraphicsFlipable) -class QFxFlipablePrivate : public QFxItemPrivate +class QmlGraphicsFlipablePrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxFlipable) + Q_DECLARE_PUBLIC(QmlGraphicsFlipable) public: - QFxFlipablePrivate() : current(QFxFlipable::Front), front(0), back(0) {} + QmlGraphicsFlipablePrivate() : current(QmlGraphicsFlipable::Front), front(0), back(0) {} void updateSceneTransformFromParent(); - QFxFlipable::Side current; - QFxItem *front; - QFxItem *back; + QmlGraphicsFlipable::Side current; + QmlGraphicsItem *front; + QmlGraphicsItem *back; }; /*! - \qmlclass Flipable QFxFlipable + \qmlclass Flipable QmlGraphicsFlipable \brief The Flipable item provides a surface that can be flipped. \inherits Item @@ -107,21 +107,21 @@ public: /*! \internal - \class QFxFlipable - \brief The QFxFlipable class provides a flipable surface. + \class QmlGraphicsFlipable + \brief The QmlGraphicsFlipable class provides a flipable surface. \ingroup group_widgets - QFxFlipable allows you to specify a front and a back, as well as an + QmlGraphicsFlipable allows you to specify a front and a back, as well as an axis for the flip. */ -QFxFlipable::QFxFlipable(QFxItem *parent) -: QFxItem(*(new QFxFlipablePrivate), parent) +QmlGraphicsFlipable::QmlGraphicsFlipable(QmlGraphicsItem *parent) +: QmlGraphicsItem(*(new QmlGraphicsFlipablePrivate), parent) { } -QFxFlipable::~QFxFlipable() +QmlGraphicsFlipable::~QmlGraphicsFlipable() { } @@ -132,15 +132,15 @@ QFxFlipable::~QFxFlipable() The front and back sides of the flipable. */ -QFxItem *QFxFlipable::front() +QmlGraphicsItem *QmlGraphicsFlipable::front() { - Q_D(const QFxFlipable); + Q_D(const QmlGraphicsFlipable); return d->front; } -void QFxFlipable::setFront(QFxItem *front) +void QmlGraphicsFlipable::setFront(QmlGraphicsItem *front) { - Q_D(QFxFlipable); + Q_D(QmlGraphicsFlipable); if (d->front) { qmlInfo(tr("front is a write-once property"),this); return; @@ -151,15 +151,15 @@ void QFxFlipable::setFront(QFxItem *front) d->front->setOpacity(0.); } -QFxItem *QFxFlipable::back() +QmlGraphicsItem *QmlGraphicsFlipable::back() { - Q_D(const QFxFlipable); + Q_D(const QmlGraphicsFlipable); return d->back; } -void QFxFlipable::setBack(QFxItem *back) +void QmlGraphicsFlipable::setBack(QmlGraphicsItem *back) { - Q_D(QFxFlipable); + Q_D(QmlGraphicsFlipable); if (d->back) { qmlInfo(tr("back is a write-once property"),this); return; @@ -176,11 +176,11 @@ void QFxFlipable::setBack(QFxItem *back) The side of the Flippable currently visible. Possible values are \c Front and \c Back. */ -QFxFlipable::Side QFxFlipable::side() const +QmlGraphicsFlipable::Side QmlGraphicsFlipable::side() const { - Q_D(const QFxFlipable); + Q_D(const QmlGraphicsFlipable); if (d->dirtySceneTransform) - const_cast(d)->updateSceneTransformFromParent(); + const_cast(d)->updateSceneTransformFromParent(); return d->current; } @@ -188,11 +188,11 @@ QFxFlipable::Side QFxFlipable::side() const // determination on the currently visible side of the flipable // has to be done on the complete scene transform to give // correct results. -void QFxFlipablePrivate::updateSceneTransformFromParent() +void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() { - Q_Q(QFxFlipable); + Q_Q(QmlGraphicsFlipable); - QFxItemPrivate::updateSceneTransformFromParent(); + QmlGraphicsItemPrivate::updateSceneTransformFromParent(); QPointF p1(0, 0); QPointF p2(1, 0); QPointF p3(1, 1); @@ -204,16 +204,16 @@ void QFxFlipablePrivate::updateSceneTransformFromParent() qreal cross = (p1.x() - p2.x()) * (p3.y() - p2.y()) - (p1.y() - p2.y()) * (p3.x() - p2.x()); - QFxFlipable::Side newSide; + QmlGraphicsFlipable::Side newSide; if (cross > 0) { - newSide = QFxFlipable::Back; + newSide = QmlGraphicsFlipable::Back; } else { - newSide = QFxFlipable::Front; + newSide = QmlGraphicsFlipable::Front; } if (newSide != current) { current = newSide; - if (current == QFxFlipable::Back) { + if (current == QmlGraphicsFlipable::Back) { QTransform mat; mat.translate(back->width()/2,back->height()/2); if (back->width() && p1.x() >= p2.x()) @@ -224,9 +224,9 @@ void QFxFlipablePrivate::updateSceneTransformFromParent() back->setTransform(mat); } if (front) - front->setOpacity((current==QFxFlipable::Front)?1.:0.); + front->setOpacity((current==QmlGraphicsFlipable::Front)?1.:0.); if (back) - back->setOpacity((current==QFxFlipable::Back)?1.:0.); + back->setOpacity((current==QmlGraphicsFlipable::Back)?1.:0.); emit q->sideChanged(); } } diff --git a/src/declarative/fx/qfxflipable.h b/src/declarative/fx/qfxflipable.h index e1bd9ea..1b10d48 100644 --- a/src/declarative/fx/qfxflipable.h +++ b/src/declarative/fx/qfxflipable.h @@ -53,26 +53,26 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxFlipablePrivate; -class Q_DECLARATIVE_EXPORT QFxFlipable : public QFxItem +class QmlGraphicsFlipablePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem { Q_OBJECT Q_ENUMS(Side) - Q_PROPERTY(QFxItem *front READ front WRITE setFront) - Q_PROPERTY(QFxItem *back READ back WRITE setBack) + Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) + Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) Q_PROPERTY(Side side READ side NOTIFY sideChanged) //### flipAxis //### flipRotation public: - QFxFlipable(QFxItem *parent=0); - ~QFxFlipable(); + QmlGraphicsFlipable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlipable(); - QFxItem *front(); - void setFront(QFxItem *); + QmlGraphicsItem *front(); + void setFront(QmlGraphicsItem *); - QFxItem *back(); - void setBack(QFxItem *); + QmlGraphicsItem *back(); + void setBack(QmlGraphicsItem *); enum Side { Front, Back }; Side side() const; @@ -81,13 +81,13 @@ Q_SIGNALS: void sideChanged(); private: - Q_DISABLE_COPY(QFxFlipable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxFlipable) + Q_DISABLE_COPY(QmlGraphicsFlipable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxFlipable) +QML_DECLARE_TYPE(QmlGraphicsFlipable) QT_END_HEADER diff --git a/src/declarative/fx/qfxfocuspanel.cpp b/src/declarative/fx/qfxfocuspanel.cpp index 3bb0b25..3d246a0 100644 --- a/src/declarative/fx/qfxfocuspanel.cpp +++ b/src/declarative/fx/qfxfocuspanel.cpp @@ -45,7 +45,7 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QFxFocusPanel) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QmlGraphicsFocusPanel) /*! \qmlclass FocusPanel @@ -59,16 +59,16 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QFxFocusPanel) /*! \internal - \class QFxFocusPanel + \class QmlGraphicsFocusPanel */ -QFxFocusPanel::QFxFocusPanel(QFxItem *parent) : - QFxItem(parent) +QmlGraphicsFocusPanel::QmlGraphicsFocusPanel(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) { setFlag(ItemIsPanel); } -QFxFocusPanel::~QFxFocusPanel() +QmlGraphicsFocusPanel::~QmlGraphicsFocusPanel() { } @@ -78,12 +78,12 @@ QFxFocusPanel::~QFxFocusPanel() Sets whether the item is the active focus panel. */ -bool QFxFocusPanel::sceneEvent(QEvent *event) +bool QmlGraphicsFocusPanel::sceneEvent(QEvent *event) { if (event->type() == QEvent::WindowActivate || event->type() == QEvent::WindowDeactivate) emit activeChanged(); - return QFxItem::sceneEvent(event); + return QmlGraphicsItem::sceneEvent(event); } QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxfocuspanel.h b/src/declarative/fx/qfxfocuspanel.h index 1fea011..43eb96e 100644 --- a/src/declarative/fx/qfxfocuspanel.h +++ b/src/declarative/fx/qfxfocuspanel.h @@ -50,13 +50,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QFxFocusPanel : public QFxItem +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem { Q_OBJECT Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) public: - QFxFocusPanel(QFxItem *parent=0); - virtual ~QFxFocusPanel(); + QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusPanel(); Q_SIGNALS: void activeChanged(); @@ -65,12 +65,12 @@ protected: bool sceneEvent(QEvent *event); private: - Q_DISABLE_COPY(QFxFocusPanel) + Q_DISABLE_COPY(QmlGraphicsFocusPanel) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxFocusPanel) +QML_DECLARE_TYPE(QmlGraphicsFocusPanel) QT_END_HEADER diff --git a/src/declarative/fx/qfxfocusscope.cpp b/src/declarative/fx/qfxfocusscope.cpp index 9bcc17e..468d532 100644 --- a/src/declarative/fx/qfxfocusscope.cpp +++ b/src/declarative/fx/qfxfocusscope.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QFxFocusScope) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QmlGraphicsFocusScope) /*! \qmlclass FocusScope @@ -57,16 +57,16 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QFxFocusScope) /*! \internal - \class QFxFocusScope + \class QmlGraphicsFocusScope */ -QFxFocusScope::QFxFocusScope(QFxItem *parent) : - QFxItem(parent) +QmlGraphicsFocusScope::QmlGraphicsFocusScope(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) { setFlag(QGraphicsItem::ItemIsFocusScope); } -QFxFocusScope::~QFxFocusScope() +QmlGraphicsFocusScope::~QmlGraphicsFocusScope() { } QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxfocusscope.h b/src/declarative/fx/qfxfocusscope.h index e337fc6..126ccfc 100644 --- a/src/declarative/fx/qfxfocusscope.h +++ b/src/declarative/fx/qfxfocusscope.h @@ -51,17 +51,17 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) //### set component root as focusscope -class Q_DECLARATIVE_EXPORT QFxFocusScope : public QFxItem +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem { Q_OBJECT public: - QFxFocusScope(QFxItem *parent=0); - virtual ~QFxFocusScope(); + QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusScope(); }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxFocusScope) +QML_DECLARE_TYPE(QmlGraphicsFocusScope) QT_END_HEADER diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp b/src/declarative/fx/qfxgraphicsobjectcontainer.cpp index 5a61d12..0c9dc69 100644 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp +++ b/src/declarative/fx/qfxgraphicsobjectcontainer.cpp @@ -47,19 +47,19 @@ QT_BEGIN_NAMESPACE -class QFxGraphicsObjectContainerPrivate : public QFxItemPrivate +class QmlGraphicsGraphicsObjectContainerPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxGraphicsObjectContainer) + Q_DECLARE_PUBLIC(QmlGraphicsGraphicsObjectContainer) public: - QFxGraphicsObjectContainerPrivate() : QFxItemPrivate(), graphicsObject(0), syncedResize(false) + QmlGraphicsGraphicsObjectContainerPrivate() : QmlGraphicsItemPrivate(), graphicsObject(0), syncedResize(false) { } void _q_updateSize(); void setFiltering(bool on) { - Q_Q(QFxGraphicsObjectContainer); + Q_Q(QmlGraphicsGraphicsObjectContainer); if (graphicsObject && graphicsObject->isWidget()) { if (!on) { graphicsObject->removeEventFilter(q); @@ -80,31 +80,31 @@ public: /*! - \qmlclass GraphicsObjectContainer QFxGraphicsObjectContainer + \qmlclass GraphicsObjectContainer QmlGraphicsGraphicsObjectContainer \brief The GraphicsObjectContainer element allows you to add QGraphicsObjects into Fluid UI elements. */ /*! \internal - \class QFxGraphicsObjectContainer - \brief The QFxGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. + \class QmlGraphicsGraphicsObjectContainer + \brief The QmlGraphicsGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. */ QML_DEFINE_NOCREATE_TYPE(QGraphicsObject) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QFxGraphicsObjectContainer) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QmlGraphicsGraphicsObjectContainer) -QFxGraphicsObjectContainer::QFxGraphicsObjectContainer(QFxItem *parent) -: QFxItem(*new QFxGraphicsObjectContainerPrivate, parent) +QmlGraphicsGraphicsObjectContainer::QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent) +: QmlGraphicsItem(*new QmlGraphicsGraphicsObjectContainerPrivate, parent) { } -QFxGraphicsObjectContainer::~QFxGraphicsObjectContainer() +QmlGraphicsGraphicsObjectContainer::~QmlGraphicsGraphicsObjectContainer() { } -QGraphicsObject *QFxGraphicsObjectContainer::graphicsObject() const +QGraphicsObject *QmlGraphicsGraphicsObjectContainer::graphicsObject() const { - Q_D(const QFxGraphicsObjectContainer); + Q_D(const QmlGraphicsGraphicsObjectContainer); return d->graphicsObject; } @@ -112,9 +112,9 @@ QGraphicsObject *QFxGraphicsObjectContainer::graphicsObject() const \qmlproperty QGraphicsObject GraphicsObjectContainer::graphicsObject The QGraphicsObject associated with this element. */ -void QFxGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) +void QmlGraphicsGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) { - Q_D(QFxGraphicsObjectContainer); + Q_D(QmlGraphicsGraphicsObjectContainer); if (object == d->graphicsObject) return; @@ -147,20 +147,20 @@ void QFxGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) } } -QVariant QFxGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) +QVariant QmlGraphicsGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) { - Q_D(QFxGraphicsObjectContainer); + Q_D(QmlGraphicsGraphicsObjectContainer); if (change == ItemSceneHasChanged) { QGraphicsObject *o = d->graphicsObject; d->graphicsObject = 0; setGraphicsObject(o); } - return QFxItem::itemChange(change, value); + return QmlGraphicsItem::itemChange(change, value); } -bool QFxGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) +bool QmlGraphicsGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) { - Q_D(QFxGraphicsObjectContainer); + Q_D(QmlGraphicsGraphicsObjectContainer); if (watched == d->graphicsObject && e->type() == QEvent::GraphicsSceneResize) { if (d->graphicsObject && d->graphicsObject->isWidget() && d->syncedResize) { QSizeF newSize = static_cast(d->graphicsObject)->size(); @@ -168,7 +168,7 @@ bool QFxGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) setImplicitHeight(newSize.height()); } } - return QFxItem::eventFilter(watched, e); + return QmlGraphicsItem::eventFilter(watched, e); } /*! @@ -190,15 +190,15 @@ bool QFxGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) widget's size will be reflected in the container. \endlist */ -bool QFxGraphicsObjectContainer::synchronizedResizing() const +bool QmlGraphicsGraphicsObjectContainer::synchronizedResizing() const { - Q_D(const QFxGraphicsObjectContainer); + Q_D(const QmlGraphicsGraphicsObjectContainer); return d->syncedResize; } -void QFxGraphicsObjectContainer::setSynchronizedResizing(bool on) +void QmlGraphicsGraphicsObjectContainer::setSynchronizedResizing(bool on) { - Q_D(QFxGraphicsObjectContainer); + Q_D(QmlGraphicsGraphicsObjectContainer); if (on == d->syncedResize) return; @@ -206,7 +206,7 @@ void QFxGraphicsObjectContainer::setSynchronizedResizing(bool on) d->setFiltering(on); } -void QFxGraphicsObjectContainerPrivate::_q_updateSize() +void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() { if (!graphicsObject || !graphicsObject->isWidget() || !syncedResize) return; diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.h b/src/declarative/fx/qfxgraphicsobjectcontainer.h index 656a7f8..2ed5c1f 100644 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.h +++ b/src/declarative/fx/qfxgraphicsobjectcontainer.h @@ -51,9 +51,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QGraphicsObject; -class QFxGraphicsObjectContainerPrivate; +class QmlGraphicsGraphicsObjectContainerPrivate; -class Q_DECLARATIVE_EXPORT QFxGraphicsObjectContainer : public QFxItem +class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem { Q_OBJECT @@ -62,8 +62,8 @@ class Q_DECLARATIVE_EXPORT QFxGraphicsObjectContainer : public QFxItem Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) public: - QFxGraphicsObjectContainer(QFxItem *parent = 0); - ~QFxGraphicsObjectContainer(); + QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); + ~QmlGraphicsGraphicsObjectContainer(); QGraphicsObject *graphicsObject() const; void setGraphicsObject(QGraphicsObject *); @@ -77,13 +77,13 @@ protected: private: Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxGraphicsObjectContainer) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) }; QT_END_NAMESPACE QML_DECLARE_TYPE(QGraphicsObject) -QML_DECLARE_TYPE(QFxGraphicsObjectContainer) +QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) QT_END_HEADER diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp index c07258d..5ed82d7 100644 --- a/src/declarative/fx/qfxgridview.cpp +++ b/src/declarative/fx/qfxgridview.cpp @@ -49,18 +49,18 @@ QT_BEGIN_NAMESPACE -class QFxGridViewAttached : public QObject +class QmlGraphicsGridViewAttached : public QObject { Q_OBJECT public: - QFxGridViewAttached(QObject *parent) + QmlGraphicsGridViewAttached(QObject *parent) : QObject(parent), m_isCurrent(false), m_delayRemove(false) {} - ~QFxGridViewAttached() { + ~QmlGraphicsGridViewAttached() { attachedProperties.remove(parent()); } - Q_PROPERTY(QFxGridView *view READ view CONSTANT) - QFxGridView *view() { return m_view; } + Q_PROPERTY(QmlGraphicsGridView *view READ view CONSTANT) + QmlGraphicsGridView *view() { return m_view; } Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) bool isCurrentItem() const { return m_isCurrent; } @@ -80,10 +80,10 @@ public: } } - static QFxGridViewAttached *properties(QObject *obj) { - QFxGridViewAttached *rv = attachedProperties.value(obj); + static QmlGraphicsGridViewAttached *properties(QObject *obj) { + QmlGraphicsGridViewAttached *rv = attachedProperties.value(obj); if (!rv) { - rv = new QFxGridViewAttached(obj); + rv = new QmlGraphicsGridViewAttached(obj); attachedProperties.insert(obj, rv); } return rv; @@ -99,14 +99,14 @@ Q_SIGNALS: void remove(); public: - QFxGridView *m_view; + QmlGraphicsGridView *m_view; bool m_isCurrent; bool m_delayRemove; - static QHash attachedProperties; + static QHash attachedProperties; }; -QHash QFxGridViewAttached::attachedProperties; +QHash QmlGraphicsGridViewAttached::attachedProperties; //---------------------------------------------------------------------------- @@ -114,42 +114,42 @@ QHash QFxGridViewAttached::attachedProperties; class FxGridItem { public: - FxGridItem(QFxItem *i, QFxGridView *v) : item(i), view(v) { - attached = QFxGridViewAttached::properties(item); + FxGridItem(QmlGraphicsItem *i, QmlGraphicsGridView *v) : item(i), view(v) { + attached = QmlGraphicsGridViewAttached::properties(item); attached->m_view = view; } ~FxGridItem() {} - qreal rowPos() const { return (view->flow() == QFxGridView::LeftToRight ? item->y() : item->x()); } - qreal colPos() const { return (view->flow() == QFxGridView::LeftToRight ? item->x() : item->y()); } + qreal rowPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() : item->x()); } + qreal colPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->x() : item->y()); } qreal endRowPos() const { - return view->flow() == QFxGridView::LeftToRight + return view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() + view->cellHeight() - 1 : item->x() + view->cellWidth() - 1; } void setPosition(qreal col, qreal row) { - if (view->flow() == QFxGridView::LeftToRight) { + if (view->flow() == QmlGraphicsGridView::LeftToRight) { item->setPos(QPointF(col, row)); } else { item->setPos(QPointF(row, col)); } } - QFxItem *item; - QFxGridView *view; - QFxGridViewAttached *attached; + QmlGraphicsItem *item; + QmlGraphicsGridView *view; + QmlGraphicsGridViewAttached *attached; int index; }; //---------------------------------------------------------------------------- -class QFxGridViewPrivate : public QFxFlickablePrivate +class QmlGraphicsGridViewPrivate : public QmlGraphicsFlickablePrivate { - Q_DECLARE_PUBLIC(QFxGridView) + Q_DECLARE_PUBLIC(QmlGraphicsGridView) public: - QFxGridViewPrivate() - : model(0), currentItem(0), flow(QFxGridView::LeftToRight) + QmlGraphicsGridViewPrivate() + : model(0), currentItem(0), flow(QmlGraphicsGridView::LeftToRight) , visiblePos(0), visibleIndex(0) , currentIndex(-1) , cellWidth(100), cellHeight(100), columns(1), requestedIndex(-1) , highlightComponent(0), highlight(0), trackedItem(0) @@ -184,19 +184,19 @@ public: } qreal position() const { - Q_Q(const QFxGridView); - return flow == QFxGridView::LeftToRight ? q->viewportY() : q->viewportX(); + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->viewportY() : q->viewportX(); } void setPosition(qreal pos) { - Q_Q(QFxGridView); - if (flow == QFxGridView::LeftToRight) + Q_Q(QmlGraphicsGridView); + if (flow == QmlGraphicsGridView::LeftToRight) q->setViewportY(pos); else q->setViewportX(pos); } int size() const { - Q_Q(const QFxGridView); - return flow == QFxGridView::LeftToRight ? q->height() : q->width(); + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->height() : q->width(); } qreal startPosition() const { qreal pos = 0; @@ -217,10 +217,10 @@ public: } int rowSize() const { - return flow == QFxGridView::LeftToRight ? cellHeight : cellWidth; + return flow == QmlGraphicsGridView::LeftToRight ? cellHeight : cellWidth; } int colSize() const { - return flow == QFxGridView::LeftToRight ? cellWidth : cellHeight; + return flow == QmlGraphicsGridView::LeftToRight ? cellWidth : cellHeight; } qreal colPosAt(int modelIndex) const { @@ -293,12 +293,12 @@ public: } } - QFxVisualModel *model; + QmlGraphicsVisualModel *model; QVariant modelVariant; QList visibleItems; - QHash unrequestedItems; + QHash unrequestedItems; FxGridItem *currentItem; - QFxGridView::Flow flow; + QmlGraphicsGridView::Flow flow; int visiblePos; int visibleIndex; int currentIndex; @@ -321,15 +321,15 @@ public: int fixCurrentVisibility : 1; }; -void QFxGridViewPrivate::init() +void QmlGraphicsGridViewPrivate::init() { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); q->setFlag(QGraphicsItem::ItemIsFocusScope); QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(sizeChange())); QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(sizeChange())); } -void QFxGridViewPrivate::clear() +void QmlGraphicsGridViewPrivate::clear() { for (int i = 0; i < visibleItems.count(); ++i) releaseItem(visibleItems.at(i)); @@ -343,13 +343,13 @@ void QFxGridViewPrivate::clear() trackedItem = 0; } -FxGridItem *QFxGridViewPrivate::createItem(int modelIndex) +FxGridItem *QmlGraphicsGridViewPrivate::createItem(int modelIndex) { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); // create object requestedIndex = modelIndex; FxGridItem *listItem = 0; - if (QFxItem *item = model->item(modelIndex, false)) { + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { listItem = new FxGridItem(item, q); listItem->index = modelIndex; // complete @@ -362,9 +362,9 @@ FxGridItem *QFxGridViewPrivate::createItem(int modelIndex) } -void QFxGridViewPrivate::releaseItem(FxGridItem *item) +void QmlGraphicsGridViewPrivate::releaseItem(FxGridItem *item) { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); if (!item) return; if (trackedItem == item) { @@ -379,9 +379,9 @@ void QFxGridViewPrivate::releaseItem(FxGridItem *item) delete item; } -void QFxGridViewPrivate::refill(qreal from, qreal to) +void QmlGraphicsGridViewPrivate::refill(qreal from, qreal to) { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); if (!isValid() || !q->isComponentComplete()) return; @@ -463,28 +463,28 @@ void QFxGridViewPrivate::refill(qreal from, qreal to) changed = true; } if (changed) { - if (flow == QFxGridView::LeftToRight) + if (flow == QmlGraphicsGridView::LeftToRight) q->setViewportHeight(endPosition() - startPosition()); else q->setViewportWidth(endPosition() - startPosition()); } } -void QFxGridViewPrivate::updateGrid() +void QmlGraphicsGridViewPrivate::updateGrid() { - Q_Q(QFxGridView); - columns = (int)qMax((flow == QFxGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); + Q_Q(QmlGraphicsGridView); + columns = (int)qMax((flow == QmlGraphicsGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); if (isValid()) { - if (flow == QFxGridView::LeftToRight) + if (flow == QmlGraphicsGridView::LeftToRight) q->setViewportHeight(endPosition() - startPosition()); else q->setViewportWidth(endPosition() - startPosition()); } } -void QFxGridViewPrivate::layout(bool removed) +void QmlGraphicsGridViewPrivate::layout(bool removed) { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); if (visibleItems.count()) { qreal rowPos = visibleItems.first()->rowPos(); qreal colPos = visibleItems.first()->colPos(); @@ -510,7 +510,7 @@ void QFxGridViewPrivate::layout(bool removed) q->refill(); q->trackedPositionChanged(); updateHighlight(); - if (flow == QFxGridView::LeftToRight) { + if (flow == QmlGraphicsGridView::LeftToRight) { q->setViewportHeight(endPosition() - startPosition()); fixupY(); } else { @@ -520,19 +520,19 @@ void QFxGridViewPrivate::layout(bool removed) updateUnrequestedPositions(); } -void QFxGridViewPrivate::updateUnrequestedIndexes() +void QmlGraphicsGridViewPrivate::updateUnrequestedIndexes() { - Q_Q(QFxGridView); - QHash::iterator it; + Q_Q(QmlGraphicsGridView); + QHash::iterator it; for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) *it = model->indexOf(it.key(), q); } -void QFxGridViewPrivate::updateUnrequestedPositions() +void QmlGraphicsGridViewPrivate::updateUnrequestedPositions() { - QHash::const_iterator it; + QHash::const_iterator it; for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { - if (flow == QFxGridView::LeftToRight) { + if (flow == QmlGraphicsGridView::LeftToRight) { it.key()->setPos(QPointF(colPosAt(*it), rowPosAt(*it))); } else { it.key()->setPos(QPointF(rowPosAt(*it), colPosAt(*it))); @@ -540,9 +540,9 @@ void QFxGridViewPrivate::updateUnrequestedPositions() } } -void QFxGridViewPrivate::updateTrackedItem() +void QmlGraphicsGridViewPrivate::updateTrackedItem() { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); FxGridItem *item = currentItem; if (highlight) item = highlight; @@ -563,9 +563,9 @@ void QFxGridViewPrivate::updateTrackedItem() q->trackedPositionChanged(); } -void QFxGridViewPrivate::createHighlight() +void QmlGraphicsGridViewPrivate::createHighlight() { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); if (highlight) { if (trackedItem == highlight) trackedItem = 0; @@ -586,7 +586,7 @@ void QFxGridViewPrivate::createHighlight() QObject *nobj = highlightComponent->create(highlightContext); if (nobj) { highlightContext->setParent(nobj); - QFxItem *item = qobject_cast(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); if (item) { item->setParent(q->viewport()); highlight = new FxGridItem(item, q); @@ -605,7 +605,7 @@ void QFxGridViewPrivate::createHighlight() } } -void QFxGridViewPrivate::updateHighlight() +void QmlGraphicsGridViewPrivate::updateHighlight() { if ((!currentItem && highlight) || (currentItem && !highlight)) createHighlight(); @@ -619,9 +619,9 @@ void QFxGridViewPrivate::updateHighlight() } } -void QFxGridViewPrivate::updateCurrent(int modelIndex) +void QmlGraphicsGridViewPrivate::updateCurrent(int modelIndex) { - Q_Q(QFxGridView); + Q_Q(QmlGraphicsGridView); if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { if (currentItem) { currentItem->attached->setIsCurrentItem(false); @@ -680,16 +680,16 @@ void QFxGridViewPrivate::updateCurrent(int modelIndex) In this case ListModel is a handy way for us to test our UI. In practice the model would be implemented in C++, or perhaps via a SQL data source. */ -QFxGridView::QFxGridView(QFxItem *parent) - : QFxFlickable(*(new QFxGridViewPrivate), parent) +QmlGraphicsGridView::QmlGraphicsGridView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsGridViewPrivate), parent) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->init(); } -QFxGridView::~QFxGridView() +QmlGraphicsGridView::~QmlGraphicsGridView() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->clear(); if (d->ownModel) delete d->model; @@ -758,27 +758,27 @@ QFxGridView::~QFxGridView() \sa {qmlmodels}{Data Models} */ -QVariant QFxGridView::model() const +QVariant QmlGraphicsGridView::model() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->modelVariant; } -void QFxGridView::setModel(const QVariant &model) +void QmlGraphicsGridView::setModel(const QVariant &model) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (d->model) { disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); } d->clear(); d->modelVariant = model; QObject *object = qvariant_cast(model); - QFxVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -786,10 +786,10 @@ void QFxGridView::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { @@ -800,8 +800,8 @@ void QFxGridView::setModel(const QVariant &model) connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - connect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); refill(); emit countChanged(); } @@ -815,25 +815,25 @@ void QFxGridView::setModel(const QVariant &model) Here is an example delegate: \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 */ -QmlComponent *QFxGridView::delegate() const +QmlComponent *QmlGraphicsGridView::delegate() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); if (d->model) { - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } return 0; } -void QFxGridView::setDelegate(QmlComponent *delegate) +void QmlGraphicsGridView::setDelegate(QmlComponent *delegate) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(delegate); d->updateCurrent(d->currentIndex); refill(); @@ -848,15 +848,15 @@ void QFxGridView::setDelegate(QmlComponent *delegate) \c currentItem is the current item. Note that the position of the current item may only be approximate until it becomes visible in the view. */ -int QFxGridView::currentIndex() const +int QmlGraphicsGridView::currentIndex() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->currentIndex; } -void QFxGridView::setCurrentIndex(int index) +void QmlGraphicsGridView::setCurrentIndex(int index) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { cancelFlick(); d->updateCurrent(index); @@ -865,9 +865,9 @@ void QFxGridView::setCurrentIndex(int index) } } -QFxItem *QFxGridView::currentItem() +QmlGraphicsItem *QmlGraphicsGridView::currentItem() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (!d->currentItem) return 0; return d->currentItem->item; @@ -877,9 +877,9 @@ QFxItem *QFxGridView::currentItem() \qmlproperty int GridView::count This property holds the number of items in the view. */ -int QFxGridView::count() const +int QmlGraphicsGridView::count() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); if (d->model) return d->model->count(); return 0; @@ -898,15 +898,15 @@ int QFxGridView::count() const \sa highlightFollowsCurrentItem */ -QmlComponent *QFxGridView::highlight() const +QmlComponent *QmlGraphicsGridView::highlight() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->highlightComponent; } -void QFxGridView::setHighlight(QmlComponent *highlight) +void QmlGraphicsGridView::setHighlight(QmlComponent *highlight) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); delete d->highlightComponent; d->highlightComponent = highlight; d->updateCurrent(d->currentIndex); @@ -932,15 +932,15 @@ void QFxGridView::setHighlight(QmlComponent *highlight) } \endcode */ -bool QFxGridView::highlightFollowsCurrentItem() const +bool QmlGraphicsGridView::highlightFollowsCurrentItem() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->autoHighlight; } -void QFxGridView::setHighlightFollowsCurrentItem(bool autoHighlight) +void QmlGraphicsGridView::setHighlightFollowsCurrentItem(bool autoHighlight) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->autoHighlight = autoHighlight; if (d->highlightXAnimator) { d->highlightXAnimator->setEnabled(d->autoHighlight); @@ -958,15 +958,15 @@ void QFxGridView::setHighlightFollowsCurrentItem(bool autoHighlight) If \a flow is \c LeftToRight, the view will scroll vertically. If \a flow is \c TopToBottom, the view will scroll horizontally. */ -QFxGridView::Flow QFxGridView::flow() const +QmlGraphicsGridView::Flow QmlGraphicsGridView::flow() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->flow; } -void QFxGridView::setFlow(Flow flow) +void QmlGraphicsGridView::setFlow(Flow flow) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (d->flow != flow) { d->flow = flow; if (d->flow == LeftToRight) @@ -987,15 +987,15 @@ void QFxGridView::setFlow(Flow flow) If this property is true then key presses to move off of one end of the grid will cause the selection to jump to the other side. */ -bool QFxGridView::isWrapEnabled() const +bool QmlGraphicsGridView::isWrapEnabled() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->wrap; } -void QFxGridView::setWrapEnabled(bool wrap) +void QmlGraphicsGridView::setWrapEnabled(bool wrap) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->wrap = wrap; } @@ -1007,15 +1007,15 @@ void QFxGridView::setWrapEnabled(bool wrap) and below the bottom of the view to cache. Setting this value can make scrolling the view smoother at the expense of additional memory usage. */ -int QFxGridView::cacheBuffer() const +int QmlGraphicsGridView::cacheBuffer() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->buffer; } -void QFxGridView::setCacheBuffer(int buffer) +void QmlGraphicsGridView::setCacheBuffer(int buffer) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (d->buffer != buffer) { d->buffer = buffer; if (isComponentComplete()) @@ -1031,15 +1031,15 @@ void QFxGridView::setCacheBuffer(int buffer) The default sell size is 100x100. */ -int QFxGridView::cellWidth() const +int QmlGraphicsGridView::cellWidth() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->cellWidth; } -void QFxGridView::setCellWidth(int cellWidth) +void QmlGraphicsGridView::setCellWidth(int cellWidth) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (cellWidth != d->cellWidth && cellWidth > 0) { d->cellWidth = qMax(1, cellWidth); d->updateGrid(); @@ -1048,15 +1048,15 @@ void QFxGridView::setCellWidth(int cellWidth) } } -int QFxGridView::cellHeight() const +int QmlGraphicsGridView::cellHeight() const { - Q_D(const QFxGridView); + Q_D(const QmlGraphicsGridView); return d->cellHeight; } -void QFxGridView::setCellHeight(int cellHeight) +void QmlGraphicsGridView::setCellHeight(int cellHeight) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (cellHeight != d->cellHeight && cellHeight > 0) { d->cellHeight = qMax(1, cellHeight); d->updateGrid(); @@ -1065,62 +1065,62 @@ void QFxGridView::setCellHeight(int cellHeight) } } -void QFxGridView::sizeChange() +void QmlGraphicsGridView::sizeChange() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (isComponentComplete()) { d->updateGrid(); d->layout(); } } -void QFxGridView::viewportMoved() +void QmlGraphicsGridView::viewportMoved() { - QFxFlickable::viewportMoved(); + QmlGraphicsFlickable::viewportMoved(); refill(); } -qreal QFxGridView::minYExtent() const +qreal QmlGraphicsGridView::minYExtent() const { - Q_D(const QFxGridView); - if (d->flow == QFxGridView::TopToBottom) - return QFxFlickable::minYExtent(); + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::minYExtent(); return -d->startPosition(); } -qreal QFxGridView::maxYExtent() const +qreal QmlGraphicsGridView::maxYExtent() const { - Q_D(const QFxGridView); - if (d->flow == QFxGridView::TopToBottom) - return QFxFlickable::maxYExtent(); + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::maxYExtent(); return -(d->endPosition() - height()); } -qreal QFxGridView::minXExtent() const +qreal QmlGraphicsGridView::minXExtent() const { - Q_D(const QFxGridView); - if (d->flow == QFxGridView::LeftToRight) - return QFxFlickable::minXExtent(); + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::minXExtent(); return -d->startPosition(); } -qreal QFxGridView::maxXExtent() const +qreal QmlGraphicsGridView::maxXExtent() const { - Q_D(const QFxGridView); - if (d->flow == QFxGridView::LeftToRight) - return QFxFlickable::maxXExtent(); + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::maxXExtent(); return -(d->endPosition() - width()); } -void QFxGridView::keyPressEvent(QKeyEvent *event) +void QmlGraphicsGridView::keyPressEvent(QKeyEvent *event) { - Q_D(QFxGridView); - QFxFlickable::keyPressEvent(event); + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::keyPressEvent(event); if (event->isAccepted()) return; if (d->model && d->model->count() && d->interactive) { - d->moveReason = QFxGridViewPrivate::Key; + d->moveReason = QmlGraphicsGridViewPrivate::Key; int oldCurrent = currentIndex(); switch (event->key()) { case Qt::Key_Up: @@ -1143,7 +1143,7 @@ void QFxGridView::keyPressEvent(QKeyEvent *event) return; } } - d->moveReason = QFxGridViewPrivate::Other; + d->moveReason = QmlGraphicsGridViewPrivate::Other; event->ignore(); } @@ -1154,10 +1154,10 @@ void QFxGridView::keyPressEvent(QKeyEvent *event) The current index will wrap if keyNavigationWraps is true and it is currently at the end. */ -void QFxGridView::moveCurrentIndexUp() +void QmlGraphicsGridView::moveCurrentIndexUp() { - Q_D(QFxGridView); - if (d->flow == QFxGridView::LeftToRight) { + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { if (currentIndex() >= d->columns || d->wrap) { int index = currentIndex() - d->columns; setCurrentIndex(index >= 0 ? index : d->model->count()-1); @@ -1177,10 +1177,10 @@ void QFxGridView::moveCurrentIndexUp() The current index will wrap if keyNavigationWraps is true and it is currently at the end. */ -void QFxGridView::moveCurrentIndexDown() +void QmlGraphicsGridView::moveCurrentIndexDown() { - Q_D(QFxGridView); - if (d->flow == QFxGridView::LeftToRight) { + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { if (currentIndex() < d->model->count() - d->columns || d->wrap) { int index = currentIndex()+d->columns; setCurrentIndex(index < d->model->count() ? index : 0); @@ -1200,10 +1200,10 @@ void QFxGridView::moveCurrentIndexDown() The current index will wrap if keyNavigationWraps is true and it is currently at the end. */ -void QFxGridView::moveCurrentIndexLeft() +void QmlGraphicsGridView::moveCurrentIndexLeft() { - Q_D(QFxGridView); - if (d->flow == QFxGridView::LeftToRight) { + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { if (currentIndex() > 0 || d->wrap) { int index = currentIndex() - 1; setCurrentIndex(index >= 0 ? index : d->model->count()-1); @@ -1223,10 +1223,10 @@ void QFxGridView::moveCurrentIndexLeft() The current index will wrap if keyNavigationWraps is true and it is currently at the end. */ -void QFxGridView::moveCurrentIndexRight() +void QmlGraphicsGridView::moveCurrentIndexRight() { - Q_D(QFxGridView); - if (d->flow == QFxGridView::LeftToRight) { + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { if (currentIndex() < d->model->count() - 1 || d->wrap) { int index = currentIndex() + 1; setCurrentIndex(index < d->model->count() ? index : 0); @@ -1239,22 +1239,22 @@ void QFxGridView::moveCurrentIndexRight() } } -void QFxGridView::componentComplete() +void QmlGraphicsGridView::componentComplete() { - Q_D(QFxGridView); - QFxFlickable::componentComplete(); + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::componentComplete(); d->updateGrid(); if (d->currentIndex < 0) d->updateCurrent(0); refill(); } -void QFxGridView::trackedPositionChanged() +void QmlGraphicsGridView::trackedPositionChanged() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (!d->trackedItem) return; - if (!isFlicking() && !d->pressed && d->moveReason == QFxGridViewPrivate::Key) { + if (!isFlicking() && !d->pressed && d->moveReason == QmlGraphicsGridViewPrivate::Key) { if (d->trackedItem->rowPos() < d->position()) { d->setPosition(d->trackedItem->rowPos()); } else if (d->trackedItem->endRowPos() > d->position() + d->size()) { @@ -1266,9 +1266,9 @@ void QFxGridView::trackedPositionChanged() } } -void QFxGridView::itemsInserted(int modelIndex, int count) +void QmlGraphicsGridView::itemsInserted(int modelIndex, int count) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); if (!d->visibleItems.count() || d->model->count() <= 1) { refill(); d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); @@ -1377,9 +1377,9 @@ void QFxGridView::itemsInserted(int modelIndex, int count) emit countChanged(); } -void QFxGridView::itemsRemoved(int modelIndex, int count) +void QmlGraphicsGridView::itemsRemoved(int modelIndex, int count) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; int index = d->mapFromModel(modelIndex); if (index == -1) { @@ -1465,9 +1465,9 @@ void QFxGridView::itemsRemoved(int modelIndex, int count) emit countChanged(); } -void QFxGridView::destroyRemoved() +void QmlGraphicsGridView::destroyRemoved() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); for (QList::Iterator it = d->visibleItems.begin(); it != d->visibleItems.end();) { FxGridItem *listItem = *it; @@ -1483,9 +1483,9 @@ void QFxGridView::destroyRemoved() d->layout(); } -void QFxGridView::itemsMoved(int from, int to, int count) +void QmlGraphicsGridView::itemsMoved(int from, int to, int count) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); QHash moved; QList::Iterator it = d->visibleItems.begin(); @@ -1544,14 +1544,14 @@ void QFxGridView::itemsMoved(int from, int to, int count) d->layout(); } -void QFxGridView::createdItem(int index, QFxItem *item) +void QmlGraphicsGridView::createdItem(int index, QmlGraphicsItem *item) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); item->setParentItem(this); if (d->requestedIndex != index) { item->setParentItem(this); d->unrequestedItems.insert(item, index); - if (d->flow == QFxGridView::LeftToRight) { + if (d->flow == QmlGraphicsGridView::LeftToRight) { item->setPos(QPointF(d->colPosAt(index), d->rowPosAt(index))); } else { item->setPos(QPointF(d->rowPosAt(index), d->colPosAt(index))); @@ -1559,26 +1559,26 @@ void QFxGridView::createdItem(int index, QFxItem *item) } } -void QFxGridView::destroyingItem(QFxItem *item) +void QmlGraphicsGridView::destroyingItem(QmlGraphicsItem *item) { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->unrequestedItems.remove(item); } -void QFxGridView::refill() +void QmlGraphicsGridView::refill() { - Q_D(QFxGridView); + Q_D(QmlGraphicsGridView); d->refill(d->position(), d->position()+d->size()-1); } -QFxGridViewAttached *QFxGridView::qmlAttachedProperties(QObject *obj) +QmlGraphicsGridViewAttached *QmlGraphicsGridView::qmlAttachedProperties(QObject *obj) { - return QFxGridViewAttached::properties(obj); + return QmlGraphicsGridViewAttached::properties(obj); } -QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QFxGridView) +QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView) QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxgridview.h b/src/declarative/fx/qfxgridview.h index 1c0a700..fd0a459 100644 --- a/src/declarative/fx/qfxgridview.h +++ b/src/declarative/fx/qfxgridview.h @@ -49,18 +49,18 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxVisualModel; -class QFxGridViewAttached; -class QFxGridViewPrivate; -class Q_DECLARATIVE_EXPORT QFxGridView : public QFxFlickable +class QmlGraphicsVisualModel; +class QmlGraphicsGridViewAttached; +class QmlGraphicsGridViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable { Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxGridView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) Q_PROPERTY(QVariant model READ model WRITE setModel) Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QFxItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) @@ -72,8 +72,8 @@ class Q_DECLARATIVE_EXPORT QFxGridView : public QFxFlickable Q_CLASSINFO("DefaultProperty", "data") public: - QFxGridView(QFxItem *parent=0); - ~QFxGridView(); + QmlGraphicsGridView(QmlGraphicsItem *parent=0); + ~QmlGraphicsGridView(); QVariant model() const; void setModel(const QVariant &); @@ -84,7 +84,7 @@ public: int currentIndex() const; void setCurrentIndex(int idx); - QFxItem *currentItem(); + QmlGraphicsItem *currentItem(); int count() const; QmlComponent *highlight() const; @@ -110,7 +110,7 @@ public: int cellHeight() const; void setCellHeight(int); - static QFxGridViewAttached *qmlAttachedProperties(QObject *); + static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); public Q_SLOTS: void moveCurrentIndexUp(); @@ -139,8 +139,8 @@ private Q_SLOTS: void itemsRemoved(int index, int count); void itemsMoved(int from, int to, int count); void destroyRemoved(); - void createdItem(int index, QFxItem *item); - void destroyingItem(QFxItem *item); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); void sizeChange(); private: @@ -149,8 +149,8 @@ private: QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxGridView) -QML_DECLARE_TYPEINFO(QFxGridView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsGridView) +QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) QT_END_HEADER diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp index 45a481c..34b3399 100644 --- a/src/declarative/fx/qfximage.cpp +++ b/src/declarative/fx/qfximage.cpp @@ -48,10 +48,10 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QFxImage) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QmlGraphicsImage) /*! - \qmlclass Image QFxImage + \qmlclass Image QmlGraphicsImage \brief The Image element allows you to add bitmaps to a scene. \inherits Item @@ -112,8 +112,8 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QFxImage) /*! \internal - \class QFxImage Image - \brief The QFxImage class provides an image item that you can add to a QmlView. + \class QmlGraphicsImage Image + \brief The QmlGraphicsImage class provides an image item that you can add to a QmlView. \ingroup group_coreitems @@ -122,34 +122,34 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QFxImage) Image { source: "pics/star.png" } \endqml - A QFxImage object can be instantiated in Qml using the tag \l Image. + A QmlGraphicsImage object can be instantiated in Qml using the tag \l Image. */ -QFxImage::QFxImage(QFxItem *parent) - : QFxImageBase(*(new QFxImagePrivate), parent) +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsImagePrivate), parent) { setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxImage::QFxImage(QFxImagePrivate &dd, QFxItem *parent) - : QFxImageBase(dd, parent) +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) { setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxImage::~QFxImage() +QmlGraphicsImage::~QmlGraphicsImage() { } -QPixmap QFxImage::pixmap() const +QPixmap QmlGraphicsImage::pixmap() const { - Q_D(const QFxImage); + Q_D(const QmlGraphicsImage); return d->pix; } -void QFxImage::setPixmap(const QPixmap &pix) +void QmlGraphicsImage::setPixmap(const QPixmap &pix) { - Q_D(QFxImage); + Q_D(QmlGraphicsImage); if (!d->url.isEmpty()) return; d->pix = pix; @@ -179,15 +179,15 @@ void QFxImage::setPixmap(const QPixmap &pix) \sa examples/declarative/fillmode \sa examples/declarative/aspectratio */ -QFxImage::FillMode QFxImage::fillMode() const +QmlGraphicsImage::FillMode QmlGraphicsImage::fillMode() const { - Q_D(const QFxImage); + Q_D(const QmlGraphicsImage); return d->fillMode; } -void QFxImage::setFillMode(FillMode mode) +void QmlGraphicsImage::setFillMode(FillMode mode) { - Q_D(QFxImage); + Q_D(QmlGraphicsImage); if (d->fillMode == mode) return; d->fillMode = mode; @@ -239,9 +239,9 @@ void QFxImage::setFillMode(FillMode mode) The URL may be absolute, or relative to the URL of the component. */ -void QFxImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { - Q_D(QFxImage); + Q_D(QmlGraphicsImage); if (d->pix.isNull()) return; diff --git a/src/declarative/fx/qfximage.h b/src/declarative/fx/qfximage.h index fc8079c..1f52b17 100644 --- a/src/declarative/fx/qfximage.h +++ b/src/declarative/fx/qfximage.h @@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxImagePrivate; -class Q_DECLARATIVE_EXPORT QFxImage : public QFxImageBase +class QmlGraphicsImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase { Q_OBJECT Q_ENUMS(FillMode) @@ -60,8 +60,8 @@ class Q_DECLARATIVE_EXPORT QFxImage : public QFxImageBase Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) public: - QFxImage(QFxItem *parent=0); - ~QFxImage(); + QmlGraphicsImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsImage(); enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; FillMode fillMode() const; @@ -76,15 +76,15 @@ Q_SIGNALS: void fillModeChanged(); protected: - QFxImage(QFxImagePrivate &dd, QFxItem *parent); + QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); private: - Q_DISABLE_COPY(QFxImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxImage) + Q_DISABLE_COPY(QmlGraphicsImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxImage) +QML_DECLARE_TYPE(QmlGraphicsImage) QT_END_HEADER #endif // QFXIMAGE_H diff --git a/src/declarative/fx/qfximage_p.h b/src/declarative/fx/qfximage_p.h index 8bdcc14..30f7665 100644 --- a/src/declarative/fx/qfximage_p.h +++ b/src/declarative/fx/qfximage_p.h @@ -58,17 +58,17 @@ QT_BEGIN_NAMESPACE -class QFxImagePrivate : public QFxImageBasePrivate +class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate { - Q_DECLARE_PUBLIC(QFxImage) + Q_DECLARE_PUBLIC(QmlGraphicsImage) public: - QFxImagePrivate() - : fillMode(QFxImage::Stretch) + QmlGraphicsImagePrivate() + : fillMode(QmlGraphicsImage::Stretch) { } - QFxImage::FillMode fillMode; + QmlGraphicsImage::FillMode fillMode; }; diff --git a/src/declarative/fx/qfximagebase.cpp b/src/declarative/fx/qfximagebase.cpp index a68c1f9..5afb79a 100644 --- a/src/declarative/fx/qfximagebase.cpp +++ b/src/declarative/fx/qfximagebase.cpp @@ -49,53 +49,53 @@ QT_BEGIN_NAMESPACE -QFxImageBase::QFxImageBase(QFxItem *parent) - : QFxItem(*(new QFxImageBasePrivate), parent) +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsImageBasePrivate), parent) { setFlag(QGraphicsItem::ItemHasNoContents, true); } -QFxImageBase::QFxImageBase(QFxImageBasePrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { setFlag(QGraphicsItem::ItemHasNoContents, true); } -QFxImageBase::~QFxImageBase() +QmlGraphicsImageBase::~QmlGraphicsImageBase() { - Q_D(QFxImageBase); + Q_D(QmlGraphicsImageBase); if (d->pendingPixmapCache) - QFxPixmapCache::cancelGet(d->url, this); + QmlGraphicsPixmapCache::cancelGet(d->url, this); } -QFxImageBase::Status QFxImageBase::status() const +QmlGraphicsImageBase::Status QmlGraphicsImageBase::status() const { - Q_D(const QFxImageBase); + Q_D(const QmlGraphicsImageBase); return d->status; } -qreal QFxImageBase::progress() const +qreal QmlGraphicsImageBase::progress() const { - Q_D(const QFxImageBase); + Q_D(const QmlGraphicsImageBase); return d->progress; } -QUrl QFxImageBase::source() const +QUrl QmlGraphicsImageBase::source() const { - Q_D(const QFxImageBase); + Q_D(const QmlGraphicsImageBase); return d->url; } -void QFxImageBase::setSource(const QUrl &url) +void QmlGraphicsImageBase::setSource(const QUrl &url) { - Q_D(QFxImageBase); + Q_D(QmlGraphicsImageBase); //equality is fairly expensive, so we bypass for simple, common case if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) return; if (d->pendingPixmapCache) { - QFxPixmapCache::cancelGet(d->url, this); + QmlGraphicsPixmapCache::cancelGet(d->url, this); d->pendingPixmapCache = false; } @@ -117,7 +117,7 @@ void QFxImageBase::setSource(const QUrl &url) update(); } else { d->status = Loading; - QNetworkReply *reply = QFxPixmapCache::get(qmlEngine(this), d->url, &d->pix); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); if (reply) { d->pendingPixmapCache = true; connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); @@ -141,13 +141,13 @@ void QFxImageBase::setSource(const QUrl &url) emit statusChanged(d->status); } -void QFxImageBase::requestFinished() +void QmlGraphicsImageBase::requestFinished() { - Q_D(QFxImageBase); + Q_D(QmlGraphicsImageBase); d->pendingPixmapCache = false; - if (!QFxPixmapCache::find(d->url, &d->pix)) + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) d->status = Error; setImplicitWidth(d->pix.width()); setImplicitHeight(d->pix.height()); @@ -161,9 +161,9 @@ void QFxImageBase::requestFinished() update(); } -void QFxImageBase::requestProgress(qint64 received, qint64 total) +void QmlGraphicsImageBase::requestProgress(qint64 received, qint64 total) { - Q_D(QFxImageBase); + Q_D(QmlGraphicsImageBase); if (d->status == Loading && total > 0) { d->progress = qreal(received)/total; emit progressChanged(d->progress); diff --git a/src/declarative/fx/qfximagebase.h b/src/declarative/fx/qfximagebase.h index 226d3c3..b43e9a2 100644 --- a/src/declarative/fx/qfximagebase.h +++ b/src/declarative/fx/qfximagebase.h @@ -47,8 +47,8 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QFxImageBasePrivate; -class QFxImageBase : public QFxItem +class QmlGraphicsImageBasePrivate; +class QmlGraphicsImageBase : public QmlGraphicsItem { Q_OBJECT Q_ENUMS(Status) @@ -58,8 +58,8 @@ class QFxImageBase : public QFxItem Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) public: - QFxImageBase(QFxItem *parent = 0); - ~QFxImageBase(); + QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); + ~QmlGraphicsImageBase(); enum Status { Null, Ready, Loading, Error }; Status status() const; qreal progress() const; @@ -73,15 +73,15 @@ Q_SIGNALS: void progressChanged(qreal progress); protected: - QFxImageBase(QFxImageBasePrivate &dd, QFxItem *parent); + QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); private Q_SLOTS: virtual void requestFinished(); void requestProgress(qint64,qint64); private: - Q_DISABLE_COPY(QFxImageBase) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxImageBase) + Q_DISABLE_COPY(QmlGraphicsImageBase) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfximagebase_p.h b/src/declarative/fx/qfximagebase_p.h index a6fcc80..9025c51 100644 --- a/src/declarative/fx/qfximagebase_p.h +++ b/src/declarative/fx/qfximagebase_p.h @@ -59,20 +59,20 @@ QT_BEGIN_NAMESPACE class QNetworkReply; -class QFxImageBasePrivate : public QFxItemPrivate +class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxImageBase) + Q_DECLARE_PUBLIC(QmlGraphicsImageBase) public: - QFxImageBasePrivate() - : status(QFxImageBase::Null), + QmlGraphicsImageBasePrivate() + : status(QmlGraphicsImageBase::Null), progress(0.0), pendingPixmapCache(false) { } QPixmap pix; - QFxImageBase::Status status; + QmlGraphicsImageBase::Status status; QUrl url; qreal progress; bool pendingPixmapCache; diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index 72833e1..7a3cded 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -70,7 +70,7 @@ QT_BEGIN_NAMESPACE #define FLT_MAX 1E+37 #endif -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QFxItem) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QmlGraphicsItem) QML_DEFINE_NOCREATE_TYPE(QGraphicsTransform); QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Scale,QGraphicsScale) @@ -224,13 +224,13 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) /*! \internal - \class QFxContents + \class QmlGraphicsContents \ingroup group_utility - \brief The QFxContents class gives access to the height and width of an item's contents. + \brief The QmlGraphicsContents class gives access to the height and width of an item's contents. */ -QFxContents::QFxContents() : m_x(0), m_y(0), m_width(0), m_height(0) +QmlGraphicsContents::QmlGraphicsContents() : m_x(0), m_y(0), m_width(0), m_height(0) { } @@ -245,13 +245,13 @@ QFxContents::QFxContents() : m_x(0), m_y(0), m_width(0), m_height(0) sized to fit its children. */ -QRectF QFxContents::rectF() const +QRectF QmlGraphicsContents::rectF() const { return QRectF(m_x, m_y, m_width, m_height); } //TODO: optimization: only check sender(), if there is one -void QFxContents::calcHeight() +void QmlGraphicsContents::calcHeight() { qreal oldy = m_y; qreal oldheight = m_height; @@ -261,8 +261,8 @@ void QFxContents::calcHeight() QList children = m_item->childItems(); for (int i = 0; i < children.count(); ++i) { - QFxItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QFxItem graphicsobjects? + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? continue; qreal y = child->y(); if (y + child->height() > bottom) @@ -279,7 +279,7 @@ void QFxContents::calcHeight() } //TODO: optimization: only check sender(), if there is one -void QFxContents::calcWidth() +void QmlGraphicsContents::calcWidth() { qreal oldx = m_x; qreal oldwidth = m_width; @@ -289,8 +289,8 @@ void QFxContents::calcWidth() QList children = m_item->childItems(); for (int i = 0; i < children.count(); ++i) { - QFxItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QFxItem graphicsobjects? + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? continue; qreal x = child->x(); if (x + child->width() > right) @@ -306,14 +306,14 @@ void QFxContents::calcWidth() emit rectChanged(); } -void QFxContents::setItem(QFxItem *item) +void QmlGraphicsContents::setItem(QmlGraphicsItem *item) { m_item = item; QList children = m_item->childItems(); for (int i = 0; i < children.count(); ++i) { - QFxItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QFxItem graphicsobjects? + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? continue; connect(child, SIGNAL(heightChanged()), this, SLOT(calcHeight())); connect(child, SIGNAL(yChanged()), this, SLOT(calcHeight())); @@ -327,16 +327,16 @@ void QFxContents::setItem(QFxItem *item) } /* - Key filters can be installed on a QFxItem, but not removed. Currently they + Key filters can be installed on a QmlGraphicsItem, but not removed. Currently they are only used by attached objects (which are only destroyed on Item destruction), so this isn't a problem. If in future this becomes any form of public API, they will have to support removal too. */ -class QFxItemKeyFilter +class QmlGraphicsItemKeyFilter { public: - QFxItemKeyFilter(QFxItem * = 0); - virtual ~QFxItemKeyFilter(); + QmlGraphicsItemKeyFilter(QmlGraphicsItem * = 0); + virtual ~QmlGraphicsItemKeyFilter(); virtual void keyPressed(QKeyEvent *event); virtual void keyReleased(QKeyEvent *event); @@ -345,84 +345,84 @@ public: virtual void componentComplete(); private: - QFxItemKeyFilter *m_next; + QmlGraphicsItemKeyFilter *m_next; }; -QFxItemKeyFilter::QFxItemKeyFilter(QFxItem *item) +QmlGraphicsItemKeyFilter::QmlGraphicsItemKeyFilter(QmlGraphicsItem *item) : m_next(0) { - QFxItemPrivate *p = - item?static_cast(QGraphicsItemPrivate::get(item)):0; + QmlGraphicsItemPrivate *p = + item?static_cast(QGraphicsItemPrivate::get(item)):0; if (p) { m_next = p->keyHandler; p->keyHandler = this; } } -QFxItemKeyFilter::~QFxItemKeyFilter() +QmlGraphicsItemKeyFilter::~QmlGraphicsItemKeyFilter() { } -void QFxItemKeyFilter::keyPressed(QKeyEvent *event) +void QmlGraphicsItemKeyFilter::keyPressed(QKeyEvent *event) { if (m_next) m_next->keyPressed(event); } -void QFxItemKeyFilter::keyReleased(QKeyEvent *event) +void QmlGraphicsItemKeyFilter::keyReleased(QKeyEvent *event) { if (m_next) m_next->keyReleased(event); } -void QFxItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) +void QmlGraphicsItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) { if (m_next) m_next->inputMethodEvent(event); } -QVariant QFxItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const +QVariant QmlGraphicsItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const { if (m_next) return m_next->inputMethodQuery(query); return QVariant(); } -void QFxItemKeyFilter::componentComplete() +void QmlGraphicsItemKeyFilter::componentComplete() { if (m_next) m_next->componentComplete(); } -class QFxKeyNavigationAttachedPrivate : public QObjectPrivate +class QmlGraphicsKeyNavigationAttachedPrivate : public QObjectPrivate { public: - QFxKeyNavigationAttachedPrivate() + QmlGraphicsKeyNavigationAttachedPrivate() : QObjectPrivate(), left(0), right(0), up(0), down(0) {} - QFxItem *left; - QFxItem *right; - QFxItem *up; - QFxItem *down; + QmlGraphicsItem *left; + QmlGraphicsItem *right; + QmlGraphicsItem *up; + QmlGraphicsItem *down; }; -class QFxKeyNavigationAttached : public QObject, public QFxItemKeyFilter +class QmlGraphicsKeyNavigationAttached : public QObject, public QmlGraphicsItemKeyFilter { Q_OBJECT - Q_DECLARE_PRIVATE(QFxKeyNavigationAttached) + Q_DECLARE_PRIVATE(QmlGraphicsKeyNavigationAttached) - Q_PROPERTY(QFxItem *left READ left WRITE setLeft NOTIFY changed) - Q_PROPERTY(QFxItem *right READ right WRITE setRight NOTIFY changed) - Q_PROPERTY(QFxItem *up READ up WRITE setUp NOTIFY changed) - Q_PROPERTY(QFxItem *down READ down WRITE setDown NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *left READ left WRITE setLeft NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *right READ right WRITE setRight NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *up READ up WRITE setUp NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *down READ down WRITE setDown NOTIFY changed) public: - QFxKeyNavigationAttached(QObject * = 0); + QmlGraphicsKeyNavigationAttached(QObject * = 0); - QFxItem *left() const; - void setLeft(QFxItem *); - QFxItem *right() const; - void setRight(QFxItem *); - QFxItem *up() const; - void setUp(QFxItem *); - QFxItem *down() const; - void setDown(QFxItem *); + QmlGraphicsItem *left() const; + void setLeft(QmlGraphicsItem *); + QmlGraphicsItem *right() const; + void setRight(QmlGraphicsItem *); + QmlGraphicsItem *up() const; + void setUp(QmlGraphicsItem *); + QmlGraphicsItem *down() const; + void setDown(QmlGraphicsItem *); - static QFxKeyNavigationAttached *qmlAttachedProperties(QObject *); + static QmlGraphicsKeyNavigationAttached *qmlAttachedProperties(QObject *); Q_SIGNALS: void changed(); @@ -432,73 +432,73 @@ private: virtual void keyReleased(QKeyEvent *event); }; -QFxKeyNavigationAttached::QFxKeyNavigationAttached(QObject *parent) -: QObject(*(new QFxKeyNavigationAttachedPrivate), parent), - QFxItemKeyFilter(qobject_cast(parent)) +QmlGraphicsKeyNavigationAttached::QmlGraphicsKeyNavigationAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeyNavigationAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) { } -QFxKeyNavigationAttached * -QFxKeyNavigationAttached::qmlAttachedProperties(QObject *obj) +QmlGraphicsKeyNavigationAttached * +QmlGraphicsKeyNavigationAttached::qmlAttachedProperties(QObject *obj) { - return new QFxKeyNavigationAttached(obj); + return new QmlGraphicsKeyNavigationAttached(obj); } -QFxItem *QFxKeyNavigationAttached::left() const +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::left() const { - Q_D(const QFxKeyNavigationAttached); + Q_D(const QmlGraphicsKeyNavigationAttached); return d->left; } -void QFxKeyNavigationAttached::setLeft(QFxItem *i) +void QmlGraphicsKeyNavigationAttached::setLeft(QmlGraphicsItem *i) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); d->left = i; emit changed(); } -QFxItem *QFxKeyNavigationAttached::right() const +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::right() const { - Q_D(const QFxKeyNavigationAttached); + Q_D(const QmlGraphicsKeyNavigationAttached); return d->right; } -void QFxKeyNavigationAttached::setRight(QFxItem *i) +void QmlGraphicsKeyNavigationAttached::setRight(QmlGraphicsItem *i) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); d->right = i; emit changed(); } -QFxItem *QFxKeyNavigationAttached::up() const +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::up() const { - Q_D(const QFxKeyNavigationAttached); + Q_D(const QmlGraphicsKeyNavigationAttached); return d->up; } -void QFxKeyNavigationAttached::setUp(QFxItem *i) +void QmlGraphicsKeyNavigationAttached::setUp(QmlGraphicsItem *i) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); d->up = i; emit changed(); } -QFxItem *QFxKeyNavigationAttached::down() const +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::down() const { - Q_D(const QFxKeyNavigationAttached); + Q_D(const QmlGraphicsKeyNavigationAttached); return d->down; } -void QFxKeyNavigationAttached::setDown(QFxItem *i) +void QmlGraphicsKeyNavigationAttached::setDown(QmlGraphicsItem *i) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); d->down = i; emit changed(); } -void QFxKeyNavigationAttached::keyPressed(QKeyEvent *event) +void QmlGraphicsKeyNavigationAttached::keyPressed(QKeyEvent *event) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); event->ignore(); @@ -531,12 +531,12 @@ void QFxKeyNavigationAttached::keyPressed(QKeyEvent *event) break; } - if (!event->isAccepted()) QFxItemKeyFilter::keyPressed(event); + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); } -void QFxKeyNavigationAttached::keyReleased(QKeyEvent *event) +void QmlGraphicsKeyNavigationAttached::keyReleased(QKeyEvent *event) { - Q_D(QFxKeyNavigationAttached); + Q_D(QmlGraphicsKeyNavigationAttached); event->ignore(); @@ -565,7 +565,7 @@ void QFxKeyNavigationAttached::keyReleased(QKeyEvent *event) break; } - if (!event->isAccepted()) QFxItemKeyFilter::keyReleased(event); + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); } /*! @@ -895,10 +895,10 @@ void QFxKeyNavigationAttached::keyReleased(QKeyEvent *event) */ -class QFxKeysAttachedPrivate : public QObjectPrivate +class QmlGraphicsKeysAttachedPrivate : public QObjectPrivate { public: - QFxKeysAttachedPrivate() + QmlGraphicsKeysAttachedPrivate() : QObjectPrivate(), inPress(false), inRelease(false) , inIM(false), enabled(true), imeItem(0), item(0) {} @@ -921,82 +921,82 @@ public: bool enabled : 1; QGraphicsItem *imeItem; - QList targets; - QFxItem *item; + QList targets; + QmlGraphicsItem *item; }; -class QFxKeysAttached : public QObject, public QFxItemKeyFilter +class QmlGraphicsKeysAttached : public QObject, public QmlGraphicsItemKeyFilter { Q_OBJECT - Q_DECLARE_PRIVATE(QFxKeysAttached) + Q_DECLARE_PRIVATE(QmlGraphicsKeysAttached) Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(QList *forwardTo READ forwardTo) + Q_PROPERTY(QList *forwardTo READ forwardTo) public: - QFxKeysAttached(QObject *parent=0); - ~QFxKeysAttached(); + QmlGraphicsKeysAttached(QObject *parent=0); + ~QmlGraphicsKeysAttached(); - bool enabled() const { Q_D(const QFxKeysAttached); return d->enabled; } + bool enabled() const { Q_D(const QmlGraphicsKeysAttached); return d->enabled; } void setEnabled(bool enabled) { - Q_D(QFxKeysAttached); + Q_D(QmlGraphicsKeysAttached); if (enabled != d->enabled) { d->enabled = enabled; emit enabledChanged(); } } - QList *forwardTo() { - Q_D(QFxKeysAttached); + QList *forwardTo() { + Q_D(QmlGraphicsKeysAttached); return &d->targets; } virtual void componentComplete(); - static QFxKeysAttached *qmlAttachedProperties(QObject *); + static QmlGraphicsKeysAttached *qmlAttachedProperties(QObject *); Q_SIGNALS: void enabledChanged(); - void pressed(QFxKeyEvent *event); - void released(QFxKeyEvent *event); - void digit0Pressed(QFxKeyEvent *event); - void digit1Pressed(QFxKeyEvent *event); - void digit2Pressed(QFxKeyEvent *event); - void digit3Pressed(QFxKeyEvent *event); - void digit4Pressed(QFxKeyEvent *event); - void digit5Pressed(QFxKeyEvent *event); - void digit6Pressed(QFxKeyEvent *event); - void digit7Pressed(QFxKeyEvent *event); - void digit8Pressed(QFxKeyEvent *event); - void digit9Pressed(QFxKeyEvent *event); - - void leftPressed(QFxKeyEvent *event); - void rightPressed(QFxKeyEvent *event); - void upPressed(QFxKeyEvent *event); - void downPressed(QFxKeyEvent *event); - - void asteriskPressed(QFxKeyEvent *event); - void numberSignPressed(QFxKeyEvent *event); - void escapePressed(QFxKeyEvent *event); - void returnPressed(QFxKeyEvent *event); - void enterPressed(QFxKeyEvent *event); - void deletePressed(QFxKeyEvent *event); - void spacePressed(QFxKeyEvent *event); - void backPressed(QFxKeyEvent *event); - void cancelPressed(QFxKeyEvent *event); - void selectPressed(QFxKeyEvent *event); - void yesPressed(QFxKeyEvent *event); - void noPressed(QFxKeyEvent *event); - void context1Pressed(QFxKeyEvent *event); - void context2Pressed(QFxKeyEvent *event); - void context3Pressed(QFxKeyEvent *event); - void context4Pressed(QFxKeyEvent *event); - void callPressed(QFxKeyEvent *event); - void hangupPressed(QFxKeyEvent *event); - void flipPressed(QFxKeyEvent *event); - void menuPressed(QFxKeyEvent *event); - void volumeUpPressed(QFxKeyEvent *event); - void volumeDownPressed(QFxKeyEvent *event); + void pressed(QmlGraphicsKeyEvent *event); + void released(QmlGraphicsKeyEvent *event); + void digit0Pressed(QmlGraphicsKeyEvent *event); + void digit1Pressed(QmlGraphicsKeyEvent *event); + void digit2Pressed(QmlGraphicsKeyEvent *event); + void digit3Pressed(QmlGraphicsKeyEvent *event); + void digit4Pressed(QmlGraphicsKeyEvent *event); + void digit5Pressed(QmlGraphicsKeyEvent *event); + void digit6Pressed(QmlGraphicsKeyEvent *event); + void digit7Pressed(QmlGraphicsKeyEvent *event); + void digit8Pressed(QmlGraphicsKeyEvent *event); + void digit9Pressed(QmlGraphicsKeyEvent *event); + + void leftPressed(QmlGraphicsKeyEvent *event); + void rightPressed(QmlGraphicsKeyEvent *event); + void upPressed(QmlGraphicsKeyEvent *event); + void downPressed(QmlGraphicsKeyEvent *event); + + void asteriskPressed(QmlGraphicsKeyEvent *event); + void numberSignPressed(QmlGraphicsKeyEvent *event); + void escapePressed(QmlGraphicsKeyEvent *event); + void returnPressed(QmlGraphicsKeyEvent *event); + void enterPressed(QmlGraphicsKeyEvent *event); + void deletePressed(QmlGraphicsKeyEvent *event); + void spacePressed(QmlGraphicsKeyEvent *event); + void backPressed(QmlGraphicsKeyEvent *event); + void cancelPressed(QmlGraphicsKeyEvent *event); + void selectPressed(QmlGraphicsKeyEvent *event); + void yesPressed(QmlGraphicsKeyEvent *event); + void noPressed(QmlGraphicsKeyEvent *event); + void context1Pressed(QmlGraphicsKeyEvent *event); + void context2Pressed(QmlGraphicsKeyEvent *event); + void context3Pressed(QmlGraphicsKeyEvent *event); + void context4Pressed(QmlGraphicsKeyEvent *event); + void callPressed(QmlGraphicsKeyEvent *event); + void hangupPressed(QmlGraphicsKeyEvent *event); + void flipPressed(QmlGraphicsKeyEvent *event); + void menuPressed(QmlGraphicsKeyEvent *event); + void volumeUpPressed(QmlGraphicsKeyEvent *event); + void volumeDownPressed(QmlGraphicsKeyEvent *event); private: virtual void keyPressed(QKeyEvent *event); @@ -1026,7 +1026,7 @@ private: static const SigMap sigMap[]; }; -const QFxKeysAttached::SigMap QFxKeysAttached::sigMap[] = { +const QmlGraphicsKeysAttached::SigMap QmlGraphicsKeysAttached::sigMap[] = { { Qt::Key_Left, "leftPressed" }, { Qt::Key_Right, "rightPressed" }, { Qt::Key_Up, "upPressed" }, @@ -1056,26 +1056,26 @@ const QFxKeysAttached::SigMap QFxKeysAttached::sigMap[] = { { 0, 0 } }; -bool QFxKeysAttachedPrivate::isConnected(const char *signalName) +bool QmlGraphicsKeysAttachedPrivate::isConnected(const char *signalName) { return isSignalConnected(signalIndex(signalName)); } -QFxKeysAttached::QFxKeysAttached(QObject *parent) -: QObject(*(new QFxKeysAttachedPrivate), parent), - QFxItemKeyFilter(qobject_cast(parent)) +QmlGraphicsKeysAttached::QmlGraphicsKeysAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeysAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) { - Q_D(QFxKeysAttached); - d->item = qobject_cast(parent); + Q_D(QmlGraphicsKeysAttached); + d->item = qobject_cast(parent); } -QFxKeysAttached::~QFxKeysAttached() +QmlGraphicsKeysAttached::~QmlGraphicsKeysAttached() { } -void QFxKeysAttached::componentComplete() +void QmlGraphicsKeysAttached::componentComplete() { - Q_D(QFxKeysAttached); + Q_D(QmlGraphicsKeysAttached); if (d->item) { for (int ii = 0; ii < d->targets.count(); ++ii) { QGraphicsItem *targetItem = d->finalFocusProxy(d->targets.at(ii)); @@ -1087,9 +1087,9 @@ void QFxKeysAttached::componentComplete() } } -void QFxKeysAttached::keyPressed(QKeyEvent *event) +void QmlGraphicsKeysAttached::keyPressed(QKeyEvent *event) { - Q_D(QFxKeysAttached); + Q_D(QmlGraphicsKeysAttached); if (!d->enabled || d->inPress) { event->ignore(); return; @@ -1111,27 +1111,27 @@ void QFxKeysAttached::keyPressed(QKeyEvent *event) d->inPress = false; } - QFxKeyEvent ke(*event); + QmlGraphicsKeyEvent ke(*event); QByteArray keySignal = keyToSignal(event->key()); if (!keySignal.isEmpty()) { - keySignal += "(QFxKeyEvent*)"; + keySignal += "(QmlGraphicsKeyEvent*)"; if (d->isConnected(keySignal)) { // If we specifically handle a key then default to accepted ke.setAccepted(true); - int idx = QFxKeysAttached::staticMetaObject.indexOfSignal(keySignal); - metaObject()->method(idx).invoke(this, Q_ARG(QFxKeysAttached, &ke)); + int idx = QmlGraphicsKeysAttached::staticMetaObject.indexOfSignal(keySignal); + metaObject()->method(idx).invoke(this, Q_ARG(QmlGraphicsKeysAttached, &ke)); } } if (!ke.isAccepted()) emit pressed(&ke); event->setAccepted(ke.isAccepted()); - if (!event->isAccepted()) QFxItemKeyFilter::keyPressed(event); + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); } -void QFxKeysAttached::keyReleased(QKeyEvent *event) +void QmlGraphicsKeysAttached::keyReleased(QKeyEvent *event) { - Q_D(QFxKeysAttached); + Q_D(QmlGraphicsKeysAttached); if (!d->enabled || d->inRelease) { event->ignore(); return; @@ -1152,16 +1152,16 @@ void QFxKeysAttached::keyReleased(QKeyEvent *event) d->inRelease = false; } - QFxKeyEvent ke(*event); + QmlGraphicsKeyEvent ke(*event); emit released(&ke); event->setAccepted(ke.isAccepted()); - if (!event->isAccepted()) QFxItemKeyFilter::keyReleased(event); + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); } -void QFxKeysAttached::inputMethodEvent(QInputMethodEvent *event) +void QmlGraphicsKeysAttached::inputMethodEvent(QInputMethodEvent *event) { - Q_D(QFxKeysAttached); + Q_D(QmlGraphicsKeysAttached); if (d->item && !d->inIM && d->item->scene()) { d->inIM = true; for (int ii = 0; ii < d->targets.count(); ++ii) { @@ -1177,10 +1177,10 @@ void QFxKeysAttached::inputMethodEvent(QInputMethodEvent *event) } d->inIM = false; } - if (!event->isAccepted()) QFxItemKeyFilter::inputMethodEvent(event); + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::inputMethodEvent(event); } -class QFxItemAccessor : public QGraphicsItem +class QmlGraphicsItemAccessor : public QGraphicsItem { public: QVariant doInputMethodQuery(Qt::InputMethodQuery query) const { @@ -1188,43 +1188,43 @@ public: } }; -QVariant QFxKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const +QVariant QmlGraphicsKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const { - Q_D(const QFxKeysAttached); + Q_D(const QmlGraphicsKeysAttached); if (d->item) { for (int ii = 0; ii < d->targets.count(); ++ii) { QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod) && i == d->imeItem) { //### how robust is i == d->imeItem check? - QVariant v = static_cast(i)->doInputMethodQuery(query); + QVariant v = static_cast(i)->doInputMethodQuery(query); if (v.type() == QVariant::RectF) v = d->item->mapRectFromItem(i, v.toRectF()); //### cost? return v; } } } - return QFxItemKeyFilter::inputMethodQuery(query); + return QmlGraphicsItemKeyFilter::inputMethodQuery(query); } -QFxKeysAttached *QFxKeysAttached::qmlAttachedProperties(QObject *obj) +QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject *obj) { - return new QFxKeysAttached(obj); + return new QmlGraphicsKeysAttached(obj); } /*! - \class QFxItem - \brief The QFxItem class provides the most basic of all visual items in QML. + \class QmlGraphicsItem + \brief The QmlGraphicsItem class provides the most basic of all visual items in QML. - All visual items in Qt Declarative inherit from QFxItem. Although QFxItem + All visual items in Qt Declarative inherit from QmlGraphicsItem. Although QmlGraphicsItem has no visual appearance, it defines all the properties that are common across visual items - such as the x and y position, the width and height, \l {anchor-layout}{anchoring} and key handling. - You can subclass QFxItem to provide your own custom visual item that inherits + You can subclass QmlGraphicsItem to provide your own custom visual item that inherits these features. */ /*! - \qmlclass Item QFxItem + \qmlclass Item QmlGraphicsItem \brief The Item is the most basic of all visual items in QML. All visual items in Qt Declarative inherit from Item. Although Item @@ -1285,114 +1285,114 @@ QFxKeysAttached *QFxKeysAttached::qmlAttachedProperties(QObject *obj) */ /*! - \property QFxItem::baseline + \property QmlGraphicsItem::baseline \internal */ /*! - \property QFxItem::effect + \property QmlGraphicsItem::effect \internal */ /*! - \property QFxItem::focus + \property QmlGraphicsItem::focus \internal */ /*! - \property QFxItem::wantsFocus + \property QmlGraphicsItem::wantsFocus \internal */ /*! - \property QFxItem::transformOrigin + \property QmlGraphicsItem::transformOrigin \internal */ /*! - \fn void QFxItem::childrenRectChanged() + \fn void QmlGraphicsItem::childrenRectChanged() \internal */ /*! - \fn void QFxItem::baselineOffsetChanged() + \fn void QmlGraphicsItem::baselineOffsetChanged() \internal */ /*! - \fn void QFxItem::widthChanged() + \fn void QmlGraphicsItem::widthChanged() \internal */ /*! - \fn void QFxItem::heightChanged() + \fn void QmlGraphicsItem::heightChanged() \internal */ /*! - \fn void QFxItem::stateChanged(const QString &state) + \fn void QmlGraphicsItem::stateChanged(const QString &state) \internal */ /*! - \fn void QFxItem::parentChanged() + \fn void QmlGraphicsItem::parentChanged() \internal */ /*! - \fn void QFxItem::focusChanged() + \fn void QmlGraphicsItem::focusChanged() \internal */ /*! - \fn void QFxItem::wantsFocusChanged() + \fn void QmlGraphicsItem::wantsFocusChanged() \internal */ static inline void qfxitem_registerAnchorLine() { static bool registered = false; if (!registered) { - qRegisterMetaType("QFxAnchorLine"); + qRegisterMetaType("QmlGraphicsAnchorLine"); registered = true; } } /*! - \fn QFxItem::QFxItem(QFxItem *parent) + \fn QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem *parent) - Constructs a QFxItem with the given \a parent. + Constructs a QmlGraphicsItem with the given \a parent. */ -QFxItem::QFxItem(QFxItem* parent) - : QGraphicsObject(*(new QFxItemPrivate), parent, 0) +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem* parent) + : QGraphicsObject(*(new QmlGraphicsItemPrivate), parent, 0) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); qfxitem_registerAnchorLine(); d->init(parent); } /*! \internal */ -QFxItem::QFxItem(QFxItemPrivate &dd, QFxItem *parent) +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent) : QGraphicsObject(dd, parent, 0) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); qfxitem_registerAnchorLine(); d->init(parent); } /*! - Destroys the QFxItem. + Destroys the QmlGraphicsItem. */ -QFxItem::~QFxItem() +QmlGraphicsItem::~QmlGraphicsItem() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QFxAnchors *anchor = d->dependantAnchors.at(ii); + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); anchor->d_func()->clearItem(this); } if (!d->parent || (parentItem() && !parentItem()->QGraphicsItem::d_ptr->inDestructor)) for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QFxAnchors *anchor = d->dependantAnchors.at(ii); + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); if (anchor->d_func()->item && anchor->d_func()->item->parentItem() != this) //child will be deleted anyway anchor->d_func()->updateOnComplete(); } @@ -1427,12 +1427,12 @@ QFxItem::~QFxItem() */ /*! - \property QFxItem::parent + \property QmlGraphicsItem::parent This property holds the parent of the item. */ -void QFxItem::setParentItem(QFxItem *parent) +void QmlGraphicsItem::setParentItem(QmlGraphicsItem *parent) { - QFxItem *oldParent = parentItem(); + QmlGraphicsItem *oldParent = parentItem(); if (parent == oldParent || !parent) return; QObject::setParent(parent); @@ -1440,11 +1440,11 @@ void QFxItem::setParentItem(QFxItem *parent) } /*! - Returns the QFxItem parent of this item. + Returns the QmlGraphicsItem parent of this item. */ -QFxItem *QFxItem::parentItem() const +QmlGraphicsItem *QmlGraphicsItem::parentItem() const { - return qobject_cast(QGraphicsObject::parentItem()); + return qobject_cast(QGraphicsObject::parentItem()); } /*! @@ -1475,12 +1475,12 @@ QFxItem *QFxItem::parentItem() const */ /*! - \property QFxItem::children + \property QmlGraphicsItem::children \internal */ /*! - \property QFxItem::resources + \property QmlGraphicsItem::resources \internal */ @@ -1493,86 +1493,86 @@ QFxItem *QFxItem::parentItem() const \sa componentComplete() */ -bool QFxItem::isComponentComplete() const +bool QmlGraphicsItem::isComponentComplete() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->_componentComplete; } /*! - \property QFxItem::anchors + \property QmlGraphicsItem::anchors \internal */ /*! \internal */ -QFxAnchors *QFxItem::anchors() +QmlGraphicsAnchors *QmlGraphicsItem::anchors() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return d->anchors(); } -void QFxItemPrivate::data_removeAt(int) +void QmlGraphicsItemPrivate::data_removeAt(int) { // ### } -int QFxItemPrivate::data_count() const +int QmlGraphicsItemPrivate::data_count() const { // ### return 0; } -void QFxItemPrivate::data_append(QObject *o) +void QmlGraphicsItemPrivate::data_append(QObject *o) { - Q_Q(QFxItem); - QFxItem *i = qobject_cast(o); + Q_Q(QmlGraphicsItem); + QmlGraphicsItem *i = qobject_cast(o); if (i) q->fxChildren()->append(i); else resources_append(o); } -void QFxItemPrivate::data_insert(int, QObject *) +void QmlGraphicsItemPrivate::data_insert(int, QObject *) { // ### } -QObject *QFxItemPrivate::data_at(int) const +QObject *QmlGraphicsItemPrivate::data_at(int) const { // ### return 0; } -void QFxItemPrivate::data_clear() +void QmlGraphicsItemPrivate::data_clear() { // ### } -void QFxItemPrivate::resources_removeAt(int) +void QmlGraphicsItemPrivate::resources_removeAt(int) { // ### } -int QFxItemPrivate::resources_count() const +int QmlGraphicsItemPrivate::resources_count() const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); return q->children().count(); } -void QFxItemPrivate::resources_append(QObject *o) +void QmlGraphicsItemPrivate::resources_append(QObject *o) { - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); o->setParent(q); } -void QFxItemPrivate::resources_insert(int, QObject *) +void QmlGraphicsItemPrivate::resources_insert(int, QObject *) { // ### } -QObject *QFxItemPrivate::resources_at(int idx) const +QObject *QmlGraphicsItemPrivate::resources_at(int idx) const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); QObjectList children = q->children(); if (idx < children.count()) return children.at(idx); @@ -1580,50 +1580,50 @@ QObject *QFxItemPrivate::resources_at(int idx) const return 0; } -void QFxItemPrivate::resources_clear() +void QmlGraphicsItemPrivate::resources_clear() { // ### } -void QFxItemPrivate::children_removeAt(int) +void QmlGraphicsItemPrivate::children_removeAt(int) { // ### } -int QFxItemPrivate::children_count() const +int QmlGraphicsItemPrivate::children_count() const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); return q->childItems().count(); } -void QFxItemPrivate::children_append(QFxItem *i) +void QmlGraphicsItemPrivate::children_append(QmlGraphicsItem *i) { - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); i->setParentItem(q); } -void QFxItemPrivate::children_insert(int, QFxItem *) +void QmlGraphicsItemPrivate::children_insert(int, QmlGraphicsItem *) { // ### } -QFxItem *QFxItemPrivate::children_at(int idx) const +QmlGraphicsItem *QmlGraphicsItemPrivate::children_at(int idx) const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); QList children = q->childItems(); if (idx < children.count()) - return qobject_cast(children.at(idx)); + return qobject_cast(children.at(idx)); else return 0; } -void QFxItemPrivate::children_clear() +void QmlGraphicsItemPrivate::children_clear() { // ### } -void QFxItemPrivate::transform_removeAt(int i) +void QmlGraphicsItemPrivate::transform_removeAt(int i) { if (!transformData) return; @@ -1631,33 +1631,33 @@ void QFxItemPrivate::transform_removeAt(int i) dirtySceneTransform = 1; } -int QFxItemPrivate::transform_count() const +int QmlGraphicsItemPrivate::transform_count() const { return transformData ? transformData->graphicsTransforms.size() : 0; } -void QFxItemPrivate::transform_append(QGraphicsTransform *item) +void QmlGraphicsItemPrivate::transform_append(QGraphicsTransform *item) { appendGraphicsTransform(item); } -void QFxItemPrivate::transform_insert(int, QGraphicsTransform *) +void QmlGraphicsItemPrivate::transform_insert(int, QGraphicsTransform *) { // ### } -QGraphicsTransform *QFxItemPrivate::transform_at(int idx) const +QGraphicsTransform *QmlGraphicsItemPrivate::transform_at(int idx) const { if (!transformData) return 0; return transformData->graphicsTransforms.at(idx); } -void QFxItemPrivate::transform_clear() +void QmlGraphicsItemPrivate::transform_clear() { if (!transformData) return; - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); q->setTransformations(QList()); } @@ -1696,40 +1696,40 @@ void QFxItemPrivate::transform_clear() */ /*! - \property QFxItem::data + \property QmlGraphicsItem::data \internal */ /*! \internal */ -QmlList *QFxItem::data() +QmlList *QmlGraphicsItem::data() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return &d->data; } /*! - \property QFxItem::childrenRect + \property QmlGraphicsItem::childrenRect \brief The geometry of an item's children. childrenRect provides an easy way to access the (collective) position and size of the item's children. */ -QRectF QFxItem::childrenRect() +QRectF QmlGraphicsItem::childrenRect() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (!d->_contents) { - d->_contents = new QFxContents; + d->_contents = new QmlGraphicsContents; d->_contents->setParent(this); d->_contents->setItem(this); } return d->_contents->rectF(); } -bool QFxItem::clip() const +bool QmlGraphicsItem::clip() const { return flags() & ItemClipsChildrenToShape; } -void QFxItem::setClip(bool c) +void QmlGraphicsItem::setClip(bool c) { setFlag(ItemClipsChildrenToShape, c); } @@ -1748,13 +1748,13 @@ void QFxItem::setClip(bool c) */ /*! - \property QFxItem::width + \property QmlGraphicsItem::width Defines the item's width relative to its parent. */ /*! - \property QFxItem::height + \property QmlGraphicsItem::height Defines the item's height relative to its parent. */ @@ -1842,15 +1842,15 @@ void QFxItem::setClip(bool c) geometry from \a oldGeometry to \a newGeometry. If the two geometries are the same, it doesn't do anything. */ -void QFxItem::geometryChanged(const QRectF &newGeometry, +void QmlGraphicsItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (d->_anchors) d->_anchors->d_func()->updateMe(); - if (transformOrigin() != QFxItem::TopLeft) + if (transformOrigin() != QmlGraphicsItem::TopLeft) setTransformOriginPoint(d->computeTransformOrigin()); if (newGeometry.x() != oldGeometry.x()) @@ -1863,15 +1863,15 @@ void QFxItem::geometryChanged(const QRectF &newGeometry, emit heightChanged(); for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QFxAnchors *anchor = d->dependantAnchors.at(ii); + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); anchor->d_func()->update(this, newGeometry, oldGeometry); } } /*! \internal */ -void QFxItem::keyPressEvent(QKeyEvent *event) +void QmlGraphicsItem::keyPressEvent(QKeyEvent *event) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (d->keyHandler) d->keyHandler->keyPressed(event); else @@ -1879,9 +1879,9 @@ void QFxItem::keyPressEvent(QKeyEvent *event) } /*! \internal */ -void QFxItem::keyReleaseEvent(QKeyEvent *event) +void QmlGraphicsItem::keyReleaseEvent(QKeyEvent *event) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (d->keyHandler) d->keyHandler->keyReleased(event); else @@ -1889,9 +1889,9 @@ void QFxItem::keyReleaseEvent(QKeyEvent *event) } /*! \internal */ -void QFxItem::inputMethodEvent(QInputMethodEvent *event) +void QmlGraphicsItem::inputMethodEvent(QInputMethodEvent *event) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (d->keyHandler) d->keyHandler->inputMethodEvent(event); else @@ -1899,9 +1899,9 @@ void QFxItem::inputMethodEvent(QInputMethodEvent *event) } /*! \internal */ -QVariant QFxItem::inputMethodQuery(Qt::InputMethodQuery query) const +QVariant QmlGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); QVariant v; if (d->keyHandler) v = d->keyHandler->inputMethodQuery(query); @@ -1931,54 +1931,54 @@ QVariant QFxItem::inputMethodQuery(Qt::InputMethodQuery query) const /*! \internal */ -QFxAnchorLine QFxItem::left() const +QmlGraphicsAnchorLine QmlGraphicsItem::left() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->left; } /*! \internal */ -QFxAnchorLine QFxItem::right() const +QmlGraphicsAnchorLine QmlGraphicsItem::right() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->right; } /*! \internal */ -QFxAnchorLine QFxItem::horizontalCenter() const +QmlGraphicsAnchorLine QmlGraphicsItem::horizontalCenter() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->hCenter; } /*! \internal */ -QFxAnchorLine QFxItem::top() const +QmlGraphicsAnchorLine QmlGraphicsItem::top() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->top; } /*! \internal */ -QFxAnchorLine QFxItem::bottom() const +QmlGraphicsAnchorLine QmlGraphicsItem::bottom() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->bottom; } /*! \internal */ -QFxAnchorLine QFxItem::verticalCenter() const +QmlGraphicsAnchorLine QmlGraphicsItem::verticalCenter() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->vCenter; } @@ -1986,39 +1986,39 @@ QFxAnchorLine QFxItem::verticalCenter() const /*! \internal */ -QFxAnchorLine QFxItem::baseline() const +QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->anchorLines()->baseline; } /*! - \property QFxItem::top + \property QmlGraphicsItem::top \internal */ /*! - \property QFxItem::bottom + \property QmlGraphicsItem::bottom \internal */ /*! - \property QFxItem::left + \property QmlGraphicsItem::left \internal */ /*! - \property QFxItem::right + \property QmlGraphicsItem::right \internal */ /*! - \property QFxItem::horizontalCenter + \property QmlGraphicsItem::horizontalCenter \internal */ /*! - \property QFxItem::verticalCenter + \property QmlGraphicsItem::verticalCenter \internal */ @@ -2104,7 +2104,7 @@ QFxAnchorLine QFxItem::baseline() const */ /*! - \property QFxItem::baselineOffset + \property QmlGraphicsItem::baselineOffset \brief The position of the item's baseline in local coordinates. The baseline of a Text item is the imaginary line on which the text @@ -2113,18 +2113,18 @@ QFxAnchorLine QFxItem::baseline() const For non-text items, a default baseline offset of 0 is used. */ -qreal QFxItem::baselineOffset() const +qreal QmlGraphicsItem::baselineOffset() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); if (!d->_baselineOffset.isValid()) { return 0.0; } else return d->_baselineOffset; } -void QFxItem::setBaselineOffset(qreal offset) +void QmlGraphicsItem::setBaselineOffset(qreal offset) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (offset == d->_baselineOffset) return; @@ -2132,7 +2132,7 @@ void QFxItem::setBaselineOffset(qreal offset) emit baselineOffsetChanged(); for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QFxAnchors *anchor = d->dependantAnchors.at(ii); + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); anchor->d_func()->updateVerticalAnchors(); } } @@ -2254,9 +2254,9 @@ void QFxItem::setBaselineOffset(qreal offset) \sa setKeepMouseGrab() */ -bool QFxItem::keepMouseGrab() const +bool QmlGraphicsItem::keepMouseGrab() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->_keepMouse; } @@ -2278,9 +2278,9 @@ bool QFxItem::keepMouseGrab() const \sa keepMouseGrab */ -void QFxItem::setKeepMouseGrab(bool keep) +void QmlGraphicsItem::setKeepMouseGrab(bool keep) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->_keepMouse = keep; } @@ -2292,23 +2292,23 @@ void QFxItem::setKeepMouseGrab(bool keep) Subclasses overriding this function should call up to their base class. */ -void QFxItem::focusChanged(bool flag) +void QmlGraphicsItem::focusChanged(bool flag) { Q_UNUSED(flag); emit focusChanged(); } /*! \internal */ -QmlList *QFxItem::fxChildren() +QmlList *QmlGraphicsItem::fxChildren() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return &(d->children); } /*! \internal */ -QmlList *QFxItem::resources() +QmlList *QmlGraphicsItem::resources() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return &(d->resources); } @@ -2330,13 +2330,13 @@ QmlList *QFxItem::resources() */ /*! - \property QFxItem::states + \property QmlGraphicsItem::states \internal */ /*! \internal */ -QmlList* QFxItem::states() +QmlList* QmlGraphicsItem::states() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return d->states()->statesProperty(); } @@ -2358,14 +2358,14 @@ QmlList* QFxItem::states() */ /*! - \property QFxItem::transitions + \property QmlGraphicsItem::transitions \internal */ /*! \internal */ -QmlList* QFxItem::transitions() +QmlList* QmlGraphicsItem::transitions() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return d->states()->transitionsProperty(); } @@ -2401,7 +2401,7 @@ QmlList* QFxItem::transitions() */ /*! - \property QFxItem::clip + \property QmlGraphicsItem::clip This property holds whether clipping is enabled. if clipping is enabled, an item will clip its own painting, as well @@ -2437,14 +2437,14 @@ QmlList* QFxItem::transitions() */ /*! - \property QFxItem::state + \property QmlGraphicsItem::state \internal */ /*! \internal */ -QString QFxItem::state() const +QString QmlGraphicsItem::state() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); if (!d->_stateGroup) return QString(); else @@ -2452,9 +2452,9 @@ QString QFxItem::state() const } /*! \internal */ -void QFxItem::setState(const QString &state) +void QmlGraphicsItem::setState(const QString &state) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->states()->setState(state); } @@ -2466,14 +2466,14 @@ void QFxItem::setState(const QString &state) */ /*! - \property QFxItem::transform + \property QmlGraphicsItem::transform \internal */ /*! \internal */ -QmlList* QFxItem::transform() +QmlList* QmlGraphicsItem::transform() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return &(d->transform); } @@ -2485,9 +2485,9 @@ QmlList* QFxItem::transform() \sa componentComplete(), isComponentComplete() */ -void QFxItem::classBegin() +void QmlGraphicsItem::classBegin() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->_componentComplete = false; if (d->_stateGroup) d->_stateGroup->classBegin(); @@ -2503,13 +2503,13 @@ void QFxItem::classBegin() processing until the component is complete an all bindings in the component have been resolved. */ -void QFxItem::componentComplete() +void QmlGraphicsItem::componentComplete() { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer cc; + QmlPerfTimer cc; #endif - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->_componentComplete = true; if (d->_stateGroup) d->_stateGroup->componentComplete(); @@ -2521,9 +2521,9 @@ void QFxItem::componentComplete() d->keyHandler->componentComplete(); } -QmlStateGroup *QFxItemPrivate::states() +QmlStateGroup *QmlGraphicsItemPrivate::states() { - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); if (!_stateGroup) { _stateGroup = new QmlStateGroup(q); if (!_componentComplete) @@ -2535,55 +2535,55 @@ QmlStateGroup *QFxItemPrivate::states() return _stateGroup; } -QFxItemPrivate::AnchorLines::AnchorLines(QFxItem *q) +QmlGraphicsItemPrivate::AnchorLines::AnchorLines(QmlGraphicsItem *q) { left.item = q; - left.anchorLine = QFxAnchorLine::Left; + left.anchorLine = QmlGraphicsAnchorLine::Left; right.item = q; - right.anchorLine = QFxAnchorLine::Right; + right.anchorLine = QmlGraphicsAnchorLine::Right; hCenter.item = q; - hCenter.anchorLine = QFxAnchorLine::HCenter; + hCenter.anchorLine = QmlGraphicsAnchorLine::HCenter; top.item = q; - top.anchorLine = QFxAnchorLine::Top; + top.anchorLine = QmlGraphicsAnchorLine::Top; bottom.item = q; - bottom.anchorLine = QFxAnchorLine::Bottom; + bottom.anchorLine = QmlGraphicsAnchorLine::Bottom; vCenter.item = q; - vCenter.anchorLine = QFxAnchorLine::VCenter; + vCenter.anchorLine = QmlGraphicsAnchorLine::VCenter; baseline.item = q; - baseline.anchorLine = QFxAnchorLine::Baseline; + baseline.anchorLine = QmlGraphicsAnchorLine::Baseline; } -QPointF QFxItemPrivate::computeTransformOrigin() const +QPointF QmlGraphicsItemPrivate::computeTransformOrigin() const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); QRectF br = q->boundingRect(); switch(origin) { default: - case QFxItem::TopLeft: + case QmlGraphicsItem::TopLeft: return QPointF(0, 0); - case QFxItem::Top: + case QmlGraphicsItem::Top: return QPointF(br.width() / 2., 0); - case QFxItem::TopRight: + case QmlGraphicsItem::TopRight: return QPointF(br.width(), 0); - case QFxItem::Left: + case QmlGraphicsItem::Left: return QPointF(0, br.height() / 2.); - case QFxItem::Center: + case QmlGraphicsItem::Center: return QPointF(br.width() / 2., br.height() / 2.); - case QFxItem::Right: + case QmlGraphicsItem::Right: return QPointF(br.width(), br.height() / 2.); - case QFxItem::BottomLeft: + case QmlGraphicsItem::BottomLeft: return QPointF(0, br.height()); - case QFxItem::Bottom: + case QmlGraphicsItem::Bottom: return QPointF(br.width() / 2., br.height()); - case QFxItem::BottomRight: + case QmlGraphicsItem::BottomRight: return QPointF(br.width(), br.height()); } } /*! \internal */ -bool QFxItem::sceneEvent(QEvent *event) +bool QmlGraphicsItem::sceneEvent(QEvent *event) { bool rv = QGraphicsItem::sceneEvent(event); @@ -2596,7 +2596,7 @@ bool QFxItem::sceneEvent(QEvent *event) } /*! \internal */ -QVariant QFxItem::itemChange(GraphicsItemChange change, +QVariant QmlGraphicsItem::itemChange(GraphicsItemChange change, const QVariant &value) { if (change == ItemParentHasChanged) { @@ -2607,14 +2607,14 @@ QVariant QFxItem::itemChange(GraphicsItemChange change, } /*! \internal */ -QRectF QFxItem::boundingRect() const +QRectF QmlGraphicsItem::boundingRect() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return QRectF(0, 0, d->width, d->height); } /*! - \enum QFxItem::TransformOrigin + \enum QmlGraphicsItem::TransformOrigin Controls the point about which simple transforms like scale apply. @@ -2632,18 +2632,18 @@ QRectF QFxItem::boundingRect() const /*! Returns the current transform origin. */ -QFxItem::TransformOrigin QFxItem::transformOrigin() const +QmlGraphicsItem::TransformOrigin QmlGraphicsItem::transformOrigin() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->origin; } /*! Set the transform \a origin. */ -void QFxItem::setTransformOrigin(TransformOrigin origin) +void QmlGraphicsItem::setTransformOrigin(TransformOrigin origin) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (origin != d->origin) { d->origin = origin; QGraphicsItem::setTransformOriginPoint(d->computeTransformOrigin()); @@ -2651,7 +2651,7 @@ void QFxItem::setTransformOrigin(TransformOrigin origin) } /*! - \property QFxItem::smooth + \property QmlGraphicsItem::smooth \brief whether the item is smoothly transformed. This property is provided purely for the purpose of optimization. Turning @@ -2669,9 +2669,9 @@ void QFxItem::setTransformOrigin(TransformOrigin origin) \sa setSmoothTransform() */ -bool QFxItem::smoothTransform() const +bool QmlGraphicsItem::smoothTransform() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->smooth; } @@ -2681,24 +2681,24 @@ bool QFxItem::smoothTransform() const \sa smoothTransform() */ -void QFxItem::setSmoothTransform(bool smooth) +void QmlGraphicsItem::setSmoothTransform(bool smooth) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); if (d->smooth == smooth) return; d->smooth = smooth; update(); } -qreal QFxItem::width() const +qreal QmlGraphicsItem::width() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->width; } -void QFxItem::setWidth(qreal w) +void QmlGraphicsItem::setWidth(qreal w) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->widthValid = true; if (d->width == w) return; @@ -2713,22 +2713,22 @@ void QFxItem::setWidth(qreal w) QRectF(x(), y(), oldWidth, height())); } -void QFxItem::resetWidth() +void QmlGraphicsItem::resetWidth() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->widthValid = false; setImplicitWidth(implicitWidth()); } -qreal QFxItem::implicitWidth() const +qreal QmlGraphicsItem::implicitWidth() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->implicitWidth; } -void QFxItem::setImplicitWidth(qreal w) +void QmlGraphicsItem::setImplicitWidth(qreal w) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->implicitWidth = w; if (d->width == w || widthValid()) return; @@ -2743,21 +2743,21 @@ void QFxItem::setImplicitWidth(qreal w) QRectF(x(), y(), oldWidth, height())); } -bool QFxItem::widthValid() const +bool QmlGraphicsItem::widthValid() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->widthValid; } -qreal QFxItem::height() const +qreal QmlGraphicsItem::height() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->height; } -void QFxItem::setHeight(qreal h) +void QmlGraphicsItem::setHeight(qreal h) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->heightValid = true; if (d->height == h) return; @@ -2772,22 +2772,22 @@ void QFxItem::setHeight(qreal h) QRectF(x(), y(), width(), oldHeight)); } -void QFxItem::resetHeight() +void QmlGraphicsItem::resetHeight() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->heightValid = false; setImplicitHeight(implicitHeight()); } -qreal QFxItem::implicitHeight() const +qreal QmlGraphicsItem::implicitHeight() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->implicitHeight; } -void QFxItem::setImplicitHeight(qreal h) +void QmlGraphicsItem::setImplicitHeight(qreal h) { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); d->implicitHeight = h; if (d->height == h || heightValid()) return; @@ -2802,9 +2802,9 @@ void QFxItem::setImplicitHeight(qreal h) QRectF(x(), y(), width(), oldHeight)); } -bool QFxItem::heightValid() const +bool QmlGraphicsItem::heightValid() const { - Q_D(const QFxItem); + Q_D(const QmlGraphicsItem); return d->heightValid; } @@ -2815,7 +2815,7 @@ bool QFxItem::heightValid() const */ /*! \internal */ -bool QFxItem::wantsFocus() const +bool QmlGraphicsItem::wantsFocus() const { return focusItem() != 0; } @@ -2827,13 +2827,13 @@ bool QFxItem::wantsFocus() const */ /*! \internal */ -bool QFxItem::hasFocus() const +bool QmlGraphicsItem::hasFocus() const { return QGraphicsItem::hasFocus(); } /*! \internal */ -void QFxItem::setFocus(bool focus) +void QmlGraphicsItem::setFocus(bool focus) { if (focus) QGraphicsItem::setFocus(Qt::OtherFocusReason); @@ -2845,7 +2845,7 @@ void QFxItem::setFocus(bool focus) \reimp \internal */ -void QFxItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) { } @@ -2853,15 +2853,15 @@ void QFxItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) \reimp \internal */ -bool QFxItem::event(QEvent *ev) +bool QmlGraphicsItem::event(QEvent *ev) { return QGraphicsObject::event(ev); } -QDebug operator<<(QDebug debug, QFxItem *item) +QDebug operator<<(QDebug debug, QmlGraphicsItem *item) { if (!item) { - debug << "QFxItem(0)"; + debug << "QmlGraphicsItem(0)"; return debug; } @@ -2872,13 +2872,13 @@ QDebug operator<<(QDebug debug, QFxItem *item) return debug; } -int QFxItemPrivate::consistentTime = -1; -void QFxItemPrivate::setConsistentTime(int t) +int QmlGraphicsItemPrivate::consistentTime = -1; +void QmlGraphicsItemPrivate::setConsistentTime(int t) { consistentTime = t; } -QTime QFxItemPrivate::currentTime() +QTime QmlGraphicsItemPrivate::currentTime() { if (consistentTime == -1) return QTime::currentTime(); @@ -2886,12 +2886,12 @@ QTime QFxItemPrivate::currentTime() return QTime(0, 0).addMSecs(consistentTime); } -void QFxItemPrivate::start(QTime &t) +void QmlGraphicsItemPrivate::start(QTime &t) { t = currentTime(); } -int QFxItemPrivate::elapsed(QTime &t) +int QmlGraphicsItemPrivate::elapsed(QTime &t) { int n = t.msecsTo(currentTime()); if (n < 0) // passed midnight @@ -2899,7 +2899,7 @@ int QFxItemPrivate::elapsed(QTime &t) return n; } -int QFxItemPrivate::restart(QTime &t) +int QmlGraphicsItemPrivate::restart(QTime &t) { QTime time = currentTime(); int n = t.msecsTo(time); @@ -2911,11 +2911,11 @@ int QFxItemPrivate::restart(QTime &t) QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxKeysAttached) -QML_DECLARE_TYPEINFO(QFxKeysAttached, QML_HAS_ATTACHED_PROPERTIES) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QFxKeysAttached) -QML_DECLARE_TYPE(QFxKeyNavigationAttached) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QFxKeyNavigationAttached) +QML_DECLARE_TYPE(QmlGraphicsKeysAttached) +QML_DECLARE_TYPEINFO(QmlGraphicsKeysAttached, QML_HAS_ATTACHED_PROPERTIES) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) +QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) #include "moc_qfxitem.cpp" #include "qfxitem.moc" diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h index b2aefe2..ac094ad 100644 --- a/src/declarative/fx/qfxitem.h +++ b/src/declarative/fx/qfxitem.h @@ -58,19 +58,19 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QmlState; -class QFxAnchorLine; +class QmlGraphicsAnchorLine; class QmlTransition; -class QFxKeyEvent; -class QFxAnchors; -class QFxItemPrivate; -class Q_DECLARATIVE_EXPORT QFxItem : public QGraphicsObject, public QmlParserStatus +class QmlGraphicsKeyEvent; +class QmlGraphicsAnchors; +class QmlGraphicsItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsItem : public QGraphicsObject, public QmlParserStatus { Q_OBJECT Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QFxItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) + Q_PROPERTY(QmlGraphicsItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) Q_PROPERTY(QmlList *data READ data DESIGNABLE false) - Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) + Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) Q_PROPERTY(QmlList* resources READ resources DESIGNABLE false) Q_PROPERTY(QmlList* states READ states DESIGNABLE false) Q_PROPERTY(QmlList* transitions READ transitions DESIGNABLE false) @@ -78,14 +78,14 @@ class Q_DECLARATIVE_EXPORT QFxItem : public QGraphicsObject, public QmlParserSta Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged RESET resetWidth FINAL) Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged RESET resetHeight FINAL) Q_PROPERTY(QRectF childrenRect READ childrenRect NOTIFY childrenRectChanged DESIGNABLE false FINAL) - Q_PROPERTY(QFxAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine left READ left CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine right READ right CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine top READ top CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine bottom READ bottom CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) - Q_PROPERTY(QFxAnchorLine baseline READ baseline CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline CONSTANT FINAL) Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged) Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL) @@ -104,18 +104,18 @@ public: BottomLeft, Bottom, BottomRight }; - QFxItem(QFxItem *parent = 0); - virtual ~QFxItem(); + QmlGraphicsItem(QmlGraphicsItem *parent = 0); + virtual ~QmlGraphicsItem(); - QFxItem *parentItem() const; - void setParentItem(QFxItem *parent); - void setParent(QFxItem *parent) { setParentItem(parent); } + QmlGraphicsItem *parentItem() const; + void setParentItem(QmlGraphicsItem *parent); + void setParent(QmlGraphicsItem *parent) { setParentItem(parent); } QmlList *data(); - QmlList *fxChildren(); + QmlList *fxChildren(); QmlList *resources(); - QFxAnchors *anchors(); + QmlGraphicsAnchors *anchors(); QRectF childrenRect(); bool clip() const; @@ -190,22 +190,22 @@ protected: const QRectF &oldGeometry); protected: - QFxItem(QFxItemPrivate &dd, QFxItem *parent = 0); + QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent = 0); private: // ### public? - QFxAnchorLine left() const; - QFxAnchorLine right() const; - QFxAnchorLine horizontalCenter() const; - QFxAnchorLine top() const; - QFxAnchorLine bottom() const; - QFxAnchorLine verticalCenter() const; - QFxAnchorLine baseline() const; + QmlGraphicsAnchorLine left() const; + QmlGraphicsAnchorLine right() const; + QmlGraphicsAnchorLine horizontalCenter() const; + QmlGraphicsAnchorLine top() const; + QmlGraphicsAnchorLine bottom() const; + QmlGraphicsAnchorLine verticalCenter() const; + QmlGraphicsAnchorLine baseline() const; friend class QmlStatePrivate; - friend class QFxAnchors; - Q_DISABLE_COPY(QFxItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxItem) + friend class QmlGraphicsAnchors; + Q_DISABLE_COPY(QmlGraphicsItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) }; template @@ -224,11 +224,11 @@ T qobject_cast(QGraphicsItem *item) return qobject_cast(o); } -QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QFxItem *item); +QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QmlGraphicsItem *item); QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxItem) +QML_DECLARE_TYPE(QmlGraphicsItem) QML_DECLARE_TYPE(QGraphicsTransform) QML_DECLARE_TYPE(QGraphicsScale) QML_DECLARE_TYPE(QGraphicsRotation) diff --git a/src/declarative/fx/qfxitem_p.h b/src/declarative/fx/qfxitem_p.h index 2c7440f..87b33be 100644 --- a/src/declarative/fx/qfxitem_p.h +++ b/src/declarative/fx/qfxitem_p.h @@ -67,18 +67,18 @@ QT_BEGIN_NAMESPACE class QNetworkReply; -class QFxItemKeyFilter; +class QmlGraphicsItemKeyFilter; //### merge into private? -class QFxContents : public QObject +class QmlGraphicsContents : public QObject { Q_OBJECT public: - QFxContents(); + QmlGraphicsContents(); QRectF rectF() const; - void setItem(QFxItem *item); + void setItem(QmlGraphicsItem *item); public Q_SLOTS: void calcHeight(); @@ -88,34 +88,34 @@ Q_SIGNALS: void rectChanged(); private: - QFxItem *m_item; + QmlGraphicsItem *m_item; qreal m_x; qreal m_y; qreal m_width; qreal m_height; }; -class QFxItemPrivate : public QGraphicsItemPrivate +class QmlGraphicsItemPrivate : public QGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxItem) + Q_DECLARE_PUBLIC(QmlGraphicsItem) public: - QFxItemPrivate() + QmlGraphicsItemPrivate() : _anchors(0), _contents(0), _baselineOffset(0), _anchorLines(0), - _stateGroup(0), origin(QFxItem::TopLeft), + _stateGroup(0), origin(QmlGraphicsItem::TopLeft), widthValid(false), heightValid(false), _componentComplete(true), _keepMouse(false), smooth(false), keyHandler(0), width(0), height(0), implicitWidth(0), implicitHeight(0) {} - ~QFxItemPrivate() + ~QmlGraphicsItemPrivate() { delete _anchors; } - void init(QFxItem *parent) + void init(QmlGraphicsItem *parent) { - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); if (parent) q->setParentItem(parent); @@ -136,7 +136,7 @@ public: void data_insert(int, QObject *); QObject *data_at(int) const; void data_clear(); - QML_DECLARE_LIST_PROXY(QFxItemPrivate, QObject *, data) + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, data) // resources property void resources_removeAt(int); @@ -145,16 +145,16 @@ public: void resources_insert(int, QObject *); QObject *resources_at(int) const; void resources_clear(); - QML_DECLARE_LIST_PROXY(QFxItemPrivate, QObject *, resources) + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, resources) // children property void children_removeAt(int); int children_count() const; - void children_append(QFxItem *); - void children_insert(int, QFxItem *); - QFxItem *children_at(int) const; + void children_append(QmlGraphicsItem *); + void children_insert(int, QmlGraphicsItem *); + QmlGraphicsItem *children_at(int) const; void children_clear(); - QML_DECLARE_LIST_PROXY(QFxItemPrivate, QFxItem *, children) + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QmlGraphicsItem *, children) // transform property void transform_removeAt(int); @@ -163,53 +163,53 @@ public: void transform_insert(int, QGraphicsTransform *); QGraphicsTransform *transform_at(int) const; void transform_clear(); - QML_DECLARE_LIST_PROXY(QFxItemPrivate, QGraphicsTransform *, transform) + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QGraphicsTransform *, transform) - QFxAnchors *anchors() { + QmlGraphicsAnchors *anchors() { if (!_anchors) { - Q_Q(QFxItem); - _anchors = new QFxAnchors; + Q_Q(QmlGraphicsItem); + _anchors = new QmlGraphicsAnchors; _anchors->setItem(q); if (!_componentComplete) _anchors->classBegin(); } return _anchors; } - QList dependantAnchors; - QFxAnchors *_anchors; - QFxContents *_contents; + QList dependantAnchors; + QmlGraphicsAnchors *_anchors; + QmlGraphicsContents *_contents; QmlNullableValue _baselineOffset; struct AnchorLines { - AnchorLines(QFxItem *); - QFxAnchorLine left; - QFxAnchorLine right; - QFxAnchorLine hCenter; - QFxAnchorLine top; - QFxAnchorLine bottom; - QFxAnchorLine vCenter; - QFxAnchorLine baseline; + AnchorLines(QmlGraphicsItem *); + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine baseline; }; mutable AnchorLines *_anchorLines; AnchorLines *anchorLines() const { - Q_Q(const QFxItem); + Q_Q(const QmlGraphicsItem); if (!_anchorLines) _anchorLines = - new AnchorLines(const_cast(q)); + new AnchorLines(const_cast(q)); return _anchorLines; } QmlStateGroup *states(); QmlStateGroup *_stateGroup; - QFxItem::TransformOrigin origin:4; + QmlGraphicsItem::TransformOrigin origin:4; bool widthValid:1; bool heightValid:1; bool _componentComplete:1; bool _keepMouse:1; bool smooth:1; - QFxItemKeyFilter *keyHandler; + QmlGraphicsItemKeyFilter *keyHandler; qreal width; qreal height; @@ -220,7 +220,7 @@ public: virtual void setPosHelper(const QPointF &pos) { - Q_Q(QFxItem); + Q_Q(QmlGraphicsItem); QRectF oldGeometry(this->pos.x(), this->pos.y(), width, height); QGraphicsItemPrivate::setPosHelper(pos); q->geometryChanged(QRectF(this->pos.x(), this->pos.y(), width, height), oldGeometry); diff --git a/src/declarative/fx/qfxlayoutitem.cpp b/src/declarative/fx/qfxlayoutitem.cpp index 61998e7..201dea2 100644 --- a/src/declarative/fx/qfxlayoutitem.cpp +++ b/src/declarative/fx/qfxlayoutitem.cpp @@ -45,17 +45,17 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QFxLayoutItem) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QmlGraphicsLayoutItem) /*! - \qmlclass LayoutItem QFxLayoutItem + \qmlclass LayoutItem QmlGraphicsLayoutItem \brief The LayoutItem element allows you to place your Fluid UI elements inside a classical Qt layout. */ /*! \internal - \class QFxLayoutItem - \brief The QFxLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. + \class QmlGraphicsLayoutItem + \brief The QmlGraphicsLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. */ @@ -77,13 +77,13 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QFxLayoutItem) The preferredSize property can be set to specify the preferred size of this LayoutItem */ -QFxLayoutItem::QFxLayoutItem(QFxItem* parent) - : QFxItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) +QmlGraphicsLayoutItem::QmlGraphicsLayoutItem(QmlGraphicsItem* parent) + : QmlGraphicsItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) { setGraphicsItem(this); } -void QFxLayoutItem::setGeometry(const QRectF & rect) +void QmlGraphicsLayoutItem::setGeometry(const QRectF & rect) { setX(rect.x()); setY(rect.y()); @@ -91,7 +91,7 @@ void QFxLayoutItem::setGeometry(const QRectF & rect) setHeight(rect.height()); } -QSizeF QFxLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const +QSizeF QmlGraphicsLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const { Q_UNUSED(constraint); if(w == Qt::MinimumSize){ diff --git a/src/declarative/fx/qfxlayoutitem.h b/src/declarative/fx/qfxlayoutitem.h index 7150554..35e6e74 100644 --- a/src/declarative/fx/qfxlayoutitem.h +++ b/src/declarative/fx/qfxlayoutitem.h @@ -42,7 +42,7 @@ #ifndef QFXGRAPHICSLAYOUTITEM_H #define QFXGRAPHICSLAYOUTITEM_H #include -#include +#include #include QT_BEGIN_HEADER @@ -51,7 +51,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxLayoutItem : public QFxItem, public QGraphicsLayoutItem +class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem { Q_OBJECT Q_INTERFACES(QGraphicsLayoutItem) @@ -59,7 +59,7 @@ class QFxLayoutItem : public QFxItem, public QGraphicsLayoutItem Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) public: - QFxLayoutItem(QFxItem* parent=0); + QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); QSizeF maximumSize() const { return m_maximumSize; } void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } @@ -87,7 +87,7 @@ private: QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxLayoutItem) +QML_DECLARE_TYPE(QmlGraphicsLayoutItem) QT_END_HEADER #endif diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp index 18c3062..f85380a 100644 --- a/src/declarative/fx/qfxlistview.cpp +++ b/src/declarative/fx/qfxlistview.cpp @@ -49,18 +49,18 @@ #include QT_BEGIN_NAMESPACE -class QFxListViewAttached : public QObject +class QmlGraphicsListViewAttached : public QObject { Q_OBJECT public: - QFxListViewAttached(QObject *parent) + QmlGraphicsListViewAttached(QObject *parent) : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {} - ~QFxListViewAttached() { + ~QmlGraphicsListViewAttached() { attachedProperties.remove(parent()); } - Q_PROPERTY(QFxListView *view READ view CONSTANT) - QFxListView *view() { return m_view; } + Q_PROPERTY(QmlGraphicsListView *view READ view CONSTANT) + QmlGraphicsListView *view() { return m_view; } Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) bool isCurrentItem() const { return m_isCurrent; } @@ -98,10 +98,10 @@ public: } } - static QFxListViewAttached *properties(QObject *obj) { - QFxListViewAttached *rv = attachedProperties.value(obj); + static QmlGraphicsListViewAttached *properties(QObject *obj) { + QmlGraphicsListViewAttached *rv = attachedProperties.value(obj); if (!rv) { - rv = new QFxListViewAttached(obj); + rv = new QmlGraphicsListViewAttached(obj); attachedProperties.insert(obj, rv); } return rv; @@ -119,64 +119,64 @@ Q_SIGNALS: void remove(); public: - QFxListView *m_view; + QmlGraphicsListView *m_view; bool m_isCurrent; mutable QString m_section; QString m_prevSection; bool m_delayRemove; - static QHash attachedProperties; + static QHash attachedProperties; }; -QHash QFxListViewAttached::attachedProperties; +QHash QmlGraphicsListViewAttached::attachedProperties; //---------------------------------------------------------------------------- class FxListItem { public: - FxListItem(QFxItem *i, QFxListView *v) : item(i), view(v) { - attached = QFxListViewAttached::properties(item); + FxListItem(QmlGraphicsItem *i, QmlGraphicsListView *v) : item(i), view(v) { + attached = QmlGraphicsListViewAttached::properties(item); attached->m_view = view; } ~FxListItem() {} - qreal position() const { return (view->orientation() == QFxListView::Vertical ? item->y() : item->x()); } - int size() const { return (view->orientation() == QFxListView::Vertical ? item->height() : item->width()); } + qreal position() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() : item->x()); } + int size() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->height() : item->width()); } qreal endPosition() const { - return (view->orientation() == QFxListView::Vertical + return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() + (item->height() > 0 ? item->height() : 1) : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; } void setPosition(qreal pos) { - if (view->orientation() == QFxListView::Vertical) { + if (view->orientation() == QmlGraphicsListView::Vertical) { item->setY(pos); } else { item->setX(pos); } } - QFxItem *item; - QFxListView *view; - QFxListViewAttached *attached; + QmlGraphicsItem *item; + QmlGraphicsListView *view; + QmlGraphicsListViewAttached *attached; int index; }; //---------------------------------------------------------------------------- -class QFxListViewPrivate : public QFxFlickablePrivate +class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate { - Q_DECLARE_PUBLIC(QFxListView) + Q_DECLARE_PUBLIC(QmlGraphicsListView) public: - QFxListViewPrivate() - : model(0), currentItem(0), orient(QFxListView::Vertical) + QmlGraphicsListViewPrivate() + : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical) , visiblePos(0), visibleIndex(0) , averageSize(100.0), currentIndex(-1), requestedIndex(-1) , highlightRangeStart(0), highlightRangeEnd(0) , highlightComponent(0), highlight(0), trackedItem(0) , moveReason(Other), buffer(0), highlightPosAnimator(0), highlightSizeAnimator(0), spacing(0.0) - , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QFxListView::NoHighlightRange) + , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QmlGraphicsListView::NoHighlightRange) , ownModel(false), wrap(false), autoHighlight(true) , haveHighlightRange(false) {} @@ -198,19 +198,19 @@ public: } qreal position() const { - Q_Q(const QFxListView); - return orient == QFxListView::Vertical ? q->viewportY() : q->viewportX(); + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->viewportY() : q->viewportX(); } void setPosition(qreal pos) { - Q_Q(QFxListView); - if (orient == QFxListView::Vertical) + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) q->setViewportY(pos); else q->setViewportX(pos); } qreal size() const { - Q_Q(const QFxListView); - return orient == QFxListView::Vertical ? q->height() : q->width(); + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->height() : q->width(); } qreal startPosition() const { @@ -261,7 +261,7 @@ public: } QString sectionAt(int modelIndex) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (FxListItem *item = visibleItem(modelIndex)) return item->attached->section(); QString section; @@ -344,8 +344,8 @@ public: } void updateViewport() { - Q_Q(QFxListView); - if (orient == QFxListView::Vertical) + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) q->setViewportHeight(endPosition() - startPosition()); else q->setViewportWidth(endPosition() - startPosition()); @@ -382,12 +382,12 @@ public: virtual void flickX(qreal velocity); virtual void flickY(qreal velocity); - QFxVisualModel *model; + QmlGraphicsVisualModel *model; QVariant modelVariant; QList visibleItems; - QHash unrequestedItems; + QHash unrequestedItems; FxListItem *currentItem; - QFxListView::Orientation orient; + QmlGraphicsListView::Orientation orient; int visiblePos; int visibleIndex; qreal averageSize; @@ -408,7 +408,7 @@ public: qreal spacing; qreal highlightMoveSpeed; qreal highlightResizeSpeed; - QFxListView::HighlightRangeMode highlightRange; + QmlGraphicsListView::HighlightRangeMode highlightRange; bool ownModel : 1; bool wrap : 1; @@ -416,15 +416,15 @@ public: bool haveHighlightRange : 1; }; -void QFxListViewPrivate::init() +void QmlGraphicsListViewPrivate::init() { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); q->setFlag(QGraphicsItem::ItemIsFocusScope); QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(refill())); QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(refill())); } -void QFxListViewPrivate::clear() +void QmlGraphicsListViewPrivate::clear() { for (int i = 0; i < visibleItems.count(); ++i) releaseItem(visibleItems.at(i)); @@ -438,13 +438,13 @@ void QFxListViewPrivate::clear() trackedItem = 0; } -FxListItem *QFxListViewPrivate::createItem(int modelIndex) +FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); // create object requestedIndex = modelIndex; FxListItem *listItem = 0; - if (QFxItem *item = model->item(modelIndex, false)) { + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { listItem = new FxListItem(item, q); listItem->index = modelIndex; // initialise attached properties @@ -463,7 +463,7 @@ FxListItem *QFxListViewPrivate::createItem(int modelIndex) model->completeItem(); listItem->item->setZValue(1); listItem->item->setParent(q->viewport()); - if (orient == QFxListView::Vertical) + if (orient == QmlGraphicsListView::Vertical) QObject::connect(listItem->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); else QObject::connect(listItem->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); @@ -473,14 +473,14 @@ FxListItem *QFxListViewPrivate::createItem(int modelIndex) return listItem; } -void QFxListViewPrivate::releaseItem(FxListItem *item) +void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (!item) return; if (trackedItem == item) { - const char *notifier1 = orient == QFxListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QFxListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); trackedItem = 0; @@ -488,7 +488,7 @@ void QFxListViewPrivate::releaseItem(FxListItem *item) if (model->release(item->item) == 0) { // item was not destroyed, and we no longer reference it. unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - if (orient == QFxListView::Vertical) + if (orient == QmlGraphicsListView::Vertical) QObject::disconnect(item->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); else QObject::disconnect(item->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); @@ -496,9 +496,9 @@ void QFxListViewPrivate::releaseItem(FxListItem *item) delete item; } -void QFxListViewPrivate::refill(qreal from, qreal to) +void QmlGraphicsListViewPrivate::refill(qreal from, qreal to) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (!isValid() || !q->isComponentComplete()) return; from -= buffer; @@ -566,9 +566,9 @@ void QFxListViewPrivate::refill(qreal from, qreal to) } } -void QFxListViewPrivate::layout() +void QmlGraphicsListViewPrivate::layout() { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (!visibleItems.isEmpty()) { int oldEnd = visibleItems.last()->endPosition(); int pos = visibleItems.first()->endPosition() + spacing + 1; @@ -590,38 +590,38 @@ void QFxListViewPrivate::layout() updateViewport(); } -void QFxListViewPrivate::updateUnrequestedIndexes() +void QmlGraphicsListViewPrivate::updateUnrequestedIndexes() { - Q_Q(QFxListView); - QHash::iterator it; + Q_Q(QmlGraphicsListView); + QHash::iterator it; for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) *it = model->indexOf(it.key(), q); } -void QFxListViewPrivate::updateUnrequestedPositions() +void QmlGraphicsListViewPrivate::updateUnrequestedPositions() { - QHash::const_iterator it; + QHash::const_iterator it; for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { if (visibleItem(*it)) continue; - if (orient == QFxListView::Vertical) + if (orient == QmlGraphicsListView::Vertical) it.key()->setY(positionAt(*it)); else it.key()->setX(positionAt(*it)); } } -void QFxListViewPrivate::updateTrackedItem() +void QmlGraphicsListViewPrivate::updateTrackedItem() { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); FxListItem *item = currentItem; if (highlight) item = highlight; FxListItem *oldTracked = trackedItem; - const char *notifier1 = orient == QFxListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QFxListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); if (trackedItem && item != trackedItem) { QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); @@ -638,9 +638,9 @@ void QFxListViewPrivate::updateTrackedItem() q->trackedPositionChanged(); } -void QFxListViewPrivate::createHighlight() +void QmlGraphicsListViewPrivate::createHighlight() { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (highlight) { if (trackedItem == highlight) trackedItem = 0; @@ -654,13 +654,13 @@ void QFxListViewPrivate::createHighlight() } if (currentItem) { - QFxItem *item = 0; + QmlGraphicsItem *item = 0; if (highlightComponent) { QmlContext *highlightContext = new QmlContext(qmlContext(q)); QObject *nobj = highlightComponent->create(highlightContext); if (nobj) { highlightContext->setParent(nobj); - item = qobject_cast(nobj); + item = qobject_cast(nobj); if (!item) { delete nobj; } else { @@ -670,22 +670,22 @@ void QFxListViewPrivate::createHighlight() delete highlightContext; } } else { - item = new QFxItem; + item = new QmlGraphicsItem; item->setParent(q->viewport()); } if (item) { item->setZValue(0); highlight = new FxListItem(item, q); - if (orient == QFxListView::Vertical) + if (orient == QmlGraphicsListView::Vertical) highlight->item->setHeight(currentItem->item->height()); else highlight->item->setWidth(currentItem->item->width()); - const QLatin1String posProp(orient == QFxListView::Vertical ? "y" : "x"); + const QLatin1String posProp(orient == QmlGraphicsListView::Vertical ? "y" : "x"); highlightPosAnimator = new QmlEaseFollow(q); highlightPosAnimator->setTarget(QmlMetaProperty(highlight->item, posProp)); highlightPosAnimator->setVelocity(highlightMoveSpeed); highlightPosAnimator->setEnabled(autoHighlight); - const QLatin1String sizeProp(orient == QFxListView::Vertical ? "height" : "width"); + const QLatin1String sizeProp(orient == QmlGraphicsListView::Vertical ? "height" : "width"); highlightSizeAnimator = new QmlEaseFollow(q); highlightSizeAnimator->setVelocity(highlightResizeSpeed); highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); @@ -694,7 +694,7 @@ void QFxListViewPrivate::createHighlight() } } -void QFxListViewPrivate::updateHighlight() +void QmlGraphicsListViewPrivate::updateHighlight() { if ((!currentItem && highlight) || (currentItem && !highlight)) createHighlight(); @@ -702,7 +702,7 @@ void QFxListViewPrivate::updateHighlight() // auto-update highlight highlightPosAnimator->setSourceValue(currentItem->position()); highlightSizeAnimator->setSourceValue(currentItem->size()); - if (orient == QFxListView::Vertical) { + if (orient == QmlGraphicsListView::Vertical) { if (highlight->item->width() == 0) highlight->item->setWidth(currentItem->item->width()); } else { @@ -713,7 +713,7 @@ void QFxListViewPrivate::updateHighlight() updateTrackedItem(); } -void QFxListViewPrivate::updateSections() +void QmlGraphicsListViewPrivate::updateSections() { if (!sectionExpression.isEmpty()) { QString prevSection; @@ -721,7 +721,7 @@ void QFxListViewPrivate::updateSections() prevSection = sectionAt(visibleIndex-1); for (int i = 0; i < visibleItems.count(); ++i) { if (visibleItems.at(i)->index != -1) { - QFxListViewAttached *attached = visibleItems.at(i)->attached; + QmlGraphicsListViewAttached *attached = visibleItems.at(i)->attached; attached->setPrevSection(prevSection); prevSection = attached->section(); } @@ -729,7 +729,7 @@ void QFxListViewPrivate::updateSections() } } -void QFxListViewPrivate::updateCurrentSection() +void QmlGraphicsListViewPrivate::updateCurrentSection() { if (sectionExpression.isEmpty() || visibleItems.isEmpty()) { currentSection = QString(); @@ -745,9 +745,9 @@ void QFxListViewPrivate::updateCurrentSection() currentSection = visibleItems.first()->attached->section(); } -void QFxListViewPrivate::updateCurrent(int modelIndex) +void QmlGraphicsListViewPrivate::updateCurrent(int modelIndex) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { if (currentItem) { currentItem->attached->setIsCurrentItem(false); @@ -787,7 +787,7 @@ void QFxListViewPrivate::updateCurrent(int modelIndex) releaseItem(oldCurrentItem); } -void QFxListViewPrivate::updateAverage() +void QmlGraphicsListViewPrivate::updateAverage() { if (!visibleItems.count()) return; @@ -797,21 +797,21 @@ void QFxListViewPrivate::updateAverage() averageSize = sum / visibleItems.count(); } -void QFxListViewPrivate::fixupPosition() +void QmlGraphicsListViewPrivate::fixupPosition() { - if (orient == QFxListView::Vertical) + if (orient == QmlGraphicsListView::Vertical) fixupY(); else fixupX(); } -void QFxListViewPrivate::fixupY() +void QmlGraphicsListViewPrivate::fixupY() { - QFxFlickablePrivate::fixupY(); - if (orient == QFxListView::Horizontal) + QmlGraphicsFlickablePrivate::fixupY(); + if (orient == QmlGraphicsListView::Horizontal) return; - if (haveHighlightRange && highlightRange == QFxListView::StrictlyEnforceRange) { + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { if (currentItem && highlight && currentItem->position() != highlight->position()) { moveReason = Mouse; timeline.clear(); @@ -820,13 +820,13 @@ void QFxListViewPrivate::fixupY() } } -void QFxListViewPrivate::fixupX() +void QmlGraphicsListViewPrivate::fixupX() { - QFxFlickablePrivate::fixupX(); - if (orient == QFxListView::Vertical) + QmlGraphicsFlickablePrivate::fixupX(); + if (orient == QmlGraphicsListView::Vertical) return; - if (haveHighlightRange && highlightRange == QFxListView::StrictlyEnforceRange) { + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { if (currentItem && highlight && currentItem->position() != highlight->position()) { moveReason = Mouse; timeline.clear(); @@ -835,12 +835,12 @@ void QFxListViewPrivate::fixupX() } } -void QFxListViewPrivate::flickX(qreal velocity) +void QmlGraphicsListViewPrivate::flickX(qreal velocity) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); - if (!haveHighlightRange || highlightRange != QFxListView::StrictlyEnforceRange) { - QFxFlickablePrivate::flickX(velocity); + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickX(velocity); return; } @@ -893,12 +893,12 @@ void QFxListViewPrivate::flickX(qreal velocity) } } -void QFxListViewPrivate::flickY(qreal velocity) +void QmlGraphicsListViewPrivate::flickY(qreal velocity) { - Q_Q(QFxListView); + Q_Q(QmlGraphicsListView); - if (!haveHighlightRange || highlightRange != QFxListView::StrictlyEnforceRange) { - QFxFlickablePrivate::flickY(velocity); + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickY(velocity); return; } @@ -977,16 +977,16 @@ void QFxListViewPrivate::flickY(qreal velocity) the model would be implemented in C++, or perhaps via a SQL data source. */ -QFxListView::QFxListView(QFxItem *parent) - : QFxFlickable(*(new QFxListViewPrivate), parent) +QmlGraphicsListView::QmlGraphicsListView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsListViewPrivate), parent) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->init(); } -QFxListView::~QFxListView() +QmlGraphicsListView::~QmlGraphicsListView() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->clear(); if (d->ownModel) delete d->model; @@ -1079,27 +1079,27 @@ QFxListView::~QFxListView() \sa {qmlmodels}{Data Models} */ -QVariant QFxListView::model() const +QVariant QmlGraphicsListView::model() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->modelVariant; } -void QFxListView::setModel(const QVariant &model) +void QmlGraphicsListView::setModel(const QVariant &model) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (d->model) { disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); } d->clear(); d->modelVariant = model; QObject *object = qvariant_cast(model); - QFxVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -1107,10 +1107,10 @@ void QFxListView::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { @@ -1121,8 +1121,8 @@ void QFxListView::setModel(const QVariant &model) connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - connect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); refill(); emit countChanged(); } @@ -1136,25 +1136,25 @@ void QFxListView::setModel(const QVariant &model) Here is an example delegate: \snippet doc/src/snippets/declarative/listview/listview.qml 0 */ -QmlComponent *QFxListView::delegate() const +QmlComponent *QmlGraphicsListView::delegate() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); if (d->model) { - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } return 0; } -void QFxListView::setDelegate(QmlComponent *delegate) +void QmlGraphicsListView::setDelegate(QmlComponent *delegate) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(delegate); d->updateCurrent(d->currentIndex); refill(); @@ -1169,16 +1169,16 @@ void QFxListView::setDelegate(QmlComponent *delegate) \c currentItem is the current item. Note that the position of the current item may only be approximate until it becomes visible in the view. */ -int QFxListView::currentIndex() const +int QmlGraphicsListView::currentIndex() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->currentIndex; } -void QFxListView::setCurrentIndex(int index) +void QmlGraphicsListView::setCurrentIndex(int index) { - Q_D(QFxListView); - d->moveReason = QFxListViewPrivate::Other; + Q_D(QmlGraphicsListView); + d->moveReason = QmlGraphicsListViewPrivate::Other; if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { cancelFlick(); d->updateCurrent(index); @@ -1187,9 +1187,9 @@ void QFxListView::setCurrentIndex(int index) } } -QFxItem *QFxListView::currentItem() +QmlGraphicsItem *QmlGraphicsListView::currentItem() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (!d->currentItem) return 0; return d->currentItem->item; @@ -1199,9 +1199,9 @@ QFxItem *QFxListView::currentItem() \qmlproperty int ListView::count This property holds the number of items in the view. */ -int QFxListView::count() const +int QmlGraphicsListView::count() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); if (d->model) return d->model->count(); return 0; @@ -1224,15 +1224,15 @@ int QFxListView::count() const \sa highlightFollowsCurrentItem */ -QmlComponent *QFxListView::highlight() const +QmlComponent *QmlGraphicsListView::highlight() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->highlightComponent; } -void QFxListView::setHighlight(QmlComponent *highlight) +void QmlGraphicsListView::setHighlight(QmlComponent *highlight) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); delete d->highlightComponent; d->highlightComponent = highlight; d->updateCurrent(d->currentIndex); @@ -1256,15 +1256,15 @@ void QFxListView::setHighlight(QmlComponent *highlight) \sa highlight */ -bool QFxListView::highlightFollowsCurrentItem() const +bool QmlGraphicsListView::highlightFollowsCurrentItem() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->autoHighlight; } -void QFxListView::setHighlightFollowsCurrentItem(bool autoHighlight) +void QmlGraphicsListView::setHighlightFollowsCurrentItem(bool autoHighlight) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->autoHighlight = autoHighlight; if (d->highlightPosAnimator) { d->highlightPosAnimator->setEnabled(d->autoHighlight); @@ -1296,41 +1296,41 @@ void QFxListView::setHighlightFollowsCurrentItem(bool autoHighlight) Note that a valid range requires preferredHighlightEnd to be greater than or equal to preferredHighlightBegin. */ -qreal QFxListView::preferredHighlightBegin() const +qreal QmlGraphicsListView::preferredHighlightBegin() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->highlightRangeStart; } -void QFxListView::setPreferredHighlightBegin(qreal start) +void QmlGraphicsListView::setPreferredHighlightBegin(qreal start) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->highlightRangeStart = start; d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; } -qreal QFxListView::preferredHighlightEnd() const +qreal QmlGraphicsListView::preferredHighlightEnd() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->highlightRangeEnd; } -void QFxListView::setPreferredHighlightEnd(qreal end) +void QmlGraphicsListView::setPreferredHighlightEnd(qreal end) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->highlightRangeEnd = end; d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; } -QFxListView::HighlightRangeMode QFxListView::highlightRangeMode() const +QmlGraphicsListView::HighlightRangeMode QmlGraphicsListView::highlightRangeMode() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->highlightRange; } -void QFxListView::setHighlightRangeMode(HighlightRangeMode mode) +void QmlGraphicsListView::setHighlightRangeMode(HighlightRangeMode mode) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->highlightRange = mode; d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; } @@ -1340,15 +1340,15 @@ void QFxListView::setHighlightRangeMode(HighlightRangeMode mode) This property holds the spacing to leave between items. */ -qreal QFxListView::spacing() const +qreal QmlGraphicsListView::spacing() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->spacing; } -void QFxListView::setSpacing(qreal spacing) +void QmlGraphicsListView::setSpacing(qreal spacing) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (spacing != d->spacing) { d->spacing = spacing; d->layout(); @@ -1367,18 +1367,18 @@ void QFxListView::setSpacing(qreal spacing) Horizontal Example: \image ListViewHorizontal.png */ -QFxListView::Orientation QFxListView::orientation() const +QmlGraphicsListView::Orientation QmlGraphicsListView::orientation() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->orient; } -void QFxListView::setOrientation(QFxListView::Orientation orientation) +void QmlGraphicsListView::setOrientation(QmlGraphicsListView::Orientation orientation) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (d->orient != orientation) { d->orient = orientation; - if (d->orient == QFxListView::Vertical) + if (d->orient == QmlGraphicsListView::Vertical) setViewportWidth(-1); else setViewportHeight(-1); @@ -1396,15 +1396,15 @@ void QFxListView::setOrientation(QFxListView::Orientation orientation) If this property is true then key presses to move off of one end of the list will cause the current item to jump to the other end. */ -bool QFxListView::isWrapEnabled() const +bool QmlGraphicsListView::isWrapEnabled() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->wrap; } -void QFxListView::setWrapEnabled(bool wrap) +void QmlGraphicsListView::setWrapEnabled(bool wrap) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->wrap = wrap; } @@ -1416,15 +1416,15 @@ void QFxListView::setWrapEnabled(bool wrap) and below the bottom of the list to cache. Setting this value can make scrolling the list smoother at the expense of additional memory usage. */ -int QFxListView::cacheBuffer() const +int QmlGraphicsListView::cacheBuffer() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->buffer; } -void QFxListView::setCacheBuffer(int b) +void QmlGraphicsListView::setCacheBuffer(int b) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (d->buffer != b) { d->buffer = b; if (isComponentComplete()) @@ -1446,24 +1446,24 @@ void QFxListView::setCacheBuffer(int b) \image ListViewSections.png */ -QString QFxListView::sectionExpression() const +QString QmlGraphicsListView::sectionExpression() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->sectionExpression; } -void QFxListView::setSectionExpression(const QString &expression) +void QmlGraphicsListView::setSectionExpression(const QString &expression) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (d->sectionExpression != expression) { d->sectionExpression = expression; emit sectionExpressionChanged(); } } -QString QFxListView::currentSection() const +QString QmlGraphicsListView::currentSection() const { - Q_D(const QFxListView); + Q_D(const QmlGraphicsListView); return d->currentSection; } @@ -1472,15 +1472,15 @@ QString QFxListView::currentSection() const This property holds the moving animation speed of the highlight delegate. */ -qreal QFxListView::highlightMoveSpeed() const +qreal QmlGraphicsListView::highlightMoveSpeed() const { - Q_D(const QFxListView);\ + Q_D(const QmlGraphicsListView);\ return d->highlightMoveSpeed; } -void QFxListView::setHighlightMoveSpeed(qreal speed) +void QmlGraphicsListView::setHighlightMoveSpeed(qreal speed) { - Q_D(QFxListView);\ + Q_D(QmlGraphicsListView);\ if (d->highlightMoveSpeed != speed) { d->highlightMoveSpeed = speed; @@ -1493,15 +1493,15 @@ void QFxListView::setHighlightMoveSpeed(qreal speed) This property holds the resizing animation speed of the highlight delegate. */ -qreal QFxListView::highlightResizeSpeed() const +qreal QmlGraphicsListView::highlightResizeSpeed() const { - Q_D(const QFxListView);\ + Q_D(const QmlGraphicsListView);\ return d->highlightResizeSpeed; } -void QFxListView::setHighlightResizeSpeed(qreal speed) +void QmlGraphicsListView::setHighlightResizeSpeed(qreal speed) { - Q_D(QFxListView);\ + Q_D(QmlGraphicsListView);\ if (d->highlightResizeSpeed != speed) { d->highlightResizeSpeed = speed; @@ -1509,14 +1509,14 @@ void QFxListView::setHighlightResizeSpeed(qreal speed) } } -void QFxListView::viewportMoved() +void QmlGraphicsListView::viewportMoved() { - Q_D(QFxListView); - QFxFlickable::viewportMoved(); + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::viewportMoved(); refill(); if (isFlicking() || d->moving) - d->moveReason = QFxListViewPrivate::Mouse; - if (d->moveReason == QFxListViewPrivate::Mouse) { + d->moveReason = QmlGraphicsListViewPrivate::Mouse; + if (d->moveReason == QmlGraphicsListViewPrivate::Mouse) { if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange && d->highlight) { int idx = d->snapIndex(); if (idx >= 0 && idx != d->currentIndex) @@ -1532,11 +1532,11 @@ void QFxListView::viewportMoved() } } -qreal QFxListView::minYExtent() const +qreal QmlGraphicsListView::minYExtent() const { - Q_D(const QFxListView); - if (d->orient == QFxListView::Horizontal) - return QFxFlickable::minYExtent(); + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::minYExtent(); qreal extent = -d->startPosition(); if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) extent += d->highlightRangeStart; @@ -1544,11 +1544,11 @@ qreal QFxListView::minYExtent() const return extent; } -qreal QFxListView::maxYExtent() const +qreal QmlGraphicsListView::maxYExtent() const { - Q_D(const QFxListView); - if (d->orient == QFxListView::Horizontal) - return QFxFlickable::maxYExtent(); + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::maxYExtent(); qreal extent; if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); @@ -1560,11 +1560,11 @@ qreal QFxListView::maxYExtent() const return extent; } -qreal QFxListView::minXExtent() const +qreal QmlGraphicsListView::minXExtent() const { - Q_D(const QFxListView); - if (d->orient == QFxListView::Vertical) - return QFxFlickable::minXExtent(); + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::minXExtent(); qreal extent = -d->startPosition(); if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) extent += d->highlightRangeStart; @@ -1572,11 +1572,11 @@ qreal QFxListView::minXExtent() const return extent; } -qreal QFxListView::maxXExtent() const +qreal QmlGraphicsListView::maxXExtent() const { - Q_D(const QFxListView); - if (d->orient == QFxListView::Vertical) - return QFxFlickable::maxXExtent(); + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::maxXExtent(); qreal extent; if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); @@ -1588,18 +1588,18 @@ qreal QFxListView::maxXExtent() const return extent; } -void QFxListView::keyPressEvent(QKeyEvent *event) +void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) { - Q_D(QFxListView); - QFxFlickable::keyPressEvent(event); + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::keyPressEvent(event); if (event->isAccepted()) return; if (d->model && d->model->count() && d->interactive) { - if ((d->orient == QFxListView::Horizontal && event->key() == Qt::Key_Left) - || (d->orient == QFxListView::Vertical && event->key() == Qt::Key_Up)) { + if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Left) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Up)) { if (currentIndex() > 0 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QFxListViewPrivate::Key; + d->moveReason = QmlGraphicsListViewPrivate::Key; decrementCurrentIndex(); event->accept(); return; @@ -1607,10 +1607,10 @@ void QFxListView::keyPressEvent(QKeyEvent *event) event->accept(); return; } - } else if ((d->orient == QFxListView::Horizontal && event->key() == Qt::Key_Right) - || (d->orient == QFxListView::Vertical && event->key() == Qt::Key_Down)) { + } else if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Right) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Down)) { if (currentIndex() < d->model->count() - 1 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QFxListViewPrivate::Key; + d->moveReason = QmlGraphicsListViewPrivate::Key; incrementCurrentIndex(); event->accept(); return; @@ -1620,7 +1620,7 @@ void QFxListView::keyPressEvent(QKeyEvent *event) } } } - d->moveReason = QFxListViewPrivate::Other; + d->moveReason = QmlGraphicsListViewPrivate::Other; event->ignore(); } @@ -1630,9 +1630,9 @@ void QFxListView::keyPressEvent(QKeyEvent *event) Increments the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the end. */ -void QFxListView::incrementCurrentIndex() +void QmlGraphicsListView::incrementCurrentIndex() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (currentIndex() < d->model->count() - 1 || d->wrap) { int index = currentIndex()+1; cancelFlick(); @@ -1646,9 +1646,9 @@ void QFxListView::incrementCurrentIndex() Decrements the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the beginning. */ -void QFxListView::decrementCurrentIndex() +void QmlGraphicsListView::decrementCurrentIndex() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (currentIndex() > 0 || d->wrap) { int index = currentIndex()-1; cancelFlick(); @@ -1656,28 +1656,28 @@ void QFxListView::decrementCurrentIndex() } } -void QFxListView::componentComplete() +void QmlGraphicsListView::componentComplete() { - Q_D(QFxListView); - QFxFlickable::componentComplete(); + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::componentComplete(); if (d->currentIndex < 0) d->updateCurrent(0); refill(); d->fixupPosition(); } -void QFxListView::refill() +void QmlGraphicsListView::refill() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->refill(d->position(), d->position()+d->size()-1); } -void QFxListView::trackedPositionChanged() +void QmlGraphicsListView::trackedPositionChanged() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (!d->trackedItem) return; - if (!isFlicking() && !d->moving && d->moveReason != QFxListViewPrivate::Mouse) { + if (!isFlicking() && !d->moving && d->moveReason != QmlGraphicsListViewPrivate::Mouse) { const qreal trackedPos = d->trackedItem->position(); const qreal viewPos = d->position(); if (d->haveHighlightRange) { @@ -1726,19 +1726,19 @@ void QFxListView::trackedPositionChanged() } } -void QFxListView::itemResized() +void QmlGraphicsListView::itemResized() { - Q_D(QFxListView); - QFxItem *item = qobject_cast(sender()); + Q_D(QmlGraphicsListView); + QmlGraphicsItem *item = qobject_cast(sender()); if (item) { d->layout(); d->fixupPosition(); } } -void QFxListView::itemsInserted(int modelIndex, int count) +void QmlGraphicsListView::itemsInserted(int modelIndex, int count) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->updateUnrequestedIndexes(); if (!d->visibleItems.count() || d->model->count() <= 1) { d->layout(); @@ -1824,9 +1824,9 @@ void QFxListView::itemsInserted(int modelIndex, int count) emit countChanged(); } -void QFxListView::itemsRemoved(int modelIndex, int count) +void QmlGraphicsListView::itemsRemoved(int modelIndex, int count) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->updateUnrequestedIndexes(); bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; if (!d->mapRangeFromModel(modelIndex, count)) { @@ -1921,9 +1921,9 @@ void QFxListView::itemsRemoved(int modelIndex, int count) emit countChanged(); } -void QFxListView::destroyRemoved() +void QmlGraphicsListView::destroyRemoved() { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); for (QList::Iterator it = d->visibleItems.begin(); it != d->visibleItems.end();) { FxListItem *listItem = *it; @@ -1939,9 +1939,9 @@ void QFxListView::destroyRemoved() d->layout(); } -void QFxListView::itemsMoved(int from, int to, int count) +void QmlGraphicsListView::itemsMoved(int from, int to, int count) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); qreal firstItemPos = d->visibleItems.first()->position(); QHash moved; int moveBy = 0; @@ -2005,31 +2005,31 @@ void QFxListView::itemsMoved(int from, int to, int count) d->layout(); } -void QFxListView::createdItem(int index, QFxItem *item) +void QmlGraphicsListView::createdItem(int index, QmlGraphicsItem *item) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); if (d->requestedIndex != index) { item->setParentItem(viewport()); d->unrequestedItems.insert(item, index); - if (d->orient == QFxListView::Vertical) + if (d->orient == QmlGraphicsListView::Vertical) item->setY(d->positionAt(index)); else item->setX(d->positionAt(index)); } } -void QFxListView::destroyingItem(QFxItem *item) +void QmlGraphicsListView::destroyingItem(QmlGraphicsItem *item) { - Q_D(QFxListView); + Q_D(QmlGraphicsListView); d->unrequestedItems.remove(item); } -QFxListViewAttached *QFxListView::qmlAttachedProperties(QObject *obj) +QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject *obj) { - return QFxListViewAttached::properties(obj); + return QmlGraphicsListViewAttached::properties(obj); } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QFxListView) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) QT_END_NAMESPACE #include "qfxlistview.moc" diff --git a/src/declarative/fx/qfxlistview.h b/src/declarative/fx/qfxlistview.h index b31b951..19e88c7 100644 --- a/src/declarative/fx/qfxlistview.h +++ b/src/declarative/fx/qfxlistview.h @@ -51,18 +51,18 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxVisualModel; -class QFxListViewAttached; -class QFxListViewPrivate; -class Q_DECLARATIVE_EXPORT QFxListView : public QFxFlickable +class QmlGraphicsVisualModel; +class QmlGraphicsListViewAttached; +class QmlGraphicsListViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable { Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxListView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) Q_PROPERTY(QVariant model READ model WRITE setModel) Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QFxItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) @@ -85,8 +85,8 @@ class Q_DECLARATIVE_EXPORT QFxListView : public QFxFlickable Q_CLASSINFO("DefaultProperty", "data") public: - QFxListView(QFxItem *parent=0); - ~QFxListView(); + QmlGraphicsListView(QmlGraphicsItem *parent=0); + ~QmlGraphicsListView(); QVariant model() const; void setModel(const QVariant &); @@ -97,7 +97,7 @@ public: int currentIndex() const; void setCurrentIndex(int idx); - QFxItem *currentItem(); + QmlGraphicsItem *currentItem(); int count() const; QmlComponent *highlight() const; @@ -139,7 +139,7 @@ public: qreal highlightResizeSpeed() const; void setHighlightResizeSpeed(qreal); - static QFxListViewAttached *qmlAttachedProperties(QObject *); + static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); public Q_SLOTS: void incrementCurrentIndex(); @@ -172,14 +172,14 @@ private Q_SLOTS: void itemsRemoved(int index, int count); void itemsMoved(int from, int to, int count); void destroyRemoved(); - void createdItem(int index, QFxItem *item); - void destroyingItem(QFxItem *item); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); }; QT_END_NAMESPACE -QML_DECLARE_TYPEINFO(QFxListView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QFxListView) +QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsListView) QT_END_HEADER diff --git a/src/declarative/fx/qfxloader.cpp b/src/declarative/fx/qfxloader.cpp index da4a280..af51282 100644 --- a/src/declarative/fx/qfxloader.cpp +++ b/src/declarative/fx/qfxloader.cpp @@ -44,16 +44,16 @@ QT_BEGIN_NAMESPACE -QFxLoaderPrivate::QFxLoaderPrivate() -: item(0), component(0), ownComponent(false), resizeMode(QFxLoader::SizeLoaderToItem) +QmlGraphicsLoaderPrivate::QmlGraphicsLoaderPrivate() +: item(0), component(0), ownComponent(false), resizeMode(QmlGraphicsLoader::SizeLoaderToItem) { } -QFxLoaderPrivate::~QFxLoaderPrivate() +QmlGraphicsLoaderPrivate::~QmlGraphicsLoaderPrivate() { } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QFxLoader) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QmlGraphicsLoader) /*! \qmlclass Loader @@ -78,22 +78,22 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QFxLoader) /*! \internal - \class QFxLoader + \class QmlGraphicsLoader \qmlclass Loader */ /*! - Create a new QFxLoader instance. + Create a new QmlGraphicsLoader instance. */ -QFxLoader::QFxLoader(QFxItem *parent) - : QFxItem(*(new QFxLoaderPrivate), parent) +QmlGraphicsLoader::QmlGraphicsLoader(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsLoaderPrivate), parent) { } /*! Destroy the loader instance. */ -QFxLoader::~QFxLoader() +QmlGraphicsLoader::~QmlGraphicsLoader() { } @@ -104,15 +104,15 @@ QFxLoader::~QFxLoader() \sa status, progress */ -QUrl QFxLoader::source() const +QUrl QmlGraphicsLoader::source() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); return d->source; } -void QFxLoader::setSource(const QUrl &url) +void QmlGraphicsLoader::setSource(const QUrl &url) { - Q_D(QFxLoader); + Q_D(QmlGraphicsLoader); if (d->source == url) return; @@ -167,15 +167,15 @@ void QFxLoader::setSource(const QUrl &url) \sa source */ -QmlComponent *QFxLoader::sourceComponent() const +QmlComponent *QmlGraphicsLoader::sourceComponent() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); return d->component; } -void QFxLoader::setSourceComponent(QmlComponent *comp) +void QmlGraphicsLoader::setSourceComponent(QmlComponent *comp) { - Q_D(QFxLoader); + Q_D(QmlGraphicsLoader); if (comp == d->component) return; @@ -211,9 +211,9 @@ void QFxLoader::setSourceComponent(QmlComponent *comp) } } -void QFxLoaderPrivate::_q_sourceLoaded() +void QmlGraphicsLoaderPrivate::_q_sourceLoaded() { - Q_Q(QFxLoader); + Q_Q(QmlGraphicsLoader); if (component) { QmlContext *ctxt = new QmlContext(qmlContext(q)); @@ -229,14 +229,14 @@ void QFxLoaderPrivate::_q_sourceLoaded() QObject *obj = component->create(ctxt); if (obj) { - item = qobject_cast(obj); + item = qobject_cast(obj); if (item) { item->setParentItem(q); // item->setFocus(true); - QFxItem *resizeItem = 0; - if (resizeMode == QFxLoader::SizeLoaderToItem) + QmlGraphicsItem *resizeItem = 0; + if (resizeMode == QmlGraphicsLoader::SizeLoaderToItem) resizeItem = item; - else if (resizeMode == QFxLoader::SizeItemToLoader) + else if (resizeMode == QmlGraphicsLoader::SizeItemToLoader) resizeItem = q; if (resizeItem) { QObject::connect(resizeItem, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); @@ -269,12 +269,12 @@ void QFxLoaderPrivate::_q_sourceLoaded() \sa progress */ -QFxLoader::Status QFxLoader::status() const +QmlGraphicsLoader::Status QmlGraphicsLoader::status() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); if (d->component) - return static_cast(d->component->status()); + return static_cast(d->component->status()); if (d->item) return Ready; @@ -290,9 +290,9 @@ QFxLoader::Status QFxLoader::status() const \sa status */ -qreal QFxLoader::progress() const +qreal QmlGraphicsLoader::progress() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); if (d->item) return 1.0; @@ -315,20 +315,20 @@ qreal QFxLoader::progress() const The default resizeMode is SizeLoaderToItem. */ -QFxLoader::ResizeMode QFxLoader::resizeMode() const +QmlGraphicsLoader::ResizeMode QmlGraphicsLoader::resizeMode() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); return d->resizeMode; } -void QFxLoader::setResizeMode(ResizeMode mode) +void QmlGraphicsLoader::setResizeMode(ResizeMode mode) { - Q_D(QFxLoader); + Q_D(QmlGraphicsLoader); if (mode == d->resizeMode) return; if (d->item) { - QFxItem *resizeItem = 0; + QmlGraphicsItem *resizeItem = 0; if (d->resizeMode == SizeLoaderToItem) resizeItem = d->item; else if (d->resizeMode == SizeItemToLoader) @@ -342,7 +342,7 @@ void QFxLoader::setResizeMode(ResizeMode mode) d->resizeMode = mode; if (d->item) { - QFxItem *resizeItem = 0; + QmlGraphicsItem *resizeItem = 0; if (d->resizeMode == SizeLoaderToItem) resizeItem = d->item; else if (d->resizeMode == SizeItemToLoader) @@ -356,17 +356,17 @@ void QFxLoader::setResizeMode(ResizeMode mode) } } -void QFxLoaderPrivate::_q_updateSize() +void QmlGraphicsLoaderPrivate::_q_updateSize() { - Q_Q(QFxLoader); + Q_Q(QmlGraphicsLoader); if (!item) return; switch (resizeMode) { - case QFxLoader::SizeLoaderToItem: + case QmlGraphicsLoader::SizeLoaderToItem: q->setImplicitWidth(item->width()); q->setImplicitHeight(item->height()); break; - case QFxLoader::SizeItemToLoader: + case QmlGraphicsLoader::SizeItemToLoader: item->setWidth(q->width()); item->setHeight(q->height()); break; @@ -379,9 +379,9 @@ void QFxLoaderPrivate::_q_updateSize() \qmlproperty Item Loader::item This property holds the top-level item created from source. */ -QFxItem *QFxLoader::item() const +QmlGraphicsItem *QmlGraphicsLoader::item() const { - Q_D(const QFxLoader); + Q_D(const QmlGraphicsLoader); return d->item; } diff --git a/src/declarative/fx/qfxloader.h b/src/declarative/fx/qfxloader.h index b967465..b838ed0 100644 --- a/src/declarative/fx/qfxloader.h +++ b/src/declarative/fx/qfxloader.h @@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxLoaderPrivate; -class Q_DECLARATIVE_EXPORT QFxLoader : public QFxItem +class QmlGraphicsLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem { Q_OBJECT Q_ENUMS(Status) @@ -60,14 +60,14 @@ class Q_DECLARATIVE_EXPORT QFxLoader : public QFxItem Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) - Q_PROPERTY(QFxItem *item READ item NOTIFY itemChanged) + Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) Q_PROPERTY(Status status READ status NOTIFY statusChanged) Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) //### sourceItem public: - QFxLoader(QFxItem *parent=0); - virtual ~QFxLoader(); + QmlGraphicsLoader(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsLoader(); QUrl source() const; void setSource(const QUrl &); @@ -83,7 +83,7 @@ public: ResizeMode resizeMode() const; void setResizeMode(ResizeMode mode); - QFxItem *item() const; + QmlGraphicsItem *item() const; Q_SIGNALS: void itemChanged(); @@ -92,15 +92,15 @@ Q_SIGNALS: void progressChanged(); private: - Q_DISABLE_COPY(QFxLoader) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxLoader) + Q_DISABLE_COPY(QmlGraphicsLoader) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxLoader) +QML_DECLARE_TYPE(QmlGraphicsLoader) QT_END_HEADER diff --git a/src/declarative/fx/qfxloader_p.h b/src/declarative/fx/qfxloader_p.h index 0700fcd..336c884 100644 --- a/src/declarative/fx/qfxloader_p.h +++ b/src/declarative/fx/qfxloader_p.h @@ -59,19 +59,19 @@ QT_BEGIN_NAMESPACE class QmlContext; -class QFxLoaderPrivate : public QFxItemPrivate +class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxLoader) + Q_DECLARE_PUBLIC(QmlGraphicsLoader) public: - QFxLoaderPrivate(); - ~QFxLoaderPrivate(); + QmlGraphicsLoaderPrivate(); + ~QmlGraphicsLoaderPrivate(); QUrl source; - QFxItem *item; + QmlGraphicsItem *item; QmlComponent *component; bool ownComponent; - QFxLoader::ResizeMode resizeMode; + QmlGraphicsLoader::ResizeMode resizeMode; void _q_sourceLoaded(); void _q_updateSize(); diff --git a/src/declarative/fx/qfxmouseregion.cpp b/src/declarative/fx/qfxmouseregion.cpp index 315a273..8acf32c 100644 --- a/src/declarative/fx/qfxmouseregion.cpp +++ b/src/declarative/fx/qfxmouseregion.cpp @@ -49,72 +49,72 @@ QT_BEGIN_NAMESPACE static const qreal DragThreshold = 5; static const int PressAndHoldDelay = 800; -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QFxDrag) -QFxDrag::QFxDrag(QObject *parent) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QmlGraphicsDrag) +QmlGraphicsDrag::QmlGraphicsDrag(QObject *parent) : QObject(parent), _target(0), _axis(XandYAxis), _xmin(0), _xmax(0), _ymin(0), _ymax(0) { } -QFxDrag::~QFxDrag() +QmlGraphicsDrag::~QmlGraphicsDrag() { } -QFxItem *QFxDrag::target() const +QmlGraphicsItem *QmlGraphicsDrag::target() const { return _target; } -void QFxDrag::setTarget(QFxItem *t) +void QmlGraphicsDrag::setTarget(QmlGraphicsItem *t) { _target = t; } -QFxDrag::Axis QFxDrag::axis() const +QmlGraphicsDrag::Axis QmlGraphicsDrag::axis() const { return _axis; } -void QFxDrag::setAxis(QFxDrag::Axis a) +void QmlGraphicsDrag::setAxis(QmlGraphicsDrag::Axis a) { _axis = a; } -qreal QFxDrag::xmin() const +qreal QmlGraphicsDrag::xmin() const { return _xmin; } -void QFxDrag::setXmin(qreal m) +void QmlGraphicsDrag::setXmin(qreal m) { _xmin = m; } -qreal QFxDrag::xmax() const +qreal QmlGraphicsDrag::xmax() const { return _xmax; } -void QFxDrag::setXmax(qreal m) +void QmlGraphicsDrag::setXmax(qreal m) { _xmax = m; } -qreal QFxDrag::ymin() const +qreal QmlGraphicsDrag::ymin() const { return _ymin; } -void QFxDrag::setYmin(qreal m) +void QmlGraphicsDrag::setYmin(qreal m) { _ymin = m; } -qreal QFxDrag::ymax() const +qreal QmlGraphicsDrag::ymax() const { return _ymax; } -void QFxDrag::setYmax(qreal m) +void QmlGraphicsDrag::setYmax(qreal m) { _ymax = m; } @@ -225,35 +225,35 @@ void QFxDrag::setYmax(qreal m) The \e accepted property of the MouseEvent parameter is ignored in this handler. */ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QFxMouseRegion) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QmlGraphicsMouseRegion) /*! \internal - \class QFxMouseRegion - \brief The QFxMouseRegion class provides a simple mouse handling abstraction for use within Qml. + \class QmlGraphicsMouseRegion + \brief The QmlGraphicsMouseRegion class provides a simple mouse handling abstraction for use within Qml. \ingroup group_coreitems - All QFxItem derived classes can do mouse handling but the QFxMouseRegion class exposes mouse + All QmlGraphicsItem derived classes can do mouse handling but the QmlGraphicsMouseRegion class exposes mouse handling data as properties and tracks flicking and dragging of the mouse. - A QFxMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. + A QmlGraphicsMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. */ -QFxMouseRegion::QFxMouseRegion(QFxItem *parent) - : QFxItem(*(new QFxMouseRegionPrivate), parent) +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsMouseRegionPrivate), parent) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); d->init(); } -QFxMouseRegion::QFxMouseRegion(QFxMouseRegionPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); d->init(); } -QFxMouseRegion::~QFxMouseRegion() +QmlGraphicsMouseRegion::~QmlGraphicsMouseRegion() { } @@ -274,15 +274,15 @@ QFxMouseRegion::~QFxMouseRegion() The coordinates are relative to the MouseRegion. */ -qreal QFxMouseRegion::mouseX() const +qreal QmlGraphicsMouseRegion::mouseX() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->lastPos.x(); } -qreal QFxMouseRegion::mouseY() const +qreal QmlGraphicsMouseRegion::mouseY() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->lastPos.y(); } @@ -290,15 +290,15 @@ qreal QFxMouseRegion::mouseY() const \qmlproperty bool MouseRegion::enabled This property holds whether the item accepts mouse events. */ -bool QFxMouseRegion::isEnabled() const +bool QmlGraphicsMouseRegion::isEnabled() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->absorb; } -void QFxMouseRegion::setEnabled(bool a) +void QmlGraphicsMouseRegion::setEnabled(bool a) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (a != d->absorb) { d->absorb = a; emit enabledChanged(); @@ -331,40 +331,40 @@ void QFxMouseRegion::setEnabled(bool a) \sa acceptedButtons */ -Qt::MouseButtons QFxMouseRegion::pressedButtons() const +Qt::MouseButtons QmlGraphicsMouseRegion::pressedButtons() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->lastButtons; } -void QFxMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); d->moved = false; if (!d->absorb) - QFxItem::mousePressEvent(event); + QmlGraphicsItem::mousePressEvent(event); else { d->longPress = false; d->saveEvent(event); - d->dragX = drag()->axis() & QFxDrag::XAxis; - d->dragY = drag()->axis() & QFxDrag::YAxis; + d->dragX = drag()->axis() & QmlGraphicsDrag::XAxis; + d->dragY = drag()->axis() & QmlGraphicsDrag::YAxis; d->dragged = false; setHovered(true); d->start = event->pos(); d->startScene = event->scenePos(); // we should only start timer if pressAndHold is connected to. - if (d->isConnected("pressAndHold(QFxMouseEvent*)")) + if (d->isConnected("pressAndHold(QmlGraphicsMouseEvent*)")) d->pressAndHoldTimer.start(PressAndHoldDelay, this); setKeepMouseGrab(false); event->setAccepted(setPressed(true)); } } -void QFxMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) { - QFxItem::mouseMoveEvent(event); + QmlGraphicsItem::mouseMoveEvent(event); return; } @@ -424,16 +424,16 @@ void QFxMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) } } d->moved = true; - QFxMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); emit positionChanged(&me); } -void QFxMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) { - QFxItem::mouseReleaseEvent(event); + QmlGraphicsItem::mouseReleaseEvent(event); } else { d->saveEvent(event); setPressed(false); @@ -444,57 +444,57 @@ void QFxMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) } } -void QFxMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) { - QFxItem::mouseDoubleClickEvent(event); + QmlGraphicsItem::mouseDoubleClickEvent(event); } else { - QFxItem::mouseDoubleClickEvent(event); + QmlGraphicsItem::mouseDoubleClickEvent(event); if (event->isAccepted()) { // Only deliver the event if we have accepted the press. d->saveEvent(event); - QFxMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); emit this->doubleClicked(&me); } } } -void QFxMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +void QmlGraphicsMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) - QFxItem::hoverEnterEvent(event); + QmlGraphicsItem::hoverEnterEvent(event); else setHovered(true); } -void QFxMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +void QmlGraphicsMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) { - QFxItem::hoverEnterEvent(event); + QmlGraphicsItem::hoverEnterEvent(event); } else { d->lastPos = event->pos(); - QFxMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); emit positionChanged(&me); } } -void QFxMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +void QmlGraphicsMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (!d->absorb) - QFxItem::hoverLeaveEvent(event); + QmlGraphicsItem::hoverLeaveEvent(event); else setHovered(false); } -bool QFxMouseRegion::sceneEvent(QEvent *event) +bool QmlGraphicsMouseRegion::sceneEvent(QEvent *event) { - bool rv = QFxItem::sceneEvent(event); + bool rv = QmlGraphicsItem::sceneEvent(event); if (event->type() == QEvent::UngrabMouse) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (d->pressed) { // if our mouse grab has been removed (probably by Flickable), fix our // state @@ -507,14 +507,14 @@ bool QFxMouseRegion::sceneEvent(QEvent *event) return rv; } -void QFxMouseRegion::timerEvent(QTimerEvent *event) +void QmlGraphicsMouseRegion::timerEvent(QTimerEvent *event) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (event->timerId() == d->pressAndHoldTimer.timerId()) { d->pressAndHoldTimer.stop(); if (d->pressed && d->dragged == false && d->hovered == true) { d->longPress = true; - QFxMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); emit pressAndHold(&me); } } @@ -538,9 +538,9 @@ void QFxMouseRegion::timerEvent(QTimerEvent *event) \warning This property is not updated if the region moves under the mouse: \e containsMouse will not change. In addition, if hoverEnabled is false, containsMouse will only be valid when the mouse is pressed. */ -bool QFxMouseRegion::hovered() const +bool QmlGraphicsMouseRegion::hovered() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->hovered; } @@ -548,15 +548,15 @@ bool QFxMouseRegion::hovered() const \qmlproperty bool MouseRegion::pressed This property holds whether the mouse region is currently pressed. */ -bool QFxMouseRegion::pressed() const +bool QmlGraphicsMouseRegion::pressed() const { - Q_D(const QFxMouseRegion); + Q_D(const QmlGraphicsMouseRegion); return d->pressed; } -void QFxMouseRegion::setHovered(bool h) +void QmlGraphicsMouseRegion::setHovered(bool h) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); if (d->hovered != h) { d->hovered = h; emit hoveredChanged(); @@ -584,12 +584,12 @@ void QFxMouseRegion::setHovered(bool h) The default is to accept the Left button. */ -Qt::MouseButtons QFxMouseRegion::acceptedButtons() const +Qt::MouseButtons QmlGraphicsMouseRegion::acceptedButtons() const { return acceptedMouseButtons(); } -void QFxMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) +void QmlGraphicsMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) { if (buttons != acceptedMouseButtons()) { setAcceptedMouseButtons(buttons); @@ -597,14 +597,14 @@ void QFxMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) } } -bool QFxMouseRegion::setPressed(bool p) +bool QmlGraphicsMouseRegion::setPressed(bool p) { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); bool isclick = d->pressed == true && p == false && d->dragged == false && d->hovered == true; if (d->pressed != p) { d->pressed = p; - QFxMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); if (d->pressed) { emit positionChanged(&me); emit pressed(&me); @@ -620,9 +620,9 @@ bool QFxMouseRegion::setPressed(bool p) return false; } -QFxDrag *QFxMouseRegion::drag() +QmlGraphicsDrag *QmlGraphicsMouseRegion::drag() { - Q_D(QFxMouseRegion); + Q_D(QmlGraphicsMouseRegion); return &(d->drag); } diff --git a/src/declarative/fx/qfxmouseregion.h b/src/declarative/fx/qfxmouseregion.h index 114ea87..41c3d0e 100644 --- a/src/declarative/fx/qfxmouseregion.h +++ b/src/declarative/fx/qfxmouseregion.h @@ -50,12 +50,12 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QFxDrag : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject { Q_OBJECT Q_ENUMS(Axis) - Q_PROPERTY(QFxItem *target READ target WRITE setTarget) + Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) Q_PROPERTY(Axis axis READ axis WRITE setAxis) Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) @@ -64,11 +64,11 @@ class Q_DECLARATIVE_EXPORT QFxDrag : public QObject //### consider drag and drop public: - QFxDrag(QObject *parent=0); - ~QFxDrag(); + QmlGraphicsDrag(QObject *parent=0); + ~QmlGraphicsDrag(); - QFxItem *target() const; - void setTarget(QFxItem *); + QmlGraphicsItem *target() const; + void setTarget(QmlGraphicsItem *); enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; Axis axis() const; @@ -84,18 +84,18 @@ public: void setYmax(qreal); private: - QFxItem *_target; + QmlGraphicsItem *_target; Axis _axis; qreal _xmin; qreal _xmax; qreal _ymin; qreal _ymax; - Q_DISABLE_COPY(QFxDrag) + Q_DISABLE_COPY(QmlGraphicsDrag) }; -class QFxMouseEvent; -class QFxMouseRegionPrivate; -class Q_DECLARATIVE_EXPORT QFxMouseRegion : public QFxItem +class QmlGraphicsMouseEvent; +class QmlGraphicsMouseRegionPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem { Q_OBJECT @@ -107,11 +107,11 @@ class Q_DECLARATIVE_EXPORT QFxMouseRegion : public QFxItem Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) - Q_PROPERTY(QFxDrag *drag READ drag) //### add flicking to QFxDrag or add a QFxFlick ??? + Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? public: - QFxMouseRegion(QFxItem *parent=0); - ~QFxMouseRegion(); + QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); + ~QmlGraphicsMouseRegion(); qreal mouseX() const; qreal mouseY() const; @@ -127,20 +127,20 @@ public: Qt::MouseButtons acceptedButtons() const; void setAcceptedButtons(Qt::MouseButtons buttons); - QFxDrag *drag(); + QmlGraphicsDrag *drag(); Q_SIGNALS: void hoveredChanged(); void pressedChanged(); void enabledChanged(); void acceptedButtonsChanged(); - void positionChanged(QFxMouseEvent *mouse); + void positionChanged(QmlGraphicsMouseEvent *mouse); - void pressed(QFxMouseEvent *mouse); - void pressAndHold(QFxMouseEvent *mouse); - void released(QFxMouseEvent *mouse); - void clicked(QFxMouseEvent *mouse); - void doubleClicked(QFxMouseEvent *mouse); + void pressed(QmlGraphicsMouseEvent *mouse); + void pressAndHold(QmlGraphicsMouseEvent *mouse); + void released(QmlGraphicsMouseEvent *mouse); + void clicked(QmlGraphicsMouseEvent *mouse); + void doubleClicked(QmlGraphicsMouseEvent *mouse); void entered(); void exited(); @@ -163,17 +163,17 @@ private: void handleRelease(); protected: - QFxMouseRegion(QFxMouseRegionPrivate &dd, QFxItem *parent); + QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); private: - Q_DISABLE_COPY(QFxMouseRegion) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxMouseRegion) + Q_DISABLE_COPY(QmlGraphicsMouseRegion) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxDrag) -QML_DECLARE_TYPE(QFxMouseRegion) +QML_DECLARE_TYPE(QmlGraphicsDrag) +QML_DECLARE_TYPE(QmlGraphicsMouseRegion) QT_END_HEADER diff --git a/src/declarative/fx/qfxmouseregion_p.h b/src/declarative/fx/qfxmouseregion_p.h index caed2ab..66efb6f 100644 --- a/src/declarative/fx/qfxmouseregion_p.h +++ b/src/declarative/fx/qfxmouseregion_p.h @@ -60,19 +60,19 @@ QT_BEGIN_NAMESPACE -class QFxMouseRegionPrivate : public QFxItemPrivate +class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxMouseRegion) + Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) public: - QFxMouseRegionPrivate() + QmlGraphicsMouseRegionPrivate() : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) { } void init() { - Q_Q(QFxMouseRegion); + Q_Q(QmlGraphicsMouseRegion); q->setAcceptedMouseButtons(Qt::LeftButton); } @@ -84,7 +84,7 @@ public: } bool isConnected(const char *signal) { - Q_Q(QFxMouseRegion); + Q_Q(QmlGraphicsMouseRegion); int idx = QObjectPrivate::get(q)->signalIndex(signal); return QObjectPrivate::get(q)->isSignalConnected(idx); } @@ -97,7 +97,7 @@ public: bool dragX : 1; bool dragY : 1; bool dragged : 1; - QFxDrag drag; + QmlGraphicsDrag drag; QPointF start; QPointF startScene; qreal startX; diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp index e0ef99f..24d9602 100644 --- a/src/declarative/fx/qfxpainteditem.cpp +++ b/src/declarative/fx/qfxpainteditem.cpp @@ -53,8 +53,8 @@ QT_BEGIN_NAMESPACE /*! - \class QFxPaintedItem - \brief The QFxPaintedItem class is an abstract base class for QmlView items that want cached painting. + \class QmlGraphicsPaintedItem + \brief The QmlGraphicsPaintedItem class is an abstract base class for QmlView items that want cached painting. \internal This is a convenience class for implementing items that paint their contents @@ -62,21 +62,21 @@ QT_BEGIN_NAMESPACE The dirtyCache() function should be called if the contents change to ensure the cache is refreshed the next time painting occurs. - To subclass QFxPaintedItem, you must reimplement drawContents() to draw + To subclass QmlGraphicsPaintedItem, you must reimplement drawContents() to draw the contents of the item. */ /*! - \fn void QFxPaintedItem::drawContents(QPainter *painter, const QRect &rect) + \fn void QmlGraphicsPaintedItem::drawContents(QPainter *painter, const QRect &rect) This function is called when the cache needs to be refreshed. When - sub-classing QFxPaintedItem this function should be implemented so as to + sub-classing QmlGraphicsPaintedItem this function should be implemented so as to paint the contents of the item using the given \a painter for the area of the contents specified by \a rect. */ /*! - \property QFxPaintedItem::contentsSize + \property QmlGraphicsPaintedItem::contentsSize \brief The size of the contents The contents size is the size of the item in regards to how it is painted @@ -94,11 +94,11 @@ static int inpaint_clearcache=0; \sa clearCache() */ -void QFxPaintedItem::dirtyCache(const QRect& rect) +void QmlGraphicsPaintedItem::dirtyCache(const QRect& rect) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); for (int i=0; i < d->imagecache.count(); ) { - QFxPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; + QmlGraphicsPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; QRect isect = (c->area & rect) | c->dirty; if (isect == c->area && !inpaint) { delete d->imagecache.takeAt(i); @@ -114,13 +114,13 @@ void QFxPaintedItem::dirtyCache(const QRect& rect) \sa dirtyCache() */ -void QFxPaintedItem::clearCache() +void QmlGraphicsPaintedItem::clearCache() { if (inpaint) { inpaint_clearcache=1; return; } - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); qDeleteAll(d->imagecache); d->imagecache.clear(); } @@ -130,9 +130,9 @@ void QFxPaintedItem::clearCache() \sa setContentsSize() */ -QSize QFxPaintedItem::contentsSize() const +QSize QmlGraphicsPaintedItem::contentsSize() const { - Q_D(const QFxPaintedItem); + Q_D(const QmlGraphicsPaintedItem); return d->contentsSize; } @@ -141,9 +141,9 @@ QSize QFxPaintedItem::contentsSize() const \sa contentsSize() */ -void QFxPaintedItem::setContentsSize(const QSize &size) +void QmlGraphicsPaintedItem::setContentsSize(const QSize &size) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); if (d->contentsSize == size) return; d->contentsSize = size; clearCache(); @@ -151,21 +151,21 @@ void QFxPaintedItem::setContentsSize(const QSize &size) } /*! - Constructs a new QFxPaintedItem with the given \a parent. + Constructs a new QmlGraphicsPaintedItem with the given \a parent. */ -QFxPaintedItem::QFxPaintedItem(QFxItem *parent) - : QFxItem(*(new QFxPaintedItemPrivate), parent) +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPaintedItemPrivate), parent) { init(); } /*! \internal - Constructs a new QFxPaintedItem with the given \a parent and + Constructs a new QmlGraphicsPaintedItem with the given \a parent and initialized private data member \a dd. */ -QFxPaintedItem::QFxPaintedItem(QFxPaintedItemPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { init(); } @@ -173,7 +173,7 @@ QFxPaintedItem::QFxPaintedItem(QFxPaintedItemPrivate &dd, QFxItem *parent) /*! Destroys the image item. */ -QFxPaintedItem::~QFxPaintedItem() +QmlGraphicsPaintedItem::~QmlGraphicsPaintedItem() { clearCache(); } @@ -181,16 +181,16 @@ QFxPaintedItem::~QFxPaintedItem() /*! \internal */ -void QFxPaintedItem::init() +void QmlGraphicsPaintedItem::init() { connect(this,SIGNAL(widthChanged()),this,SLOT(clearCache())); connect(this,SIGNAL(heightChanged()),this,SLOT(clearCache())); connect(this,SIGNAL(visibleChanged()),this,SLOT(clearCache())); } -void QFxPaintedItem::setCacheFrozen(bool frozen) +void QmlGraphicsPaintedItem::setCacheFrozen(bool frozen) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); if (d->cachefrozen == frozen) return; d->cachefrozen = frozen; @@ -200,9 +200,9 @@ void QFxPaintedItem::setCacheFrozen(bool frozen) /*! \reimp */ -void QFxPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); const QRect content(QPoint(0,0),d->contentsSize); if (content.width() <= 0 || content.height() <= 0) return; @@ -290,7 +290,7 @@ void QFxPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidge qp.translate(-r.x(),-r.y()); drawContents(&qp, r); } - QFxPaintedItemPrivate::ImageCacheItem *newitem = new QFxPaintedItemPrivate::ImageCacheItem; + QmlGraphicsPaintedItemPrivate::ImageCacheItem *newitem = new QmlGraphicsPaintedItemPrivate::ImageCacheItem; newitem->area = r; newitem->image = img; d->imagecache.append(newitem); @@ -320,21 +320,21 @@ void QFxPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidge */ /*! - \property QFxPaintedItem::cacheSize + \property QmlGraphicsPaintedItem::cacheSize The maximum number of pixels of image cache to allow. The default is 0.1 megapixels. The cache will not be larger than the (unscaled) - size of the QFxPaintedItem. + size of the QmlGraphicsPaintedItem. */ -int QFxPaintedItem::cacheSize() const +int QmlGraphicsPaintedItem::cacheSize() const { - Q_D(const QFxPaintedItem); + Q_D(const QmlGraphicsPaintedItem); return d->max_imagecache_size; } -void QFxPaintedItem::setCacheSize(int pixels) +void QmlGraphicsPaintedItem::setCacheSize(int pixels) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); if (pixels < d->max_imagecache_size) { int cachesize=0; for (int i=0; iimagecache.count(); ++i) { @@ -359,7 +359,7 @@ void QFxPaintedItem::setCacheSize(int pixels) } /*! - \property QFxPaintedItem::fillColor + \property QmlGraphicsPaintedItem::fillColor The color to be used to fill the item prior to calling drawContents(). By default, this is Qt::transparent. @@ -367,9 +367,9 @@ void QFxPaintedItem::setCacheSize(int pixels) Performance improvements can be achieved if subclasses call this with either an invalid color (QColor()), or an appropriate solid color. */ -void QFxPaintedItem::setFillColor(const QColor& c) +void QmlGraphicsPaintedItem::setFillColor(const QColor& c) { - Q_D(QFxPaintedItem); + Q_D(QmlGraphicsPaintedItem); if (d->fillColor == c) return; d->fillColor = c; @@ -377,9 +377,9 @@ void QFxPaintedItem::setFillColor(const QColor& c) update(); } -QColor QFxPaintedItem::fillColor() const +QColor QmlGraphicsPaintedItem::fillColor() const { - Q_D(const QFxPaintedItem); + Q_D(const QmlGraphicsPaintedItem); return d->fillColor; } diff --git a/src/declarative/fx/qfxpainteditem.h b/src/declarative/fx/qfxpainteditem.h index 13c6b15..33f938c 100644 --- a/src/declarative/fx/qfxpainteditem.h +++ b/src/declarative/fx/qfxpainteditem.h @@ -52,8 +52,8 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxPaintedItemPrivate; -class Q_DECLARATIVE_EXPORT QFxPaintedItem : public QFxItem +class QmlGraphicsPaintedItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem { Q_OBJECT @@ -62,8 +62,8 @@ class Q_DECLARATIVE_EXPORT QFxPaintedItem : public QFxItem Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) public: - QFxPaintedItem(QFxItem *parent=0); - ~QFxPaintedItem(); + QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsPaintedItem(); QSize contentsSize() const; void setContentsSize(const QSize &); @@ -77,7 +77,7 @@ public: void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); protected: - QFxPaintedItem(QFxPaintedItemPrivate &dd, QFxItem *parent); + QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); virtual void drawContents(QPainter *p, const QRect &) = 0; @@ -92,13 +92,13 @@ protected Q_SLOTS: private: void init(); - Q_DISABLE_COPY(QFxPaintedItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxPaintedItem) + Q_DISABLE_COPY(QmlGraphicsPaintedItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxPaintedItem) +QML_DECLARE_TYPE(QmlGraphicsPaintedItem) QT_END_HEADER diff --git a/src/declarative/fx/qfxpainteditem_p.h b/src/declarative/fx/qfxpainteditem_p.h index 179fd61..cc7f697 100644 --- a/src/declarative/fx/qfxpainteditem_p.h +++ b/src/declarative/fx/qfxpainteditem_p.h @@ -57,12 +57,12 @@ QT_BEGIN_NAMESPACE -class QFxPaintedItemPrivate : public QFxItemPrivate +class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxPaintedItem) + Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) public: - QFxPaintedItemPrivate() + QmlGraphicsPaintedItemPrivate() : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) { } diff --git a/src/declarative/fx/qfxpath.cpp b/src/declarative/fx/qfxpath.cpp index 26fafc5..a9bd233 100644 --- a/src/declarative/fx/qfxpath.cpp +++ b/src/declarative/fx/qfxpath.cpp @@ -47,14 +47,14 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QFxPath) -QML_DEFINE_NOCREATE_TYPE(QFxPathElement) -QML_DEFINE_NOCREATE_TYPE(QFxCurve) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QFxPathAttribute) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QFxPathPercent) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QFxPathLine) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QFxPathQuad) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QFxPathCubic) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QmlGraphicsPath) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsPathElement) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsCurve) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QmlGraphicsPathAttribute) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QmlGraphicsPathPercent) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QmlGraphicsPathLine) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QmlGraphicsPathQuad) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QmlGraphicsPathCubic) /*! \qmlclass PathElement @@ -68,12 +68,12 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QFxPathCubic) /*! \internal - \class QFxPathElement + \class QmlGraphicsPathElement \ingroup group_utility */ /*! - \qmlclass Path QFxPath + \qmlclass Path QmlGraphicsPath \brief A Path object defines a path for use by \l PathView. A Path is composed of one or more path segments - PathLine, PathQuad, @@ -90,22 +90,22 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QFxPathCubic) /*! \internal - \class QFxPath + \class QmlGraphicsPath \ingroup group_utility - \brief The QFxPath class defines a path. - \sa QFxPathView + \brief The QmlGraphicsPath class defines a path. + \sa QmlGraphicsPathView */ -QFxPath::QFxPath(QObject *parent) - : QObject(*(new QFxPathPrivate), parent) +QmlGraphicsPath::QmlGraphicsPath(QObject *parent) + : QObject(*(new QmlGraphicsPathPrivate), parent) { } -QFxPath::QFxPath(QFxPathPrivate &dd, QObject *parent) +QmlGraphicsPath::QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent) : QObject(dd, parent) { } -QFxPath::~QFxPath() +QmlGraphicsPath::~QmlGraphicsPath() { } @@ -114,27 +114,27 @@ QFxPath::~QFxPath() \qmlproperty real Path::startY This property holds the starting position of the path. */ -qreal QFxPath::startX() const +qreal QmlGraphicsPath::startX() const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); return d->startX; } -void QFxPath::setStartX(qreal x) +void QmlGraphicsPath::setStartX(qreal x) { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); d->startX = x; } -qreal QFxPath::startY() const +qreal QmlGraphicsPath::startY() const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); return d->startY; } -void QFxPath::setStartY(qreal y) +void QmlGraphicsPath::setStartY(qreal y) { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); d->startY = y; } @@ -156,15 +156,15 @@ void QFxPath::setStartY(qreal y) \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 2 */ -QList* QFxPath::pathElements() +QList* QmlGraphicsPath::pathElements() { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); return &(d->_pathElements); } -void QFxPath::interpolate(int idx, const QString &name, qreal value) +void QmlGraphicsPath::interpolate(int idx, const QString &name, qreal value) { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); if (!idx) return; @@ -193,9 +193,9 @@ void QFxPath::interpolate(int idx, const QString &name, qreal value) } } -void QFxPath::endpoint(const QString &name) +void QmlGraphicsPath::endpoint(const QString &name) { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); const AttributePoint &first = d->_attributePoints.first(); qreal val = first.values.value(name); for (int ii = d->_attributePoints.count() - 1; ii >= 0; ii--) { @@ -210,9 +210,9 @@ void QFxPath::endpoint(const QString &name) } } -void QFxPath::processPath() +void QmlGraphicsPath::processPath() { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); d->_pointCache.clear(); d->_attributePoints.clear(); @@ -225,17 +225,17 @@ void QFxPath::processPath() d->_path.moveTo(d->startX, d->startY); - foreach (QFxPathElement *pathElement, d->_pathElements) { - if (QFxCurve *curve = qobject_cast(pathElement)) { + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsCurve *curve = qobject_cast(pathElement)) { curve->addToPath(d->_path); AttributePoint p; p.origpercent = d->_path.length(); d->_attributePoints << p; - } else if (QFxPathAttribute *attribute = qobject_cast(pathElement)) { + } else if (QmlGraphicsPathAttribute *attribute = qobject_cast(pathElement)) { AttributePoint &point = d->_attributePoints.last(); point.values[attribute->name()] = attribute->value(); interpolate(d->_attributePoints.count() - 1, attribute->name(), attribute->value()); - } else if (QFxPathPercent *percent = qobject_cast(pathElement)) { + } else if (QmlGraphicsPathPercent *percent = qobject_cast(pathElement)) { AttributePoint &point = d->_attributePoints.last(); point.values[QLatin1String("_qfx_percent")] = percent->value(); interpolate(d->_attributePoints.count() - 1, QLatin1String("_qfx_percent"), percent->value()); @@ -255,7 +255,7 @@ void QFxPath::processPath() qreal prevorigpercent = 0; for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { const AttributePoint &point = d->_attributePoints.at(ii); - if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QFxPathPercent + if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QmlGraphicsPathPercent if ( ii > 0) { qreal scale = (d->_attributePoints[ii].origpercent/length - prevorigpercent) / (point.values.value(QLatin1String("_qfx_percent"))-prevpercent); @@ -274,33 +274,33 @@ void QFxPath::processPath() emit changed(); } -void QFxPath::componentComplete() +void QmlGraphicsPath::componentComplete() { - Q_D(QFxPath); + Q_D(QmlGraphicsPath); QSet attrs; // First gather up all the attributes - foreach (QFxPathElement *pathElement, d->_pathElements) { - if (QFxPathAttribute *attribute = - qobject_cast(pathElement)) + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsPathAttribute *attribute = + qobject_cast(pathElement)) attrs.insert(attribute->name()); } d->_attributes = attrs.toList(); processPath(); - foreach (QFxPathElement *pathElement, d->_pathElements) + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) connect(pathElement, SIGNAL(changed()), this, SLOT(processPath())); } -QPainterPath QFxPath::path() const +QPainterPath QmlGraphicsPath::path() const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); return d->_path; } -QStringList QFxPath::attributes() const +QStringList QmlGraphicsPath::attributes() const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); return d->_attributes; } #include @@ -342,11 +342,11 @@ static inline QBezier nextBezier(const QPainterPath &path, int *from, qreal *bez return QBezier(); } -void QFxPath::createPointCache() const +void QmlGraphicsPath::createPointCache() const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer pc; + QmlPerfTimer pc; #endif qreal pathLength = d->_path.length(); const int points = int(pathLength*2); @@ -393,9 +393,9 @@ void QFxPath::createPointCache() const } } -QPointF QFxPath::pointAt(qreal p) const +QPointF QmlGraphicsPath::pointAt(qreal p) const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); if (d->_pointCache.isEmpty()) { createPointCache(); } @@ -407,9 +407,9 @@ QPointF QFxPath::pointAt(qreal p) const return d->_pointCache.at(idx); } -qreal QFxPath::attributeAt(const QString &name, qreal percent) const +qreal QmlGraphicsPath::attributeAt(const QString &name, qreal percent) const { - Q_D(const QFxPath); + Q_D(const QmlGraphicsPath); if (percent < 0 || percent > 1) return 0; @@ -435,12 +435,12 @@ qreal QFxPath::attributeAt(const QString &name, qreal percent) const /****************************************************************************/ -qreal QFxCurve::x() const +qreal QmlGraphicsCurve::x() const { return _x; } -void QFxCurve::setX(qreal x) +void QmlGraphicsCurve::setX(qreal x) { if (_x != x) { _x = x; @@ -448,12 +448,12 @@ void QFxCurve::setX(qreal x) } } -qreal QFxCurve::y() const +qreal QmlGraphicsCurve::y() const { return _y; } -void QFxCurve::setY(qreal y) +void QmlGraphicsCurve::setY(qreal y) { if (_y != y) { _y = y; @@ -492,11 +492,11 @@ void QFxCurve::setY(qreal y) /*! \internal - \class QFxPathAttribute + \class QmlGraphicsPathAttribute \ingroup group_utility - \brief The QFxPathAttribute class allows to set the value of an attribute at a given position in the path. + \brief The QmlGraphicsPathAttribute class allows to set the value of an attribute at a given position in the path. - \sa QFxPath + \sa QmlGraphicsPath */ @@ -509,12 +509,12 @@ void QFxCurve::setY(qreal y) the name of the attribute to change. */ -QString QFxPathAttribute::name() const +QString QmlGraphicsPathAttribute::name() const { return _name; } -void QFxPathAttribute::setName(const QString &name) +void QmlGraphicsPathAttribute::setName(const QString &name) { _name = name; } @@ -527,12 +527,12 @@ void QFxPathAttribute::setName(const QString &name) /*! the new value of the attribute. */ -qreal QFxPathAttribute::value() const +qreal QmlGraphicsPathAttribute::value() const { return _value; } -void QFxPathAttribute::setValue(qreal value) +void QmlGraphicsPathAttribute::setValue(qreal value) { if (_value != value) { _value = value; @@ -561,11 +561,11 @@ void QFxPathAttribute::setValue(qreal value) /*! \internal - \class QFxPathLine + \class QmlGraphicsPathLine \ingroup group_utility - \brief The QFxPathLine class defines a straight line. + \brief The QmlGraphicsPathLine class defines a straight line. - \sa QFxPath + \sa QmlGraphicsPath */ /*! @@ -575,7 +575,7 @@ void QFxPathAttribute::setValue(qreal value) Defines the end point of the line. */ -void QFxPathLine::addToPath(QPainterPath &path) +void QmlGraphicsPathLine::addToPath(QPainterPath &path) { path.lineTo(x(), y()); } @@ -604,11 +604,11 @@ void QFxPathLine::addToPath(QPainterPath &path) /*! \internal - \class QFxPathQuad + \class QmlGraphicsPathQuad \ingroup group_utility - \brief The QFxPathQuad class defines a quadratic Bezier curve with a control point. + \brief The QmlGraphicsPathQuad class defines a quadratic Bezier curve with a control point. - \sa QFxPath + \sa QmlGraphicsPath */ @@ -629,12 +629,12 @@ void QFxPathLine::addToPath(QPainterPath &path) /*! the x position of the control point. */ -qreal QFxPathQuad::controlX() const +qreal QmlGraphicsPathQuad::controlX() const { return _controlX; } -void QFxPathQuad::setControlX(qreal x) +void QmlGraphicsPathQuad::setControlX(qreal x) { if (_controlX != x) { _controlX = x; @@ -646,12 +646,12 @@ void QFxPathQuad::setControlX(qreal x) /*! the y position of the control point. */ -qreal QFxPathQuad::controlY() const +qreal QmlGraphicsPathQuad::controlY() const { return _controlY; } -void QFxPathQuad::setControlY(qreal y) +void QmlGraphicsPathQuad::setControlY(qreal y) { if (_controlY != y) { _controlY = y; @@ -659,7 +659,7 @@ void QFxPathQuad::setControlY(qreal y) } } -void QFxPathQuad::addToPath(QPainterPath &path) +void QmlGraphicsPathQuad::addToPath(QPainterPath &path) { path.quadTo(controlX(), controlY(), x(), y()); } @@ -691,11 +691,11 @@ void QFxPathQuad::addToPath(QPainterPath &path) /*! \internal - \class QFxPathCubic + \class QmlGraphicsPathCubic \ingroup group_utility - \brief The QFxPathCubic class defines a cubic Bezier curve with two control points. + \brief The QmlGraphicsPathCubic class defines a cubic Bezier curve with two control points. - \sa QFxPath + \sa QmlGraphicsPath */ /*! @@ -711,12 +711,12 @@ void QFxPathQuad::addToPath(QPainterPath &path) Defines the position of the first control point. */ -qreal QFxPathCubic::control1X() const +qreal QmlGraphicsPathCubic::control1X() const { return _control1X; } -void QFxPathCubic::setControl1X(qreal x) +void QmlGraphicsPathCubic::setControl1X(qreal x) { if (_control1X != x) { _control1X = x; @@ -724,12 +724,12 @@ void QFxPathCubic::setControl1X(qreal x) } } -qreal QFxPathCubic::control1Y() const +qreal QmlGraphicsPathCubic::control1Y() const { return _control1Y; } -void QFxPathCubic::setControl1Y(qreal y) +void QmlGraphicsPathCubic::setControl1Y(qreal y) { if (_control1Y != y) { _control1Y = y; @@ -743,12 +743,12 @@ void QFxPathCubic::setControl1Y(qreal y) Defines the position of the second control point. */ -qreal QFxPathCubic::control2X() const +qreal QmlGraphicsPathCubic::control2X() const { return _control2X; } -void QFxPathCubic::setControl2X(qreal x) +void QmlGraphicsPathCubic::setControl2X(qreal x) { if (_control2X != x) { _control2X = x; @@ -756,12 +756,12 @@ void QFxPathCubic::setControl2X(qreal x) } } -qreal QFxPathCubic::control2Y() const +qreal QmlGraphicsPathCubic::control2Y() const { return _control2Y; } -void QFxPathCubic::setControl2Y(qreal y) +void QmlGraphicsPathCubic::setControl2Y(qreal y) { if (_control2Y != y) { _control2Y = y; @@ -769,7 +769,7 @@ void QFxPathCubic::setControl2Y(qreal y) } } -void QFxPathCubic::addToPath(QPainterPath &path) +void QmlGraphicsPathCubic::addToPath(QPainterPath &path) { path.cubicTo(control1X(), control1Y(), control2X(), control2Y(), x(), y()); } @@ -816,23 +816,23 @@ void QFxPathCubic::addToPath(QPainterPath &path) /*! \internal - \class QFxPathPercent + \class QmlGraphicsPathPercent \ingroup group_utility - \brief The QFxPathPercent class manipulates the way a path is interpreted. + \brief The QmlGraphicsPathPercent class manipulates the way a path is interpreted. - QFxPathPercent allows you to bunch up items (or spread out items) along various - segments of a QFxPathView's path. + QmlGraphicsPathPercent allows you to bunch up items (or spread out items) along various + segments of a QmlGraphicsPathView's path. - \sa QFxPath + \sa QmlGraphicsPath */ -qreal QFxPathPercent::value() const +qreal QmlGraphicsPathPercent::value() const { return _value; } -void QFxPathPercent::setValue(qreal value) +void QmlGraphicsPathPercent::setValue(qreal value) { _value = value; } diff --git a/src/declarative/fx/qfxpath.h b/src/declarative/fx/qfxpath.h index 04d24c6..e724474 100644 --- a/src/declarative/fx/qfxpath.h +++ b/src/declarative/fx/qfxpath.h @@ -53,23 +53,23 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QFxPathElement : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject { Q_OBJECT public: - QFxPathElement(QObject *parent=0) : QObject(parent) {} + QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} Q_SIGNALS: void changed(); }; -class Q_DECLARATIVE_EXPORT QFxPathAttribute : public QFxPathElement +class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement { Q_OBJECT Q_PROPERTY(QString name READ name WRITE setName) Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) public: - QFxPathAttribute(QObject *parent=0) : QFxPathElement(parent), _value(0) {} + QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} QString name() const; @@ -83,14 +83,14 @@ private: qreal _value; }; -class Q_DECLARATIVE_EXPORT QFxCurve : public QFxPathElement +class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement { Q_OBJECT Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) public: - QFxCurve(QObject *parent=0) : QFxPathElement(parent), _x(0), _y(0) {} + QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} qreal x() const; void setX(qreal x); @@ -105,23 +105,23 @@ private: qreal _y; }; -class Q_DECLARATIVE_EXPORT QFxPathLine : public QFxCurve +class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve { Q_OBJECT public: - QFxPathLine(QObject *parent=0) : QFxCurve(parent) {} + QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} void addToPath(QPainterPath &path); }; -class Q_DECLARATIVE_EXPORT QFxPathQuad : public QFxCurve +class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve { Q_OBJECT Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) public: - QFxPathQuad(QObject *parent=0) : QFxCurve(parent), _controlX(0), _controlY(0) {} + QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} qreal controlX() const; void setControlX(qreal x); @@ -136,7 +136,7 @@ private: qreal _controlY; }; -class Q_DECLARATIVE_EXPORT QFxPathCubic : public QFxCurve +class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve { Q_OBJECT @@ -145,7 +145,7 @@ class Q_DECLARATIVE_EXPORT QFxPathCubic : public QFxCurve Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) public: - QFxPathCubic(QObject *parent=0) : QFxCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} + QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} qreal control1X() const; void setControl1X(qreal x); @@ -168,12 +168,12 @@ private: int _control2Y; }; -class Q_DECLARATIVE_EXPORT QFxPathPercent : public QFxPathElement +class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement { Q_OBJECT Q_PROPERTY(qreal value READ value WRITE setValue) public: - QFxPathPercent(QObject *parent=0) : QFxPathElement(parent) {} + QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} qreal value() const; void setValue(qreal value); @@ -182,22 +182,22 @@ private: qreal _value; }; -class QFxPathPrivate; -class Q_DECLARATIVE_EXPORT QFxPath : public QObject, public QmlParserStatus +class QmlGraphicsPathPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus { Q_OBJECT Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QList* pathElements READ pathElements) + Q_PROPERTY(QList* pathElements READ pathElements) Q_PROPERTY(qreal startX READ startX WRITE setStartX) Q_PROPERTY(qreal startY READ startY WRITE setStartY) Q_CLASSINFO("DefaultProperty", "pathElements") Q_INTERFACES(QmlParserStatus) public: - QFxPath(QObject *parent=0); - ~QFxPath(); + QmlGraphicsPath(QObject *parent=0); + ~QmlGraphicsPath(); - QList* pathElements(); + QList* pathElements(); qreal startX() const; void setStartX(qreal x); @@ -215,7 +215,7 @@ Q_SIGNALS: protected: virtual void componentComplete(); - QFxPath(QFxPathPrivate &dd, QObject *parent); + QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); private Q_SLOTS: void processPath(); @@ -239,20 +239,20 @@ private: void createPointCache() const; private: - Q_DISABLE_COPY(QFxPath) - Q_DECLARE_PRIVATE(QFxPath) + Q_DISABLE_COPY(QmlGraphicsPath) + Q_DECLARE_PRIVATE(QmlGraphicsPath) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxPathElement) -QML_DECLARE_TYPE(QFxPathAttribute) -QML_DECLARE_TYPE(QFxCurve) -QML_DECLARE_TYPE(QFxPathLine) -QML_DECLARE_TYPE(QFxPathQuad) -QML_DECLARE_TYPE(QFxPathCubic) -QML_DECLARE_TYPE(QFxPathPercent) -QML_DECLARE_TYPE(QFxPath) +QML_DECLARE_TYPE(QmlGraphicsPathElement) +QML_DECLARE_TYPE(QmlGraphicsPathAttribute) +QML_DECLARE_TYPE(QmlGraphicsCurve) +QML_DECLARE_TYPE(QmlGraphicsPathLine) +QML_DECLARE_TYPE(QmlGraphicsPathQuad) +QML_DECLARE_TYPE(QmlGraphicsPathCubic) +QML_DECLARE_TYPE(QmlGraphicsPathPercent) +QML_DECLARE_TYPE(QmlGraphicsPath) QT_END_HEADER diff --git a/src/declarative/fx/qfxpath_p.h b/src/declarative/fx/qfxpath_p.h index d4a419a..49bd0d8 100644 --- a/src/declarative/fx/qfxpath_p.h +++ b/src/declarative/fx/qfxpath_p.h @@ -59,17 +59,17 @@ QT_BEGIN_NAMESPACE -class QFxPathPrivate : public QObjectPrivate +class QmlGraphicsPathPrivate : public QObjectPrivate { - Q_DECLARE_PUBLIC(QFxPath) + Q_DECLARE_PUBLIC(QmlGraphicsPath) public: - QFxPathPrivate() : startX(0), startY(0) { } + QmlGraphicsPathPrivate() : startX(0), startY(0) { } QPainterPath _path; - QList _pathElements; + QList _pathElements; mutable QVector _pointCache; - QList _attributePoints; + QList _attributePoints; QStringList _attributes; int startX; int startY; diff --git a/src/declarative/fx/qfxpathview.cpp b/src/declarative/fx/qfxpathview.cpp index c580e98..fd7d734 100644 --- a/src/declarative/fx/qfxpathview.cpp +++ b/src/declarative/fx/qfxpathview.cpp @@ -54,20 +54,20 @@ static const int FlickThreshold = 5; QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QFxPathView) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QmlGraphicsPathView) -class QFxPathViewAttached : public QObject +class QmlGraphicsPathViewAttached : public QObject { Q_OBJECT public: - QFxPathViewAttached(QObject *parent) + QmlGraphicsPathViewAttached(QObject *parent) : QObject(parent), mo(new QmlOpenMetaObject(this)) { } - ~QFxPathViewAttached() + ~QmlGraphicsPathViewAttached() { - QFxPathView::attachedProperties.remove(parent()); + QmlGraphicsPathView::attachedProperties.remove(parent()); } QVariant value(const QByteArray &name) const @@ -86,14 +86,14 @@ private: /*! \internal - \class QFxPathView - \brief The QFxPathView class lays out items provided by a model on a path. + \class QmlGraphicsPathView + \brief The QmlGraphicsPathView class lays out items provided by a model on a path. \ingroup group_views The model must be a \l QListModelInterface subclass. - \sa QFxPath + \sa QmlGraphicsPath */ /*! @@ -112,23 +112,23 @@ private: \sa Path */ -QFxPathView::QFxPathView(QFxItem *parent) - : QFxItem(*(new QFxPathViewPrivate), parent) +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPathViewPrivate), parent) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->init(); } -QFxPathView::QFxPathView(QFxPathViewPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->init(); } -QFxPathView::~QFxPathView() +QmlGraphicsPathView::~QmlGraphicsPathView() { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->ownModel) delete d->model; } @@ -143,21 +143,21 @@ QFxPathView::~QFxPathView() \sa {qmlmodels}{Data Models} */ -QVariant QFxPathView::model() const +QVariant QmlGraphicsPathView::model() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->modelVariant; } -void QFxPathView::setModel(const QVariant &model) +void QmlGraphicsPathView::setModel(const QVariant &model) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->model) { disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); for (int i=0; iitems.count(); i++){ - QFxItem *p = d->items[i]; + QmlGraphicsItem *p = d->items[i]; d->model->release(p); } d->items.clear(); @@ -165,8 +165,8 @@ void QFxPathView::setModel(const QVariant &model) d->modelVariant = model; QObject *object = qvariant_cast(model); - QFxVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -174,16 +174,16 @@ void QFxPathView::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); } d->firstIndex = 0; d->pathOffset = 0; @@ -195,9 +195,9 @@ void QFxPathView::setModel(const QVariant &model) \qmlproperty int PathView::count This property holds the number of items in the model. */ -int QFxPathView::count() const +int QmlGraphicsPathView::count() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->model ? d->model->count() : 0; } @@ -207,15 +207,15 @@ int QFxPathView::count() const This property holds the path used to lay out the items. For more information see the \l Path documentation. */ -QFxPath *QFxPathView::path() const +QmlGraphicsPath *QmlGraphicsPathView::path() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->path; } -void QFxPathView::setPath(QFxPath *path) +void QmlGraphicsPathView::setPath(QmlGraphicsPath *path) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->path = path; connect(d->path, SIGNAL(changed()), this, SLOT(refill())); d->regenerate(); @@ -225,15 +225,15 @@ void QFxPathView::setPath(QFxPath *path) \qmlproperty int PathView::currentIndex This property holds the index of the current item. */ -int QFxPathView::currentIndex() const +int QmlGraphicsPathView::currentIndex() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->currentIndex; } -void QFxPathView::setCurrentIndex(int idx) +void QmlGraphicsPathView::setCurrentIndex(int idx) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->model && d->model->count()) idx = qAbs(idx % d->model->count()); if (d->model && idx != d->currentIndex) { @@ -253,22 +253,22 @@ void QFxPathView::setCurrentIndex(int idx) The offset specifies how far along the path the items are from their initial positions. */ -qreal QFxPathView::offset() const +qreal QmlGraphicsPathView::offset() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->_offset; } -void QFxPathView::setOffset(qreal offset) +void QmlGraphicsPathView::setOffset(qreal offset) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->setOffset(offset); d->updateCurrent(); } -void QFxPathViewPrivate::setOffset(qreal o) +void QmlGraphicsPathViewPrivate::setOffset(qreal o) { - Q_Q(QFxPathView); + Q_Q(QmlGraphicsPathView); if (_offset != o) { _offset = fmod(o, 100.0); if (_offset < 0) @@ -282,15 +282,15 @@ void QFxPathViewPrivate::setOffset(qreal o) This property determines the position (0-100) the nearest item will snap to. */ -qreal QFxPathView::snapPosition() const +qreal QmlGraphicsPathView::snapPosition() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->snapPos; } -void QFxPathView::setSnapPosition(qreal pos) +void QmlGraphicsPathView::setSnapPosition(qreal pos) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->snapPos = pos/100; d->fixOffset(); } @@ -303,15 +303,15 @@ void QFxPathView::setSnapPosition(qreal pos) dragMargin is greater than zero, a drag can be initiated by clicking within dragMargin pixels of the path. */ -qreal QFxPathView::dragMargin() const +qreal QmlGraphicsPathView::dragMargin() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->dragMargin; } -void QFxPathView::setDragMargin(qreal dragMargin) +void QmlGraphicsPathView::setDragMargin(qreal dragMargin) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->dragMargin = dragMargin; } @@ -323,25 +323,25 @@ void QFxPathView::setDragMargin(qreal dragMargin) Here is an example delegate: \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 */ -QmlComponent *QFxPathView::delegate() const +QmlComponent *QmlGraphicsPathView::delegate() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); if (d->model) { - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } return 0; } -void QFxPathView::setDelegate(QmlComponent *c) +void QmlGraphicsPathView::setDelegate(QmlComponent *c) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(c); d->regenerate(); } @@ -351,22 +351,22 @@ void QFxPathView::setDelegate(QmlComponent *c) \qmlproperty int PathView::pathItemCount This property holds the number of items visible on the path at any one time */ -int QFxPathView::pathItemCount() const +int QmlGraphicsPathView::pathItemCount() const { - Q_D(const QFxPathView); + Q_D(const QmlGraphicsPathView); return d->pathItems; } -void QFxPathView::setPathItemCount(int i) +void QmlGraphicsPathView::setPathItemCount(int i) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (i == d->pathItems) return; d->pathItems = i; d->regenerate(); } -QPointF QFxPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const +QPointF QmlGraphicsPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const { //XXX maybe do recursively at increasing resolution. qreal mindist = 1e10; // big number @@ -390,9 +390,9 @@ QPointF QFxPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) } -void QFxPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (!d->items.count()) return; QPointF scenePoint = mapToScene(event->pos()); @@ -416,13 +416,13 @@ void QFxPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) d->stealMouse = false; d->lastElapsed = 0; d->lastDist = 0; - QFxItemPrivate::start(d->lastPosTime); + QmlGraphicsItemPrivate::start(d->lastPosTime); d->tl.clear(); } -void QFxPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->lastPosTime.isNull()) return; @@ -433,7 +433,7 @@ void QFxPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) } if (d->stealMouse) { - d->moveReason = QFxPathViewPrivate::Mouse; + d->moveReason = QmlGraphicsPathViewPrivate::Mouse; qreal newPc; d->pointNear(event->pos(), &newPc); qreal diff = newPc - d->startPc; @@ -445,20 +445,20 @@ void QFxPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) else if (diff < -50) diff += 100; - d->lastElapsed = QFxItemPrivate::restart(d->lastPosTime); + d->lastElapsed = QmlGraphicsItemPrivate::restart(d->lastPosTime); d->lastDist = diff; d->startPc = newPc; } } } -void QFxPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) +void QmlGraphicsPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->lastPosTime.isNull()) return; - qreal elapsed = qreal(d->lastElapsed + QFxItemPrivate::elapsed(d->lastPosTime)) / 1000.; + qreal elapsed = qreal(d->lastElapsed + QmlGraphicsItemPrivate::elapsed(d->lastPosTime)) / 1000.; qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0; if (d->model && d->model->count() && qAbs(velocity) > 5) { if (velocity > 100) @@ -479,13 +479,13 @@ void QFxPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) ungrabMouse(); } -bool QFxPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) +bool QmlGraphicsPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); QGraphicsSceneMouseEvent mouseEvent(event->type()); QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); QGraphicsScene *s = scene(); - QFxItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { mouseEvent.setAccepted(false); for (int i = 0x1; i <= 0x10; i <<= 1) { @@ -512,7 +512,7 @@ bool QFxPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) default: break; } - grabber = qobject_cast(s->mouseGrabberItem()); + grabber = qobject_cast(s->mouseGrabberItem()); if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) grabMouse(); @@ -523,10 +523,10 @@ bool QFxPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) return false; } -bool QFxPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) +bool QmlGraphicsPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) { if (!isVisible()) - return QFxItem::sceneEventFilter(i, e); + return QmlGraphicsItem::sceneEventFilter(i, e); switch (e->type()) { case QEvent::GraphicsSceneMousePress: @@ -542,13 +542,13 @@ bool QFxPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) break; } - return QFxItem::sceneEventFilter(i, e); + return QmlGraphicsItem::sceneEventFilter(i, e); } -void QFxPathView::componentComplete() +void QmlGraphicsPathView::componentComplete() { - Q_D(QFxPathView); - QFxItem::componentComplete(); + Q_D(QmlGraphicsPathView); + QmlGraphicsItem::componentComplete(); d->regenerate(); // move to correct offset @@ -567,14 +567,14 @@ void QFxPathView::componentComplete() } } -void QFxPathViewPrivate::regenerate() +void QmlGraphicsPathViewPrivate::regenerate() { - Q_Q(QFxPathView); + Q_Q(QmlGraphicsPathView); if (!q->isComponentComplete()) return; for (int i=0; i= 0 ? pathItems : model->count(); for (int i=0; i < numItems && i < model->count(); ++i){ int index = (i + firstIndex) % model->count(); - QFxItem *item = getItem(index); + QmlGraphicsItem *item = getItem(index); if (!item) { qWarning() << "PathView: Cannot create item, index" << (i + firstIndex) % model->count(); return; @@ -603,20 +603,20 @@ void QFxPathViewPrivate::regenerate() q->refill(); } -void QFxPathViewPrivate::updateItem(QFxItem *item, qreal percent) +void QmlGraphicsPathViewPrivate::updateItem(QmlGraphicsItem *item, qreal percent) { - if (QObject *obj = QFxPathView::qmlAttachedProperties(item)) { + if (QObject *obj = QmlGraphicsPathView::qmlAttachedProperties(item)) { foreach(const QString &attr, path->attributes()) - static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); + static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); } QPointF pf = path->pointAt(percent); item->setX(pf.x() - item->width()*item->scale()/2); item->setY(pf.y() - item->height()*item->scale()/2); } -void QFxPathView::refill() +void QmlGraphicsPathView::refill() { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (!d->isValid() || !isComponentComplete()) return; @@ -649,13 +649,13 @@ void QFxPathView::refill() //A wraparound has occured if (wrapIndex < d->items.count()/2){ while(wrapIndex-- >= 0){ - QFxItem* p = d->items.takeFirst(); + QmlGraphicsItem* p = d->items.takeFirst(); d->updateItem(p, 0.0); d->releaseItem(p); d->firstIndex++; d->firstIndex %= d->model->count(); int index = (d->firstIndex + d->items.count())%d->model->count(); - QFxItem *item = d->getItem(index); + QmlGraphicsItem *item = d->getItem(index); item->setZValue(wrapIndex); if (d->currentIndex == index) item->setFocus(true); @@ -665,13 +665,13 @@ void QFxPathView::refill() } } else { while(wrapIndex++ < d->items.count()-1){ - QFxItem* p = d->items.takeLast(); + QmlGraphicsItem* p = d->items.takeLast(); d->updateItem(p, 1.0); d->releaseItem(p); d->firstIndex--; if (d->firstIndex < 0) d->firstIndex = d->model->count() - 1; - QFxItem *item = d->getItem(d->firstIndex); + QmlGraphicsItem *item = d->getItem(d->firstIndex); item->setZValue(d->firstIndex); if (d->currentIndex == d->firstIndex) item->setFocus(true); @@ -689,15 +689,15 @@ void QFxPathView::refill() d->updateItem(d->items.at(i), rotatedPositions[i]); } -void QFxPathView::itemsInserted(int modelIndex, int count) +void QmlGraphicsPathView::itemsInserted(int modelIndex, int count) { //XXX support animated insertion - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (!d->isValid() || !isComponentComplete()) return; if (d->pathItems == -1) { for (int i = 0; i < count; ++i) { - QFxItem *item = d->getItem(modelIndex + i); + QmlGraphicsItem *item = d->getItem(modelIndex + i); item->setZValue(modelIndex + i); d->items.insert(modelIndex + i, item); } @@ -719,15 +719,15 @@ void QFxPathView::itemsInserted(int modelIndex, int count) d->moveOffset.setValue(targetOffset); } -void QFxPathView::itemsRemoved(int modelIndex, int count) +void QmlGraphicsPathView::itemsRemoved(int modelIndex, int count) { //XXX support animated removal - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (!d->isValid() || !isComponentComplete()) return; if (d->pathItems == -1) { for (int i = 0; i < count; ++i) { - QFxItem* p = d->items.takeAt(modelIndex); + QmlGraphicsItem* p = d->items.takeAt(modelIndex); d->model->release(p); } d->snapToCurrent(); @@ -756,28 +756,28 @@ void QFxPathView::itemsRemoved(int modelIndex, int count) d->moveOffset.setValue(targetOffset); } -void QFxPathView::createdItem(int index, QFxItem *item) +void QmlGraphicsPathView::createdItem(int index, QmlGraphicsItem *item) { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); if (d->requestedIndex != index) { item->setParentItem(this); d->updateItem(item, index < d->firstIndex ? 0.0 : 1.0); } } -void QFxPathView::destroyingItem(QFxItem *item) +void QmlGraphicsPathView::destroyingItem(QmlGraphicsItem *item) { Q_UNUSED(item); } -void QFxPathView::ticked() +void QmlGraphicsPathView::ticked() { - Q_D(QFxPathView); + Q_D(QmlGraphicsPathView); d->updateCurrent(); } // find the item closest to the snap position -int QFxPathViewPrivate::calcCurrentIndex() +int QmlGraphicsPathViewPrivate::calcCurrentIndex() { int current = -1; if (model && items.count()) { @@ -816,9 +816,9 @@ int QFxPathViewPrivate::calcCurrentIndex() return current; } -void QFxPathViewPrivate::updateCurrent() +void QmlGraphicsPathViewPrivate::updateCurrent() { - Q_Q(QFxPathView); + Q_Q(QmlGraphicsPathView); if (moveReason != Mouse) return; int idx = calcCurrentIndex(); @@ -831,9 +831,9 @@ void QFxPathViewPrivate::updateCurrent() } } -void QFxPathViewPrivate::fixOffset() +void QmlGraphicsPathViewPrivate::fixOffset() { - Q_Q(QFxPathView); + Q_Q(QmlGraphicsPathView); if (model && items.count()) { int curr = calcCurrentIndex(); if (curr != currentIndex) @@ -843,7 +843,7 @@ void QFxPathViewPrivate::fixOffset() } } -void QFxPathViewPrivate::snapToCurrent() +void QmlGraphicsPathViewPrivate::snapToCurrent() { if (!model || model->count() <= 0) return; @@ -897,12 +897,12 @@ void QFxPathViewPrivate::snapToCurrent() } } -QHash QFxPathView::attachedProperties; -QObject *QFxPathView::qmlAttachedProperties(QObject *obj) +QHash QmlGraphicsPathView::attachedProperties; +QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) { QObject *rv = attachedProperties.value(obj); if (!rv) { - rv = new QFxPathViewAttached(obj); + rv = new QmlGraphicsPathViewAttached(obj); attachedProperties.insert(obj, rv); } return rv; diff --git a/src/declarative/fx/qfxpathview.h b/src/declarative/fx/qfxpathview.h index c8c0ac0..e961106 100644 --- a/src/declarative/fx/qfxpathview.h +++ b/src/declarative/fx/qfxpathview.h @@ -52,13 +52,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QListModelInterface; -class QFxPathViewPrivate; -class Q_DECLARATIVE_EXPORT QFxPathView : public QFxItem +class QmlGraphicsPathViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem { Q_OBJECT Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QFxPath *path READ path WRITE setPath) + Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) @@ -68,14 +68,14 @@ class Q_DECLARATIVE_EXPORT QFxPathView : public QFxItem Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) public: - QFxPathView(QFxItem *parent=0); - virtual ~QFxPathView(); + QmlGraphicsPathView(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsPathView(); QVariant model() const; void setModel(const QVariant &); - QFxPath *path() const; - void setPath(QFxPath *); + QmlGraphicsPath *path() const; + void setPath(QmlGraphicsPath *); int currentIndex() const; void setCurrentIndex(int idx); @@ -116,23 +116,23 @@ private Q_SLOTS: void ticked(); void itemsInserted(int index, int count); void itemsRemoved(int index, int count); - void createdItem(int index, QFxItem *item); - void destroyingItem(QFxItem *item); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); protected: - QFxPathView(QFxPathViewPrivate &dd, QFxItem *parent); + QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); private: - friend class QFxPathViewAttached; + friend class QmlGraphicsPathViewAttached; static QHash attachedProperties; - Q_DISABLE_COPY(QFxPathView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxPathView) + Q_DISABLE_COPY(QmlGraphicsPathView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxPathView) -QML_DECLARE_TYPEINFO(QFxPathView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsPathView) +QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) QT_END_HEADER #endif // QFXPATHVIEW_H diff --git a/src/declarative/fx/qfxpathview_p.h b/src/declarative/fx/qfxpathview_p.h index 60bfdb3..23b468c 100644 --- a/src/declarative/fx/qfxpathview_p.h +++ b/src/declarative/fx/qfxpathview_p.h @@ -64,27 +64,27 @@ QT_BEGIN_NAMESPACE typedef struct PathViewItem{ int index; - QFxItem* item; + QmlGraphicsItem* item; }PathViewItem; -class QFxPathViewPrivate : public QFxItemPrivate +class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxPathView) + Q_DECLARE_PUBLIC(QmlGraphicsPathView) public: - QFxPathViewPrivate() + QmlGraphicsPathViewPrivate() : path(0), currentIndex(0), startPc(0), lastDist(0) , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) - , snapPos(0), dragMargin(0), moveOffset(this, &QFxPathViewPrivate::setOffset) + , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) , moveReason(Other) { - fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); + fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); } void init() { - Q_Q(QFxPathView); + Q_Q(QmlGraphicsPathView); _offset = 0; q->setAcceptedMouseButtons(Qt::LeftButton); q->setFlag(QGraphicsItem::ItemIsFocusScope); @@ -92,16 +92,16 @@ public: q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); } - QFxItem *getItem(int modelIndex) { - Q_Q(QFxPathView); + QmlGraphicsItem *getItem(int modelIndex) { + Q_Q(QmlGraphicsPathView); requestedIndex = modelIndex; - QFxItem *item = model->item(modelIndex); + QmlGraphicsItem *item = model->item(modelIndex); if (item) item->setParentItem(q); requestedIndex = -1; return item; } - void releaseItem(QFxItem *item) { + void releaseItem(QmlGraphicsItem *item) { model->release(item); } @@ -114,11 +114,11 @@ public: void fixOffset(); void setOffset(qreal offset); void regenerate(); - void updateItem(QFxItem *, qreal); + void updateItem(QmlGraphicsItem *, qreal); void snapToCurrent(); QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; - QFxPath *path; + QmlGraphicsPath *path; int currentIndex; qreal startPc; QPointF startPoint; @@ -129,18 +129,18 @@ public: bool ownModel : 1; QTime lastPosTime; QPointF lastPos; - QFxItem *activeItem; + QmlGraphicsItem *activeItem; qreal snapPos; qreal dragMargin; QmlTimeLine tl; - QmlTimeLineValueProxy moveOffset; + QmlTimeLineValueProxy moveOffset; QmlTimeLineEvent fixupOffsetEvent; int firstIndex; int pathItems; int pathOffset; int requestedIndex; - QList items; - QFxVisualModel *model; + QList items; + QmlGraphicsVisualModel *model; QVariant modelVariant; enum MovementReason { Other, Key, Mouse }; MovementReason moveReason; diff --git a/src/declarative/fx/qfxpixmapcache.cpp b/src/declarative/fx/qfxpixmapcache.cpp index 13e1b16..4d6104c 100644 --- a/src/declarative/fx/qfxpixmapcache.cpp +++ b/src/declarative/fx/qfxpixmapcache.cpp @@ -51,8 +51,8 @@ QT_BEGIN_NAMESPACE class QSharedNetworkReply; -typedef QHash QFxSharedNetworkReplyHash; -static QFxSharedNetworkReplyHash qfxActiveNetworkReplies; +typedef QHash QmlGraphicsSharedNetworkReplyHash; +static QmlGraphicsSharedNetworkReplyHash qfxActiveNetworkReplies; class QSharedNetworkReply { @@ -118,8 +118,8 @@ static bool readImage(QIODevice *dev, QPixmap *pixmap) /*! \internal - \class QFxPixmapCache - \brief Enacapsultes a pixmap for QFx items. + \class QmlGraphicsPixmapCache + \brief Enacapsultes a pixmap for QmlGraphics items. This class is NOT reentrant. */ @@ -140,10 +140,10 @@ static QString toLocalFileOrQrc(const QUrl& url) Returns true if the image was loaded without error. */ -bool QFxPixmapCache::find(const QUrl& url, QPixmap *pixmap) +bool QmlGraphicsPixmapCache::find(const QUrl& url, QPixmap *pixmap) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer perf; + QmlPerfTimer perf; #endif QString key = url.toString(); @@ -166,10 +166,10 @@ bool QFxPixmapCache::find(const QUrl& url, QPixmap *pixmap) } else #endif { - QFxSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); if (iter == qfxActiveNetworkReplies.end()) { // API usage error - qWarning() << "QFxPixmapCache: URL not loaded" << url; + qWarning() << "QmlGraphicsPixmapCache: URL not loaded" << url; ok = false; } else { if ((*iter)->reply->error()) { @@ -195,7 +195,7 @@ bool QFxPixmapCache::find(const QUrl& url, QPixmap *pixmap) #endif // We may be the second finder. Still need to check for active replies. { - QFxSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); if (iter != qfxActiveNetworkReplies.end()) (*iter)->release(); } @@ -213,7 +213,7 @@ bool QFxPixmapCache::find(const QUrl& url, QPixmap *pixmap) The returned QNetworkReply will be deleted when all get() calls are matched by a corresponding find() call. */ -QNetworkReply *QFxPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) +QNetworkReply *QmlGraphicsPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) { #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML QString lf = toLocalFileOrQrc(url); @@ -239,7 +239,7 @@ QNetworkReply *QFxPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap * return 0; } - QFxSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); if (iter == qfxActiveNetworkReplies.end()) { QNetworkRequest req(url); QSharedNetworkReply *item = new QSharedNetworkReply(engine->networkAccessManager()->get(req)); @@ -259,10 +259,10 @@ QNetworkReply *QFxPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap * Any connections from the QNetworkReply returned by get() to \a obj will be disconnected. */ -void QFxPixmapCache::cancelGet(const QUrl& url, QObject* obj) +void QmlGraphicsPixmapCache::cancelGet(const QUrl& url, QObject* obj) { QString key = url.toString(); - QFxSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); if (iter == qfxActiveNetworkReplies.end()) return; if (obj) @@ -274,7 +274,7 @@ void QFxPixmapCache::cancelGet(const QUrl& url, QObject* obj) This function is mainly for test verification. It returns the number of requests that are still unfinished. */ -int QFxPixmapCache::pendingRequests() +int QmlGraphicsPixmapCache::pendingRequests() { return qfxActiveNetworkReplies.count(); } diff --git a/src/declarative/fx/qfxpixmapcache.h b/src/declarative/fx/qfxpixmapcache.h index fb5b88a..2a5c4fa 100644 --- a/src/declarative/fx/qfxpixmapcache.h +++ b/src/declarative/fx/qfxpixmapcache.h @@ -54,13 +54,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QmlEngine; class QNetworkReply; -class Q_DECLARATIVE_EXPORT QFxPixmapCache +class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache { public: static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); static void cancelGet(const QUrl& url, QObject* obj); - static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QFxPixmapCache::get, and any returned reply finished. + static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. static int pendingRequests(); // mainly for test verification }; diff --git a/src/declarative/fx/qfxpositioners.cpp b/src/declarative/fx/qfxpositioners.cpp index 86a069d..d7ae49d 100644 --- a/src/declarative/fx/qfxpositioners.cpp +++ b/src/declarative/fx/qfxpositioners.cpp @@ -54,11 +54,11 @@ QT_BEGIN_NAMESPACE /*! \internal - \class QFxBasePositioner + \class QmlGraphicsBasePositioner \ingroup group_layouts - \brief The QFxBasePositioner class provides a base for QFx layouts. + \brief The QmlGraphicsBasePositioner class provides a base for QmlGraphics layouts. - To create a QFx Positioner, simply subclass QFxBasePositioner and implement + To create a QmlGraphics Positioner, simply subclass QmlGraphicsBasePositioner and implement doLayout(), which is automatically called when the layout might need updating. @@ -70,29 +70,29 @@ QT_BEGIN_NAMESPACE Note also that the subclass is responsible for adding the spacing in between items. */ -QFxBasePositioner::QFxBasePositioner(AutoUpdateType at, QFxItem *parent) - : QFxItem(*(new QFxBasePositionerPrivate), parent) +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsBasePositionerPrivate), parent) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->init(at); } -QFxBasePositioner::QFxBasePositioner(QFxBasePositionerPrivate &dd, AutoUpdateType at, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->init(at); } -int QFxBasePositioner::spacing() const +int QmlGraphicsBasePositioner::spacing() const { - Q_D(const QFxBasePositioner); + Q_D(const QmlGraphicsBasePositioner); return d->_spacing; } -void QFxBasePositioner::setSpacing(int s) +void QmlGraphicsBasePositioner::setSpacing(int s) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); if (s==d->_spacing) return; d->_spacing = s; @@ -100,52 +100,52 @@ void QFxBasePositioner::setSpacing(int s) emit spacingChanged(); } -QmlTransition *QFxBasePositioner::move() const +QmlTransition *QmlGraphicsBasePositioner::move() const { - Q_D(const QFxBasePositioner); + Q_D(const QmlGraphicsBasePositioner); return d->moveTransition; } -void QFxBasePositioner::setMove(QmlTransition *mt) +void QmlGraphicsBasePositioner::setMove(QmlTransition *mt) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->moveTransition = mt; } -QmlTransition *QFxBasePositioner::add() const +QmlTransition *QmlGraphicsBasePositioner::add() const { - Q_D(const QFxBasePositioner); + Q_D(const QmlGraphicsBasePositioner); return d->addTransition; } -void QFxBasePositioner::setAdd(QmlTransition *add) +void QmlGraphicsBasePositioner::setAdd(QmlTransition *add) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->addTransition = add; } -QmlTransition *QFxBasePositioner::remove() const +QmlTransition *QmlGraphicsBasePositioner::remove() const { - Q_D(const QFxBasePositioner); + Q_D(const QmlGraphicsBasePositioner); return d->removeTransition; } -void QFxBasePositioner::setRemove(QmlTransition *remove) +void QmlGraphicsBasePositioner::setRemove(QmlTransition *remove) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->removeTransition = remove; } -void QFxBasePositioner::componentComplete() +void QmlGraphicsBasePositioner::componentComplete() { - QFxItem::componentComplete(); + QmlGraphicsItem::componentComplete(); #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer cc; + QmlPerfTimer cc; #endif prePositioning(); } -QVariant QFxBasePositioner::itemChange(GraphicsItemChange change, +QVariant QmlGraphicsBasePositioner::itemChange(GraphicsItemChange change, const QVariant &value) { if (change == ItemChildAddedChange || @@ -153,12 +153,12 @@ QVariant QFxBasePositioner::itemChange(GraphicsItemChange change, prePositioning(); } - return QFxItem::itemChange(change, value); + return QmlGraphicsItem::itemChange(change, value); } -bool QFxBasePositioner::event(QEvent *e) +bool QmlGraphicsBasePositioner::event(QEvent *e) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); if (e->type() == QEvent::User) { d->_ep = false; d->_stableItems += d->_newItems; @@ -166,25 +166,25 @@ bool QFxBasePositioner::event(QEvent *e) d->_newItems.clear(); return true; } - return QFxItem::event(e); + return QmlGraphicsItem::event(e); } /*! Items that have just been added to the positioner. This includes invisible items that have turned visible. */ -QSet* QFxBasePositioner::newItems() +QSet* QmlGraphicsBasePositioner::newItems() { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); return &d->_newItems; } /*! Items that are visible in the positioner, not including ones that have just been added. */ -QSet* QFxBasePositioner::items() +QSet* QmlGraphicsBasePositioner::items() { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); return &d->_stableItems; } @@ -192,15 +192,15 @@ QSet* QFxBasePositioner::items() Items that have just left the positioner. This includes visible items that have turned invisible. */ -QSet* QFxBasePositioner::leavingItems() +QSet* QmlGraphicsBasePositioner::leavingItems() { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); return &d->_leavingItems; } -void QFxBasePositioner::prePositioning() +void QmlGraphicsBasePositioner::prePositioning() { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); if (!isComponentComplete() || d->_movingItem) return; @@ -208,10 +208,10 @@ void QFxBasePositioner::prePositioning() d->_ep = true; QCoreApplication::postEvent(this, new QEvent(QEvent::User)); } - QSet allItems; + QSet allItems; QList children = childItems(); for (int ii = 0; ii < children.count(); ++ii) { - QFxItem *child = qobject_cast(children.at(ii)); + QmlGraphicsItem *child = qobject_cast(children.at(ii)); if (!child) continue; if (!d->_items.contains(child)){ @@ -235,8 +235,8 @@ void QFxBasePositioner::prePositioning() } allItems += child; } - QSet deletedItems = d->_items - allItems; - foreach(QFxItem *child, d->_items){ + QSet deletedItems = d->_items - allItems; + foreach(QmlGraphicsItem *child, d->_items){ if (!allItems.contains(child)){ if (!deletedItems.contains(child)) { QObject::disconnect(child, SIGNAL(opacityChanged()), @@ -256,7 +256,7 @@ void QFxBasePositioner::prePositioning() //###To keep this valid, do we need to update on pos change as well? qreal h = 0.0f; qreal w = 0.0f; - foreach(QFxItem *child, d->_items){ + foreach(QmlGraphicsItem *child, d->_items){ if(!child->isVisible() || child->opacity() <= 0) continue; h = qMax(h, child->y() + child->height()); @@ -266,9 +266,9 @@ void QFxBasePositioner::prePositioning() setImplicitWidth(w); } -void QFxBasePositioner::applyTransition(const QList >& changes, QFxItem* target, QmlStateOperation::ActionList &actions) +void QmlGraphicsBasePositioner::applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); if (!target) return; @@ -282,9 +282,9 @@ void QFxBasePositioner::applyTransition(const QList >& d->_animated << target; } -void QFxBasePositioner::finishApplyTransitions() +void QmlGraphicsBasePositioner::finishApplyTransitions() { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); // Note that if a transition is not set the transition manager will // apply the changes directly, in the case someone uses applyAdd/Move/Remove // without testing add()/move()/remove(). @@ -295,9 +295,9 @@ void QFxBasePositioner::finishApplyTransitions() d->moveActions.clear(); d->removeActions.clear(); } -void QFxBasePositioner::setMovingItem(QFxItem *i) +void QmlGraphicsBasePositioner::setMovingItem(QmlGraphicsItem *i) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); d->_movingItem = i; } @@ -305,9 +305,9 @@ void QFxBasePositioner::setMovingItem(QFxItem *i) Applies the positioner's add transition to the \a target item.\a changes is a list of property,value pairs which will be changed on the target using the add transition. */ -void QFxBasePositioner::applyAdd(const QList >& changes, QFxItem* target) +void QmlGraphicsBasePositioner::applyAdd(const QList >& changes, QmlGraphicsItem* target) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); applyTransition(changes,target, d->addActions); } @@ -315,9 +315,9 @@ void QFxBasePositioner::applyAdd(const QList >& changes Applies the positioner's move transition to the \a target.\a changes is a list of property,value pairs which will be changed on the target using the move transition. */ -void QFxBasePositioner::applyMove(const QList >& changes, QFxItem* target) +void QmlGraphicsBasePositioner::applyMove(const QList >& changes, QmlGraphicsItem* target) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); applyTransition(changes,target, d->moveActions); } @@ -325,13 +325,13 @@ void QFxBasePositioner::applyMove(const QList >& change Applies the positioner's remove transition to the \a target item.\a changes is a list of property,value pairs which will be changed on the target using the remove transition. */ -void QFxBasePositioner::applyRemove(const QList >& changes, QFxItem* target) +void QmlGraphicsBasePositioner::applyRemove(const QList >& changes, QmlGraphicsItem* target) { - Q_D(QFxBasePositioner); + Q_D(QmlGraphicsBasePositioner); applyTransition(changes,target, d->removeActions); } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QFxColumn) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QmlGraphicsColumn) /*! \qmlclass Column \brief The Column item lines up its children vertically. @@ -472,20 +472,20 @@ Column { */ /*! \internal - \class QFxColumn - \brief The QFxColumn class lines up items vertically. + \class QmlGraphicsColumn + \brief The QmlGraphicsColumn class lines up items vertically. \ingroup group_positioners */ -QFxColumn::QFxColumn(QFxItem *parent) -: QFxBasePositioner(Vertical, parent) +QmlGraphicsColumn::QmlGraphicsColumn(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Vertical, parent) { } -void QFxColumn::doPositioning() +void QmlGraphicsColumn::doPositioning() { int voffset = 0; - foreach(QFxItem* item, *leavingItems()){ + foreach(QmlGraphicsItem* item, *leavingItems()){ if (remove()){ QList > changes; applyRemove(changes, item); @@ -494,7 +494,7 @@ void QFxColumn::doPositioning() QList children = childItems(); for (int ii = 0; ii < children.count(); ++ii) { - QFxItem *child = qobject_cast(children.at(ii)); + QmlGraphicsItem *child = qobject_cast(children.at(ii)); if (!child || child->opacity() == 0.0) continue; @@ -517,7 +517,7 @@ void QFxColumn::doPositioning() } } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QFxRow) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QmlGraphicsRow) /*! \qmlclass Row \brief The Row item lines up its children horizontally. @@ -629,20 +629,20 @@ Row { */ /*! \internal - \class QFxRow - \brief The QFxRow class lines up items horizontally. + \class QmlGraphicsRow + \brief The QmlGraphicsRow class lines up items horizontally. \ingroup group_positioners */ -QFxRow::QFxRow(QFxItem *parent) -: QFxBasePositioner(Horizontal, parent) +QmlGraphicsRow::QmlGraphicsRow(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Horizontal, parent) { } -void QFxRow::doPositioning() +void QmlGraphicsRow::doPositioning() { int hoffset = 0; - foreach(QFxItem* item, *leavingItems()){ + foreach(QmlGraphicsItem* item, *leavingItems()){ if (remove()){ QList > changes; applyRemove(changes, item); @@ -650,7 +650,7 @@ void QFxRow::doPositioning() } QList children = childItems(); for (int ii = 0; ii < children.count(); ++ii) { - QFxItem *child = qobject_cast(children.at(ii)); + QmlGraphicsItem *child = qobject_cast(children.at(ii)); if (!child || child->opacity() == 0.0) continue; @@ -675,10 +675,10 @@ void QFxRow::doPositioning() } } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QFxGrid) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QmlGraphicsGrid) /*! - \qmlclass Grid QFxGrid + \qmlclass Grid QmlGraphicsGrid \brief The Grid item positions its children in a grid. \inherits Item @@ -810,13 +810,13 @@ Grid { */ /*! \internal - \class QFxGrid - \brief The QFxGrid class lays out items in a grid. + \class QmlGraphicsGrid + \brief The QmlGraphicsGrid class lays out items in a grid. \ingroup group_layouts */ -QFxGrid::QFxGrid(QFxItem *parent) : - QFxBasePositioner(Both, parent) +QmlGraphicsGrid::QmlGraphicsGrid(QmlGraphicsItem *parent) : + QmlGraphicsBasePositioner(Both, parent) { _columns=-1; _rows=-1; @@ -840,7 +840,7 @@ QFxGrid::QFxGrid(QFxItem *parent) : many rows some rows will be of zero width. */ -void QFxGrid::doPositioning() +void QmlGraphicsGrid::doPositioning() { int c=_columns,r=_rows;//Actual number of rows/columns int numVisible = items()->size() + newItems()->size(); @@ -866,7 +866,7 @@ void QFxGrid::doPositioning() if (childIndex == children.count()) continue; - QFxItem *child = qobject_cast(children.at(childIndex++)); + QmlGraphicsItem *child = qobject_cast(children.at(childIndex++)); if (!child || child->opacity() == 0.0) continue; if (child->width() > maxColWidth[j]) @@ -880,14 +880,14 @@ void QFxGrid::doPositioning() int yoffset=0; int curRow =0; int curCol =0; - foreach(QFxItem* item, *leavingItems()){ + foreach(QmlGraphicsItem* item, *leavingItems()){ if (remove()){ QList > changes; applyRemove(changes, item); } } foreach(QGraphicsItem* schild, children){ - QFxItem *child = qobject_cast(schild); + QmlGraphicsItem *child = qobject_cast(schild); if (!child || child->opacity() == 0.0) continue; bool needMove = (child->x()!=xoffset)||(child->y()!=yoffset); diff --git a/src/declarative/fx/qfxpositioners.h b/src/declarative/fx/qfxpositioners.h index d62da08..29c121c 100644 --- a/src/declarative/fx/qfxpositioners.h +++ b/src/declarative/fx/qfxpositioners.h @@ -53,9 +53,9 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxBasePositionerPrivate; +class QmlGraphicsBasePositionerPrivate; -class Q_DECLARATIVE_EXPORT QFxBasePositioner : public QFxItem +class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem { Q_OBJECT @@ -65,7 +65,7 @@ class Q_DECLARATIVE_EXPORT QFxBasePositioner : public QFxItem Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) public: enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; - QFxBasePositioner(AutoUpdateType, QFxItem *parent); + QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); int spacing() const; void setSpacing(int); @@ -83,12 +83,12 @@ protected: virtual void componentComplete(); virtual QVariant itemChange(GraphicsItemChange, const QVariant &); virtual bool event(QEvent *); - QSet* newItems(); - QSet* leavingItems(); - QSet* items(); - void applyAdd(const QList >& changes, QFxItem* target); - void applyMove(const QList >& changes, QFxItem* target); - void applyRemove(const QList >& changes, QFxItem* target); + QSet* newItems(); + QSet* leavingItems(); + QSet* items(); + void applyAdd(const QList >& changes, QmlGraphicsItem* target); + void applyMove(const QList >& changes, QmlGraphicsItem* target); + void applyRemove(const QList >& changes, QmlGraphicsItem* target); void finishApplyTransitions(); Q_SIGNALS: @@ -102,45 +102,45 @@ private Q_SLOTS: void prePositioning(); protected: - QFxBasePositioner(QFxBasePositionerPrivate &dd, AutoUpdateType at, QFxItem *parent); - void setMovingItem(QFxItem *); + QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); + void setMovingItem(QmlGraphicsItem *); private: - void applyTransition(const QList >& changes, QFxItem* target, + void applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions); - Q_DISABLE_COPY(QFxBasePositioner) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxBasePositioner) + Q_DISABLE_COPY(QmlGraphicsBasePositioner) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) }; -class Q_DECLARATIVE_EXPORT QFxColumn : public QFxBasePositioner +class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner { Q_OBJECT public: - QFxColumn(QFxItem *parent=0); + QmlGraphicsColumn(QmlGraphicsItem *parent=0); protected Q_SLOTS: virtual void doPositioning(); private: - Q_DISABLE_COPY(QFxColumn) + Q_DISABLE_COPY(QmlGraphicsColumn) }; -class Q_DECLARATIVE_EXPORT QFxRow: public QFxBasePositioner +class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner { Q_OBJECT public: - QFxRow(QFxItem *parent=0); + QmlGraphicsRow(QmlGraphicsItem *parent=0); protected Q_SLOTS: virtual void doPositioning(); private: - Q_DISABLE_COPY(QFxRow) + Q_DISABLE_COPY(QmlGraphicsRow) }; -class Q_DECLARATIVE_EXPORT QFxGrid : public QFxBasePositioner +class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner { Q_OBJECT Q_PROPERTY(int rows READ rows WRITE setRows) Q_PROPERTY(int columns READ columns WRITE setcolumns) public: - QFxGrid(QFxItem *parent=0); + QmlGraphicsGrid(QmlGraphicsItem *parent=0); int rows() const {return _rows;} void setRows(const int rows){_rows = rows;} @@ -153,14 +153,14 @@ protected Q_SLOTS: private: int _rows; int _columns; - Q_DISABLE_COPY(QFxGrid) + Q_DISABLE_COPY(QmlGraphicsGrid) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxColumn) -QML_DECLARE_TYPE(QFxRow) -QML_DECLARE_TYPE(QFxGrid) +QML_DECLARE_TYPE(QmlGraphicsColumn) +QML_DECLARE_TYPE(QmlGraphicsRow) +QML_DECLARE_TYPE(QmlGraphicsGrid) QT_END_HEADER diff --git a/src/declarative/fx/qfxpositioners_p.h b/src/declarative/fx/qfxpositioners_p.h index 8960952..fdc11bb 100644 --- a/src/declarative/fx/qfxpositioners_p.h +++ b/src/declarative/fx/qfxpositioners_p.h @@ -62,19 +62,19 @@ #include QT_BEGIN_NAMESPACE -class QFxBasePositionerPrivate : public QFxItemPrivate +class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxBasePositioner) + Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) public: - QFxBasePositionerPrivate() + QmlGraphicsBasePositionerPrivate() : _ep(false), _componentComplete(false), _spacing(0), - aut(QFxBasePositioner::None), moveTransition(0), addTransition(0), + aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), removeTransition(0), _movingItem(0) { } - void init(QFxBasePositioner::AutoUpdateType at) + void init(QmlGraphicsBasePositioner::AutoUpdateType at) { aut = at; } @@ -82,15 +82,15 @@ public: bool _ep; bool _componentComplete; int _spacing; - QFxBasePositioner::AutoUpdateType aut; + QmlGraphicsBasePositioner::AutoUpdateType aut; QmlTransition *moveTransition; QmlTransition *addTransition; QmlTransition *removeTransition; - QSet _items; - QSet _leavingItems; - QSet _stableItems; - QSet _newItems; - QSet _animated; + QSet _items; + QSet _leavingItems; + QSet _stableItems; + QSet _newItems; + QSet _animated; QmlStateOperation::ActionList addActions; QmlStateOperation::ActionList moveActions; QmlStateOperation::ActionList removeActions; @@ -98,7 +98,7 @@ public: QmlTransitionManager moveTransitionManager; QmlTransitionManager removeTransitionManager; // QmlStateGroup *stateGroup; - QFxItem *_movingItem; + QmlGraphicsItem *_movingItem; }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxrect.cpp b/src/declarative/fx/qfxrect.cpp index d4207a6..7ebacf0 100644 --- a/src/declarative/fx/qfxrect.cpp +++ b/src/declarative/fx/qfxrect.cpp @@ -46,14 +46,14 @@ #include QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QFxPen) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QFxGradientStop) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QFxGradient) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QmlGraphicsPen) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QmlGraphicsGradientStop) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QmlGraphicsGradient) /*! \internal - \class QFxPen - \brief The QFxPen class provides a pen used for drawing rectangle borders on a QmlView. + \class QmlGraphicsPen + \brief The QmlGraphicsPen class provides a pen used for drawing rectangle borders on a QmlView. By default, the pen is invalid and nothing is drawn. You must either set a color (then the default width is 1) or a width (then the default color is black). @@ -66,14 +66,14 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QFxGradient) \endqml */ -void QFxPen::setColor(const QColor &c) +void QmlGraphicsPen::setColor(const QColor &c) { _color = c; _valid = _color.alpha() ? true : false; emit penChanged(); } -void QFxPen::setWidth(int w) +void QmlGraphicsPen::setWidth(int w) { if (_width == w && _valid) return; @@ -85,7 +85,7 @@ void QFxPen::setWidth(int w) /*! - \qmlclass GradientStop QFxGradientStop + \qmlclass GradientStop QmlGraphicsGradientStop \brief The GradientStop item defines the color at a position in a Gradient \sa Gradient @@ -98,14 +98,14 @@ void QFxPen::setWidth(int w) Sets a \e color at a \e position in a gradient. */ -void QFxGradientStop::updateGradient() +void QmlGraphicsGradientStop::updateGradient() { - if (QFxGradient *grad = qobject_cast(parent())) + if (QmlGraphicsGradient *grad = qobject_cast(parent())) grad->doUpdate(); } /*! - \qmlclass Gradient QFxGradient + \qmlclass Gradient QmlGraphicsGradient \brief The Gradient item defines a gradient fill. A gradient is defined by two or more colors, which will be blended seemlessly. The @@ -128,12 +128,12 @@ void QFxGradientStop::updateGradient() This property holds the gradient stops describing the gradient. */ -const QGradient *QFxGradient::gradient() const +const QGradient *QmlGraphicsGradient::gradient() const { if (!m_gradient && !m_stops.isEmpty()) { m_gradient = new QLinearGradient(0,0,0,1.0); for (int i = 0; i < m_stops.count(); ++i) { - const QFxGradientStop *stop = m_stops.at(i); + const QmlGraphicsGradientStop *stop = m_stops.at(i); m_gradient->setCoordinateMode(QGradient::ObjectBoundingMode); m_gradient->setColorAt(stop->position(), stop->color()); } @@ -142,17 +142,17 @@ const QGradient *QFxGradient::gradient() const return m_gradient; } -void QFxGradient::doUpdate() +void QmlGraphicsGradient::doUpdate() { delete m_gradient; m_gradient = 0; emit updated(); } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QFxRect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QmlGraphicsRect) /*! - \qmlclass Rectangle QFxRect + \qmlclass Rectangle QmlGraphicsRect \brief The Rectangle item allows you to add rectangles to a scene. \inherits Item @@ -175,28 +175,28 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QFxRect) /*! \internal - \class QFxRect - \brief The QFxRect class provides a rectangle item that you can add to a QmlView. + \class QmlGraphicsRect + \brief The QmlGraphicsRect class provides a rectangle item that you can add to a QmlView. */ -QFxRect::QFxRect(QFxItem *parent) - : QFxItem(*(new QFxRectPrivate), parent) +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRectPrivate), parent) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); d->init(); setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxRect::QFxRect(QFxRectPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); d->init(); setFlag(QGraphicsItem::ItemHasNoContents, false); } -void QFxRect::doUpdate() +void QmlGraphicsRect::doUpdate() { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); d->rectImage = QPixmap(); const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; d->setPaintMargin((pw+1)/2); @@ -214,9 +214,9 @@ void QFxRect::doUpdate() To keep the border smooth (rather than blurry), odd widths cause the rectangle to be painted at a half-pixel offset; */ -QFxPen *QFxRect::border() +QmlGraphicsPen *QmlGraphicsRect::border() { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); return d->getPen(); } @@ -254,15 +254,15 @@ QFxPen *QFxRect::border() \sa Gradient, color */ -QFxGradient *QFxRect::gradient() const +QmlGraphicsGradient *QmlGraphicsRect::gradient() const { - Q_D(const QFxRect); + Q_D(const QmlGraphicsRect); return d->gradient; } -void QFxRect::setGradient(QFxGradient *gradient) +void QmlGraphicsRect::setGradient(QmlGraphicsGradient *gradient) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->gradient == gradient) return; if (d->gradient) @@ -282,15 +282,15 @@ void QFxRect::setGradient(QFxGradient *gradient) painted as a normal rectangle. The same radius is used by all 4 corners; there is currently no way to specify different radii for different corners. */ -qreal QFxRect::radius() const +qreal QmlGraphicsRect::radius() const { - Q_D(const QFxRect); + Q_D(const QmlGraphicsRect); return d->radius; } -void QFxRect::setRadius(qreal radius) +void QmlGraphicsRect::setRadius(qreal radius) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->radius == radius) return; @@ -316,15 +316,15 @@ void QFxRect::setRadius(qreal radius) If both a gradient and a color are specified, the gradient will be used. */ -QColor QFxRect::color() const +QColor QmlGraphicsRect::color() const { - Q_D(const QFxRect); + Q_D(const QmlGraphicsRect); return d->color; } -void QFxRect::setColor(const QColor &c) +void QmlGraphicsRect::setColor(const QColor &c) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->color == c) return; @@ -334,9 +334,9 @@ void QFxRect::setColor(const QColor &c) emit colorChanged(); } -void QFxRect::generateRoundedRect() +void QmlGraphicsRect::generateRoundedRect() { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->rectImage.isNull()) { const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; const int radius = qCeil(d->radius); //ensure odd numbered width/height so we get 1-pixel center @@ -358,9 +358,9 @@ void QFxRect::generateRoundedRect() } } -void QFxRect::generateBorderedRect() +void QmlGraphicsRect::generateBorderedRect() { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->rectImage.isNull()) { const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; d->rectImage = QPixmap(pw*2 + 3, pw*2 + 3); @@ -382,9 +382,9 @@ void QFxRect::generateBorderedRect() } } -void QFxRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->radius > 0 || (d->pen && d->pen->isValid()) || (d->gradient && d->gradient->gradient()) ) { drawRect(*p); @@ -399,9 +399,9 @@ void QFxRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) } } -void QFxRect::drawRect(QPainter &p) +void QmlGraphicsRect::drawRect(QPainter &p) { - Q_D(QFxRect); + Q_D(QmlGraphicsRect); if (d->gradient && d->gradient->gradient()) { // XXX This path is still slower than the image path // Image path won't work for gradients though @@ -466,9 +466,9 @@ void QFxRect::drawRect(QPainter &p) \image rect-smooth.png */ -QRectF QFxRect::boundingRect() const +QRectF QmlGraphicsRect::boundingRect() const { - Q_D(const QFxRect); + Q_D(const QmlGraphicsRect); return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); } diff --git a/src/declarative/fx/qfxrect.h b/src/declarative/fx/qfxrect.h index e5bb8d3..5154a8a 100644 --- a/src/declarative/fx/qfxrect.h +++ b/src/declarative/fx/qfxrect.h @@ -51,14 +51,14 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QFxPen : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject { Q_OBJECT Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) public: - QFxPen(QObject *parent=0) + QmlGraphicsPen(QObject *parent=0) : QObject(parent), _width(1), _color("#000000"), _valid(false) {} @@ -79,7 +79,7 @@ private: bool _valid; }; -class Q_DECLARATIVE_EXPORT QFxGradientStop : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject { Q_OBJECT @@ -87,7 +87,7 @@ class Q_DECLARATIVE_EXPORT QFxGradientStop : public QObject Q_PROPERTY(QColor color READ color WRITE setColor) public: - QFxGradientStop(QObject *parent=0) : QObject(parent) {} + QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} qreal position() const { return m_position; } void setPosition(qreal position) { m_position = position; updateGradient(); } @@ -103,18 +103,18 @@ private: QColor m_color; }; -class Q_DECLARATIVE_EXPORT QFxGradient : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject { Q_OBJECT - Q_PROPERTY(QList *stops READ stops) + Q_PROPERTY(QList *stops READ stops) Q_CLASSINFO("DefaultProperty", "stops") public: - QFxGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} - ~QFxGradient() { delete m_gradient; } + QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} + ~QmlGraphicsGradient() { delete m_gradient; } - QList *stops() { return &m_stops; } + QList *stops() { return &m_stops; } const QGradient *gradient() const; @@ -125,30 +125,30 @@ private: void doUpdate(); private: - QList m_stops; + QList m_stops; mutable QGradient *m_gradient; - friend class QFxGradientStop; + friend class QmlGraphicsGradientStop; }; -class QFxRectPrivate; -class Q_DECLARATIVE_EXPORT QFxRect : public QFxItem +class QmlGraphicsRectPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem { Q_OBJECT Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - Q_PROPERTY(QFxGradient *gradient READ gradient WRITE setGradient) - Q_PROPERTY(QFxPen * border READ border CONSTANT) + Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) + Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) public: - QFxRect(QFxItem *parent=0); + QmlGraphicsRect(QmlGraphicsItem *parent=0); QColor color() const; void setColor(const QColor &); - QFxPen *border(); + QmlGraphicsPen *border(); - QFxGradient *gradient() const; - void setGradient(QFxGradient *gradient); + QmlGraphicsGradient *gradient() const; + void setGradient(QmlGraphicsGradient *gradient); qreal radius() const; void setRadius(qreal radius); @@ -170,19 +170,19 @@ private: void drawRect(QPainter &painter); protected: - QFxRect(QFxRectPrivate &dd, QFxItem *parent); + QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); private: - Q_DISABLE_COPY(QFxRect) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxRect) + Q_DISABLE_COPY(QmlGraphicsRect) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxPen) -QML_DECLARE_TYPE(QFxGradientStop) -QML_DECLARE_TYPE(QFxGradient) -QML_DECLARE_TYPE(QFxRect) +QML_DECLARE_TYPE(QmlGraphicsPen) +QML_DECLARE_TYPE(QmlGraphicsGradientStop) +QML_DECLARE_TYPE(QmlGraphicsGradient) +QML_DECLARE_TYPE(QmlGraphicsRect) QT_END_HEADER diff --git a/src/declarative/fx/qfxrect_p.h b/src/declarative/fx/qfxrect_p.h index c055b76..d67209e 100644 --- a/src/declarative/fx/qfxrect_p.h +++ b/src/declarative/fx/qfxrect_p.h @@ -57,19 +57,19 @@ QT_BEGIN_NAMESPACE -class QFxGradient; -class QFxRect; -class QFxRectPrivate : public QFxItemPrivate +class QmlGraphicsGradient; +class QmlGraphicsRect; +class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxRect) + Q_DECLARE_PUBLIC(QmlGraphicsRect) public: - QFxRectPrivate() : + QmlGraphicsRectPrivate() : color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) { } - ~QFxRectPrivate() + ~QmlGraphicsRectPrivate() { delete pen; } @@ -80,23 +80,23 @@ public: QColor getColor(); QColor color; - QFxGradient *gradient; - QFxPen *getPen() { + QmlGraphicsGradient *gradient; + QmlGraphicsPen *getPen() { if (!pen) { - Q_Q(QFxRect); - pen = new QFxPen; + Q_Q(QmlGraphicsRect); + pen = new QmlGraphicsPen; QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); } return pen; } - QFxPen *pen; + QmlGraphicsPen *pen; qreal radius; qreal paintmargin; QPixmap rectImage; void setPaintMargin(qreal margin) { - Q_Q(QFxRect); + Q_Q(QmlGraphicsRect); if (margin == paintmargin) return; q->prepareGeometryChange(); diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp index 94954e7..e8e44cc 100644 --- a/src/declarative/fx/qfxrepeater.cpp +++ b/src/declarative/fx/qfxrepeater.cpp @@ -47,16 +47,16 @@ QT_BEGIN_NAMESPACE -QFxRepeaterPrivate::QFxRepeaterPrivate() +QmlGraphicsRepeaterPrivate::QmlGraphicsRepeaterPrivate() : model(0), ownModel(false) { } -QFxRepeaterPrivate::~QFxRepeaterPrivate() +QmlGraphicsRepeaterPrivate::~QmlGraphicsRepeaterPrivate() { } -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QFxRepeater) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QmlGraphicsRepeater) /*! \qmlclass Repeater @@ -103,7 +103,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QFxRepeater) /*! \internal - \class QFxRepeater + \class QmlGraphicsRepeater \qmlclass Repeater XXX Repeater is very conservative in how it instatiates/deletes items. Also @@ -111,18 +111,18 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QFxRepeater) */ /*! - Create a new QFxRepeater instance. + Create a new QmlGraphicsRepeater instance. */ -QFxRepeater::QFxRepeater(QFxItem *parent) - : QFxItem(*(new QFxRepeaterPrivate), parent) +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRepeaterPrivate), parent) { } /*! \internal */ -QFxRepeater::QFxRepeater(QFxRepeaterPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { } @@ -130,7 +130,7 @@ QFxRepeater::QFxRepeater(QFxRepeaterPrivate &dd, QFxItem *parent) Destroy the repeater instance. All items it instantiated are also destroyed. */ -QFxRepeater::~QFxRepeater() +QmlGraphicsRepeater::~QmlGraphicsRepeater() { } @@ -154,29 +154,29 @@ QFxRepeater::~QFxRepeater() \sa {qmlmodels}{Data Models} */ -QVariant QFxRepeater::model() const +QVariant QmlGraphicsRepeater::model() const { - Q_D(const QFxRepeater); + Q_D(const QmlGraphicsRepeater); return d->dataSource; } -void QFxRepeater::setModel(const QVariant &model) +void QmlGraphicsRepeater::setModel(const QVariant &model) { - Q_D(QFxRepeater); + Q_D(QmlGraphicsRepeater); clear(); if (d->model) { disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); /* - disconnect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); */ } d->dataSource = model; QObject *object = qvariant_cast(model); - QFxVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -184,10 +184,10 @@ void QFxRepeater::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { @@ -195,8 +195,8 @@ void QFxRepeater::setModel(const QVariant &model) connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); /* - connect(d->model, SIGNAL(createdItem(int, QFxItem*)), this, SLOT(createdItem(int,QFxItem*))); - connect(d->model, SIGNAL(destroyingItem(QFxItem*)), this, SLOT(destroyingItem(QFxItem*))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); */ regenerate(); emit countChanged(); @@ -209,25 +209,25 @@ void QFxRepeater::setModel(const QVariant &model) The delegate provides a template describing what each item instantiated by the repeater should look and act like. */ -QmlComponent *QFxRepeater::delegate() const +QmlComponent *QmlGraphicsRepeater::delegate() const { - Q_D(const QFxRepeater); + Q_D(const QmlGraphicsRepeater); if (d->model) { - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } return 0; } -void QFxRepeater::setDelegate(QmlComponent *delegate) +void QmlGraphicsRepeater::setDelegate(QmlComponent *delegate) { - Q_D(QFxRepeater); + Q_D(QmlGraphicsRepeater); if (!d->ownModel) { - d->model = new QFxVisualDataModel(qmlContext(this)); + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); d->ownModel = true; } - if (QFxVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(delegate); regenerate(); } @@ -238,9 +238,9 @@ void QFxRepeater::setDelegate(QmlComponent *delegate) This property holds the number of items in the repeater. */ -int QFxRepeater::count() const +int QmlGraphicsRepeater::count() const { - Q_D(const QFxRepeater); + Q_D(const QmlGraphicsRepeater); if (d->model) return d->model->count(); return 0; @@ -250,19 +250,19 @@ int QFxRepeater::count() const /*! \internal */ -void QFxRepeater::componentComplete() +void QmlGraphicsRepeater::componentComplete() { - QFxItem::componentComplete(); + QmlGraphicsItem::componentComplete(); regenerate(); } /*! \internal */ -QVariant QFxRepeater::itemChange(GraphicsItemChange change, +QVariant QmlGraphicsRepeater::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant rv = QFxItem::itemChange(change, value); + QVariant rv = QmlGraphicsItem::itemChange(change, value); if (change == ItemParentHasChanged) { regenerate(); } @@ -270,11 +270,11 @@ QVariant QFxRepeater::itemChange(GraphicsItemChange change, return rv; } -void QFxRepeater::clear() +void QmlGraphicsRepeater::clear() { - Q_D(QFxRepeater); + Q_D(QmlGraphicsRepeater); if (d->model) { - foreach (QFxItem *item, d->deletables) + foreach (QmlGraphicsItem *item, d->deletables) d->model->release(item); } d->deletables.clear(); @@ -283,9 +283,9 @@ void QFxRepeater::clear() /*! \internal */ -void QFxRepeater::regenerate() +void QmlGraphicsRepeater::regenerate() { - Q_D(QFxRepeater); + Q_D(QmlGraphicsRepeater); clear(); @@ -293,7 +293,7 @@ void QFxRepeater::regenerate() return; for (int ii = 0; ii < count(); ++ii) { - QFxItem *item = d->model->item(ii); + QmlGraphicsItem *item = d->model->item(ii); if (item) { item->setParent(parentItem()); item->stackBefore(this); @@ -302,17 +302,17 @@ void QFxRepeater::regenerate() } } -void QFxRepeater::itemsInserted(int, int) +void QmlGraphicsRepeater::itemsInserted(int, int) { regenerate(); } -void QFxRepeater::itemsRemoved(int, int) +void QmlGraphicsRepeater::itemsRemoved(int, int) { regenerate(); } -void QFxRepeater::itemsMoved(int,int,int) +void QmlGraphicsRepeater::itemsMoved(int,int,int) { regenerate(); } diff --git a/src/declarative/fx/qfxrepeater.h b/src/declarative/fx/qfxrepeater.h index 7a0318b..f8a03cc 100644 --- a/src/declarative/fx/qfxrepeater.h +++ b/src/declarative/fx/qfxrepeater.h @@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxRepeaterPrivate; -class Q_DECLARATIVE_EXPORT QFxRepeater : public QFxItem +class QmlGraphicsRepeaterPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem { Q_OBJECT @@ -61,8 +61,8 @@ class Q_DECLARATIVE_EXPORT QFxRepeater : public QFxItem Q_CLASSINFO("DefaultProperty", "delegate") public: - QFxRepeater(QFxItem *parent=0); - virtual ~QFxRepeater(); + QmlGraphicsRepeater(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsRepeater(); QVariant model() const; void setModel(const QVariant &); @@ -82,7 +82,7 @@ private: protected: virtual void componentComplete(); QVariant itemChange(GraphicsItemChange change, const QVariant &value); - QFxRepeater(QFxRepeaterPrivate &dd, QFxItem *parent); + QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); private Q_SLOTS: void itemsInserted(int,int); @@ -90,13 +90,13 @@ private Q_SLOTS: void itemsMoved(int,int,int); private: - Q_DISABLE_COPY(QFxRepeater) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxRepeater) + Q_DISABLE_COPY(QmlGraphicsRepeater) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxRepeater) +QML_DECLARE_TYPE(QmlGraphicsRepeater) QT_END_HEADER diff --git a/src/declarative/fx/qfxrepeater_p.h b/src/declarative/fx/qfxrepeater_p.h index a4eb96d..eb35352 100644 --- a/src/declarative/fx/qfxrepeater_p.h +++ b/src/declarative/fx/qfxrepeater_p.h @@ -61,20 +61,20 @@ QT_BEGIN_NAMESPACE class QmlContext; -class QFxVisualModel; -class QFxRepeaterPrivate : public QFxItemPrivate +class QmlGraphicsVisualModel; +class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxRepeater) + Q_DECLARE_PUBLIC(QmlGraphicsRepeater) public: - QFxRepeaterPrivate(); - ~QFxRepeaterPrivate(); + QmlGraphicsRepeaterPrivate(); + ~QmlGraphicsRepeaterPrivate(); - QFxVisualModel *model; + QmlGraphicsVisualModel *model; QVariant dataSource; bool ownModel; - QList > deletables; + QList > deletables; }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxscalegrid.cpp b/src/declarative/fx/qfxscalegrid.cpp index 4c6a522..2012616 100644 --- a/src/declarative/fx/qfxscalegrid.cpp +++ b/src/declarative/fx/qfxscalegrid.cpp @@ -48,25 +48,25 @@ QT_BEGIN_NAMESPACE /*! \internal - \class QFxScaleGrid - \brief The QFxScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. + \class QmlGraphicsScaleGrid + \brief The QmlGraphicsScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. */ -QML_DEFINE_NOCREATE_TYPE(QFxScaleGrid) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsScaleGrid) -QFxScaleGrid::QFxScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) +QmlGraphicsScaleGrid::QmlGraphicsScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) { } -QFxScaleGrid::~QFxScaleGrid() +QmlGraphicsScaleGrid::~QmlGraphicsScaleGrid() { } -bool QFxScaleGrid::isNull() const +bool QmlGraphicsScaleGrid::isNull() const { return !_left && !_top && !_right && !_bottom; } -void QFxScaleGrid::setLeft(int pos) +void QmlGraphicsScaleGrid::setLeft(int pos) { if (_left != pos) { _left = pos; @@ -74,7 +74,7 @@ void QFxScaleGrid::setLeft(int pos) } } -void QFxScaleGrid::setTop(int pos) +void QmlGraphicsScaleGrid::setTop(int pos) { if (_top != pos) { _top = pos; @@ -82,7 +82,7 @@ void QFxScaleGrid::setTop(int pos) } } -void QFxScaleGrid::setRight(int pos) +void QmlGraphicsScaleGrid::setRight(int pos) { if (_right != pos) { _right = pos; @@ -90,7 +90,7 @@ void QFxScaleGrid::setRight(int pos) } } -void QFxScaleGrid::setBottom(int pos) +void QmlGraphicsScaleGrid::setBottom(int pos) { if (_bottom != pos) { _bottom = pos; @@ -98,18 +98,18 @@ void QFxScaleGrid::setBottom(int pos) } } -QFxGridScaledImage::QFxGridScaledImage() +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage() : _l(-1), _r(-1), _t(-1), _b(-1), - _h(QFxBorderImage::Stretch), _v(QFxBorderImage::Stretch) + _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) { } -QFxGridScaledImage::QFxGridScaledImage(const QFxGridScaledImage &o) +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &o) : _l(o._l), _r(o._r), _t(o._t), _b(o._b), _h(o._h), _v(o._v), _pix(o._pix) { } -QFxGridScaledImage &QFxGridScaledImage::operator=(const QFxGridScaledImage &o) +QmlGraphicsGridScaledImage &QmlGraphicsGridScaledImage::operator=(const QmlGraphicsGridScaledImage &o) { _l = o._l; _r = o._r; @@ -121,8 +121,8 @@ QFxGridScaledImage &QFxGridScaledImage::operator=(const QFxGridScaledImage &o) return *this; } -QFxGridScaledImage::QFxGridScaledImage(QIODevice *data) -: _l(-1), _r(-1), _t(-1), _b(-1), _h(QFxBorderImage::Stretch), _v(QFxBorderImage::Stretch) +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(QIODevice *data) +: _l(-1), _r(-1), _t(-1), _b(-1), _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) { int l = -1; int r = -1; @@ -166,45 +166,45 @@ QFxGridScaledImage::QFxGridScaledImage(QIODevice *data) _pix = imgFile; } -QFxBorderImage::TileMode QFxGridScaledImage::stringToRule(const QString &s) +QmlGraphicsBorderImage::TileMode QmlGraphicsGridScaledImage::stringToRule(const QString &s) { if (s == QLatin1String("Stretch")) - return QFxBorderImage::Stretch; + return QmlGraphicsBorderImage::Stretch; if (s == QLatin1String("Repeat")) - return QFxBorderImage::Repeat; + return QmlGraphicsBorderImage::Repeat; if (s == QLatin1String("Round")) - return QFxBorderImage::Round; + return QmlGraphicsBorderImage::Round; qWarning() << "Unknown tile rule specified. Using Stretch"; - return QFxBorderImage::Stretch; + return QmlGraphicsBorderImage::Stretch; } -bool QFxGridScaledImage::isValid() const +bool QmlGraphicsGridScaledImage::isValid() const { return _l >= 0; } -int QFxGridScaledImage::gridLeft() const +int QmlGraphicsGridScaledImage::gridLeft() const { return _l; } -int QFxGridScaledImage::gridRight() const +int QmlGraphicsGridScaledImage::gridRight() const { return _r; } -int QFxGridScaledImage::gridTop() const +int QmlGraphicsGridScaledImage::gridTop() const { return _t; } -int QFxGridScaledImage::gridBottom() const +int QmlGraphicsGridScaledImage::gridBottom() const { return _b; } -QString QFxGridScaledImage::pixmapUrl() const +QString QmlGraphicsGridScaledImage::pixmapUrl() const { return _pix; } diff --git a/src/declarative/fx/qfxscalegrid_p.h b/src/declarative/fx/qfxscalegrid_p.h index bae1436..f065f9d 100644 --- a/src/declarative/fx/qfxscalegrid_p.h +++ b/src/declarative/fx/qfxscalegrid_p.h @@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QFxScaleGrid : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject { Q_OBJECT Q_ENUMS(TileRule) @@ -67,8 +67,8 @@ class Q_DECLARATIVE_EXPORT QFxScaleGrid : public QObject Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) public: - QFxScaleGrid(QObject *parent=0); - ~QFxScaleGrid(); + QmlGraphicsScaleGrid(QObject *parent=0); + ~QmlGraphicsScaleGrid(); bool isNull() const; @@ -94,39 +94,39 @@ private: int _bottom; }; -class Q_DECLARATIVE_EXPORT QFxGridScaledImage +class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage { public: - QFxGridScaledImage(); - QFxGridScaledImage(const QFxGridScaledImage &); - QFxGridScaledImage(QIODevice*); - QFxGridScaledImage &operator=(const QFxGridScaledImage &); + QmlGraphicsGridScaledImage(); + QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); + QmlGraphicsGridScaledImage(QIODevice*); + QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); bool isValid() const; int gridLeft() const; int gridRight() const; int gridTop() const; int gridBottom() const; - QFxBorderImage::TileMode horizontalTileRule() const { return _h; } - QFxBorderImage::TileMode verticalTileRule() const { return _v; } + QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } + QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } QString pixmapUrl() const; private: - static QFxBorderImage::TileMode stringToRule(const QString &); + static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); private: int _l; int _r; int _t; int _b; - QFxBorderImage::TileMode _h; - QFxBorderImage::TileMode _v; + QmlGraphicsBorderImage::TileMode _h; + QmlGraphicsBorderImage::TileMode _v; QString _pix; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxScaleGrid) +QML_DECLARE_TYPE(QmlGraphicsScaleGrid) QT_END_HEADER diff --git a/src/declarative/fx/qfxtext.cpp b/src/declarative/fx/qfxtext.cpp index 4a01cbd..77b3ab4 100644 --- a/src/declarative/fx/qfxtext.cpp +++ b/src/declarative/fx/qfxtext.cpp @@ -52,10 +52,10 @@ #include QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QFxText) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QmlGraphicsText) /*! - \qmlclass Text QFxText + \qmlclass Text QmlGraphicsText \brief The Text item allows you to add formatted text to a scene. \inherits Item @@ -80,11 +80,11 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QFxText) /*! \internal - \class QFxText + \class QmlGraphicsText \qmlclass Text \ingroup group_coreitems - \brief The QFxText class provides a formatted text item that you can add to a QmlView. + \brief The QmlGraphicsText class provides a formatted text item that you can add to a QmlView. Text was designed for read-only text; it does not allow for any text editing. It can display both plain and rich text. For example: @@ -102,23 +102,23 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QFxText) The \c elide property can alternatively be used to fit a line of plain text to a set width. - A QFxText object can be instantiated in Qml using the tag \c Text. + A QmlGraphicsText object can be instantiated in Qml using the tag \c Text. */ -QFxText::QFxText(QFxItem *parent) - : QFxItem(*(new QFxTextPrivate), parent) +QmlGraphicsText::QmlGraphicsText(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsTextPrivate), parent) { setAcceptedMouseButtons(Qt::LeftButton); setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxText::QFxText(QFxTextPrivate &dd, QFxItem *parent) - : QFxItem(dd, parent) +QmlGraphicsText::QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) { setAcceptedMouseButtons(Qt::LeftButton); setFlag(QGraphicsItem::ItemHasNoContents, false); } -QFxText::~QFxText() +QmlGraphicsText::~QmlGraphicsText() { } @@ -132,15 +132,15 @@ QFxText::~QFxText() Set the Text's font attributes. */ -QFont QFxText::font() const +QFont QmlGraphicsText::font() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->font; } -void QFxText::setFont(const QFont &font) +void QmlGraphicsText::setFont(const QFont &font) { - Q_D(QFxText); + Q_D(QmlGraphicsText); d->font = font; d->imgDirty = true; @@ -148,12 +148,12 @@ void QFxText::setFont(const QFont &font) update(); } -void QFxText::setText(const QString &n) +void QmlGraphicsText::setText(const QString &n) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer st; + QmlPerfTimer st; #endif - Q_D(QFxText); + Q_D(QmlGraphicsText); if (d->text == n) return; @@ -184,15 +184,15 @@ void QFxText::setText(const QString &n) The item will try to automatically determine whether the text should be treated as rich text. This determination is made using Qt::mightBeRichText(). */ -QString QFxText::text() const +QString QmlGraphicsText::text() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->text; } -void QFxText::setColor(const QColor &color) +void QmlGraphicsText::setColor(const QColor &color) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (d->color == color) return; @@ -215,9 +215,9 @@ void QFxText::setColor(const QColor &color) \endqml */ -QColor QFxText::color() const +QColor QmlGraphicsText::color() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->color; } @@ -239,15 +239,15 @@ QColor QFxText::color() const \image declarative-textstyle.png */ -QFxText::TextStyle QFxText::style() const +QmlGraphicsText::TextStyle QmlGraphicsText::style() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->style; } -void QFxText::setStyle(QFxText::TextStyle style) +void QmlGraphicsText::setStyle(QmlGraphicsText::TextStyle style) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (d->style == style) return; @@ -256,9 +256,9 @@ void QFxText::setStyle(QFxText::TextStyle style) update(); } -void QFxText::setStyleColor(const QColor &color) +void QmlGraphicsText::setStyleColor(const QColor &color) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (d->styleColor == color) return; @@ -276,9 +276,9 @@ void QFxText::setStyleColor(const QColor &color) shadow color for raised or sunken text. If no style has been set, it is not used at all. */ -QColor QFxText::styleColor() const +QColor QmlGraphicsText::styleColor() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->styleColor; } @@ -293,27 +293,27 @@ QColor QFxText::styleColor() const \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom and \c AlignVCenter. */ -QFxText::HAlignment QFxText::hAlign() const +QmlGraphicsText::HAlignment QmlGraphicsText::hAlign() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->hAlign; } -void QFxText::setHAlign(HAlignment align) +void QmlGraphicsText::setHAlign(HAlignment align) { - Q_D(QFxText); + Q_D(QmlGraphicsText); d->hAlign = align; } -QFxText::VAlignment QFxText::vAlign() const +QmlGraphicsText::VAlignment QmlGraphicsText::vAlign() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->vAlign; } -void QFxText::setVAlign(VAlignment align) +void QmlGraphicsText::setVAlign(VAlignment align) { - Q_D(QFxText); + Q_D(QmlGraphicsText); d->vAlign = align; } @@ -330,15 +330,15 @@ void QFxText::setVAlign(VAlignment align) Wrapping is off by default. */ //### Future may provide choice of wrap modes, such as QTextOption::WrapAtWordBoundaryOrAnywhere -bool QFxText::wrap() const +bool QmlGraphicsText::wrap() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->wrap; } -void QFxText::setWrap(bool w) +void QmlGraphicsText::setWrap(bool w) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (w == d->wrap) return; @@ -384,15 +384,15 @@ Column { \endtable */ -QFxText::TextFormat QFxText::textFormat() const +QmlGraphicsText::TextFormat QmlGraphicsText::textFormat() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->format; } -void QFxText::setTextFormat(TextFormat format) +void QmlGraphicsText::setTextFormat(TextFormat format) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (format == d->format) return; bool wasRich = d->richText; @@ -435,15 +435,15 @@ void QFxText::setTextFormat(TextFormat format) Multi-length strings are ordered from longest to shortest, separated by the Unicode "String Terminator" character \c U009C (write this in QML with \c{"\\x9C"}). */ -QFxText::TextElideMode QFxText::elideMode() const +QmlGraphicsText::TextElideMode QmlGraphicsText::elideMode() const { - Q_D(const QFxText); + Q_D(const QmlGraphicsText); return d->elideMode; } -void QFxText::setElideMode(QFxText::TextElideMode mode) +void QmlGraphicsText::setElideMode(QmlGraphicsText::TextElideMode mode) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (mode == d->elideMode) return; @@ -453,22 +453,22 @@ void QFxText::setElideMode(QFxText::TextElideMode mode) d->updateSize(); } -void QFxText::geometryChanged(const QRectF &newGeometry, +void QmlGraphicsText::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (newGeometry.width() != oldGeometry.width()) { - if (d->wrap || d->elideMode != QFxText::ElideNone) { + if (d->wrap || d->elideMode != QmlGraphicsText::ElideNone) { d->imgDirty = true; d->updateSize(); } } - QFxItem::geometryChanged(newGeometry, oldGeometry); + QmlGraphicsItem::geometryChanged(newGeometry, oldGeometry); } -void QFxTextPrivate::updateSize() +void QmlGraphicsTextPrivate::updateSize() { - Q_Q(QFxText); + Q_Q(QmlGraphicsText); if (q->isComponentComplete()) { QFontMetrics fm(font); if (text.isEmpty()) { @@ -486,7 +486,7 @@ void QFxTextPrivate::updateSize() tmp = text; tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); singleline = !tmp.contains(QChar::LineSeparator); - if (singleline && elideMode != QFxText::ElideNone && q->widthValid()) + if (singleline && elideMode != QmlGraphicsText::ElideNone && q->widthValid()) tmp = fm.elidedText(tmp,(Qt::TextElideMode)elideMode,q->width()); // XXX still worth layout...? layout.clearLayout(); layout.setFont(font); @@ -514,9 +514,9 @@ void QFxTextPrivate::updateSize() int yoff = 0; if (q->heightValid()) { - if (vAlign == QFxText::AlignBottom) + if (vAlign == QmlGraphicsText::AlignBottom) yoff = dy; - else if (vAlign == QFxText::AlignVCenter) + else if (vAlign == QmlGraphicsText::AlignVCenter) yoff = dy/2; } q->setBaselineOffset(fm.ascent() + yoff); @@ -532,7 +532,7 @@ void QFxTextPrivate::updateSize() // ### text layout handling should be profiled and optimized as needed // what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); -void QFxTextPrivate::drawOutline() +void QmlGraphicsTextPrivate::drawOutline() { QPixmap img = QPixmap(imgCache.size()); img.fill(Qt::transparent); @@ -556,7 +556,7 @@ void QFxTextPrivate::drawOutline() imgCache = img; } -void QFxTextPrivate::drawOutline(int yOffset) +void QmlGraphicsTextPrivate::drawOutline(int yOffset) { QPixmap img = QPixmap(imgCache.size()); img.fill(Qt::transparent); @@ -574,9 +574,9 @@ void QFxTextPrivate::drawOutline(int yOffset) imgCache = img; } -QSize QFxTextPrivate::setupTextLayout(QTextLayout *layout) +QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) { - Q_Q(QFxText); + Q_Q(QmlGraphicsText); layout->setCacheEnabled(true); QFontMetrics fm = QFontMetrics(font); @@ -586,7 +586,7 @@ QSize QFxTextPrivate::setupTextLayout(QTextLayout *layout) qreal lineWidth = 0; //set manual width - if ((wrap || elideMode != QFxText::ElideNone) && q->widthValid()) + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) lineWidth = q->width(); layout->beginLayout(); @@ -596,7 +596,7 @@ QSize QFxTextPrivate::setupTextLayout(QTextLayout *layout) if (!line.isValid()) break; - if ((wrap || elideMode != QFxText::ElideNone) && q->widthValid()) + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) line.setLineWidth(lineWidth); } layout->endLayout(); @@ -610,7 +610,7 @@ QSize QFxTextPrivate::setupTextLayout(QTextLayout *layout) return QSize((int)widthUsed, height); } -QPixmap QFxTextPrivate::wrappedTextImage(bool drawStyle) +QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) { //do layout QSize size = cachedLayoutSize; @@ -618,11 +618,11 @@ QPixmap QFxTextPrivate::wrappedTextImage(bool drawStyle) int x = 0; for (int i = 0; i < layout.lineCount(); ++i) { QTextLine line = layout.lineAt(i); - if (hAlign == QFxText::AlignLeft) { + if (hAlign == QmlGraphicsText::AlignLeft) { x = 0; - } else if (hAlign == QFxText::AlignRight) { + } else if (hAlign == QmlGraphicsText::AlignRight) { x = size.width() - (int)line.naturalTextWidth(); - } else if (hAlign == QFxText::AlignHCenter) { + } else if (hAlign == QmlGraphicsText::AlignHCenter) { x = (size.width() - (int)line.naturalTextWidth()) / 2; } line.setPosition(QPoint(x, (int)line.y())); @@ -644,7 +644,7 @@ QPixmap QFxTextPrivate::wrappedTextImage(bool drawStyle) return img; } -QPixmap QFxTextPrivate::richTextImage(bool drawStyle) +QPixmap QmlGraphicsTextPrivate::richTextImage(bool drawStyle) { QSize size = doc->size().toSize(); @@ -671,7 +671,7 @@ QPixmap QFxTextPrivate::richTextImage(bool drawStyle) return img; } -void QFxTextPrivate::checkImgCache() +void QmlGraphicsTextPrivate::checkImgCache() { if (!imgDirty) return; @@ -682,22 +682,22 @@ void QFxTextPrivate::checkImgCache() imgStyleCache = QPixmap(); } else if (richText) { imgCache = richTextImage(false); - if (style != QFxText::Normal) + if (style != QmlGraphicsText::Normal) imgStyleCache = richTextImage(true); //### should use styleColor } else { imgCache = wrappedTextImage(false); - if (style != QFxText::Normal) + if (style != QmlGraphicsText::Normal) imgStyleCache = wrappedTextImage(true); //### should use styleColor } if (!empty) switch (style) { - case QFxText::Outline: + case QmlGraphicsText::Outline: drawOutline(); break; - case QFxText::Sunken: + case QmlGraphicsText::Sunken: drawOutline(-1); break; - case QFxText::Raised: + case QmlGraphicsText::Raised: drawOutline(1); break; default: @@ -707,9 +707,9 @@ void QFxTextPrivate::checkImgCache() imgDirty = false; } -void QFxText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { - Q_D(QFxText); + Q_D(QmlGraphicsText); d->checkImgCache(); if (d->imgCache.isNull()) return; @@ -779,13 +779,13 @@ void QFxText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) filtering at the beginning of the animation and reenable it at the conclusion. */ -void QFxText::componentComplete() +void QmlGraphicsText::componentComplete() { - Q_D(QFxText); + Q_D(QmlGraphicsText); #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer cc; + QmlPerfTimer cc; #endif - QFxItem::componentComplete(); + QmlGraphicsItem::componentComplete(); if (d->dirty) { d->updateSize(); d->dirty = false; @@ -796,9 +796,9 @@ void QFxText::componentComplete() \overload Handles the given mouse \a event. */ -void QFxText::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsText::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxText); + Q_D(QmlGraphicsText); if (!d->richText || !d->doc || d->control->anchorAt(event->pos()).isEmpty()) { event->setAccepted(false); @@ -810,7 +810,7 @@ void QFxText::mousePressEvent(QGraphicsSceneMouseEvent *event) // ### may malfunction if two of the same links are clicked & dragged onto each other) if (!event->isAccepted()) - QFxItem::mousePressEvent(event); + QmlGraphicsItem::mousePressEvent(event); } @@ -824,9 +824,9 @@ void QFxText::mousePressEvent(QGraphicsSceneMouseEvent *event) \overload Handles the given mouse \a event. */ -void QFxText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxText); + Q_D(QmlGraphicsText); // ### confirm the link, and send a signal out if (d->richText && d->doc && d->activeLink == d->control->anchorAt(event->pos())) @@ -835,6 +835,6 @@ void QFxText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) event->setAccepted(false); if (!event->isAccepted()) - QFxItem::mouseReleaseEvent(event); + QmlGraphicsItem::mouseReleaseEvent(event); } QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxtext.h b/src/declarative/fx/qfxtext.h index cdb8025..bc2fb4f 100644 --- a/src/declarative/fx/qfxtext.h +++ b/src/declarative/fx/qfxtext.h @@ -49,8 +49,8 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxTextPrivate; -class Q_DECLARATIVE_EXPORT QFxText : public QFxItem +class QmlGraphicsTextPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem { Q_OBJECT Q_ENUMS(HAlignment) @@ -71,8 +71,8 @@ class Q_DECLARATIVE_EXPORT QFxText : public QFxItem Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? public: - QFxText(QFxItem *parent=0); - ~QFxText(); + QmlGraphicsText(QmlGraphicsItem *parent=0); + ~QmlGraphicsText(); enum HAlignment { AlignLeft = Qt::AlignLeft, AlignRight = Qt::AlignRight, @@ -131,20 +131,20 @@ Q_SIGNALS: void linkActivated(const QString &link); protected: - QFxText(QFxTextPrivate &dd, QFxItem *parent); + QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); void mousePressEvent(QGraphicsSceneMouseEvent *event); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); private: - Q_DISABLE_COPY(QFxText) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxText) + Q_DISABLE_COPY(QmlGraphicsText) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxText) +QML_DECLARE_TYPE(QmlGraphicsText) QT_END_HEADER diff --git a/src/declarative/fx/qfxtext_p.h b/src/declarative/fx/qfxtext_p.h index a10cdfa..436aa08 100644 --- a/src/declarative/fx/qfxtext_p.h +++ b/src/declarative/fx/qfxtext_p.h @@ -64,15 +64,15 @@ class QTextLayout; class QTextDocument; class QTextControl; -class QFxTextPrivate : public QFxItemPrivate +class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate { - Q_DECLARE_PUBLIC(QFxText) + Q_DECLARE_PUBLIC(QmlGraphicsText) public: - QFxTextPrivate() - : color((QRgb)0), style(QFxText::Normal), imgDirty(true), - hAlign(QFxText::AlignLeft), vAlign(QFxText::AlignTop), elideMode(QFxText::ElideNone), + QmlGraphicsTextPrivate() + : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), + hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), - format(QFxText::AutoText) + format(QmlGraphicsText::AutoText) { } @@ -89,15 +89,15 @@ public: QString text; QFont font; QColor color; - QFxText::TextStyle style; + QmlGraphicsText::TextStyle style; QColor styleColor; QString activeLink; bool imgDirty; QPixmap imgCache; QPixmap imgStyleCache; - QFxText::HAlignment hAlign; - QFxText::VAlignment vAlign; - QFxText::TextElideMode elideMode; + QmlGraphicsText::HAlignment hAlign; + QmlGraphicsText::VAlignment vAlign; + QmlGraphicsText::TextElideMode elideMode; bool dirty; bool wrap; bool richText; @@ -106,7 +106,7 @@ public: QTextDocument *doc; QTextLayout layout; QSize cachedLayoutSize; - QFxText::TextFormat format; + QmlGraphicsText::TextFormat format; }; QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index ccb8f7e..ddb9194 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -53,7 +53,7 @@ #include QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QFxTextEdit) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QmlGraphicsTextEdit) /*! \qmlclass TextEdit @@ -80,42 +80,42 @@ TextEdit { /*! \internal - \class QFxTextEdit + \class QmlGraphicsTextEdit \qmlclass TextEdit \ingroup group_coreitems - \brief The QFxTextEdit class provides an editable formatted text item that you can add to a QmlView. + \brief The QmlGraphicsTextEdit class provides an editable formatted text item that you can add to a QmlView. It can display both plain and rich text. \image declarative-textedit.png - A QFxTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. + A QmlGraphicsTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. */ /*! - Constructs a new QFxTextEdit. + Constructs a new QmlGraphicsTextEdit. */ -QFxTextEdit::QFxTextEdit(QFxItem *parent) -: QFxPaintedItem(*(new QFxTextEditPrivate), parent) +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsItem *parent) +: QmlGraphicsPaintedItem(*(new QmlGraphicsTextEditPrivate), parent) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->init(); } /*! \internal */ -QFxTextEdit::QFxTextEdit(QFxTextEditPrivate &dd, QFxItem *parent) - : QFxPaintedItem(dd, parent) +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->init(); } -QString QFxTextEdit::text() const +QString QmlGraphicsTextEdit::text() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); if (d->richText) return d->document->toHtml(); @@ -141,10 +141,10 @@ QString QFxTextEdit::text() const automatically determine whether the text should be treated as rich text. This determination is made using Qt::mightBeRichText(). */ -void QFxTextEdit::setText(const QString &text) +void QmlGraphicsTextEdit::setText(const QString &text) { - Q_D(QFxTextEdit); - if (QFxTextEdit::text() == text) + Q_D(QmlGraphicsTextEdit); + if (QmlGraphicsTextEdit::text() == text) return; d->text = text; d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); @@ -192,15 +192,15 @@ Column { \o \image declarative-textformat.png \endtable */ -QFxTextEdit::TextFormat QFxTextEdit::textFormat() const +QmlGraphicsTextEdit::TextFormat QmlGraphicsTextEdit::textFormat() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->format; } -void QFxTextEdit::setTextFormat(TextFormat format) +void QmlGraphicsTextEdit::setTextFormat(TextFormat format) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (format == d->format) return; bool wasRich = d->richText; @@ -216,15 +216,15 @@ void QFxTextEdit::setTextFormat(TextFormat format) d->format = format; } -QFont QFxTextEdit::font() const +QFont QmlGraphicsTextEdit::font() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->font; } -void QFxTextEdit::setFont(const QFont &font) +void QmlGraphicsTextEdit::setFont(const QFont &font) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->font = font; clearCache(); @@ -250,15 +250,15 @@ TextEdit { color: "#00FF00"; ... } TextEdit { color: "steelblue"; ... } \endqml */ -QColor QFxTextEdit::color() const +QColor QmlGraphicsTextEdit::color() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->color; } -void QFxTextEdit::setColor(const QColor &color) +void QmlGraphicsTextEdit::setColor(const QColor &color) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->color == color) return; @@ -275,15 +275,15 @@ void QFxTextEdit::setColor(const QColor &color) The text highlight color, used behind selections. */ -QColor QFxTextEdit::selectionColor() const +QColor QmlGraphicsTextEdit::selectionColor() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->selectionColor; } -void QFxTextEdit::setSelectionColor(const QColor &color) +void QmlGraphicsTextEdit::setSelectionColor(const QColor &color) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->selectionColor == color) return; @@ -300,15 +300,15 @@ void QFxTextEdit::setSelectionColor(const QColor &color) The selected text color, used in selections. */ -QColor QFxTextEdit::selectedTextColor() const +QColor QmlGraphicsTextEdit::selectedTextColor() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->selectedTextColor; } -void QFxTextEdit::setSelectedTextColor(const QColor &color) +void QmlGraphicsTextEdit::setSelectedTextColor(const QColor &color) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->selectedTextColor == color) return; @@ -331,15 +331,15 @@ void QFxTextEdit::setSelectedTextColor(const QColor &color) \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom and \c AlignVCenter. */ -QFxTextEdit::HAlignment QFxTextEdit::hAlign() const +QmlGraphicsTextEdit::HAlignment QmlGraphicsTextEdit::hAlign() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->hAlign; } -void QFxTextEdit::setHAlign(QFxTextEdit::HAlignment alignment) +void QmlGraphicsTextEdit::setHAlign(QmlGraphicsTextEdit::HAlignment alignment) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (alignment == d->hAlign) return; d->hAlign = alignment; @@ -347,15 +347,15 @@ void QFxTextEdit::setHAlign(QFxTextEdit::HAlignment alignment) updateSize(); } -QFxTextEdit::VAlignment QFxTextEdit::vAlign() const +QmlGraphicsTextEdit::VAlignment QmlGraphicsTextEdit::vAlign() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->vAlign; } -void QFxTextEdit::setVAlign(QFxTextEdit::VAlignment alignment) +void QmlGraphicsTextEdit::setVAlign(QmlGraphicsTextEdit::VAlignment alignment) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (alignment == d->vAlign) return; d->vAlign = alignment; @@ -363,9 +363,9 @@ void QFxTextEdit::setVAlign(QFxTextEdit::VAlignment alignment) updateSize(); } -bool QFxTextEdit::wrap() const +bool QmlGraphicsTextEdit::wrap() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->wrap; } @@ -377,9 +377,9 @@ bool QFxTextEdit::wrap() const Wrapping is done on word boundaries (i.e. it is a "word-wrap"). Wrapping is off by default. */ -void QFxTextEdit::setWrap(bool w) +void QmlGraphicsTextEdit::setWrap(bool w) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (w == d->wrap) return; d->wrap = w; @@ -394,15 +394,15 @@ void QFxTextEdit::setWrap(bool w) This property is set and unset when the text edit gets focus, but it can also be set directly (useful, for example, if a KeyProxy might forward keys to it). */ -bool QFxTextEdit::isCursorVisible() const +bool QmlGraphicsTextEdit::isCursorVisible() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->cursorVisible; } -void QFxTextEdit::setCursorVisible(bool on) +void QmlGraphicsTextEdit::setCursorVisible(bool on) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->cursorVisible == on) return; d->cursorVisible = on; @@ -416,15 +416,15 @@ void QFxTextEdit::setCursorVisible(bool on) \qmlproperty int TextEdit::cursorPosition The position of the cursor in the TextEdit. */ -int QFxTextEdit::cursorPosition() const +int QmlGraphicsTextEdit::cursorPosition() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textCursor().position(); } -void QFxTextEdit::setCursorPosition(int pos) +void QmlGraphicsTextEdit::setCursorPosition(int pos) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); QTextCursor cursor = d->control->textCursor(); if (cursor.position() == pos) return; @@ -442,18 +442,18 @@ void QFxTextEdit::setCursorPosition(int pos) needed, and the x and y properties of delegate instance will be set so as to be one pixel before the top left of the current character. - Note that the root item of the delegate component must be a QFxItem or - QFxItem derived item. + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. */ -QmlComponent* QFxTextEdit::cursorDelegate() const +QmlComponent* QmlGraphicsTextEdit::cursorDelegate() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->cursorComponent; } -void QFxTextEdit::setCursorDelegate(QmlComponent* c) +void QmlGraphicsTextEdit::setCursorDelegate(QmlComponent* c) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(d->cursorComponent){ if(d->cursor){ disconnect(d->control, SIGNAL(cursorPositionChanged()), @@ -474,12 +474,12 @@ void QFxTextEdit::setCursorDelegate(QmlComponent* c) } } -void QFxTextEdit::loadCursorDelegate() +void QmlGraphicsTextEdit::loadCursorDelegate() { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(d->cursorComponent->isLoading()) return; - d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); + d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); if(d->cursor){ connect(d->control, SIGNAL(cursorPositionChanged()), this, SLOT(moveCursorDelegate())); @@ -506,15 +506,15 @@ void QFxTextEdit::loadCursorDelegate() \sa selectionEnd, cursorPosition, selectedText */ -int QFxTextEdit::selectionStart() const +int QmlGraphicsTextEdit::selectionStart() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textCursor().selectionStart(); } -void QFxTextEdit::setSelectionStart(int s) +void QmlGraphicsTextEdit::setSelectionStart(int s) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(d->lastSelectionStart == s || s < 0 || s > text().length()) return; d->lastSelectionStart = s; @@ -534,15 +534,15 @@ void QFxTextEdit::setSelectionStart(int s) \sa selectionStart, cursorPosition, selectedText */ -int QFxTextEdit::selectionEnd() const +int QmlGraphicsTextEdit::selectionEnd() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textCursor().selectionEnd(); } -void QFxTextEdit::setSelectionEnd(int s) +void QmlGraphicsTextEdit::setSelectionEnd(int s) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(d->lastSelectionEnd == s || s < 0 || s > text().length()) return; d->lastSelectionEnd = s; @@ -563,9 +563,9 @@ void QFxTextEdit::setSelectionEnd(int s) myTextEdit.selectionEnd); \endcode */ -QString QFxTextEdit::selectedText() const +QString QmlGraphicsTextEdit::selectedText() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textCursor().selectedText(); } @@ -575,15 +575,15 @@ QString QFxTextEdit::selectedText() const Whether the TextEdit should gain focus on a mouse press. By default this is set to false; */ -bool QFxTextEdit::focusOnPress() const +bool QmlGraphicsTextEdit::focusOnPress() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->focusOnPress; } -void QFxTextEdit::setFocusOnPress(bool on) +void QmlGraphicsTextEdit::setFocusOnPress(bool on) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->focusOnPress == on) return; d->focusOnPress = on; @@ -595,51 +595,51 @@ void QFxTextEdit::setFocusOnPress(bool on) Whether the TextEdit should keep the selection visible when it loses focus to another item in the scene. By default this is set to true; */ -bool QFxTextEdit::persistentSelection() const +bool QmlGraphicsTextEdit::persistentSelection() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->persistentSelection; } -void QFxTextEdit::setPersistentSelection(bool on) +void QmlGraphicsTextEdit::setPersistentSelection(bool on) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->persistentSelection == on) return; d->persistentSelection = on; } -qreal QFxTextEdit::textMargin() const +qreal QmlGraphicsTextEdit::textMargin() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->textMargin; } -void QFxTextEdit::setTextMargin(qreal margin) +void QmlGraphicsTextEdit::setTextMargin(qreal margin) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->textMargin == margin) return; d->textMargin = margin; d->document->setDocumentMargin(d->textMargin); } -void QFxTextEdit::geometryChanged(const QRectF &newGeometry, +void QmlGraphicsTextEdit::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { if (newGeometry.width() != oldGeometry.width()) updateSize(); - QFxPaintedItem::geometryChanged(newGeometry, oldGeometry); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); } /*! Ensures any delayed caching or data loading the class needs to performed is complete. */ -void QFxTextEdit::componentComplete() +void QmlGraphicsTextEdit::componentComplete() { - Q_D(QFxTextEdit); - QFxPaintedItem::componentComplete(); + Q_D(QmlGraphicsTextEdit); + QmlGraphicsPaintedItem::componentComplete(); if (d->dirty) { updateSize(); d->dirty = false; @@ -654,9 +654,9 @@ void QFxTextEdit::componentComplete() By default this property is false. */ -void QFxTextEdit::setReadOnly(bool r) +void QmlGraphicsTextEdit::setReadOnly(bool r) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); Qt::TextInteractionFlags flags = Qt::NoTextInteraction; if (r) { @@ -669,9 +669,9 @@ void QFxTextEdit::setReadOnly(bool r) d->control->moveCursor(QTextCursor::End); } -bool QFxTextEdit::isReadOnly() const +bool QmlGraphicsTextEdit::isReadOnly() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return !(d->control->textInteractionFlags() & Qt::TextEditable); } @@ -679,9 +679,9 @@ bool QFxTextEdit::isReadOnly() const Sets how the text edit should interact with user input to the given \a flags. */ -void QFxTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) +void QmlGraphicsTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->setTextInteractionFlags(flags); } @@ -689,9 +689,9 @@ void QFxTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) Returns the flags specifying how the text edit should interact with user input. */ -Qt::TextInteractionFlags QFxTextEdit::textInteractionFlags() const +Qt::TextInteractionFlags QmlGraphicsTextEdit::textInteractionFlags() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textInteractionFlags(); } @@ -699,9 +699,9 @@ Qt::TextInteractionFlags QFxTextEdit::textInteractionFlags() const Returns the cursor for the point at the given \a pos on the text edit. */ -QTextCursor QFxTextEdit::cursorForPosition(const QPoint &pos) const +QTextCursor QmlGraphicsTextEdit::cursorForPosition(const QPoint &pos) const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->cursorForPosition(pos); } @@ -709,9 +709,9 @@ QTextCursor QFxTextEdit::cursorForPosition(const QPoint &pos) const Returns the rectangle where the given text \a cursor is rendered within the text edit. */ -QRect QFxTextEdit::cursorRect(const QTextCursor &cursor) const +QRect QmlGraphicsTextEdit::cursorRect(const QTextCursor &cursor) const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); if (cursor.isNull()) return QRect(); @@ -722,9 +722,9 @@ QRect QFxTextEdit::cursorRect(const QTextCursor &cursor) const Returns the rectangle where the text cursor is rendered within the text edit. */ -QRect QFxTextEdit::cursorRect() const +QRect QmlGraphicsTextEdit::cursorRect() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->cursorRect().toRect(); } @@ -732,18 +732,18 @@ QRect QFxTextEdit::cursorRect() const /*! Sets the text cursor for the text edit to the given \a cursor. */ -void QFxTextEdit::setTextCursor(const QTextCursor &cursor) +void QmlGraphicsTextEdit::setTextCursor(const QTextCursor &cursor) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->setTextCursor(cursor); } /*! Returns the text cursor for the text edit. */ -QTextCursor QFxTextEdit::textCursor() const +QTextCursor QmlGraphicsTextEdit::textCursor() const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->textCursor(); } @@ -752,9 +752,9 @@ Moves the cursor by performing the given \a operation. If \a mode is QTextCursor::KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys. */ -void QFxTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) +void QmlGraphicsTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->moveCursor(operation, mode); } @@ -762,23 +762,23 @@ void QFxTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor:: \overload Handles the given \a event. */ -bool QFxTextEdit::event(QEvent *event) +bool QmlGraphicsTextEdit::event(QEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (event->type() == QEvent::ShortcutOverride) { d->control->processEvent(event, QPointF(0, 0)); return event->isAccepted(); } - return QFxPaintedItem::event(event); + return QmlGraphicsPaintedItem::event(event); } /*! \overload Handles the given key \a event. */ -void QFxTextEdit::keyPressEvent(QKeyEvent *event) +void QmlGraphicsTextEdit::keyPressEvent(QKeyEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); //### this causes non-standard cursor behavior in some cases. // is it still needed? /*QTextCursor c = textCursor(); @@ -803,19 +803,19 @@ void QFxTextEdit::keyPressEvent(QKeyEvent *event) d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::keyPressEvent(event); + QmlGraphicsPaintedItem::keyPressEvent(event); } /*! \overload Handles the given key \a event. */ -void QFxTextEdit::keyReleaseEvent(QKeyEvent *event) +void QmlGraphicsTextEdit::keyReleaseEvent(QKeyEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::keyReleaseEvent(event); + QmlGraphicsPaintedItem::keyReleaseEvent(event); } /*! @@ -825,18 +825,18 @@ void QFxTextEdit::keyReleaseEvent(QKeyEvent *event) like KeyProxy can give the behavior of focus even when hasFocus() isn't true. */ -void QFxTextEdit::focusChanged(bool hasFocus) +void QmlGraphicsTextEdit::focusChanged(bool hasFocus) { setCursorVisible(hasFocus); - QFxItem::focusChanged(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); } /*! Causes all text to be selected. */ -void QFxTextEdit::selectAll() +void QmlGraphicsTextEdit::selectAll() { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->selectAll(); } @@ -844,59 +844,59 @@ void QFxTextEdit::selectAll() \overload Handles the given mouse \a event. */ -void QFxTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (d->focusOnPress) setFocus(true); d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::mousePressEvent(event); + QmlGraphicsPaintedItem::mousePressEvent(event); } /*! \overload Handles the given mouse \a event. */ -void QFxTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::mousePressEvent(event); + QmlGraphicsPaintedItem::mousePressEvent(event); } /*! \overload Handles the given mouse \a event. */ -void QFxTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::mouseDoubleClickEvent(event); + QmlGraphicsPaintedItem::mouseDoubleClickEvent(event); } /*! \overload Handles the given mouse \a event. */ -void QFxTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->processEvent(event, QPointF(0, 0)); if (!event->isAccepted()) - QFxPaintedItem::mousePressEvent(event); + QmlGraphicsPaintedItem::mousePressEvent(event); } /*! \overload Handles the given input method \a event. */ -void QFxTextEdit::inputMethodEvent(QInputMethodEvent *event) +void QmlGraphicsTextEdit::inputMethodEvent(QInputMethodEvent *event) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); d->control->processEvent(event, QPointF(0, 0)); } @@ -904,9 +904,9 @@ void QFxTextEdit::inputMethodEvent(QInputMethodEvent *event) \overload Returns the value of the given \a property. */ -QVariant QFxTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const +QVariant QmlGraphicsTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const { - Q_D(const QFxTextEdit); + Q_D(const QmlGraphicsTextEdit); return d->control->inputMethodQuery(property); } @@ -914,16 +914,16 @@ QVariant QFxTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const Draws the contents of the text edit using the given \a painter within the given \a bounds. */ -void QFxTextEdit::drawContents(QPainter *painter, const QRect &bounds) +void QmlGraphicsTextEdit::drawContents(QPainter *painter, const QRect &bounds) { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); painter->setRenderHint(QPainter::TextAntialiasing, true); d->control->drawContents(painter, bounds); } -void QFxTextEdit::updateImgCache(const QRectF &r) +void QmlGraphicsTextEdit::updateImgCache(const QRectF &r) { dirtyCache(r.toRect()); emit update(); @@ -942,9 +942,9 @@ void QFxTextEdit::updateImgCache(const QRectF &r) filtering at the beginning of the animation and reenable it at the conclusion. */ -void QFxTextEditPrivate::init() +void QmlGraphicsTextEditPrivate::init() { - Q_Q(QFxTextEdit); + Q_Q(QmlGraphicsTextEdit); q->setSmoothTransform(smooth); q->setAcceptedMouseButtons(Qt::LeftButton); @@ -969,16 +969,16 @@ void QFxTextEditPrivate::init() updateDefaultTextOption(); } -void QFxTextEdit::q_textChanged() +void QmlGraphicsTextEdit::q_textChanged() { if (!widthValid()) updateSize(); //### optimize: we get 3 calls to updateSize every time a letter is typed emit textChanged(text()); } -void QFxTextEdit::moveCursorDelegate() +void QmlGraphicsTextEdit::moveCursorDelegate() { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(!d->cursor) return; QRectF cursorRect = d->control->cursorRect(); @@ -986,9 +986,9 @@ void QFxTextEdit::moveCursorDelegate() d->cursor->setY(cursorRect.y()); } -void QFxTextEditPrivate::updateSelection() +void QmlGraphicsTextEditPrivate::updateSelection() { - Q_Q(QFxTextEdit); + Q_Q(QmlGraphicsTextEdit); QTextCursor cursor = control->textCursor(); bool startChange = (lastSelectionStart != cursor.selectionStart()); bool endChange = (lastSelectionEnd != cursor.selectionEnd()); @@ -1005,12 +1005,12 @@ void QFxTextEditPrivate::updateSelection() startChange = (lastSelectionStart != control->textCursor().selectionStart()); endChange = (lastSelectionEnd != control->textCursor().selectionEnd()); if(startChange || endChange) - qWarning() << "QFxTextEditPrivate::updateSelection() has failed you."; + qWarning() << "QmlGraphicsTextEditPrivate::updateSelection() has failed you."; } -void QFxTextEdit::updateSelectionMarkers() +void QmlGraphicsTextEdit::updateSelectionMarkers() { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if(d->lastSelectionStart != d->control->textCursor().selectionStart()){ d->lastSelectionStart = d->control->textCursor().selectionStart(); emit selectionStartChanged(); @@ -1023,9 +1023,9 @@ void QFxTextEdit::updateSelectionMarkers() //### we should perhaps be a bit smarter here -- depending on what has changed, we shouldn't // need to do all the calculations each time -void QFxTextEdit::updateSize() +void QmlGraphicsTextEdit::updateSize() { - Q_D(QFxTextEdit); + Q_D(QmlGraphicsTextEdit); if (isComponentComplete()) { QFontMetrics fm = QFontMetrics(d->font); int dy = height(); @@ -1064,7 +1064,7 @@ void QFxTextEdit::updateSize() emit update(); } -void QFxTextEditPrivate::updateDefaultTextOption() +void QmlGraphicsTextEditPrivate::updateDefaultTextOption() { QTextOption opt = document->defaultTextOption(); int oldAlignment = opt.alignment(); diff --git a/src/declarative/fx/qfxtextedit.h b/src/declarative/fx/qfxtextedit.h index f4f101a..28eb180 100644 --- a/src/declarative/fx/qfxtextedit.h +++ b/src/declarative/fx/qfxtextedit.h @@ -58,8 +58,8 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxTextEditPrivate; -class Q_DECLARATIVE_EXPORT QFxTextEdit : public QFxPaintedItem +class QmlGraphicsTextEditPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem { Q_OBJECT Q_ENUMS(VAlignment) @@ -87,7 +87,7 @@ class Q_DECLARATIVE_EXPORT QFxTextEdit : public QFxPaintedItem Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) public: - QFxTextEdit(QFxItem *parent=0); + QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); enum HAlignment { AlignLeft = Qt::AlignLeft, @@ -201,7 +201,7 @@ private: void updateSize(); protected: - QFxTextEdit(QFxTextEditPrivate &dd, QFxItem *parent); + QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); @@ -221,13 +221,13 @@ protected: void drawContents(QPainter *, const QRect &); private: - Q_DISABLE_COPY(QFxTextEdit) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxTextEdit) + Q_DISABLE_COPY(QmlGraphicsTextEdit) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxTextEdit) +QML_DECLARE_TYPE(QmlGraphicsTextEdit) QT_END_HEADER diff --git a/src/declarative/fx/qfxtextedit_p.h b/src/declarative/fx/qfxtextedit_p.h index 82481ff..ca65109 100644 --- a/src/declarative/fx/qfxtextedit_p.h +++ b/src/declarative/fx/qfxtextedit_p.h @@ -62,16 +62,16 @@ QT_BEGIN_NAMESPACE class QTextLayout; class QTextDocument; class QTextControl; -class QFxTextEditPrivate : public QFxPaintedItemPrivate +class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate { - Q_DECLARE_PUBLIC(QFxTextEdit) + Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) public: - QFxTextEditPrivate() - : color("black"), imgDirty(true), hAlign(QFxTextEdit::AlignLeft), vAlign(QFxTextEdit::AlignTop), + QmlGraphicsTextEditPrivate() + : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), - cursorComponent(0), cursor(0), format(QFxTextEdit::AutoText), document(0) + cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) { } @@ -91,8 +91,8 @@ public: bool imgDirty; QPixmap imgCache; QPixmap imgStyleCache; - QFxTextEdit::HAlignment hAlign; - QFxTextEdit::VAlignment vAlign; + QmlGraphicsTextEdit::HAlignment hAlign; + QmlGraphicsTextEdit::VAlignment vAlign; bool dirty; bool wrap; bool richText; @@ -103,8 +103,8 @@ public: int lastSelectionStart; int lastSelectionEnd; QmlComponent* cursorComponent; - QFxItem* cursor; - QFxTextEdit::TextFormat format; + QmlGraphicsItem* cursor; + QmlGraphicsTextEdit::TextFormat format; QTextDocument *document; QTextControl *control; }; diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp index e9ddd3f..930768d 100644 --- a/src/declarative/fx/qfxtextinput.cpp +++ b/src/declarative/fx/qfxtextinput.cpp @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QFxTextInput); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QmlGraphicsTextInput); QML_DEFINE_NOCREATE_TYPE(QValidator); QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); @@ -63,24 +63,24 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); Input constraints include setting a QValidator, an input mask, or a maximum input length. */ -QFxTextInput::QFxTextInput(QFxItem* parent) - : QFxPaintedItem(*(new QFxTextInputPrivate), parent) +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsTextInputPrivate), parent) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->init(); } /* \internal */ -QFxTextInput::QFxTextInput(QFxTextInputPrivate &dd, QFxItem* parent) - : QFxPaintedItem(dd, parent) +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(dd, parent) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->init(); } -QFxTextInput::~QFxTextInput() +QmlGraphicsTextInput::~QmlGraphicsTextInput() { } @@ -90,15 +90,15 @@ QFxTextInput::~QFxTextInput() The text in the TextInput. */ -QString QFxTextInput::text() const +QString QmlGraphicsTextInput::text() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->text(); } -void QFxTextInput::setText(const QString &s) +void QmlGraphicsTextInput::setText(const QString &s) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(s == text()) return; d->control->setText(s); @@ -115,15 +115,15 @@ void QFxTextInput::setText(const QString &s) Set the TextInput's font attributes. */ -QFont QFxTextInput::font() const +QFont QmlGraphicsTextInput::font() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->font; } -void QFxTextInput::setFont(const QFont &font) +void QmlGraphicsTextInput::setFont(const QFont &font) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->font = font; d->control->setFont(d->font); @@ -139,15 +139,15 @@ void QFxTextInput::setFont(const QFont &font) The text color. */ -QColor QFxTextInput::color() const +QColor QmlGraphicsTextInput::color() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->color; } -void QFxTextInput::setColor(const QColor &c) +void QmlGraphicsTextInput::setColor(const QColor &c) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->color = c; } @@ -157,15 +157,15 @@ void QFxTextInput::setColor(const QColor &c) The text highlight color, used behind selections. */ -QColor QFxTextInput::selectionColor() const +QColor QmlGraphicsTextInput::selectionColor() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->selectionColor; } -void QFxTextInput::setSelectionColor(const QColor &color) +void QmlGraphicsTextInput::setSelectionColor(const QColor &color) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if (d->selectionColor == color) return; @@ -180,15 +180,15 @@ void QFxTextInput::setSelectionColor(const QColor &color) The highlighted text color, used in selections. */ -QColor QFxTextInput::selectedTextColor() const +QColor QmlGraphicsTextInput::selectedTextColor() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->selectedTextColor; } -void QFxTextInput::setSelectedTextColor(const QColor &color) +void QmlGraphicsTextInput::setSelectedTextColor(const QColor &color) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if (d->selectedTextColor == color) return; @@ -213,40 +213,40 @@ void QFxTextInput::setSelectedTextColor(const QColor &color) The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and \c AlignHCenter. */ -QFxTextInput::HAlignment QFxTextInput::hAlign() const +QmlGraphicsTextInput::HAlignment QmlGraphicsTextInput::hAlign() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->hAlign; } -void QFxTextInput::setHAlign(HAlignment align) +void QmlGraphicsTextInput::setHAlign(HAlignment align) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->hAlign = align; //TODO: implement } -bool QFxTextInput::isReadOnly() const +bool QmlGraphicsTextInput::isReadOnly() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->isReadOnly(); } -void QFxTextInput::setReadOnly(bool ro) +void QmlGraphicsTextInput::setReadOnly(bool ro) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setReadOnly(ro); } -int QFxTextInput::maxLength() const +int QmlGraphicsTextInput::maxLength() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->maxLength(); } -void QFxTextInput::setMaxLength(int ml) +void QmlGraphicsTextInput::setMaxLength(int ml) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setMaxLength(ml); } @@ -257,15 +257,15 @@ void QFxTextInput::setMaxLength(int ml) This property is set and unset when the line edit gets focus, but it can also be set directly (useful, for example, if a KeyProxy might forward keys to it). */ -bool QFxTextInput::isCursorVisible() const +bool QmlGraphicsTextInput::isCursorVisible() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->cursorVisible; } -void QFxTextInput::setCursorVisible(bool on) +void QmlGraphicsTextInput::setCursorVisible(bool on) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if (d->cursorVisible == on) return; d->cursorVisible = on; @@ -277,14 +277,14 @@ void QFxTextInput::setCursorVisible(bool on) \qmlproperty int TextInput::cursorPosition The position of the cursor in the TextInput. */ -int QFxTextInput::cursorPosition() const +int QmlGraphicsTextInput::cursorPosition() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->cursor(); } -void QFxTextInput::setCursorPosition(int cp) +void QmlGraphicsTextInput::setCursorPosition(int cp) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->moveCursor(cp); } @@ -294,9 +294,9 @@ void QFxTextInput::setCursorPosition(int cp) Returns a Rect which encompasses the cursor, but which may be larger than is required. Ignores custom cursor delegates. */ -QRect QFxTextInput::cursorRect() const +QRect QmlGraphicsTextInput::cursorRect() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->cursorRect(); } @@ -313,15 +313,15 @@ QRect QFxTextInput::cursorRect() const \sa selectionEnd, cursorPosition, selectedText */ -int QFxTextInput::selectionStart() const +int QmlGraphicsTextInput::selectionStart() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->lastSelectionStart; } -void QFxTextInput::setSelectionStart(int s) +void QmlGraphicsTextInput::setSelectionStart(int s) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(d->lastSelectionStart == s || s < 0 || s > text().length()) return; d->lastSelectionStart = s; @@ -341,15 +341,15 @@ void QFxTextInput::setSelectionStart(int s) \sa selectionStart, cursorPosition, selectedText */ -int QFxTextInput::selectionEnd() const +int QmlGraphicsTextInput::selectionEnd() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->lastSelectionEnd; } -void QFxTextInput::setSelectionEnd(int s) +void QmlGraphicsTextInput::setSelectionEnd(int s) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(d->lastSelectionEnd == s || s < 0 || s > text().length()) return; d->lastSelectionEnd = s; @@ -370,9 +370,9 @@ void QFxTextInput::setSelectionEnd(int s) myTextInput.selectionEnd); \endqml */ -QString QFxTextInput::selectedText() const +QString QmlGraphicsTextInput::selectedText() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->selectedText(); } @@ -382,15 +382,15 @@ QString QFxTextInput::selectedText() const Whether the TextInput should gain focus on a mouse press. By default this is set to true. */ -bool QFxTextInput::focusOnPress() const +bool QmlGraphicsTextInput::focusOnPress() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->focusOnPress; } -void QFxTextInput::setFocusOnPress(bool b) +void QmlGraphicsTextInput::setFocusOnPress(bool b) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->focusOnPress = b; } @@ -404,16 +404,16 @@ void QFxTextInput::setFocusOnPress(bool b) \sa acceptableInput, inputMask */ -QValidator* QFxTextInput::validator() const +QValidator* QmlGraphicsTextInput::validator() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); //###const cast isn't good, but needed for property system? return const_cast(d->control->validator()); } -void QFxTextInput::setValidator(QValidator* v) +void QmlGraphicsTextInput::setValidator(QValidator* v) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setValidator(v); if(!d->control->hasAcceptableInput()){ d->oldValidity = false; @@ -430,15 +430,15 @@ void QFxTextInput::setValidator(QValidator* v) \sa acceptableInput, validator */ -QString QFxTextInput::inputMask() const +QString QmlGraphicsTextInput::inputMask() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->inputMask(); } -void QFxTextInput::setInputMask(const QString &im) +void QmlGraphicsTextInput::setInputMask(const QString &im) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setInputMask(im); } @@ -450,9 +450,9 @@ void QFxTextInput::setInputMask(const QString &im) if the current text is acceptable to the validator or input mask as a final string (not as an intermediate string). */ -bool QFxTextInput::hasAcceptableInput() const +bool QmlGraphicsTextInput::hasAcceptableInput() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->hasAcceptableInput(); } @@ -466,15 +466,15 @@ bool QFxTextInput::hasAcceptableInput() const current character as asterixes. */ -QFxTextInput::EchoMode QFxTextInput::echoMode() const +QmlGraphicsTextInput::EchoMode QmlGraphicsTextInput::echoMode() const { - Q_D(const QFxTextInput); - return (QFxTextInput::EchoMode)d->control->echoMode(); + Q_D(const QmlGraphicsTextInput); + return (QmlGraphicsTextInput::EchoMode)d->control->echoMode(); } -void QFxTextInput::setEchoMode(QFxTextInput::EchoMode echo) +void QmlGraphicsTextInput::setEchoMode(QmlGraphicsTextInput::EchoMode echo) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setEchoMode((uint)echo); } @@ -488,18 +488,18 @@ void QFxTextInput::setEchoMode(QFxTextInput::EchoMode echo) needed, and the x property of delegate instance will be set so as to be one pixel before the top left of the current character. - Note that the root item of the delegate component must be a QFxItem or - QFxItem derived item. + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. */ -QmlComponent* QFxTextInput::cursorDelegate() const +QmlComponent* QmlGraphicsTextInput::cursorDelegate() const { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->cursorComponent; } -void QFxTextInput::setCursorDelegate(QmlComponent* c) +void QmlGraphicsTextInput::setCursorDelegate(QmlComponent* c) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->cursorComponent = c; if(!c){ //note that the components are owned by something else @@ -511,9 +511,9 @@ void QFxTextInput::setCursorDelegate(QmlComponent* c) } } -void QFxTextInputPrivate::startCreatingCursor() +void QmlGraphicsTextInputPrivate::startCreatingCursor() { - Q_Q(QFxTextInput); + Q_Q(QmlGraphicsTextInput); q->connect(control, SIGNAL(cursorPositionChanged(int, int)), q, SLOT(moveCursor())); if(cursorComponent->isReady()){ @@ -522,14 +522,14 @@ void QFxTextInputPrivate::startCreatingCursor() q->connect(cursorComponent, SIGNAL(statusChanged(int)), q, SLOT(createCursor())); }else{//isError - qmlInfo(QFxTextInput::tr("Could not load cursor delegate"), q); + qmlInfo(QmlGraphicsTextInput::tr("Could not load cursor delegate"), q); qWarning() << cursorComponent->errors(); } } -void QFxTextInput::createCursor() +void QmlGraphicsTextInput::createCursor() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(d->cursorComponent->isError()){ qmlInfo(tr("Could not load cursor delegate"),this); qWarning() << d->cursorComponent->errors(); @@ -541,7 +541,7 @@ void QFxTextInput::createCursor() if(d->cursorItem) delete d->cursorItem; - d->cursorItem = qobject_cast(d->cursorComponent->create()); + d->cursorItem = qobject_cast(d->cursorComponent->create()); if(!d->cursorItem){ qmlInfo(tr("Could not instantiate cursor delegate"),this); //The failed instantiation should print its own error messages @@ -553,31 +553,31 @@ void QFxTextInput::createCursor() d->cursorItem->setHeight(d->control->height()); } -void QFxTextInput::moveCursor() +void QmlGraphicsTextInput::moveCursor() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(!d->cursorItem) return; d->cursorItem->setX(d->control->cursorToX() - d->hscroll); } -int QFxTextInput::xToPos(int x) +int QmlGraphicsTextInput::xToPos(int x) { - Q_D(const QFxTextInput); + Q_D(const QmlGraphicsTextInput); return d->control->xToPos(x - d->hscroll); } -void QFxTextInput::focusChanged(bool hasFocus) +void QmlGraphicsTextInput::focusChanged(bool hasFocus) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->focused = hasFocus; setCursorVisible(hasFocus); - QFxItem::focusChanged(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); } -void QFxTextInput::keyPressEvent(QKeyEvent* ev) +void QmlGraphicsTextInput::keyPressEvent(QKeyEvent* ev) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if((d->control->cursor() == 0 && ev->key() == Qt::Key_Left) || (d->control->cursor() == d->control->text().length() && ev->key() == Qt::Key_Right)){ @@ -587,12 +587,12 @@ void QFxTextInput::keyPressEvent(QKeyEvent* ev) d->control->processKeyEvent(ev); } if (!ev->isAccepted()) - QFxPaintedItem::keyPressEvent(ev); + QmlGraphicsPaintedItem::keyPressEvent(ev); } -void QFxTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); if(d->focusOnPress){ setFocus(true); setCursorVisible(true); @@ -601,9 +601,9 @@ void QFxTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) d->control->processEvent(event); } -bool QFxTextInput::event(QEvent* ev) +bool QmlGraphicsTextInput::event(QEvent* ev) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); //Anything we don't deal with ourselves, pass to the control bool handled = false; switch(ev->type()){ @@ -615,21 +615,21 @@ bool QFxTextInput::event(QEvent* ev) handled = d->control->processEvent(ev); } if(!handled) - return QFxPaintedItem::event(ev); + return QmlGraphicsPaintedItem::event(ev); return true; } -void QFxTextInput::geometryChanged(const QRectF &newGeometry, +void QmlGraphicsTextInput::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { if (newGeometry.width() != oldGeometry.width()) updateSize(); - QFxPaintedItem::geometryChanged(newGeometry, oldGeometry); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); } -void QFxTextInput::drawContents(QPainter *p, const QRect &r) +void QmlGraphicsTextInput::drawContents(QPainter *p, const QRect &r) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); p->setRenderHint(QPainter::TextAntialiasing, true); p->save(); p->setPen(QPen(d->color)); @@ -647,9 +647,9 @@ void QFxTextInput::drawContents(QPainter *p, const QRect &r) p->restore(); } -void QFxTextInput::selectAll() +void QmlGraphicsTextInput::selectAll() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); d->control->setSelection(0, d->control->text().length()); } @@ -667,9 +667,9 @@ void QFxTextInput::selectAll() filtering at the beginning of the animation and reenable it at the conclusion. */ -void QFxTextInputPrivate::init() +void QmlGraphicsTextInputPrivate::init() { - Q_Q(QFxTextInput); + Q_Q(QmlGraphicsTextInput); control->setCursorWidth(1); control->setPasswordCharacter(QLatin1Char('*')); control->setLayoutDirection(Qt::LeftToRight); @@ -698,9 +698,9 @@ void QFxTextInputPrivate::init() lastSelectionEnd = 0; } -void QFxTextInput::cursorPosChanged() +void QmlGraphicsTextInput::cursorPosChanged() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); emit cursorPositionChanged(); if(!d->control->hasSelectedText()){ @@ -715,9 +715,9 @@ void QFxTextInput::cursorPosChanged() } } -void QFxTextInput::selectionChanged() +void QmlGraphicsTextInput::selectionChanged() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); emit selectedTextChanged(); if(d->lastSelectionStart != d->control->selectionStart()){ @@ -734,9 +734,9 @@ void QFxTextInput::selectionChanged() } } -void QFxTextInput::q_textChanged() +void QmlGraphicsTextInput::q_textChanged() { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); updateSize(); emit textChanged(); if(hasAcceptableInput() != d->oldValidity){ @@ -745,7 +745,7 @@ void QFxTextInput::q_textChanged() } } -void QFxTextInput::updateRect(const QRect &r) +void QmlGraphicsTextInput::updateRect(const QRect &r) { if(r == QRect()) clearCache(); @@ -754,9 +754,9 @@ void QFxTextInput::updateRect(const QRect &r) update(); } -void QFxTextInput::updateSize(bool needsRedraw) +void QmlGraphicsTextInput::updateSize(bool needsRedraw) { - Q_D(QFxTextInput); + Q_D(QmlGraphicsTextInput); int w = width(); int h = height(); setImplicitHeight(d->control->height()); diff --git a/src/declarative/fx/qfxtextinput.h b/src/declarative/fx/qfxtextinput.h index 2540d41..ada32f9 100644 --- a/src/declarative/fx/qfxtextinput.h +++ b/src/declarative/fx/qfxtextinput.h @@ -53,9 +53,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxTextInputPrivate; +class QmlGraphicsTextInputPrivate; class QValidator; -class Q_DECLARATIVE_EXPORT QFxTextInput : public QFxPaintedItem +class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem { Q_OBJECT Q_ENUMS(HAlignment) @@ -84,8 +84,8 @@ class Q_DECLARATIVE_EXPORT QFxTextInput : public QFxPaintedItem Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) public: - QFxTextInput(QFxItem* parent=0); - ~QFxTextInput(); + QmlGraphicsTextInput(QmlGraphicsItem* parent=0); + ~QmlGraphicsTextInput(); enum EchoMode {//To match QLineEdit::EchoMode Normal, @@ -172,7 +172,7 @@ Q_SIGNALS: void acceptableInputChanged(); protected: - QFxTextInput(QFxTextInputPrivate &dd, QFxItem *parent); + QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); @@ -195,12 +195,12 @@ private Q_SLOTS: void updateRect(const QRect &r = QRect()); private: - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxTextInput) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxTextInput) +QML_DECLARE_TYPE(QmlGraphicsTextInput) QML_DECLARE_TYPE(QValidator) QML_DECLARE_TYPE(QIntValidator) diff --git a/src/declarative/fx/qfxtextinput_p.h b/src/declarative/fx/qfxtextinput_p.h index 3978be4..be8c946 100644 --- a/src/declarative/fx/qfxtextinput_p.h +++ b/src/declarative/fx/qfxtextinput_p.h @@ -59,19 +59,19 @@ QT_BEGIN_NAMESPACE -class QFxTextInputPrivate : public QFxPaintedItemPrivate +class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate { - Q_DECLARE_PUBLIC(QFxTextInput) + Q_DECLARE_PUBLIC(QmlGraphicsTextInput) public: - QFxTextInputPrivate() : control(new QLineControl(QString())), - color((QRgb)0), style(QFxText::Normal), - styleColor((QRgb)0), hAlign(QFxTextInput::AlignLeft), + QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), + color((QRgb)0), style(QmlGraphicsText::Normal), + styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), hscroll(0), oldScroll(0), focused(false), focusOnPress(true), cursorVisible(false) { } - ~QFxTextInputPrivate() + ~QmlGraphicsTextInputPrivate() { delete control; } @@ -85,11 +85,11 @@ public: QColor color; QColor selectionColor; QColor selectedTextColor; - QFxText::TextStyle style; + QmlGraphicsText::TextStyle style; QColor styleColor; - QFxTextInput::HAlignment hAlign; + QmlGraphicsTextInput::HAlignment hAlign; QPointer cursorComponent; - QPointer cursorItem; + QPointer cursorItem; int lastSelectionStart; int lastSelectionEnd; diff --git a/src/declarative/fx/qfxvisualitemmodel.cpp b/src/declarative/fx/qfxvisualitemmodel.cpp index 7ee6eea..681e360 100644 --- a/src/declarative/fx/qfxvisualitemmodel.cpp +++ b/src/declarative/fx/qfxvisualitemmodel.cpp @@ -59,14 +59,14 @@ QML_DECLARE_TYPE(QListModelInterface) QT_BEGIN_NAMESPACE -class QFxVisualItemModelAttached : public QObject +class QmlGraphicsVisualItemModelAttached : public QObject { Q_OBJECT public: - QFxVisualItemModelAttached(QObject *parent) + QmlGraphicsVisualItemModelAttached(QObject *parent) : QObject(parent), m_index(0) {} - ~QFxVisualItemModelAttached() { + ~QmlGraphicsVisualItemModelAttached() { attachedProperties.remove(parent()); } @@ -79,10 +79,10 @@ public: } } - static QFxVisualItemModelAttached *properties(QObject *obj) { - QFxVisualItemModelAttached *rv = attachedProperties.value(obj); + static QmlGraphicsVisualItemModelAttached *properties(QObject *obj) { + QmlGraphicsVisualItemModelAttached *rv = attachedProperties.value(obj); if (!rv) { - rv = new QFxVisualItemModelAttached(obj); + rv = new QmlGraphicsVisualItemModelAttached(obj); attachedProperties.insert(obj, rv); } return rv; @@ -94,37 +94,37 @@ Q_SIGNALS: public: int m_index; - static QHash attachedProperties; + static QHash attachedProperties; }; -QHash QFxVisualItemModelAttached::attachedProperties; +QHash QmlGraphicsVisualItemModelAttached::attachedProperties; -class QFxVisualItemModelPrivate : public QObjectPrivate +class QmlGraphicsVisualItemModelPrivate : public QObjectPrivate { - Q_DECLARE_PUBLIC(QFxVisualItemModel) + Q_DECLARE_PUBLIC(QmlGraphicsVisualItemModel) public: - QFxVisualItemModelPrivate() : QObjectPrivate(), children(this) {} + QmlGraphicsVisualItemModelPrivate() : QObjectPrivate(), children(this) {} - struct ItemList : public QmlConcreteList + struct ItemList : public QmlConcreteList { - ItemList(QFxVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} + ItemList(QmlGraphicsVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} - void append(QFxItem *item); + void append(QmlGraphicsItem *item); - QFxVisualItemModelPrivate *model; + QmlGraphicsVisualItemModelPrivate *model; }; void itemAppended() { - Q_Q(QFxVisualItemModel); - QFxVisualItemModelAttached *attached = QFxVisualItemModelAttached::properties(children.last()); + Q_Q(QmlGraphicsVisualItemModel); + QmlGraphicsVisualItemModelAttached *attached = QmlGraphicsVisualItemModelAttached::properties(children.last()); attached->setIndex(children.count()-1); emit q->itemsInserted(children.count()-1, 1); emit q->countChanged(); } void emitChildrenChanged() { - Q_Q(QFxVisualItemModel); + Q_Q(QmlGraphicsVisualItemModel); emit q->childrenChanged(); } ItemList children; @@ -132,7 +132,7 @@ public: /*! - \qmlclass VisualItemModel QFxVisualItemModel + \qmlclass VisualItemModel QmlGraphicsVisualItemModel \brief The VisualItemModel allows items to be provided to a view. The children of the VisualItemModel are provided in a model which @@ -160,14 +160,14 @@ public: } \endcode */ -QFxVisualItemModel::QFxVisualItemModel() - : QFxVisualModel(*(new QFxVisualItemModelPrivate)) +QmlGraphicsVisualItemModel::QmlGraphicsVisualItemModel() + : QmlGraphicsVisualModel(*(new QmlGraphicsVisualItemModelPrivate)) { } -QmlList *QFxVisualItemModel::children() +QmlList *QmlGraphicsVisualItemModel::children() { - Q_D(QFxVisualItemModel); + Q_D(QmlGraphicsVisualItemModel); return &(d->children); } @@ -176,37 +176,37 @@ QmlList *QFxVisualItemModel::children() The number of items in the model. This property is readonly. */ -int QFxVisualItemModel::count() const +int QmlGraphicsVisualItemModel::count() const { - Q_D(const QFxVisualItemModel); + Q_D(const QmlGraphicsVisualItemModel); return d->children.count(); } -bool QFxVisualItemModel::isValid() const +bool QmlGraphicsVisualItemModel::isValid() const { return true; } -QFxItem *QFxVisualItemModel::item(int index, bool) +QmlGraphicsItem *QmlGraphicsVisualItemModel::item(int index, bool) { - Q_D(QFxVisualItemModel); + Q_D(QmlGraphicsVisualItemModel); return d->children.at(index); } -QFxVisualModel::ReleaseFlags QFxVisualItemModel::release(QFxItem *) +QmlGraphicsVisualModel::ReleaseFlags QmlGraphicsVisualItemModel::release(QmlGraphicsItem *) { // Nothing to do return 0; } -void QFxVisualItemModel::completeItem() +void QmlGraphicsVisualItemModel::completeItem() { // Nothing to do } -QVariant QFxVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) +QVariant QmlGraphicsVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) { - Q_D(QFxVisualItemModel); + Q_D(QmlGraphicsVisualItemModel); QmlContext *ccontext = qmlContext(this); QmlContext *ctxt = new QmlContext(ccontext); ctxt->addDefaultObject(d->children.at(index)); @@ -217,41 +217,41 @@ QVariant QFxVisualItemModel::evaluate(int index, const QString &expression, QObj return value; } -int QFxVisualItemModel::indexOf(QFxItem *item, QObject *) const +int QmlGraphicsVisualItemModel::indexOf(QmlGraphicsItem *item, QObject *) const { - Q_D(const QFxVisualItemModel); + Q_D(const QmlGraphicsVisualItemModel); return d->children.indexOf(item); } -void QFxVisualItemModelPrivate::ItemList::append(QFxItem *item) +void QmlGraphicsVisualItemModelPrivate::ItemList::append(QmlGraphicsItem *item) { - QmlConcreteList::append(item); + QmlConcreteList::append(item); item->QObject::setParent(model->q_ptr); model->itemAppended(); model->emitChildrenChanged(); } -QFxVisualItemModelAttached *QFxVisualItemModel::qmlAttachedProperties(QObject *obj) +QmlGraphicsVisualItemModelAttached *QmlGraphicsVisualItemModel::qmlAttachedProperties(QObject *obj) { - return QFxVisualItemModelAttached::properties(obj); + return QmlGraphicsVisualItemModelAttached::properties(obj); } -class QFxVisualDataModelParts; -class QFxVisualDataModelData; -class QFxVisualDataModelPrivate : public QObjectPrivate +class QmlGraphicsVisualDataModelParts; +class QmlGraphicsVisualDataModelData; +class QmlGraphicsVisualDataModelPrivate : public QObjectPrivate { public: - QFxVisualDataModelPrivate(QmlContext *); + QmlGraphicsVisualDataModelPrivate(QmlContext *); - static QFxVisualDataModelPrivate *get(QFxVisualDataModel *m) { - return static_cast(QObjectPrivate::get(m)); + static QmlGraphicsVisualDataModelPrivate *get(QmlGraphicsVisualDataModel *m) { + return static_cast(QObjectPrivate::get(m)); } QGuard m_listModelInterface; QGuard m_abstractItemModel; - QGuard m_visualItemModel; + QGuard m_visualItemModel; QString m_part; QmlComponent *m_delegate; @@ -334,10 +334,10 @@ public: Cache m_cache; QHash m_packaged; - QFxVisualDataModelParts *m_parts; - friend class QFxVisualItemParts; + QmlGraphicsVisualDataModelParts *m_parts; + friend class QmlGraphicsVisualItemParts; - QFxVisualDataModelData *data(QObject *item); + QmlGraphicsVisualDataModelData *data(QObject *item); QVariant m_modelVariant; QmlListAccessor *m_listAccessor; @@ -355,26 +355,26 @@ public: } }; -class QFxVisualDataModelDataMetaObject : public QmlOpenMetaObject +class QmlGraphicsVisualDataModelDataMetaObject : public QmlOpenMetaObject { public: - QFxVisualDataModelDataMetaObject(QObject *parent) + QmlGraphicsVisualDataModelDataMetaObject(QObject *parent) : QmlOpenMetaObject(parent) {} virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); virtual int createProperty(const char *, const char *); private: - friend class QFxVisualDataModelData; + friend class QmlGraphicsVisualDataModelData; QList roles; }; -class QFxVisualDataModelData : public QObject +class QmlGraphicsVisualDataModelData : public QObject { Q_OBJECT public: - QFxVisualDataModelData(int index, QFxVisualDataModel *model); - ~QFxVisualDataModelData(); + QmlGraphicsVisualDataModelData(int index, QmlGraphicsVisualDataModel *model); + ~QmlGraphicsVisualDataModelData(); Q_PROPERTY(int index READ index NOTIFY indexChanged) int index() const; @@ -388,37 +388,37 @@ Q_SIGNALS: void indexChanged(); private: - friend class QFxVisualDataModelDataMetaObject; + friend class QmlGraphicsVisualDataModelDataMetaObject; int m_index; - QGuard m_model; - QFxVisualDataModelDataMetaObject *m_meta; + QGuard m_model; + QmlGraphicsVisualDataModelDataMetaObject *m_meta; }; -int QFxVisualDataModelData::count() const +int QmlGraphicsVisualDataModelData::count() const { return m_meta->count(); } -int QFxVisualDataModelData::role(int id) const +int QmlGraphicsVisualDataModelData::role(int id) const { Q_ASSERT(id >= 0 && id < count()); return m_meta->roles.at(id); } -void QFxVisualDataModelData::setValue(int id, const QVariant &val) +void QmlGraphicsVisualDataModelData::setValue(int id, const QVariant &val) { m_meta->setValue(id, val); } -int QFxVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) +int QmlGraphicsVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) { - QFxVisualDataModelData *data = - static_cast(object()); + QmlGraphicsVisualDataModelData *data = + static_cast(object()); if (!data->m_model) return -1; - QFxVisualDataModelPrivate *model = QFxVisualDataModelPrivate::get(data->m_model); + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { model->ensureRoles(); @@ -439,15 +439,15 @@ int QFxVisualDataModelDataMetaObject::createProperty(const char *name, const cha } QVariant -QFxVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +QmlGraphicsVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) { prop.setWritable(false); - QFxVisualDataModelData *data = - static_cast(object()); + QmlGraphicsVisualDataModelData *data = + static_cast(object()); Q_ASSERT(data->m_model); - QFxVisualDataModelPrivate *model = QFxVisualDataModelPrivate::get(data->m_model); + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); QString name = QString::fromUtf8(prop.name()); if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { @@ -493,109 +493,109 @@ QFxVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &pro return QVariant(); } -QFxVisualDataModelData::QFxVisualDataModelData(int index, - QFxVisualDataModel *model) +QmlGraphicsVisualDataModelData::QmlGraphicsVisualDataModelData(int index, + QmlGraphicsVisualDataModel *model) : m_index(index), m_model(model), - m_meta(new QFxVisualDataModelDataMetaObject(this)) + m_meta(new QmlGraphicsVisualDataModelDataMetaObject(this)) { } -QFxVisualDataModelData::~QFxVisualDataModelData() +QmlGraphicsVisualDataModelData::~QmlGraphicsVisualDataModelData() { } -int QFxVisualDataModelData::index() const +int QmlGraphicsVisualDataModelData::index() const { return m_index; } // This is internal only - it should not be set from qml -void QFxVisualDataModelData::setIndex(int index) +void QmlGraphicsVisualDataModelData::setIndex(int index) { m_index = index; emit indexChanged(); } -class QFxVisualDataModelPartsMetaObject : public QmlOpenMetaObject +class QmlGraphicsVisualDataModelPartsMetaObject : public QmlOpenMetaObject { public: - QFxVisualDataModelPartsMetaObject(QObject *parent) + QmlGraphicsVisualDataModelPartsMetaObject(QObject *parent) : QmlOpenMetaObject(parent) {} virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); }; -class QFxVisualDataModelParts : public QObject +class QmlGraphicsVisualDataModelParts : public QObject { Q_OBJECT public: - QFxVisualDataModelParts(QFxVisualDataModel *parent); + QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent); private: - friend class QFxVisualDataModelPartsMetaObject; - QFxVisualDataModel *model; + friend class QmlGraphicsVisualDataModelPartsMetaObject; + QmlGraphicsVisualDataModel *model; }; QVariant -QFxVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +QmlGraphicsVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) { prop.setWritable(false); - QFxVisualDataModel *m = new QFxVisualDataModel; + QmlGraphicsVisualDataModel *m = new QmlGraphicsVisualDataModel; m->setParent(object()); m->setPart(QString::fromUtf8(prop.name())); - m->setModel(QVariant::fromValue(static_cast(object())->model)); + m->setModel(QVariant::fromValue(static_cast(object())->model)); QVariant var = QVariant::fromValue((QObject *)m); return var; } -QFxVisualDataModelParts::QFxVisualDataModelParts(QFxVisualDataModel *parent) +QmlGraphicsVisualDataModelParts::QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent) : QObject(parent), model(parent) { - new QFxVisualDataModelPartsMetaObject(this); + new QmlGraphicsVisualDataModelPartsMetaObject(this); } -QFxVisualDataModelPrivate::QFxVisualDataModelPrivate(QmlContext *ctxt) +QmlGraphicsVisualDataModelPrivate::QmlGraphicsVisualDataModelPrivate(QmlContext *ctxt) : m_listModelInterface(0), m_abstractItemModel(0), m_visualItemModel(0), m_delegate(0) , m_context(ctxt), m_parts(0), m_listAccessor(0) { } -QFxVisualDataModelData *QFxVisualDataModelPrivate::data(QObject *item) +QmlGraphicsVisualDataModelData *QmlGraphicsVisualDataModelPrivate::data(QObject *item) { - QFxVisualDataModelData *dataItem = - item->findChild(); + QmlGraphicsVisualDataModelData *dataItem = + item->findChild(); Q_ASSERT(dataItem); return dataItem; } -QFxVisualDataModel::QFxVisualDataModel() -: QFxVisualModel(*(new QFxVisualDataModelPrivate(0))) +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel() +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(0))) { } -QFxVisualDataModel::QFxVisualDataModel(QmlContext *ctxt) -: QFxVisualModel(*(new QFxVisualDataModelPrivate(ctxt))) +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel(QmlContext *ctxt) +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(ctxt))) { } -QFxVisualDataModel::~QFxVisualDataModel() +QmlGraphicsVisualDataModel::~QmlGraphicsVisualDataModel() { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_listAccessor) delete d->m_listAccessor; } -QVariant QFxVisualDataModel::model() const +QVariant QmlGraphicsVisualDataModel::model() const { - Q_D(const QFxVisualDataModel); + Q_D(const QmlGraphicsVisualDataModel); return d->m_modelVariant; } -void QFxVisualDataModel::setModel(const QVariant &model) +void QmlGraphicsVisualDataModel::setModel(const QVariant &model) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); delete d->m_listAccessor; d->m_listAccessor = 0; d->m_modelVariant = model; @@ -656,7 +656,7 @@ void QFxVisualDataModel::setModel(const QVariant &model) this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); return; } - if ((d->m_visualItemModel = qvariant_cast(model))) { + if ((d->m_visualItemModel = qvariant_cast(model))) { QObject::connect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), this, SIGNAL(itemsInserted(int,int))); QObject::connect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), @@ -677,17 +677,17 @@ void QFxVisualDataModel::setModel(const QVariant &model) } } -QmlComponent *QFxVisualDataModel::delegate() const +QmlComponent *QmlGraphicsVisualDataModel::delegate() const { - Q_D(const QFxVisualDataModel); + Q_D(const QmlGraphicsVisualDataModel); if (d->m_visualItemModel) return d->m_visualItemModel->delegate(); return d->m_delegate; } -void QFxVisualDataModel::setDelegate(QmlComponent *delegate) +void QmlGraphicsVisualDataModel::setDelegate(QmlComponent *delegate) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); d->m_delegate = delegate; if (d->modelCount()) { emit itemsInserted(0, d->modelCount()); @@ -695,27 +695,27 @@ void QFxVisualDataModel::setDelegate(QmlComponent *delegate) } } -QString QFxVisualDataModel::part() const +QString QmlGraphicsVisualDataModel::part() const { - Q_D(const QFxVisualDataModel); + Q_D(const QmlGraphicsVisualDataModel); return d->m_part; } -void QFxVisualDataModel::setPart(const QString &part) +void QmlGraphicsVisualDataModel::setPart(const QString &part) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); d->m_part = part; } -int QFxVisualDataModel::count() const +int QmlGraphicsVisualDataModel::count() const { - Q_D(const QFxVisualDataModel); + Q_D(const QmlGraphicsVisualDataModel); return d->modelCount(); } -QFxItem *QFxVisualDataModel::item(int index, bool complete) +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, bool complete) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_visualItemModel) return d->m_visualItemModel->item(index, d->m_part.toUtf8(), complete); return item(index, QByteArray(), complete); @@ -724,9 +724,9 @@ QFxItem *QFxVisualDataModel::item(int index, bool complete) /* Returns ReleaseStatus flags. */ -QFxVisualDataModel::ReleaseFlags QFxVisualDataModel::release(QFxItem *item) +QmlGraphicsVisualDataModel::ReleaseFlags QmlGraphicsVisualDataModel::release(QmlGraphicsItem *item) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_visualItemModel) return d->m_visualItemModel->release(item); @@ -757,17 +757,17 @@ QFxVisualDataModel::ReleaseFlags QFxVisualDataModel::release(QFxItem *item) return stat; } -QObject *QFxVisualDataModel::parts() +QObject *QmlGraphicsVisualDataModel::parts() { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (!d->m_parts) - d->m_parts = new QFxVisualDataModelParts(this); + d->m_parts = new QmlGraphicsVisualDataModelParts(this); return d->m_parts; } -QFxItem *QFxVisualDataModel::item(int index, const QByteArray &viewId, bool complete) +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, const QByteArray &viewId, bool complete) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_visualItemModel) return d->m_visualItemModel->item(index, viewId, complete); @@ -779,7 +779,7 @@ QFxItem *QFxVisualDataModel::item(int index, const QByteArray &viewId, bool comp QmlContext *ccontext = d->m_context; if (!ccontext) ccontext = qmlContext(this); QmlContext *ctxt = new QmlContext(ccontext); - QFxVisualDataModelData *data = new QFxVisualDataModelData(index, this); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); ctxt->setContextProperty(QLatin1String("model"), data); ctxt->addDefaultObject(data); nobj = d->m_delegate->beginCreate(ctxt); @@ -797,27 +797,27 @@ QFxItem *QFxVisualDataModel::item(int index, const QByteArray &viewId, bool comp qWarning() << d->m_delegate->errors(); } } - QFxItem *item = qobject_cast(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); if (!item) { QmlPackage *package = qobject_cast(nobj); if (package) { QObject *o = package->part(QString::fromUtf8(viewId)); - item = qobject_cast(o); + item = qobject_cast(o); if (item) d->m_packaged.insertMulti(item, package); } } if (!item) { d->m_cache.releaseItem(nobj); - qmlInfo(QFxVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); + qmlInfo(QmlGraphicsVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); } return item; } -void QFxVisualDataModel::completeItem() +void QmlGraphicsVisualDataModel::completeItem() { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_visualItemModel) { d->m_visualItemModel->completeItem(); return; @@ -826,9 +826,9 @@ void QFxVisualDataModel::completeItem() d->m_delegate->completeCreate(); } -QVariant QFxVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) +QVariant QmlGraphicsVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); if (d->m_visualItemModel) return d->m_visualItemModel->evaluate(index, expression, objectContext); @@ -838,7 +838,7 @@ QVariant QFxVisualDataModel::evaluate(int index, const QString &expression, QObj QVariant value; QObject *nobj = d->m_cache.item(index); if (nobj) { - QFxItem *item = qobject_cast(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); if (item) { QmlExpression e(qmlContext(item), expression, objectContext); e.setTrackChange(false); @@ -848,7 +848,7 @@ QVariant QFxVisualDataModel::evaluate(int index, const QString &expression, QObj QmlContext *ccontext = d->m_context; if (!ccontext) ccontext = qmlContext(this); QmlContext *ctxt = new QmlContext(ccontext); - QFxVisualDataModelData *data = new QFxVisualDataModelData(index, this); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); ctxt->addDefaultObject(data); QmlExpression e(ctxt, expression, objectContext); e.setTrackChange(false); @@ -860,7 +860,7 @@ QVariant QFxVisualDataModel::evaluate(int index, const QString &expression, QObj return value; } -int QFxVisualDataModel::indexOf(QFxItem *item, QObject *objectContext) const +int QmlGraphicsVisualDataModel::indexOf(QmlGraphicsItem *item, QObject *objectContext) const { QmlExpression e(qmlContext(item), QLatin1String("index"), objectContext); e.setTrackChange(false); @@ -870,15 +870,15 @@ int QFxVisualDataModel::indexOf(QFxItem *item, QObject *objectContext) const return -1; } -void QFxVisualDataModel::_q_itemsChanged(int index, int count, +void QmlGraphicsVisualDataModel::_q_itemsChanged(int index, int count, const QList &roles) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); // XXX - highly inefficient for (int ii = index; ii < index + count; ++ii) { if (QObject *item = d->m_cache.item(ii)) { - QFxVisualDataModelData *data = d->data(item); + QmlGraphicsVisualDataModelData *data = d->data(item); for (int prop = 0; prop < data->count(); ++prop) { @@ -897,22 +897,22 @@ void QFxVisualDataModel::_q_itemsChanged(int index, int count, } } -void QFxVisualDataModel::_q_itemsInserted(int index, int count) +void QmlGraphicsVisualDataModel::_q_itemsInserted(int index, int count) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); iter != d->m_cache.end(); ) { if (iter.key() >= index) { - QFxVisualDataModelPrivate::ObjectRef objRef = *iter; + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; int index = iter.key() + count; iter = d->m_cache.erase(iter); items.insert(index, objRef); - QFxVisualDataModelData *data = d->data(objRef.obj); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); data->setIndex(index); } else { ++iter; @@ -924,25 +924,25 @@ void QFxVisualDataModel::_q_itemsInserted(int index, int count) emit countChanged(); } -void QFxVisualDataModel::_q_itemsRemoved(int index, int count) +void QmlGraphicsVisualDataModel::_q_itemsRemoved(int index, int count) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); iter != d->m_cache.end(); ) { if (iter.key() >= index && iter.key() < index + count) { - QFxVisualDataModelPrivate::ObjectRef objRef = *iter; + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; iter = d->m_cache.erase(iter); items.insertMulti(-1, objRef); //XXX perhaps better to maintain separately - QFxVisualDataModelData *data = d->data(objRef.obj); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); data->setIndex(-1); } else if (iter.key() >= index + count) { - QFxVisualDataModelPrivate::ObjectRef objRef = *iter; + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; int index = iter.key() - count; iter = d->m_cache.erase(iter); items.insert(index, objRef); - QFxVisualDataModelData *data = d->data(objRef.obj); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); data->setIndex(index); } else { ++iter; @@ -954,38 +954,38 @@ void QFxVisualDataModel::_q_itemsRemoved(int index, int count) emit countChanged(); } -void QFxVisualDataModel::_q_itemsMoved(int from, int to, int count) +void QmlGraphicsVisualDataModel::_q_itemsMoved(int from, int to, int count) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); iter != d->m_cache.end(); ) { if (iter.key() >= from && iter.key() < from + count) { - QFxVisualDataModelPrivate::ObjectRef objRef = *iter; + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; int index = iter.key() - from + to; iter = d->m_cache.erase(iter); items.insert(index, objRef); - QFxVisualDataModelData *data = d->data(objRef.obj); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); data->setIndex(index); } else { ++iter; } } - for (QHash::Iterator iter = d->m_cache.begin(); + for (QHash::Iterator iter = d->m_cache.begin(); iter != d->m_cache.end(); ) { if (iter.key() >= qMin(from,to) && iter.key() < qMax(from+count,to+count)) { - QFxVisualDataModelPrivate::ObjectRef objRef = *iter; + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; int index = iter.key() + from - to; iter = d->m_cache.erase(iter); items.insert(index, objRef); - QFxVisualDataModelData *data = d->data(objRef.obj); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); data->setIndex(index); } else { ++iter; @@ -996,37 +996,37 @@ void QFxVisualDataModel::_q_itemsMoved(int from, int to, int count) emit itemsMoved(from, to, count); } -void QFxVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) +void QmlGraphicsVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) { _q_itemsInserted(begin, end - begin + 1); } -void QFxVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) +void QmlGraphicsVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) { _q_itemsRemoved(begin, end - begin + 1); } -void QFxVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) +void QmlGraphicsVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) { - Q_D(QFxVisualDataModel); + Q_D(QmlGraphicsVisualDataModel); _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles); } -void QFxVisualDataModel::_q_createdPackage(int index, QmlPackage *package) +void QmlGraphicsVisualDataModel::_q_createdPackage(int index, QmlPackage *package) { - Q_D(QFxVisualDataModel); - emit createdItem(index, qobject_cast(package->part(d->m_part))); + Q_D(QmlGraphicsVisualDataModel); + emit createdItem(index, qobject_cast(package->part(d->m_part))); } -void QFxVisualDataModel::_q_destroyingPackage(QmlPackage *package) +void QmlGraphicsVisualDataModel::_q_destroyingPackage(QmlPackage *package) { - Q_D(QFxVisualDataModel); - emit destroyingItem(qobject_cast(package->part(d->m_part))); + Q_D(QmlGraphicsVisualDataModel); + emit destroyingItem(qobject_cast(package->part(d->m_part))); } -QML_DEFINE_NOCREATE_TYPE(QFxVisualModel); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QFxVisualItemModel) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QFxVisualDataModel) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsVisualModel); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisualItemModel) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) QT_END_NAMESPACE #include "qfxvisualitemmodel.moc" diff --git a/src/declarative/fx/qfxvisualitemmodel.h b/src/declarative/fx/qfxvisualitemmodel.h index 8e33279..7f7a13f 100644 --- a/src/declarative/fx/qfxvisualitemmodel.h +++ b/src/declarative/fx/qfxvisualitemmodel.h @@ -58,88 +58,88 @@ QT_MODULE(Declarative) ***************************************************************************** *****************************************************************************/ -class QFxItem; +class QmlGraphicsItem; class QmlComponent; class QmlPackage; -class QFxVisualDataModelPrivate; +class QmlGraphicsVisualDataModelPrivate; -class Q_DECLARATIVE_EXPORT QFxVisualModel : public QObject +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject { Q_OBJECT Q_PROPERTY(int count READ count NOTIFY countChanged) public: - QFxVisualModel() {} - virtual ~QFxVisualModel() {} + QmlGraphicsVisualModel() {} + virtual ~QmlGraphicsVisualModel() {} enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) virtual int count() const = 0; virtual bool isValid() const = 0; - virtual QFxItem *item(int index, bool complete=true) = 0; - virtual ReleaseFlags release(QFxItem *item) = 0; + virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; + virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; virtual void completeItem() = 0; virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; - virtual int indexOf(QFxItem *item, QObject *objectContext) const = 0; + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; Q_SIGNALS: void countChanged(); void itemsInserted(int index, int count); void itemsRemoved(int index, int count); void itemsMoved(int from, int to, int count); - void createdItem(int index, QFxItem *item); - void destroyingItem(QFxItem *item); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); protected: - QFxVisualModel(QObjectPrivate &dd, QObject *parent = 0) + QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) : QObject(dd, parent) {} private: - Q_DISABLE_COPY(QFxVisualModel) + Q_DISABLE_COPY(QmlGraphicsVisualModel) }; -class QFxVisualItemModelAttached; -class QFxVisualItemModelPrivate; -class Q_DECLARATIVE_EXPORT QFxVisualItemModel : public QFxVisualModel +class QmlGraphicsVisualItemModelAttached; +class QmlGraphicsVisualItemModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel { Q_OBJECT - Q_DECLARE_PRIVATE(QFxVisualItemModel) + Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) - Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) + Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) Q_CLASSINFO("DefaultProperty", "children") public: - QFxVisualItemModel(); - virtual ~QFxVisualItemModel() {} + QmlGraphicsVisualItemModel(); + virtual ~QmlGraphicsVisualItemModel() {} virtual int count() const; virtual bool isValid() const; - virtual QFxItem *item(int index, bool complete=true); - virtual ReleaseFlags release(QFxItem *item); + virtual QmlGraphicsItem *item(int index, bool complete=true); + virtual ReleaseFlags release(QmlGraphicsItem *item); virtual void completeItem(); virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); - virtual int indexOf(QFxItem *item, QObject *objectContext) const; + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - QmlList *children(); + QmlList *children(); - static QFxVisualItemModelAttached *qmlAttachedProperties(QObject *obj); + static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); signals: void childrenChanged(); private: - Q_DISABLE_COPY(QFxVisualItemModel) + Q_DISABLE_COPY(QmlGraphicsVisualItemModel) }; -class Q_DECLARATIVE_EXPORT QFxVisualDataModel : public QFxVisualModel +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel { Q_OBJECT - Q_DECLARE_PRIVATE(QFxVisualDataModel) + Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) Q_PROPERTY(QVariant model READ model WRITE setModel) Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) @@ -147,9 +147,9 @@ class Q_DECLARATIVE_EXPORT QFxVisualDataModel : public QFxVisualModel Q_PROPERTY(QObject *parts READ parts CONSTANT) Q_CLASSINFO("DefaultProperty", "delegate") public: - QFxVisualDataModel(); - QFxVisualDataModel(QmlContext *); - virtual ~QFxVisualDataModel(); + QmlGraphicsVisualDataModel(); + QmlGraphicsVisualDataModel(QmlContext *); + virtual ~QmlGraphicsVisualDataModel(); QVariant model() const; void setModel(const QVariant &); @@ -162,13 +162,13 @@ public: int count() const; bool isValid() const { return delegate() != 0; } - QFxItem *item(int index, bool complete=true); - QFxItem *item(int index, const QByteArray &, bool complete=true); - ReleaseFlags release(QFxItem *item); + QmlGraphicsItem *item(int index, bool complete=true); + QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); + ReleaseFlags release(QmlGraphicsItem *item); void completeItem(); QVariant evaluate(int index, const QString &expression, QObject *objectContext); - int indexOf(QFxItem *item, QObject *objectContext) const; + int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; QObject *parts(); @@ -188,15 +188,15 @@ private Q_SLOTS: void _q_destroyingPackage(QmlPackage *package); private: - Q_DISABLE_COPY(QFxVisualDataModel) + Q_DISABLE_COPY(QmlGraphicsVisualDataModel) }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxVisualModel) -QML_DECLARE_TYPE(QFxVisualItemModel) -QML_DECLARE_TYPEINFO(QFxVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QFxVisualDataModel) +QML_DECLARE_TYPE(QmlGraphicsVisualModel) +QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) +QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) QT_END_HEADER diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp index f7030ca..e6f0a1d 100644 --- a/src/declarative/fx/qfxwebview.cpp +++ b/src/declarative/fx/qfxwebview.cpp @@ -62,12 +62,12 @@ #include QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QFxWebView) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) QML_DEFINE_NOCREATE_TYPE(QAction) static const int MAX_DOUBLECLICK_TIME=500; // XXX need better gesture system -class QFxWebSettings : public QObject { +class QmlGraphicsWebSettings : public QObject { Q_OBJECT Q_PROPERTY(QString standardFontFamily READ standardFontFamily WRITE setStandardFontFamily) @@ -99,7 +99,7 @@ class QFxWebSettings : public QObject { Q_PROPERTY(bool localContentCanAccessRemoteUrls READ localContentCanAccessRemoteUrls WRITE setLocalContentCanAccessRemoteUrls) public: - QFxWebSettings() {} + QmlGraphicsWebSettings() {} QString standardFontFamily() const { return s->fontFamily(QWebSettings::StandardFont); } void setStandardFontFamily(const QString& f) { s->setFontFamily(QWebSettings::StandardFont,f); } @@ -157,17 +157,17 @@ public: QWebSettings *s; }; -QML_DECLARE_TYPE(QFxWebSettings) -QML_DEFINE_NOCREATE_TYPE(QFxWebSettings) +QML_DECLARE_TYPE(QmlGraphicsWebSettings) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsWebSettings) -class QFxWebViewPrivate : public QFxPaintedItemPrivate +class QmlGraphicsWebViewPrivate : public QmlGraphicsPaintedItemPrivate { - Q_DECLARE_PUBLIC(QFxWebView) + Q_DECLARE_PUBLIC(QmlGraphicsWebView) public: - QFxWebViewPrivate() - : QFxPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), - progress(1.0), status(QFxWebView::Null), pending(PendingNone), + QmlGraphicsWebViewPrivate() + : QmlGraphicsPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), + progress(1.0), status(QmlGraphicsWebView::Null), pending(PendingNone), newWindowComponent(0), newWindowParent(0), windowObjects(this), rendering(true) @@ -180,28 +180,28 @@ public: int preferredwidth; int pagewidth; qreal progress; - QFxWebView::Status status; + QmlGraphicsWebView::Status status; QString statusText; enum { PendingNone, PendingUrl, PendingHtml, PendingContent } pending; QUrl pending_url; QString pending_string; QByteArray pending_data; - mutable QFxWebSettings settings; + mutable QmlGraphicsWebSettings settings; QmlComponent *newWindowComponent; - QFxItem *newWindowParent; + QmlGraphicsItem *newWindowParent; void updateWindowObjects(); class WindowObjectList : public QmlConcreteList { public: - WindowObjectList(QFxWebViewPrivate *p) + WindowObjectList(QmlGraphicsWebViewPrivate *p) : priv(p) {} virtual void append(QObject *v) { QmlConcreteList::append(v); priv->updateWindowObjects(); } private: - QFxWebViewPrivate *priv; + QmlGraphicsWebViewPrivate *priv; } windowObjects; bool rendering; @@ -240,8 +240,8 @@ public: /*! \internal - \class QFxWebView - \brief The QFxWebView class allows you to add web content to a QmlView. + \class QmlGraphicsWebView + \brief The QmlGraphicsWebView class allows you to add web content to a QmlView. A WebView renders web content base on a URL. @@ -251,30 +251,30 @@ public: toolbars, etc., those must be implemented around WebView. See the WebBrowser example for a demonstration of this. - A QFxWebView object can be instantiated in Qml using the tag \l WebView. + A QmlGraphicsWebView object can be instantiated in Qml using the tag \l WebView. */ -QFxWebView::QFxWebView(QFxItem *parent) - : QFxPaintedItem(*(new QFxWebViewPrivate), parent) +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsWebViewPrivate), parent) { init(); } -QFxWebView::QFxWebView(QFxWebViewPrivate &dd, QFxItem *parent) - : QFxPaintedItem(dd, parent) +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) { init(); } -QFxWebView::~QFxWebView() +QmlGraphicsWebView::~QmlGraphicsWebView() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); delete d->page; } -void QFxWebView::init() +void QmlGraphicsWebView::init() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); setAcceptHoverEvents(true); setAcceptedMouseButtons(Qt::LeftButton); @@ -283,30 +283,30 @@ void QFxWebView::init() d->page = 0; } -void QFxWebView::componentComplete() +void QmlGraphicsWebView::componentComplete() { - QFxPaintedItem::componentComplete(); - Q_D(QFxWebView); + QmlGraphicsPaintedItem::componentComplete(); + Q_D(QmlGraphicsWebView); switch (d->pending) { - case QFxWebViewPrivate::PendingUrl: + case QmlGraphicsWebViewPrivate::PendingUrl: setUrl(d->pending_url); break; - case QFxWebViewPrivate::PendingHtml: + case QmlGraphicsWebViewPrivate::PendingHtml: setHtml(d->pending_string, d->pending_url); break; - case QFxWebViewPrivate::PendingContent: + case QmlGraphicsWebViewPrivate::PendingContent: setContent(d->pending_data, d->pending_string, d->pending_url); break; default: break; } - d->pending = QFxWebViewPrivate::PendingNone; + d->pending = QmlGraphicsWebViewPrivate::PendingNone; d->updateWindowObjects(); } -QFxWebView::Status QFxWebView::status() const +QmlGraphicsWebView::Status QmlGraphicsWebView::status() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->status; } @@ -317,15 +317,15 @@ QFxWebView::Status QFxWebView::status() const \sa onLoadFinished() onLoadFailed() */ -qreal QFxWebView::progress() const +qreal QmlGraphicsWebView::progress() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->progress; } -void QFxWebView::doLoadStarted() +void QmlGraphicsWebView::doLoadStarted() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (!d->url.isEmpty()) { d->status = Loading; @@ -334,18 +334,18 @@ void QFxWebView::doLoadStarted() emit loadStarted(); } -void QFxWebView::doLoadProgress(int p) +void QmlGraphicsWebView::doLoadProgress(int p) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->progress == p/100.0) return; d->progress = p/100.0; emit progressChanged(); } -void QFxWebView::pageUrlChanged() +void QmlGraphicsWebView::pageUrlChanged() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); // Reset zooming to full qreal zf = 1.0; @@ -371,9 +371,9 @@ void QFxWebView::pageUrlChanged() } } -void QFxWebView::doLoadFinished(bool ok) +void QmlGraphicsWebView::doLoadFinished(bool ok) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (title().isEmpty()) pageUrlChanged(); // XXX bug 232556 - pages with no title never get urlChanged() @@ -398,15 +398,15 @@ void QFxWebView::doLoadFinished(bool ok) The url is always absolute (QML will resolve relative URL strings in the context of the containing QML document). */ -QUrl QFxWebView::url() const +QUrl QmlGraphicsWebView::url() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->url; } -void QFxWebView::setUrl(const QUrl &url) +void QmlGraphicsWebView::setUrl(const QUrl &url) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (url == d->url) return; @@ -440,15 +440,15 @@ void QFxWebView::setUrl(const QUrl &url) \qmlproperty int WebView::preferredWidth This property holds the ideal width for displaying the current URL. */ -int QFxWebView::preferredWidth() const +int QmlGraphicsWebView::preferredWidth() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->preferredwidth; } -void QFxWebView::setPreferredWidth(int iw) +void QmlGraphicsWebView::setPreferredWidth(int iw) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->preferredwidth == iw) return; if (d->pagewidth) { if (d->preferredwidth) { @@ -466,15 +466,15 @@ void QFxWebView::setPreferredWidth(int iw) \qmlproperty int WebView::webPageWidth This property holds the page width suggested to the web engine. */ -int QFxWebView::webPageWidth() const +int QmlGraphicsWebView::webPageWidth() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->pagewidth; } -void QFxWebView::setWebPageWidth(int pw) +void QmlGraphicsWebView::setWebPageWidth(int pw) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->pagewidth == pw) return; d->pagewidth = pw; expandToWebPage(); @@ -484,26 +484,26 @@ void QFxWebView::setWebPageWidth(int pw) Evaluates the \a scriptSource JavaScript inside the main frame context and returns the result of the last executed statement. */ -QVariant QFxWebView::evaluateJavaScript(const QString &scriptSource) +QVariant QmlGraphicsWebView::evaluateJavaScript(const QString &scriptSource) { return this->page()->mainFrame()->evaluateJavaScript(scriptSource); } -void QFxWebView::focusChanged(bool hasFocus) +void QmlGraphicsWebView::focusChanged(bool hasFocus) { QFocusEvent e(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); page()->event(&e); - QFxItem::focusChanged(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); } -void QFxWebView::contentsSizeChanged(const QSize&) +void QmlGraphicsWebView::contentsSizeChanged(const QSize&) { expandToWebPage(); } -void QFxWebView::expandToWebPage() +void QmlGraphicsWebView::expandToWebPage() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); QSize cs = page()->mainFrame()->contentsSize(); qreal zoom = zoomFactor(); if (cs.width() < d->preferredwidth*zoom) @@ -520,17 +520,17 @@ void QFxWebView::expandToWebPage() } } -void QFxWebView::geometryChanged(const QRectF &newGeometry, +void QmlGraphicsWebView::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { if (newGeometry.size() != oldGeometry.size()) expandToWebPage(); - QFxPaintedItem::geometryChanged(newGeometry, oldGeometry); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); } -void QFxWebView::paintPage(const QRect& r) +void QmlGraphicsWebView::paintPage(const QRect& r) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->page->mainFrame()->contentsSize() != contentsSize()) setContentsSize(d->page->mainFrame()->contentsSize()); dirtyCache(r); @@ -544,15 +544,15 @@ void QFxWebView::paintPage(const QRect& r) allow. The default is 0.1 megapixels. The cache will not be larger than the (unscaled) size of the WebView. */ -int QFxWebView::pixelCacheSize() const +int QmlGraphicsWebView::pixelCacheSize() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->max_imagecache_size; } -void QFxWebView::setPixelCacheSize(int pixels) +void QmlGraphicsWebView::setPixelCacheSize(int pixels) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (pixels < d->max_imagecache_size) { int cachesize=0; for (int i=0; iimagecache.count(); ++i) { @@ -598,18 +598,18 @@ void QFxWebView::setPixelCacheSize(int pixels) If Javascript is not enabled for this page, then this property does nothing. */ -QmlList *QFxWebView::javaScriptWindowObjects() +QmlList *QmlGraphicsWebView::javaScriptWindowObjects() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); return &d->windowObjects; } -class QFxWebViewAttached : public QObject +class QmlGraphicsWebViewAttached : public QObject { Q_OBJECT Q_PROPERTY(QString windowObjectName READ windowObjectName WRITE setWindowObjectName) public: - QFxWebViewAttached(QObject *parent) + QmlGraphicsWebViewAttached(QObject *parent) : QObject(parent) { } @@ -628,35 +628,35 @@ private: QString m_windowObjectName; }; -QFxWebViewAttached *QFxWebView::qmlAttachedProperties(QObject *o) +QmlGraphicsWebViewAttached *QmlGraphicsWebView::qmlAttachedProperties(QObject *o) { - return new QFxWebViewAttached(o); + return new QmlGraphicsWebViewAttached(o); } -void QFxWebViewPrivate::updateWindowObjects() +void QmlGraphicsWebViewPrivate::updateWindowObjects() { - Q_Q(QFxWebView); + Q_Q(QmlGraphicsWebView); if (!q->isComponentComplete() || !page) return; for (int ii = 0; ii < windowObjects.count(); ++ii) { QObject *object = windowObjects.at(ii); - QFxWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); + QmlGraphicsWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); if (attached && !attached->windowObjectName().isEmpty()) { page->mainFrame()->addToJavaScriptWindowObject(attached->windowObjectName(), object); } } } -bool QFxWebView::renderingEnabled() const +bool QmlGraphicsWebView::renderingEnabled() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->rendering; } -void QFxWebView::setRenderingEnabled(bool enabled) +void QmlGraphicsWebView::setRenderingEnabled(bool enabled) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->rendering == enabled) return; d->rendering = enabled; @@ -666,9 +666,9 @@ void QFxWebView::setRenderingEnabled(bool enabled) } -void QFxWebView::drawContents(QPainter *p, const QRect &r) +void QmlGraphicsWebView::drawContents(QPainter *p, const QRect &r) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->rendering) page()->mainFrame()->render(p,r); } @@ -713,16 +713,16 @@ static QMouseEvent *sceneHoverMoveEventToMouseEvent(QGraphicsSceneHoverEvent *e) emits this signals. */ -void QFxWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { QMouseEvent *me = sceneMouseEventToMouseEvent(event); emit doubleClick(me->x(),me->y()); delete me; } -void QFxWebView::heuristicZoom(int clickX, int clickY) +void QmlGraphicsWebView::heuristicZoom(int clickX, int clickY) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); qreal ozf = zoomFactor(); QRect showarea = elementAreaAt(clickX, clickY, 1, 1); qreal z = qreal(preferredWidth())*ozf/showarea.width()*.95; @@ -734,7 +734,7 @@ void QFxWebView::heuristicZoom(int clickX, int clickY) emit zooming(z,r.x()+r.width()/2, r.y()+r.height()/2); } -void QFxWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) { setFocus (true); QMouseEvent *me = sceneMouseEventToMouseEvent(event); @@ -753,11 +753,11 @@ void QFxWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) ); delete me; if (!event->isAccepted()) { - QFxPaintedItem::mousePressEvent(event); + QmlGraphicsPaintedItem::mousePressEvent(event); } } -void QFxWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { QMouseEvent *me = sceneMouseEventToMouseEvent(event); page()->event(me); @@ -774,11 +774,11 @@ void QFxWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) ); delete me; if (!event->isAccepted()) { - QFxPaintedItem::mouseReleaseEvent(event); + QmlGraphicsPaintedItem::mouseReleaseEvent(event); } } -void QFxWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void QmlGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { QMouseEvent *me = sceneMouseEventToMouseEvent(event); page()->event(me); @@ -796,10 +796,10 @@ void QFxWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) ); delete me; if (!event->isAccepted()) - QFxPaintedItem::mouseMoveEvent(event); + QmlGraphicsPaintedItem::mouseMoveEvent(event); } -void QFxWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) +void QmlGraphicsWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) { QMouseEvent *me = sceneHoverMoveEventToMouseEvent(event); page()->event(me); @@ -812,24 +812,24 @@ void QFxWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) ); delete me; if (!event->isAccepted()) - QFxPaintedItem::hoverMoveEvent(event); + QmlGraphicsPaintedItem::hoverMoveEvent(event); } -void QFxWebView::keyPressEvent(QKeyEvent* event) +void QmlGraphicsWebView::keyPressEvent(QKeyEvent* event) { page()->event(event); if (!event->isAccepted()) - QFxPaintedItem::keyPressEvent(event); + QmlGraphicsPaintedItem::keyPressEvent(event); } -void QFxWebView::keyReleaseEvent(QKeyEvent* event) +void QmlGraphicsWebView::keyReleaseEvent(QKeyEvent* event) { page()->event(event); if (!event->isAccepted()) - QFxPaintedItem::keyReleaseEvent(event); + QmlGraphicsPaintedItem::keyReleaseEvent(event); } -bool QFxWebView::sceneEvent(QEvent *event) +bool QmlGraphicsWebView::sceneEvent(QEvent *event) { if (event->type() == QEvent::KeyPress) { QKeyEvent *k = static_cast(event); @@ -841,7 +841,7 @@ bool QFxWebView::sceneEvent(QEvent *event) } } } - return QFxPaintedItem::sceneEvent(event); + return QmlGraphicsPaintedItem::sceneEvent(event); } @@ -850,7 +850,7 @@ bool QFxWebView::sceneEvent(QEvent *event) \qmlproperty action WebView::back This property holds the action for causing the previous URL in the history to be displayed. */ -QAction *QFxWebView::backAction() const +QAction *QmlGraphicsWebView::backAction() const { return page()->action(QWebPage::Back); } @@ -859,7 +859,7 @@ QAction *QFxWebView::backAction() const \qmlproperty action WebView::forward This property holds the action for causing the next URL in the history to be displayed. */ -QAction *QFxWebView::forwardAction() const +QAction *QmlGraphicsWebView::forwardAction() const { return page()->action(QWebPage::Forward); } @@ -868,7 +868,7 @@ QAction *QFxWebView::forwardAction() const \qmlproperty action WebView::reload This property holds the action for reloading with the current URL */ -QAction *QFxWebView::reloadAction() const +QAction *QmlGraphicsWebView::reloadAction() const { return page()->action(QWebPage::Reload); } @@ -877,7 +877,7 @@ QAction *QFxWebView::reloadAction() const \qmlproperty action WebView::stop This property holds the action for stopping loading with the current URL */ -QAction *QFxWebView::stopAction() const +QAction *QmlGraphicsWebView::stopAction() const { return page()->action(QWebPage::Stop); } @@ -888,7 +888,7 @@ QAction *QFxWebView::stopAction() const By default, this property contains an empty string. */ -QString QFxWebView::title() const +QString QmlGraphicsWebView::title() const { return page()->mainFrame()->title(); } @@ -899,7 +899,7 @@ QString QFxWebView::title() const \qmlproperty pixmap WebView::icon This property holds the icon associated with the web page currently viewed */ -QPixmap QFxWebView::icon() const +QPixmap QmlGraphicsWebView::icon() const { return page()->mainFrame()->icon().pixmap(QSize(256,256)); } @@ -909,12 +909,12 @@ QPixmap QFxWebView::icon() const \qmlproperty real WebView::textSizeMultiplier This property holds the multiplier used to scale the text in a Web page */ -void QFxWebView::setTextSizeMultiplier(qreal factor) +void QmlGraphicsWebView::setTextSizeMultiplier(qreal factor) { page()->mainFrame()->setTextSizeMultiplier(factor); } -qreal QFxWebView::textSizeMultiplier() const +qreal QmlGraphicsWebView::textSizeMultiplier() const { return page()->mainFrame()->textSizeMultiplier(); } @@ -923,9 +923,9 @@ qreal QFxWebView::textSizeMultiplier() const \qmlproperty real WebView::zoomFactor This property holds the multiplier used to scale the contents of a Web page. */ -void QFxWebView::setZoomFactor(qreal factor) +void QmlGraphicsWebView::setZoomFactor(qreal factor) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (factor == page()->mainFrame()->zoomFactor()) return; @@ -936,7 +936,7 @@ void QFxWebView::setZoomFactor(qreal factor) emit zoomFactorChanged(); } -qreal QFxWebView::zoomFactor() const +qreal QmlGraphicsWebView::zoomFactor() const { return page()->mainFrame()->zoomFactor(); } @@ -947,32 +947,32 @@ qreal QFxWebView::zoomFactor() const This property is the current status suggested by the current web page. In a web browser, such status is often shown in some kind of status bar. */ -void QFxWebView::setStatusText(const QString& s) +void QmlGraphicsWebView::setStatusText(const QString& s) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); d->statusText = s; emit statusTextChanged(); } -void QFxWebView::windowObjectCleared() +void QmlGraphicsWebView::windowObjectCleared() { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); d->updateWindowObjects(); } -QString QFxWebView::statusText() const +QString QmlGraphicsWebView::statusText() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->statusText; } -QWebPage *QFxWebView::page() const +QWebPage *QmlGraphicsWebView::page() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); if (!d->page) { - QFxWebView *self = const_cast(this); - QWebPage *wp = new QFxWebPage(self); + QmlGraphicsWebView *self = const_cast(this); + QWebPage *wp = new QmlGraphicsWebPage(self); // QML items don't default to having a background, // even though most we pages will set one anyway. @@ -1033,16 +1033,16 @@ QWebPage *QFxWebView::page() const } \endqml */ -QFxWebSettings *QFxWebView::settingsObject() const +QmlGraphicsWebSettings *QmlGraphicsWebView::settingsObject() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); d->settings.s = page()->settings(); return &d->settings; } -void QFxWebView::setPage(QWebPage *page) +void QmlGraphicsWebView::setPage(QWebPage *page) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); if (d->page == page) return; if (d->page) { @@ -1098,14 +1098,14 @@ void QFxWebView::setPage(QWebPage *page) \sa progress onLoadFinished() */ -void QFxWebView::load(const QNetworkRequest &request, +void QmlGraphicsWebView::load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation, const QByteArray &body) { page()->mainFrame()->load(request, operation, body); } -QString QFxWebView::html() const +QString QmlGraphicsWebView::html() const { return page()->mainFrame()->toHtml(); } @@ -1122,9 +1122,9 @@ QString QFxWebView::html() const } \endqml */ -void QFxWebView::setHtml(const QString &html, const QUrl &baseUrl) +void QmlGraphicsWebView::setHtml(const QString &html, const QUrl &baseUrl) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); page()->setViewportSize(QSize( d->preferredwidth>0 ? d->preferredwidth : width(), height())); if (isComponentComplete()) @@ -1136,9 +1136,9 @@ void QFxWebView::setHtml(const QString &html, const QUrl &baseUrl) } } -void QFxWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) +void QmlGraphicsWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); page()->setViewportSize(QSize( d->preferredwidth>0 ? d->preferredwidth : width(), height())); @@ -1152,19 +1152,19 @@ void QFxWebView::setContent(const QByteArray &data, const QString &mimeType, con } } -QWebHistory *QFxWebView::history() const +QWebHistory *QmlGraphicsWebView::history() const { return page()->history(); } -QWebSettings *QFxWebView::settings() const +QWebSettings *QmlGraphicsWebView::settings() const { return page()->settings(); } -QFxWebView *QFxWebView::createWindow(QWebPage::WebWindowType type) +QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType type) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); switch (type) { case QWebPage::WebBrowserWindow: { if (!d->newWindowComponent && d->newWindowParent) @@ -1172,17 +1172,17 @@ QFxWebView *QFxWebView::createWindow(QWebPage::WebWindowType type) else if (d->newWindowComponent && !d->newWindowParent) qWarning("WebView::newWindowParent not set - WebView::newWindowComponent ignored"); else if (d->newWindowComponent && d->newWindowParent) { - QFxWebView *webview = 0; + QmlGraphicsWebView *webview = 0; QmlContext *windowContext = new QmlContext(qmlContext(this)); QObject *nobj = d->newWindowComponent->create(windowContext); if (nobj) { windowContext->setParent(nobj); - QFxItem *item = qobject_cast(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); if (!item) { delete nobj; } else { - webview = item->findChild(); + webview = item->findChild(); if (!webview) { delete item; } else { @@ -1215,15 +1215,15 @@ QFxWebView *QFxWebView::createWindow(QWebPage::WebWindowType type) The parent of the new window is set by newWindowParent. It must be set. */ -QmlComponent *QFxWebView::newWindowComponent() const +QmlComponent *QmlGraphicsWebView::newWindowComponent() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->newWindowComponent; } -void QFxWebView::setNewWindowComponent(QmlComponent *newWindow) +void QmlGraphicsWebView::setNewWindowComponent(QmlComponent *newWindow) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); delete d->newWindowComponent; d->newWindowComponent = newWindow; } @@ -1236,15 +1236,15 @@ void QFxWebView::setNewWindowComponent(QmlComponent *newWindow) \sa newWindowComponent */ -QFxItem *QFxWebView::newWindowParent() const +QmlGraphicsItem *QmlGraphicsWebView::newWindowParent() const { - Q_D(const QFxWebView); + Q_D(const QmlGraphicsWebView); return d->newWindowParent; } -void QFxWebView::setNewWindowParent(QFxItem *parent) +void QmlGraphicsWebView::setNewWindowParent(QmlGraphicsItem *parent) { - Q_D(QFxWebView); + Q_D(QmlGraphicsWebView); delete d->newWindowParent; d->newWindowParent = parent; } @@ -1255,7 +1255,7 @@ void QFxWebView::setNewWindowParent(QFxItem *parent) May return an area larger in the case when no smaller element is at the position. */ -QRect QFxWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const +QRect QmlGraphicsWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const { QWebHitTestResult hit = page()->mainFrame()->hitTestContent(QPoint(x,y)); QWebElement element = hit.enclosingBlockElement(); @@ -1271,17 +1271,17 @@ QRect QFxWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const /*! \internal - \class QFxWebPage - \brief The QFxWebPage class is a QWebPage that can create QML plugins. + \class QmlGraphicsWebPage + \brief The QmlGraphicsWebPage class is a QWebPage that can create QML plugins. - \sa QFxWebView + \sa QmlGraphicsWebView */ -QFxWebPage::QFxWebPage(QFxWebView *parent) : +QmlGraphicsWebPage::QmlGraphicsWebPage(QmlGraphicsWebView *parent) : QWebPage(parent) { } -QFxWebPage::~QFxWebPage() +QmlGraphicsWebPage::~QmlGraphicsWebPage() { } @@ -1306,7 +1306,7 @@ public: } return dsp; } - QWidget_Dummy_Plugin(const QUrl& url, QFxWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : + QWidget_Dummy_Plugin(const QUrl& url, QmlGraphicsWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : QWidget(dummy_shared_parent()), propertyNames(paramNames), propertyValues(paramValues), @@ -1329,7 +1329,7 @@ public Q_SLOTS: qWarning() << component->errors(); return; } - item = qobject_cast(component->create(qmlContext(webview))); + item = qobject_cast(component->create(qmlContext(webview))); item->setParent(webview); QString jsObjName; for (int i=0; i(parent()); + return static_cast(parent()); } -QObject *QFxWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) +QObject *QmlGraphicsWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) { QUrl comp = qmlContext(viewItem())->resolvedUrl(url); return new QWidget_Dummy_Plugin(comp,viewItem(),paramNames,paramValues); } -QWebPage *QFxWebPage::createWindow(WebWindowType type) +QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) { - QFxWebView *newView = viewItem()->createWindow(type); + QmlGraphicsWebView *newView = viewItem()->createWindow(type); if (newView) return newView->page(); return 0; diff --git a/src/declarative/fx/qfxwebview.h b/src/declarative/fx/qfxwebview.h index a31b2b0..e567197 100644 --- a/src/declarative/fx/qfxwebview.h +++ b/src/declarative/fx/qfxwebview.h @@ -57,31 +57,31 @@ class QWebSettings; QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxWebViewPrivate; +class QmlGraphicsWebViewPrivate; class QNetworkRequest; -class QFxWebView; +class QmlGraphicsWebView; -class Q_DECLARATIVE_EXPORT QFxWebPage : public QWebPage +class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage { Q_OBJECT public: - explicit QFxWebPage(QFxWebView *parent); - ~QFxWebPage(); + explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); + ~QmlGraphicsWebPage(); protected: QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); QWebPage *createWindow(WebWindowType type); private: - QFxWebView *viewItem(); + QmlGraphicsWebView *viewItem(); }; -class QFxWebViewAttached; -class QFxWebSettings; +class QmlGraphicsWebViewAttached; +class QmlGraphicsWebSettings; //### TODO: browser plugins -class Q_DECLARATIVE_EXPORT QFxWebView : public QFxPaintedItem +class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem { Q_OBJECT @@ -107,18 +107,18 @@ class Q_DECLARATIVE_EXPORT QFxWebView : public QFxPaintedItem Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) Q_PROPERTY(QAction* stop READ stopAction CONSTANT) - Q_PROPERTY(QFxWebSettings* settings READ settingsObject CONSTANT) + Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) - Q_PROPERTY(QFxItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) + Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) public: - QFxWebView(QFxItem *parent=0); - ~QFxWebView(); + QmlGraphicsWebView(QmlGraphicsItem *parent=0); + ~QmlGraphicsWebView(); QUrl url() const; void setUrl(const QUrl &); @@ -162,7 +162,7 @@ public: QWebHistory *history() const; QWebSettings *settings() const; - QFxWebSettings *settingsObject() const; + QmlGraphicsWebSettings *settingsObject() const; int pixelCacheSize() const; void setPixelCacheSize(int pixels); @@ -172,12 +172,12 @@ public: QmlList *javaScriptWindowObjects(); - static QFxWebViewAttached *qmlAttachedProperties(QObject *); + static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); QmlComponent *newWindowComponent() const; void setNewWindowComponent(QmlComponent *newWindow); - QFxItem *newWindowParent() const; - void setNewWindowParent(QFxItem *newWindow); + QmlGraphicsItem *newWindowParent() const; + void setNewWindowParent(QmlGraphicsItem *newWindow); Q_SIGNALS: void preferredWidthChanged(); @@ -214,7 +214,7 @@ private Q_SLOTS: void contentsSizeChanged(const QSize&); protected: - QFxWebView(QFxWebViewPrivate &dd, QFxItem *parent); + QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); void drawContents(QPainter *, const QRect &); @@ -229,21 +229,21 @@ protected: const QRectF &oldGeometry); virtual void focusChanged(bool); virtual bool sceneEvent(QEvent *event); - QFxWebView *createWindow(QWebPage::WebWindowType type); + QmlGraphicsWebView *createWindow(QWebPage::WebWindowType type); QRect elementAreaAt(int x, int y, int minwidth, int minheight) const; private: void init(); virtual void componentComplete(); - Q_DISABLE_COPY(QFxWebView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxWebView) - friend class QFxWebPage; + Q_DISABLE_COPY(QmlGraphicsWebView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) + friend class QmlGraphicsWebPage; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QFxWebView) -QML_DECLARE_TYPEINFO(QFxWebView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsWebView) +QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) QML_DECLARE_TYPE(QAction) QT_END_HEADER diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index 83ca65b..fa971a3 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -138,7 +138,7 @@ void QmlBinding::update(QmlMetaProperty::WriteFlags flags) Q_D(QmlBinding); #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer bu; + QmlPerfTimer bu; #endif QmlBindingData *data = d->bindingData(); diff --git a/src/declarative/qml/qmlboundsignal.cpp b/src/declarative/qml/qmlboundsignal.cpp index d715309..f4cecec 100644 --- a/src/declarative/qml/qmlboundsignal.cpp +++ b/src/declarative/qml/qmlboundsignal.cpp @@ -102,7 +102,7 @@ QmlBoundSignal::QmlBoundSignal(QObject *scope, const QMetaMethod &signal, // is that they both do the work to figure it out. Boo hoo. if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount(); - QFx_setParent_noEvent(this, parent); + QmlGraphics_setParent_noEvent(this, parent); QMetaObject::connect(scope, m_idx, this, evaluateIdx); if (!signal.parameterTypes().isEmpty()) @@ -121,7 +121,7 @@ QmlBoundSignal::QmlBoundSignal(QmlContext *ctxt, const QString &val, // is that they both do the work to figure it out. Boo hoo. if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount(); - QFx_setParent_noEvent(this, parent); + QmlGraphics_setParent_noEvent(this, parent); QMetaObject::connect(scope, m_idx, this, evaluateIdx); m_expression = new QmlExpression(ctxt, val, scope); diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 8f3d6a2..5d2bd12 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -562,7 +562,7 @@ bool QmlCompiler::compile(QmlEngine *engine, QmlCompiledData *out) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer pc; + QmlPerfTimer pc; #endif exceptions.clear(); diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index 72ead87..c856680 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -648,7 +648,7 @@ QmlComponentPrivate::beginCreate(QmlContext *context, const QBitField &bindings) if (rv) { - QFx_setParent_noEvent(ctxt, rv); + QmlGraphics_setParent_noEvent(ctxt, rv); } else { delete ctxt; } @@ -676,7 +676,7 @@ void QmlComponentPrivate::completeCreate() if (completePending) { { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer bi; + QmlPerfTimer bi; #endif for (int ii = 0; ii < bindValues.count(); ++ii) { QmlEnginePrivate::SimpleList bv = diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 21eeb7c..efc8e98 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -218,7 +218,7 @@ QList QmlDomDocument::errors() const Returns the document's root object, or an invalid QmlDomObject if the document has no root. - In the sample QML below, the root object will be the QFxItem type. + In the sample QML below, the root object will be the QmlGraphicsItem type. \qml Item { Text { diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 2f7f3e5..463bd93 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -268,7 +268,7 @@ QmlEnginePrivate::CapturedProperty::CapturedProperty(const QmlMetaProperty &p) \code QmlEngine engine; QmlComponent component(&engine, "Text { text: \"Hello world!\" }"); - QFxItem *item = qobject_cast(component.create()); + QmlGraphicsItem *item = qobject_cast(component.create()); //add item to view, etc ... @@ -1233,7 +1233,7 @@ void QmlEngine::addImportPath(const QString& path) Returns the directory where SQL and other offline storage is placed. - QFxWebView and the SQL databases created with openDatabase() + QmlGraphicsWebView and the SQL databases created with openDatabase() are stored here. The default is QML/OfflineStorage/ in the platform-standard diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index 7c69c16..69cfc3a 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -252,7 +252,7 @@ void QmlExpression::setExpression(const QString &expression) QVariant QmlExpressionPrivate::evalSSE() { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer perfsse; + QmlPerfTimer perfsse; #endif QVariant rv = data->sse.run(data->context(), data->me); @@ -290,7 +290,7 @@ void QmlExpressionPrivate::exceptionToError(QScriptEngine *scriptEngine, QVariant QmlExpressionPrivate::evalQtScript(QObject *secondaryScope, bool *isUndefined) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer perfqt; + QmlPerfTimer perfqt; #endif QmlExpressionData *data = this->data; @@ -382,7 +382,7 @@ QVariant QmlExpressionPrivate::value(QObject *secondaryScope, bool *isUndefined) return rv; #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer perf; + QmlPerfTimer perf; #endif QmlEnginePrivate *ep = QmlEnginePrivate::get(q->engine()); diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index fb84651..95dfe5b 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -824,7 +824,7 @@ public: bool QmlScriptParser::parse(const QByteArray &qmldata, const QUrl &url) { #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer pt; + QmlPerfTimer pt; #endif clear(); diff --git a/src/declarative/util/qfxglobal.h b/src/declarative/util/qfxglobal.h index 9b4aee1..67eff6c 100644 --- a/src/declarative/util/qfxglobal.h +++ b/src/declarative/util/qfxglobal.h @@ -67,7 +67,7 @@ QT_MODULE(Declarative) return status == Yes; \ } -struct QFx_DerivedObject : public QObject +struct QmlGraphics_DerivedObject : public QObject { void setParent_noEvent(QObject *parent) { bool sce = d_ptr->sendChildEvents; @@ -82,9 +82,9 @@ struct QFx_DerivedObject : public QObject neither \a parent nor the object's previous parent (if it had one) will receive ChildRemoved or ChildAdded events. */ -inline void QFx_setParent_noEvent(QObject *object, QObject *parent) +inline void QmlGraphics_setParent_noEvent(QObject *object, QObject *parent) { - static_cast(object)->setParent_noEvent(parent); + static_cast(object)->setParent_noEvent(parent); } QT_END_NAMESPACE diff --git a/src/declarative/util/qfxperf.cpp b/src/declarative/util/qfxperf.cpp index 739e480..97f195b 100644 --- a/src/declarative/util/qfxperf.cpp +++ b/src/declarative/util/qfxperf.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE -Q_DEFINE_PERFORMANCE_LOG(QFxPerf, "QFx") { +Q_DEFINE_PERFORMANCE_LOG(QmlPerf, "QmlGraphics") { Q_DEFINE_PERFORMANCE_METRIC(QmlParsing, "Compilation: QML Parsing") Q_DEFINE_PERFORMANCE_METRIC(Compilation, " QML Compilation") Q_DEFINE_PERFORMANCE_METRIC(VMEExecution, "Execution: QML VME Execution") @@ -54,13 +54,13 @@ Q_DEFINE_PERFORMANCE_LOG(QFxPerf, "QFx") { Q_DEFINE_PERFORMANCE_METRIC(BindableValueUpdate, "QmlBinding::update") Q_DEFINE_PERFORMANCE_METRIC(PixmapLoad, "Pixmap loading") Q_DEFINE_PERFORMANCE_METRIC(FontDatabase, "Font database creation") - Q_DEFINE_PERFORMANCE_METRIC(QFxPathViewPathCache, "FX Items: QFxPathView: Path cache") - Q_DEFINE_PERFORMANCE_METRIC(CreateParticle, " QFxParticles: Particle creation") - Q_DEFINE_PERFORMANCE_METRIC(ItemComponentComplete, " QFxItem::componentComplete") - Q_DEFINE_PERFORMANCE_METRIC(ImageComponentComplete, " QFxImage::componentComplete") - Q_DEFINE_PERFORMANCE_METRIC(BaseLayoutComponentComplete, " QFxBasePositioner::componentComplete") - Q_DEFINE_PERFORMANCE_METRIC(TextComponentComplete, " QFxText::componentComplete") - Q_DEFINE_PERFORMANCE_METRIC(QFxText_setText, " QFxText::setText") + Q_DEFINE_PERFORMANCE_METRIC(QmlGraphicsPathViewPathCache, "FX Items: QmlGraphicsPathView: Path cache") + Q_DEFINE_PERFORMANCE_METRIC(CreateParticle, " QmlGraphicsParticles: Particle creation") + Q_DEFINE_PERFORMANCE_METRIC(ItemComponentComplete, " QmlGraphicsItem::componentComplete") + Q_DEFINE_PERFORMANCE_METRIC(ImageComponentComplete, " QmlGraphicsImage::componentComplete") + Q_DEFINE_PERFORMANCE_METRIC(BaseLayoutComponentComplete, " QmlGraphicsBasePositioner::componentComplete") + Q_DEFINE_PERFORMANCE_METRIC(TextComponentComplete, " QmlGraphicsText::componentComplete") + Q_DEFINE_PERFORMANCE_METRIC(QmlGraphicsText_setText, " QmlGraphicsText::setText") Q_DEFINE_PERFORMANCE_METRIC(AddScript, "QmlScript::addScriptToEngine") } diff --git a/src/declarative/util/qfxperf_p.h b/src/declarative/util/qfxperf_p.h index cea7e80..37bfc32 100644 --- a/src/declarative/util/qfxperf_p.h +++ b/src/declarative/util/qfxperf_p.h @@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -Q_DECLARE_PERFORMANCE_LOG(QFxPerf) { +Q_DECLARE_PERFORMANCE_LOG(QmlPerf) { Q_DECLARE_PERFORMANCE_METRIC(QmlParsing) Q_DECLARE_PERFORMANCE_METRIC(Compilation) @@ -73,13 +73,13 @@ Q_DECLARE_PERFORMANCE_LOG(QFxPerf) { Q_DECLARE_PERFORMANCE_METRIC(BindableValueUpdate) Q_DECLARE_PERFORMANCE_METRIC(PixmapLoad) Q_DECLARE_PERFORMANCE_METRIC(FontDatabase) - Q_DECLARE_PERFORMANCE_METRIC(QFxPathViewPathCache) + Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsPathViewPathCache) Q_DECLARE_PERFORMANCE_METRIC(CreateParticle) Q_DECLARE_PERFORMANCE_METRIC(ItemComponentComplete) Q_DECLARE_PERFORMANCE_METRIC(ImageComponentComplete) Q_DECLARE_PERFORMANCE_METRIC(BaseLayoutComponentComplete) Q_DECLARE_PERFORMANCE_METRIC(TextComponentComplete) - Q_DECLARE_PERFORMANCE_METRIC(QFxText_setText) + Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsText_setText) Q_DECLARE_PERFORMANCE_METRIC(AddScript) } diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index f103a6b..e00a1c8 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -663,7 +663,7 @@ void QmlPauseAnimationPrivate::init() { Q_Q(QmlPauseAnimation); pa = new QPauseAnimation; - QFx_setParent_noEvent(pa, q); + QmlGraphics_setParent_noEvent(pa, q); } /*! @@ -786,7 +786,7 @@ void QmlScriptActionPrivate::init() { Q_Q(QmlScriptAction); rsa = new QActionAnimation(&proxy); - QFx_setParent_noEvent(rsa, q); + QmlGraphics_setParent_noEvent(rsa, q); } /*! @@ -904,7 +904,7 @@ void QmlPropertyActionPrivate::init() { Q_Q(QmlPropertyAction); spa = new QActionAnimation; - QFx_setParent_noEvent(spa, q); + QmlGraphics_setParent_noEvent(spa, q); } /*! @@ -1097,28 +1097,28 @@ void QmlParentActionPrivate::init() { Q_Q(QmlParentAction); cpa = new QActionAnimation; - QFx_setParent_noEvent(cpa, q); + QmlGraphics_setParent_noEvent(cpa, q); } -QFxItem *QmlParentAction::object() const +QmlGraphicsItem *QmlParentAction::object() const { Q_D(const QmlParentAction); return d->pcTarget; } -void QmlParentAction::setObject(QFxItem *target) +void QmlParentAction::setObject(QmlGraphicsItem *target) { Q_D(QmlParentAction); d->pcTarget = target; } -QFxItem *QmlParentAction::parent() const +QmlGraphicsItem *QmlParentAction::parent() const { Q_D(const QmlParentAction); return d->pcParent; } -void QmlParentAction::setParent(QFxItem *parent) +void QmlParentAction::setParent(QmlGraphicsItem *parent) { Q_D(QmlParentAction); d->pcParent = parent; @@ -1516,7 +1516,7 @@ void QmlPropertyAnimationPrivate::init() { Q_Q(QmlPropertyAnimation); va = new QmlTimeLineValueAnimator; - QFx_setParent_noEvent(va, q); + QmlGraphics_setParent_noEvent(va, q); va->setStartValue(QVariant(0.0f)); va->setEndValue(QVariant(1.0f)); diff --git a/src/declarative/util/qmlanimation.h b/src/declarative/util/qmlanimation.h index f4f9f38..4e94aa0 100644 --- a/src/declarative/util/qmlanimation.h +++ b/src/declarative/util/qmlanimation.h @@ -221,25 +221,25 @@ protected: virtual void prepare(QmlMetaProperty &); }; -class QFxItem; +class QmlGraphicsItem; class QmlParentActionPrivate; class QmlParentAction : public QmlAbstractAnimation { Q_OBJECT Q_DECLARE_PRIVATE(QmlParentAction) - Q_PROPERTY(QFxItem *target READ object WRITE setObject) - Q_PROPERTY(QFxItem *parent READ parent WRITE setParent) + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) + Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) public: QmlParentAction(QObject *parent=0); virtual ~QmlParentAction(); - QFxItem *object() const; - void setObject(QFxItem *); + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); - QFxItem *parent() const; - void setParent(QFxItem *); + QmlGraphicsItem *parent() const; + void setParent(QmlGraphicsItem *); protected: virtual void transition(QmlStateActions &actions, diff --git a/src/declarative/util/qmlanimation_p.h b/src/declarative/util/qmlanimation_p.h index 1f52fcd..38b92ae 100644 --- a/src/declarative/util/qmlanimation_p.h +++ b/src/declarative/util/qmlanimation_p.h @@ -275,8 +275,8 @@ public: void init(); - QFxItem *pcTarget; - QFxItem *pcParent; + QmlGraphicsItem *pcTarget; + QmlGraphicsItem *pcParent; void doAction(); QActionAnimation *cpa; diff --git a/src/declarative/util/qmlstategroup.cpp b/src/declarative/util/qmlstategroup.cpp index bb40a8b..b07def1 100644 --- a/src/declarative/util/qmlstategroup.cpp +++ b/src/declarative/util/qmlstategroup.cpp @@ -274,7 +274,7 @@ void QmlStateGroupPrivate::setCurrentStateInternal(const QString &state, } if (oldState == 0 || newState == 0) { - if (!nullState) { nullState = new QmlState; QFx_setParent_noEvent(nullState, q); } + if (!nullState) { nullState = new QmlState; QmlGraphics_setParent_noEvent(nullState, q); } if (!oldState) oldState = nullState; if (!newState) newState = nullState; } diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 4d469f9..1bd9199 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -59,15 +59,15 @@ class QmlParentChangePrivate : public QObjectPrivate public: QmlParentChangePrivate() : target(0), parent(0), origParent(0), origStackBefore(0) {} - QFxItem *target; - QFxItem *parent; - QGuard origParent; - QGuard origStackBefore; + QmlGraphicsItem *target; + QmlGraphicsItem *parent; + QGuard origParent; + QGuard origStackBefore; - void doChange(QFxItem *targetParent, QFxItem *stackBefore = 0); + void doChange(QmlGraphicsItem *targetParent, QmlGraphicsItem *stackBefore = 0); }; -void QmlParentChangePrivate::doChange(QFxItem *targetParent, QFxItem *stackBefore) +void QmlParentChangePrivate::doChange(QmlGraphicsItem *targetParent, QmlGraphicsItem *stackBefore) { if (targetParent && target && target->parentItem()) { //### for backwards direction, can we just restore original x, y, scale, rotation @@ -105,7 +105,7 @@ void QmlParentChangePrivate::doChange(QFxItem *targetParent, QFxItem *stackBefor qreal xt = transform.dx(); qreal yt = transform.dy(); - if (target->transformOrigin() != QFxItem::TopLeft) { + if (target->transformOrigin() != QmlGraphicsItem::TopLeft) { qreal tempxt = target->transformOriginPoint().x(); qreal tempyt = target->transformOriginPoint().y(); QTransform t; @@ -166,13 +166,13 @@ QmlParentChange::~QmlParentChange() This property holds the item to be reparented */ -QFxItem *QmlParentChange::object() const +QmlGraphicsItem *QmlParentChange::object() const { Q_D(const QmlParentChange); return d->target; } -void QmlParentChange::setObject(QFxItem *target) +void QmlParentChange::setObject(QmlGraphicsItem *target) { Q_D(QmlParentChange); d->target = target; @@ -183,13 +183,13 @@ void QmlParentChange::setObject(QFxItem *target) This property holds the parent for the item in this state */ -QFxItem *QmlParentChange::parent() const +QmlGraphicsItem *QmlParentChange::parent() const { Q_D(const QmlParentChange); return d->parent; } -void QmlParentChange::setParent(QFxItem *parent) +void QmlParentChange::setParent(QmlGraphicsItem *parent) { Q_D(QmlParentChange); d->parent = parent; @@ -207,13 +207,13 @@ QmlStateOperation::ActionList QmlParentChange::actions() return ActionList() << a; } -class AccessibleFxItem : public QFxItem +class AccessibleFxItem : public QmlGraphicsItem { Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) public: int siblingIndex() { - Q_D(QFxItem); + Q_D(QmlGraphicsItem); return d->siblingIndex; } }; @@ -238,7 +238,7 @@ void QmlParentChange::saveOriginals() int siblingIndex = ((AccessibleFxItem*)d->target)->siblingIndex() + 1; QList children = d->origParent->childItems(); for (int i = 0; i < children.count(); ++i) { - QFxItem *child = qobject_cast(children.at(i)); + QmlGraphicsItem *child = qobject_cast(children.at(i)); if (!child) continue; if (((AccessibleFxItem*)child)->siblingIndex() == siblingIndex) { @@ -368,24 +368,24 @@ public: QmlAnchorChangesPrivate() : target(0) {} QString name; - QFxItem *target; + QmlGraphicsItem *target; QString resetString; QStringList resetList; - QFxAnchorLine left; - QFxAnchorLine right; - QFxAnchorLine horizontalCenter; - QFxAnchorLine top; - QFxAnchorLine bottom; - QFxAnchorLine verticalCenter; - QFxAnchorLine baseline; - - QFxAnchorLine origLeft; - QFxAnchorLine origRight; - QFxAnchorLine origHCenter; - QFxAnchorLine origTop; - QFxAnchorLine origBottom; - QFxAnchorLine origVCenter; - QFxAnchorLine origBaseline; + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine horizontalCenter; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine verticalCenter; + QmlGraphicsAnchorLine baseline; + + QmlGraphicsAnchorLine origLeft; + QmlGraphicsAnchorLine origRight; + QmlGraphicsAnchorLine origHCenter; + QmlGraphicsAnchorLine origTop; + QmlGraphicsAnchorLine origBottom; + QmlGraphicsAnchorLine origVCenter; + QmlGraphicsAnchorLine origBaseline; qreal origX; qreal origY; qreal origWidth; @@ -413,13 +413,13 @@ QmlAnchorChanges::ActionList QmlAnchorChanges::actions() return ActionList() << a; } -QFxItem *QmlAnchorChanges::object() const +QmlGraphicsItem *QmlAnchorChanges::object() const { Q_D(const QmlAnchorChanges); return d->target; } -void QmlAnchorChanges::setObject(QFxItem *target) +void QmlAnchorChanges::setObject(QmlGraphicsItem *target) { Q_D(QmlAnchorChanges); d->target = target; @@ -450,85 +450,85 @@ void QmlAnchorChanges::setReset(const QString &reset) These properties change the respective anchors of the item. */ -QFxAnchorLine QmlAnchorChanges::left() const +QmlGraphicsAnchorLine QmlAnchorChanges::left() const { Q_D(const QmlAnchorChanges); return d->left; } -void QmlAnchorChanges::setLeft(const QFxAnchorLine &edge) +void QmlAnchorChanges::setLeft(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->left = edge; } -QFxAnchorLine QmlAnchorChanges::right() const +QmlGraphicsAnchorLine QmlAnchorChanges::right() const { Q_D(const QmlAnchorChanges); return d->right; } -void QmlAnchorChanges::setRight(const QFxAnchorLine &edge) +void QmlAnchorChanges::setRight(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->right = edge; } -QFxAnchorLine QmlAnchorChanges::horizontalCenter() const +QmlGraphicsAnchorLine QmlAnchorChanges::horizontalCenter() const { Q_D(const QmlAnchorChanges); return d->horizontalCenter; } -void QmlAnchorChanges::setHorizontalCenter(const QFxAnchorLine &edge) +void QmlAnchorChanges::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->horizontalCenter = edge; } -QFxAnchorLine QmlAnchorChanges::top() const +QmlGraphicsAnchorLine QmlAnchorChanges::top() const { Q_D(const QmlAnchorChanges); return d->top; } -void QmlAnchorChanges::setTop(const QFxAnchorLine &edge) +void QmlAnchorChanges::setTop(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->top = edge; } -QFxAnchorLine QmlAnchorChanges::bottom() const +QmlGraphicsAnchorLine QmlAnchorChanges::bottom() const { Q_D(const QmlAnchorChanges); return d->bottom; } -void QmlAnchorChanges::setBottom(const QFxAnchorLine &edge) +void QmlAnchorChanges::setBottom(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->bottom = edge; } -QFxAnchorLine QmlAnchorChanges::verticalCenter() const +QmlGraphicsAnchorLine QmlAnchorChanges::verticalCenter() const { Q_D(const QmlAnchorChanges); return d->verticalCenter; } -void QmlAnchorChanges::setVerticalCenter(const QFxAnchorLine &edge) +void QmlAnchorChanges::setVerticalCenter(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->verticalCenter = edge; } -QFxAnchorLine QmlAnchorChanges::baseline() const +QmlGraphicsAnchorLine QmlAnchorChanges::baseline() const { Q_D(const QmlAnchorChanges); return d->baseline; } -void QmlAnchorChanges::setBaseline(const QFxAnchorLine &edge) +void QmlAnchorChanges::setBaseline(const QmlGraphicsAnchorLine &edge) { Q_D(QmlAnchorChanges); d->baseline = edge; @@ -541,19 +541,19 @@ void QmlAnchorChanges::execute() return; //set any anchors that have been specified - if (d->left.anchorLine != QFxAnchorLine::Invalid) + if (d->left.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setLeft(d->left); - if (d->right.anchorLine != QFxAnchorLine::Invalid) + if (d->right.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setRight(d->right); - if (d->horizontalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->horizontalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setHorizontalCenter(d->horizontalCenter); - if (d->top.anchorLine != QFxAnchorLine::Invalid) + if (d->top.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setTop(d->top); - if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + if (d->bottom.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setBottom(d->bottom); - if (d->verticalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->verticalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setVerticalCenter(d->verticalCenter); - if (d->baseline.anchorLine != QFxAnchorLine::Invalid) + if (d->baseline.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setBaseline(d->baseline); } @@ -569,19 +569,19 @@ void QmlAnchorChanges::reverse() return; //restore previous anchors - if (d->origLeft.anchorLine != QFxAnchorLine::Invalid) + if (d->origLeft.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setLeft(d->origLeft); - if (d->origRight.anchorLine != QFxAnchorLine::Invalid) + if (d->origRight.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setRight(d->origRight); - if (d->origHCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->origHCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setHorizontalCenter(d->origHCenter); - if (d->origTop.anchorLine != QFxAnchorLine::Invalid) + if (d->origTop.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setTop(d->origTop); - if (d->origBottom.anchorLine != QFxAnchorLine::Invalid) + if (d->origBottom.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setBottom(d->origBottom); - if (d->origVCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->origVCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setVerticalCenter(d->origVCenter); - if (d->origBaseline.anchorLine != QFxAnchorLine::Invalid) + if (d->origBaseline.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->setBaseline(d->origBaseline); } @@ -662,19 +662,19 @@ void QmlAnchorChanges::clearForwardBindings() d->target->anchors()->resetBaseline(); //reset any anchors that we'll be setting in the state - if (d->left.anchorLine != QFxAnchorLine::Invalid) + if (d->left.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetLeft(); - if (d->right.anchorLine != QFxAnchorLine::Invalid) + if (d->right.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetRight(); - if (d->horizontalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->horizontalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetHorizontalCenter(); - if (d->top.anchorLine != QFxAnchorLine::Invalid) + if (d->top.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetTop(); - if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + if (d->bottom.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBottom(); - if (d->verticalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->verticalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetVerticalCenter(); - if (d->baseline.anchorLine != QFxAnchorLine::Invalid) + if (d->baseline.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBaseline(); } @@ -687,35 +687,35 @@ void QmlAnchorChanges::clearReverseBindings() d->origHeight = d->target->height(); //reset any anchors that were set in the state - if (d->left.anchorLine != QFxAnchorLine::Invalid) + if (d->left.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetLeft(); - if (d->right.anchorLine != QFxAnchorLine::Invalid) + if (d->right.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetRight(); - if (d->horizontalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->horizontalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetHorizontalCenter(); - if (d->top.anchorLine != QFxAnchorLine::Invalid) + if (d->top.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetTop(); - if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + if (d->bottom.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBottom(); - if (d->verticalCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->verticalCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetVerticalCenter(); - if (d->baseline.anchorLine != QFxAnchorLine::Invalid) + if (d->baseline.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBaseline(); //reset any anchors that were set in the original state - if (d->origLeft.anchorLine != QFxAnchorLine::Invalid) + if (d->origLeft.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetLeft(); - if (d->origRight.anchorLine != QFxAnchorLine::Invalid) + if (d->origRight.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetRight(); - if (d->origHCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->origHCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetHorizontalCenter(); - if (d->origTop.anchorLine != QFxAnchorLine::Invalid) + if (d->origTop.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetTop(); - if (d->origBottom.anchorLine != QFxAnchorLine::Invalid) + if (d->origBottom.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBottom(); - if (d->origVCenter.anchorLine != QFxAnchorLine::Invalid) + if (d->origVCenter.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetVerticalCenter(); - if (d->origBaseline.anchorLine != QFxAnchorLine::Invalid) + if (d->origBaseline.anchorLine != QmlGraphicsAnchorLine::Invalid) d->target->anchors()->resetBaseline(); } diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index 237e3e8..903998d 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -59,17 +59,17 @@ class Q_DECLARATIVE_EXPORT QmlParentChange : public QmlStateOperation, public Ac Q_OBJECT Q_DECLARE_PRIVATE(QmlParentChange) - Q_PROPERTY(QFxItem *target READ object WRITE setObject) - Q_PROPERTY(QFxItem *parent READ parent WRITE setParent) + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) + Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) public: QmlParentChange(QObject *parent=0); ~QmlParentChange(); - QFxItem *object() const; - void setObject(QFxItem *); + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); - QFxItem *parent() const; - void setParent(QFxItem *); + QmlGraphicsItem *parent() const; + void setParent(QmlGraphicsItem *); virtual ActionList actions(); @@ -111,15 +111,15 @@ class Q_DECLARATIVE_EXPORT QmlAnchorChanges : public QmlStateOperation, public A Q_OBJECT Q_DECLARE_PRIVATE(QmlAnchorChanges) - Q_PROPERTY(QFxItem *target READ object WRITE setObject) + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) Q_PROPERTY(QString reset READ reset WRITE setReset) - Q_PROPERTY(QFxAnchorLine left READ left WRITE setLeft) - Q_PROPERTY(QFxAnchorLine right READ right WRITE setRight) - Q_PROPERTY(QFxAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter) - Q_PROPERTY(QFxAnchorLine top READ top WRITE setTop) - Q_PROPERTY(QFxAnchorLine bottom READ bottom WRITE setBottom) - Q_PROPERTY(QFxAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter) - Q_PROPERTY(QFxAnchorLine baseline READ baseline WRITE setBaseline) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline) public: QmlAnchorChanges(QObject *parent=0); @@ -127,32 +127,32 @@ public: virtual ActionList actions(); - QFxItem *object() const; - void setObject(QFxItem *); + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); QString reset() const; void setReset(const QString &); - QFxAnchorLine left() const; - void setLeft(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine right() const; - void setRight(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine top() const; - void setTop(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine bottom() const; - void setBottom(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine verticalCenter() const; - void setVerticalCenter(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); - QFxAnchorLine baseline() const; - void setBaseline(const QFxAnchorLine &edge); + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); virtual void execute(); virtual bool isReversable(); diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp index f1991f5..1d90051 100644 --- a/src/declarative/util/qmltimer.cpp +++ b/src/declarative/util/qmltimer.cpp @@ -66,7 +66,7 @@ public: }; /*! - \qmlclass Timer QFxTimer + \qmlclass Timer QmlGraphicsTimer \brief The Timer item triggers a handler at a specified interval. A timer can be used to trigger an action either once, or repeatedly diff --git a/src/declarative/util/qmlview.cpp b/src/declarative/util/qmlview.cpp index 329a9b2..ac67cb8 100644 --- a/src/declarative/util/qmlview.cpp +++ b/src/declarative/util/qmlview.cpp @@ -136,7 +136,7 @@ public: : q(w), root(0), component(0), resizable(false) {} QmlView *q; - QFxItem *root; + QmlGraphicsItem *root; QUrl source; QString qml; @@ -193,7 +193,7 @@ void QmlViewPrivate::init() QmlMetaType::registerCustomStringConverter(QVariant::KeySequence, &stringToKeySequence); #ifdef Q_ENABLE_PERFORMANCE_LOG - QFxPerfTimer perf; + QmlPerfTimer perf; #endif QFontDatabase database; @@ -213,7 +213,7 @@ void QmlViewPrivate::init() } /*! - The destructor clears the view's \l {QFxItem} {items} and + The destructor clears the view's \l {QmlGraphicsItem} {items} and deletes the internal representation. \sa clearItems() @@ -337,7 +337,7 @@ void QmlView::continueExecute() } if (obj) { - if (QFxItem *item = qobject_cast(obj)) { + if (QmlGraphicsItem *item = qobject_cast(obj)) { d->scene.addItem(item); @@ -476,11 +476,11 @@ QSize QmlView::sizeHint() const /*! Creates a \l{QmlComponent} {component} from the \a qml - string, and returns it as an \l {QFxItem} {item}. If the + string, and returns it as an \l {QmlGraphicsItem} {item}. If the \a parent item is provided, it becomes the new item's parent. \a parent should be in this view's item hierarchy. */ -QFxItem* QmlView::addItem(const QString &qml, QFxItem* parent) +QmlGraphicsItem* QmlView::addItem(const QString &qml, QmlGraphicsItem* parent) { if (!d->root) return 0; @@ -508,7 +508,7 @@ QFxItem* QmlView::addItem(const QString &qml, QFxItem* parent) } if (obj){ - QFxItem *item = static_cast(obj); + QmlGraphicsItem *item = static_cast(obj); if (!parent) parent = d->root; @@ -519,7 +519,7 @@ QFxItem* QmlView::addItem(const QString &qml, QFxItem* parent) } /*! - Deletes the view's \l {QFxItem} {items} and the \l {QmlEngine} + Deletes the view's \l {QmlGraphicsItem} {items} and the \l {QmlEngine} {QML engine's} Component cache. */ void QmlView::reset() @@ -530,7 +530,7 @@ void QmlView::reset() } /*! - Deletes the view's \l {QFxItem} {items}. + Deletes the view's \l {QmlGraphicsItem} {items}. */ void QmlView::clearItems() { @@ -541,9 +541,9 @@ void QmlView::clearItems() } /*! - Returns the view's root \l {QFxItem} {item}. + Returns the view's root \l {QmlGraphicsItem} {item}. */ -QFxItem *QmlView::root() const +QmlGraphicsItem *QmlView::root() const { return d->root; } diff --git a/src/declarative/util/qmlview.h b/src/declarative/util/qmlview.h index 822827a..4b2dd1c 100644 --- a/src/declarative/util/qmlview.h +++ b/src/declarative/util/qmlview.h @@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxItem; +class QmlGraphicsItem; class QmlEngine; class QmlContext; class QmlError; @@ -78,10 +78,10 @@ public: virtual void execute(); virtual void reset(); - virtual QFxItem* addItem(const QString &qml, QFxItem* parent=0); + virtual QmlGraphicsItem* addItem(const QString &qml, QmlGraphicsItem* parent=0); virtual void clearItems(); - virtual QFxItem *root() const; + virtual QmlGraphicsItem *root() const; void setContentResizable(bool); bool contentResizable() const; diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 7c3c4f0..8fc9610 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -604,7 +604,7 @@ public: inline bool isPixmap() const { return (item->type() == QGraphicsPixmapItem::Type); - //|| (item->d_ptr->isObject && qobject_cast(q_func())); + //|| (item->d_ptr->isObject && qobject_cast(q_func())); } inline const QStyleOption *styleOption() const diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp index ec977da..fea6ef3 100644 --- a/tests/auto/declarative/anchors/tst_anchors.cpp +++ b/tests/auto/declarative/anchors/tst_anchors.cpp @@ -13,7 +13,7 @@ public: tst_anchors() {} template - T *findItem(QFxItem *parent, const QString &id); + T *findItem(QmlGraphicsItem *parent, const QString &id); private slots: void basicAnchors(); @@ -27,12 +27,12 @@ private slots: Find an item with the specified id. */ template -T *tst_anchors::findItem(QFxItem *parent, const QString &objectName) +T *tst_anchors::findItem(QmlGraphicsItem *parent, const QString &objectName) { const QMetaObject &mo = T::staticMetaObject; QList children = parent->childItems(); for (int i = 0; i < children.count(); ++i) { - QFxItem *item = qobject_cast(children.at(i)->toGraphicsObject()); + QmlGraphicsItem *item = qobject_cast(children.at(i)->toGraphicsObject()); if (item) { if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) { return static_cast(item); @@ -55,41 +55,41 @@ void tst_anchors::basicAnchors() qApp->processEvents(); //sibling horizontal - QCOMPARE(findItem(view->root(), QLatin1String("Rect1"))->x(), 26.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect2"))->x(), 122.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect3"))->x(), 74.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect4"))->x(), 16.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect5"))->x(), 112.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect6"))->x(), 64.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect1"))->x(), 26.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect2"))->x(), 122.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect3"))->x(), 74.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect4"))->x(), 16.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect5"))->x(), 112.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect6"))->x(), 64.0); //parent horizontal - QCOMPARE(findItem(view->root(), QLatin1String("Rect7"))->x(), 0.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect8"))->x(), 240.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect9"))->x(), 120.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect10"))->x(), -10.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect11"))->x(), 230.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect12"))->x(), 110.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect7"))->x(), 0.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect8"))->x(), 240.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect9"))->x(), 120.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect10"))->x(), -10.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect11"))->x(), 230.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect12"))->x(), 110.0); //vertical - QCOMPARE(findItem(view->root(), QLatin1String("Rect13"))->y(), 20.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect14"))->y(), 155.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect13"))->y(), 20.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect14"))->y(), 155.0); //stretch - QCOMPARE(findItem(view->root(), QLatin1String("Rect15"))->x(), 26.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect15"))->width(), 96.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect16"))->x(), 26.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect16"))->width(), 192.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect17"))->x(), -70.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect17"))->width(), 192.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect15"))->x(), 26.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect15"))->width(), 96.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect16"))->x(), 26.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect16"))->width(), 192.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect17"))->x(), -70.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect17"))->width(), 192.0); //vertical stretch - QCOMPARE(findItem(view->root(), QLatin1String("Rect18"))->y(), 20.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect18"))->height(), 40.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect18"))->y(), 20.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect18"))->height(), 40.0); //more parent horizontal - QCOMPARE(findItem(view->root(), QLatin1String("Rect19"))->x(), 115.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect20"))->x(), 235.0); - QCOMPARE(findItem(view->root(), QLatin1String("Rect21"))->x(), -5.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect19"))->x(), 115.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect20"))->x(), 235.0); + QCOMPARE(findItem(view->root(), QLatin1String("Rect21"))->x(), -5.0); delete view; } @@ -102,7 +102,7 @@ void tst_anchors::loops() view->setUrl(QUrl("file://" SRCDIR "/data/loop1.qml")); - QString expect = "QML QFxText (" + view->url().toString() + ":7:5" + ") Possible anchor loop detected on horizontal anchor."; + QString expect = "QML QmlGraphicsText (" + view->url().toString() + ":7:5" + ") Possible anchor loop detected on horizontal anchor."; QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); @@ -117,7 +117,7 @@ void tst_anchors::loops() view->setUrl(QUrl("file://" SRCDIR "/data/loop2.qml")); - QString expect = "QML QFxImage (" + view->url().toString() + ":14:3" + ") Possible anchor loop detected on horizontal anchor."; + QString expect = "QML QmlGraphicsImage (" + view->url().toString() + ":14:3" + ") Possible anchor loop detected on horizontal anchor."; QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); view->execute(); qApp->processEvents(); @@ -133,7 +133,7 @@ void tst_anchors::illegalSets() view->setUrl(QUrl("file://" SRCDIR "/data/illegal1.qml")); - QString expect = "QML QFxRect (" + view->url().toString() + ":7:5" + ") Can't specify left, right, and hcenter anchors."; + QString expect = "QML QmlGraphicsRect (" + view->url().toString() + ":7:5" + ") Can't specify left, right, and hcenter anchors."; QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); view->execute(); qApp->processEvents(); @@ -146,7 +146,7 @@ void tst_anchors::illegalSets() view->setUrl(QUrl("file://" SRCDIR "/data/illegal2.qml")); - QString expect = "QML QFxText (" + view->url().toString() + ":7:5" + ") Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."; + QString expect = "QML QmlGraphicsText (" + view->url().toString() + ":7:5" + ") Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."; QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); view->execute(); //qApp->processEvents(); @@ -159,7 +159,7 @@ void tst_anchors::illegalSets() view->setUrl(QUrl("file://" SRCDIR "/data/illegal3.qml")); - QString expect = "QML QFxRect (" + view->url().toString() + ":9:5" + ") Can't anchor to an item that isn't a parent or sibling."; + QString expect = "QML QmlGraphicsRect (" + view->url().toString() + ":9:5" + ") Can't anchor to an item that isn't a parent or sibling."; QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); view->execute(); //qApp->processEvents(); @@ -170,25 +170,25 @@ void tst_anchors::illegalSets() void tst_anchors::reset() { - QFxItem *aItem = new QFxItem; - QFxAnchorLine anchor; + QmlGraphicsItem *aItem = new QmlGraphicsItem; + QmlGraphicsAnchorLine anchor; anchor.item = aItem; - anchor.anchorLine = QFxAnchorLine::Top; + anchor.anchorLine = QmlGraphicsAnchorLine::Top; - QFxItem *item = new QFxItem; + QmlGraphicsItem *item = new QmlGraphicsItem; item->anchors()->setBottom(anchor); - QCOMPARE(item->anchors()->usedAnchors().testFlag(QFxAnchors::HasBottomAnchor), true); + QCOMPARE(item->anchors()->usedAnchors().testFlag(QmlGraphicsAnchors::HasBottomAnchor), true); item->anchors()->resetBottom(); - QCOMPARE(item->anchors()->usedAnchors().testFlag(QFxAnchors::HasBottomAnchor), false); + QCOMPARE(item->anchors()->usedAnchors().testFlag(QmlGraphicsAnchors::HasBottomAnchor), false); } void tst_anchors::nullItem() { - QFxAnchorLine anchor; + QmlGraphicsAnchorLine anchor; - QTest::ignoreMessage(QtWarningMsg, "QML QFxItem (unknown location) Can't anchor to a null item."); - QFxItem *item = new QFxItem; + QTest::ignoreMessage(QtWarningMsg, "QML QmlGraphicsItem (unknown location) Can't anchor to a null item."); + QmlGraphicsItem *item = new QmlGraphicsItem; item->anchors()->setBottom(anchor); } diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index 5c71731..46c953d 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -21,14 +21,14 @@ private slots: void tst_animatedimage::play() { - QFxAnimatedImageItem anim; + QmlGraphicsAnimatedImageItem anim; anim.setSource(QUrl("file://" SRCDIR "/data/stickman.gif")); QVERIFY(anim.isPlaying()); } void tst_animatedimage::pause() { - QFxAnimatedImageItem anim; + QmlGraphicsAnimatedImageItem anim; anim.setSource(QUrl("file://" SRCDIR "/data/stickman.gif")); anim.setPaused(true); QVERIFY(!anim.isPlaying()); @@ -36,7 +36,7 @@ void tst_animatedimage::pause() void tst_animatedimage::setFrame() { - QFxAnimatedImageItem anim; + QmlGraphicsAnimatedImageItem anim; anim.setSource(QUrl("file://" SRCDIR "/data/stickman.gif")); anim.setPaused(true); QVERIFY(!anim.isPlaying()); @@ -46,7 +46,7 @@ void tst_animatedimage::setFrame() void tst_animatedimage::frameCount() { - QFxAnimatedImageItem anim; + QmlGraphicsAnimatedImageItem anim; anim.setSource(QUrl("file://" SRCDIR "/data/stickman.gif")); QCOMPARE(anim.frameCount(), 299); } diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp index a6f67b8..b5cc9d4 100644 --- a/tests/auto/declarative/animations/tst_animations.cpp +++ b/tests/auto/declarative/animations/tst_animations.cpp @@ -32,7 +32,7 @@ private slots: void tst_animations::simpleNumber() { - QFxRect rect; + QmlGraphicsRect rect; QmlNumberAnimation animation; animation.setTarget(&rect); animation.setProperty("x"); @@ -50,7 +50,7 @@ void tst_animations::simpleNumber() void tst_animations::simpleColor() { - QFxRect rect; + QmlGraphicsRect rect; QmlColorAnimation animation; animation.setTarget(&rect); animation.setProperty("color"); @@ -68,7 +68,7 @@ void tst_animations::simpleColor() void tst_animations::alwaysRunToEnd() { - QFxRect rect; + QmlGraphicsRect rect; QmlPropertyAnimation animation; animation.setTarget(&rect); animation.setProperty("x"); @@ -86,7 +86,7 @@ void tst_animations::alwaysRunToEnd() void tst_animations::dotProperty() { - QFxRect rect; + QmlGraphicsRect rect; QmlNumberAnimation animation; animation.setTarget(&rect); animation.setProperty("border.width"); @@ -141,12 +141,12 @@ void tst_animations::badTypes() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/badtype4.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("state1"); QTest::qWait(1000 + 50); - QFxRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust + QmlGraphicsRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust QVERIFY(myRect); QCOMPARE(myRect->x(),qreal(200)); } @@ -158,7 +158,7 @@ void tst_animations::badProperties() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/badproperty1.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); QTest::ignoreMessage(QtWarningMsg, "QML QmlColorAnimation (file://" SRCDIR "/data/badproperty1.qml:22:9) Cannot animate non-existant property \"pen.colr\""); @@ -174,12 +174,12 @@ void tst_animations::mixedTypes() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/mixedtype1.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("state1"); QTest::qWait(500); - QFxRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust + QmlGraphicsRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust QVERIFY(myRect); //rather inexact -- is there a better way? @@ -190,12 +190,12 @@ void tst_animations::mixedTypes() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/mixedtype2.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("state1"); QTest::qWait(500); - QFxRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust + QmlGraphicsRect *myRect = qobject_cast(rect->QGraphicsObject::children().at(3)); //### not robust QVERIFY(myRect); //rather inexact -- is there a better way? diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp index 7bfadf6..079e2e7 100644 --- a/tests/auto/declarative/behaviors/tst_behaviors.cpp +++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp @@ -26,12 +26,12 @@ void tst_behaviors::simpleBehavior() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/simple.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("moved"); QTest::qWait(100); - qreal x = qobject_cast(rect->findChild("MyRect"))->x(); + qreal x = qobject_cast(rect->findChild("MyRect"))->x(); QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered } @@ -39,12 +39,12 @@ void tst_behaviors::scriptTriggered() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/scripttrigger.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setColor(QColor("red")); QTest::qWait(100); - qreal x = qobject_cast(rect->findChild("MyRect"))->x(); + qreal x = qobject_cast(rect->findChild("MyRect"))->x(); QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered } @@ -52,10 +52,10 @@ void tst_behaviors::cppTriggered() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/cpptrigger.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); - QFxRect *innerRect = qobject_cast(rect->findChild("MyRect")); + QmlGraphicsRect *innerRect = qobject_cast(rect->findChild("MyRect")); QVERIFY(innerRect); innerRect->setProperty("x", 200); @@ -68,7 +68,7 @@ void tst_behaviors::loop() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/loop.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); //don't crash @@ -79,12 +79,12 @@ void tst_behaviors::colorBehavior() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/color.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("red"); QTest::qWait(100); - QColor color = qobject_cast(rect->findChild("MyRect"))->color(); + QColor color = qobject_cast(rect->findChild("MyRect"))->color(); QVERIFY(color != QColor("red") && color != QColor("green")); //i.e. the behavior has been triggered } @@ -92,12 +92,12 @@ void tst_behaviors::replaceBinding() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/binding.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("moved"); QTest::qWait(100); - QFxRect *innerRect = qobject_cast(rect->findChild("MyRect")); + QmlGraphicsRect *innerRect = qobject_cast(rect->findChild("MyRect")); QVERIFY(innerRect); qreal x = innerRect->x(); QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered @@ -127,24 +127,24 @@ void tst_behaviors::group() { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/groupProperty.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("moved"); QTest::qWait(100); - qreal x = qobject_cast(rect->findChild("MyRect"))->x(); + qreal x = qobject_cast(rect->findChild("MyRect"))->x(); QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered } { QmlEngine engine; QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/groupProperty2.qml")); - QFxRect *rect = qobject_cast(c.create()); + QmlGraphicsRect *rect = qobject_cast(c.create()); QVERIFY(rect); rect->setState("moved"); QTest::qWait(100); - qreal x = qobject_cast(rect->findChild("MyRect"))->x(); + qreal x = qobject_cast(rect->findChild("MyRect"))->x(); QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered } } diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index d1e6aab..70755ff 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -4,11 +4,11 @@ #include #include -class tst_QFxLayouts : public QObject +class tst_QmlGraphicsLayouts : public QObject { Q_OBJECT public: - tst_QFxLayouts(); + tst_QmlGraphicsLayouts(); private slots: void test_horizontal(); @@ -22,24 +22,24 @@ private: QmlView *createView(const QString &filename); }; -tst_QFxLayouts::tst_QFxLayouts() +tst_QmlGraphicsLayouts::tst_QmlGraphicsLayouts() { } -void tst_QFxLayouts::test_horizontal() +void tst_QmlGraphicsLayouts::test_horizontal() { QmlView *canvas = createView(SRCDIR "/data/horizontal.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); QCOMPARE(one->x(), 0.0); @@ -50,20 +50,20 @@ void tst_QFxLayouts::test_horizontal() QCOMPARE(three->y(), 0.0); } -void tst_QFxLayouts::test_horizontal_spacing() +void tst_QmlGraphicsLayouts::test_horizontal_spacing() { QmlView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); QCOMPARE(one->x(), 0.0); @@ -74,20 +74,20 @@ void tst_QFxLayouts::test_horizontal_spacing() QCOMPARE(three->y(), 0.0); } -void tst_QFxLayouts::test_vertical() +void tst_QmlGraphicsLayouts::test_vertical() { QmlView *canvas = createView(SRCDIR "/data/vertical.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); QCOMPARE(one->x(), 0.0); @@ -98,20 +98,20 @@ void tst_QFxLayouts::test_vertical() QCOMPARE(three->y(), 60.0); } -void tst_QFxLayouts::test_vertical_spacing() +void tst_QmlGraphicsLayouts::test_vertical_spacing() { QmlView *canvas = createView(SRCDIR "/data/vertical-spacing.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); QCOMPARE(one->x(), 0.0); @@ -122,22 +122,22 @@ void tst_QFxLayouts::test_vertical_spacing() QCOMPARE(three->y(), 80.0); } -void tst_QFxLayouts::test_grid() +void tst_QmlGraphicsLayouts::test_grid() { QmlView *canvas = createView("data/grid.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); - QFxRect *four = canvas->root()->findChild("four"); + QmlGraphicsRect *four = canvas->root()->findChild("four"); QVERIFY(four != 0); - QFxRect *five = canvas->root()->findChild("five"); + QmlGraphicsRect *five = canvas->root()->findChild("five"); QVERIFY(five != 0); QCOMPARE(one->x(), 0.0); @@ -152,22 +152,22 @@ void tst_QFxLayouts::test_grid() QCOMPARE(five->y(), 50.0); } -void tst_QFxLayouts::test_grid_spacing() +void tst_QmlGraphicsLayouts::test_grid_spacing() { QmlView *canvas = createView("data/grid-spacing.qml"); canvas->execute(); qApp->processEvents(); - QFxRect *one = canvas->root()->findChild("one"); + QmlGraphicsRect *one = canvas->root()->findChild("one"); QVERIFY(one != 0); - QFxRect *two = canvas->root()->findChild("two"); + QmlGraphicsRect *two = canvas->root()->findChild("two"); QVERIFY(two != 0); - QFxRect *three = canvas->root()->findChild("three"); + QmlGraphicsRect *three = canvas->root()->findChild("three"); QVERIFY(three != 0); - QFxRect *four = canvas->root()->findChild("four"); + QmlGraphicsRect *four = canvas->root()->findChild("four"); QVERIFY(four != 0); - QFxRect *five = canvas->root()->findChild("five"); + QmlGraphicsRect *five = canvas->root()->findChild("five"); QVERIFY(five != 0); QCOMPARE(one->x(), 0.0); @@ -182,7 +182,7 @@ void tst_QFxLayouts::test_grid_spacing() QCOMPARE(five->y(), 54.0); } -QmlView *tst_QFxLayouts::createView(const QString &filename) +QmlView *tst_QmlGraphicsLayouts::createView(const QString &filename) { QmlView *canvas = new QmlView(0); @@ -195,6 +195,6 @@ QmlView *tst_QFxLayouts::createView(const QString &filename) } -QTEST_MAIN(tst_QFxLayouts) +QTEST_MAIN(tst_QmlGraphicsLayouts) #include "tst_layouts.moc" diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp index 1875836..be65338 100644 --- a/tests/auto/declarative/listview/tst_listview.cpp +++ b/tests/auto/declarative/listview/tst_listview.cpp @@ -6,11 +6,11 @@ #include #include -class tst_QFxListView : public QObject +class tst_QmlGraphicsListView : public QObject { Q_OBJECT public: - tst_QFxListView(); + tst_QmlGraphicsListView(); private slots: // Test both QListModelInterface and QAbstractItemModel model types @@ -33,9 +33,9 @@ private: template void removed(); QmlView *createView(const QString &filename); template - T *findItem(QFxItem *parent, const QString &id, int index=-1); + T *findItem(QmlGraphicsItem *parent, const QString &id, int index=-1); template - QList findItems(QFxItem *parent, const QString &objectName); + QList findItems(QmlGraphicsItem *parent, const QString &objectName); }; class TestModel : public QListModelInterface @@ -164,12 +164,12 @@ private: QList > list; }; -tst_QFxListView::tst_QFxListView() +tst_QmlGraphicsListView::tst_QmlGraphicsListView() { } template -void tst_QFxListView::items() +void tst_QmlGraphicsListView::items() { QmlView *canvas = createView(SRCDIR "/data/listview.qml"); @@ -184,19 +184,19 @@ void tst_QFxListView::items() canvas->execute(); qApp->processEvents(); - QFxFlickable *listview = findItem(canvas->root(), "list"); + QmlGraphicsFlickable *listview = findItem(canvas->root(), "list"); QVERIFY(listview != 0); - QFxItem *viewport = listview->viewport(); + QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item for (int i = 0; i < model.count(); ++i) { - QFxText *name = findItem(viewport, "textName", i); + QmlGraphicsText *name = findItem(viewport, "textName", i); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(i)); - QFxText *number = findItem(viewport, "textNumber", i); + QmlGraphicsText *number = findItem(viewport, "textNumber", i); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(i)); } @@ -205,7 +205,7 @@ void tst_QFxListView::items() } template -void tst_QFxListView::changed() +void tst_QmlGraphicsListView::changed() { QmlView *canvas = createView(SRCDIR "/data/listview.qml"); @@ -220,17 +220,17 @@ void tst_QFxListView::changed() canvas->execute(); qApp->processEvents(); - QFxFlickable *listview = findItem(canvas->root(), "list"); + QmlGraphicsFlickable *listview = findItem(canvas->root(), "list"); QVERIFY(listview != 0); - QFxItem *viewport = listview->viewport(); + QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); model.modifyItem(1, "Will", "9876"); - QFxText *name = findItem(viewport, "textName", 1); + QmlGraphicsText *name = findItem(viewport, "textName", 1); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(1)); - QFxText *number = findItem(viewport, "textNumber", 1); + QmlGraphicsText *number = findItem(viewport, "textNumber", 1); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(1)); @@ -238,7 +238,7 @@ void tst_QFxListView::changed() } template -void tst_QFxListView::inserted() +void tst_QmlGraphicsListView::inserted() { QmlView *canvas = createView(SRCDIR "/data/listview.qml"); @@ -253,10 +253,10 @@ void tst_QFxListView::inserted() canvas->execute(); qApp->processEvents(); - QFxListView *listview = findItem(canvas->root(), "list"); + QmlGraphicsListView *listview = findItem(canvas->root(), "list"); QVERIFY(listview != 0); - QFxItem *viewport = listview->viewport(); + QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); model.insertItem(1, "Will", "9876"); @@ -266,16 +266,16 @@ void tst_QFxListView::inserted() QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item - QFxText *name = findItem(viewport, "textName", 1); + QmlGraphicsText *name = findItem(viewport, "textName", 1); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(1)); - QFxText *number = findItem(viewport, "textNumber", 1); + QmlGraphicsText *number = findItem(viewport, "textNumber", 1); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(1)); // Confirm items positioned correctly for (int i = 0; i < model.count(); ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); QVERIFY(item->y() == i*20); } @@ -286,10 +286,10 @@ void tst_QFxListView::inserted() QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item - name = findItem(viewport, "textName", 0); + name = findItem(viewport, "textName", 0); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(0)); - number = findItem(viewport, "textNumber", 0); + number = findItem(viewport, "textNumber", 0); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(0)); @@ -297,7 +297,7 @@ void tst_QFxListView::inserted() // Confirm items positioned correctly for (int i = 0; i < model.count(); ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); QVERIFY(item->y() == i*20); } @@ -305,7 +305,7 @@ void tst_QFxListView::inserted() } template -void tst_QFxListView::removed() +void tst_QmlGraphicsListView::removed() { QmlView *canvas = createView(SRCDIR "/data/listview.qml"); @@ -319,10 +319,10 @@ void tst_QFxListView::removed() canvas->execute(); qApp->processEvents(); - QFxListView *listview = findItem(canvas->root(), "list"); + QmlGraphicsListView *listview = findItem(canvas->root(), "list"); QVERIFY(listview != 0); - QFxItem *viewport = listview->viewport(); + QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); model.removeItem(1); @@ -330,17 +330,17 @@ void tst_QFxListView::removed() // let transitions settle. QTest::qWait(1000); - QFxText *name = findItem(viewport, "textName", 1); + QmlGraphicsText *name = findItem(viewport, "textName", 1); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(1)); - QFxText *number = findItem(viewport, "textNumber", 1); + QmlGraphicsText *number = findItem(viewport, "textNumber", 1); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(1)); // Confirm items positioned correctly - int itemCount = findItems(viewport, "wrapper").count(); + int itemCount = findItems(viewport, "wrapper").count(); for (int i = 0; i < model.count() && i < itemCount; ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QVERIFY(item); QVERIFY(item->y() == i*20); @@ -352,17 +352,17 @@ void tst_QFxListView::removed() // let transitions settle. QTest::qWait(1000); - name = findItem(viewport, "textName", 0); + name = findItem(viewport, "textName", 0); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(0)); - number = findItem(viewport, "textNumber", 0); + number = findItem(viewport, "textNumber", 0); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(0)); // Confirm items positioned correctly - itemCount = findItems(viewport, "wrapper").count(); + itemCount = findItems(viewport, "wrapper").count(); for (int i = 0; i < model.count() && i < itemCount; ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QVERIFY(item); QCOMPARE(item->y(),i*20.0 + 20.0); @@ -374,9 +374,9 @@ void tst_QFxListView::removed() QTest::qWait(1000); // Confirm items positioned correctly - itemCount = findItems(viewport, "wrapper").count(); + itemCount = findItems(viewport, "wrapper").count(); for (int i = 0; i < model.count() && i < itemCount; ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QVERIFY(item); QCOMPARE(item->y(),i*20.0+20.0); @@ -392,7 +392,7 @@ void tst_QFxListView::removed() // Confirm items positioned correctly for (int i = 2; i < 18; ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QVERIFY(item); QCOMPARE(item->y(),40+i*20.0); @@ -403,9 +403,9 @@ void tst_QFxListView::removed() QTest::qWait(1000); // Confirm items positioned correctly - itemCount = findItems(viewport, "wrapper").count(); + itemCount = findItems(viewport, "wrapper").count(); for (int i = 0; i < model.count() && i < itemCount; ++i) { - QFxItem *item = findItem(viewport, "wrapper", i); + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QVERIFY(item); QCOMPARE(item->y(),40+i*20.0); @@ -414,47 +414,47 @@ void tst_QFxListView::removed() delete canvas; } -void tst_QFxListView::qListModelInterface_items() +void tst_QmlGraphicsListView::qListModelInterface_items() { items(); } -void tst_QFxListView::qAbstractItemModel_items() +void tst_QmlGraphicsListView::qAbstractItemModel_items() { items(); } -void tst_QFxListView::qListModelInterface_changed() +void tst_QmlGraphicsListView::qListModelInterface_changed() { changed(); } -void tst_QFxListView::qAbstractItemModel_changed() +void tst_QmlGraphicsListView::qAbstractItemModel_changed() { changed(); } -void tst_QFxListView::qListModelInterface_inserted() +void tst_QmlGraphicsListView::qListModelInterface_inserted() { inserted(); } -void tst_QFxListView::qAbstractItemModel_inserted() +void tst_QmlGraphicsListView::qAbstractItemModel_inserted() { inserted(); } -void tst_QFxListView::qListModelInterface_removed() +void tst_QmlGraphicsListView::qListModelInterface_removed() { removed(); } -void tst_QFxListView::qAbstractItemModel_removed() +void tst_QmlGraphicsListView::qAbstractItemModel_removed() { removed(); } -QmlView *tst_QFxListView::createView(const QString &filename) +QmlView *tst_QmlGraphicsListView::createView(const QString &filename) { QmlView *canvas = new QmlView(0); canvas->setFixedSize(240,320); @@ -472,12 +472,12 @@ QmlView *tst_QFxListView::createView(const QString &filename) item must also evaluate the {index} expression equal to index */ template -T *tst_QFxListView::findItem(QFxItem *parent, const QString &objectName, int index) +T *tst_QmlGraphicsListView::findItem(QmlGraphicsItem *parent, const QString &objectName, int index) { const QMetaObject &mo = T::staticMetaObject; //qDebug() << parent->QGraphicsObject::children().count() << "children"; for (int i = 0; i < parent->QGraphicsObject::children().count(); ++i) { - QFxItem *item = qobject_cast(parent->QGraphicsObject::children().at(i)); + QmlGraphicsItem *item = qobject_cast(parent->QGraphicsObject::children().at(i)); if(!item) continue; //qDebug() << "try" << item; @@ -500,13 +500,13 @@ T *tst_QFxListView::findItem(QFxItem *parent, const QString &objectName, int ind } template -QList tst_QFxListView::findItems(QFxItem *parent, const QString &objectName) +QList tst_QmlGraphicsListView::findItems(QmlGraphicsItem *parent, const QString &objectName) { QList items; const QMetaObject &mo = T::staticMetaObject; //qDebug() << parent->QGraphicsObject::children().count() << "children"; for (int i = 0; i < parent->QGraphicsObject::children().count(); ++i) { - QFxItem *item = qobject_cast(parent->QGraphicsObject::children().at(i)); + QmlGraphicsItem *item = qobject_cast(parent->QGraphicsObject::children().at(i)); if(!item) continue; //qDebug() << "try" << item; @@ -519,6 +519,6 @@ QList tst_QFxListView::findItems(QFxItem *parent, const QString &objectName) } -QTEST_MAIN(tst_QFxListView) +QTEST_MAIN(tst_QmlGraphicsListView) #include "tst_listview.moc" diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp index 6e670bf..d5b922a 100644 --- a/tests/auto/declarative/pathview/tst_pathview.cpp +++ b/tests/auto/declarative/pathview/tst_pathview.cpp @@ -7,11 +7,11 @@ #include #include -class tst_QFxPathView : public QObject +class tst_QmlGraphicsPathView : public QObject { Q_OBJECT public: - tst_QFxPathView(); + tst_QmlGraphicsPathView(); private slots: void items(); @@ -21,7 +21,7 @@ private slots: private: QmlView *createView(const QString &filename); template - T *findItem(QFxItem *parent, const QString &id, int index=-1); + T *findItem(QmlGraphicsItem *parent, const QString &id, int index=-1); }; class TestModel : public QListModelInterface @@ -95,11 +95,11 @@ private: QList > list; }; -tst_QFxPathView::tst_QFxPathView() +tst_QmlGraphicsPathView::tst_QmlGraphicsPathView() { } -void tst_QFxPathView::items() +void tst_QmlGraphicsPathView::items() { QmlView *canvas = createView(SRCDIR "/data/pathview.qml"); @@ -114,16 +114,16 @@ void tst_QFxPathView::items() canvas->execute(); qApp->processEvents(); - QFxPathView *pathview = findItem(canvas->root(), "view"); + QmlGraphicsPathView *pathview = findItem(canvas->root(), "view"); QVERIFY(pathview != 0); QCOMPARE(pathview->childItems().count(), model.count()); // assumes all are visible for (int i = 0; i < model.count(); ++i) { - QFxText *name = findItem(pathview, "textName", i); + QmlGraphicsText *name = findItem(pathview, "textName", i); QVERIFY(name != 0); QCOMPARE(name->text(), model.name(i)); - QFxText *number = findItem(pathview, "textNumber", i); + QmlGraphicsText *number = findItem(pathview, "textNumber", i); QVERIFY(number != 0); QCOMPARE(number->text(), model.number(i)); } @@ -131,7 +131,7 @@ void tst_QFxPathView::items() delete canvas; } -void tst_QFxPathView::pathMoved() +void tst_QmlGraphicsPathView::pathMoved() { QmlView *canvas = createView(SRCDIR "/data/pathview.qml"); @@ -147,12 +147,12 @@ void tst_QFxPathView::pathMoved() canvas->execute(); qApp->processEvents(); - QFxPathView *pathview = findItem(canvas->root(), "view"); + QmlGraphicsPathView *pathview = findItem(canvas->root(), "view"); QVERIFY(pathview != 0); - QFxRect *firstItem = findItem(pathview, "wrapper", 0); + QmlGraphicsRect *firstItem = findItem(pathview, "wrapper", 0); QVERIFY(firstItem); - QFxPath *path = qobject_cast(pathview->path()); + QmlGraphicsPath *path = qobject_cast(pathview->path()); QVERIFY(path); QPointF start = path->pointAt(0.0); QPointF offset;//Center of item is at point, but pos is from corner @@ -163,7 +163,7 @@ void tst_QFxPathView::pathMoved() QTest::qWait(1000);//Moving is animated? for(int i=0; i(pathview, "wrapper", i); + QmlGraphicsRect *curItem = findItem(pathview, "wrapper", i); QCOMPARE(curItem->pos() + offset, path->pointAt(0.1 + i*0.25)); } @@ -174,7 +174,7 @@ void tst_QFxPathView::pathMoved() delete canvas; } -void tst_QFxPathView::limitedItems() +void tst_QmlGraphicsPathView::limitedItems() { QmlView *canvas = createView(SRCDIR "/data/pathview.qml"); @@ -188,32 +188,32 @@ void tst_QFxPathView::limitedItems() canvas->execute(); qApp->processEvents(); - QFxPathView *pathview = findItem(canvas->root(), "view"); + QmlGraphicsPathView *pathview = findItem(canvas->root(), "view"); QVERIFY(pathview != 0); pathview->setPathItemCount(10); QCOMPARE(pathview->pathItemCount(), 10); - QFxRect *testItem = findItem(pathview, "wrapper", 0); + QmlGraphicsRect *testItem = findItem(pathview, "wrapper", 0); QVERIFY(testItem != 0); - testItem = findItem(pathview, "wrapper", 9); + testItem = findItem(pathview, "wrapper", 9); QVERIFY(testItem != 0); - testItem = findItem(pathview, "wrapper", 10); + testItem = findItem(pathview, "wrapper", 10); QVERIFY(testItem == 0); pathview->setCurrentIndex(50); QTest::qWait(5100);//Moving is animated and it's travelling far - should be reconsidered. - testItem = findItem(pathview, "wrapper", 0); + testItem = findItem(pathview, "wrapper", 0); QVERIFY(testItem == 0); - testItem = findItem(pathview, "wrapper", 1); + testItem = findItem(pathview, "wrapper", 1); QVERIFY(testItem == 0); - testItem = findItem(pathview, "wrapper", 9); + testItem = findItem(pathview, "wrapper", 9); QVERIFY(testItem == 0); - testItem = findItem(pathview, "wrapper", 50); + testItem = findItem(pathview, "wrapper", 50); QVERIFY(testItem != 0); } -QmlView *tst_QFxPathView::createView(const QString &filename) +QmlView *tst_QmlGraphicsPathView::createView(const QString &filename) { QmlView *canvas = new QmlView(0); canvas->setFixedSize(240,320); @@ -231,11 +231,11 @@ QmlView *tst_QFxPathView::createView(const QString &filename) item must also evaluate the {index} expression equal to index */ template -T *tst_QFxPathView::findItem(QFxItem *parent, const QString &objectName, int index) +T *tst_QmlGraphicsPathView::findItem(QmlGraphicsItem *parent, const QString &objectName, int index) { const QMetaObject &mo = T::staticMetaObject; for (int i = 0; i < parent->children().count(); ++i) { - QFxItem *item = qobject_cast(parent->children().at(i)); + QmlGraphicsItem *item = qobject_cast(parent->children().at(i)); if(!item) continue; if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) { @@ -256,6 +256,6 @@ T *tst_QFxPathView::findItem(QFxItem *parent, const QString &objectName, int ind return 0; } -QTEST_MAIN(tst_QFxPathView) +QTEST_MAIN(tst_QmlGraphicsPathView) #include "tst_pathview.moc" diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp index 2109898..99fecc3 100644 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp @@ -41,7 +41,7 @@ tst_qfxloader::tst_qfxloader() void tst_qfxloader::url() { QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"Rect120x60.qml\" }"), QUrl("file://" SRCDIR "/")); - QFxLoader *loader = qobject_cast(component.create()); + QmlGraphicsLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QVERIFY(loader->item()); QCOMPARE(loader->progress(), 1.0); @@ -51,10 +51,10 @@ void tst_qfxloader::url() void tst_qfxloader::component() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); - QFxItem *item = qobject_cast(component.create()); + QmlGraphicsItem *item = qobject_cast(component.create()); QVERIFY(item); - QFxLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); + QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); QVERIFY(loader); QVERIFY(loader->item()); QCOMPARE(loader->progress(), 1.0); @@ -64,7 +64,7 @@ void tst_qfxloader::component() void tst_qfxloader::sizeLoaderToItem() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToItem.qml")); - QFxLoader *loader = qobject_cast(component.create()); + QmlGraphicsLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QCOMPARE(loader->width(), 120.0); QCOMPARE(loader->height(), 60.0); @@ -73,12 +73,12 @@ void tst_qfxloader::sizeLoaderToItem() void tst_qfxloader::sizeItemToLoader() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToLoader.qml")); - QFxLoader *loader = qobject_cast(component.create()); + QmlGraphicsLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QCOMPARE(loader->width(), 200.0); QCOMPARE(loader->height(), 80.0); - QFxItem *rect = loader->item(); + QmlGraphicsItem *rect = loader->item(); QVERIFY(rect); QCOMPARE(rect->width(), 200.0); QCOMPARE(rect->height(), 80.0); @@ -87,12 +87,12 @@ void tst_qfxloader::sizeItemToLoader() void tst_qfxloader::noResize() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/NoResize.qml")); - QFxLoader *loader = qobject_cast(component.create()); + QmlGraphicsLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QCOMPARE(loader->width(), 200.0); QCOMPARE(loader->height(), 80.0); - QFxItem *rect = loader->item(); + QmlGraphicsItem *rect = loader->item(); QVERIFY(rect); QCOMPARE(rect->width(), 120.0); QCOMPARE(rect->height(), 60.0); diff --git a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp index 5e24831..e735066 100644 --- a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp +++ b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp @@ -59,7 +59,7 @@ static const bool localfile_optimized = false; void tst_qfxpixmapcache::single_data() { - // Note, since QFxPixmapCache is shared, tests affect each other! + // Note, since QmlGraphicsPixmapCache is shared, tests affect each other! // so use different files fore all test functions. QTest::addColumn("target"); @@ -90,7 +90,7 @@ void tst_qfxpixmapcache::single() QPixmap pixmap; QVERIFY(pixmap.width() <= 0); // Check Qt assumption - QNetworkReply *reply= QFxPixmapCache::get(&engine, target, &pixmap); + QNetworkReply *reply= QmlGraphicsPixmapCache::get(&engine, target, &pixmap); if (incache) { QVERIFY(!reply); @@ -108,20 +108,20 @@ void tst_qfxpixmapcache::single() QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(getter.gotslot); if (exists) { - QVERIFY(QFxPixmapCache::find(target, &pixmap)); + QVERIFY(QmlGraphicsPixmapCache::find(target, &pixmap)); QVERIFY(pixmap.width() > 0); } else { - QVERIFY(!QFxPixmapCache::find(target, &pixmap)); + QVERIFY(!QmlGraphicsPixmapCache::find(target, &pixmap)); QVERIFY(pixmap.width() <= 0); } } - QCOMPARE(QFxPixmapCache::pendingRequests(), 0); + QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), 0); } void tst_qfxpixmapcache::parallel_data() { - // Note, since QFxPixmapCache is shared, tests affect each other! + // Note, since QmlGraphicsPixmapCache is shared, tests affect each other! // so use different files fore all test functions. QTest::addColumn("target1"); @@ -187,7 +187,7 @@ void tst_qfxpixmapcache::parallel() for (int i=0; i 0); @@ -200,10 +200,10 @@ void tst_qfxpixmapcache::parallel() } QCOMPARE(incache+slotters, targets.count()); - QCOMPARE(QFxPixmapCache::pendingRequests(), requests); + QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), requests); if (cancel >= 0) { - QFxPixmapCache::cancelGet(targets.at(cancel), getters[cancel]); + QmlGraphicsPixmapCache::cancelGet(targets.at(cancel), getters[cancel]); slotters--; } @@ -220,14 +220,14 @@ void tst_qfxpixmapcache::parallel() } else { QVERIFY(getters[i]->gotslot); QPixmap pixmap; - QVERIFY(QFxPixmapCache::find(targets[i], &pixmap)); + QVERIFY(QmlGraphicsPixmapCache::find(targets[i], &pixmap)); QVERIFY(pixmap.width() > 0); } delete getters[i]; } } - QCOMPARE(QFxPixmapCache::pendingRequests(), 0); + QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), 0); } QTEST_MAIN(tst_qfxpixmapcache) diff --git a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp index cae85a4..12cac68 100644 --- a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp +++ b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp @@ -36,7 +36,7 @@ private: QList horizontalAlignmentments; QStringList styleStrings; - QList styles; + QList styles; QStringList colorStrings; @@ -72,10 +72,10 @@ tst_qfxtext::tst_qfxtext() << "Raised" << "Sunken"; - styles << QFxText::Normal - << QFxText::Outline - << QFxText::Raised - << QFxText::Sunken; + styles << QmlGraphicsText::Normal + << QmlGraphicsText::Outline + << QmlGraphicsText::Raised + << QmlGraphicsText::Sunken; colorStrings << "aliceblue" << "antiquewhite" @@ -100,7 +100,7 @@ void tst_qfxtext::text() { { QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"\" }", QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); QCOMPARE(textObject->text(), QString("")); @@ -110,7 +110,7 @@ void tst_qfxtext::text() { QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); QCOMPARE(textObject->text(), standard.at(i)); @@ -120,7 +120,7 @@ void tst_qfxtext::text() { QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); QString expected = richText.at(i); @@ -133,7 +133,7 @@ void tst_qfxtext::width() // uses Font metrics to find the width for standard and document to find the width for rich { QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"\" }", QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 0.); } @@ -146,7 +146,7 @@ void tst_qfxtext::width() QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), qreal(metricWidth)); } @@ -161,7 +161,7 @@ void tst_qfxtext::width() QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), qreal(documentWidth)); } @@ -174,7 +174,7 @@ void tst_qfxtext::wrap() // for specified width and wrap set true { QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"\"; wrap: true; width: 300 }", QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -183,7 +183,7 @@ void tst_qfxtext::wrap() { QString componentStr = "import Qt 4.6\nText { wrap: true; width: 300; text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -192,7 +192,7 @@ void tst_qfxtext::wrap() { QString componentStr = "import Qt 4.6\nText { wrap: true; width: 300; text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -209,7 +209,7 @@ void tst_qfxtext::elide() { QmlComponent textComponent(&engine, ("import Qt 4.6\nText { text: \"\"; "+elide+" width: 300 }").toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -218,7 +218,7 @@ void tst_qfxtext::elide() { QString componentStr = "import Qt 4.6\nText { "+elide+" width: 300; text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -228,7 +228,7 @@ void tst_qfxtext::elide() { QString componentStr = "import Qt 4.6\nText { "+elide+" width: 300; text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->width(), 300.); } @@ -246,7 +246,7 @@ void tst_qfxtext::horizontalAlignment() { QString componentStr = "import Qt 4.6\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE((int)textObject->hAlign(), (int)horizontalAlignmentments.at(j)); } @@ -258,7 +258,7 @@ void tst_qfxtext::horizontalAlignment() { QString componentStr = "import Qt 4.6\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE((int)textObject->hAlign(), (int)horizontalAlignmentments.at(j)); } @@ -276,7 +276,7 @@ void tst_qfxtext::verticalAlignment() { QString componentStr = "import Qt 4.6\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE((int)textObject->vAlign(), (int)verticalAlignmentments.at(j)); } @@ -288,7 +288,7 @@ void tst_qfxtext::verticalAlignment() { QString componentStr = "import Qt 4.6\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE((int)textObject->vAlign(), (int)verticalAlignmentments.at(j)); } @@ -302,7 +302,7 @@ void tst_qfxtext::font() { QString componentStr = "import Qt 4.6\nText { font.pointSize: 40; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->font().pointSize(), 40); QCOMPARE(textObject->font().bold(), false); @@ -312,7 +312,7 @@ void tst_qfxtext::font() { QString componentStr = "import Qt 4.6\nText { font.bold: true; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->font().bold(), true); QCOMPARE(textObject->font().italic(), false); @@ -321,7 +321,7 @@ void tst_qfxtext::font() { QString componentStr = "import Qt 4.6\nText { font.italic: true; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->font().italic(), true); QCOMPARE(textObject->font().bold(), false); @@ -330,7 +330,7 @@ void tst_qfxtext::font() { QString componentStr = "import Qt 4.6\nText { font.family: \"Helvetica\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->font().family(), QString("Helvetica")); QCOMPARE(textObject->font().bold(), false); @@ -340,7 +340,7 @@ void tst_qfxtext::font() { QString componentStr = "import Qt 4.6\nText { font.family: \"\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->font().family(), QString("")); } @@ -353,7 +353,7 @@ void tst_qfxtext::style() { QString componentStr = "import Qt 4.6\nText { style: \"" + styleStrings.at(i) + "\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE((int)textObject->style(), (int)styles.at(i)); QCOMPARE(textObject->styleColor(), QColor()); @@ -367,7 +367,7 @@ void tst_qfxtext::color() { QString componentStr = "import Qt 4.6\nText { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->color(), QColor(colorStrings.at(i))); QCOMPARE(textObject->styleColor(), QColor()); @@ -377,7 +377,7 @@ void tst_qfxtext::color() { QString componentStr = "import Qt 4.6\nText { styleColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->styleColor(), QColor(colorStrings.at(i))); // default color to black? @@ -390,7 +390,7 @@ void tst_qfxtext::color() { QString componentStr = "import Qt 4.6\nText { color: \"" + colorStrings.at(i) + "\"; styleColor: \"" + colorStrings.at(j) + "\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->color(), QColor(colorStrings.at(i))); QCOMPARE(textObject->styleColor(), QColor(colorStrings.at(j))); @@ -403,7 +403,7 @@ void tst_qfxtext::color() QString componentStr = "import Qt 4.6\nText { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://")); - QFxText *textObject = qobject_cast(textComponent.create()); + QmlGraphicsText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->color(), testColor); } diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp index f78e564..0565fd4 100644 --- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp +++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp @@ -97,7 +97,7 @@ void tst_qfxtextedit::text() { { QmlComponent texteditComponent(&engine, "import Qt 4.6\nTextEdit { text: \"\" }", QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->text(), QString("")); @@ -107,7 +107,7 @@ void tst_qfxtextedit::text() { QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + standard.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->text(), standard.at(i)); @@ -117,7 +117,7 @@ void tst_qfxtextedit::text() { QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + richText.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QString actual = textEditObject->text(); @@ -134,7 +134,7 @@ void tst_qfxtextedit::width() // uses Font metrics to find the width for standard and document to find the width for rich { QmlComponent texteditComponent(&engine, "import Qt 4.6\nTextEdit { text: \"\" }", QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), 1.);//+1 for cursor @@ -148,7 +148,7 @@ void tst_qfxtextedit::width() QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + standard.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), qreal(metricWidth + 1 + 3));//+3 is the current way of accounting for space between cursor and last character. @@ -164,7 +164,7 @@ void tst_qfxtextedit::width() QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + richText.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), qreal(documentWidth + 1 + 3)); @@ -176,7 +176,7 @@ void tst_qfxtextedit::wrap() // for specified width and wrap set true { QmlComponent texteditComponent(&engine, "import Qt 4.6\nTextEdit { text: \"\"; wrap: true; width: 300 }", QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), 300.); @@ -186,7 +186,7 @@ void tst_qfxtextedit::wrap() { QString componentStr = "import Qt 4.6\nTextEdit { wrap: true; width: 300; text: \"" + standard.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), 300.); @@ -196,7 +196,7 @@ void tst_qfxtextedit::wrap() { QString componentStr = "import Qt 4.6\nTextEdit { wrap: true; width: 300; text: \"" + richText.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->width(), 300.); @@ -215,7 +215,7 @@ void tst_qfxtextedit::hAlign() { QString componentStr = "import Qt 4.6\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE((int)textEditObject->hAlign(), (int)hAlignments.at(j)); @@ -228,7 +228,7 @@ void tst_qfxtextedit::hAlign() { QString componentStr = "import Qt 4.6\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE((int)textEditObject->hAlign(), (int)hAlignments.at(j)); @@ -247,7 +247,7 @@ void tst_qfxtextedit::vAlign() { QString componentStr = "import Qt 4.6\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE((int)textEditObject->vAlign(), (int)vAlignments.at(j)); @@ -260,7 +260,7 @@ void tst_qfxtextedit::vAlign() { QString componentStr = "import Qt 4.6\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE((int)textEditObject->vAlign(), (int)vAlignments.at(j)); @@ -275,7 +275,7 @@ void tst_qfxtextedit::font() { QString componentStr = "import Qt 4.6\nTextEdit { font.pointSize: 40; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->font().pointSize(), 40); @@ -286,7 +286,7 @@ void tst_qfxtextedit::font() { QString componentStr = "import Qt 4.6\nTextEdit { font.bold: true; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->font().bold(), true); @@ -296,7 +296,7 @@ void tst_qfxtextedit::font() { QString componentStr = "import Qt 4.6\nTextEdit { font.italic: true; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->font().italic(), true); @@ -306,7 +306,7 @@ void tst_qfxtextedit::font() { QString componentStr = "import Qt 4.6\nTextEdit { font.family: \"Helvetica\"; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->font().family(), QString("Helvetica")); @@ -317,7 +317,7 @@ void tst_qfxtextedit::font() { QString componentStr = "import Qt 4.6\nTextEdit { font.family: \"\"; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->font().family(), QString("")); @@ -331,7 +331,7 @@ void tst_qfxtextedit::color() { QString componentStr = "import Qt 4.6\nTextEdit { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); //qDebug() << "textEditObject: " << textEditObject->color() << "vs. " << QColor(colorStrings.at(i)); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->color(), QColor(colorStrings.at(i))); @@ -344,7 +344,7 @@ void tst_qfxtextedit::color() QString componentStr = "import Qt 4.6\nTextEdit { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); QCOMPARE(textEditObject->color(), testColor); @@ -356,7 +356,7 @@ void tst_qfxtextedit::selection() QString testStr = standard[0];//TODO: What should happen for multiline/rich text? QString componentStr = "import Qt 4.6\nTextEdit { text: \""+ testStr +"\"; }"; QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); @@ -437,12 +437,12 @@ void tst_qfxtextedit::cursorDelegate() view->execute(); view->show(); view->setFocus(); - QFxTextEdit *textEditObject = view->root()->findChild("textEditObject"); + QmlGraphicsTextEdit *textEditObject = view->root()->findChild("textEditObject"); QVERIFY(textEditObject != 0); - QVERIFY(textEditObject->findChild("cursorInstance")); + QVERIFY(textEditObject->findChild("cursorInstance")); //Test Delegate gets created textEditObject->setFocus(true); - QFxItem* delegateObject = textEditObject->findChild("cursorInstance"); + QmlGraphicsItem* delegateObject = textEditObject->findChild("cursorInstance"); QVERIFY(delegateObject); //Test Delegate gets moved for(int i=0; i<= textEditObject->text().length(); i++){ @@ -455,7 +455,7 @@ void tst_qfxtextedit::cursorDelegate() QCOMPARE(textEditObject->cursorRect().y(), qRound(delegateObject->y())); //Test Delegate gets deleted textEditObject->setCursorDelegate(0); - QVERIFY(!textEditObject->findChild("cursorInstance")); + QVERIFY(!textEditObject->findChild("cursorInstance")); } /* @@ -471,7 +471,7 @@ void tst_qfxtextedit::navigation() QVERIFY(canvas->root() != 0); - QFxItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); + QmlGraphicsItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); QVERIFY(input != 0); QTRY_VERIFY(input->hasFocus() == true); diff --git a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp index 069574c..e4930f6 100644 --- a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp +++ b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include class tst_qfxtextinput : public QObject @@ -60,7 +60,7 @@ void tst_qfxtextinput::text() { { QmlComponent textinputComponent(&engine, "import Qt 4.6\nTextInput { text: \"\" }", QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->text(), QString("")); @@ -70,7 +70,7 @@ void tst_qfxtextinput::text() { QString componentStr = "import Qt 4.6\nTextInput { text: \"" + standard.at(i) + "\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->text(), standard.at(i)); @@ -83,7 +83,7 @@ void tst_qfxtextinput::width() // uses Font metrics to find the width for standard { QmlComponent textinputComponent(&engine, "import Qt 4.6\nTextInput { text: \"\" }", QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->width(), 1.);//1 for the cursor @@ -97,7 +97,7 @@ void tst_qfxtextinput::width() QString componentStr = "import Qt 4.6\nTextInput { text: \"" + standard.at(i) + "\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->width(), qreal(metricWidth) + 1.);//1 for the cursor @@ -110,7 +110,7 @@ void tst_qfxtextinput::font() { QString componentStr = "import Qt 4.6\nTextInput { font.pointSize: 40; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->font().pointSize(), 40); @@ -121,7 +121,7 @@ void tst_qfxtextinput::font() { QString componentStr = "import Qt 4.6\nTextInput { font.bold: true; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->font().bold(), true); @@ -131,7 +131,7 @@ void tst_qfxtextinput::font() { QString componentStr = "import Qt 4.6\nTextInput { font.italic: true; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->font().italic(), true); @@ -141,7 +141,7 @@ void tst_qfxtextinput::font() { QString componentStr = "import Qt 4.6\nTextInput { font.family: \"Helvetica\"; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->font().family(), QString("Helvetica")); @@ -152,7 +152,7 @@ void tst_qfxtextinput::font() { QString componentStr = "import Qt 4.6\nTextInput { font.family: \"\"; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->font().family(), QString("")); @@ -166,7 +166,7 @@ void tst_qfxtextinput::color() { QString componentStr = "import Qt 4.6\nTextInput { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); //qDebug() << "textinputObject: " << textinputObject->color() << "vs. " << QColor(colorStrings.at(i)); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->color(), QColor(colorStrings.at(i))); @@ -179,7 +179,7 @@ void tst_qfxtextinput::color() QString componentStr = "import Qt 4.6\nTextInput { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QCOMPARE(textinputObject->color(), testColor); @@ -191,7 +191,7 @@ void tst_qfxtextinput::selection() QString testStr = standard[0]; QString componentStr = "import Qt 4.6\nTextInput { text: \""+ testStr +"\"; }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); @@ -270,7 +270,7 @@ void tst_qfxtextinput::maxLength() { QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); QVERIFY(textinputObject->text().isEmpty()); foreach(const QString &str, standard){ @@ -285,7 +285,7 @@ void tst_qfxtextinput::masks() { QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); //TODO: Me @@ -295,7 +295,7 @@ void tst_qfxtextinput::validators() { QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); - QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QmlGraphicsTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); //TODO: Me @@ -314,7 +314,7 @@ void tst_qfxtextinput::navigation() QVERIFY(canvas->root() != 0); - QFxItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); + QmlGraphicsItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); QVERIFY(input != 0); QTRY_VERIFY(input->hasFocus() == true); @@ -334,12 +334,12 @@ void tst_qfxtextinput::cursorDelegate() view->execute(); view->show(); view->setFocus(); - QFxTextInput *textInputObject = view->root()->findChild("textInputObject"); + QmlGraphicsTextInput *textInputObject = view->root()->findChild("textInputObject"); QVERIFY(textInputObject != 0); - QVERIFY(textInputObject->findChild("cursorInstance")); + QVERIFY(textInputObject->findChild("cursorInstance")); //Test Delegate gets created textInputObject->setFocus(true); - QFxItem* delegateObject = textInputObject->findChild("cursorInstance"); + QmlGraphicsItem* delegateObject = textInputObject->findChild("cursorInstance"); QVERIFY(delegateObject); //Test Delegate gets moved for(int i=0; i<= textInputObject->text().length(); i++){ @@ -353,7 +353,7 @@ void tst_qfxtextinput::cursorDelegate() QCOMPARE(textInputObject->cursorRect().y(), qRound(delegateObject->y())); //Test Delegate gets deleted textInputObject->setCursorDelegate(0); - QVERIFY(!textInputObject->findChild("cursorInstance")); + QVERIFY(!textInputObject->findChild("cursorInstance")); } void tst_qfxtextinput::simulateKey(QmlView *view, int key) diff --git a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp index dc124ce..6e3336c 100644 --- a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp +++ b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp @@ -68,7 +68,7 @@ void tst_qfxwebview::testBasicProperties() checkNoErrors(component); QWebSettings::enablePersistentStorage(tmpDir()); - QFxWebView *wv = qobject_cast(component.create()); + QmlGraphicsWebView *wv = qobject_cast(component.create()); QVERIFY(wv != 0); QTRY_COMPARE(wv->progress(), 1.0); QCOMPARE(wv->title(),QString("Basic")); @@ -87,7 +87,7 @@ void tst_qfxwebview::testBasicProperties() QCOMPARE(wv->preferredWidth(), 0); QCOMPARE(wv->zoomFactor(), 1.0); QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/basic.html")); - QCOMPARE(wv->status(), QFxWebView::Ready); + QCOMPARE(wv->status(), QmlGraphicsWebView::Ready); QVERIFY(wv->reloadAction()); QVERIFY(wv->reloadAction()->isEnabled()); QVERIFY(wv->backAction()); diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp index 6494c40..e2a4142 100644 --- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp +++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp @@ -947,11 +947,11 @@ void tst_qmllanguage::importsLocal_data() QTest::newRow("local import") << "import \"subdir\"\n" // QT-613 "Test {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("local import as") << "import \"subdir\" as T\n" "T.Test {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("wrong local import as") << "import \"subdir\" as T\n" "Test {}" @@ -979,9 +979,9 @@ void tst_qmllanguage::importsRemote_data() + QtNetworkSettings::serverName() + "/qtest/declarative/qmllanguage"; - QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QFxRect"; - QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QFxText"; - QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QFxImage"; + QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QmlGraphicsRect"; + QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QmlGraphicsText"; + QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QmlGraphicsImage"; } void tst_qmllanguage::importsRemote() @@ -1002,11 +1002,11 @@ void tst_qmllanguage::importsInstalled_data() QTest::newRow("installed import 1") << "import com.nokia.installedtest 1.0\n" "InstalledTest {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("installed import 2") << "import com.nokia.installedtest 1.4\n" "InstalledTest {}" - << "QFxText"; + << "QmlGraphicsText"; QTest::newRow("installed import visibility") // QT-614 << "import com.nokia.installedtest 1.4\n" "PrivateType {}" @@ -1030,36 +1030,36 @@ void tst_qmllanguage::importsOrder_data() "import com.nokia.installedtest 1.0\n" "import com.nokia.installedtest 1.4\n" "InstalledTest {}" - << "QFxText"; + << "QmlGraphicsText"; QTest::newRow("installed import overrides 2") << "import com.nokia.installedtest 1.4\n" "import com.nokia.installedtest 1.0\n" "InstalledTest {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("installed import re-overrides 1") << "import com.nokia.installedtest 1.4\n" "import com.nokia.installedtest 1.0\n" "import com.nokia.installedtest 1.4\n" "InstalledTest {}" - << "QFxText"; + << "QmlGraphicsText"; QTest::newRow("installed import re-overrides 2") << "import com.nokia.installedtest 1.4\n" "import com.nokia.installedtest 1.0\n" "import com.nokia.installedtest 1.4\n" "import com.nokia.installedtest 1.0\n" "InstalledTest {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("installed import versus builtin 1") << "import com.nokia.installedtest 1.5\n" "import Qt 4.6\n" "Rectangle {}" - << "QFxRect"; + << "QmlGraphicsRect"; QTest::newRow("installed import versus builtin 2") << "import Qt 4.6\n" "import com.nokia.installedtest 1.5\n" "Rectangle {}" - << "QFxText"; + << "QmlGraphicsText"; QTest::newRow("namespaces cannot be overridden by types 1") << "import Qt 4.6 as Rectangle\n" "import com.nokia.installedtest 1.5\n" @@ -1069,7 +1069,7 @@ void tst_qmllanguage::importsOrder_data() "import Qt 4.6 as Rectangle\n" "import com.nokia.installedtest 1.5\n" "Rectangle.Image {}" - << "QFxImage"; + << "QmlGraphicsImage"; } void tst_qmllanguage::importsOrder() diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp index 7d3cc43..d11771c 100644 --- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp +++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp @@ -79,7 +79,7 @@ void tst_QmlPropertyMap::changed() QmlComponent component(&engine, "import Qt 4.6\nText { text: { testdata.key1 = 'Hello World'; 'X' } }", QUrl("file://")); QVERIFY(component.isReady()); - QFxText *txt = qobject_cast(component.create()); + QmlGraphicsText *txt = qobject_cast(component.create()); QVERIFY(txt); QCOMPARE(txt->text(), QString('X')); QCOMPARE(spy.count(), 1); diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp index 68007a6..0622028 100644 --- a/tests/auto/declarative/repeater/tst_repeater.cpp +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -5,11 +5,11 @@ #include #include -class tst_QFxRepeater : public QObject +class tst_QmlGraphicsRepeater : public QObject { Q_OBJECT public: - tst_QFxRepeater(); + tst_QmlGraphicsRepeater(); private slots: void stringList(); @@ -20,7 +20,7 @@ private: T *findItem(QObject *parent, const QString &id); }; -tst_QFxRepeater::tst_QFxRepeater() +tst_QmlGraphicsRepeater::tst_QmlGraphicsRepeater() { } @@ -29,7 +29,7 @@ The Repeater element creates children at its own position in its parent's stacking order. In this test we insert a repeater between two other Text elements to test this. */ -void tst_QFxRepeater::stringList() +void tst_QmlGraphicsRepeater::stringList() { QmlView *canvas = createView(SRCDIR "/data/repeater.qml"); @@ -45,10 +45,10 @@ void tst_QFxRepeater::stringList() canvas->execute(); qApp->processEvents(); - QFxRepeater *repeater = findItem(canvas->root(), "repeater"); + QmlGraphicsRepeater *repeater = findItem(canvas->root(), "repeater"); QVERIFY(repeater != 0); - QFxItem *container = findItem(canvas->root(), "container"); + QmlGraphicsItem *container = findItem(canvas->root(), "container"); QVERIFY(container != 0); QCOMPARE(container->childItems().count(), data.count() + 3); @@ -57,21 +57,21 @@ void tst_QFxRepeater::stringList() for (int i = 0; i < container->childItems().count(); ++i) { if (i == 0) { - QFxText *name = qobject_cast(container->childItems().at(i)); + QmlGraphicsText *name = qobject_cast(container->childItems().at(i)); QVERIFY(name != 0); QCOMPARE(name->text(), QLatin1String("Zero")); } else if (i == container->childItems().count() - 2) { // The repeater itself - QFxRepeater *rep = qobject_cast(container->childItems().at(i)); + QmlGraphicsRepeater *rep = qobject_cast(container->childItems().at(i)); QCOMPARE(rep, repeater); saw_repeater = true; continue; } else if (i == container->childItems().count() - 1) { - QFxText *name = qobject_cast(container->childItems().at(i)); + QmlGraphicsText *name = qobject_cast(container->childItems().at(i)); QVERIFY(name != 0); QCOMPARE(name->text(), QLatin1String("Last")); } else { - QFxText *name = qobject_cast(container->childItems().at(i)); + QmlGraphicsText *name = qobject_cast(container->childItems().at(i)); QVERIFY(name != 0); QCOMPARE(name->text(), data.at(i-1)); } @@ -82,7 +82,7 @@ void tst_QFxRepeater::stringList() } -QmlView *tst_QFxRepeater::createView(const QString &filename) +QmlView *tst_QmlGraphicsRepeater::createView(const QString &filename) { QmlView *canvas = new QmlView(0); canvas->setFixedSize(240,320); @@ -96,13 +96,13 @@ QmlView *tst_QFxRepeater::createView(const QString &filename) } template -T *tst_QFxRepeater::findItem(QObject *parent, const QString &objectName) +T *tst_QmlGraphicsRepeater::findItem(QObject *parent, const QString &objectName) { const QMetaObject &mo = T::staticMetaObject; if (mo.cast(parent) && (objectName.isEmpty() || parent->objectName() == objectName)) return static_cast(parent); for (int i = 0; i < parent->children().count(); ++i) { - QFxItem *item = findItem(parent->children().at(i), objectName); + QmlGraphicsItem *item = findItem(parent->children().at(i), objectName); if (item) return static_cast(item); } @@ -110,6 +110,6 @@ T *tst_QFxRepeater::findItem(QObject *parent, const QString &objectName) return 0; } -QTEST_MAIN(tst_QFxRepeater) +QTEST_MAIN(tst_QmlGraphicsRepeater) #include "tst_repeater.moc" diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp index 0ebdccd..e938ee4 100644 --- a/tests/auto/declarative/sql/tst_sql.cpp +++ b/tests/auto/declarative/sql/tst_sql.cpp @@ -157,7 +157,7 @@ void tst_sql::testQml() engine->setOfflineStoragePath(dbDir()); QmlComponent component(engine, qml.toUtf8(), QUrl::fromLocalFile(SRCDIR "/empty.qml")); // just a file for relative local imports - QFxText *text = qobject_cast(component.create()); + QmlGraphicsText *text = qobject_cast(component.create()); QVERIFY(text != 0); QCOMPARE(text->text(),result); QCOMPARE(QDir(dbDir()+"/Databases").entryInfoList(QDir::Files|QDir::NoDotAndDotDot).count(), databases*2); // *2 = .ini file + .sqlite file diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp index b2532a2..91b6d0b 100644 --- a/tests/auto/declarative/states/tst_states.cpp +++ b/tests/auto/declarative/states/tst_states.cpp @@ -22,7 +22,7 @@ void tst_states::basicChanges() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicChanges.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -36,7 +36,7 @@ void tst_states::basicChanges() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicChanges2.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -56,7 +56,7 @@ void tst_states::basicChanges() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicChanges3.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -92,7 +92,7 @@ void tst_states::basicExtension() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicExtension.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -125,7 +125,7 @@ void tst_states::basicExtension() { QmlComponent rectComponent(&engine, SRCDIR "/data/fakeExtension.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -156,7 +156,7 @@ void tst_states::basicBinding() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicBinding.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -183,7 +183,7 @@ void tst_states::basicBinding() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicBinding2.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -213,7 +213,7 @@ void tst_states::basicBinding() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicBinding3.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -237,7 +237,7 @@ void tst_states::basicBinding() { QmlComponent rectComponent(&engine, SRCDIR "/data/basicBinding4.qml"); - QFxRect *rect = qobject_cast(rectComponent.create()); + QmlGraphicsRect *rect = qobject_cast(rectComponent.create()); QVERIFY(rect != 0); QCOMPARE(rect->color(),QColor("red")); @@ -263,7 +263,7 @@ void tst_states::basicBinding() } } -class MyRect : public QFxRect +class MyRect : public QmlGraphicsRect { Q_OBJECT public: @@ -303,7 +303,7 @@ void tst_states::signalOverride() rect->doSomething(); QCOMPARE(rect->color(),QColor("blue")); - QFxRect *innerRect = qobject_cast(rect->findChild("extendedRect")); + QmlGraphicsRect *innerRect = qobject_cast(rect->findChild("extendedRect")); innerRect->setState("green"); rect->doSomething(); diff --git a/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp b/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp index ae6f9a3..b115445 100644 --- a/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp +++ b/tests/benchmarks/qmlpainting/tst_qmlpainting.cpp @@ -327,7 +327,7 @@ void tst_QmlPainting::drawTransformedImageRoundedRect() surface.save("ti.png"); } -//code from QFxRect for drawing rounded rects +//code from QmlGraphicsRect for drawing rounded rects void tst_QmlPainting::drawScaleGridRoundedRect() { //setup image @@ -422,7 +422,7 @@ void tst_QmlPainting::drawScaledScaleGridRoundedRect_data() // QTest::newRow(QString(QLatin1String("scale=%1; imagetype=ARGB8565_Pre")).arg(i).toLatin1()) << i << (int)QImage::Format_ARGB8565_Premultiplied; } -//code from QFxRect for drawing rounded rects +//code from QmlGraphicsRect for drawing rounded rects void tst_QmlPainting::drawScaledScaleGridRoundedRect() { QFETCH(float, scale); @@ -522,7 +522,7 @@ void tst_QmlPainting::drawTransformedScaleGridRoundedRect_data() } -//code from QFxRect for drawing rounded rects +//code from QmlGraphicsRect for drawing rounded rects void tst_QmlPainting::drawTransformedScaleGridRoundedRect() { QFETCH(QTransform, transform); diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 18c7916..c5ea308 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4276,7 +4276,7 @@ void HtmlGenerator::generateQmlInherits(const QmlClassNode* cn, } /*! - Output the "[Xxx instantiates the C++ class QFxXxx]" + Output the "[Xxx instantiates the C++ class QmlGraphicsXxx]" line for the QML element, if there should be one. If there is no class node, or if the class node status @@ -4306,7 +4306,7 @@ void HtmlGenerator::generateQmlInstantiates(const QmlClassNode* qcn, } /*! - Output the "[QFxXxx is instantiated by QML element Xxx]" + Output the "[QmlGraphicsXxx is instantiated by QML element Xxx]" line for the class, if there should be one. If there is no QML element, or if the class node status diff --git a/tools/qmlviewer/qfxtester.cpp b/tools/qmlviewer/qfxtester.cpp index 0ccc9c0..a105701 100644 --- a/tools/qmlviewer/qfxtester.cpp +++ b/tools/qmlviewer/qfxtester.cpp @@ -24,12 +24,12 @@ QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, VisualTest, QFxVisualTest); -QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Frame, QFxVisualTestFrame); -QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Mouse, QFxVisualTestMouse); -QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Key, QFxVisualTestKey); +QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, VisualTest, QmlGraphicsVisualTest); +QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Frame, QmlGraphicsVisualTestFrame); +QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Mouse, QmlGraphicsVisualTestMouse); +QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Key, QmlGraphicsVisualTestKey); -QFxTester::QFxTester(const QString &script, QmlViewer::ScriptOptions opts, +QmlGraphicsTester::QmlGraphicsTester(const QString &script, QmlViewer::ScriptOptions opts, QmlView *parent) : QAbstractAnimation(parent), m_script(script), m_view(parent), filterEvents(true), options(opts), testscript(0), hasCompleted(false), hasFailed(false) @@ -42,7 +42,7 @@ QFxTester::QFxTester(const QString &script, QmlViewer::ScriptOptions opts, start(); } -QFxTester::~QFxTester() +QmlGraphicsTester::~QmlGraphicsTester() { if (!hasFailed && options & QmlViewer::Record && @@ -50,26 +50,26 @@ QFxTester::~QFxTester() save(); } -int QFxTester::duration() const +int QmlGraphicsTester::duration() const { return -1; } -void QFxTester::addMouseEvent(Destination dest, QMouseEvent *me) +void QmlGraphicsTester::addMouseEvent(Destination dest, QMouseEvent *me) { MouseEvent e(me); e.destination = dest; m_mouseEvents << e; } -void QFxTester::addKeyEvent(Destination dest, QKeyEvent *ke) +void QmlGraphicsTester::addKeyEvent(Destination dest, QKeyEvent *ke) { KeyEvent e(ke); e.destination = dest; m_keyEvents << e; } -bool QFxTester::eventFilter(QObject *o, QEvent *e) +bool QmlGraphicsTester::eventFilter(QObject *o, QEvent *e) { if (!filterEvents) return false; @@ -100,7 +100,7 @@ bool QFxTester::eventFilter(QObject *o, QEvent *e) return false; } -void QFxTester::executefailure() +void QmlGraphicsTester::executefailure() { hasFailed = true; @@ -108,7 +108,7 @@ void QFxTester::executefailure() exit(-1); } -void QFxTester::imagefailure() +void QmlGraphicsTester::imagefailure() { hasFailed = true; @@ -116,7 +116,7 @@ void QFxTester::imagefailure() exit(-1); } -void QFxTester::complete() +void QmlGraphicsTester::complete() { if (options & QmlViewer::ExitOnComplete) QApplication::exit(hasFailed?-1:0); @@ -129,17 +129,17 @@ void QFxTester::complete() qWarning("Script playback complete"); } -void QFxTester::run() +void QmlGraphicsTester::run() { QmlComponent c(m_view->engine(), m_script + QLatin1String(".qml")); - testscript = qobject_cast(c.create()); + testscript = qobject_cast(c.create()); if (testscript) testscript->setParent(this); else executefailure(); testscriptidx = 0; } -void QFxTester::save() +void QmlGraphicsTester::save() { QString filename = m_script + QLatin1String(".qml"); QFileInfo filenameInfo(filename); @@ -206,9 +206,9 @@ void QFxTester::save() file.close(); } -void QFxTester::updateCurrentTime(int msec) +void QmlGraphicsTester::updateCurrentTime(int msec) { - QFxItemPrivate::setConsistentTime(msec); + QmlGraphicsItemPrivate::setConsistentTime(msec); QImage img(m_view->width(), m_view->height(), QImage::Format_RGB32); @@ -268,17 +268,17 @@ void QFxTester::updateCurrentTime(int msec) QObject *event = testscript->event(testscriptidx); - if (QFxVisualTestFrame *frame = qobject_cast(event)) { + if (QmlGraphicsVisualTestFrame *frame = qobject_cast(event)) { if (frame->msec() < msec) { if (options & QmlViewer::TestImages) { - qWarning() << "QFxTester: Extra frame. Seen:" + qWarning() << "QmlGraphicsTester: Extra frame. Seen:" << msec << "Expected:" << frame->msec(); imagefailure(); } } else if (frame->msec() == msec) { if (frame->hash().toUtf8() != fe.hash.toHex()) { if (options & QmlViewer::TestImages) { - qWarning() << "QFxTester: Mismatched frame hash. Seen:" + qWarning() << "QmlGraphicsTester: Mismatched frame hash. Seen:" << fe.hash.toHex() << "Expected:" << frame->hash().toUtf8(); imagefailure(); @@ -292,13 +292,13 @@ void QFxTester::updateCurrentTime(int msec) QImage goodImage(frame->image().toLocalFile()); if (goodImage != img) { QString reject(frame->image().toLocalFile() + ".reject.png"); - qWarning() << "QFxTester: Image mismatch. Reject saved to:" + qWarning() << "QmlGraphicsTester: Image mismatch. Reject saved to:" << reject; img.save(reject); imagefailure(); } } - } else if (QFxVisualTestMouse *mouse = qobject_cast(event)) { + } else if (QmlGraphicsVisualTestMouse *mouse = qobject_cast(event)) { QPoint pos(mouse->x(), mouse->y()); QPoint globalPos = m_view->mapToGlobal(QPoint(0, 0)) + pos; QMouseEvent event((QEvent::Type)mouse->type(), pos, globalPos, (Qt::MouseButton)mouse->button(), (Qt::MouseButtons)mouse->buttons(), (Qt::KeyboardModifiers)mouse->modifiers()); @@ -313,7 +313,7 @@ void QFxTester::updateCurrentTime(int msec) me.destination = ViewPort; } m_savedMouseEvents.append(me); - } else if (QFxVisualTestKey *key = qobject_cast(event)) { + } else if (QmlGraphicsVisualTestKey *key = qobject_cast(event)) { QKeyEvent event((QEvent::Type)key->type(), key->key(), (Qt::KeyboardModifiers)key->modifiers(), QString::fromUtf8(QByteArray::fromHex(key->text().toUtf8())), key->autorep(), key->count()); diff --git a/tools/qmlviewer/qfxtester.h b/tools/qmlviewer/qfxtester.h index 52987db..c3a6f01 100644 --- a/tools/qmlviewer/qfxtester.h +++ b/tools/qmlviewer/qfxtester.h @@ -21,13 +21,13 @@ QT_BEGIN_NAMESPACE -class QFxVisualTest : public QObject +class QmlGraphicsVisualTest : public QObject { Q_OBJECT Q_PROPERTY(QList* events READ events CONSTANT) Q_CLASSINFO("DefaultProperty", "events") public: - QFxVisualTest() {} + QmlGraphicsVisualTest() {} QList *events() { return &m_events; } @@ -37,16 +37,16 @@ public: private: QList m_events; }; -QML_DECLARE_TYPE(QFxVisualTest) +QML_DECLARE_TYPE(QmlGraphicsVisualTest) -class QFxVisualTestFrame : public QObject +class QmlGraphicsVisualTestFrame : public QObject { Q_OBJECT Q_PROPERTY(int msec READ msec WRITE setMsec) Q_PROPERTY(QString hash READ hash WRITE setHash) Q_PROPERTY(QUrl image READ image WRITE setImage) public: - QFxVisualTestFrame() : m_msec(-1) {} + QmlGraphicsVisualTestFrame() : m_msec(-1) {} int msec() const { return m_msec; } void setMsec(int m) { m_msec = m; } @@ -62,9 +62,9 @@ private: QString m_hash; QUrl m_image; }; -QML_DECLARE_TYPE(QFxVisualTestFrame) +QML_DECLARE_TYPE(QmlGraphicsVisualTestFrame) -class QFxVisualTestMouse : public QObject +class QmlGraphicsVisualTestMouse : public QObject { Q_OBJECT Q_PROPERTY(int type READ type WRITE setType) @@ -75,7 +75,7 @@ class QFxVisualTestMouse : public QObject Q_PROPERTY(int modifiers READ modifiers WRITE setModifiers) Q_PROPERTY(bool sendToViewport READ sendToViewport WRITE setSendToViewport) public: - QFxVisualTestMouse() : m_type(0), m_button(0), m_buttons(0), m_x(0), m_y(0), m_modifiers(0), m_viewport(false) {} + QmlGraphicsVisualTestMouse() : m_type(0), m_button(0), m_buttons(0), m_x(0), m_y(0), m_modifiers(0), m_viewport(false) {} int type() const { return m_type; } void setType(int t) { m_type = t; } @@ -106,9 +106,9 @@ private: int m_modifiers; bool m_viewport; }; -QML_DECLARE_TYPE(QFxVisualTestMouse) +QML_DECLARE_TYPE(QmlGraphicsVisualTestMouse) -class QFxVisualTestKey : public QObject +class QmlGraphicsVisualTestKey : public QObject { Q_OBJECT Q_PROPERTY(int type READ type WRITE setType) @@ -119,7 +119,7 @@ class QFxVisualTestKey : public QObject Q_PROPERTY(int count READ count WRITE setCount) Q_PROPERTY(bool sendToViewport READ sendToViewport WRITE setSendToViewport) public: - QFxVisualTestKey() : m_type(0), m_key(0), m_modifiers(0), m_autorep(false), m_count(0), m_viewport(false) {} + QmlGraphicsVisualTestKey() : m_type(0), m_key(0), m_modifiers(0), m_autorep(false), m_count(0), m_viewport(false) {} int type() const { return m_type; } void setType(int t) { m_type = t; } @@ -150,13 +150,13 @@ private: int m_count; bool m_viewport; }; -QML_DECLARE_TYPE(QFxVisualTestKey) +QML_DECLARE_TYPE(QmlGraphicsVisualTestKey) -class QFxTester : public QAbstractAnimation +class QmlGraphicsTester : public QAbstractAnimation { public: - QFxTester(const QString &script, QmlViewer::ScriptOptions options, QmlView *parent); - ~QFxTester(); + QmlGraphicsTester(const QString &script, QmlViewer::ScriptOptions options, QmlView *parent); + ~QmlGraphicsTester(); virtual int duration() const; @@ -222,7 +222,7 @@ private: QmlViewer::ScriptOptions options; int testscriptidx; - QFxVisualTest *testscript; + QmlGraphicsVisualTest *testscript; bool hasCompleted; bool hasFailed; diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp index 3aeb0da..93470eb 100644 --- a/tools/qmlviewer/qmlviewer.cpp +++ b/tools/qmlviewer/qmlviewer.cpp @@ -637,7 +637,7 @@ void QmlViewer::openQml(const QString& file_or_url) setWindowTitle(tr("%1 - Qt Declarative UI Viewer").arg(file_or_url)); if (!m_script.isEmpty()) - tester = new QFxTester(m_script, m_scriptOptions, canvas); + tester = new QmlGraphicsTester(m_script, m_scriptOptions, canvas); canvas->reset(); diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h index e1f53f9..bc8fe11 100644 --- a/tools/qmlviewer/qmlviewer.h +++ b/tools/qmlviewer/qmlviewer.h @@ -23,10 +23,10 @@ QT_BEGIN_NAMESPACE class QmlView; class PreviewDeviceSkin; -class QFxTestEngine; +class QmlGraphicsTestEngine; class QProcess; class RecordingDialog; -class QFxTester; +class QmlGraphicsTester; class QmlViewer : public QWidget { @@ -126,7 +126,7 @@ private: QString m_script; ScriptOptions m_scriptOptions; - QFxTester *tester; + QmlGraphicsTester *tester; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QmlViewer::ScriptOptions) -- cgit v0.12 From d6a5e635a1605820571f83b375377d7d5dcb8968 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 14:17:51 +1000 Subject: fix parallax example --- examples/declarative/clocks/content/Clock.qml | 6 +++--- examples/declarative/parallax/parallax.qml | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/examples/declarative/clocks/content/Clock.qml b/examples/declarative/clocks/content/Clock.qml index 4e9984f..2aac5f1 100644 --- a/examples/declarative/clocks/content/Clock.qml +++ b/examples/declarative/clocks/content/Clock.qml @@ -12,13 +12,13 @@ Item { function timeChanged() { var date = new Date; - hours = date.getUTCHours() + Math.floor(clock.shift) - minutes = date.getUTCMinutes() + ((clock.shift % 1) * 60); + hours = shift ? date.getUTCHours() + Math.floor(clock.shift) : date.getHours() + minutes = shift ? date.getUTCMinutes() + ((clock.shift % 1) * 60) : date.getMinutes() seconds = date.getUTCSeconds(); } Timer { - interval: 1000; running: true; repeat: true; triggeredOnStart: true + interval: 100; running: true; repeat: true; triggeredOnStart: true onTriggered: clock.timeChanged() } diff --git a/examples/declarative/parallax/parallax.qml b/examples/declarative/parallax/parallax.qml index 52bd210..e3a7d93 100644 --- a/examples/declarative/parallax/parallax.qml +++ b/examples/declarative/parallax/parallax.qml @@ -1,5 +1,5 @@ import Qt 4.6 -import "../clock" +import "../clocks/content" Rectangle { id: root @@ -17,9 +17,7 @@ Rectangle { width: 320 height: 480 - Clock { - anchors.centerIn: parent - } + Clock { anchors.centerIn: parent } } Item { -- cgit v0.12 From edc12380b662978a56622ed37f6e260b056646d3 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 14:25:28 +1000 Subject: fix twitter example --- demos/declarative/twitter/content/FatDelegate.qml | 4 ++-- demos/declarative/twitter/twitter.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/demos/declarative/twitter/content/FatDelegate.qml b/demos/declarative/twitter/content/FatDelegate.qml index 194ffb3..4df251f 100644 --- a/demos/declarative/twitter/content/FatDelegate.qml +++ b/demos/declarative/twitter/content/FatDelegate.qml @@ -15,8 +15,8 @@ Component { } } function addTags(str){ - ret = str.replace(/@[a-zA-Z0-9_]+/g, '$&');//click to jump to user? - ret2 = ret.replace(/http:\/\/[^ \n\t]+/g, '$&');//surrounds http links with html link tags + var ret = str.replace(/@[a-zA-Z0-9_]+/g, '$&');//click to jump to user? + var ret2 = ret.replace(/http:\/\/[^ \n\t]+/g, '$&');//surrounds http links with html link tags return ret2; } } diff --git a/demos/declarative/twitter/twitter.qml b/demos/declarative/twitter/twitter.qml index fdeb839..23ca774 100644 --- a/demos/declarative/twitter/twitter.qml +++ b/demos/declarative/twitter/twitter.qml @@ -29,7 +29,7 @@ Item { id: background anchors.fill: parent; color: "#343434"; - Image { source: "mobile/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } + Image { source: "../flickr/mobile/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } Twitter.RssModel { id: rssModel } Common.Loading { anchors.centerIn: parent; visible: rssModel.status==XmlListModel.Loading && state!='unauthed'} -- cgit v0.12 From 44a0c19eae2099e6cdb44825123a4b8ee9a5bf20 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 15:00:02 +1000 Subject: Rename qfx files to qmlgraphics files --- demos/declarative/minehunt/main.cpp | 2 +- src/declarative/extra/extra.pri | 14 +- src/declarative/extra/qfxanimatedimageitem.cpp | 256 -- src/declarative/extra/qfxanimatedimageitem.h | 106 - src/declarative/extra/qfxanimatedimageitem_p.h | 81 - src/declarative/extra/qfxintegermodel.cpp | 126 - src/declarative/extra/qfxintegermodel.h | 86 - src/declarative/extra/qfxparticles.cpp | 1134 -------- src/declarative/extra/qfxparticles.h | 230 -- .../extra/qmlgraphicsanimatedimageitem.cpp | 256 ++ .../extra/qmlgraphicsanimatedimageitem.h | 106 + .../extra/qmlgraphicsanimatedimageitem_p.h | 81 + src/declarative/extra/qmlgraphicsintegermodel.cpp | 126 + src/declarative/extra/qmlgraphicsintegermodel.h | 86 + src/declarative/extra/qmlgraphicsparticles.cpp | 1134 ++++++++ src/declarative/extra/qmlgraphicsparticles.h | 230 ++ src/declarative/fx/fx.pri | 152 +- src/declarative/fx/qfxanchors.cpp | 962 ------- src/declarative/fx/qfxanchors.h | 180 -- src/declarative/fx/qfxanchors_p.h | 160 -- src/declarative/fx/qfxborderimage.cpp | 411 --- src/declarative/fx/qfxborderimage.h | 105 - src/declarative/fx/qfxborderimage_p.h | 97 - src/declarative/fx/qfxeffects.cpp | 238 -- src/declarative/fx/qfxevents.cpp | 195 -- src/declarative/fx/qfxevents_p.h | 137 - src/declarative/fx/qfxflickable.cpp | 1283 --------- src/declarative/fx/qfxflickable.h | 203 -- src/declarative/fx/qfxflickable_p.h | 156 -- src/declarative/fx/qfxflipable.cpp | 236 -- src/declarative/fx/qfxflipable.h | 94 - src/declarative/fx/qfxfocuspanel.cpp | 89 - src/declarative/fx/qfxfocuspanel.h | 77 - src/declarative/fx/qfxfocusscope.cpp | 72 - src/declarative/fx/qfxfocusscope.h | 68 - src/declarative/fx/qfxgraphicsobjectcontainer.cpp | 230 -- src/declarative/fx/qfxgraphicsobjectcontainer.h | 90 - src/declarative/fx/qfxgridview.cpp | 1585 ----------- src/declarative/fx/qfxgridview.h | 157 -- src/declarative/fx/qfximage.cpp | 301 -- src/declarative/fx/qfximage.h | 90 - src/declarative/fx/qfximage_p.h | 77 - src/declarative/fx/qfximagebase.cpp | 174 -- src/declarative/fx/qfximagebase.h | 90 - src/declarative/fx/qfximagebase_p.h | 83 - src/declarative/fx/qfxitem.cpp | 2921 -------------------- src/declarative/fx/qfxitem.h | 238 -- src/declarative/fx/qfxitem_p.h | 245 -- src/declarative/fx/qfxlayoutitem.cpp | 106 - src/declarative/fx/qfxlayoutitem.h | 93 - src/declarative/fx/qfxlistview.cpp | 2035 -------------- src/declarative/fx/qfxlistview.h | 186 -- src/declarative/fx/qfxloader.cpp | 390 --- src/declarative/fx/qfxloader.h | 107 - src/declarative/fx/qfxloader_p.h | 82 - src/declarative/fx/qfxmouseregion.cpp | 649 ----- src/declarative/fx/qfxmouseregion.h | 180 -- src/declarative/fx/qfxmouseregion_p.h | 114 - src/declarative/fx/qfxpainteditem.cpp | 387 --- src/declarative/fx/qfxpainteditem.h | 105 - src/declarative/fx/qfxpainteditem_p.h | 88 - src/declarative/fx/qfxpath.cpp | 839 ------ src/declarative/fx/qfxpath.h | 259 -- src/declarative/fx/qfxpath_p.h | 79 - src/declarative/fx/qfxpathview.cpp | 913 ------ src/declarative/fx/qfxpathview.h | 138 - src/declarative/fx/qfxpathview_p.h | 151 - src/declarative/fx/qfxpixmapcache.cpp | 282 -- src/declarative/fx/qfxpixmapcache.h | 72 - src/declarative/fx/qfxpositioners.cpp | 921 ------ src/declarative/fx/qfxpositioners.h | 167 -- src/declarative/fx/qfxpositioners_p.h | 105 - src/declarative/fx/qfxrect.cpp | 475 ---- src/declarative/fx/qfxrect.h | 189 -- src/declarative/fx/qfxrect_p.h | 109 - src/declarative/fx/qfxrepeater.cpp | 320 --- src/declarative/fx/qfxrepeater.h | 103 - src/declarative/fx/qfxrepeater_p.h | 81 - src/declarative/fx/qfxscalegrid.cpp | 212 -- src/declarative/fx/qfxscalegrid_p.h | 133 - src/declarative/fx/qfxtext.cpp | 840 ------ src/declarative/fx/qfxtext.h | 151 - src/declarative/fx/qfxtext_p.h | 113 - src/declarative/fx/qfxtextedit.cpp | 1085 -------- src/declarative/fx/qfxtextedit.h | 234 -- src/declarative/fx/qfxtextedit_p.h | 113 - src/declarative/fx/qfxtextinput.cpp | 777 ------ src/declarative/fx/qfxtextinput.h | 209 -- src/declarative/fx/qfxtextinput_p.h | 109 - src/declarative/fx/qfxvisualitemmodel.cpp | 1032 ------- src/declarative/fx/qfxvisualitemmodel.h | 203 -- src/declarative/fx/qfxwebview.cpp | 1388 ---------- src/declarative/fx/qfxwebview.h | 251 -- src/declarative/fx/qmlgraphicsanchors.cpp | 962 +++++++ src/declarative/fx/qmlgraphicsanchors.h | 180 ++ src/declarative/fx/qmlgraphicsanchors_p.h | 160 ++ src/declarative/fx/qmlgraphicsborderimage.cpp | 411 +++ src/declarative/fx/qmlgraphicsborderimage.h | 105 + src/declarative/fx/qmlgraphicsborderimage_p.h | 97 + src/declarative/fx/qmlgraphicseffects.cpp | 238 ++ src/declarative/fx/qmlgraphicsevents.cpp | 195 ++ src/declarative/fx/qmlgraphicsevents_p.h | 137 + src/declarative/fx/qmlgraphicsflickable.cpp | 1283 +++++++++ src/declarative/fx/qmlgraphicsflickable.h | 203 ++ src/declarative/fx/qmlgraphicsflickable_p.h | 156 ++ src/declarative/fx/qmlgraphicsflipable.cpp | 236 ++ src/declarative/fx/qmlgraphicsflipable.h | 94 + src/declarative/fx/qmlgraphicsfocuspanel.cpp | 89 + src/declarative/fx/qmlgraphicsfocuspanel.h | 77 + src/declarative/fx/qmlgraphicsfocusscope.cpp | 72 + src/declarative/fx/qmlgraphicsfocusscope.h | 68 + .../fx/qmlgraphicsgraphicsobjectcontainer.cpp | 230 ++ .../fx/qmlgraphicsgraphicsobjectcontainer.h | 90 + src/declarative/fx/qmlgraphicsgridview.cpp | 1585 +++++++++++ src/declarative/fx/qmlgraphicsgridview.h | 157 ++ src/declarative/fx/qmlgraphicsimage.cpp | 301 ++ src/declarative/fx/qmlgraphicsimage.h | 90 + src/declarative/fx/qmlgraphicsimage_p.h | 77 + src/declarative/fx/qmlgraphicsimagebase.cpp | 174 ++ src/declarative/fx/qmlgraphicsimagebase.h | 90 + src/declarative/fx/qmlgraphicsimagebase_p.h | 83 + src/declarative/fx/qmlgraphicsitem.cpp | 2921 ++++++++++++++++++++ src/declarative/fx/qmlgraphicsitem.h | 238 ++ src/declarative/fx/qmlgraphicsitem_p.h | 245 ++ src/declarative/fx/qmlgraphicslayoutitem.cpp | 106 + src/declarative/fx/qmlgraphicslayoutitem.h | 93 + src/declarative/fx/qmlgraphicslistview.cpp | 2035 ++++++++++++++ src/declarative/fx/qmlgraphicslistview.h | 186 ++ src/declarative/fx/qmlgraphicsloader.cpp | 390 +++ src/declarative/fx/qmlgraphicsloader.h | 107 + src/declarative/fx/qmlgraphicsloader_p.h | 82 + src/declarative/fx/qmlgraphicsmouseregion.cpp | 649 +++++ src/declarative/fx/qmlgraphicsmouseregion.h | 180 ++ src/declarative/fx/qmlgraphicsmouseregion_p.h | 114 + src/declarative/fx/qmlgraphicspainteditem.cpp | 387 +++ src/declarative/fx/qmlgraphicspainteditem.h | 105 + src/declarative/fx/qmlgraphicspainteditem_p.h | 88 + src/declarative/fx/qmlgraphicspath.cpp | 839 ++++++ src/declarative/fx/qmlgraphicspath.h | 259 ++ src/declarative/fx/qmlgraphicspath_p.h | 79 + src/declarative/fx/qmlgraphicspathview.cpp | 913 ++++++ src/declarative/fx/qmlgraphicspathview.h | 138 + src/declarative/fx/qmlgraphicspathview_p.h | 151 + src/declarative/fx/qmlgraphicspixmapcache.cpp | 282 ++ src/declarative/fx/qmlgraphicspixmapcache.h | 72 + src/declarative/fx/qmlgraphicspositioners.cpp | 921 ++++++ src/declarative/fx/qmlgraphicspositioners.h | 167 ++ src/declarative/fx/qmlgraphicspositioners_p.h | 105 + src/declarative/fx/qmlgraphicsrect.cpp | 475 ++++ src/declarative/fx/qmlgraphicsrect.h | 189 ++ src/declarative/fx/qmlgraphicsrect_p.h | 109 + src/declarative/fx/qmlgraphicsrepeater.cpp | 320 +++ src/declarative/fx/qmlgraphicsrepeater.h | 103 + src/declarative/fx/qmlgraphicsrepeater_p.h | 81 + src/declarative/fx/qmlgraphicsscalegrid.cpp | 212 ++ src/declarative/fx/qmlgraphicsscalegrid_p.h | 133 + src/declarative/fx/qmlgraphicstext.cpp | 840 ++++++ src/declarative/fx/qmlgraphicstext.h | 151 + src/declarative/fx/qmlgraphicstext_p.h | 113 + src/declarative/fx/qmlgraphicstextedit.cpp | 1085 ++++++++ src/declarative/fx/qmlgraphicstextedit.h | 234 ++ src/declarative/fx/qmlgraphicstextedit_p.h | 113 + src/declarative/fx/qmlgraphicstextinput.cpp | 777 ++++++ src/declarative/fx/qmlgraphicstextinput.h | 209 ++ src/declarative/fx/qmlgraphicstextinput_p.h | 109 + src/declarative/fx/qmlgraphicsvisualitemmodel.cpp | 1032 +++++++ src/declarative/fx/qmlgraphicsvisualitemmodel.h | 203 ++ src/declarative/fx/qmlgraphicswebview.cpp | 1388 ++++++++++ src/declarative/fx/qmlgraphicswebview.h | 251 ++ src/declarative/util/qmlstateoperations.cpp | 4 +- src/declarative/util/qmlstateoperations.h | 4 +- src/declarative/util/qmlview.cpp | 2 +- tests/auto/declarative/anchors/tst_anchors.cpp | 4 +- .../animatedimage/tst_animatedimage.cpp | 6 +- .../auto/declarative/animations/tst_animations.cpp | 2 +- tests/auto/declarative/behaviors/tst_behaviors.cpp | 2 +- tests/auto/declarative/layouts/tst_layouts.cpp | 2 +- tests/auto/declarative/listview/tst_listview.cpp | 4 +- tests/auto/declarative/pathview/tst_pathview.cpp | 6 +- tests/auto/declarative/qfxloader/qfxloader.pro | 2 +- tests/auto/declarative/qfxloader/tst_qfxloader.cpp | 2 +- .../declarative/qfxpixmapcache/qfxpixmapcache.pro | 2 +- .../qfxpixmapcache/tst_qfxpixmapcache.cpp | 2 +- tests/auto/declarative/qfxtext/qfxtext.pro | 2 +- tests/auto/declarative/qfxtext/tst_qfxtext.cpp | 2 +- tests/auto/declarative/qfxtextedit/qfxtextedit.pro | 2 +- .../declarative/qfxtextedit/tst_qfxtextedit.cpp | 2 +- .../auto/declarative/qfxtextinput/qfxtextinput.pro | 2 +- tests/auto/declarative/qfxwebview/qfxwebview.pro | 2 +- .../auto/declarative/qfxwebview/tst_qfxwebview.cpp | 2 +- .../qmlpropertymap/tst_qmlpropertymap.cpp | 2 +- tests/auto/declarative/repeater/tst_repeater.cpp | 4 +- tests/auto/declarative/sql/tst_sql.cpp | 2 +- tests/auto/declarative/states/tst_states.cpp | 2 +- tools/qmldebugger/standalone/engine.cpp | 2 +- tools/qmlviewer/qfxtester.cpp | 2 +- 196 files changed, 29758 insertions(+), 29758 deletions(-) delete mode 100644 src/declarative/extra/qfxanimatedimageitem.cpp delete mode 100644 src/declarative/extra/qfxanimatedimageitem.h delete mode 100644 src/declarative/extra/qfxanimatedimageitem_p.h delete mode 100644 src/declarative/extra/qfxintegermodel.cpp delete mode 100644 src/declarative/extra/qfxintegermodel.h delete mode 100644 src/declarative/extra/qfxparticles.cpp delete mode 100644 src/declarative/extra/qfxparticles.h create mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem.cpp create mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem.h create mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem_p.h create mode 100644 src/declarative/extra/qmlgraphicsintegermodel.cpp create mode 100644 src/declarative/extra/qmlgraphicsintegermodel.h create mode 100644 src/declarative/extra/qmlgraphicsparticles.cpp create mode 100644 src/declarative/extra/qmlgraphicsparticles.h delete mode 100644 src/declarative/fx/qfxanchors.cpp delete mode 100644 src/declarative/fx/qfxanchors.h delete mode 100644 src/declarative/fx/qfxanchors_p.h delete mode 100644 src/declarative/fx/qfxborderimage.cpp delete mode 100644 src/declarative/fx/qfxborderimage.h delete mode 100644 src/declarative/fx/qfxborderimage_p.h delete mode 100644 src/declarative/fx/qfxeffects.cpp delete mode 100644 src/declarative/fx/qfxevents.cpp delete mode 100644 src/declarative/fx/qfxevents_p.h delete mode 100644 src/declarative/fx/qfxflickable.cpp delete mode 100644 src/declarative/fx/qfxflickable.h delete mode 100644 src/declarative/fx/qfxflickable_p.h delete mode 100644 src/declarative/fx/qfxflipable.cpp delete mode 100644 src/declarative/fx/qfxflipable.h delete mode 100644 src/declarative/fx/qfxfocuspanel.cpp delete mode 100644 src/declarative/fx/qfxfocuspanel.h delete mode 100644 src/declarative/fx/qfxfocusscope.cpp delete mode 100644 src/declarative/fx/qfxfocusscope.h delete mode 100644 src/declarative/fx/qfxgraphicsobjectcontainer.cpp delete mode 100644 src/declarative/fx/qfxgraphicsobjectcontainer.h delete mode 100644 src/declarative/fx/qfxgridview.cpp delete mode 100644 src/declarative/fx/qfxgridview.h delete mode 100644 src/declarative/fx/qfximage.cpp delete mode 100644 src/declarative/fx/qfximage.h delete mode 100644 src/declarative/fx/qfximage_p.h delete mode 100644 src/declarative/fx/qfximagebase.cpp delete mode 100644 src/declarative/fx/qfximagebase.h delete mode 100644 src/declarative/fx/qfximagebase_p.h delete mode 100644 src/declarative/fx/qfxitem.cpp delete mode 100644 src/declarative/fx/qfxitem.h delete mode 100644 src/declarative/fx/qfxitem_p.h delete mode 100644 src/declarative/fx/qfxlayoutitem.cpp delete mode 100644 src/declarative/fx/qfxlayoutitem.h delete mode 100644 src/declarative/fx/qfxlistview.cpp delete mode 100644 src/declarative/fx/qfxlistview.h delete mode 100644 src/declarative/fx/qfxloader.cpp delete mode 100644 src/declarative/fx/qfxloader.h delete mode 100644 src/declarative/fx/qfxloader_p.h delete mode 100644 src/declarative/fx/qfxmouseregion.cpp delete mode 100644 src/declarative/fx/qfxmouseregion.h delete mode 100644 src/declarative/fx/qfxmouseregion_p.h delete mode 100644 src/declarative/fx/qfxpainteditem.cpp delete mode 100644 src/declarative/fx/qfxpainteditem.h delete mode 100644 src/declarative/fx/qfxpainteditem_p.h delete mode 100644 src/declarative/fx/qfxpath.cpp delete mode 100644 src/declarative/fx/qfxpath.h delete mode 100644 src/declarative/fx/qfxpath_p.h delete mode 100644 src/declarative/fx/qfxpathview.cpp delete mode 100644 src/declarative/fx/qfxpathview.h delete mode 100644 src/declarative/fx/qfxpathview_p.h delete mode 100644 src/declarative/fx/qfxpixmapcache.cpp delete mode 100644 src/declarative/fx/qfxpixmapcache.h delete mode 100644 src/declarative/fx/qfxpositioners.cpp delete mode 100644 src/declarative/fx/qfxpositioners.h delete mode 100644 src/declarative/fx/qfxpositioners_p.h delete mode 100644 src/declarative/fx/qfxrect.cpp delete mode 100644 src/declarative/fx/qfxrect.h delete mode 100644 src/declarative/fx/qfxrect_p.h delete mode 100644 src/declarative/fx/qfxrepeater.cpp delete mode 100644 src/declarative/fx/qfxrepeater.h delete mode 100644 src/declarative/fx/qfxrepeater_p.h delete mode 100644 src/declarative/fx/qfxscalegrid.cpp delete mode 100644 src/declarative/fx/qfxscalegrid_p.h delete mode 100644 src/declarative/fx/qfxtext.cpp delete mode 100644 src/declarative/fx/qfxtext.h delete mode 100644 src/declarative/fx/qfxtext_p.h delete mode 100644 src/declarative/fx/qfxtextedit.cpp delete mode 100644 src/declarative/fx/qfxtextedit.h delete mode 100644 src/declarative/fx/qfxtextedit_p.h delete mode 100644 src/declarative/fx/qfxtextinput.cpp delete mode 100644 src/declarative/fx/qfxtextinput.h delete mode 100644 src/declarative/fx/qfxtextinput_p.h delete mode 100644 src/declarative/fx/qfxvisualitemmodel.cpp delete mode 100644 src/declarative/fx/qfxvisualitemmodel.h delete mode 100644 src/declarative/fx/qfxwebview.cpp delete mode 100644 src/declarative/fx/qfxwebview.h create mode 100644 src/declarative/fx/qmlgraphicsanchors.cpp create mode 100644 src/declarative/fx/qmlgraphicsanchors.h create mode 100644 src/declarative/fx/qmlgraphicsanchors_p.h create mode 100644 src/declarative/fx/qmlgraphicsborderimage.cpp create mode 100644 src/declarative/fx/qmlgraphicsborderimage.h create mode 100644 src/declarative/fx/qmlgraphicsborderimage_p.h create mode 100644 src/declarative/fx/qmlgraphicseffects.cpp create mode 100644 src/declarative/fx/qmlgraphicsevents.cpp create mode 100644 src/declarative/fx/qmlgraphicsevents_p.h create mode 100644 src/declarative/fx/qmlgraphicsflickable.cpp create mode 100644 src/declarative/fx/qmlgraphicsflickable.h create mode 100644 src/declarative/fx/qmlgraphicsflickable_p.h create mode 100644 src/declarative/fx/qmlgraphicsflipable.cpp create mode 100644 src/declarative/fx/qmlgraphicsflipable.h create mode 100644 src/declarative/fx/qmlgraphicsfocuspanel.cpp create mode 100644 src/declarative/fx/qmlgraphicsfocuspanel.h create mode 100644 src/declarative/fx/qmlgraphicsfocusscope.cpp create mode 100644 src/declarative/fx/qmlgraphicsfocusscope.h create mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp create mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h create mode 100644 src/declarative/fx/qmlgraphicsgridview.cpp create mode 100644 src/declarative/fx/qmlgraphicsgridview.h create mode 100644 src/declarative/fx/qmlgraphicsimage.cpp create mode 100644 src/declarative/fx/qmlgraphicsimage.h create mode 100644 src/declarative/fx/qmlgraphicsimage_p.h create mode 100644 src/declarative/fx/qmlgraphicsimagebase.cpp create mode 100644 src/declarative/fx/qmlgraphicsimagebase.h create mode 100644 src/declarative/fx/qmlgraphicsimagebase_p.h create mode 100644 src/declarative/fx/qmlgraphicsitem.cpp create mode 100644 src/declarative/fx/qmlgraphicsitem.h create mode 100644 src/declarative/fx/qmlgraphicsitem_p.h create mode 100644 src/declarative/fx/qmlgraphicslayoutitem.cpp create mode 100644 src/declarative/fx/qmlgraphicslayoutitem.h create mode 100644 src/declarative/fx/qmlgraphicslistview.cpp create mode 100644 src/declarative/fx/qmlgraphicslistview.h create mode 100644 src/declarative/fx/qmlgraphicsloader.cpp create mode 100644 src/declarative/fx/qmlgraphicsloader.h create mode 100644 src/declarative/fx/qmlgraphicsloader_p.h create mode 100644 src/declarative/fx/qmlgraphicsmouseregion.cpp create mode 100644 src/declarative/fx/qmlgraphicsmouseregion.h create mode 100644 src/declarative/fx/qmlgraphicsmouseregion_p.h create mode 100644 src/declarative/fx/qmlgraphicspainteditem.cpp create mode 100644 src/declarative/fx/qmlgraphicspainteditem.h create mode 100644 src/declarative/fx/qmlgraphicspainteditem_p.h create mode 100644 src/declarative/fx/qmlgraphicspath.cpp create mode 100644 src/declarative/fx/qmlgraphicspath.h create mode 100644 src/declarative/fx/qmlgraphicspath_p.h create mode 100644 src/declarative/fx/qmlgraphicspathview.cpp create mode 100644 src/declarative/fx/qmlgraphicspathview.h create mode 100644 src/declarative/fx/qmlgraphicspathview_p.h create mode 100644 src/declarative/fx/qmlgraphicspixmapcache.cpp create mode 100644 src/declarative/fx/qmlgraphicspixmapcache.h create mode 100644 src/declarative/fx/qmlgraphicspositioners.cpp create mode 100644 src/declarative/fx/qmlgraphicspositioners.h create mode 100644 src/declarative/fx/qmlgraphicspositioners_p.h create mode 100644 src/declarative/fx/qmlgraphicsrect.cpp create mode 100644 src/declarative/fx/qmlgraphicsrect.h create mode 100644 src/declarative/fx/qmlgraphicsrect_p.h create mode 100644 src/declarative/fx/qmlgraphicsrepeater.cpp create mode 100644 src/declarative/fx/qmlgraphicsrepeater.h create mode 100644 src/declarative/fx/qmlgraphicsrepeater_p.h create mode 100644 src/declarative/fx/qmlgraphicsscalegrid.cpp create mode 100644 src/declarative/fx/qmlgraphicsscalegrid_p.h create mode 100644 src/declarative/fx/qmlgraphicstext.cpp create mode 100644 src/declarative/fx/qmlgraphicstext.h create mode 100644 src/declarative/fx/qmlgraphicstext_p.h create mode 100644 src/declarative/fx/qmlgraphicstextedit.cpp create mode 100644 src/declarative/fx/qmlgraphicstextedit.h create mode 100644 src/declarative/fx/qmlgraphicstextedit_p.h create mode 100644 src/declarative/fx/qmlgraphicstextinput.cpp create mode 100644 src/declarative/fx/qmlgraphicstextinput.h create mode 100644 src/declarative/fx/qmlgraphicstextinput_p.h create mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel.cpp create mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel.h create mode 100644 src/declarative/fx/qmlgraphicswebview.cpp create mode 100644 src/declarative/fx/qmlgraphicswebview.h diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp index a9b8828..a7c7111 100644 --- a/demos/declarative/minehunt/main.cpp +++ b/demos/declarative/minehunt/main.cpp @@ -1,7 +1,7 @@ #include "qmlengine.h" #include "qmlcontext.h" #include "qml.h" -#include +#include #include #include diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri index 5e5e74e..47cc8f8 100644 --- a/src/declarative/extra/extra.pri +++ b/src/declarative/extra/extra.pri @@ -2,9 +2,9 @@ SOURCES += \ extra/qnumberformat.cpp \ extra/qmlnumberformatter.cpp \ extra/qmldatetimeformatter.cpp \ - extra/qfxintegermodel.cpp \ - extra/qfxanimatedimageitem.cpp \ - extra/qfxparticles.cpp \ + extra/qmlgraphicsintegermodel.cpp \ + extra/qmlgraphicsanimatedimageitem.cpp \ + extra/qmlgraphicsparticles.cpp \ extra/qmlbehavior.cpp \ extra/qmlfontloader.cpp @@ -12,10 +12,10 @@ HEADERS += \ extra/qnumberformat.h \ extra/qmlnumberformatter.h \ extra/qmldatetimeformatter.h \ - extra/qfxintegermodel.h \ - extra/qfxanimatedimageitem.h \ - extra/qfxanimatedimageitem_p.h \ - extra/qfxparticles.h \ + extra/qmlgraphicsintegermodel.h \ + extra/qmlgraphicsanimatedimageitem.h \ + extra/qmlgraphicsanimatedimageitem_p.h \ + extra/qmlgraphicsparticles.h \ extra/qmlbehavior.h \ extra/qmlfontloader.h diff --git a/src/declarative/extra/qfxanimatedimageitem.cpp b/src/declarative/extra/qfxanimatedimageitem.cpp deleted file mode 100644 index 8a6046e..0000000 --- a/src/declarative/extra/qfxanimatedimageitem.cpp +++ /dev/null @@ -1,256 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include "qfxanimatedimageitem.h" -#include "qfxanimatedimageitem_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \class QmlGraphicsAnimatedImageItem - \internal -*/ - -/*! - \qmlclass AnimatedImage - \inherits Image - - This item provides for playing animations stored as images containing a series of frames, - such as GIF files. The full list of supported formats can be determined with - QMovie::supportedFormats(). - - \table - \row - \o \image animatedimageitem.gif - \o - \qml -Item { - width: anim.width; height: anim.height+8 - AnimatedImage { id: anim; source: "pics/games-anim.gif" } - Rectangle { color: "red"; width: 4; height: 8; y: anim.height - x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1) - } -} - \endqml - \endtable -*/ -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,AnimatedImage,QmlGraphicsAnimatedImageItem) - -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent) - : QmlGraphicsImage(*(new QmlGraphicsAnimatedImageItemPrivate), parent) -{ -} - -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImage(dd, parent) -{ -} - -QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() -{ - Q_D(QmlGraphicsAnimatedImageItem); - delete d->_movie; -} - -/*! - \qmlproperty bool AnimatedImage::paused - This property holds whether the animated image is paused or not - - Defaults to false, and can be set to true when you want to pause. -*/ -bool QmlGraphicsAnimatedImageItem::isPaused() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if(!d->_movie) - return false; - return d->_movie->state()==QMovie::Paused; -} - -void QmlGraphicsAnimatedImageItem::setPaused(bool pause) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if(pause == d->paused) - return; - d->paused = pause; - if(!d->_movie) - return; - d->_movie->setPaused(pause); -} -/*! - \qmlproperty bool AnimatedImage::playing - This property holds whether the animated image is playing or not - - Defaults to true, so as to start playing immediately. -*/ -bool QmlGraphicsAnimatedImageItem::isPlaying() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return false; - return d->_movie->state()!=QMovie::NotRunning; -} - -void QmlGraphicsAnimatedImageItem::setPlaying(bool play) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if(play == d->playing) - return; - d->playing = play; - if (!d->_movie) - return; - if (play) - d->_movie->start(); - else - d->_movie->stop(); -} - -/*! - \qmlproperty int AnimatedImage::currentFrame - \qmlproperty int AnimatedImage::frameCount - - currentFrame is the frame that is currently visible. Watching when this changes can - allow other things to animate at the same time as the image. frameCount is the number - of frames in the animation. For some animation formats, frameCount is unknown and set to zero. -*/ -int QmlGraphicsAnimatedImageItem::currentFrame() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return -1; - return d->_movie->currentFrameNumber(); -} - -void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return; - d->_movie->jumpToFrame(frame); -} - -int QmlGraphicsAnimatedImageItem::frameCount() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return 0; - return d->_movie->frameCount(); -} - -void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if (url == d->url) - return; - - delete d->_movie; - d->_movie = 0; - - if (d->reply) { - d->reply->deleteLater(); - d->reply = 0; - } - - d->url = qmlContext(this)->resolvedUrl(url); - - if (url.isEmpty()) { - delete d->_movie; - d->status = Null; - } else { - d->status = Loading; - QNetworkRequest req(d->url); - d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), - this, SLOT(movieRequestFinished())); - } - - emit statusChanged(d->status); -} - -void QmlGraphicsAnimatedImageItem::movieRequestFinished() -{ - Q_D(QmlGraphicsAnimatedImageItem); - d->_movie = new QMovie(d->reply); - if (!d->_movie->isValid()){ - qWarning() << "Error Reading Animated Image File " << d->url; - delete d->_movie; - d->_movie = 0; - return; - } - connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), - this, SLOT(playingStatusChanged())); - connect(d->_movie, SIGNAL(frameChanged(int)), - this, SLOT(movieUpdate())); - d->_movie->setCacheMode(QMovie::CacheAll); - if(d->playing) - d->_movie->start(); - else - d->_movie->jumpToFrame(0); - if(d->paused) - d->_movie->setPaused(true); - setPixmap(d->_movie->currentPixmap()); -} - -void QmlGraphicsAnimatedImageItem::movieUpdate() -{ - Q_D(QmlGraphicsAnimatedImageItem); - setPixmap(d->_movie->currentPixmap()); - emit frameChanged(); -} - -void QmlGraphicsAnimatedImageItem::playingStatusChanged() -{ - Q_D(QmlGraphicsAnimatedImageItem); - if((d->_movie->state() != QMovie::NotRunning) != d->playing){ - d->playing = (d->_movie->state() != QMovie::NotRunning); - emit playingChanged(); - } - if((d->_movie->state() == QMovie::Paused) != d->paused){ - d->playing = (d->_movie->state() == QMovie::Paused); - emit pausedChanged(); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qfxanimatedimageitem.h b/src/declarative/extra/qfxanimatedimageitem.h deleted file mode 100644 index 782f920..0000000 --- a/src/declarative/extra/qfxanimatedimageitem.h +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXANIMATEDIMAGEITEM_H -#define QFXANIMATEDIMAGEITEM_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QMovie; -class QmlGraphicsAnimatedImageItemPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage -{ - Q_OBJECT - - Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) - Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) - Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) - Q_PROPERTY(int frameCount READ frameCount) -public: - QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsAnimatedImageItem(); - - bool isPlaying() const; - void setPlaying(bool play); - - bool isPaused() const; - void setPaused(bool pause); - - int currentFrame() const; - void setCurrentFrame(int frame); - - int frameCount() const; - - // Extends QmlGraphicsImage's src property*/ - virtual void setSource(const QUrl&); - -Q_SIGNALS: - void playingChanged(); - void pausedChanged(); - void frameChanged(); - -private Q_SLOTS: - void movieUpdate(); - void movieRequestFinished(); - void playingStatusChanged(); - -protected: - QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qfxanimatedimageitem_p.h b/src/declarative/extra/qfxanimatedimageitem_p.h deleted file mode 100644 index e61c488..0000000 --- a/src/declarative/extra/qfxanimatedimageitem_p.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXANIMATEDIMAGE_P_H -#define QFXANIMATEDIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -QT_BEGIN_NAMESPACE - -class QMovie; -class QNetworkReply; - -class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) - -public: - QmlGraphicsAnimatedImageItemPrivate() - : playing(true), paused(false), _movie(0), reply(0) - { - } - - bool playing; - bool paused; - QMovie *_movie; - QNetworkReply *reply; -}; - -QT_END_NAMESPACE - -#endif // QFXANIMATEDIMAGE_P_H diff --git a/src/declarative/extra/qfxintegermodel.cpp b/src/declarative/extra/qfxintegermodel.cpp deleted file mode 100644 index 496cd3e..0000000 --- a/src/declarative/extra/qfxintegermodel.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxintegermodel.h" - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,IntegerModel,QmlGraphicsIntegerModel) - -class QmlGraphicsIntegerModelPrivate -{ -public: - QmlGraphicsIntegerModelPrivate() : minimum(0), maximum(0) {} - int minimum; - int maximum; -}; - -QmlGraphicsIntegerModel::QmlGraphicsIntegerModel(QObject *parent) - : QListModelInterface(parent) -{ - d = new QmlGraphicsIntegerModelPrivate; -} - -QmlGraphicsIntegerModel::~QmlGraphicsIntegerModel() -{ - delete d; -} - -int QmlGraphicsIntegerModel::minimum() const -{ - return d->minimum; -} - -void QmlGraphicsIntegerModel::setMinimum(int minimum) -{ - d->minimum = minimum; -} - -int QmlGraphicsIntegerModel::maximum() const -{ - return d->maximum; -} - -void QmlGraphicsIntegerModel::setMaximum(int maximum) -{ - d->maximum = maximum; -} - -int QmlGraphicsIntegerModel::count() const -{ - return qMax(0, d->maximum - d->minimum + 1); -} - -QHash QmlGraphicsIntegerModel::data(int index, const QList &roles) const -{ - QHash returnHash; - - for (int i = 0; i < roles.size(); ++i) { - int role = roles.at(i); - QVariant info; - switch(role) { - case Qt::DisplayRole: - info = QVariant(QString::number(d->minimum+index)); - break; - default: - break; - } - returnHash.insert(role, info); - } - return returnHash; -} - -QString QmlGraphicsIntegerModel::toString(int role) const -{ - switch(role) { - case Qt::DisplayRole: - return QLatin1String("display"); - default: - return QLatin1String(""); - } -} - -QList QmlGraphicsIntegerModel::roles() const -{ - return QList() << Qt::DisplayRole; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qfxintegermodel.h b/src/declarative/extra/qfxintegermodel.h deleted file mode 100644 index cf69bdc..0000000 --- a/src/declarative/extra/qfxintegermodel.h +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXINTMODEL_H -#define QFXINTMODEL_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsIntegerModelPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsIntegerModel : public QListModelInterface -{ - Q_OBJECT -public: - QmlGraphicsIntegerModel(QObject *parent=0); - ~QmlGraphicsIntegerModel(); - - Q_PROPERTY(int minimum READ minimum WRITE setMinimum) - int minimum() const; - void setMinimum(int); - - Q_PROPERTY(int maximum READ maximum WRITE setMaximum) - int maximum() const; - void setMaximum(int); - - int count() const; - QHash data(int index, const QList &roles) const; - QList roles() const; - QString toString(int role) const; - -private: - QmlGraphicsIntegerModelPrivate *d; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsIntegerModel) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qfxparticles.cpp b/src/declarative/extra/qfxparticles.cpp deleted file mode 100644 index 0bb4826..0000000 --- a/src/declarative/extra/qfxparticles.cpp +++ /dev/null @@ -1,1134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "private/qfxitem_p.h" - -#include -#include -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#define M_PI_2 (M_PI / 2.) -#endif -#ifndef INT_MAX -#define INT_MAX 2147483647 -#endif -#include -#include -#include -#include - -#include "qfxparticles.h" -#include -#include -#include - -QT_BEGIN_NAMESPACE -#define PI_SQR 9.8696044 -// parabolic approximation -inline qreal fastSin(qreal theta) -{ - const qreal b = 4 / M_PI; - const qreal c = -4 / PI_SQR; - - qreal y = b * theta + c * theta * qAbs(theta); - return y; -} - -inline qreal fastCos(qreal theta) -{ - theta += M_PI_2; - if (theta > M_PI) - theta -= 2 * M_PI; - - return fastSin(theta); -} - -class QmlGraphicsParticle -{ -public: - QmlGraphicsParticle(int time) : lifeSpan(1000), fadeOutAge(800) - , opacity(0), birthTime(time), x_velocity(0), y_velocity(0) - , state(FadeIn), data(0) - { - } - - int lifeSpan; - int fadeOutAge; - qreal x; - qreal y; - qreal opacity; - int birthTime; - qreal x_velocity; - qreal y_velocity; - enum State { FadeIn, Solid, FadeOut }; - State state; - void *data; -}; - -//--------------------------------------------------------------------------- - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotion,QmlGraphicsParticleMotion) - -/*! - \class QmlGraphicsParticleMotion - \ingroup group_effects - \brief The QmlGraphicsParticleMotion class is the base class for particle motion. - \internal - - This class causes the particles to remain static. -*/ - -/*! - Constructs a QmlGraphicsParticleMotion with parent object \a parent. -*/ -QmlGraphicsParticleMotion::QmlGraphicsParticleMotion(QObject *parent) : - QObject(parent) -{ -} - -/*! - Move the \a particle to its new position. \a interval is the number of - milliseconds elapsed since it was last moved. -*/ -void QmlGraphicsParticleMotion::advance(QmlGraphicsParticle &particle, int interval) -{ - Q_UNUSED(particle); - Q_UNUSED(interval); -} - -/*! - The \a particle has just been created. Some motion strategies require - additional state information. This can be allocated by this function. -*/ -void QmlGraphicsParticleMotion::created(QmlGraphicsParticle &particle) -{ - Q_UNUSED(particle); -} - -/*! - The \a particle is about to be destroyed. Any additional memory - that has been allocated for the particle should be freed. -*/ -void QmlGraphicsParticleMotion::destroy(QmlGraphicsParticle &particle) -{ - Q_UNUSED(particle); -} - -/*! - \qmlclass ParticleMotionLinear - \brief The ParticleMotionLinear object moves particles linearly. - - \sa Particles -*/ - -/*! - \internal - \class QmlGraphicsParticleMotionLinear - \ingroup group_effects - \brief The QmlGraphicsParticleMotionLinear class moves the particles linearly. -*/ - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionLinear,QmlGraphicsParticleMotionLinear) - -void QmlGraphicsParticleMotionLinear::advance(QmlGraphicsParticle &p, int interval) -{ - p.x += interval * p.x_velocity; - p.y += interval * p.y_velocity; -} - -/*! - \qmlclass ParticleMotionGravity - \brief The ParticleMotionGravity object moves particles towards a point. - - \sa Particles -*/ - -/*! - \internal - \class QmlGraphicsParticleMotionGravity - \ingroup group_effects - \brief The QmlGraphicsParticleMotionGravity class moves the particles towards a point. -*/ - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionGravity,QmlGraphicsParticleMotionGravity) - -/*! - \qmlproperty int ParticleMotionGravity::xattractor - \qmlproperty int ParticleMotionGravity::yattractor - These properties hold the x and y coordinates of the point attracting the particles. -*/ - -/*! - \qmlproperty int ParticleMotionGravity::acceleration - This property holds the acceleration to apply to the particles. -*/ - -/*! - \property QmlGraphicsParticleMotionGravity::xattractor - \brief the x coordinate of the point attracting the particles. -*/ - -/*! - \property QmlGraphicsParticleMotionGravity::yattractor - \brief the y coordinate of the point attracting the particles. -*/ - -/*! - \property QmlGraphicsParticleMotionGravity::acceleration - \brief the acceleration to apply to the particles. -*/ - -void QmlGraphicsParticleMotionGravity::advance(QmlGraphicsParticle &p, int interval) -{ - qreal xdiff = p.x - _xAttr; - qreal ydiff = p.y - _yAttr; - - qreal xcomp = xdiff / (xdiff + ydiff); - qreal ycomp = ydiff / (xdiff + ydiff); - - p.x_velocity += xcomp * _accel * interval; - p.y_velocity += ycomp * _accel * interval; - - p.x += interval * p.x_velocity; - p.y += interval * p.y_velocity; -} - -/*! - \qmlclass ParticleMotionWander - \brief The ParticleMotionWander object moves particles in a somewhat random fashion. - - The particles will continue roughly in the original direction, however will randomly - drift to each side. - - The code below produces an effect similar to falling snow. - - \qml -Rectangle { - width: 240 - height: 320 - color: "black" - - Particles { - y: 0 - width: parent.width - height: 30 - source: "star.png" - lifeSpan: 5000 - count: 50 - angle: 70 - angleDeviation: 36 - velocity: 30 - velocityDeviation: 10 - ParticleMotionWander { - xvariance: 30 - pace: 100 - } - } -} - \endqml - - \sa Particles -*/ - -/*! - \internal - \class QmlGraphicsParticleMotionWander - \ingroup group_effects - \brief The QmlGraphicsParticleMotionWander class moves particles in a somewhat random fashion. - - The particles will continue roughly in the original direction, however will randomly - drift to each side. -*/ - -/*! - \qmlproperty int QmlGraphicsParticleMotionWander::xvariance - \qmlproperty int QmlGraphicsParticleMotionWander::yvariance - - These properties set the amount to wander in the x and y directions. -*/ - -/*! - \qmlproperty int QmlGraphicsParticleMotionWander::pace - This property holds how quickly the paricles will move from side to side. -*/ - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionWander,QmlGraphicsParticleMotionWander) - -void QmlGraphicsParticleMotionWander::advance(QmlGraphicsParticle &p, int interval) -{ - if (!particles) - particles = qobject_cast(parent()); - if (particles) { - Data *d = (Data*)p.data; - if (_xvariance != 0.) { - qreal xdiff = p.x_velocity - d->x_targetV; - if ((xdiff > d->x_peak && d->x_var > 0.0) || (xdiff < -d->x_peak && d->x_var < 0.0)) { - d->x_var = -d->x_var; - d->x_peak = _xvariance + _xvariance * qreal(rand()) / RAND_MAX; - } - p.x_velocity += d->x_var * interval; - } - p.x += interval * p.x_velocity; - - if (_yvariance != 0.) { - qreal ydiff = p.y_velocity - d->y_targetV; - if ((ydiff > d->y_peak && d->y_var > 0.0) || (ydiff < -d->y_peak && d->y_var < 0.0)) { - d->y_var = -d->y_var; - d->y_peak = _yvariance + _yvariance * qreal(rand()) / RAND_MAX; - } - p.y_velocity += d->y_var * interval; - } - p.y += interval * p.y_velocity; - } -} - -void QmlGraphicsParticleMotionWander::created(QmlGraphicsParticle &p) -{ - if (!p.data) { - Data *d = new Data; - p.data = (void*)d; - d->x_targetV = p.x_velocity; - d->y_targetV = p.y_velocity; - d->x_peak = _xvariance; - d->y_peak = _yvariance; - d->x_var = _pace * qreal(rand()) / RAND_MAX / 1000.0; - d->y_var = _pace * qreal(rand()) / RAND_MAX / 1000.0; - } -} - -void QmlGraphicsParticleMotionWander::destroy(QmlGraphicsParticle &p) -{ - if (p.data) - delete (Data*)p.data; -} - -//--------------------------------------------------------------------------- -class QmlGraphicsParticlesPainter : public QmlGraphicsItem -{ -public: - QmlGraphicsParticlesPainter(QmlGraphicsParticlesPrivate *p, QmlGraphicsItem* parent) - : QmlGraphicsItem(parent), d(p) - { - setFlag(QGraphicsItem::ItemHasNoContents, false); - maxX = minX = maxY = minY = 0; - } - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - void updateSize(); - - qreal maxX; - qreal minX; - qreal maxY; - qreal minY; - QmlGraphicsParticlesPrivate* d; -}; - -//--------------------------------------------------------------------------- -class QmlGraphicsParticlesPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsParticles) -public: - QmlGraphicsParticlesPrivate() - : count(1), lifeSpan(1000), lifeSpanDev(1000), fadeInDur(200), fadeOutDur(300) - , angle(0), angleDev(0), velocity(0), velocityDev(0) - , addParticleTime(0), addParticleCount(0), lastAdvTime(0), stream(false), streamDelay(0) - , emitting(true), motion(0), pendingPixmapCache(false), clock(this) - { - } - - ~QmlGraphicsParticlesPrivate() - { - } - - void init() - { - Q_Q(QmlGraphicsParticles); - paintItem = new QmlGraphicsParticlesPainter(this, q); - } - - void tick(int time); - void createParticle(int time); - void updateOpacity(QmlGraphicsParticle &p, int age); - - QUrl url; - QPixmap image; - int count; - int lifeSpan; - int lifeSpanDev; - int fadeInDur; - int fadeOutDur; - qreal angle; - qreal angleDev; - qreal velocity; - qreal velocityDev; - int addParticleTime; - int addParticleCount; - int lastAdvTime; - bool stream; - int streamDelay; - bool emitting; - QmlGraphicsParticleMotion *motion; - QmlGraphicsParticlesPainter *paintItem; - - bool pendingPixmapCache; - - QList particles; - QTickAnimationProxy clock; - -}; - -void QmlGraphicsParticlesPrivate::tick(int time) -{ - Q_Q(QmlGraphicsParticles); - if (!motion) - motion = new QmlGraphicsParticleMotionLinear(q); - - int oldCount = particles.count(); - int removed = 0; - int interval = time - lastAdvTime; - for (int i = 0; i < particles.count(); ) { - QmlGraphicsParticle &particle = particles[i]; - int age = time - particle.birthTime; - if (age >= particle.lifeSpan) { - QmlGraphicsParticle part = particles.takeAt(i); - motion->destroy(part); - ++removed; - } else { - updateOpacity(particle, age); - motion->advance(particle, interval); - ++i; - } - } - - while(removed-- && particles.count() < count && emitting) - createParticle(time); - - if (!addParticleTime) - addParticleTime = time; - - if (particles.count() < count && emitting) { - qreal perc = (lifeSpanDev <= 0)?(1.):(qreal(time - addParticleTime) / qreal(lifeSpanDev)); - int percCount = addParticleCount + (int)perc * (count - addParticleCount); - int streamWidth = -1; - if (stream){ - if (streamDelay > time){ - streamWidth = 0; - }else{ - int missed = time - streamDelay; - qreal streamWidthReal = qreal(count)/qreal(lifeSpan); - if (streamWidthReal < 1){ - streamDelay = time + (int)(1.0/streamWidthReal); - streamWidth = 1; - streamWidth += missed/streamDelay; - }else{ - streamWidth = qRound(streamWidthReal * (time-lastAdvTime)); - } - } - } - while(particles.count() < count && - (!stream || (particles.count() < percCount && streamWidth--))) - createParticle(time); - } - - lastAdvTime = time; - paintItem->updateSize(); - paintItem->update(); - if (!(oldCount || particles.count()) && (!count || !emitting)) { - lastAdvTime = 0; - clock.stop(); - } -} - -void QmlGraphicsParticlesPrivate::createParticle(int time) -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer x; -#endif - Q_Q(QmlGraphicsParticles); - QmlGraphicsParticle p(time); - p.x = q->x() + q->width() * qreal(rand()) / RAND_MAX - image.width()/2.0; - p.y = q->y() + q->height() * qreal(rand()) / RAND_MAX - image.height()/2.0; - p.lifeSpan = lifeSpan; - if (lifeSpanDev) - p.lifeSpan += int(lifeSpanDev/2 - lifeSpanDev * qreal(rand()) / RAND_MAX); - p.fadeOutAge = p.lifeSpan - fadeOutDur; - if (fadeInDur == 0.) { - p.state= QmlGraphicsParticle::Solid; - p.opacity = 1.0; - } - qreal a = angle; - if (angleDev) - a += angleDev/2 - angleDev * qreal(rand()) / RAND_MAX; - if (a > M_PI) - a = a - 2 * M_PI; - qreal v = velocity; - if (velocityDev) - v += velocityDev/2 - velocityDev * qreal(rand()) / RAND_MAX; - p.x_velocity = v * fastCos(a); - p.y_velocity = v * fastSin(a); - particles.append(p); - motion->created(particles.last()); -} - -void QmlGraphicsParticlesPrivate::updateOpacity(QmlGraphicsParticle &p, int age) -{ - switch (p.state) { - case QmlGraphicsParticle::FadeIn: - if (age <= fadeInDur) { - p.opacity = qreal(age) / fadeInDur; - break; - } else { - p.opacity = 1.0; - p.state = QmlGraphicsParticle::Solid; - // Fall through - } - case QmlGraphicsParticle::Solid: - if (age <= p.fadeOutAge) { - break; - } else { - p.state = QmlGraphicsParticle::FadeOut; - // Fall through - } - case QmlGraphicsParticle::FadeOut: - p.opacity = qreal(p.lifeSpan - age) / fadeOutDur; - break; - } -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Particles,QmlGraphicsParticles) - -/*! - \qmlclass Particles - \brief The Particles object generates and moves particles. - \inherits Item - - The particles created by this object cannot be dealt with directly, they can only be controlled through the parameters of the Particles object. The particles are all the same pixmap, specified by the user. - - The particles are painted relative to the parent of the Particles object. Moving the - Particles object will not move the particles already emitted. - - The below example creates two differently behaving particle sources. - The top one has particles falling from the top like snow, - the lower one has particles expelled up like a fountain. - - \qml -Rectangle { - width: 240 - height: 320 - color: "black" - Particles { - y: 0 - width: parent.width - height: 30 - source: "star.png" - lifeSpan: 5000 - count: 50 - angle: 70 - angleDeviation: 36 - velocity: 30 - velocityDeviation: 10 - ParticleMotionWander { - xvariance: 30 - pace: 100 - } - } - Particles { - y: 300 - x: 120 - width: 1 - height: 1 - source: "star.png" - lifeSpan: 5000 - count: 200 - angle: 270 - angleDeviation: 45 - velocity: 50 - velocityDeviation: 30 - ParticleMotionGravity { - yattractor: 1000 - xattractor: 0 - acceleration: 25 - } - } -} - \endqml - \image particles.gif -*/ - -/*! - \internal - \class QmlGraphicsParticles - \ingroup group_effects - \brief The QmlGraphicsParticles class generates and moves particles. -*/ - -QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsParticlesPrivate), parent) -{ - Q_D(QmlGraphicsParticles); - d->init(); -} - -QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsParticles); - d->init(); -} - -QmlGraphicsParticles::~QmlGraphicsParticles() -{ - Q_D(QmlGraphicsParticles); - if (d->pendingPixmapCache) - QmlGraphicsPixmapCache::cancelGet(d->url, this); -} - -/*! - \qmlproperty string Particles::src - This property holds the URL of the particle image. -*/ - -/*! - \property QmlGraphicsParticles::source - \brief the URL of the particle image. -*/ -QUrl QmlGraphicsParticles::source() const -{ - Q_D(const QmlGraphicsParticles); - return d->url; -} - -void QmlGraphicsParticles::imageLoaded() -{ - Q_D(QmlGraphicsParticles); - d->pendingPixmapCache = false; - QmlGraphicsPixmapCache::find(d->url, &d->image); - d->paintItem->updateSize(); - d->paintItem->update(); -} - -void QmlGraphicsParticles::setSource(const QUrl &name) -{ - Q_D(QmlGraphicsParticles); - - if ((d->url.isEmpty() == name.isEmpty()) && name == d->url) - return; - - if (d->pendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->url, this); - d->pendingPixmapCache = false; - } - if (name.isEmpty()) { - d->url = name; - d->image = QPixmap(); - d->paintItem->updateSize(); - d->paintItem->update(); - } else { - d->url = name; - Q_ASSERT(!name.isRelative()); - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->image); - if (reply) { - connect(reply, SIGNAL(finished()), this, SLOT(imageLoaded())); - d->pendingPixmapCache = true; - } else { - //### unify with imageLoaded - d->paintItem->updateSize(); - d->paintItem->update(); - } - } -} - -/*! - \qmlproperty int Particles::count - This property holds the target number of particles -*/ - -/*! - \property QmlGraphicsParticles::count - \brief the target number of particles -*/ -int QmlGraphicsParticles::count() const -{ - Q_D(const QmlGraphicsParticles); - return d->count; -} - -void QmlGraphicsParticles::setCount(int cnt) -{ - Q_D(QmlGraphicsParticles); - if (cnt == d->count) - return; - - int oldCount = d->count; - d->count = cnt; - d->addParticleTime = 0; - d->addParticleCount = d->particles.count(); - if (!oldCount && d->clock.state() != QAbstractAnimation::Running && d->count) { - d->clock.start(); - } - d->paintItem->updateSize(); - d->paintItem->update(); -} - -/*! - \qmlproperty int Particles::lifeSpan - \qmlproperty int Particles::lifeSpanDeviation - - These properties describe the life span of each particle. - - The default lifespan for a particle is 1000ms. - - lifeSpanDeviation randomly varies the lifeSpan up to the specified variation. For - example, the following creates particles whose lifeSpan will vary - from 150ms to 250ms: - - \qml -Particles { - source: "star.png" - lifeSpan: 200 - lifeSpanDeviation: 100 -} - \endqml -*/ - -/*! - \property QmlGraphicsParticles::lifeSpan - \brief the life span of each particle. - - Default value is 1000ms. - - \sa QmlGraphicsParticles::lifeSpanDeviation -*/ -int QmlGraphicsParticles::lifeSpan() const -{ - Q_D(const QmlGraphicsParticles); - return d->lifeSpan; -} - -void QmlGraphicsParticles::setLifeSpan(int ls) -{ - Q_D(QmlGraphicsParticles); - d->lifeSpan = ls; -} - -/*! - \property QmlGraphicsParticles::lifeSpanDeviation - \brief the maximum possible deviation from the set lifeSpan. - - Randomly varies the lifeSpan up to the specified variation. For - example, the following creates particles whose lifeSpan will vary - from 150ms to 250ms: - -\qml -Particles { - source: "star.png" - lifeSpan: 200 - lifeSpanDeviation: 100 -} -\endqml - - \sa QmlGraphicsParticles::lifeSpan -*/ -int QmlGraphicsParticles::lifeSpanDeviation() const -{ - Q_D(const QmlGraphicsParticles); - return d->lifeSpanDev; -} - -void QmlGraphicsParticles::setLifeSpanDeviation(int dev) -{ - Q_D(QmlGraphicsParticles); - d->lifeSpanDev = dev; -} - -/*! - \qmlproperty int Particles::fadeInDuration - \qmlproperty int Particles::fadeOutDuration - These properties hold the time taken to fade the particles in and out. - - By default fade in is 200ms and fade out is 300ms. -*/ - -/*! - \property QmlGraphicsParticles::fadeInDuration - \brief the time taken to fade in the particles. - - Default value is 200ms. -*/ -int QmlGraphicsParticles::fadeInDuration() const -{ - Q_D(const QmlGraphicsParticles); - return d->fadeInDur; -} - -void QmlGraphicsParticles::setFadeInDuration(int dur) -{ - Q_D(QmlGraphicsParticles); - if (dur >= 0.0) - d->fadeInDur = dur; -} - -/*! - \property QmlGraphicsParticles::fadeOutDuration - \brief the time taken to fade out the particles. - - Default value is 300ms. -*/ -int QmlGraphicsParticles::fadeOutDuration() const -{ - Q_D(const QmlGraphicsParticles); - return d->fadeOutDur; -} - -void QmlGraphicsParticles::setFadeOutDuration(int dur) -{ - Q_D(QmlGraphicsParticles); - if (dur >= 0.0) - d->fadeOutDur = dur; -} - -/*! - \qmlproperty real Particles::angle - \qmlproperty real Particles::angleDeviation - - These properties control particle direction. - - angleDeviation randomly varies the direction up to the specified variation. For - example, the following creates particles whose initial direction will - vary from 15 degrees to 105 degrees: - - \qml -Particles { - source: "star.png" - angle: 60 - angleDeviation: 90 -} - \endqml -*/ - -/*! - \property QmlGraphicsParticles::angle - \brief the initial angle of direction. - - \sa QmlGraphicsParticles::angleDeviation -*/ -qreal QmlGraphicsParticles::angle() const -{ - Q_D(const QmlGraphicsParticles); - return d->angle * 180.0 / M_PI; -} - -void QmlGraphicsParticles::setAngle(qreal angle) -{ - Q_D(QmlGraphicsParticles); - d->angle = angle * M_PI / 180.0; -} - -/*! - \property QmlGraphicsParticles::angleDeviation - \brief the maximum possible deviation from the set angle. - - Randomly varies the direction up to the specified variation. For - example, the following creates particles whose initial direction will - vary from 15 degrees to 105 degrees: - -\qml -Particles { - source: "star.png" - angle: 60 - angleDeviation: 90 -} -\endqml - - \sa QmlGraphicsParticles::angle -*/ -qreal QmlGraphicsParticles::angleDeviation() const -{ - Q_D(const QmlGraphicsParticles); - return d->angleDev * 180.0 / M_PI; -} - -void QmlGraphicsParticles::setAngleDeviation(qreal dev) -{ - Q_D(QmlGraphicsParticles); - d->angleDev = dev * M_PI / 180.0;; -} - -/*! - \qmlproperty real Particles::velocity - \qmlproperty real Particles::velocityDeviation - - These properties control the velocity of the particles. - - velocityDeviation randomly varies the velocity up to the specified variation. For - example, the following creates particles whose initial velocity will - vary from 40 to 60. - - \qml -Particles { - source: "star.png" - velocity: 50 - velocityDeviation: 20 -} - \endqml -*/ - -/*! - \property QmlGraphicsParticles::velocity - \brief the initial velocity of the particles. - - \sa QmlGraphicsParticles::velocityDeviation -*/ -qreal QmlGraphicsParticles::velocity() const -{ - Q_D(const QmlGraphicsParticles); - return d->velocity * 1000.0; -} - -void QmlGraphicsParticles::setVelocity(qreal velocity) -{ - Q_D(QmlGraphicsParticles); - d->velocity = velocity / 1000.0; -} - -/*! - \property QmlGraphicsParticles::velocityDeviation - \brief the maximum possible deviation from the set velocity. - - Randomly varies the velocity up to the specified variation. For - example, the following creates particles whose initial velocity will - vary from 40 to 60. - -\qml -Particles { - source: "star.png" - velocity: 50 - velocityDeviation: 20 -} -\endqml - - \sa QmlGraphicsParticles::velocity -*/ -qreal QmlGraphicsParticles::velocityDeviation() const -{ - Q_D(const QmlGraphicsParticles); - return d->velocityDev * 1000.0; -} - -void QmlGraphicsParticles::setVelocityDeviation(qreal velocity) -{ - Q_D(QmlGraphicsParticles); - d->velocityDev = velocity / 1000.0; -} - -/*! - \qmlproperty bool Particles::streamIn - This property determines whether the particles stream in at a constant rate - - When stream is set to true the particles will stream in at a constant rate. - Otherwise the particles will appear as a clump. Note that this only affects the - start of the particle effect, variables such as lifespan deviation can cause the - particles to unclump over time. -*/ -/*! - \property QmlGraphicsParticles::streamIn - \brief determines whether the particles stream in at a constant rate - - When stream is set to true the particles will stream in at a constant rate. - Otherwise the particles will appear as a clump. Note that this only affects the - start of the particle effect, variables such as lifespan deviation can cause the - -*/ -//The name may need a rethink -bool QmlGraphicsParticles::streamIn() const -{ - Q_D(const QmlGraphicsParticles); - return d->stream; -} - -void QmlGraphicsParticles::setStreamIn(bool b) -{ - Q_D(QmlGraphicsParticles); - d->stream = b; -} - -/*! - \qmlproperty bool Particles::emitting - This property determines whether new particles are created - - If emitting is set to false no new particles will be created. This means that - when a particle reaches the end of its lifespan it is not replaced. This - property can be used to turn particles on and off with a more natural look. - - The default setting is true. Note that if it initialized to false no particles - will be produced until it is set to true. -*/ -/*! - \property QmlGraphicsParticles::emitting - If emitting is set to false no new particles will be created. This means that - when a particle reaches the end of its lifespan it is not replaced. This - property can be used to turn particles on and off with a more natural look. - - The default setting is true. Note that if it initialized to false no particles - will be produced until it is set to true. -*/ -bool QmlGraphicsParticles::emitting() const -{ - Q_D(const QmlGraphicsParticles); - return d->emitting; -} - -void QmlGraphicsParticles::setEmitting(bool r) -{ - Q_D(QmlGraphicsParticles); - d->emitting = r; - if (d->count && r) - d->clock.start(); -} -/*! - \qmlproperty ParticleMotion Particles::motion - This property sets the type of motion to apply to the particles. - - When a particle is created it will have an initial direction and velocity. - The motion of the particle during its lifeSpan is then influenced by the - motion property. - - Default motion is ParticleMotionLinear. -*/ - -/*! - \property QmlGraphicsParticles::motion - \brief sets the type of motion to apply to the particles. - - When a particle is created it will have an initial direction and velocity. - The motion of the particle during its lifeSpan is then influenced by the - motion property. - - Default motion is QmlGraphicsParticleMotionLinear. -*/ -QmlGraphicsParticleMotion *QmlGraphicsParticles::motion() const -{ - Q_D(const QmlGraphicsParticles); - return d->motion; -} - -void QmlGraphicsParticles::setMotion(QmlGraphicsParticleMotion *motion) -{ - Q_D(QmlGraphicsParticles); - d->motion = motion; -} - -void QmlGraphicsParticlesPainter::updateSize() -{ - if (!isComponentComplete()) - return; - - const int parentX = parentItem()->x(); - const int parentY = parentItem()->y(); - for (int i = 0; i < d->particles.count(); ++i) { - const QmlGraphicsParticle &particle = d->particles.at(i); - if(particle.x > maxX) - maxX = particle.x; - if(particle.x < minX) - minX = particle.x; - if(particle.y > maxY) - maxY = particle.y; - if(particle.y < minY) - minY = particle.y; - } - - int myWidth = (int)(maxX-minX+0.5)+d->image.width(); - int myX = (int)(minX - parentX); - int myHeight = (int)(maxY-minY+0.5)+d->image.height(); - int myY = (int)(minY - parentY); - setWidth(myWidth); - setHeight(myHeight); - setX(myX); - setY(myY); -} - -void QmlGraphicsParticles::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_UNUSED(p); - //painting is done by the ParticlesPainter, so it can have the right size -} - -void QmlGraphicsParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - if (d->image.isNull() || d->particles.isEmpty()) - return; - - const int myX = x() + parentItem()->x(); - const int myY = y() + parentItem()->y(); - - static QVarLengthArray pixmapData; - if (pixmapData.count() < d->particles.count()) - pixmapData.resize(d->particles.count()); - - const QRectF sourceRect = d->image.rect(); - for (int i = 0; i < d->particles.count(); ++i) { - const QmlGraphicsParticle &particle = d->particles.at(i); - pixmapData[i].point = QPointF(particle.x - myX, particle.y - myY); - pixmapData[i].opacity = particle.opacity; - - //these never change - pixmapData[i].rotation = 0; - pixmapData[i].scaleX = 1; - pixmapData[i].scaleY = 1; - pixmapData[i].source = sourceRect; - } - qDrawPixmaps(p, pixmapData.data(), d->particles.count(), d->image); -} - -void QmlGraphicsParticles::componentComplete() -{ - Q_D(QmlGraphicsParticles); - QmlGraphicsItem::componentComplete(); - if (d->count) { - d->paintItem->updateSize(); - d->clock.start(); - } - if (d->lifeSpanDev > d->lifeSpan) - d->lifeSpanDev = d->lifeSpan; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qfxparticles.h b/src/declarative/extra/qfxparticles.h deleted file mode 100644 index 5e5a581..0000000 --- a/src/declarative/extra/qfxparticles.h +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPARTICLES_H -#define QFXPARTICLES_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsParticle; -class QmlGraphicsParticles; -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotion : public QObject -{ - Q_OBJECT -public: - QmlGraphicsParticleMotion(QObject *parent=0); - - virtual void advance(QmlGraphicsParticle &, int interval); - virtual void created(QmlGraphicsParticle &); - virtual void destroy(QmlGraphicsParticle &); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionLinear : public QmlGraphicsParticleMotion -{ - Q_OBJECT -public: - QmlGraphicsParticleMotionLinear(QObject *parent=0) - : QmlGraphicsParticleMotion(parent) {} - - virtual void advance(QmlGraphicsParticle &, int interval); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionGravity : public QmlGraphicsParticleMotion -{ - Q_OBJECT - - Q_PROPERTY(int xattractor READ xAttractor WRITE setXAttractor) - Q_PROPERTY(int yattractor READ yAttractor WRITE setYAttractor) - Q_PROPERTY(int acceleration READ acceleration WRITE setAcceleration) -public: - QmlGraphicsParticleMotionGravity(QObject *parent=0) - : QmlGraphicsParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} - - int xAttractor() const { return _xAttr; } - void setXAttractor(int x) { _xAttr = x; } - - int yAttractor() const { return _yAttr; } - void setYAttractor(int y) { _yAttr = y; } - - int acceleration() const { return int(_accel * 1000000); } - void setAcceleration(int accel) { _accel = qreal(accel)/1000000.0; } - - virtual void advance(QmlGraphicsParticle &, int interval); - -private: - int _xAttr; - int _yAttr; - qreal _accel; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionWander : public QmlGraphicsParticleMotion -{ - Q_OBJECT -public: - QmlGraphicsParticleMotionWander() - : QmlGraphicsParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} - - virtual void advance(QmlGraphicsParticle &, int interval); - virtual void created(QmlGraphicsParticle &); - virtual void destroy(QmlGraphicsParticle &); - - struct Data { - qreal x_targetV; - qreal y_targetV; - qreal x_peak; - qreal y_peak; - qreal x_var; - qreal y_var; - }; - - Q_PROPERTY(int xvariance READ xVariance WRITE setXVariance) - int xVariance() const { return int(_xvariance * 1000); } - void setXVariance(int var) { _xvariance = var / 1000.0; } - - Q_PROPERTY(int yvariance READ yVariance WRITE setYVariance) - int yVariance() const { return int(_yvariance * 1000); } - void setYVariance(int var) { _yvariance = var / 1000.0; } - - Q_PROPERTY(int pace READ pace WRITE setPace) - int pace() const { return int(_pace * 1000); } - void setPace(int pace) { _pace = pace / 1000.0; } - -private: - QmlGraphicsParticles *particles; - qreal _xvariance; - qreal _yvariance; - qreal _pace; -}; - -class QmlGraphicsParticlesPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsParticles : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QUrl source READ source WRITE setSource) - Q_PROPERTY(int count READ count WRITE setCount) - Q_PROPERTY(int lifeSpan READ lifeSpan WRITE setLifeSpan) - Q_PROPERTY(int lifeSpanDeviation READ lifeSpanDeviation WRITE setLifeSpanDeviation) - Q_PROPERTY(int fadeInDuration READ fadeInDuration WRITE setFadeInDuration) - Q_PROPERTY(int fadeOutDuration READ fadeOutDuration WRITE setFadeOutDuration) - Q_PROPERTY(qreal angle READ angle WRITE setAngle) - Q_PROPERTY(qreal angleDeviation READ angleDeviation WRITE setAngleDeviation) - Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) - Q_PROPERTY(qreal velocityDeviation READ velocityDeviation WRITE setVelocityDeviation) - Q_PROPERTY(bool streamIn READ streamIn WRITE setStreamIn) - Q_PROPERTY(bool emitting READ emitting WRITE setEmitting) - Q_PROPERTY(QmlGraphicsParticleMotion *motion READ motion WRITE setMotion) - Q_CLASSINFO("DefaultProperty", "motion") - -public: - QmlGraphicsParticles(QmlGraphicsItem *parent=0); - ~QmlGraphicsParticles(); - - QUrl source() const; - void setSource(const QUrl &); - - int count() const; - void setCount(int cnt); - - int lifeSpan() const; - void setLifeSpan(int); - - int lifeSpanDeviation() const; - void setLifeSpanDeviation(int); - - int fadeInDuration() const; - void setFadeInDuration(int); - - int fadeOutDuration() const; - void setFadeOutDuration(int); - - qreal angle() const; - void setAngle(qreal); - - qreal angleDeviation() const; - void setAngleDeviation(qreal); - - qreal velocity() const; - void setVelocity(qreal); - - qreal velocityDeviation() const; - void setVelocityDeviation(qreal); - - bool streamIn() const; - void setStreamIn(bool); - - bool emitting() const; - void setEmitting(bool); - - QmlGraphicsParticleMotion *motion() const; - void setMotion(QmlGraphicsParticleMotion *); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -protected: - virtual void componentComplete(); - QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - void imageLoaded(); - -private: - Q_DISABLE_COPY(QmlGraphicsParticles) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsParticles) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsParticleMotion) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionLinear) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionGravity) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionWander) -QML_DECLARE_TYPE(QmlGraphicsParticles) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp new file mode 100644 index 0000000..c22e56d --- /dev/null +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include "qmlgraphicsanimatedimageitem.h" +#include "qmlgraphicsanimatedimageitem_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \class QmlGraphicsAnimatedImageItem + \internal +*/ + +/*! + \qmlclass AnimatedImage + \inherits Image + + This item provides for playing animations stored as images containing a series of frames, + such as GIF files. The full list of supported formats can be determined with + QMovie::supportedFormats(). + + \table + \row + \o \image animatedimageitem.gif + \o + \qml +Item { + width: anim.width; height: anim.height+8 + AnimatedImage { id: anim; source: "pics/games-anim.gif" } + Rectangle { color: "red"; width: 4; height: 8; y: anim.height + x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1) + } +} + \endqml + \endtable +*/ +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,AnimatedImage,QmlGraphicsAnimatedImageItem) + +QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent) + : QmlGraphicsImage(*(new QmlGraphicsAnimatedImageItemPrivate), parent) +{ +} + +QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImage(dd, parent) +{ +} + +QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() +{ + Q_D(QmlGraphicsAnimatedImageItem); + delete d->_movie; +} + +/*! + \qmlproperty bool AnimatedImage::paused + This property holds whether the animated image is paused or not + + Defaults to false, and can be set to true when you want to pause. +*/ +bool QmlGraphicsAnimatedImageItem::isPaused() const +{ + Q_D(const QmlGraphicsAnimatedImageItem); + if(!d->_movie) + return false; + return d->_movie->state()==QMovie::Paused; +} + +void QmlGraphicsAnimatedImageItem::setPaused(bool pause) +{ + Q_D(QmlGraphicsAnimatedImageItem); + if(pause == d->paused) + return; + d->paused = pause; + if(!d->_movie) + return; + d->_movie->setPaused(pause); +} +/*! + \qmlproperty bool AnimatedImage::playing + This property holds whether the animated image is playing or not + + Defaults to true, so as to start playing immediately. +*/ +bool QmlGraphicsAnimatedImageItem::isPlaying() const +{ + Q_D(const QmlGraphicsAnimatedImageItem); + if (!d->_movie) + return false; + return d->_movie->state()!=QMovie::NotRunning; +} + +void QmlGraphicsAnimatedImageItem::setPlaying(bool play) +{ + Q_D(QmlGraphicsAnimatedImageItem); + if(play == d->playing) + return; + d->playing = play; + if (!d->_movie) + return; + if (play) + d->_movie->start(); + else + d->_movie->stop(); +} + +/*! + \qmlproperty int AnimatedImage::currentFrame + \qmlproperty int AnimatedImage::frameCount + + currentFrame is the frame that is currently visible. Watching when this changes can + allow other things to animate at the same time as the image. frameCount is the number + of frames in the animation. For some animation formats, frameCount is unknown and set to zero. +*/ +int QmlGraphicsAnimatedImageItem::currentFrame() const +{ + Q_D(const QmlGraphicsAnimatedImageItem); + if (!d->_movie) + return -1; + return d->_movie->currentFrameNumber(); +} + +void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) +{ + Q_D(QmlGraphicsAnimatedImageItem); + if (!d->_movie) + return; + d->_movie->jumpToFrame(frame); +} + +int QmlGraphicsAnimatedImageItem::frameCount() const +{ + Q_D(const QmlGraphicsAnimatedImageItem); + if (!d->_movie) + return 0; + return d->_movie->frameCount(); +} + +void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsAnimatedImageItem); + if (url == d->url) + return; + + delete d->_movie; + d->_movie = 0; + + if (d->reply) { + d->reply->deleteLater(); + d->reply = 0; + } + + d->url = qmlContext(this)->resolvedUrl(url); + + if (url.isEmpty()) { + delete d->_movie; + d->status = Null; + } else { + d->status = Loading; + QNetworkRequest req(d->url); + d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), + this, SLOT(movieRequestFinished())); + } + + emit statusChanged(d->status); +} + +void QmlGraphicsAnimatedImageItem::movieRequestFinished() +{ + Q_D(QmlGraphicsAnimatedImageItem); + d->_movie = new QMovie(d->reply); + if (!d->_movie->isValid()){ + qWarning() << "Error Reading Animated Image File " << d->url; + delete d->_movie; + d->_movie = 0; + return; + } + connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), + this, SLOT(playingStatusChanged())); + connect(d->_movie, SIGNAL(frameChanged(int)), + this, SLOT(movieUpdate())); + d->_movie->setCacheMode(QMovie::CacheAll); + if(d->playing) + d->_movie->start(); + else + d->_movie->jumpToFrame(0); + if(d->paused) + d->_movie->setPaused(true); + setPixmap(d->_movie->currentPixmap()); +} + +void QmlGraphicsAnimatedImageItem::movieUpdate() +{ + Q_D(QmlGraphicsAnimatedImageItem); + setPixmap(d->_movie->currentPixmap()); + emit frameChanged(); +} + +void QmlGraphicsAnimatedImageItem::playingStatusChanged() +{ + Q_D(QmlGraphicsAnimatedImageItem); + if((d->_movie->state() != QMovie::NotRunning) != d->playing){ + d->playing = (d->_movie->state() != QMovie::NotRunning); + emit playingChanged(); + } + if((d->_movie->state() == QMovie::Paused) != d->paused){ + d->playing = (d->_movie->state() == QMovie::Paused); + emit pausedChanged(); + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.h b/src/declarative/extra/qmlgraphicsanimatedimageitem.h new file mode 100644 index 0000000..c62a98e --- /dev/null +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem.h @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANIMATEDIMAGEITEM_H +#define QMLGRAPHICSANIMATEDIMAGEITEM_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QMovie; +class QmlGraphicsAnimatedImageItemPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage +{ + Q_OBJECT + + Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) + Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) + Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) + Q_PROPERTY(int frameCount READ frameCount) +public: + QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsAnimatedImageItem(); + + bool isPlaying() const; + void setPlaying(bool play); + + bool isPaused() const; + void setPaused(bool pause); + + int currentFrame() const; + void setCurrentFrame(int frame); + + int frameCount() const; + + // Extends QmlGraphicsImage's src property*/ + virtual void setSource(const QUrl&); + +Q_SIGNALS: + void playingChanged(); + void pausedChanged(); + void frameChanged(); + +private Q_SLOTS: + void movieUpdate(); + void movieRequestFinished(); + void playingStatusChanged(); + +protected: + QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h new file mode 100644 index 0000000..04f1b6e --- /dev/null +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANIMATEDIMAGE_P_H +#define QMLGRAPHICSANIMATEDIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QMovie; +class QNetworkReply; + +class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) + +public: + QmlGraphicsAnimatedImageItemPrivate() + : playing(true), paused(false), _movie(0), reply(0) + { + } + + bool playing; + bool paused; + QMovie *_movie; + QNetworkReply *reply; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSANIMATEDIMAGE_P_H diff --git a/src/declarative/extra/qmlgraphicsintegermodel.cpp b/src/declarative/extra/qmlgraphicsintegermodel.cpp new file mode 100644 index 0000000..e83b9c9 --- /dev/null +++ b/src/declarative/extra/qmlgraphicsintegermodel.cpp @@ -0,0 +1,126 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsintegermodel.h" + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,IntegerModel,QmlGraphicsIntegerModel) + +class QmlGraphicsIntegerModelPrivate +{ +public: + QmlGraphicsIntegerModelPrivate() : minimum(0), maximum(0) {} + int minimum; + int maximum; +}; + +QmlGraphicsIntegerModel::QmlGraphicsIntegerModel(QObject *parent) + : QListModelInterface(parent) +{ + d = new QmlGraphicsIntegerModelPrivate; +} + +QmlGraphicsIntegerModel::~QmlGraphicsIntegerModel() +{ + delete d; +} + +int QmlGraphicsIntegerModel::minimum() const +{ + return d->minimum; +} + +void QmlGraphicsIntegerModel::setMinimum(int minimum) +{ + d->minimum = minimum; +} + +int QmlGraphicsIntegerModel::maximum() const +{ + return d->maximum; +} + +void QmlGraphicsIntegerModel::setMaximum(int maximum) +{ + d->maximum = maximum; +} + +int QmlGraphicsIntegerModel::count() const +{ + return qMax(0, d->maximum - d->minimum + 1); +} + +QHash QmlGraphicsIntegerModel::data(int index, const QList &roles) const +{ + QHash returnHash; + + for (int i = 0; i < roles.size(); ++i) { + int role = roles.at(i); + QVariant info; + switch(role) { + case Qt::DisplayRole: + info = QVariant(QString::number(d->minimum+index)); + break; + default: + break; + } + returnHash.insert(role, info); + } + return returnHash; +} + +QString QmlGraphicsIntegerModel::toString(int role) const +{ + switch(role) { + case Qt::DisplayRole: + return QLatin1String("display"); + default: + return QLatin1String(""); + } +} + +QList QmlGraphicsIntegerModel::roles() const +{ + return QList() << Qt::DisplayRole; +} + +QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlgraphicsintegermodel.h b/src/declarative/extra/qmlgraphicsintegermodel.h new file mode 100644 index 0000000..3cad05e --- /dev/null +++ b/src/declarative/extra/qmlgraphicsintegermodel.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSINTMODEL_H +#define QMLGRAPHICSINTMODEL_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsIntegerModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsIntegerModel : public QListModelInterface +{ + Q_OBJECT +public: + QmlGraphicsIntegerModel(QObject *parent=0); + ~QmlGraphicsIntegerModel(); + + Q_PROPERTY(int minimum READ minimum WRITE setMinimum) + int minimum() const; + void setMinimum(int); + + Q_PROPERTY(int maximum READ maximum WRITE setMaximum) + int maximum() const; + void setMaximum(int); + + int count() const; + QHash data(int index, const QList &roles) const; + QList roles() const; + QString toString(int role) const; + +private: + QmlGraphicsIntegerModelPrivate *d; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsIntegerModel) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlgraphicsparticles.cpp b/src/declarative/extra/qmlgraphicsparticles.cpp new file mode 100644 index 0000000..dba3ac4 --- /dev/null +++ b/src/declarative/extra/qmlgraphicsparticles.cpp @@ -0,0 +1,1134 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "private/qmlgraphicsitem_p.h" + +#include +#include +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#define M_PI_2 (M_PI / 2.) +#endif +#ifndef INT_MAX +#define INT_MAX 2147483647 +#endif +#include +#include +#include +#include + +#include "qmlgraphicsparticles.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE +#define PI_SQR 9.8696044 +// parabolic approximation +inline qreal fastSin(qreal theta) +{ + const qreal b = 4 / M_PI; + const qreal c = -4 / PI_SQR; + + qreal y = b * theta + c * theta * qAbs(theta); + return y; +} + +inline qreal fastCos(qreal theta) +{ + theta += M_PI_2; + if (theta > M_PI) + theta -= 2 * M_PI; + + return fastSin(theta); +} + +class QmlGraphicsParticle +{ +public: + QmlGraphicsParticle(int time) : lifeSpan(1000), fadeOutAge(800) + , opacity(0), birthTime(time), x_velocity(0), y_velocity(0) + , state(FadeIn), data(0) + { + } + + int lifeSpan; + int fadeOutAge; + qreal x; + qreal y; + qreal opacity; + int birthTime; + qreal x_velocity; + qreal y_velocity; + enum State { FadeIn, Solid, FadeOut }; + State state; + void *data; +}; + +//--------------------------------------------------------------------------- + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotion,QmlGraphicsParticleMotion) + +/*! + \class QmlGraphicsParticleMotion + \ingroup group_effects + \brief The QmlGraphicsParticleMotion class is the base class for particle motion. + \internal + + This class causes the particles to remain static. +*/ + +/*! + Constructs a QmlGraphicsParticleMotion with parent object \a parent. +*/ +QmlGraphicsParticleMotion::QmlGraphicsParticleMotion(QObject *parent) : + QObject(parent) +{ +} + +/*! + Move the \a particle to its new position. \a interval is the number of + milliseconds elapsed since it was last moved. +*/ +void QmlGraphicsParticleMotion::advance(QmlGraphicsParticle &particle, int interval) +{ + Q_UNUSED(particle); + Q_UNUSED(interval); +} + +/*! + The \a particle has just been created. Some motion strategies require + additional state information. This can be allocated by this function. +*/ +void QmlGraphicsParticleMotion::created(QmlGraphicsParticle &particle) +{ + Q_UNUSED(particle); +} + +/*! + The \a particle is about to be destroyed. Any additional memory + that has been allocated for the particle should be freed. +*/ +void QmlGraphicsParticleMotion::destroy(QmlGraphicsParticle &particle) +{ + Q_UNUSED(particle); +} + +/*! + \qmlclass ParticleMotionLinear + \brief The ParticleMotionLinear object moves particles linearly. + + \sa Particles +*/ + +/*! + \internal + \class QmlGraphicsParticleMotionLinear + \ingroup group_effects + \brief The QmlGraphicsParticleMotionLinear class moves the particles linearly. +*/ + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionLinear,QmlGraphicsParticleMotionLinear) + +void QmlGraphicsParticleMotionLinear::advance(QmlGraphicsParticle &p, int interval) +{ + p.x += interval * p.x_velocity; + p.y += interval * p.y_velocity; +} + +/*! + \qmlclass ParticleMotionGravity + \brief The ParticleMotionGravity object moves particles towards a point. + + \sa Particles +*/ + +/*! + \internal + \class QmlGraphicsParticleMotionGravity + \ingroup group_effects + \brief The QmlGraphicsParticleMotionGravity class moves the particles towards a point. +*/ + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionGravity,QmlGraphicsParticleMotionGravity) + +/*! + \qmlproperty int ParticleMotionGravity::xattractor + \qmlproperty int ParticleMotionGravity::yattractor + These properties hold the x and y coordinates of the point attracting the particles. +*/ + +/*! + \qmlproperty int ParticleMotionGravity::acceleration + This property holds the acceleration to apply to the particles. +*/ + +/*! + \property QmlGraphicsParticleMotionGravity::xattractor + \brief the x coordinate of the point attracting the particles. +*/ + +/*! + \property QmlGraphicsParticleMotionGravity::yattractor + \brief the y coordinate of the point attracting the particles. +*/ + +/*! + \property QmlGraphicsParticleMotionGravity::acceleration + \brief the acceleration to apply to the particles. +*/ + +void QmlGraphicsParticleMotionGravity::advance(QmlGraphicsParticle &p, int interval) +{ + qreal xdiff = p.x - _xAttr; + qreal ydiff = p.y - _yAttr; + + qreal xcomp = xdiff / (xdiff + ydiff); + qreal ycomp = ydiff / (xdiff + ydiff); + + p.x_velocity += xcomp * _accel * interval; + p.y_velocity += ycomp * _accel * interval; + + p.x += interval * p.x_velocity; + p.y += interval * p.y_velocity; +} + +/*! + \qmlclass ParticleMotionWander + \brief The ParticleMotionWander object moves particles in a somewhat random fashion. + + The particles will continue roughly in the original direction, however will randomly + drift to each side. + + The code below produces an effect similar to falling snow. + + \qml +Rectangle { + width: 240 + height: 320 + color: "black" + + Particles { + y: 0 + width: parent.width + height: 30 + source: "star.png" + lifeSpan: 5000 + count: 50 + angle: 70 + angleDeviation: 36 + velocity: 30 + velocityDeviation: 10 + ParticleMotionWander { + xvariance: 30 + pace: 100 + } + } +} + \endqml + + \sa Particles +*/ + +/*! + \internal + \class QmlGraphicsParticleMotionWander + \ingroup group_effects + \brief The QmlGraphicsParticleMotionWander class moves particles in a somewhat random fashion. + + The particles will continue roughly in the original direction, however will randomly + drift to each side. +*/ + +/*! + \qmlproperty int QmlGraphicsParticleMotionWander::xvariance + \qmlproperty int QmlGraphicsParticleMotionWander::yvariance + + These properties set the amount to wander in the x and y directions. +*/ + +/*! + \qmlproperty int QmlGraphicsParticleMotionWander::pace + This property holds how quickly the paricles will move from side to side. +*/ + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ParticleMotionWander,QmlGraphicsParticleMotionWander) + +void QmlGraphicsParticleMotionWander::advance(QmlGraphicsParticle &p, int interval) +{ + if (!particles) + particles = qobject_cast(parent()); + if (particles) { + Data *d = (Data*)p.data; + if (_xvariance != 0.) { + qreal xdiff = p.x_velocity - d->x_targetV; + if ((xdiff > d->x_peak && d->x_var > 0.0) || (xdiff < -d->x_peak && d->x_var < 0.0)) { + d->x_var = -d->x_var; + d->x_peak = _xvariance + _xvariance * qreal(rand()) / RAND_MAX; + } + p.x_velocity += d->x_var * interval; + } + p.x += interval * p.x_velocity; + + if (_yvariance != 0.) { + qreal ydiff = p.y_velocity - d->y_targetV; + if ((ydiff > d->y_peak && d->y_var > 0.0) || (ydiff < -d->y_peak && d->y_var < 0.0)) { + d->y_var = -d->y_var; + d->y_peak = _yvariance + _yvariance * qreal(rand()) / RAND_MAX; + } + p.y_velocity += d->y_var * interval; + } + p.y += interval * p.y_velocity; + } +} + +void QmlGraphicsParticleMotionWander::created(QmlGraphicsParticle &p) +{ + if (!p.data) { + Data *d = new Data; + p.data = (void*)d; + d->x_targetV = p.x_velocity; + d->y_targetV = p.y_velocity; + d->x_peak = _xvariance; + d->y_peak = _yvariance; + d->x_var = _pace * qreal(rand()) / RAND_MAX / 1000.0; + d->y_var = _pace * qreal(rand()) / RAND_MAX / 1000.0; + } +} + +void QmlGraphicsParticleMotionWander::destroy(QmlGraphicsParticle &p) +{ + if (p.data) + delete (Data*)p.data; +} + +//--------------------------------------------------------------------------- +class QmlGraphicsParticlesPainter : public QmlGraphicsItem +{ +public: + QmlGraphicsParticlesPainter(QmlGraphicsParticlesPrivate *p, QmlGraphicsItem* parent) + : QmlGraphicsItem(parent), d(p) + { + setFlag(QGraphicsItem::ItemHasNoContents, false); + maxX = minX = maxY = minY = 0; + } + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + void updateSize(); + + qreal maxX; + qreal minX; + qreal maxY; + qreal minY; + QmlGraphicsParticlesPrivate* d; +}; + +//--------------------------------------------------------------------------- +class QmlGraphicsParticlesPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsParticles) +public: + QmlGraphicsParticlesPrivate() + : count(1), lifeSpan(1000), lifeSpanDev(1000), fadeInDur(200), fadeOutDur(300) + , angle(0), angleDev(0), velocity(0), velocityDev(0) + , addParticleTime(0), addParticleCount(0), lastAdvTime(0), stream(false), streamDelay(0) + , emitting(true), motion(0), pendingPixmapCache(false), clock(this) + { + } + + ~QmlGraphicsParticlesPrivate() + { + } + + void init() + { + Q_Q(QmlGraphicsParticles); + paintItem = new QmlGraphicsParticlesPainter(this, q); + } + + void tick(int time); + void createParticle(int time); + void updateOpacity(QmlGraphicsParticle &p, int age); + + QUrl url; + QPixmap image; + int count; + int lifeSpan; + int lifeSpanDev; + int fadeInDur; + int fadeOutDur; + qreal angle; + qreal angleDev; + qreal velocity; + qreal velocityDev; + int addParticleTime; + int addParticleCount; + int lastAdvTime; + bool stream; + int streamDelay; + bool emitting; + QmlGraphicsParticleMotion *motion; + QmlGraphicsParticlesPainter *paintItem; + + bool pendingPixmapCache; + + QList particles; + QTickAnimationProxy clock; + +}; + +void QmlGraphicsParticlesPrivate::tick(int time) +{ + Q_Q(QmlGraphicsParticles); + if (!motion) + motion = new QmlGraphicsParticleMotionLinear(q); + + int oldCount = particles.count(); + int removed = 0; + int interval = time - lastAdvTime; + for (int i = 0; i < particles.count(); ) { + QmlGraphicsParticle &particle = particles[i]; + int age = time - particle.birthTime; + if (age >= particle.lifeSpan) { + QmlGraphicsParticle part = particles.takeAt(i); + motion->destroy(part); + ++removed; + } else { + updateOpacity(particle, age); + motion->advance(particle, interval); + ++i; + } + } + + while(removed-- && particles.count() < count && emitting) + createParticle(time); + + if (!addParticleTime) + addParticleTime = time; + + if (particles.count() < count && emitting) { + qreal perc = (lifeSpanDev <= 0)?(1.):(qreal(time - addParticleTime) / qreal(lifeSpanDev)); + int percCount = addParticleCount + (int)perc * (count - addParticleCount); + int streamWidth = -1; + if (stream){ + if (streamDelay > time){ + streamWidth = 0; + }else{ + int missed = time - streamDelay; + qreal streamWidthReal = qreal(count)/qreal(lifeSpan); + if (streamWidthReal < 1){ + streamDelay = time + (int)(1.0/streamWidthReal); + streamWidth = 1; + streamWidth += missed/streamDelay; + }else{ + streamWidth = qRound(streamWidthReal * (time-lastAdvTime)); + } + } + } + while(particles.count() < count && + (!stream || (particles.count() < percCount && streamWidth--))) + createParticle(time); + } + + lastAdvTime = time; + paintItem->updateSize(); + paintItem->update(); + if (!(oldCount || particles.count()) && (!count || !emitting)) { + lastAdvTime = 0; + clock.stop(); + } +} + +void QmlGraphicsParticlesPrivate::createParticle(int time) +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer x; +#endif + Q_Q(QmlGraphicsParticles); + QmlGraphicsParticle p(time); + p.x = q->x() + q->width() * qreal(rand()) / RAND_MAX - image.width()/2.0; + p.y = q->y() + q->height() * qreal(rand()) / RAND_MAX - image.height()/2.0; + p.lifeSpan = lifeSpan; + if (lifeSpanDev) + p.lifeSpan += int(lifeSpanDev/2 - lifeSpanDev * qreal(rand()) / RAND_MAX); + p.fadeOutAge = p.lifeSpan - fadeOutDur; + if (fadeInDur == 0.) { + p.state= QmlGraphicsParticle::Solid; + p.opacity = 1.0; + } + qreal a = angle; + if (angleDev) + a += angleDev/2 - angleDev * qreal(rand()) / RAND_MAX; + if (a > M_PI) + a = a - 2 * M_PI; + qreal v = velocity; + if (velocityDev) + v += velocityDev/2 - velocityDev * qreal(rand()) / RAND_MAX; + p.x_velocity = v * fastCos(a); + p.y_velocity = v * fastSin(a); + particles.append(p); + motion->created(particles.last()); +} + +void QmlGraphicsParticlesPrivate::updateOpacity(QmlGraphicsParticle &p, int age) +{ + switch (p.state) { + case QmlGraphicsParticle::FadeIn: + if (age <= fadeInDur) { + p.opacity = qreal(age) / fadeInDur; + break; + } else { + p.opacity = 1.0; + p.state = QmlGraphicsParticle::Solid; + // Fall through + } + case QmlGraphicsParticle::Solid: + if (age <= p.fadeOutAge) { + break; + } else { + p.state = QmlGraphicsParticle::FadeOut; + // Fall through + } + case QmlGraphicsParticle::FadeOut: + p.opacity = qreal(p.lifeSpan - age) / fadeOutDur; + break; + } +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Particles,QmlGraphicsParticles) + +/*! + \qmlclass Particles + \brief The Particles object generates and moves particles. + \inherits Item + + The particles created by this object cannot be dealt with directly, they can only be controlled through the parameters of the Particles object. The particles are all the same pixmap, specified by the user. + + The particles are painted relative to the parent of the Particles object. Moving the + Particles object will not move the particles already emitted. + + The below example creates two differently behaving particle sources. + The top one has particles falling from the top like snow, + the lower one has particles expelled up like a fountain. + + \qml +Rectangle { + width: 240 + height: 320 + color: "black" + Particles { + y: 0 + width: parent.width + height: 30 + source: "star.png" + lifeSpan: 5000 + count: 50 + angle: 70 + angleDeviation: 36 + velocity: 30 + velocityDeviation: 10 + ParticleMotionWander { + xvariance: 30 + pace: 100 + } + } + Particles { + y: 300 + x: 120 + width: 1 + height: 1 + source: "star.png" + lifeSpan: 5000 + count: 200 + angle: 270 + angleDeviation: 45 + velocity: 50 + velocityDeviation: 30 + ParticleMotionGravity { + yattractor: 1000 + xattractor: 0 + acceleration: 25 + } + } +} + \endqml + \image particles.gif +*/ + +/*! + \internal + \class QmlGraphicsParticles + \ingroup group_effects + \brief The QmlGraphicsParticles class generates and moves particles. +*/ + +QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsParticlesPrivate), parent) +{ + Q_D(QmlGraphicsParticles); + d->init(); +} + +QmlGraphicsParticles::QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsParticles); + d->init(); +} + +QmlGraphicsParticles::~QmlGraphicsParticles() +{ + Q_D(QmlGraphicsParticles); + if (d->pendingPixmapCache) + QmlGraphicsPixmapCache::cancelGet(d->url, this); +} + +/*! + \qmlproperty string Particles::src + This property holds the URL of the particle image. +*/ + +/*! + \property QmlGraphicsParticles::source + \brief the URL of the particle image. +*/ +QUrl QmlGraphicsParticles::source() const +{ + Q_D(const QmlGraphicsParticles); + return d->url; +} + +void QmlGraphicsParticles::imageLoaded() +{ + Q_D(QmlGraphicsParticles); + d->pendingPixmapCache = false; + QmlGraphicsPixmapCache::find(d->url, &d->image); + d->paintItem->updateSize(); + d->paintItem->update(); +} + +void QmlGraphicsParticles::setSource(const QUrl &name) +{ + Q_D(QmlGraphicsParticles); + + if ((d->url.isEmpty() == name.isEmpty()) && name == d->url) + return; + + if (d->pendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->url, this); + d->pendingPixmapCache = false; + } + if (name.isEmpty()) { + d->url = name; + d->image = QPixmap(); + d->paintItem->updateSize(); + d->paintItem->update(); + } else { + d->url = name; + Q_ASSERT(!name.isRelative()); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->image); + if (reply) { + connect(reply, SIGNAL(finished()), this, SLOT(imageLoaded())); + d->pendingPixmapCache = true; + } else { + //### unify with imageLoaded + d->paintItem->updateSize(); + d->paintItem->update(); + } + } +} + +/*! + \qmlproperty int Particles::count + This property holds the target number of particles +*/ + +/*! + \property QmlGraphicsParticles::count + \brief the target number of particles +*/ +int QmlGraphicsParticles::count() const +{ + Q_D(const QmlGraphicsParticles); + return d->count; +} + +void QmlGraphicsParticles::setCount(int cnt) +{ + Q_D(QmlGraphicsParticles); + if (cnt == d->count) + return; + + int oldCount = d->count; + d->count = cnt; + d->addParticleTime = 0; + d->addParticleCount = d->particles.count(); + if (!oldCount && d->clock.state() != QAbstractAnimation::Running && d->count) { + d->clock.start(); + } + d->paintItem->updateSize(); + d->paintItem->update(); +} + +/*! + \qmlproperty int Particles::lifeSpan + \qmlproperty int Particles::lifeSpanDeviation + + These properties describe the life span of each particle. + + The default lifespan for a particle is 1000ms. + + lifeSpanDeviation randomly varies the lifeSpan up to the specified variation. For + example, the following creates particles whose lifeSpan will vary + from 150ms to 250ms: + + \qml +Particles { + source: "star.png" + lifeSpan: 200 + lifeSpanDeviation: 100 +} + \endqml +*/ + +/*! + \property QmlGraphicsParticles::lifeSpan + \brief the life span of each particle. + + Default value is 1000ms. + + \sa QmlGraphicsParticles::lifeSpanDeviation +*/ +int QmlGraphicsParticles::lifeSpan() const +{ + Q_D(const QmlGraphicsParticles); + return d->lifeSpan; +} + +void QmlGraphicsParticles::setLifeSpan(int ls) +{ + Q_D(QmlGraphicsParticles); + d->lifeSpan = ls; +} + +/*! + \property QmlGraphicsParticles::lifeSpanDeviation + \brief the maximum possible deviation from the set lifeSpan. + + Randomly varies the lifeSpan up to the specified variation. For + example, the following creates particles whose lifeSpan will vary + from 150ms to 250ms: + +\qml +Particles { + source: "star.png" + lifeSpan: 200 + lifeSpanDeviation: 100 +} +\endqml + + \sa QmlGraphicsParticles::lifeSpan +*/ +int QmlGraphicsParticles::lifeSpanDeviation() const +{ + Q_D(const QmlGraphicsParticles); + return d->lifeSpanDev; +} + +void QmlGraphicsParticles::setLifeSpanDeviation(int dev) +{ + Q_D(QmlGraphicsParticles); + d->lifeSpanDev = dev; +} + +/*! + \qmlproperty int Particles::fadeInDuration + \qmlproperty int Particles::fadeOutDuration + These properties hold the time taken to fade the particles in and out. + + By default fade in is 200ms and fade out is 300ms. +*/ + +/*! + \property QmlGraphicsParticles::fadeInDuration + \brief the time taken to fade in the particles. + + Default value is 200ms. +*/ +int QmlGraphicsParticles::fadeInDuration() const +{ + Q_D(const QmlGraphicsParticles); + return d->fadeInDur; +} + +void QmlGraphicsParticles::setFadeInDuration(int dur) +{ + Q_D(QmlGraphicsParticles); + if (dur >= 0.0) + d->fadeInDur = dur; +} + +/*! + \property QmlGraphicsParticles::fadeOutDuration + \brief the time taken to fade out the particles. + + Default value is 300ms. +*/ +int QmlGraphicsParticles::fadeOutDuration() const +{ + Q_D(const QmlGraphicsParticles); + return d->fadeOutDur; +} + +void QmlGraphicsParticles::setFadeOutDuration(int dur) +{ + Q_D(QmlGraphicsParticles); + if (dur >= 0.0) + d->fadeOutDur = dur; +} + +/*! + \qmlproperty real Particles::angle + \qmlproperty real Particles::angleDeviation + + These properties control particle direction. + + angleDeviation randomly varies the direction up to the specified variation. For + example, the following creates particles whose initial direction will + vary from 15 degrees to 105 degrees: + + \qml +Particles { + source: "star.png" + angle: 60 + angleDeviation: 90 +} + \endqml +*/ + +/*! + \property QmlGraphicsParticles::angle + \brief the initial angle of direction. + + \sa QmlGraphicsParticles::angleDeviation +*/ +qreal QmlGraphicsParticles::angle() const +{ + Q_D(const QmlGraphicsParticles); + return d->angle * 180.0 / M_PI; +} + +void QmlGraphicsParticles::setAngle(qreal angle) +{ + Q_D(QmlGraphicsParticles); + d->angle = angle * M_PI / 180.0; +} + +/*! + \property QmlGraphicsParticles::angleDeviation + \brief the maximum possible deviation from the set angle. + + Randomly varies the direction up to the specified variation. For + example, the following creates particles whose initial direction will + vary from 15 degrees to 105 degrees: + +\qml +Particles { + source: "star.png" + angle: 60 + angleDeviation: 90 +} +\endqml + + \sa QmlGraphicsParticles::angle +*/ +qreal QmlGraphicsParticles::angleDeviation() const +{ + Q_D(const QmlGraphicsParticles); + return d->angleDev * 180.0 / M_PI; +} + +void QmlGraphicsParticles::setAngleDeviation(qreal dev) +{ + Q_D(QmlGraphicsParticles); + d->angleDev = dev * M_PI / 180.0;; +} + +/*! + \qmlproperty real Particles::velocity + \qmlproperty real Particles::velocityDeviation + + These properties control the velocity of the particles. + + velocityDeviation randomly varies the velocity up to the specified variation. For + example, the following creates particles whose initial velocity will + vary from 40 to 60. + + \qml +Particles { + source: "star.png" + velocity: 50 + velocityDeviation: 20 +} + \endqml +*/ + +/*! + \property QmlGraphicsParticles::velocity + \brief the initial velocity of the particles. + + \sa QmlGraphicsParticles::velocityDeviation +*/ +qreal QmlGraphicsParticles::velocity() const +{ + Q_D(const QmlGraphicsParticles); + return d->velocity * 1000.0; +} + +void QmlGraphicsParticles::setVelocity(qreal velocity) +{ + Q_D(QmlGraphicsParticles); + d->velocity = velocity / 1000.0; +} + +/*! + \property QmlGraphicsParticles::velocityDeviation + \brief the maximum possible deviation from the set velocity. + + Randomly varies the velocity up to the specified variation. For + example, the following creates particles whose initial velocity will + vary from 40 to 60. + +\qml +Particles { + source: "star.png" + velocity: 50 + velocityDeviation: 20 +} +\endqml + + \sa QmlGraphicsParticles::velocity +*/ +qreal QmlGraphicsParticles::velocityDeviation() const +{ + Q_D(const QmlGraphicsParticles); + return d->velocityDev * 1000.0; +} + +void QmlGraphicsParticles::setVelocityDeviation(qreal velocity) +{ + Q_D(QmlGraphicsParticles); + d->velocityDev = velocity / 1000.0; +} + +/*! + \qmlproperty bool Particles::streamIn + This property determines whether the particles stream in at a constant rate + + When stream is set to true the particles will stream in at a constant rate. + Otherwise the particles will appear as a clump. Note that this only affects the + start of the particle effect, variables such as lifespan deviation can cause the + particles to unclump over time. +*/ +/*! + \property QmlGraphicsParticles::streamIn + \brief determines whether the particles stream in at a constant rate + + When stream is set to true the particles will stream in at a constant rate. + Otherwise the particles will appear as a clump. Note that this only affects the + start of the particle effect, variables such as lifespan deviation can cause the + +*/ +//The name may need a rethink +bool QmlGraphicsParticles::streamIn() const +{ + Q_D(const QmlGraphicsParticles); + return d->stream; +} + +void QmlGraphicsParticles::setStreamIn(bool b) +{ + Q_D(QmlGraphicsParticles); + d->stream = b; +} + +/*! + \qmlproperty bool Particles::emitting + This property determines whether new particles are created + + If emitting is set to false no new particles will be created. This means that + when a particle reaches the end of its lifespan it is not replaced. This + property can be used to turn particles on and off with a more natural look. + + The default setting is true. Note that if it initialized to false no particles + will be produced until it is set to true. +*/ +/*! + \property QmlGraphicsParticles::emitting + If emitting is set to false no new particles will be created. This means that + when a particle reaches the end of its lifespan it is not replaced. This + property can be used to turn particles on and off with a more natural look. + + The default setting is true. Note that if it initialized to false no particles + will be produced until it is set to true. +*/ +bool QmlGraphicsParticles::emitting() const +{ + Q_D(const QmlGraphicsParticles); + return d->emitting; +} + +void QmlGraphicsParticles::setEmitting(bool r) +{ + Q_D(QmlGraphicsParticles); + d->emitting = r; + if (d->count && r) + d->clock.start(); +} +/*! + \qmlproperty ParticleMotion Particles::motion + This property sets the type of motion to apply to the particles. + + When a particle is created it will have an initial direction and velocity. + The motion of the particle during its lifeSpan is then influenced by the + motion property. + + Default motion is ParticleMotionLinear. +*/ + +/*! + \property QmlGraphicsParticles::motion + \brief sets the type of motion to apply to the particles. + + When a particle is created it will have an initial direction and velocity. + The motion of the particle during its lifeSpan is then influenced by the + motion property. + + Default motion is QmlGraphicsParticleMotionLinear. +*/ +QmlGraphicsParticleMotion *QmlGraphicsParticles::motion() const +{ + Q_D(const QmlGraphicsParticles); + return d->motion; +} + +void QmlGraphicsParticles::setMotion(QmlGraphicsParticleMotion *motion) +{ + Q_D(QmlGraphicsParticles); + d->motion = motion; +} + +void QmlGraphicsParticlesPainter::updateSize() +{ + if (!isComponentComplete()) + return; + + const int parentX = parentItem()->x(); + const int parentY = parentItem()->y(); + for (int i = 0; i < d->particles.count(); ++i) { + const QmlGraphicsParticle &particle = d->particles.at(i); + if(particle.x > maxX) + maxX = particle.x; + if(particle.x < minX) + minX = particle.x; + if(particle.y > maxY) + maxY = particle.y; + if(particle.y < minY) + minY = particle.y; + } + + int myWidth = (int)(maxX-minX+0.5)+d->image.width(); + int myX = (int)(minX - parentX); + int myHeight = (int)(maxY-minY+0.5)+d->image.height(); + int myY = (int)(minY - parentY); + setWidth(myWidth); + setHeight(myHeight); + setX(myX); + setY(myY); +} + +void QmlGraphicsParticles::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_UNUSED(p); + //painting is done by the ParticlesPainter, so it can have the right size +} + +void QmlGraphicsParticlesPainter::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + if (d->image.isNull() || d->particles.isEmpty()) + return; + + const int myX = x() + parentItem()->x(); + const int myY = y() + parentItem()->y(); + + static QVarLengthArray pixmapData; + if (pixmapData.count() < d->particles.count()) + pixmapData.resize(d->particles.count()); + + const QRectF sourceRect = d->image.rect(); + for (int i = 0; i < d->particles.count(); ++i) { + const QmlGraphicsParticle &particle = d->particles.at(i); + pixmapData[i].point = QPointF(particle.x - myX, particle.y - myY); + pixmapData[i].opacity = particle.opacity; + + //these never change + pixmapData[i].rotation = 0; + pixmapData[i].scaleX = 1; + pixmapData[i].scaleY = 1; + pixmapData[i].source = sourceRect; + } + qDrawPixmaps(p, pixmapData.data(), d->particles.count(), d->image); +} + +void QmlGraphicsParticles::componentComplete() +{ + Q_D(QmlGraphicsParticles); + QmlGraphicsItem::componentComplete(); + if (d->count) { + d->paintItem->updateSize(); + d->clock.start(); + } + if (d->lifeSpanDev > d->lifeSpan) + d->lifeSpanDev = d->lifeSpan; +} + +QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlgraphicsparticles.h b/src/declarative/extra/qmlgraphicsparticles.h new file mode 100644 index 0000000..eed0d62 --- /dev/null +++ b/src/declarative/extra/qmlgraphicsparticles.h @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPARTICLES_H +#define QMLGRAPHICSPARTICLES_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsParticle; +class QmlGraphicsParticles; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotion : public QObject +{ + Q_OBJECT +public: + QmlGraphicsParticleMotion(QObject *parent=0); + + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionLinear : public QmlGraphicsParticleMotion +{ + Q_OBJECT +public: + QmlGraphicsParticleMotionLinear(QObject *parent=0) + : QmlGraphicsParticleMotion(parent) {} + + virtual void advance(QmlGraphicsParticle &, int interval); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionGravity : public QmlGraphicsParticleMotion +{ + Q_OBJECT + + Q_PROPERTY(int xattractor READ xAttractor WRITE setXAttractor) + Q_PROPERTY(int yattractor READ yAttractor WRITE setYAttractor) + Q_PROPERTY(int acceleration READ acceleration WRITE setAcceleration) +public: + QmlGraphicsParticleMotionGravity(QObject *parent=0) + : QmlGraphicsParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} + + int xAttractor() const { return _xAttr; } + void setXAttractor(int x) { _xAttr = x; } + + int yAttractor() const { return _yAttr; } + void setYAttractor(int y) { _yAttr = y; } + + int acceleration() const { return int(_accel * 1000000); } + void setAcceleration(int accel) { _accel = qreal(accel)/1000000.0; } + + virtual void advance(QmlGraphicsParticle &, int interval); + +private: + int _xAttr; + int _yAttr; + qreal _accel; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionWander : public QmlGraphicsParticleMotion +{ + Q_OBJECT +public: + QmlGraphicsParticleMotionWander() + : QmlGraphicsParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} + + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); + + struct Data { + qreal x_targetV; + qreal y_targetV; + qreal x_peak; + qreal y_peak; + qreal x_var; + qreal y_var; + }; + + Q_PROPERTY(int xvariance READ xVariance WRITE setXVariance) + int xVariance() const { return int(_xvariance * 1000); } + void setXVariance(int var) { _xvariance = var / 1000.0; } + + Q_PROPERTY(int yvariance READ yVariance WRITE setYVariance) + int yVariance() const { return int(_yvariance * 1000); } + void setYVariance(int var) { _yvariance = var / 1000.0; } + + Q_PROPERTY(int pace READ pace WRITE setPace) + int pace() const { return int(_pace * 1000); } + void setPace(int pace) { _pace = pace / 1000.0; } + +private: + QmlGraphicsParticles *particles; + qreal _xvariance; + qreal _yvariance; + qreal _pace; +}; + +class QmlGraphicsParticlesPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticles : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QUrl source READ source WRITE setSource) + Q_PROPERTY(int count READ count WRITE setCount) + Q_PROPERTY(int lifeSpan READ lifeSpan WRITE setLifeSpan) + Q_PROPERTY(int lifeSpanDeviation READ lifeSpanDeviation WRITE setLifeSpanDeviation) + Q_PROPERTY(int fadeInDuration READ fadeInDuration WRITE setFadeInDuration) + Q_PROPERTY(int fadeOutDuration READ fadeOutDuration WRITE setFadeOutDuration) + Q_PROPERTY(qreal angle READ angle WRITE setAngle) + Q_PROPERTY(qreal angleDeviation READ angleDeviation WRITE setAngleDeviation) + Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) + Q_PROPERTY(qreal velocityDeviation READ velocityDeviation WRITE setVelocityDeviation) + Q_PROPERTY(bool streamIn READ streamIn WRITE setStreamIn) + Q_PROPERTY(bool emitting READ emitting WRITE setEmitting) + Q_PROPERTY(QmlGraphicsParticleMotion *motion READ motion WRITE setMotion) + Q_CLASSINFO("DefaultProperty", "motion") + +public: + QmlGraphicsParticles(QmlGraphicsItem *parent=0); + ~QmlGraphicsParticles(); + + QUrl source() const; + void setSource(const QUrl &); + + int count() const; + void setCount(int cnt); + + int lifeSpan() const; + void setLifeSpan(int); + + int lifeSpanDeviation() const; + void setLifeSpanDeviation(int); + + int fadeInDuration() const; + void setFadeInDuration(int); + + int fadeOutDuration() const; + void setFadeOutDuration(int); + + qreal angle() const; + void setAngle(qreal); + + qreal angleDeviation() const; + void setAngleDeviation(qreal); + + qreal velocity() const; + void setVelocity(qreal); + + qreal velocityDeviation() const; + void setVelocityDeviation(qreal); + + bool streamIn() const; + void setStreamIn(bool); + + bool emitting() const; + void setEmitting(bool); + + QmlGraphicsParticleMotion *motion() const; + void setMotion(QmlGraphicsParticleMotion *); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +protected: + virtual void componentComplete(); + QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + void imageLoaded(); + +private: + Q_DISABLE_COPY(QmlGraphicsParticles) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsParticles) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsParticleMotion) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionLinear) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionGravity) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionWander) +QML_DECLARE_TYPE(QmlGraphicsParticles) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/fx.pri b/src/declarative/fx/fx.pri index fc4e640..7759ab1 100644 --- a/src/declarative/fx/fx.pri +++ b/src/declarative/fx/fx.pri @@ -1,84 +1,84 @@ HEADERS += \ - fx/qfxanchors.h \ - fx/qfxanchors_p.h \ - fx/qfxevents_p.h \ - fx/qfxflickable.h \ - fx/qfxflickable_p.h \ - fx/qfxflipable.h \ - fx/qfxgridview.h \ - fx/qfximage.h \ - fx/qfximagebase.h \ - fx/qfxborderimage.h \ - fx/qfxpainteditem.h \ - fx/qfxpainteditem_p.h \ - fx/qfximage_p.h \ - fx/qfxborderimage_p.h \ - fx/qfximagebase_p.h \ - fx/qfxitem.h \ - fx/qfxitem_p.h \ - fx/qfxfocuspanel.h \ - fx/qfxfocusscope.h \ - fx/qfxpositioners.h \ - fx/qfxpositioners_p.h \ - fx/qfxloader.h \ - fx/qfxloader_p.h \ - fx/qfxmouseregion.h \ - fx/qfxmouseregion_p.h \ - fx/qfxpath.h \ - fx/qfxpath_p.h \ - fx/qfxpathview.h \ - fx/qfxpathview_p.h \ - fx/qfxrect.h \ - fx/qfxrect_p.h \ - fx/qfxrepeater.h \ - fx/qfxrepeater_p.h \ - fx/qfxscalegrid_p.h \ - fx/qfxtextinput.h \ - fx/qfxtextinput_p.h \ - fx/qfxtextedit.h \ - fx/qfxtextedit_p.h \ - fx/qfxtext.h \ - fx/qfxtext_p.h \ - fx/qfxpixmapcache.h \ - fx/qfxvisualitemmodel.h \ - fx/qfxlistview.h \ - fx/qfxgraphicsobjectcontainer.h \ - fx/qfxlayoutitem.h \ - fx/qfxeffects.cpp + fx/qmlgraphicsanchors.h \ + fx/qmlgraphicsanchors_p.h \ + fx/qmlgraphicsevents_p.h \ + fx/qmlgraphicsflickable.h \ + fx/qmlgraphicsflickable_p.h \ + fx/qmlgraphicsflipable.h \ + fx/qmlgraphicsgridview.h \ + fx/qmlgraphicsimage.h \ + fx/qmlgraphicsimagebase.h \ + fx/qmlgraphicsborderimage.h \ + fx/qmlgraphicspainteditem.h \ + fx/qmlgraphicspainteditem_p.h \ + fx/qmlgraphicsimage_p.h \ + fx/qmlgraphicsborderimage_p.h \ + fx/qmlgraphicsimagebase_p.h \ + fx/qmlgraphicsitem.h \ + fx/qmlgraphicsitem_p.h \ + fx/qmlgraphicsfocuspanel.h \ + fx/qmlgraphicsfocusscope.h \ + fx/qmlgraphicspositioners.h \ + fx/qmlgraphicspositioners_p.h \ + fx/qmlgraphicsloader.h \ + fx/qmlgraphicsloader_p.h \ + fx/qmlgraphicsmouseregion.h \ + fx/qmlgraphicsmouseregion_p.h \ + fx/qmlgraphicspath.h \ + fx/qmlgraphicspath_p.h \ + fx/qmlgraphicspathview.h \ + fx/qmlgraphicspathview_p.h \ + fx/qmlgraphicsrect.h \ + fx/qmlgraphicsrect_p.h \ + fx/qmlgraphicsrepeater.h \ + fx/qmlgraphicsrepeater_p.h \ + fx/qmlgraphicsscalegrid_p.h \ + fx/qmlgraphicstextinput.h \ + fx/qmlgraphicstextinput_p.h \ + fx/qmlgraphicstextedit.h \ + fx/qmlgraphicstextedit_p.h \ + fx/qmlgraphicstext.h \ + fx/qmlgraphicstext_p.h \ + fx/qmlgraphicspixmapcache.h \ + fx/qmlgraphicsvisualitemmodel.h \ + fx/qmlgraphicslistview.h \ + fx/qmlgraphicsgraphicsobjectcontainer.h \ + fx/qmlgraphicslayoutitem.h \ + fx/qmlgraphicseffects.cpp SOURCES += \ - fx/qfxanchors.cpp \ - fx/qfxevents.cpp \ - fx/qfxflickable.cpp \ - fx/qfxflipable.cpp \ - fx/qfxgridview.cpp \ - fx/qfximage.cpp \ - fx/qfxborderimage.cpp \ - fx/qfximagebase.cpp \ - fx/qfxpainteditem.cpp \ - fx/qfxitem.cpp \ - fx/qfxfocuspanel.cpp \ - fx/qfxfocusscope.cpp \ - fx/qfxpositioners.cpp \ - fx/qfxloader.cpp \ - fx/qfxmouseregion.cpp \ - fx/qfxpath.cpp \ - fx/qfxpathview.cpp \ - fx/qfxrect.cpp \ - fx/qfxrepeater.cpp \ - fx/qfxscalegrid.cpp \ - fx/qfxtextinput.cpp \ - fx/qfxtext.cpp \ - fx/qfxtextedit.cpp \ - fx/qfxpixmapcache.cpp \ - fx/qfxvisualitemmodel.cpp \ - fx/qfxlistview.cpp \ - fx/qfxgraphicsobjectcontainer.cpp \ - fx/qfxlayoutitem.cpp \ + fx/qmlgraphicsanchors.cpp \ + fx/qmlgraphicsevents.cpp \ + fx/qmlgraphicsflickable.cpp \ + fx/qmlgraphicsflipable.cpp \ + fx/qmlgraphicsgridview.cpp \ + fx/qmlgraphicsimage.cpp \ + fx/qmlgraphicsborderimage.cpp \ + fx/qmlgraphicsimagebase.cpp \ + fx/qmlgraphicspainteditem.cpp \ + fx/qmlgraphicsitem.cpp \ + fx/qmlgraphicsfocuspanel.cpp \ + fx/qmlgraphicsfocusscope.cpp \ + fx/qmlgraphicspositioners.cpp \ + fx/qmlgraphicsloader.cpp \ + fx/qmlgraphicsmouseregion.cpp \ + fx/qmlgraphicspath.cpp \ + fx/qmlgraphicspathview.cpp \ + fx/qmlgraphicsrect.cpp \ + fx/qmlgraphicsrepeater.cpp \ + fx/qmlgraphicsscalegrid.cpp \ + fx/qmlgraphicstextinput.cpp \ + fx/qmlgraphicstext.cpp \ + fx/qmlgraphicstextedit.cpp \ + fx/qmlgraphicspixmapcache.cpp \ + fx/qmlgraphicsvisualitemmodel.cpp \ + fx/qmlgraphicslistview.cpp \ + fx/qmlgraphicsgraphicsobjectcontainer.cpp \ + fx/qmlgraphicslayoutitem.cpp \ contains(QT_CONFIG, webkit) { QT+=webkit - SOURCES += fx/qfxwebview.cpp - HEADERS += fx/qfxwebview.h + SOURCES += fx/qmlgraphicswebview.cpp + HEADERS += fx/qmlgraphicswebview.h } diff --git a/src/declarative/fx/qfxanchors.cpp b/src/declarative/fx/qfxanchors.cpp deleted file mode 100644 index 3908520..0000000 --- a/src/declarative/fx/qfxanchors.cpp +++ /dev/null @@ -1,962 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxanchors_p.h" -#include "qfxitem.h" -#include "qfxitem_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QmlGraphicsAnchors) - -//TODO: should we cache relationships, so we don't have to check each time (parent-child or sibling)? -//TODO: support non-parent, non-sibling (need to find lowest common ancestor) - -//### const item? -//local position -static qreal position(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) -{ - qreal ret = 0.0; - switch(anchorLine) { - case QmlGraphicsAnchorLine::Left: - ret = item->x(); - break; - case QmlGraphicsAnchorLine::Right: - ret = item->x() + item->width(); - break; - case QmlGraphicsAnchorLine::Top: - ret = item->y(); - break; - case QmlGraphicsAnchorLine::Bottom: - ret = item->y() + item->height(); - break; - case QmlGraphicsAnchorLine::HCenter: - ret = item->x() + item->width()/2; - break; - case QmlGraphicsAnchorLine::VCenter: - ret = item->y() + item->height()/2; - break; - case QmlGraphicsAnchorLine::Baseline: - ret = item->y() + item->baselineOffset(); - break; - default: - break; - } - - return ret; -} - -//position when origin is 0,0 -static qreal adjustedPosition(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) -{ - int ret = 0; - switch(anchorLine) { - case QmlGraphicsAnchorLine::Left: - ret = 0; - break; - case QmlGraphicsAnchorLine::Right: - ret = item->width(); - break; - case QmlGraphicsAnchorLine::Top: - ret = 0; - break; - case QmlGraphicsAnchorLine::Bottom: - ret = item->height(); - break; - case QmlGraphicsAnchorLine::HCenter: - ret = item->width()/2; - break; - case QmlGraphicsAnchorLine::VCenter: - ret = item->height()/2; - break; - case QmlGraphicsAnchorLine::Baseline: - ret = item->baselineOffset(); - break; - default: - break; - } - - return ret; -} - -/*! - \internal - \class QmlGraphicsAnchors - \ingroup group_layouts - \brief The QmlGraphicsAnchors class provides a way to lay out items relative to other items. - - \warning Currently, only anchoring to siblings or parent is supported. -*/ - -QmlGraphicsAnchors::QmlGraphicsAnchors(QObject *parent) - : QObject(*new QmlGraphicsAnchorsPrivate(), parent) -{ -} - -QmlGraphicsAnchors::~QmlGraphicsAnchors() -{ - Q_D(QmlGraphicsAnchors); - d->remDepend(d->fill); - d->remDepend(d->centerIn); - d->remDepend(d->left.item); - d->remDepend(d->right.item); - d->remDepend(d->top.item); - d->remDepend(d->bottom.item); - d->remDepend(d->vCenter.item); - d->remDepend(d->hCenter.item); - d->remDepend(d->baseline.item); -} - -void QmlGraphicsAnchorsPrivate::fillChanged() -{ - if (!fill || !isItemComplete()) - return; - - if (fill == item->parentItem()) { //child-parent - setItemPos(QPointF(leftMargin, topMargin)); - } else if (fill->parentItem() == item->parentItem()) { //siblings - setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin)); - } - setItemWidth(fill->width()-leftMargin-rightMargin); - setItemHeight(fill->height()-topMargin-bottomMargin); -} - -void QmlGraphicsAnchorsPrivate::centerInChanged() -{ - if (!centerIn || fill || !isItemComplete()) - return; - - if (centerIn == item->parentItem()) { - QPointF p((item->parentItem()->width() - item->width()) / 2., - (item->parentItem()->height() - item->height()) / 2.); - setItemPos(p); - - } else if (centerIn->parentItem() == item->parentItem()) { - - QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2., - centerIn->y() + (centerIn->height() - item->height()) / 2.); - setItemPos(p); - } -} - -void QmlGraphicsAnchorsPrivate::clearItem(QmlGraphicsItem *item) -{ - if (!item) - return; - if (fill == item) - fill = 0; - if (centerIn == item) - centerIn = 0; - if (left.item == item) { - left.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasLeftAnchor; - } - if (right.item == item) { - right.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasRightAnchor; - } - if (top.item == item) { - top.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasTopAnchor; - } - if (bottom.item == item) { - bottom.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasBottomAnchor; - } - if (vCenter.item == item) { - vCenter.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasVCenterAnchor; - } - if (hCenter.item == item) { - hCenter.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasHCenterAnchor; - } - if (baseline.item == item) { - baseline.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasBaselineAnchor; - } -} - -void QmlGraphicsAnchorsPrivate::addDepend(QmlGraphicsItem *item) -{ - Q_Q(QmlGraphicsAnchors); - if (!item) - return; - QmlGraphicsItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); - p->dependantAnchors.append(q); -} - -void QmlGraphicsAnchorsPrivate::remDepend(QmlGraphicsItem *item) -{ - Q_Q(QmlGraphicsAnchors); - if (!item) - return; - QmlGraphicsItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); - p->dependantAnchors.removeOne(q); -} - -bool QmlGraphicsAnchorsPrivate::isItemComplete() const -{ - return componentComplete; -} - -void QmlGraphicsAnchors::classBegin() -{ - Q_D(QmlGraphicsAnchors); - d->componentComplete = false; -} - -void QmlGraphicsAnchors::componentComplete() -{ - Q_D(QmlGraphicsAnchors); - d->componentComplete = true; -} - -void QmlGraphicsAnchorsPrivate::setItemHeight(qreal v) -{ - updatingMe = true; - item->setHeight(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemWidth(qreal v) -{ - updatingMe = true; - item->setWidth(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemX(qreal v) -{ - updatingMe = true; - item->setX(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemY(qreal v) -{ - updatingMe = true; - item->setY(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemPos(const QPointF &v) -{ - updatingMe = true; - item->setPos(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::updateMe() -{ - if (updatingMe) { - updatingMe = false; - return; - } - - fillChanged(); - centerInChanged(); - updateHorizontalAnchors(); - updateVerticalAnchors(); -} - -void QmlGraphicsAnchorsPrivate::updateOnComplete() -{ - fillChanged(); - centerInChanged(); - updateHorizontalAnchors(); - updateVerticalAnchors(); -} - -void QmlGraphicsAnchorsPrivate::update(QmlGraphicsItem *, const QRectF &newG, const QRectF &oldG) -{ - fillChanged(); - centerInChanged(); - - if (newG.x() != oldG.x() || newG.width() != oldG.width()) - updateHorizontalAnchors(); - if (newG.y() != oldG.y() || newG.height() != oldG.height()) - updateVerticalAnchors(); -} - -QmlGraphicsItem *QmlGraphicsAnchors::fill() const -{ - Q_D(const QmlGraphicsAnchors); - return d->fill; -} - -void QmlGraphicsAnchors::setFill(QmlGraphicsItem *f) -{ - Q_D(QmlGraphicsAnchors); - if (!f) { - d->remDepend(d->fill); - d->fill = f; - return; - } - if (f != d->item->parentItem() && f->parentItem() != d->item->parentItem()){ - qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); - return; - } - d->remDepend(d->fill); - d->fill = f; - d->addDepend(d->fill); - - d->fillChanged(); -} - -QmlGraphicsItem *QmlGraphicsAnchors::centerIn() const -{ - Q_D(const QmlGraphicsAnchors); - return d->centerIn; -} - -void QmlGraphicsAnchors::setCenterIn(QmlGraphicsItem* c) -{ - Q_D(QmlGraphicsAnchors); - if (!c) { - d->remDepend(d->centerIn); - d->centerIn = c; - return; - } - if (c != d->item->parentItem() && c->parentItem() != d->item->parentItem()){ - qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); - return; - } - - d->remDepend(d->centerIn); - d->centerIn = c; - d->addDepend(d->centerIn); - - d->centerInChanged(); -} - -bool QmlGraphicsAnchorsPrivate::calcStretch(const QmlGraphicsAnchorLine &edge1, - const QmlGraphicsAnchorLine &edge2, - int offset1, - int offset2, - QmlGraphicsAnchorLine::AnchorLine line, - int &stretch) -{ - bool edge1IsParent = (edge1.item == item->parentItem()); - bool edge2IsParent = (edge2.item == item->parentItem()); - bool edge1IsSibling = (edge1.item->parentItem() == item->parentItem()); - bool edge2IsSibling = (edge2.item->parentItem() == item->parentItem()); - - bool invalid = false; - if ((edge2IsParent && edge1IsParent) || (edge2IsSibling && edge1IsSibling)) { - stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(edge1.item, edge1.anchorLine) + offset1); - } else if (edge2IsParent && edge1IsSibling) { - stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(item->parentItem(), line) - + (int)position(edge1.item, edge1.anchorLine) + offset1); - } else if (edge2IsSibling && edge1IsParent) { - stretch = ((int)position(item->parentItem(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(edge1.item, edge1.anchorLine) + offset1); - } else - invalid = true; - - return invalid; -} - -void QmlGraphicsAnchorsPrivate::updateVerticalAnchors() -{ - if (fill || centerIn || !isItemComplete()) - return; - - if (updatingVerticalAnchor < 2) { - ++updatingVerticalAnchor; - if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor) { - //Handle stretching - bool invalid = true; - int height = 0; - if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { - invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QmlGraphicsAnchorLine::Top, height); - } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QmlGraphicsAnchorLine::Top, height); - height *= 2; - } - if (!invalid) - setItemHeight(height); - - //Handle top - if (top.item == item->parentItem()) { - setItemY(adjustedPosition(top.item, top.anchorLine) + topMargin); - } else if (top.item->parentItem() == item->parentItem()) { - setItemY(position(top.item, top.anchorLine) + topMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { - //Handle stretching (top + bottom case is handled above) - if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - int height = 0; - bool invalid = calcStretch(vCenter, bottom, vCenterOffset, -bottomMargin, - QmlGraphicsAnchorLine::Top, height); - if (!invalid) - setItemHeight(height*2); - } - - //Handle bottom - if (bottom.item == item->parentItem()) { - setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); - } else if (bottom.item->parentItem() == item->parentItem()) { - setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - //(stetching handled above) - - //Handle vCenter - if (vCenter.item == item->parentItem()) { - setItemY(adjustedPosition(vCenter.item, vCenter.anchorLine) - - item->height()/2 + vCenterOffset); - } else if (vCenter.item->parentItem() == item->parentItem()) { - setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor) { - //Handle baseline - if (baseline.item->parentItem() == item->parentItem()) { - setItemY(position(baseline.item, baseline.anchorLine) - item->baselineOffset() + baselineOffset); - } - } - --updatingVerticalAnchor; - } else { - // ### Make this certain :) - qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on vertical anchor."), item); - } -} - -void QmlGraphicsAnchorsPrivate::updateHorizontalAnchors() -{ - if (fill || centerIn || !isItemComplete()) - return; - - if (updatingHorizontalAnchor < 2) { - ++updatingHorizontalAnchor; - - if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor) { - //Handle stretching - bool invalid = true; - int width = 0; - if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { - invalid = calcStretch(left, right, leftMargin, -rightMargin, QmlGraphicsAnchorLine::Left, width); - } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QmlGraphicsAnchorLine::Left, width); - width *= 2; - } - if (!invalid) - setItemWidth(width); - - //Handle left - if (left.item == item->parentItem()) { - setItemX(adjustedPosition(left.item, left.anchorLine) + leftMargin); - } else if (left.item->parentItem() == item->parentItem()) { - setItemX(position(left.item, left.anchorLine) + leftMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { - //Handle stretching (left + right case is handled in updateLeftAnchor) - if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - int width = 0; - bool invalid = calcStretch(hCenter, right, hCenterOffset, -rightMargin, - QmlGraphicsAnchorLine::Left, width); - if (!invalid) - setItemWidth(width*2); - } - - //Handle right - if (right.item == item->parentItem()) { - setItemX(adjustedPosition(right.item, right.anchorLine) - item->width() - rightMargin); - } else if (right.item->parentItem() == item->parentItem()) { - setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - //Handle hCenter - if (hCenter.item == item->parentItem()) { - setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); - } else if (hCenter.item->parentItem() == item->parentItem()) { - setItemX(position(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); - } - } - - --updatingHorizontalAnchor; - } else { - // ### Make this certain :) - qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); - } -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::top() const -{ - Q_D(const QmlGraphicsAnchors); - return d->top; -} - -void QmlGraphicsAnchors::setTop(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasTopAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasTopAnchor; - return; - } - - d->remDepend(d->top.item); - d->top = edge; - d->addDepend(d->top.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetTop() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasTopAnchor; - d->remDepend(d->top.item); - d->top = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::bottom() const -{ - Q_D(const QmlGraphicsAnchors); - return d->bottom; -} - -void QmlGraphicsAnchors::setBottom(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasBottomAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasBottomAnchor; - return; - } - - d->remDepend(d->bottom.item); - d->bottom = edge; - d->addDepend(d->bottom.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetBottom() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasBottomAnchor; - d->remDepend(d->bottom.item); - d->bottom = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::verticalCenter() const -{ - Q_D(const QmlGraphicsAnchors); - return d->vCenter; -} - -void QmlGraphicsAnchors::setVerticalCenter(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasVCenterAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasVCenterAnchor; - return; - } - - d->remDepend(d->vCenter.item); - d->vCenter = edge; - d->addDepend(d->vCenter.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetVerticalCenter() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasVCenterAnchor; - d->remDepend(d->vCenter.item); - d->vCenter = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::baseline() const -{ - Q_D(const QmlGraphicsAnchors); - return d->baseline; -} - -void QmlGraphicsAnchors::setBaseline(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasBaselineAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasBaselineAnchor; - return; - } - - d->remDepend(d->baseline.item); - d->baseline = edge; - d->addDepend(d->baseline.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetBaseline() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasBaselineAnchor; - d->remDepend(d->baseline.item); - d->baseline = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::left() const -{ - Q_D(const QmlGraphicsAnchors); - return d->left; -} - -void QmlGraphicsAnchors::setLeft(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasLeftAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasLeftAnchor; - return; - } - - d->remDepend(d->left.item); - d->left = edge; - d->addDepend(d->left.item); - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetLeft() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasLeftAnchor; - d->remDepend(d->left.item); - d->left = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::right() const -{ - Q_D(const QmlGraphicsAnchors); - return d->right; -} - -void QmlGraphicsAnchors::setRight(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasRightAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasRightAnchor; - return; - } - - d->remDepend(d->right.item); - d->right = edge; - d->addDepend(d->right.item); - - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetRight() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasRightAnchor; - d->remDepend(d->right.item); - d->right = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::horizontalCenter() const -{ - Q_D(const QmlGraphicsAnchors); - return d->hCenter; -} - -void QmlGraphicsAnchors::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasHCenterAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasHCenterAnchor; - return; - } - - d->remDepend(d->hCenter.item); - d->hCenter = edge; - d->addDepend(d->hCenter.item); - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetHorizontalCenter() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasHCenterAnchor; - d->remDepend(d->hCenter.item); - d->hCenter = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -qreal QmlGraphicsAnchors::leftMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->leftMargin; -} - -void QmlGraphicsAnchors::setLeftMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->leftMargin == offset) - return; - d->leftMargin = offset; - d->updateHorizontalAnchors(); - emit leftMarginChanged(); -} - -qreal QmlGraphicsAnchors::rightMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->rightMargin; -} - -void QmlGraphicsAnchors::setRightMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->rightMargin == offset) - return; - d->rightMargin = offset; - d->updateHorizontalAnchors(); - emit rightMarginChanged(); -} - -qreal QmlGraphicsAnchors::horizontalCenterOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->hCenterOffset; -} - -void QmlGraphicsAnchors::setHorizontalCenterOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->hCenterOffset == offset) - return; - d->hCenterOffset = offset; - d->updateHorizontalAnchors(); - emit horizontalCenterOffsetChanged(); -} - -qreal QmlGraphicsAnchors::topMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->topMargin; -} - -void QmlGraphicsAnchors::setTopMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->topMargin == offset) - return; - d->topMargin = offset; - d->updateVerticalAnchors(); - emit topMarginChanged(); -} - -qreal QmlGraphicsAnchors::bottomMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->bottomMargin; -} - -void QmlGraphicsAnchors::setBottomMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->bottomMargin == offset) - return; - d->bottomMargin = offset; - d->updateVerticalAnchors(); - emit bottomMarginChanged(); -} - -qreal QmlGraphicsAnchors::verticalCenterOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->vCenterOffset; -} - -void QmlGraphicsAnchors::setVerticalCenterOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->vCenterOffset == offset) - return; - d->vCenterOffset = offset; - d->updateVerticalAnchors(); - emit verticalCenterOffsetChanged(); -} - -qreal QmlGraphicsAnchors::baselineOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->baselineOffset; -} - -void QmlGraphicsAnchors::setBaselineOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->baselineOffset == offset) - return; - d->baselineOffset = offset; - d->updateVerticalAnchors(); - emit baselineOffsetChanged(); -} - -QmlGraphicsAnchors::UsedAnchors QmlGraphicsAnchors::usedAnchors() const -{ - Q_D(const QmlGraphicsAnchors); - return d->usedAnchors; -} - -void QmlGraphicsAnchors::setItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsAnchors); - d->item = item; -} - -bool QmlGraphicsAnchorsPrivate::checkHValid() const -{ - if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor && - usedAnchors & QmlGraphicsAnchors::HasRightAnchor && - usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - qmlInfo(QmlGraphicsAnchors::tr("Can't specify left, right, and hcenter anchors."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkHAnchorValid(QmlGraphicsAnchorLine anchor) const -{ - if (!anchor.item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); - return false; - } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Vertical_Mask) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); - return false; - } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); - return false; - } else if (anchor.item == item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkVValid() const -{ - if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor && - usedAnchors & QmlGraphicsAnchors::HasBottomAnchor && - usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - qmlInfo(QmlGraphicsAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); - return false; - } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor && - (usedAnchors & QmlGraphicsAnchors::HasTopAnchor || - usedAnchors & QmlGraphicsAnchors::HasBottomAnchor || - usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor)) { - qmlInfo(QmlGraphicsAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) const -{ - if (!anchor.item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); - return false; - } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Horizontal_Mask) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); - return false; - } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); - return false; - } else if (anchor.item == item){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); - return false; - } - - return true; -} - -QT_END_NAMESPACE - -#include "moc_qfxanchors.cpp" - diff --git a/src/declarative/fx/qfxanchors.h b/src/declarative/fx/qfxanchors.h deleted file mode 100644 index 9e2bac6..0000000 --- a/src/declarative/fx/qfxanchors.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXANCHORS_H -#define QFXANCHORS_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsAnchorsPrivate; -class QmlGraphicsAnchorLine; -class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) - Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) - Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) - Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) - Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) - Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) - Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) - Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) - Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) - Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) - -public: - QmlGraphicsAnchors(QObject *parent=0); - virtual ~QmlGraphicsAnchors(); - - enum UsedAnchor { - HasLeftAnchor = 0x01, - HasRightAnchor = 0x02, - HasTopAnchor = 0x04, - HasBottomAnchor = 0x08, - HasHCenterAnchor = 0x10, - HasVCenterAnchor = 0x20, - HasBaselineAnchor = 0x40, - Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, - Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor - }; - Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) - - QmlGraphicsAnchorLine left() const; - void setLeft(const QmlGraphicsAnchorLine &edge); - void resetLeft(); - - QmlGraphicsAnchorLine right() const; - void setRight(const QmlGraphicsAnchorLine &edge); - void resetRight(); - - QmlGraphicsAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); - void resetHorizontalCenter(); - - QmlGraphicsAnchorLine top() const; - void setTop(const QmlGraphicsAnchorLine &edge); - void resetTop(); - - QmlGraphicsAnchorLine bottom() const; - void setBottom(const QmlGraphicsAnchorLine &edge); - void resetBottom(); - - QmlGraphicsAnchorLine verticalCenter() const; - void setVerticalCenter(const QmlGraphicsAnchorLine &edge); - void resetVerticalCenter(); - - QmlGraphicsAnchorLine baseline() const; - void setBaseline(const QmlGraphicsAnchorLine &edge); - void resetBaseline(); - - qreal leftMargin() const; - void setLeftMargin(qreal); - - qreal rightMargin() const; - void setRightMargin(qreal); - - qreal horizontalCenterOffset() const; - void setHorizontalCenterOffset(qreal); - - qreal topMargin() const; - void setTopMargin(qreal); - - qreal bottomMargin() const; - void setBottomMargin(qreal); - - qreal verticalCenterOffset() const; - void setVerticalCenterOffset(qreal); - - qreal baselineOffset() const; - void setBaselineOffset(qreal); - - QmlGraphicsItem *fill() const; - void setFill(QmlGraphicsItem *); - - QmlGraphicsItem *centerIn() const; - void setCenterIn(QmlGraphicsItem *); - - UsedAnchors usedAnchors() const; - - void setItem(QmlGraphicsItem *item); - - void classBegin(); - void componentComplete(); - -Q_SIGNALS: - void leftMarginChanged(); - void rightMarginChanged(); - void topMarginChanged(); - void bottomMarginChanged(); - void verticalCenterOffsetChanged(); - void horizontalCenterOffsetChanged(); - void baselineOffsetChanged(); - -private: - friend class QmlGraphicsItem; - Q_DISABLE_COPY(QmlGraphicsAnchors) - Q_DECLARE_PRIVATE(QmlGraphicsAnchors) -}; -Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnchors) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxanchors_p.h b/src/declarative/fx/qfxanchors_p.h deleted file mode 100644 index 50f1dc4..0000000 --- a/src/declarative/fx/qfxanchors_p.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXANCHORS_P_H -#define QFXANCHORS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxanchors.h" -#include "private/qobject_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsAnchorLine -{ -public: - QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) - { - } - - enum AnchorLine { - Invalid = 0x0, - Left = 0x01, - Right = 0x02, - Top = 0x04, - Bottom = 0x08, - HCenter = 0x10, - VCenter = 0x20, - Baseline = 0x40, - Horizontal_Mask = Left | Right | HCenter, - Vertical_Mask = Top | Bottom | VCenter | Baseline - }; - - QmlGraphicsItem *item; - AnchorLine anchorLine; -}; -Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) - -class QmlGraphicsAnchorsPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsAnchors) -public: - QmlGraphicsAnchorsPrivate() - : updatingMe(false), updatingHorizontalAnchor(0), - updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), - centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), - bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), - componentComplete(true) - { - } - - void init() - { - } - - void clearItem(QmlGraphicsItem *); - - void addDepend(QmlGraphicsItem *); - void remDepend(QmlGraphicsItem *); - bool isItemComplete() const; - - bool updatingMe; - int updatingHorizontalAnchor; - int updatingVerticalAnchor; - - void setItemHeight(qreal); - void setItemWidth(qreal); - void setItemX(qreal); - void setItemY(qreal); - void setItemPos(const QPointF &); - - void updateOnComplete(); - void updateMe(); - void update(QmlGraphicsItem *, const QRectF &, const QRectF &); - - bool checkHValid() const; - bool checkVValid() const; - bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); - - void updateHorizontalAnchors(); - void updateVerticalAnchors(); - void fillChanged(); - void centerInChanged(); - - QmlGraphicsItem *item; - QmlGraphicsAnchors::UsedAnchors usedAnchors; - - QmlGraphicsItem *fill; - QmlGraphicsItem *centerIn; - - QmlGraphicsAnchorLine left; - QmlGraphicsAnchorLine right; - QmlGraphicsAnchorLine top; - QmlGraphicsAnchorLine bottom; - QmlGraphicsAnchorLine vCenter; - QmlGraphicsAnchorLine hCenter; - QmlGraphicsAnchorLine baseline; - - qreal leftMargin; - qreal rightMargin; - qreal topMargin; - qreal bottomMargin; - qreal vCenterOffset; - qreal hCenterOffset; - qreal baselineOffset; - - bool componentComplete; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxborderimage.cpp b/src/declarative/fx/qfxborderimage.cpp deleted file mode 100644 index 1ee2f71..0000000 --- a/src/declarative/fx/qfxborderimage.cpp +++ /dev/null @@ -1,411 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxborderimage.h" -#include "qfxborderimage_p.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QmlGraphicsBorderImage) - -/*! - \qmlclass BorderImage QmlGraphicsBorderImage - \brief The BorderImage element provides an image that can be used as a border. - \inherits Item - - \snippet examples/declarative/border-image/example.qml 0 - - \image BorderImage.png - - \sa examples/declarative/border-image - */ - -/*! - \internal - \class QmlGraphicsBorderImage BorderImage - \brief The QmlGraphicsBorderImage class provides an image item that you can add to a QmlView. -*/ - -QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsItem *parent) - : QmlGraphicsImageBase(*(new QmlGraphicsBorderImagePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsBorderImage::~QmlGraphicsBorderImage() -{ - Q_D(QmlGraphicsBorderImage); - if (d->sciReply) - d->sciReply->deleteLater(); - if (d->sciPendingPixmapCache) - QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); -} -/*! - \qmlproperty enum BorderImage::status - - This property holds the status of image loading. It can be one of: - \list - \o Null - no image has been set - \o Ready - the image has been loaded - \o Loading - the image is currently being loaded - \o Error - an error occurred while loading the image - \endlist - - \sa progress -*/ - -/*! - \qmlproperty real BorderImage::progress - - This property holds the progress of image loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ - -/*! - \qmlproperty bool BorderImage::smooth - - Set this property if you want the image to be smoothly filtered when scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the image is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the image is stationary on - the screen. A common pattern when animating an image is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -/*! - \qmlproperty url BorderImage::source - - BorderImage can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. - - It can also handle .sci files, which are a Qml-specific format. A .sci file uses a simple text-based format that specifies - the borders, the image file and the tile rules. - - The following .sci file sets the borders to 10 on each side for the image \c picture.png: - \qml - border.left: 10 - border.top: 10 - border.bottom: 10 - border.right: 10 - source: picture.png - \endqml - - The URL may be absolute, or relative to the URL of the component. -*/ - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - - -void QmlGraphicsBorderImage::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsBorderImage); - //equality is fairly expensive, so we bypass for simple, common case - if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) - return; - - if (d->sciReply) { - d->sciReply->deleteLater(); - d->sciReply = 0; - } - - if (d->pendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->url, this); - d->pendingPixmapCache = false; - } - if (d->sciPendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); - d->sciPendingPixmapCache = false; - } - - d->url = url; - d->sciurl = QUrl(); - if (d->progress != 0.0) { - d->progress = 0.0; - emit progressChanged(d->progress); - } - - if (url.isEmpty()) { - d->pix = QPixmap(); - d->status = Null; - d->progress = 1.0; - setImplicitWidth(0); - setImplicitHeight(0); - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } else { - d->status = Loading; - if (d->url.path().endsWith(QLatin1String(".sci"))) { -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(d->url); - if (!lf.isEmpty()) { - QFile file(lf); - file.open(QIODevice::ReadOnly); - setGridScaledImage(QmlGraphicsGridScaledImage(&file)); - } else -#endif - { - QNetworkRequest req(d->url); - d->sciReply = qmlEngine(this)->networkAccessManager()->get(req); - QObject::connect(d->sciReply, SIGNAL(finished()), - this, SLOT(sciRequestFinished())); - } - } else { - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); - if (reply) { - d->pendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } - } - - emit statusChanged(d->status); -} - -/*! - \qmlproperty int BorderImage::border.left - \qmlproperty int BorderImage::border.right - \qmlproperty int BorderImage::border.top - \qmlproperty int BorderImage::border.bottom - - \target ImagexmlpropertiesscaleGrid - - The 4 border lines (2 horizontal and 2 vertical) break an image into 9 sections, as shown below: - - \image declarative-scalegrid.png - - When the image is scaled: - \list - \i the corners (sections 1, 3, 7, and 9) are not scaled at all - \i the middle (section 5) is scaled according to BorderImage::horizontalTileMode and BorderImage::verticalTileMode - \i sections 2 and 8 are scaled according to BorderImage::horizontalTileMode - \i sections 4 and 6 are scaled according to BorderImage::verticalTileMode - \endlist - - Each border line (left, right, top, and bottom) specifies an offset from the respective side. For example, \c{border.bottom: 10} sets the bottom line 10 pixels up from the bottom of the image. - - The border lines can also be specified using a - \l {BorderImage::source}{.sci file}. -*/ - -QmlGraphicsScaleGrid *QmlGraphicsBorderImage::border() -{ - Q_D(QmlGraphicsBorderImage); - return d->getScaleGrid(); -} - -/*! - \qmlproperty TileMode BorderImage::horizontalTileMode - \qmlproperty TileMode BorderImage::verticalTileMode - - This property describes how to repeat or stretch the middle parts of the border image. - - \list - \o Stretch - Scale the image to fit to the available area. - \o Repeat - Tile the image until there is no more space. May crop the last image. - \o Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. - \endlist -*/ -QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::horizontalTileMode() const -{ - Q_D(const QmlGraphicsBorderImage); - return d->horizontalTileMode; -} - -void QmlGraphicsBorderImage::setHorizontalTileMode(TileMode t) -{ - Q_D(QmlGraphicsBorderImage); - if (t != d->horizontalTileMode) { - d->horizontalTileMode = t; - emit horizontalTileModeChanged(); - update(); - } -} - -QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::verticalTileMode() const -{ - Q_D(const QmlGraphicsBorderImage); - return d->verticalTileMode; -} - -void QmlGraphicsBorderImage::setVerticalTileMode(TileMode t) -{ - Q_D(QmlGraphicsBorderImage); - if (t != d->verticalTileMode) { - d->verticalTileMode = t; - emit verticalTileModeChanged(); - update(); - } -} - -void QmlGraphicsBorderImage::setGridScaledImage(const QmlGraphicsGridScaledImage& sci) -{ - Q_D(QmlGraphicsBorderImage); - if (!sci.isValid()) { - d->status = Error; - emit statusChanged(d->status); - } else { - QmlGraphicsScaleGrid *sg = border(); - sg->setTop(sci.gridTop()); - sg->setBottom(sci.gridBottom()); - sg->setLeft(sci.gridLeft()); - sg->setRight(sci.gridRight()); - d->horizontalTileMode = sci.horizontalTileRule(); - d->verticalTileMode = sci.verticalTileRule(); - - d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl())); - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); - if (reply) { - d->sciPendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } -} - -void QmlGraphicsBorderImage::requestFinished() -{ - Q_D(QmlGraphicsBorderImage); - - if (d->url.path().endsWith(QLatin1String(".sci"))) { - d->sciPendingPixmapCache = false; - QmlGraphicsPixmapCache::find(d->sciurl, &d->pix); - } else { - d->pendingPixmapCache = false; - if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) - d->status = Error; - } - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); -} - -void QmlGraphicsBorderImage::sciRequestFinished() -{ - Q_D(QmlGraphicsBorderImage); - if (d->sciReply->error() != QNetworkReply::NoError) { - d->status = Error; - d->sciReply->deleteLater(); - d->sciReply = 0; - emit statusChanged(d->status); - } else { - QmlGraphicsGridScaledImage sci(d->sciReply); - d->sciReply->deleteLater(); - d->sciReply = 0; - setGridScaledImage(sci); - } -} - -void QmlGraphicsBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsBorderImage); - if (d->pix.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - QMargins margins(border()->top(), border()->left(), border()->bottom(), border()->right()); - QTileRules rules((Qt::TileRule)d->horizontalTileMode, (Qt::TileRule)d->verticalTileMode); - qDrawBorderPixmap(p, QRect(0, 0, (int)d->width, (int)d->height), margins, d->pix, d->pix.rect(), margins, rules); - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImageBase(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxborderimage.h b/src/declarative/fx/qfxborderimage.h deleted file mode 100644 index b6f99a3..0000000 --- a/src/declarative/fx/qfxborderimage.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXBORDERIMAGE_H -#define QFXBORDERIMAGE_H - -#include -#include "qfximagebase.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsScaleGrid; -class QmlGraphicsGridScaledImage; -class QmlGraphicsBorderImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(TileMode) - - Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) - Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) - Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) - -public: - QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsBorderImage(); - - QmlGraphicsScaleGrid *border(); - - enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; - - TileMode horizontalTileMode() const; - void setHorizontalTileMode(TileMode); - - TileMode verticalTileMode() const; - void setVerticalTileMode(TileMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - void setSource(const QUrl &url); - -Q_SIGNALS: - void horizontalTileModeChanged(); - void verticalTileModeChanged(); - -protected: - QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); - -private: - void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); - -private Q_SLOTS: - void requestFinished(); - void sciRequestFinished(); - -private: - Q_DISABLE_COPY(QmlGraphicsBorderImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsBorderImage) -QT_END_HEADER - -#endif // QFXBORDERIMAGE_H diff --git a/src/declarative/fx/qfxborderimage_p.h b/src/declarative/fx/qfxborderimage_p.h deleted file mode 100644 index 75a638c..0000000 --- a/src/declarative/fx/qfxborderimage_p.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXBORDERIMAGE_P_H -#define QFXBORDERIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfximagebase_p.h" -#include "qfxscalegrid_p.h" - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) - -public: - QmlGraphicsBorderImagePrivate() - : border(0), sciReply(0), - sciPendingPixmapCache(false), - horizontalTileMode(QmlGraphicsBorderImage::Stretch), - verticalTileMode(QmlGraphicsBorderImage::Stretch) - { - } - - ~QmlGraphicsBorderImagePrivate() - { - } - - QmlGraphicsScaleGrid *getScaleGrid() - { - Q_Q(QmlGraphicsBorderImage); - if (!border) - border = new QmlGraphicsScaleGrid(q); - return border; - } - - QmlGraphicsScaleGrid *border; - QUrl sciurl; - QNetworkReply *sciReply; - bool sciPendingPixmapCache; - QmlGraphicsBorderImage::TileMode horizontalTileMode; - QmlGraphicsBorderImage::TileMode verticalTileMode; -}; - -QT_END_NAMESPACE - -#endif // QFXBORDERIMAGE_P_H diff --git a/src/declarative/fx/qfxeffects.cpp b/src/declarative/fx/qfxeffects.cpp deleted file mode 100644 index ebdd880..0000000 --- a/src/declarative/fx/qfxeffects.cpp +++ /dev/null @@ -1,238 +0,0 @@ -#include -#include -#include - -QML_DECLARE_TYPE(QGraphicsEffect) -QML_DEFINE_NOCREATE_TYPE(QGraphicsEffect) - -QML_DECLARE_TYPE(QGraphicsBlurEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Blur,QGraphicsBlurEffect) - -/*! - \qmlclass Blur - \brief The Blur object provides a blur effect. - - A blur effect blurs the source item. This effect is useful for reducing details, - such as when the source loses focus and you want to draw attention to other - elements. The level of detail can be modified using the blurRadius property. - Use blurHint to choose the quality or performance blur hints. - - By default, the blur radius is 5 pixels. - - \img graphicseffect-blur.png -*/ - -/*! - \qmlproperty real Blur::blurRadius - - blurRadius controls how blurry an item will appear. - Using a smaller radius results in a sharper appearance, whereas a bigger - radius results in a more blurred appearance. - - By default, the blur radius is 5 pixels. -*/ -/*! - \qmlproperty enumeration Blur::blurHint - - Use the Qt.PerformanceHint hint to say that you want a faster blur, - and the Qt.QualityHint hint to say that you prefer a higher quality blur. - - When animating the blur radius it's recommended to use Qt.PerformanceHint. - - By default, the blur hint is Qt.PerformanceHint. -*/ - -QML_DECLARE_TYPE(QGraphicsGrayscaleEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grayscale,QGraphicsGrayscaleEffect) - -/*! - \qmlclass Grayscale - \brief The Grayscale object provides a grayscale effect. - - A grayscale effect renders the source item in shades of gray. - - \img graphicseffect-grayscale.png -*/ - -/*! - \qmlproperty real Grayscale::strength - - To what extent the source item is "grayed". A strength of 0.0 is equal to no effect, - while 1.0 means full grayscale. By default, the strength is 1.0. -*/ - -QML_DECLARE_TYPE(QGraphicsColorizeEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Colorize,QGraphicsColorizeEffect) - -/*! - \qmlclass Colorize - \brief The Colorize object provides a colorize effect. - - A colorize effect renders the source item with a tint of its color. - - By default, the color is light blue. - - \img graphicseffect-colorize.png -*/ - -/*! - \qmlproperty color Colorize::color - The color of the effect. - - By default, the color is light blue. -*/ - -/*! - \qmlproperty real Colorize::strength - - To what extent the source item is "colored". A strength of 0.0 is equal to no effect, - while 1.0 means full colorization. By default, the strength is 1.0. -*/ - -QML_DECLARE_TYPE(QGraphicsPixelizeEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pixelize,QGraphicsPixelizeEffect) - -/*! - \qmlclass Pixelize - \brief The Pixelize object provides a pixelize effect. - - A pixelize effect renders the source item in lower resolution. The resolution - can be modified using the pixelSize property. - - By default, the pixel size is 3. - - \img graphicseffect-pixelize.png -*/ - -/*! - \qmlproperty int Pixelize::pixelSize - The size of a pixel in the effect. - - Setting the pixel size to 2 means two pixels in the source item will be used to - represent one pixel in the output. Using a bigger size results in lower resolution. - - By default, the pixel size is 3. -*/ - - -QML_DECLARE_TYPE(QGraphicsDropShadowEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,DropShadow,QGraphicsDropShadowEffect) - -/*! - \qmlclass DropShadow - \brief The DropShadow object provides a drop shadow effect. - - A drop shadow effect renders the source item with a drop shadow. The color of - the drop shadow can be modified using the color property. The drop - shadow offset can be modified using the xOffset and yOffset properties and the blur - radius of the drop shadow can be changed with the blurRadius property. - - By default, the drop shadow is a semi-transparent dark gray shadow, - blurred with a radius of 1 at an offset of 8 pixels towards the lower right. - - \img graphicseffect-drop-shadow.png -*/ - -/*! - \qmlproperty real DropShadow::xOffset - \qmlproperty real DropShadow::yOffset - The shadow offset in pixels. - - By default, xOffset and yOffset are 8 pixels. -*/ - -/*! - \qmlproperty real DropShadow::blurRadius - The blur radius in pixels of the drop shadow. - - Using a smaller radius results in a sharper shadow, whereas using a bigger - radius results in a more blurred shadow. - - By default, the blur radius is 1 pixel. -*/ - -/*! - \qmlproperty color DropShadow::color - The color of the drop shadow. - - By default, the drop color is a semi-transparent dark gray. -*/ - -QML_DECLARE_TYPE(QGraphicsOpacityEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Opacity,QGraphicsOpacityEffect) - -/*! - \qmlclass Opacity - \brief The Opacity object provides an opacity effect. - - An opacity effect renders the source with an opacity. This effect is useful - for making the source semi-transparent, similar to a fade-in/fade-out - sequence. The opacity can be modified using the opacity property. - - By default, the opacity is 0.7. - - \img graphicseffect-opacity.png -*/ - -/*! - \qmlproperty real Opacity::opacity - This property specifies how opaque an item should appear. - - The value should be in the range of 0.0 to 1.0, where 0.0 is - fully transparent and 1.0 is fully opaque. - - By default, the opacity is 0.7. -*/ - -QML_DECLARE_TYPE(QGraphicsBloomEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Bloom,QGraphicsBloomEffect) - -/*! - \qmlclass Bloom - \brief The Bloom object provides a bloom/glow effect. - - A bloom/glow effect adds fringes of light around bright areas in the source item. - - \img graphicseffect-bloom.png -*/ - -/*! - \qmlproperty real Bloom::blurRadius - The blur radius in pixels of the effect. - - Using a smaller radius results in a sharper appearance, whereas a bigger - radius results in a more blurred appearance. - - By default, the blur radius is 5 pixels. -*/ - -/*! - \qmlproperty enumeration Bloom::blurHint - - Use the Qt.PerformanceHint hint to say that you want a faster blur, - and the Qt.QualityHint hint to say that you prefer a higher quality blur. - - When animating the blur radius it's recommended to use Qt.PerformanceHint. - - By default, the blur hint is Qt.PerformanceHint. -*/ - -/*! - \qmlproperty int Bloom::brightness - This property specifies how bright the glow should appear. - - The value should be in the range of 0 to 255, where 0 is dark - and 255 is bright. - - By default, the brightness is 70. -*/ - -/*! - \qmlproperty real Bloom::strength - The strength of the glow. - - A strength of 0.0 is equal to no effect, while 1.0 means maximum glow. - - By default, the strength is 0.7. -*/ - diff --git a/src/declarative/fx/qfxevents.cpp b/src/declarative/fx/qfxevents.cpp deleted file mode 100644 index fe249f9..0000000 --- a/src/declarative/fx/qfxevents.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxevents_p.h" - -QT_BEGIN_NAMESPACE -/*! - \qmlclass KeyEvent QmlGraphicsKeyEvent - \brief The KeyEvent object provides information about a key event. - - For example, the following changes the Item's state property when the Enter - key is pressed: - \qml -Item { - focus: true - Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; } -} - \endqml -*/ - -/*! - \internal - \class QmlGraphicsKeyEvent -*/ - -/*! - \qmlproperty int KeyEvent::key - - This property holds the code of the key that was pressed or released. - - See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. These codes are - independent of the underlying window system. Note that this - function does not distinguish between capital and non-capital - letters, use the text() function (returning the Unicode text the - key generated) for this purpose. - - A value of either 0 or \l {Qt::Key_unknown}{Qt.Key_Unknown} means that the event is not - the result of a known key; for example, it may be the result of - a compose sequence, a keyboard macro, or due to key event - compression. -*/ - -/*! - \qmlproperty string KeyEvent::text - - This property holds the Unicode text that the key generated. - The text returned can be an empty string in cases where modifier keys, - such as Shift, Control, Alt, and Meta, are being pressed or released. - In such cases \c key will contain a valid value -*/ - -/*! - \qmlproperty bool KeyEvent::isAutoRepeat - - This property holds whether this event comes from an auto-repeating key. -*/ - -/*! - \qmlproperty int KeyEvent::count - - This property holds the number of keys involved in this event. If \l KeyEvent::text - is not empty, this is simply the length of the string. -*/ - -/*! - \qmlproperty bool KeyEvent::accepted - - Setting \a accepted to true prevents the key event from being - propagated to the item's parent. - - Generally, if the item acts on the key event then it should be accepted - so that ancestor items do not also respond to the same event. -*/ - - -/*! - \qmlclass MouseEvent QmlGraphicsMouseEvent - \brief The MouseEvent object provides information about a mouse event. - - The position of the mouse can be found via the x and y properties. - The button that caused the event is available via the button property. -*/ - -/*! - \internal - \class QmlGraphicsMouseEvent -*/ - -/*! - \qmlproperty int MouseEvent::x - \qmlproperty int MouseEvent::y - - These properties hold the position of the mouse event. -*/ - -/*! - \qmlproperty enum MouseEvent::button - - This property holds the button that caused the event. It can be one of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist -*/ - -/*! - \qmlproperty bool MouseEvent::wasHeld - - This property is true if the mouse button has been held pressed longer the - threshold (800ms). -*/ - -/*! - \qmlproperty int MouseEvent::buttons - - This property holds the mouse buttons pressed when the event was generated. - For mouse move events, this is all buttons that are pressed down. For mouse - press and double click events this includes the button that caused the event. - For mouse release events this excludes the button that caused the event. - - It contains a bitwise combination of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist -*/ - -/*! - \qmlproperty int MouseEvent::modifiers - - This property holds the keyboard modifier flags that existed immediately - before the event occurred. - - It contains a bitwise combination of: - \list - \o Qt.NoModifier - No modifier key is pressed. - \o Qt.ShiftModifier - A Shift key on the keyboard is pressed. - \o Qt.ControlModifier - A Ctrl key on the keyboard is pressed. - \o Qt.AltModifier - An Alt key on the keyboard is pressed. - \o Qt.MetaModifier - A Meta key on the keyboard is pressed. - \o Qt.KeypadModifier - A keypad button is pressed. - \endlist - - For example, to react to a Shift key + Left mouse button click: - \qml -MouseRegion { - onClicked: { if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething(); } -} - \endqml -*/ - -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsKeyEvent) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsMouseEvent) - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxevents_p.h b/src/declarative/fx/qfxevents_p.h deleted file mode 100644 index e558c42..0000000 --- a/src/declarative/fx/qfxevents_p.h +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXEVENTS_P_H -#define QFXEVENTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsKeyEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int key READ key) - Q_PROPERTY(QString text READ text) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) - Q_PROPERTY(int count READ count) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) - : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } - QmlGraphicsKeyEvent(const QKeyEvent &ke) - : event(ke) { event.setAccepted(false); } - - int key() const { return event.key(); } - QString text() const { return event.text(); } - int modifiers() const { return event.modifiers(); } - bool isAutoRepeat() const { return event.isAutoRepeat(); } - int count() const { return event.count(); } - - bool isAccepted() { return event.isAccepted(); } - void setAccepted(bool accepted) { event.setAccepted(accepted); } - -private: - QKeyEvent event; -}; - -class QmlGraphicsMouseEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int x READ x) - Q_PROPERTY(int y READ y) - Q_PROPERTY(int button READ button) - Q_PROPERTY(int buttons READ buttons) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool wasHeld READ wasHeld) - Q_PROPERTY(bool isClick READ isClick) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers - , bool isClick=false, bool wasHeld=false) - : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) - , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} - - int x() const { return _x; } - int y() const { return _y; } - int button() const { return _button; } - int buttons() const { return _buttons; } - int modifiers() const { return _modifiers; } - bool wasHeld() const { return _wasHeld; } - bool isClick() const { return _isClick; } - - bool isAccepted() { return _accepted; } - void setAccepted(bool accepted) { _accepted = accepted; } - -private: - int _x; - int _y; - Qt::MouseButton _button; - Qt::MouseButtons _buttons; - Qt::KeyboardModifiers _modifiers; - bool _wasHeld; - bool _isClick; - bool _accepted; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsKeyEvent) -QML_DECLARE_TYPE(QmlGraphicsMouseEvent) - -#endif // QFXEVENTS_P_H diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp deleted file mode 100644 index 34e3e75..0000000 --- a/src/declarative/fx/qfxflickable.cpp +++ /dev/null @@ -1,1283 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxflickable.h" -#include "qfxflickable_p.h" - -#include -#include -#include - -QT_BEGIN_NAMESPACE - - -// These are highly device dependant. -// DragThreshold determines how far the "mouse" must move before -// we begin a drag. -// FlickThreshold determines how far the "mouse" must have moved -// before we perform a flick. -static const int DragThreshold = 8; -static const int FlickThreshold = 20; - -// Really slow flicks can be annoying. -static const int minimumFlickVelocity = 200; - -class QmlGraphicsFlickableVisibleArea : public QObject -{ - Q_OBJECT - - Q_PROPERTY(qreal xPosition READ xPosition NOTIFY pageChanged) - Q_PROPERTY(qreal yPosition READ yPosition NOTIFY pageChanged) - Q_PROPERTY(qreal widthRatio READ widthRatio NOTIFY pageChanged) - Q_PROPERTY(qreal heightRatio READ heightRatio NOTIFY pageChanged) - -public: - QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent=0); - - qreal xPosition() const; - qreal widthRatio() const; - qreal yPosition() const; - qreal heightRatio() const; - - void updateVisible(); - -signals: - void pageChanged(); - -private: - QmlGraphicsFlickable *flickable; - qreal m_xPosition; - qreal m_widthRatio; - qreal m_yPosition; - qreal m_heightRatio; -}; - -QmlGraphicsFlickableVisibleArea::QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent) - : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) - , m_yPosition(0.), m_heightRatio(0.) -{ -} - -qreal QmlGraphicsFlickableVisibleArea::widthRatio() const -{ - return m_widthRatio; -} - -qreal QmlGraphicsFlickableVisibleArea::xPosition() const -{ - return m_xPosition; -} - -qreal QmlGraphicsFlickableVisibleArea::heightRatio() const -{ - return m_heightRatio; -} - -qreal QmlGraphicsFlickableVisibleArea::yPosition() const -{ - return m_yPosition; -} - -void QmlGraphicsFlickableVisibleArea::updateVisible() -{ - QmlGraphicsFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); - bool pageChange = false; - - // Vertical - const qreal viewheight = flickable->height(); - const qreal maxyextent = -flickable->maxYExtent(); - qreal pagePos = -p->_moveY.value() / (maxyextent + viewheight); - qreal pageSize = viewheight / (maxyextent + viewheight); - - if (pageSize != m_heightRatio) { - m_heightRatio = pageSize; - pageChange = true; - } - if (pagePos != m_yPosition) { - m_yPosition = pagePos; - pageChange = true; - } - - // Horizontal - const qreal viewwidth = flickable->width(); - const qreal maxxextent = -flickable->maxXExtent(); - pagePos = -p->_moveX.value() / (maxxextent + viewwidth); - pageSize = viewwidth / (maxxextent + viewwidth); - - if (pageSize != m_widthRatio) { - m_widthRatio = pageSize; - pageChange = true; - } - if (pagePos != m_xPosition) { - m_xPosition = pagePos; - pageChange = true; - } - if (pageChange) - emit pageChanged(); -} - - -QmlGraphicsFlickablePrivate::QmlGraphicsFlickablePrivate() - : viewport(new QmlGraphicsItem), _moveX(viewport, &QmlGraphicsItem::setX), _moveY(viewport, &QmlGraphicsItem::setY) - , vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false) - , pressed(false), atXEnd(false), atXBeginning(true), atYEnd(false), atYBeginning(true) - , interactive(true), deceleration(500), maxVelocity(5000), reportedVelocitySmoothing(100) - , delayedPressEvent(0), delayedPressTarget(0), pressDelay(0) - , horizontalVelocity(this), verticalVelocity(this), vTime(0), visibleArea(0) -{ - fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); - fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); -} - -void QmlGraphicsFlickablePrivate::init() -{ - Q_Q(QmlGraphicsFlickable); - viewport->setParent(q); - QObject::connect(&timeline, SIGNAL(updated()), q, SLOT(ticked())); - QObject::connect(&timeline, SIGNAL(completed()), q, SLOT(movementEnding())); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFiltersChildEvents(true); - QObject::connect(viewport, SIGNAL(xChanged()), q, SIGNAL(positionXChanged())); - QObject::connect(viewport, SIGNAL(yChanged()), q, SIGNAL(positionYChanged())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(heightChange())); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(widthChange())); -} - -void QmlGraphicsFlickablePrivate::flickX(qreal velocity) -{ - Q_Q(QmlGraphicsFlickable); - qreal maxDistance = -1; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveX.value() < q->minXExtent()) - maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); - flickTargetX = q->minXExtent(); - } else { - if (_moveX.value() > q->maxXExtent()) - maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); - flickTargetX = q->maxXExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - timeline.reset(_moveX); - timeline.accel(_moveX, v, deceleration, maxDistance); - timeline.execute(fixupXEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveX); - fixupX(); - } -} - -void QmlGraphicsFlickablePrivate::flickY(qreal velocity) -{ - Q_Q(QmlGraphicsFlickable); - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveY.value() < q->minYExtent()) - maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); - flickTargetY = q->minYExtent(); - } else { - if (_moveY.value() > q->maxYExtent()) - maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); - flickTargetY = q->maxYExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - timeline.reset(_moveY); - timeline.accel(_moveY, v, deceleration, maxDistance); - timeline.execute(fixupYEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveY); - fixupY(); - } -} - -void QmlGraphicsFlickablePrivate::fixupX() -{ - Q_Q(QmlGraphicsFlickable); - if (!q->xflick() || _moveX.timeLine()) - return; - - vTime = timeline.time(); - - if (_moveX.value() > q->minXExtent() || (q->maxXExtent() > q->minXExtent())) { - timeline.reset(_moveX); - if (_moveX.value() != q->minXExtent()) - timeline.move(_moveX, q->minXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else if (_moveX.value() < q->maxXExtent()) { - timeline.reset(_moveX); - timeline.move(_moveX, q->maxXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else { - flicked = false; - } -} - -void QmlGraphicsFlickablePrivate::fixupY() -{ - Q_Q(QmlGraphicsFlickable); - if (!q->yflick() || _moveY.timeLine()) - return; - - vTime = timeline.time(); - - if (_moveY.value() > q->minYExtent() || (q->maxYExtent() > q->minYExtent())) { - timeline.reset(_moveY); - if (_moveY.value() != q->minYExtent()) - timeline.move(_moveY, q->minYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else if (_moveY.value() < q->maxYExtent()) { - timeline.reset(_moveY); - timeline.move(_moveY, q->maxYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else { - flicked = false; - } -} - -void QmlGraphicsFlickablePrivate::updateBeginningEnd() -{ - Q_Q(QmlGraphicsFlickable); - bool atBoundaryChange = false; - - // Vertical - const int maxyextent = int(-q->maxYExtent()); - const qreal ypos = -_moveY.value(); - bool atBeginning = (ypos <= 0.0); - bool atEnd = (maxyextent <= ypos); - - if (atBeginning != atYBeginning) { - atYBeginning = atBeginning; - atBoundaryChange = true; - } - if (atEnd != atYEnd) { - atYEnd = atEnd; - atBoundaryChange = true; - } - - // Horizontal - const int maxxextent = int(-q->maxXExtent()); - const qreal xpos = -_moveX.value(); - atBeginning = (xpos <= 0.0); - atEnd = (maxxextent <= xpos); - - if (atBeginning != atXBeginning) { - atXBeginning = atBeginning; - atBoundaryChange = true; - } - if (atEnd != atXEnd) { - atXEnd = atEnd; - atBoundaryChange = true; - } - - if (atBoundaryChange) - emit q->isAtBoundaryChanged(); - - if (visibleArea) - visibleArea->updateVisible(); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QmlGraphicsFlickable) - -/*! - \qmlclass Flickable - \brief The Flickable item provides a surface that can be "flicked". - \inherits Item - - Flickable places its children on a surface that can be dragged and flicked. - - \code - Flickable { - width: 200; height: 200; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } - } - \endcode - - \image flickable.gif - - \note Flickable does not automatically clip its contents. If - it is not full-screen it is likely that \c clip should be set - to true. - - \note Due to an implementation detail items placed inside a flickable cannot anchor to it by - id, use 'parent' instead. -*/ - -/*! - \internal - \class QmlGraphicsFlickable - \brief The QmlGraphicsFlickable class provides a view that can be "flicked". - - \ingroup group_widgets - - QmlGraphicsFlickable allows its children to be dragged and flicked. - -\code -Flickable { - width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } -} -\endcode - - Note that QmlGraphicsFlickable does not automatically clip its contents. If - it is not full-screen it is likely that QmlGraphicsItem::clip should be set - to true. - -*/ - -/*! - \qmlproperty real Flickable::visibleArea.xPosition - \qmlproperty real Flickable::visibleArea.widthRatio - \qmlproperty real Flickable::visibleArea.yPosition - \qmlproperty real Flickable::visibleArea.heightRatio - - These properties describe the position and size of the currently viewed area. - The size is defined as the percentage of the full view currently visible, - scaled to 0.0 - 1.0. The page position is in the range 0.0 (beginning) to - size ratio (end), i.e. yPosition is in the range 0.0 - heightRatio. - - These properties are typically used to draw a scrollbar, for example: - \code - Rectangle { - opacity: 0.5; anchors.right: MyListView.right-2; width: 6 - y: MyListView.visibleArea.yPosition * MyListView.height - height: MyListView.visibleArea.heightRatio * MyListView.height - } - \endcode -*/ - -QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsFlickablePrivate), parent) -{ - Q_D(QmlGraphicsFlickable); - d->init(); -} - -QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsFlickable); - d->init(); -} - -QmlGraphicsFlickable::~QmlGraphicsFlickable() -{ -} - -/*! - \qmlproperty int Flickable::viewportX - \qmlproperty int Flickable::viewportY - - These properties hold the surface coordinate currently at the top-left - corner of the Flickable. For example, if you flick an image up 100 pixels, - \c yPosition will be 100. -*/ -qreal QmlGraphicsFlickable::viewportX() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveX.value(); -} - -void QmlGraphicsFlickable::setViewportX(qreal pos) -{ - Q_D(QmlGraphicsFlickable); - pos = qRound(pos); - d->timeline.reset(d->_moveX); - if (-pos != d->_moveX.value()) { - d->_moveX.setValue(-pos); - viewportMoved(); - } -} - -qreal QmlGraphicsFlickable::viewportY() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveY.value(); -} - -void QmlGraphicsFlickable::setViewportY(qreal pos) -{ - Q_D(QmlGraphicsFlickable); - pos = qRound(pos); - d->timeline.reset(d->_moveY); - if (-pos != d->_moveY.value()) { - d->_moveY.setValue(-pos); - viewportMoved(); - } -} - -/*! - \qmlproperty bool Flickable::interactive - - A user cannot drag or flick a Flickable that is not interactive. - - This property is useful for temporarily disabling flicking. This allows - special interaction with Flickable's children: for example, you might want to - freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable. -*/ -bool QmlGraphicsFlickable::isInteractive() const -{ - Q_D(const QmlGraphicsFlickable); - return d->interactive; -} - -void QmlGraphicsFlickable::setInteractive(bool interactive) -{ - Q_D(QmlGraphicsFlickable); - d->interactive = interactive; - if (!interactive && d->flicked) { - d->timeline.clear(); - d->flicked = false; - emit flickingChanged(); - emit flickEnded(); - } -} - -/*! - \qmlproperty real Flickable::horizontalVelocity - \qmlproperty real Flickable::verticalVelocity - \qmlproperty real Flickable::reportedVelocitySmoothing - - The instantaneous velocity of movement along the x and y axes, in pixels/sec. - - The reported velocity is smoothed to avoid erratic output. - reportedVelocitySmoothing determines how much smoothing is applied. -*/ -qreal QmlGraphicsFlickable::horizontalVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->horizontalVelocity.value(); -} - -qreal QmlGraphicsFlickable::verticalVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->verticalVelocity.value(); -} - -/*! - \qmlproperty bool Flickable::atXBeginning - \qmlproperty bool Flickable::atXEnd - \qmlproperty bool Flickable::atYBeginning - \qmlproperty bool Flickable::atYEnd - - These properties are true if the flickable view is positioned at the beginning, - or end respecively. -*/ -bool QmlGraphicsFlickable::isAtXEnd() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atXEnd; -} - -bool QmlGraphicsFlickable::isAtXBeginning() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atXBeginning; -} - -bool QmlGraphicsFlickable::isAtYEnd() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atYEnd; -} - -bool QmlGraphicsFlickable::isAtYBeginning() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atYBeginning; -} - -void QmlGraphicsFlickable::ticked() -{ - viewportMoved(); -} - -QmlGraphicsItem *QmlGraphicsFlickable::viewport() -{ - Q_D(QmlGraphicsFlickable); - return d->viewport; -} - -qreal QmlGraphicsFlickable::visibleX() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveX.value(); -} - -qreal QmlGraphicsFlickable::visibleY() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveY.value(); -} - -QmlGraphicsFlickableVisibleArea *QmlGraphicsFlickable::visibleArea() -{ - Q_D(QmlGraphicsFlickable); - if (!d->visibleArea) - d->visibleArea = new QmlGraphicsFlickableVisibleArea(this); - return d->visibleArea; -} - -void QmlGraphicsFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) -{ - if (interactive && timeline.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10)) - stealMouse = true; // If we've been flicked then steal the click. - else - stealMouse = false; - pressed = true; - timeline.clear(); - velocityX = 0; - velocityY = 0; - lastPos = QPoint(); - QmlGraphicsItemPrivate::start(lastPosTime); - pressPos = event->pos(); - pressX = _moveX.value(); - pressY = _moveY.value(); - flicked = false; - QmlGraphicsItemPrivate::start(pressTime); - QmlGraphicsItemPrivate::start(velocityTime); -} - -void QmlGraphicsFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - if (!interactive || lastPosTime.isNull()) - return; - bool rejectY = false; - bool rejectX = false; - bool moved = false; - - if (q->yflick()) { - int dy = int(event->pos().y() - pressPos.y()); - if (qAbs(dy) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { - qreal newY = dy + pressY; - const qreal minY = q->minYExtent(); - const qreal maxY = q->maxYExtent(); - if (newY > minY) - newY = minY + (newY - minY) / 2; - if (newY < maxY && maxY - minY < 0) - newY = maxY + (newY - maxY) / 2; - if (!q->overShoot() && (newY > minY || newY < maxY)) { - if (newY > minY) - newY = minY; - else if (newY < maxY) - newY = maxY; - else - rejectY = true; - } - if (!rejectY) { - _moveY.setValue(newY); - moved = true; - } - if (qAbs(dy) > DragThreshold) - stealMouse = true; - } - } - - if (q->xflick()) { - int dx = int(event->pos().x() - pressPos.x()); - if (qAbs(dx) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { - qreal newX = dx + pressX; - const qreal minX = q->minXExtent(); - const qreal maxX = q->maxXExtent(); - if (newX > minX) - newX = minX + (newX - minX) / 2; - if (newX < maxX && maxX - minX < 0) - newX = maxX + (newX - maxX) / 2; - if (!q->overShoot() && (newX > minX || newX < maxX)) { - if (newX > minX) - newX = minX; - else if (newX < maxX) - newX = maxX; - else - rejectX = true; - } - if (!rejectX) { - _moveX.setValue(newX); - moved = true; - } - - if (qAbs(dx) > DragThreshold) - stealMouse = true; - } - } - - if (!lastPos.isNull()) { - qreal elapsed = qreal(QmlGraphicsItemPrivate::restart(lastPosTime)) / 1000.; - if (elapsed <= 0) - elapsed = 1; - if (q->yflick()) { - qreal diff = event->pos().y() - lastPos.y(); - // average to reduce the effect of spurious moves - velocityY += diff / elapsed; - velocityY /= 2; - } - - if (q->xflick()) { - qreal diff = event->pos().x() - lastPos.x(); - // average to reduce the effect of spurious moves - velocityX += diff / elapsed; - velocityX /= 2; - } - } - - if (rejectY) velocityY = 0; - if (rejectX) velocityX = 0; - - if (moved) { - q->movementStarting(); - q->viewportMoved(); - } - - lastPos = event->pos(); -} - -void QmlGraphicsFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - pressed = false; - if (lastPosTime.isNull()) - return; - - if (QmlGraphicsItemPrivate::elapsed(lastPosTime) > 100) { - // if we drag then pause before release we should not cause a flick. - velocityX = 0.0; - velocityY = 0.0; - } - - vTime = timeline.time(); - if (qAbs(velocityY) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) { - qreal velocity = velocityY; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - flickY(velocity); - } else { - fixupY(); - } - - if (qAbs(velocityX) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) { - qreal velocity = velocityX; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - flickX(velocity); - } else { - fixupX(); - } - - stealMouse = false; - lastPosTime = QTime(); - - if (!timeline.isActive()) - q->movementEnding(); -} - -void QmlGraphicsFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->handleMousePressEvent(event); - event->accept(); -} - -void QmlGraphicsFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->handleMouseMoveEvent(event); - event->accept(); -} - -void QmlGraphicsFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->clearDelayedPress(); - d->handleMouseReleaseEvent(event); - event->accept(); - ungrabMouse(); -} - -void QmlGraphicsFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - if (!q->scene() || pressDelay <= 0) - return; - delayedPressTarget = q->scene()->mouseGrabberItem(); - delayedPressEvent = new QGraphicsSceneMouseEvent(event->type()); - delayedPressEvent->setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - delayedPressEvent->setButtonDownPos(button, event->buttonDownPos(button)); - delayedPressEvent->setButtonDownScenePos(button, event->buttonDownScenePos(button)); - delayedPressEvent->setButtonDownScreenPos(button, event->buttonDownScreenPos(button)); - } - } - delayedPressEvent->setButtons(event->buttons()); - delayedPressEvent->setButton(event->button()); - delayedPressEvent->setPos(event->pos()); - delayedPressEvent->setScenePos(event->scenePos()); - delayedPressEvent->setScreenPos(event->screenPos()); - delayedPressEvent->setLastPos(event->lastPos()); - delayedPressEvent->setLastScenePos(event->lastScenePos()); - delayedPressEvent->setLastScreenPos(event->lastScreenPos()); - delayedPressEvent->setModifiers(event->modifiers()); - delayedPressTimer.start(pressDelay, q); -} - -void QmlGraphicsFlickablePrivate::clearDelayedPress() -{ - if (delayedPressEvent) { - delayedPressTimer.stop(); - delete delayedPressEvent; - delayedPressEvent = 0; - } -} - -void QmlGraphicsFlickable::timerEvent(QTimerEvent *event) -{ - Q_D(QmlGraphicsFlickable); - if (event->timerId() == d->delayedPressTimer.timerId()) { - d->delayedPressTimer.stop(); - if (d->delayedPressEvent) { - QmlGraphicsItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; - if (!grabber || grabber != this) - scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); - delete d->delayedPressEvent; - d->delayedPressEvent = 0; - } - } -} - -qreal QmlGraphicsFlickable::minYExtent() const -{ - return 0.0; -} - -qreal QmlGraphicsFlickable::minXExtent() const -{ - return 0.0; -} - -/* returns -ve */ -qreal QmlGraphicsFlickable::maxXExtent() const -{ - return width() - vWidth(); -} -/* returns -ve */ -qreal QmlGraphicsFlickable::maxYExtent() const -{ - return height() - vHeight(); -} - -void QmlGraphicsFlickable::viewportMoved() -{ - Q_D(QmlGraphicsFlickable); - - int elapsed = QmlGraphicsItemPrivate::elapsed(d->velocityTime); - - if (elapsed) { - qreal prevY = d->lastFlickablePosition.x(); - qreal prevX = d->lastFlickablePosition.y(); - d->velocityTimeline.clear(); - if (d->pressed) { - qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / elapsed; - qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / elapsed; - d->velocityTimeline.move(d->horizontalVelocity, horizontalVelocity, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->horizontalVelocity, 0, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->verticalVelocity, verticalVelocity, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->verticalVelocity, 0, d->reportedVelocitySmoothing); - } else { - if (d->timeline.time() != d->vTime) { - qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / (d->timeline.time() - d->vTime); - qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / (d->timeline.time() - d->vTime); - d->horizontalVelocity.setValue(horizontalVelocity); - d->verticalVelocity.setValue(verticalVelocity); - } - d->vTime = d->timeline.time(); - } - } - - d->lastFlickablePosition = QPointF(d->_moveY.value(), d->_moveX.value()); - QmlGraphicsItemPrivate::restart(d->velocityTime); - d->updateBeginningEnd(); - - if (d->flicked) { - // Near an end and it seems that the extent has changed? - // Recalculate the flick so that we don't end up in an odd position. - if (d->velocityY > 0) { - const qreal minY = minYExtent(); - if (minY - d->_moveY.value() < height()/3 && minY != d->flickTargetY) - d->flickY(-d->verticalVelocity.value()); - } else { - const qreal maxY = maxYExtent(); - if (d->_moveY.value() - maxY < height()/3 && maxY != d->flickTargetY) - d->flickY(-d->verticalVelocity.value()); - } - - if (d->velocityX > 0) { - const qreal minX = minXExtent(); - if (minX - d->_moveX.value() < height()/3 && minX != d->flickTargetX) - d->flickX(-d->horizontalVelocity.value()); - } else { - const qreal maxX = maxXExtent(); - if (d->_moveX.value() - maxX < height()/3 && maxX != d->flickTargetX) - d->flickX(-d->horizontalVelocity.value()); - } - } -} - -void QmlGraphicsFlickable::cancelFlick() -{ - Q_D(QmlGraphicsFlickable); - d->timeline.reset(d->_moveX); - d->timeline.reset(d->_moveY); - movementEnding(); -} - -void QmlGraphicsFlickablePrivate::data_removeAt(int) -{ - // ### -} - -int QmlGraphicsFlickablePrivate::data_count() const -{ - // ### - return 0; -} - -void QmlGraphicsFlickablePrivate::data_append(QObject *o) -{ - Q_Q(QmlGraphicsFlickable); - QmlGraphicsItem *i = qobject_cast(o); - if (i) - viewport->fxChildren()->append(i); - else - o->setParent(q); -} - -void QmlGraphicsFlickablePrivate::data_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsFlickablePrivate::data_at(int) const -{ - // ### - return 0; -} - -void QmlGraphicsFlickablePrivate::data_clear() -{ - // ### -} - - -QmlList *QmlGraphicsFlickable::flickableData() -{ - Q_D(QmlGraphicsFlickable); - return &d->data; -} - -QmlList *QmlGraphicsFlickable::flickableChildren() -{ - Q_D(QmlGraphicsFlickable); - return d->viewport->fxChildren(); -} - -/*! - \qmlproperty bool Flickable::overShoot - This property holds the number of pixels the surface may overshoot the - Flickable's boundaries when flicked. - - If overShoot is non-zero the contents can be flicked beyond the boundary - of the Flickable before being moved back to the boundary. This provides - the feeling that the edges of the view are soft, rather than a hard - physical boundary. -*/ -bool QmlGraphicsFlickable::overShoot() const -{ - Q_D(const QmlGraphicsFlickable); - return d->overShoot; -} - -void QmlGraphicsFlickable::setOverShoot(bool o) -{ - Q_D(QmlGraphicsFlickable); - d->overShoot = o; -} - -/*! - \qmlproperty int Flickable::viewportWidth - \qmlproperty int Flickable::viewportHeight - - The dimensions of the viewport (the surface controlled by Flickable). Typically this - should be set to the combined size of the items placed in the Flickable. - - \code - Flickable { - width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } - } - \endcode -*/ -qreal QmlGraphicsFlickable::viewportWidth() const -{ - Q_D(const QmlGraphicsFlickable); - return d->vWidth; -} - -void QmlGraphicsFlickable::setViewportWidth(qreal w) -{ - Q_D(QmlGraphicsFlickable); - if (d->vWidth == w) - return; - d->vWidth = w; - if (w < 0) - d->viewport->setWidth(width()); - else - d->viewport->setWidth(w); - // Make sure that we're entirely in view. - if (!d->pressed) - d->fixupX(); - emit viewportWidthChanged(); - d->updateBeginningEnd(); -} - -void QmlGraphicsFlickable::widthChange() -{ - Q_D(QmlGraphicsFlickable); - if (d->vWidth < 0) { - d->viewport->setWidth(width()); - emit viewportWidthChanged(); - } - d->updateBeginningEnd(); -} - -void QmlGraphicsFlickable::heightChange() -{ - Q_D(QmlGraphicsFlickable); - if (d->vHeight < 0) { - d->viewport->setHeight(height()); - emit viewportHeightChanged(); - } - d->updateBeginningEnd(); -} - -qreal QmlGraphicsFlickable::viewportHeight() const -{ - Q_D(const QmlGraphicsFlickable); - return d->vHeight; -} - -void QmlGraphicsFlickable::setViewportHeight(qreal h) -{ - Q_D(QmlGraphicsFlickable); - if (d->vHeight == h) - return; - d->vHeight = h; - if (h < 0) - d->viewport->setHeight(height()); - else - d->viewport->setHeight(h); - // Make sure that we're entirely in view. - if (!d->pressed) - d->fixupY(); - emit viewportHeightChanged(); - d->updateBeginningEnd(); -} - -qreal QmlGraphicsFlickable::vWidth() const -{ - Q_D(const QmlGraphicsFlickable); - if (d->vWidth < 0) - return width(); - else - return d->vWidth; -} - -qreal QmlGraphicsFlickable::vHeight() const -{ - Q_D(const QmlGraphicsFlickable); - if (d->vHeight < 0) - return height(); - else - return d->vHeight; -} - -bool QmlGraphicsFlickable::xflick() const -{ - return vWidth() != width(); -} - -bool QmlGraphicsFlickable::yflick() const -{ - return vHeight() != height(); -} - -bool QmlGraphicsFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - QGraphicsSceneMouseEvent mouseEvent(event->type()); - QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); - - QGraphicsScene *s = scene(); - QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; - if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { - mouseEvent.setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); - } - } - mouseEvent.setScenePos(event->scenePos()); - mouseEvent.setLastScenePos(event->lastScenePos()); - mouseEvent.setPos(mapFromScene(event->scenePos())); - mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); - - switch(mouseEvent.type()) { - case QEvent::GraphicsSceneMouseMove: - d->handleMouseMoveEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMousePress: - if (d->delayedPressEvent) - return false; - - d->handleMousePressEvent(&mouseEvent); - d->captureDelayedPress(event); - break; - case QEvent::GraphicsSceneMouseRelease: - if (d->delayedPressEvent) { - scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); - d->clearDelayedPress(); - } - d->handleMouseReleaseEvent(&mouseEvent); - break; - default: - break; - } - grabber = qobject_cast(s->mouseGrabberItem()); - if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) { - d->clearDelayedPress(); - grabMouse(); - } - - return d->stealMouse || d->delayedPressEvent; - } else if (!d->lastPosTime.isNull()) { - d->lastPosTime = QTime(); - } - if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) - d->clearDelayedPress(); - return false; -} - -bool QmlGraphicsFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) -{ - if (!isVisible()) - return QmlGraphicsItem::sceneEventFilter(i, e); - switch (e->type()) { - case QEvent::GraphicsSceneMousePress: - case QEvent::GraphicsSceneMouseMove: - case QEvent::GraphicsSceneMouseRelease: - return sendMouseEvent(static_cast(e)); - default: - break; - } - - return QmlGraphicsItem::sceneEventFilter(i, e); -} - -/*! - \qmlproperty real Flickable::maximumFlickVelocity - This property holds the maximum velocity that the user can flick the view in pixels/second. - - The default is 5000 pixels/s -*/ -qreal QmlGraphicsFlickable::maximumFlickVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->maxVelocity; -} - -void QmlGraphicsFlickable::setMaximumFlickVelocity(qreal v) -{ - Q_D(QmlGraphicsFlickable); - if (v == d->maxVelocity) - return; - d->maxVelocity = v; -} - -/*! - \qmlproperty real Flickable::maximumFlickVelocity - This property holds the rate at which a flick will decelerate. - - The default is 500. -*/ -qreal QmlGraphicsFlickable::flickDeceleration() const -{ - Q_D(const QmlGraphicsFlickable); - return d->deceleration; -} - -void QmlGraphicsFlickable::setFlickDeceleration(qreal deceleration) -{ - Q_D(QmlGraphicsFlickable); - d->deceleration = deceleration; -} - -bool QmlGraphicsFlickable::isFlicking() const -{ - Q_D(const QmlGraphicsFlickable); - return d->flicked; -} - -/*! - \qmlproperty int Flickable::pressDelay - - This property holds the time to delay (ms) delivering a press to - children of the Flickable. This can be useful where reacting - to a press before a flicking action has undesireable effects. - - If the flickable is dragged/flicked before the delay times out - the press event will not be delivered. If the button is released - within the timeout, both the press and release will be delivered. -*/ -int QmlGraphicsFlickable::pressDelay() const -{ - Q_D(const QmlGraphicsFlickable); - return d->pressDelay; -} - -void QmlGraphicsFlickable::setPressDelay(int delay) -{ - Q_D(QmlGraphicsFlickable); - if (d->pressDelay == delay) - return; - d->pressDelay = delay; -} - -qreal QmlGraphicsFlickable::reportedVelocitySmoothing() const -{ - Q_D(const QmlGraphicsFlickable); - return d->reportedVelocitySmoothing; -} - -void QmlGraphicsFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) -{ - Q_D(QmlGraphicsFlickable); - Q_ASSERT(reportedVelocitySmoothing >= 0); - if (reportedVelocitySmoothing == d->reportedVelocitySmoothing) - return; - d->reportedVelocitySmoothing = reportedVelocitySmoothing; - emit reportedVelocitySmoothingChanged(reportedVelocitySmoothing); -} - -bool QmlGraphicsFlickable::isMoving() const -{ - Q_D(const QmlGraphicsFlickable); - return d->moving; -} - -void QmlGraphicsFlickable::movementStarting() -{ - Q_D(QmlGraphicsFlickable); - if (!d->moving) { - d->moving = true; - emit movingChanged(); - emit movementStarted(); - } -} - -void QmlGraphicsFlickable::movementEnding() -{ - Q_D(QmlGraphicsFlickable); - if (d->moving) { - d->moving = false; - emit movingChanged(); - emit movementEnded(); - } - if (d->flicked) { - d->flicked = false; - emit flickingChanged(); - emit flickEnded(); - } - d->horizontalVelocity.setValue(0); - d->verticalVelocity.setValue(0); -} - -void QmlGraphicsFlickablePrivate::updateVelocity() -{ - Q_Q(QmlGraphicsFlickable); - emit q->horizontalVelocityChanged(); - emit q->verticalVelocityChanged(); -} - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) - -#include "qfxflickable.moc" diff --git a/src/declarative/fx/qfxflickable.h b/src/declarative/fx/qfxflickable.h deleted file mode 100644 index 634fe88..0000000 --- a/src/declarative/fx/qfxflickable.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXFLICKABLE_H -#define QFXFLICKABLE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlickablePrivate; -class QmlGraphicsFlickableVisibleArea; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) - Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) - Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) - Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) - - Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) - Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) - Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) - - Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) - Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) - Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) - Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) - Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) - - Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) - Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) - - Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) - - Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) - - Q_PROPERTY(QmlList* flickableData READ flickableData) - Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) - Q_CLASSINFO("DefaultProperty", "flickableData") - -public: - QmlGraphicsFlickable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlickable(); - - QmlList *flickableData(); - QmlList *flickableChildren(); - - bool overShoot() const; - void setOverShoot(bool); - - qreal viewportWidth() const; - void setViewportWidth(qreal); - - qreal viewportHeight() const; - void setViewportHeight(qreal); - - qreal viewportX() const; - void setViewportX(qreal pos); - - qreal viewportY() const; - void setViewportY(qreal pos); - - bool isMoving() const; - bool isFlicking() const; - - int pressDelay() const; - void setPressDelay(int delay); - - qreal reportedVelocitySmoothing() const; - void setReportedVelocitySmoothing(qreal); - - qreal maximumFlickVelocity() const; - void setMaximumFlickVelocity(qreal); - - qreal flickDeceleration() const; - void setFlickDeceleration(qreal); - - bool isInteractive() const; - void setInteractive(bool); - - qreal horizontalVelocity() const; - qreal verticalVelocity() const; - - bool isAtXEnd() const; - bool isAtXBeginning() const; - bool isAtYEnd() const; - bool isAtYBeginning() const; - - QmlGraphicsItem *viewport(); - -Q_SIGNALS: - void viewportWidthChanged(); - void viewportHeightChanged(); - void positionXChanged(); - void positionYChanged(); - void movingChanged(); - void flickingChanged(); - void movementStarted(); - void movementEnded(); - void flickStarted(); - void flickEnded(); - void reportedVelocitySmoothingChanged(int); - void horizontalVelocityChanged(); - void verticalVelocityChanged(); - void isAtBoundaryChanged(); - void pageChanged(); - -protected: - virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void timerEvent(QTimerEvent *event); - - qreal visibleX() const; - qreal visibleY() const; - - QmlGraphicsFlickableVisibleArea *visibleArea(); - -protected Q_SLOTS: - virtual void ticked(); - void movementStarting(); - void movementEnding(); - void heightChange(); - void widthChange(); - -protected: - virtual qreal minXExtent() const; - virtual qreal minYExtent() const; - virtual qreal maxXExtent() const; - virtual qreal maxYExtent() const; - qreal vWidth() const; - qreal vHeight() const; - virtual void viewportMoved(); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - - bool xflick() const; - bool yflick() const; - void cancelFlick(); - -protected: - QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsFlickable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) - friend class QmlGraphicsFlickableVisibleArea; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlickable) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxflickable_p.h b/src/declarative/fx/qfxflickable_p.h deleted file mode 100644 index 5e9863f..0000000 --- a/src/declarative/fx/qfxflickable_p.h +++ /dev/null @@ -1,156 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXFLICKABLE_P_H -#define QFXFLICKABLE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qfxflickable.h" -#include "qfxitem_p.h" -#include "qml.h" -#include "private/qmltimeline_p.h" -#include "private/qmlanimation_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsFlickableVisibleArea; -class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsFlickable) - -public: - QmlGraphicsFlickablePrivate(); - void init(); - virtual void flickX(qreal velocity); - virtual void flickY(qreal velocity); - virtual void fixupX(); - virtual void fixupY(); - void updateBeginningEnd(); - - void captureDelayedPress(QGraphicsSceneMouseEvent *event); - void clearDelayedPress(); - -public: - QmlGraphicsItem *viewport; - QmlTimeLineValueProxy _moveX; - QmlTimeLineValueProxy _moveY; - QmlTimeLine timeline; - qreal vWidth; - qreal vHeight; - bool overShoot : 1; - bool flicked : 1; - bool moving : 1; - bool stealMouse : 1; - bool pressed : 1; - bool atXEnd : 1; - bool atXBeginning : 1; - bool atYEnd : 1; - bool atYBeginning : 1; - bool interactive : 1; - QTime lastPosTime; - QPointF lastPos; - QPointF pressPos; - qreal pressX; - qreal pressY; - qreal velocityX; - qreal velocityY; - QTime pressTime; - QmlTimeLineEvent fixupXEvent; - QmlTimeLineEvent fixupYEvent; - qreal deceleration; - qreal maxVelocity; - QTime velocityTime; - QPointF lastFlickablePosition; - qreal reportedVelocitySmoothing; - int flickTargetX; - int flickTargetY; - QGraphicsSceneMouseEvent *delayedPressEvent; - QGraphicsItem *delayedPressTarget; - QBasicTimer delayedPressTimer; - int pressDelay; - - void updateVelocity(); - struct Velocity : public QmlTimeLineValue - { - Velocity(QmlGraphicsFlickablePrivate *p) - : parent(p) {} - virtual void setValue(qreal v) { - QmlTimeLineValue::setValue(v); - parent->updateVelocity(); - } - QmlGraphicsFlickablePrivate *parent; - }; - Velocity horizontalVelocity; - Velocity verticalVelocity; - int vTime; - QmlTimeLine velocityTimeline; - QmlGraphicsFlickableVisibleArea *visibleArea; - - void handleMousePressEvent(QGraphicsSceneMouseEvent *); - void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); - void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); - - // flickableData property - void data_removeAt(int); - int data_count() const; - void data_append(QObject *); - void data_insert(int, QObject *); - QObject *data_at(int) const; - void data_clear(); - - friend class QmlGraphicsFlickableVisibleArea; - QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qfxflipable.cpp b/src/declarative/fx/qfxflipable.cpp deleted file mode 100644 index 090f8a0..0000000 --- a/src/declarative/fx/qfxflipable.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxflipable.h" -#include "private/qfxitem_p.h" -#include "QtGui/qgraphicstransform.h" -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QmlGraphicsFlipable) - -class QmlGraphicsFlipablePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsFlipable) -public: - QmlGraphicsFlipablePrivate() : current(QmlGraphicsFlipable::Front), front(0), back(0) {} - - void updateSceneTransformFromParent(); - - QmlGraphicsFlipable::Side current; - QmlGraphicsItem *front; - QmlGraphicsItem *back; -}; - -/*! - \qmlclass Flipable QmlGraphicsFlipable - \brief The Flipable item provides a surface that can be flipped. - \inherits Item - - Flipable allows you to specify a front and a back and then flip between those sides. - - \qml - Flipable { - id: flipable - width: 40 - height: 40 - axis: Axis { - startX: 20 - startY: 0 - endX: 20 - endY: 40 - } - front: Image { source: "front.png" } - back: Image { source: "back.png" } - states: [ - State { - name: "back" - SetProperty { - target: flipable - property: "rotation" - value: 180 - } - } - ] - transitions: [ - Transition { - NumberAnimation { - easing: "easeInOutQuad" - properties: "rotation" - } - } - ] -} - \endqml - - \image flipable.gif -*/ - -/*! - \internal - \class QmlGraphicsFlipable - \brief The QmlGraphicsFlipable class provides a flipable surface. - - \ingroup group_widgets - - QmlGraphicsFlipable allows you to specify a front and a back, as well as an - axis for the flip. -*/ - -QmlGraphicsFlipable::QmlGraphicsFlipable(QmlGraphicsItem *parent) -: QmlGraphicsItem(*(new QmlGraphicsFlipablePrivate), parent) -{ -} - -QmlGraphicsFlipable::~QmlGraphicsFlipable() -{ -} - -/*! - \qmlproperty Item Flipable::front - \qmlproperty Item Flipable::back - - The front and back sides of the flipable. -*/ - -QmlGraphicsItem *QmlGraphicsFlipable::front() -{ - Q_D(const QmlGraphicsFlipable); - return d->front; -} - -void QmlGraphicsFlipable::setFront(QmlGraphicsItem *front) -{ - Q_D(QmlGraphicsFlipable); - if (d->front) { - qmlInfo(tr("front is a write-once property"),this); - return; - } - d->front = front; - fxChildren()->append(d->front); - if (Back == d->current) - d->front->setOpacity(0.); -} - -QmlGraphicsItem *QmlGraphicsFlipable::back() -{ - Q_D(const QmlGraphicsFlipable); - return d->back; -} - -void QmlGraphicsFlipable::setBack(QmlGraphicsItem *back) -{ - Q_D(QmlGraphicsFlipable); - if (d->back) { - qmlInfo(tr("back is a write-once property"),this); - return; - } - d->back = back; - fxChildren()->append(d->back); - if (Front == d->current) - d->back->setOpacity(0.); -} - -/*! - \qmlproperty enumeration Flipable::side - - The side of the Flippable currently visible. Possible values are \c - Front and \c Back. -*/ -QmlGraphicsFlipable::Side QmlGraphicsFlipable::side() const -{ - Q_D(const QmlGraphicsFlipable); - if (d->dirtySceneTransform) - const_cast(d)->updateSceneTransformFromParent(); - - return d->current; -} - -// determination on the currently visible side of the flipable -// has to be done on the complete scene transform to give -// correct results. -void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() -{ - Q_Q(QmlGraphicsFlipable); - - QmlGraphicsItemPrivate::updateSceneTransformFromParent(); - QPointF p1(0, 0); - QPointF p2(1, 0); - QPointF p3(1, 1); - - p1 = sceneTransform.map(p1); - p2 = sceneTransform.map(p2); - p3 = sceneTransform.map(p3); - - qreal cross = (p1.x() - p2.x()) * (p3.y() - p2.y()) - - (p1.y() - p2.y()) * (p3.x() - p2.x()); - - QmlGraphicsFlipable::Side newSide; - if (cross > 0) { - newSide = QmlGraphicsFlipable::Back; - } else { - newSide = QmlGraphicsFlipable::Front; - } - - if (newSide != current) { - current = newSide; - if (current == QmlGraphicsFlipable::Back) { - QTransform mat; - mat.translate(back->width()/2,back->height()/2); - if (back->width() && p1.x() >= p2.x()) - mat.rotate(180, Qt::YAxis); - if (back->height() && p2.y() >= p3.y()) - mat.rotate(180, Qt::XAxis); - mat.translate(-back->width()/2,-back->height()/2); - back->setTransform(mat); - } - if (front) - front->setOpacity((current==QmlGraphicsFlipable::Front)?1.:0.); - if (back) - back->setOpacity((current==QmlGraphicsFlipable::Back)?1.:0.); - emit q->sideChanged(); - } -} - -QT_END_NAMESPACE - -#include "moc_qfxflipable.cpp" diff --git a/src/declarative/fx/qfxflipable.h b/src/declarative/fx/qfxflipable.h deleted file mode 100644 index 1b10d48..0000000 --- a/src/declarative/fx/qfxflipable.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXFLIPABLE_H -#define QFXFLIPABLE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlipablePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_ENUMS(Side) - Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) - Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) - Q_PROPERTY(Side side READ side NOTIFY sideChanged) - //### flipAxis - //### flipRotation -public: - QmlGraphicsFlipable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlipable(); - - QmlGraphicsItem *front(); - void setFront(QmlGraphicsItem *); - - QmlGraphicsItem *back(); - void setBack(QmlGraphicsItem *); - - enum Side { Front, Back }; - Side side() const; - -Q_SIGNALS: - void sideChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsFlipable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlipable) - -QT_END_HEADER - -#endif // QFXFLIPABLE_H diff --git a/src/declarative/fx/qfxfocuspanel.cpp b/src/declarative/fx/qfxfocuspanel.cpp deleted file mode 100644 index 3d246a0..0000000 --- a/src/declarative/fx/qfxfocuspanel.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxfocuspanel.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QmlGraphicsFocusPanel) - -/*! - \qmlclass FocusPanel - \brief The FocusPanel item explicitly creates a focus panel. - \inherits Item - - Focus panels assist in keyboard focus handling when building QML - applications. All the details are covered in the - \l {qmlfocus}{keyboard focus documentation}. -*/ - -/*! - \internal - \class QmlGraphicsFocusPanel -*/ - -QmlGraphicsFocusPanel::QmlGraphicsFocusPanel(QmlGraphicsItem *parent) : - QmlGraphicsItem(parent) -{ - setFlag(ItemIsPanel); -} - -QmlGraphicsFocusPanel::~QmlGraphicsFocusPanel() -{ -} - -/*! - \qmlproperty bool FocusPanel::active - - Sets whether the item is the active focus panel. -*/ - -bool QmlGraphicsFocusPanel::sceneEvent(QEvent *event) -{ - if (event->type() == QEvent::WindowActivate || - event->type() == QEvent::WindowDeactivate) - emit activeChanged(); - return QmlGraphicsItem::sceneEvent(event); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxfocuspanel.h b/src/declarative/fx/qfxfocuspanel.h deleted file mode 100644 index 43eb96e..0000000 --- a/src/declarative/fx/qfxfocuspanel.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXFOCUSPANEL_H -#define QFXFOCUSPANEL_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem -{ - Q_OBJECT - Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) -public: - QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusPanel(); - -Q_SIGNALS: - void activeChanged(); - -protected: - bool sceneEvent(QEvent *event); - -private: - Q_DISABLE_COPY(QmlGraphicsFocusPanel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusPanel) - -QT_END_HEADER - -#endif // QFXFOCUSPANEL_H diff --git a/src/declarative/fx/qfxfocusscope.cpp b/src/declarative/fx/qfxfocusscope.cpp deleted file mode 100644 index 468d532..0000000 --- a/src/declarative/fx/qfxfocusscope.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxfocusscope.h" - - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QmlGraphicsFocusScope) - -/*! - \qmlclass FocusScope - \brief The FocusScope object explicitly creates a focus scope. - \inherits Item - - Focus scopes assist in keyboard focus handling when building reusable QML - components. All the details are covered in the - \l {qmlfocus}{keyboard focus documentation}. -*/ - -/*! - \internal - \class QmlGraphicsFocusScope -*/ - -QmlGraphicsFocusScope::QmlGraphicsFocusScope(QmlGraphicsItem *parent) : - QmlGraphicsItem(parent) -{ - setFlag(QGraphicsItem::ItemIsFocusScope); -} - -QmlGraphicsFocusScope::~QmlGraphicsFocusScope() -{ -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxfocusscope.h b/src/declarative/fx/qfxfocusscope.h deleted file mode 100644 index 126ccfc..0000000 --- a/src/declarative/fx/qfxfocusscope.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXFOCUSSCOPE_H -#define QFXFOCUSSCOPE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -//### set component root as focusscope -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem -{ - Q_OBJECT -public: - QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusScope(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusScope) - -QT_END_HEADER - -#endif // QFXFOCUSSCOPE_H diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp b/src/declarative/fx/qfxgraphicsobjectcontainer.cpp deleted file mode 100644 index 0c9dc69..0000000 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxgraphicsobjectcontainer.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGraphicsObjectContainerPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsGraphicsObjectContainer) - -public: - QmlGraphicsGraphicsObjectContainerPrivate() : QmlGraphicsItemPrivate(), graphicsObject(0), syncedResize(false) - { } - - void _q_updateSize(); - - void setFiltering(bool on) - { - Q_Q(QmlGraphicsGraphicsObjectContainer); - if (graphicsObject && graphicsObject->isWidget()) { - if (!on) { - graphicsObject->removeEventFilter(q); - QObject::disconnect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::disconnect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } else { - graphicsObject->installEventFilter(q); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } - } - } - - - QGraphicsObject *graphicsObject; - bool syncedResize; -}; - - -/*! - \qmlclass GraphicsObjectContainer QmlGraphicsGraphicsObjectContainer - \brief The GraphicsObjectContainer element allows you to add QGraphicsObjects into Fluid UI elements. -*/ - -/*! - \internal - \class QmlGraphicsGraphicsObjectContainer - \brief The QmlGraphicsGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. -*/ - -QML_DEFINE_NOCREATE_TYPE(QGraphicsObject) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QmlGraphicsGraphicsObjectContainer) - -QmlGraphicsGraphicsObjectContainer::QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent) -: QmlGraphicsItem(*new QmlGraphicsGraphicsObjectContainerPrivate, parent) -{ -} - -QmlGraphicsGraphicsObjectContainer::~QmlGraphicsGraphicsObjectContainer() -{ -} - -QGraphicsObject *QmlGraphicsGraphicsObjectContainer::graphicsObject() const -{ - Q_D(const QmlGraphicsGraphicsObjectContainer); - return d->graphicsObject; -} - -/*! - \qmlproperty QGraphicsObject GraphicsObjectContainer::graphicsObject - The QGraphicsObject associated with this element. -*/ -void QmlGraphicsGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (object == d->graphicsObject) - return; - - //### remove previously set item? - - d->setFiltering(false); - - d->graphicsObject = object; - - if (d->graphicsObject) { - d->graphicsObject->setParentItem(this); - - if (d->syncedResize && d->graphicsObject->isWidget()) { - QGraphicsWidget *gw = static_cast(d->graphicsObject); - QSizeF gwSize = gw->size(); //### should we use sizeHint? - QSizeF newSize = gwSize; - if (heightValid()) - newSize.setHeight(height()); - if (widthValid()) - newSize.setWidth(width()); - if (gwSize != newSize) - gw->resize(newSize); - - gwSize = gw->size(); - setImplicitWidth(gwSize.width()); - setImplicitHeight(gwSize.height()); - - d->setFiltering(true); - } - } -} - -QVariant QmlGraphicsGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (change == ItemSceneHasChanged) { - QGraphicsObject *o = d->graphicsObject; - d->graphicsObject = 0; - setGraphicsObject(o); - } - return QmlGraphicsItem::itemChange(change, value); -} - -bool QmlGraphicsGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (watched == d->graphicsObject && e->type() == QEvent::GraphicsSceneResize) { - if (d->graphicsObject && d->graphicsObject->isWidget() && d->syncedResize) { - QSizeF newSize = static_cast(d->graphicsObject)->size(); - setImplicitWidth(newSize.width()); - setImplicitHeight(newSize.height()); - } - } - return QmlGraphicsItem::eventFilter(watched, e); -} - -/*! - \qmlproperty bool GraphicsObjectContainer::synchronizedResizing - - This property determines whether or not the container and graphics object will synchronize their - sizes. - - \note This property only applies when wrapping a QGraphicsWidget. - - If synchronizedResizing is enabled, the container and widget will - synchronize their sizes as follows. - \list - \o If a size has been set on the container, the widget will be resized to the container. - Any changes in the container's size will be reflected in the widget. - - \o \e Otherwise, the container will initially be sized to the preferred size of the widget. - Any changes to the container's size will be reflected in the widget, and any changes to the - widget's size will be reflected in the container. - \endlist -*/ -bool QmlGraphicsGraphicsObjectContainer::synchronizedResizing() const -{ - Q_D(const QmlGraphicsGraphicsObjectContainer); - return d->syncedResize; -} - -void QmlGraphicsGraphicsObjectContainer::setSynchronizedResizing(bool on) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (on == d->syncedResize) - return; - - d->syncedResize = on; - d->setFiltering(on); -} - -void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() -{ - if (!graphicsObject || !graphicsObject->isWidget() || !syncedResize) - return; - - QGraphicsWidget *gw = static_cast(graphicsObject); - const QSizeF newSize(width, height); - gw->resize(newSize); - - //### will respecting the widgets min/max ever get us in trouble? (all other items always - // size to exactly what you tell them) - /*QSizeF constrainedSize = newSize.expandedTo(gw->minimumSize()).boundedTo(gw->maximumSize()); - gw->resize(constrainedSize); - if (constrainedSize != newSize) { - setImplicitWidth(constrainedSize.width()); - setImplicitHeight(constrainedSize.height()); - }*/ -} - -QT_END_NAMESPACE - -#include "moc_qfxgraphicsobjectcontainer.cpp" diff --git a/src/declarative/fx/qfxgraphicsobjectcontainer.h b/src/declarative/fx/qfxgraphicsobjectcontainer.h deleted file mode 100644 index 2ed5c1f..0000000 --- a/src/declarative/fx/qfxgraphicsobjectcontainer.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXGRAPHICSOBJECTCONTAINER_H -#define QFXGRAPHICSOBJECTCONTAINER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QGraphicsObject; -class QmlGraphicsGraphicsObjectContainerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem -{ - Q_OBJECT - - Q_CLASSINFO("DefaultProperty", "graphicsObject") - Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) - Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) - -public: - QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); - ~QmlGraphicsGraphicsObjectContainer(); - - QGraphicsObject *graphicsObject() const; - void setGraphicsObject(QGraphicsObject *); - - bool synchronizedResizing() const; - void setSynchronizedResizing(bool on); - -protected: - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - bool eventFilter(QObject *watched, QEvent *e); - -private: - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QGraphicsObject) -QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) - -QT_END_HEADER - -#endif // QFXGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp deleted file mode 100644 index 5ed82d7..0000000 --- a/src/declarative/fx/qfxgridview.cpp +++ /dev/null @@ -1,1585 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxvisualitemmodel.h" -#include "qlistmodelinterface.h" -#include "qmleasefollow.h" -#include "private/qfxflickable_p.h" -#include "qfxgridview.h" - -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGridViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsGridViewAttached(QObject *parent) - : QObject(parent), m_isCurrent(false), m_delayRemove(false) {} - ~QmlGraphicsGridViewAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(QmlGraphicsGridView *view READ view CONSTANT) - QmlGraphicsGridView *view() { return m_view; } - - Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) - bool isCurrentItem() const { return m_isCurrent; } - void setIsCurrentItem(bool c) { - if (m_isCurrent != c) { - m_isCurrent = c; - emit currentItemChanged(); - } - } - - Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) - bool delayRemove() const { return m_delayRemove; } - void setDelayRemove(bool delay) { - if (m_delayRemove != delay) { - m_delayRemove = delay; - emit delayRemoveChanged(); - } - } - - static QmlGraphicsGridViewAttached *properties(QObject *obj) { - QmlGraphicsGridViewAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsGridViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - - void emitAdd() { emit add(); } - void emitRemove() { emit remove(); } - -Q_SIGNALS: - void currentItemChanged(); - void delayRemoveChanged(); - void add(); - void remove(); - -public: - QmlGraphicsGridView *m_view; - bool m_isCurrent; - bool m_delayRemove; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsGridViewAttached::attachedProperties; - - -//---------------------------------------------------------------------------- - -class FxGridItem -{ -public: - FxGridItem(QmlGraphicsItem *i, QmlGraphicsGridView *v) : item(i), view(v) { - attached = QmlGraphicsGridViewAttached::properties(item); - attached->m_view = view; - } - ~FxGridItem() {} - - qreal rowPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() : item->x()); } - qreal colPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->x() : item->y()); } - qreal endRowPos() const { - return view->flow() == QmlGraphicsGridView::LeftToRight - ? item->y() + view->cellHeight() - 1 - : item->x() + view->cellWidth() - 1; - } - void setPosition(qreal col, qreal row) { - if (view->flow() == QmlGraphicsGridView::LeftToRight) { - item->setPos(QPointF(col, row)); - } else { - item->setPos(QPointF(row, col)); - } - } - - QmlGraphicsItem *item; - QmlGraphicsGridView *view; - QmlGraphicsGridViewAttached *attached; - int index; -}; - -//---------------------------------------------------------------------------- - -class QmlGraphicsGridViewPrivate : public QmlGraphicsFlickablePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsGridView) - -public: - QmlGraphicsGridViewPrivate() - : model(0), currentItem(0), flow(QmlGraphicsGridView::LeftToRight) - , visiblePos(0), visibleIndex(0) , currentIndex(-1) - , cellWidth(100), cellHeight(100), columns(1), requestedIndex(-1) - , highlightComponent(0), highlight(0), trackedItem(0) - , moveReason(Other), buffer(0), highlightXAnimator(0), highlightYAnimator(0) - , ownModel(false), wrap(false), autoHighlight(true) - , fixCurrentVisibility(false) {} - - void init(); - void clear(); - FxGridItem *createItem(int modelIndex); - void releaseItem(FxGridItem *item); - void refill(qreal from, qreal to); - - void updateGrid(); - void layout(bool removed=false); - void updateUnrequestedIndexes(); - void updateUnrequestedPositions(); - void updateTrackedItem(); - void createHighlight(); - void updateHighlight(); - void updateCurrent(int modelIndex); - - FxGridItem *visibleItem(int modelIndex) const { - if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { - for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { - FxGridItem *item = visibleItems.at(i); - if (item->index == modelIndex) - return item; - } - } - return 0; - } - - qreal position() const { - Q_Q(const QmlGraphicsGridView); - return flow == QmlGraphicsGridView::LeftToRight ? q->viewportY() : q->viewportX(); - } - void setPosition(qreal pos) { - Q_Q(QmlGraphicsGridView); - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportY(pos); - else - q->setViewportX(pos); - } - int size() const { - Q_Q(const QmlGraphicsGridView); - return flow == QmlGraphicsGridView::LeftToRight ? q->height() : q->width(); - } - qreal startPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) - pos = visibleItems.first()->rowPos() - visibleIndex / columns * rowSize(); - return pos; - } - - qreal endPosition() const { - qreal pos = 0; - if (model && model->count()) - pos = rowPosAt(model->count() - 1) + rowSize(); - return pos; - } - - bool isValid() const { - return model && model->count() && model->isValid(); - } - - int rowSize() const { - return flow == QmlGraphicsGridView::LeftToRight ? cellHeight : cellWidth; - } - int colSize() const { - return flow == QmlGraphicsGridView::LeftToRight ? cellWidth : cellHeight; - } - - qreal colPosAt(int modelIndex) const { - if (FxGridItem *item = visibleItem(modelIndex)) - return item->colPos(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int count = (visibleIndex - modelIndex) % columns; - int col = visibleItems.first()->colPos() / colSize(); - col = (columns - count + col) % columns; - return col * colSize(); - } else { - int count = columns - 1 - (modelIndex - visibleItems.last()->index - 1) % columns; - return visibleItems.last()->colPos() - count * colSize(); - } - } else { - return (modelIndex % columns) * colSize(); - } - return 0; - } - qreal rowPosAt(int modelIndex) const { - if (FxGridItem *item = visibleItem(modelIndex)) - return item->rowPos(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int firstCol = visibleItems.first()->colPos() / colSize(); - int col = visibleIndex - modelIndex + (columns - firstCol - 1); - int rows = col / columns; - return visibleItems.first()->rowPos() - rows * rowSize(); - } else { - int count = modelIndex - visibleItems.last()->index; - int col = visibleItems.last()->colPos() + count * colSize(); - int rows = col / (columns * colSize()); - return visibleItems.last()->rowPos() + rows * rowSize(); - } - } else { - return (modelIndex / columns) * rowSize(); - } - return 0; - } - - // Map a model index to visibleItems list index. - // These may differ if removed items are still present in the visible list, - // e.g. doing a removal animation - int mapFromModel(int modelIndex) const { - if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) - return -1; - for (int i = 0; i < visibleItems.count(); ++i) { - FxGridItem *listItem = visibleItems.at(i); - if (listItem->index == modelIndex) - return i + visibleIndex; - if (listItem->index > modelIndex) - return -1; - } - return -1; // Not in visibleList - } - - // for debugging only - void checkVisible() const { - int skip = 0; - for (int i = 0; i < visibleItems.count(); ++i) { - FxGridItem *listItem = visibleItems.at(i); - if (listItem->index == -1) { - ++skip; - } else if (listItem->index != visibleIndex + i - skip) { - for (int j = 0; j < visibleItems.count(); j++) - qDebug() << " index" << j << "item index" << visibleItems.at(j)->index; - qFatal("index %d %d %d", visibleIndex, i, listItem->index); - } - } - } - - QmlGraphicsVisualModel *model; - QVariant modelVariant; - QList visibleItems; - QHash unrequestedItems; - FxGridItem *currentItem; - QmlGraphicsGridView::Flow flow; - int visiblePos; - int visibleIndex; - int currentIndex; - int cellWidth; - int cellHeight; - int columns; - int requestedIndex; - QmlComponent *highlightComponent; - FxGridItem *highlight; - FxGridItem *trackedItem; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; - int buffer; - QmlEaseFollow *highlightXAnimator; - QmlEaseFollow *highlightYAnimator; - - int ownModel : 1; - int wrap : 1; - int autoHighlight : 1; - int fixCurrentVisibility : 1; -}; - -void QmlGraphicsGridViewPrivate::init() -{ - Q_Q(QmlGraphicsGridView); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(sizeChange())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(sizeChange())); -} - -void QmlGraphicsGridViewPrivate::clear() -{ - for (int i = 0; i < visibleItems.count(); ++i) - releaseItem(visibleItems.at(i)); - visibleItems.clear(); - visiblePos = 0; - visibleIndex = 0; - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - createHighlight(); - trackedItem = 0; -} - -FxGridItem *QmlGraphicsGridViewPrivate::createItem(int modelIndex) -{ - Q_Q(QmlGraphicsGridView); - // create object - requestedIndex = modelIndex; - FxGridItem *listItem = 0; - if (QmlGraphicsItem *item = model->item(modelIndex, false)) { - listItem = new FxGridItem(item, q); - listItem->index = modelIndex; - // complete - model->completeItem(); - listItem->item->setZValue(modelIndex + 1); - listItem->item->setParent(q->viewport()); - } - requestedIndex = 0; - return listItem; -} - - -void QmlGraphicsGridViewPrivate::releaseItem(FxGridItem *item) -{ - Q_Q(QmlGraphicsGridView); - if (!item) - return; - if (trackedItem == item) { - QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - if (model->release(item->item) == 0) { - // item was not destroyed, and we no longer reference it. - unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - } - delete item; -} - -void QmlGraphicsGridViewPrivate::refill(qreal from, qreal to) -{ - Q_Q(QmlGraphicsGridView); - if (!isValid() || !q->isComponentComplete()) - return; - - from -= buffer; - to += buffer; - bool changed = false; - - int colPos = 0; - int rowPos = 0; - int modelIndex = 0; - if (visibleItems.count()) { - rowPos = visibleItems.last()->rowPos(); - colPos = visibleItems.last()->colPos() + colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - int i = visibleItems.count() - 1; - while (i > 0 && visibleItems.at(i)->index == -1) - --i; - modelIndex = visibleItems.at(i)->index + 1; - } - - FxGridItem *item = 0; - while (modelIndex < model->count() && rowPos <= to) { - //qDebug() << "refill: append item" << modelIndex; - if (!(item = createItem(modelIndex))) - break; - item->setPosition(colPos, rowPos); - visibleItems.append(item); - colPos += colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - ++modelIndex; - changed = true; - } - - if (visibleItems.count()) { - rowPos = visibleItems.first()->rowPos(); - colPos = visibleItems.first()->colPos() - colSize(); - if (colPos < 0) { - colPos = colSize() * (columns - 1); - rowPos -= rowSize(); - } - } - while (visibleIndex > 0 && rowPos + rowSize() - 1 >= from){ - //qDebug() << "refill: prepend item" << visibleIndex-1 << "top pos" << rowPos << colPos; - if (!(item = createItem(visibleIndex-1))) - break; - --visibleIndex; - item->setPosition(colPos, rowPos); - visibleItems.prepend(item); - colPos -= colSize(); - if (colPos < 0) { - colPos = colSize() * (columns - 1); - rowPos -= rowSize(); - } - changed = true; - } - - while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endRowPos() < from) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endRowPos(); - if (item->index != -1) - visibleIndex++; - visibleItems.removeFirst(); - releaseItem(item); - changed = true; - } - while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->rowPos() > to) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; - visibleItems.removeLast(); - releaseItem(item); - changed = true; - } - if (changed) { - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } -} - -void QmlGraphicsGridViewPrivate::updateGrid() -{ - Q_Q(QmlGraphicsGridView); - columns = (int)qMax((flow == QmlGraphicsGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); - if (isValid()) { - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } -} - -void QmlGraphicsGridViewPrivate::layout(bool removed) -{ - Q_Q(QmlGraphicsGridView); - if (visibleItems.count()) { - qreal rowPos = visibleItems.first()->rowPos(); - qreal colPos = visibleItems.first()->colPos(); - if (visibleIndex % columns != 0) { - if (removed) - rowPos -= rowSize(); - colPos = (visibleIndex % columns) * colSize(); - visibleItems.first()->setPosition(colPos, rowPos); - } else if (colPos != 0) { - colPos = 0; - visibleItems.first()->setPosition(colPos, rowPos); - } - for (int i = 1; i < visibleItems.count(); ++i) { - FxGridItem *item = visibleItems.at(i); - colPos += colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - item->setPosition(colPos, rowPos); - } - } - q->refill(); - q->trackedPositionChanged(); - updateHighlight(); - if (flow == QmlGraphicsGridView::LeftToRight) { - q->setViewportHeight(endPosition() - startPosition()); - fixupY(); - } else { - q->setViewportWidth(endPosition() - startPosition()); - fixupX(); - } - updateUnrequestedPositions(); -} - -void QmlGraphicsGridViewPrivate::updateUnrequestedIndexes() -{ - Q_Q(QmlGraphicsGridView); - QHash::iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) - *it = model->indexOf(it.key(), q); -} - -void QmlGraphicsGridViewPrivate::updateUnrequestedPositions() -{ - QHash::const_iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { - if (flow == QmlGraphicsGridView::LeftToRight) { - it.key()->setPos(QPointF(colPosAt(*it), rowPosAt(*it))); - } else { - it.key()->setPos(QPointF(rowPosAt(*it), colPosAt(*it))); - } - } -} - -void QmlGraphicsGridViewPrivate::updateTrackedItem() -{ - Q_Q(QmlGraphicsGridView); - FxGridItem *item = currentItem; - if (highlight) - item = highlight; - - if (trackedItem && item != trackedItem) { - QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - - if (!trackedItem && item) { - trackedItem = item; - QObject::connect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::connect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - q->trackedPositionChanged(); - } - if (trackedItem) - q->trackedPositionChanged(); -} - -void QmlGraphicsGridViewPrivate::createHighlight() -{ - Q_Q(QmlGraphicsGridView); - if (highlight) { - if (trackedItem == highlight) - trackedItem = 0; - delete highlight->item; - delete highlight; - highlight = 0; - delete highlightXAnimator; - delete highlightYAnimator; - highlightXAnimator = 0; - highlightYAnimator = 0; - } - - if (!highlightComponent) - return; - - if (currentItem) { - QmlContext *highlightContext = new QmlContext(qmlContext(q)); - QObject *nobj = highlightComponent->create(highlightContext); - if (nobj) { - highlightContext->setParent(nobj); - QmlGraphicsItem *item = qobject_cast(nobj); - if (item) { - item->setParent(q->viewport()); - highlight = new FxGridItem(item, q); - highlightXAnimator = new QmlEaseFollow(q); - highlightXAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("x"))); - highlightXAnimator->setDuration(150); - highlightXAnimator->setEnabled(autoHighlight); - highlightYAnimator = new QmlEaseFollow(q); - highlightYAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("y"))); - highlightYAnimator->setDuration(150); - highlightYAnimator->setEnabled(autoHighlight); - } else { - delete highlightContext; - } - } - } -} - -void QmlGraphicsGridViewPrivate::updateHighlight() -{ - if ((!currentItem && highlight) || (currentItem && !highlight)) - createHighlight(); - updateTrackedItem(); - if (currentItem && autoHighlight && highlight) { - // auto-update highlight - highlightXAnimator->setSourceValue(currentItem->item->x()); - highlightYAnimator->setSourceValue(currentItem->item->y()); - highlight->item->setWidth(currentItem->item->width()); - highlight->item->setHeight(currentItem->item->height()); - } -} - -void QmlGraphicsGridViewPrivate::updateCurrent(int modelIndex) -{ - Q_Q(QmlGraphicsGridView); - if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { - if (currentItem) { - currentItem->attached->setIsCurrentItem(false); - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - updateHighlight(); - emit q->currentIndexChanged(); - } - return; - } - - if (currentItem && currentIndex == modelIndex) { - updateHighlight(); - return; - } - - FxGridItem *oldCurrentItem = currentItem; - currentIndex = modelIndex; - currentItem = createItem(modelIndex); - fixCurrentVisibility = true; - if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) - oldCurrentItem->attached->setIsCurrentItem(false); - if (currentItem) { - currentItem->setPosition(colPosAt(modelIndex), rowPosAt(modelIndex)); - currentItem->item->setFocus(true); - currentItem->attached->setIsCurrentItem(true); - } - updateHighlight(); - emit q->currentIndexChanged(); - releaseItem(oldCurrentItem); -} - -//---------------------------------------------------------------------------- - -/*! - \qmlclass GridView - \inherits Flickable - \brief The GridView item provides a grid view of items provided by a model. - - The model is typically provided by a QAbstractListModel "C++ model object", - but can also be created directly in QML. - - The items are laid out top to bottom (vertically) or left to right (horizontally) - and may be flicked to scroll. - - The below example creates a very simple grid, using a QML model. - - \image gridview.png - - \snippet doc/src/snippets/declarative/gridview/gridview.qml 3 - - The model is defined as a ListModel using QML: - \quotefile doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml - - In this case ListModel is a handy way for us to test our UI. In practice - the model would be implemented in C++, or perhaps via a SQL data source. -*/ -QmlGraphicsGridView::QmlGraphicsGridView(QmlGraphicsItem *parent) - : QmlGraphicsFlickable(*(new QmlGraphicsGridViewPrivate), parent) -{ - Q_D(QmlGraphicsGridView); - d->init(); -} - -QmlGraphicsGridView::~QmlGraphicsGridView() -{ - Q_D(QmlGraphicsGridView); - d->clear(); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlattachedproperty bool GridView::isCurrentItem - This attched property is true if this delegate is the current item; otherwise false. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty GridView GridView::view - This attached property holds the view that manages this delegate instance. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty bool GridView::delayRemove - This attached property holds whether the delegate may be destroyed. - - It is attached to each instance of the delegate. - - It is sometimes necessary to delay the destruction of an item - until an animation completes. - - The example below ensures that the animation completes before - the item is removed from the grid. - - \code - Component { - id: myDelegate - Item { - id: wrapper - GridView.onRemove: SequentialAnimation { - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: true } - NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: false } - } - } - } - \endcode -*/ - -/*! - \qmlattachedsignal GridView::onAdd() - This attached handler is called immediately after an item is added to the view. -*/ - -/*! - \qmlattachedsignal GridView::onRemove() - This attached handler is called immediately before an item is removed from the view. -*/ - - -/*! - \qmlproperty model GridView::model - This property holds the model providing data for the grid. - - The model provides a set of data that is used to create the items - for the view. For large or dynamic datasets the model is usually - provided by a C++ model object. The C++ model object must be a \l - {QAbstractItemModel} subclass, a VisualModel, or a simple list. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsGridView::model() const -{ - Q_D(const QmlGraphicsGridView); - return d->modelVariant; -} - -void QmlGraphicsGridView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsGridView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - } - d->clear(); - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - if (d->currentIndex >= d->model->count() || d->currentIndex < 0) - setCurrentIndex(0); - else - d->updateCurrent(d->currentIndex); - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - refill(); - emit countChanged(); - } -} - -/*! - \qmlproperty component GridView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 -*/ -QmlComponent *QmlGraphicsGridView::delegate() const -{ - Q_D(const QmlGraphicsGridView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsGridView::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsGridView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - d->updateCurrent(d->currentIndex); - refill(); - } -} - -/*! - \qmlproperty int GridView::currentIndex - \qmlproperty Item GridView::currentItem - - \c currentIndex holds the index of the current item. - \c currentItem is the current item. Note that the position of the current item - may only be approximate until it becomes visible in the view. -*/ -int QmlGraphicsGridView::currentIndex() const -{ - Q_D(const QmlGraphicsGridView); - return d->currentIndex; -} - -void QmlGraphicsGridView::setCurrentIndex(int index) -{ - Q_D(QmlGraphicsGridView); - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { - cancelFlick(); - d->updateCurrent(index); - } else { - d->currentIndex = index; - } -} - -QmlGraphicsItem *QmlGraphicsGridView::currentItem() -{ - Q_D(QmlGraphicsGridView); - if (!d->currentItem) - return 0; - return d->currentItem->item; -} - -/*! - \qmlproperty int GridView::count - This property holds the number of items in the view. -*/ -int QmlGraphicsGridView::count() const -{ - Q_D(const QmlGraphicsGridView); - if (d->model) - return d->model->count(); - return 0; -} - -/*! - \qmlproperty component GridView::highlight - This property holds the component to use as the highlight. - - An instance of the highlight component will be created for each view. - The geometry of the resultant component instance will be managed by the view - so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. - - The below example demonstrates how to make a simple highlight: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 - - \sa highlightFollowsCurrentItem -*/ -QmlComponent *QmlGraphicsGridView::highlight() const -{ - Q_D(const QmlGraphicsGridView); - return d->highlightComponent; -} - -void QmlGraphicsGridView::setHighlight(QmlComponent *highlight) -{ - Q_D(QmlGraphicsGridView); - delete d->highlightComponent; - d->highlightComponent = highlight; - d->updateCurrent(d->currentIndex); -} - -/*! - \qmlproperty bool GridView::highlightFollowsCurrentItem - This property sets whether the highlight is managed by the view. - - If highlightFollowsCurrentItem is true, the highlight will be moved smoothly - to follow the current item. If highlightFollowsCurrentItem is false, the - highlight will not be moved by the view, and must be implemented - by the highlight component, for example: - - \code - Component { - id: myHighlight - Rectangle { - id: wrapper; color: "lightsteelblue"; radius: 4; width: 320; height: 60 > - y: SpringFollow { source: Wrapper.GridView.view.currentItem.y; spring: 3; damping: 0.2 } - x: SpringFollow { source: Wrapper.GridView.view.currentItem.x; spring: 3; damping: 0.2 } - } - } - \endcode -*/ -bool QmlGraphicsGridView::highlightFollowsCurrentItem() const -{ - Q_D(const QmlGraphicsGridView); - return d->autoHighlight; -} - -void QmlGraphicsGridView::setHighlightFollowsCurrentItem(bool autoHighlight) -{ - Q_D(QmlGraphicsGridView); - d->autoHighlight = autoHighlight; - if (d->highlightXAnimator) { - d->highlightXAnimator->setEnabled(d->autoHighlight); - d->highlightYAnimator->setEnabled(d->autoHighlight); - } - d->updateHighlight(); -} - -/*! - \qmlproperty enumeration GridView::flow - This property holds the flow of the grid. - - Possible values are \c LeftToRight (default) and \c TopToBottom. - - If \a flow is \c LeftToRight, the view will scroll vertically. - If \a flow is \c TopToBottom, the view will scroll horizontally. -*/ -QmlGraphicsGridView::Flow QmlGraphicsGridView::flow() const -{ - Q_D(const QmlGraphicsGridView); - return d->flow; -} - -void QmlGraphicsGridView::setFlow(Flow flow) -{ - Q_D(QmlGraphicsGridView); - if (d->flow != flow) { - d->flow = flow; - if (d->flow == LeftToRight) - setViewportWidth(-1); - else - setViewportHeight(-1); - d->clear(); - d->updateGrid(); - refill(); - d->updateCurrent(d->currentIndex); - } -} - -/*! - \qmlproperty bool GridView::keyNavigationWraps - This property holds whether the grid wraps key navigation - - If this property is true then key presses to move off of one end of the grid will cause the - selection to jump to the other side. -*/ -bool QmlGraphicsGridView::isWrapEnabled() const -{ - Q_D(const QmlGraphicsGridView); - return d->wrap; -} - -void QmlGraphicsGridView::setWrapEnabled(bool wrap) -{ - Q_D(QmlGraphicsGridView); - d->wrap = wrap; -} - -/*! - \qmlproperty int GridView::cacheBuffer - This property holds the number of off-screen pixels to cache. - - This property determines the number of pixels above the top of the view - and below the bottom of the view to cache. Setting this value can make - scrolling the view smoother at the expense of additional memory usage. -*/ -int QmlGraphicsGridView::cacheBuffer() const -{ - Q_D(const QmlGraphicsGridView); - return d->buffer; -} - -void QmlGraphicsGridView::setCacheBuffer(int buffer) -{ - Q_D(QmlGraphicsGridView); - if (d->buffer != buffer) { - d->buffer = buffer; - if (isComponentComplete()) - refill(); - } -} - -/*! - \qmlproperty int GridView::cellWidth - \qmlproperty int GridView::cellHeight - - These properties holds the width and height of each cell in the grid - - The default sell size is 100x100. -*/ -int QmlGraphicsGridView::cellWidth() const -{ - Q_D(const QmlGraphicsGridView); - return d->cellWidth; -} - -void QmlGraphicsGridView::setCellWidth(int cellWidth) -{ - Q_D(QmlGraphicsGridView); - if (cellWidth != d->cellWidth && cellWidth > 0) { - d->cellWidth = qMax(1, cellWidth); - d->updateGrid(); - emit cellWidthChanged(); - d->layout(); - } -} - -int QmlGraphicsGridView::cellHeight() const -{ - Q_D(const QmlGraphicsGridView); - return d->cellHeight; -} - -void QmlGraphicsGridView::setCellHeight(int cellHeight) -{ - Q_D(QmlGraphicsGridView); - if (cellHeight != d->cellHeight && cellHeight > 0) { - d->cellHeight = qMax(1, cellHeight); - d->updateGrid(); - emit cellHeightChanged(); - d->layout(); - } -} - -void QmlGraphicsGridView::sizeChange() -{ - Q_D(QmlGraphicsGridView); - if (isComponentComplete()) { - d->updateGrid(); - d->layout(); - } -} - -void QmlGraphicsGridView::viewportMoved() -{ - QmlGraphicsFlickable::viewportMoved(); - refill(); -} - -qreal QmlGraphicsGridView::minYExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::TopToBottom) - return QmlGraphicsFlickable::minYExtent(); - return -d->startPosition(); -} - -qreal QmlGraphicsGridView::maxYExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::TopToBottom) - return QmlGraphicsFlickable::maxYExtent(); - return -(d->endPosition() - height()); -} - -qreal QmlGraphicsGridView::minXExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) - return QmlGraphicsFlickable::minXExtent(); - return -d->startPosition(); -} - -qreal QmlGraphicsGridView::maxXExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) - return QmlGraphicsFlickable::maxXExtent(); - return -(d->endPosition() - width()); -} - -void QmlGraphicsGridView::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsGridView); - QmlGraphicsFlickable::keyPressEvent(event); - if (event->isAccepted()) - return; - - if (d->model && d->model->count() && d->interactive) { - d->moveReason = QmlGraphicsGridViewPrivate::Key; - int oldCurrent = currentIndex(); - switch (event->key()) { - case Qt::Key_Up: - moveCurrentIndexUp(); - break; - case Qt::Key_Down: - moveCurrentIndexDown(); - break; - case Qt::Key_Left: - moveCurrentIndexLeft(); - break; - case Qt::Key_Right: - moveCurrentIndexRight(); - break; - default: - break; - } - if (oldCurrent != currentIndex()) { - event->accept(); - return; - } - } - d->moveReason = QmlGraphicsGridViewPrivate::Other; - event->ignore(); -} - -/*! - \qmlmethod GridView::moveCurrentIndexUp - - Move the currentIndex up one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexUp() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() >= d->columns || d->wrap) { - int index = currentIndex() - d->columns; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } else { - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex() - 1; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexDown - - Move the currentIndex down one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexDown() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() < d->model->count() - d->columns || d->wrap) { - int index = currentIndex()+d->columns; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } else { - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex() + 1; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexLeft - - Move the currentIndex left one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexLeft() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex() - 1; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } else { - if (currentIndex() >= d->columns || d->wrap) { - int index = currentIndex() - d->columns; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexRight - - Move the currentIndex right one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexRight() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex() + 1; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } else { - if (currentIndex() < d->model->count() - d->columns || d->wrap) { - int index = currentIndex()+d->columns; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } -} - -void QmlGraphicsGridView::componentComplete() -{ - Q_D(QmlGraphicsGridView); - QmlGraphicsFlickable::componentComplete(); - d->updateGrid(); - if (d->currentIndex < 0) - d->updateCurrent(0); - refill(); -} - -void QmlGraphicsGridView::trackedPositionChanged() -{ - Q_D(QmlGraphicsGridView); - if (!d->trackedItem) - return; - if (!isFlicking() && !d->pressed && d->moveReason == QmlGraphicsGridViewPrivate::Key) { - if (d->trackedItem->rowPos() < d->position()) { - d->setPosition(d->trackedItem->rowPos()); - } else if (d->trackedItem->endRowPos() > d->position() + d->size()) { - qreal pos = d->trackedItem->endRowPos() - d->size(); - if (d->rowSize() > d->size()) - pos = d->trackedItem->rowPos(); - d->setPosition(pos); - } - } -} - -void QmlGraphicsGridView::itemsInserted(int modelIndex, int count) -{ - Q_D(QmlGraphicsGridView); - if (!d->visibleItems.count() || d->model->count() <= 1) { - refill(); - d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); - emit countChanged(); - return; - } - - int index = d->mapFromModel(modelIndex); - if (index == -1) { - int i = d->visibleItems.count() - 1; - while (i > 0 && d->visibleItems.at(i)->index == -1) - --i; - if (d->visibleItems.at(i)->index + 1 == modelIndex) { - // Special case of appending an item to the model. - index = d->visibleIndex + d->visibleItems.count(); - } else { - if (modelIndex + count - 1 < d->visibleIndex) { - // Insert before visible items - d->visibleIndex += count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxGridItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index += count; - } - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) - d->currentItem->index = d->currentIndex; - } - d->layout(); - emit countChanged(); - return; - } - } - - // At least some of the added items will be visible - int insertCount = count; - if (index < d->visibleIndex) { - insertCount -= d->visibleIndex - index; - index = d->visibleIndex; - modelIndex = d->visibleIndex; - } - - index -= d->visibleIndex; - int to = d->buffer+d->position()+d->size()-1; - int colPos, rowPos; - if (index < d->visibleItems.count()) { - colPos = d->visibleItems.at(index)->colPos(); - rowPos = d->visibleItems.at(index)->rowPos(); - } else { - // appending items to visible list - colPos = d->visibleItems.at(index-1)->colPos() + d->colSize(); - rowPos = d->visibleItems.at(index-1)->rowPos(); - if (colPos > d->colSize() * (d->columns-1)) { - colPos = 0; - rowPos += d->rowSize(); - } - } - - QList added; - int i = 0; - for (; i < insertCount && rowPos + d->rowSize() - 1 <= to; ++i) { - int mod = (modelIndex+i) % d->columns; - while (mod++ < d->columns && modelIndex + i < d->model->count() && i < insertCount) { - FxGridItem *item = d->createItem(modelIndex + i); - d->visibleItems.insert(index, item); - item->setPosition(colPos, rowPos); - added.append(item); - colPos += d->colSize(); - if (colPos > d->colSize() * (d->columns-1)) { - colPos = 0; - rowPos += d->rowSize(); - } - ++index; - ++i; - } - } - - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) { - d->currentItem->index = d->currentIndex; - d->currentItem->setPosition(d->colPosAt(d->currentIndex), d->rowPosAt(d->currentIndex)); - } - } - if (i < insertCount) { - // We didn't insert all our new items, which means anything - // beyond the current index is not visible - remove it. - while (d->visibleItems.count() > index) - d->releaseItem(d->visibleItems.takeLast()); - } else { - // Update the indexes of the following visible items. - for (; index < d->visibleItems.count(); ++index) { - FxGridItem *listItem = d->visibleItems.at(index); - if (listItem->index != -1) - listItem->index += count; - } - } - // everything is in order now - emit add() signal - for (int j = 0; j < added.count(); ++j) - added.at(j)->attached->emitAdd(); - d->layout(); - emit countChanged(); -} - -void QmlGraphicsGridView::itemsRemoved(int modelIndex, int count) -{ - Q_D(QmlGraphicsGridView); - bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; - int index = d->mapFromModel(modelIndex); - if (index == -1) { - if (modelIndex + count - 1 < d->visibleIndex) { - // Items removed before our visible items. - d->visibleIndex -= count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxGridItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index -= count; - } - } - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - d->layout(true); - emit countChanged(); - return; - } - - // Remove the items from the visible list, skipping anything already marked for removal - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (item->index == -1 || item->index < modelIndex) { - // already removed, or before removed items - ++it; - } else if (item->index >= modelIndex + count) { - // after removed items - item->index -= count; - ++it; - } else { - // removed item - item->attached->emitRemove(); - if (item->attached->delayRemove()) { - item->index = -1; - connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); - ++it; - } else { - it = d->visibleItems.erase(it); - d->releaseItem(item); - } - } - } - - // fix current - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - - // update visibleIndex - for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { - if ((*it)->index != -1) { - d->visibleIndex = (*it)->index; - break; - } - } - - if (d->visibleItems.isEmpty()) { - d->visibleIndex = 0; - d->setPosition(0); - refill(); - } else { - // Correct the positioning of the items - d->layout(); - } - emit countChanged(); -} - -void QmlGraphicsGridView::destroyRemoved() -{ - Q_D(QmlGraphicsGridView); - for (QList::Iterator it = d->visibleItems.begin(); - it != d->visibleItems.end();) { - FxGridItem *listItem = *it; - if (listItem->index == -1 && listItem->attached->delayRemove() == false) { - d->releaseItem(listItem); - it = d->visibleItems.erase(it); - } else { - ++it; - } - } - - // Correct the positioning of the items - d->layout(); -} - -void QmlGraphicsGridView::itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsGridView); - QHash moved; - - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (item->index >= from && item->index < from + count) { - // take the items that are moving - item->index += (to-from); - moved.insert(item->index, item); - it = d->visibleItems.erase(it); - } else { - if (item->index > from && item->index != -1) { - // move everything after the moved items. - item->index -= count; - } - ++it; - } - } - - int remaining = count; - int endIndex = d->visibleIndex; - it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (remaining && item->index >= to && item->index < to + count) { - // place items in the target position, reusing any existing items - FxGridItem *movedItem = moved.take(item->index); - if (!movedItem) - movedItem = d->createItem(item->index); - it = d->visibleItems.insert(it, movedItem); - ++it; - --remaining; - } else { - if (item->index != -1) { - if (item->index >= to) { - // update everything after the moved items. - item->index += count; - } - endIndex = item->index; - } - ++it; - } - } - - // If we have moved items to the end of the visible items - // then add any existing moved items that we have - while (FxGridItem *item = moved.take(endIndex+1)) { - d->visibleItems.append(item); - ++endIndex; - } - - // Whatever moved items remain are no longer visible items. - while (moved.count()) - d->releaseItem(moved.take(moved.begin().key())); - - d->layout(); -} - -void QmlGraphicsGridView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsGridView); - item->setParentItem(this); - if (d->requestedIndex != index) { - item->setParentItem(this); - d->unrequestedItems.insert(item, index); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - item->setPos(QPointF(d->colPosAt(index), d->rowPosAt(index))); - } else { - item->setPos(QPointF(d->rowPosAt(index), d->colPosAt(index))); - } - } -} - -void QmlGraphicsGridView::destroyingItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsGridView); - d->unrequestedItems.remove(item); -} - - -void QmlGraphicsGridView::refill() -{ - Q_D(QmlGraphicsGridView); - d->refill(d->position(), d->position()+d->size()-1); -} - - -QmlGraphicsGridViewAttached *QmlGraphicsGridView::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsGridViewAttached::properties(obj); -} - -QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView) - -QT_END_NAMESPACE - -#include "qfxgridview.moc" diff --git a/src/declarative/fx/qfxgridview.h b/src/declarative/fx/qfxgridview.h deleted file mode 100644 index fd0a459..0000000 --- a/src/declarative/fx/qfxgridview.h +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXGRIDVIEW_H -#define QFXGRIDVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsVisualModel; -class QmlGraphicsGridViewAttached; -class QmlGraphicsGridViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - Q_PROPERTY(Flow flow READ flow WRITE setFlow) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) - Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsGridView(QmlGraphicsItem *parent=0); - ~QmlGraphicsGridView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - Q_ENUMS(Flow) - enum Flow { LeftToRight, TopToBottom }; - Flow flow() const; - void setFlow(Flow); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - int cellWidth() const; - void setCellWidth(int); - - int cellHeight() const; - void setCellHeight(int); - - static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void moveCurrentIndexUp(); - void moveCurrentIndexDown(); - void moveCurrentIndexLeft(); - void moveCurrentIndexRight(); - -Q_SIGNALS: - void countChanged(); - void currentIndexChanged(); - void cellWidthChanged(); - void cellHeightChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void trackedPositionChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - void sizeChange(); - -private: - void refill(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsGridView) -QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp deleted file mode 100644 index 34b3399..0000000 --- a/src/declarative/fx/qfximage.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfximage.h" -#include "qfximage_p.h" - -#include -#include - -QT_BEGIN_NAMESPACE - - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QmlGraphicsImage) - -/*! - \qmlclass Image QmlGraphicsImage - \brief The Image element allows you to add bitmaps to a scene. - \inherits Item - - The Image element supports untransformed, stretched and tiled. - - For an explanation of stretching and tiling, see the fillMode property description. - - Examples: - \table - \row - \o \image declarative-qtlogo1.png - \o Untransformed - \qml - Image { source: "pics/qtlogo.png" } - \endqml - \row - \o \image declarative-qtlogo2.png - \o fillMode: Stretch (default) - \qml - Image { - width: 160 - height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo3.png - \o fillMode: Tile - \qml - Image { - fillMode: Image.Tile - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo6.png - \o fillMode: TileVertically - \qml - Image { - fillMode: Image.TileVertically - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo5.png - \o fillMode: TileHorizontally - \qml - Image { - fillMode: Image.TileHorizontally - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \endtable - */ - -/*! - \internal - \class QmlGraphicsImage Image - \brief The QmlGraphicsImage class provides an image item that you can add to a QmlView. - - \ingroup group_coreitems - - Example: - \qml - Image { source: "pics/star.png" } - \endqml - - A QmlGraphicsImage object can be instantiated in Qml using the tag \l Image. -*/ - -QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsItem *parent) - : QmlGraphicsImageBase(*(new QmlGraphicsImagePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImageBase(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsImage::~QmlGraphicsImage() -{ -} - -QPixmap QmlGraphicsImage::pixmap() const -{ - Q_D(const QmlGraphicsImage); - return d->pix; -} - -void QmlGraphicsImage::setPixmap(const QPixmap &pix) -{ - Q_D(QmlGraphicsImage); - if (!d->url.isEmpty()) - return; - d->pix = pix; - - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - update(); -} - -/*! - \qmlproperty enumeration Image::fillMode - - Set this property to define what happens when the image set for the item is smaller - than the size of the item. - - \list - \o Stretch - the image is scaled to fit - \o PreserveAspectFit - the image is scaled uniformly to fit without cropping - \o PreserveAspectCrop - the image is scaled uniformly to fill, cropping if necessary - \o Tile - the image is duplicated horizontally and vertically - \o TileVertically - the image is stretched horizontally and tiled vertically - \o TileHorizontally - the image is stretched vertically and tiled horizontally - \endlist - - \image declarative-image_fillMode.gif - \sa examples/declarative/fillmode - \sa examples/declarative/aspectratio -*/ -QmlGraphicsImage::FillMode QmlGraphicsImage::fillMode() const -{ - Q_D(const QmlGraphicsImage); - return d->fillMode; -} - -void QmlGraphicsImage::setFillMode(FillMode mode) -{ - Q_D(QmlGraphicsImage); - if (d->fillMode == mode) - return; - d->fillMode = mode; - update(); - emit fillModeChanged(); -} - -/*! - \qmlproperty enum Image::status - - This property holds the status of image loading. It can be one of: - \list - \o Null - no image has been set - \o Ready - the image has been loaded - \o Loading - the image is currently being loaded - \o Error - an error occurred while loading the image - \endlist - - \sa progress -*/ - -/*! - \qmlproperty real Image::progress - - This property holds the progress of image loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ - -/*! - \qmlproperty bool Image::smooth - - Set this property if you want the image to be smoothly filtered when scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the image is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the image is stationary on - the screen. A common pattern when animating an image is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -/*! - \qmlproperty url Image::source - - Image can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. - - The URL may be absolute, or relative to the URL of the component. -*/ - -void QmlGraphicsImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsImage); - if (d->pix.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - if (width() != d->pix.width() || height() != d->pix.height()) { - if (d->fillMode >= Tile) { - if (d->fillMode == Tile) - p->drawTiledPixmap(QRectF(0,0,width(),height()), d->pix); - else if (d->fillMode == TileVertically) - p->drawTiledPixmap(QRectF(0,0,d->pix.width(),height()), d->pix); - else - p->drawTiledPixmap(QRectF(0,0,width(),d->pix.height()), d->pix); - } else { - qreal widthScale = width() / qreal(d->pix.width()); - qreal heightScale = height() / qreal(d->pix.height()); - - QTransform scale; - - if (d->fillMode == PreserveAspectFit) { - if (widthScale < heightScale) { - heightScale = widthScale; - scale.translate(0, (height() - heightScale * d->pix.height()) / 2); - } else if(heightScale < widthScale) { - widthScale = heightScale; - scale.translate((width() - widthScale * d->pix.width()) / 2, 0); - } - } else if (d->fillMode == PreserveAspectCrop) { - if (widthScale < heightScale) { - widthScale = heightScale; - scale.translate((width() - widthScale * d->pix.width()) / 2, 0); - } else if(heightScale < widthScale) { - heightScale = widthScale; - scale.translate(0, (height() - heightScale * d->pix.height()) / 2); - } - } - - scale.scale(widthScale, heightScale); - QTransform old = p->transform(); - p->setWorldTransform(scale * old); - p->drawPixmap(0, 0, d->pix); - p->setWorldTransform(old); - } - } else { - p->drawPixmap(0, 0, d->pix); - } - - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfximage.h b/src/declarative/fx/qfximage.h deleted file mode 100644 index 1f52b17..0000000 --- a/src/declarative/fx/qfximage.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGE_H -#define QFXIMAGE_H - -#include -#include "qfximagebase.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(FillMode) - - Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) - Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) - -public: - QmlGraphicsImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsImage(); - - enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; - FillMode fillMode() const; - void setFillMode(FillMode); - - QPixmap pixmap() const; - void setPixmap(const QPixmap &); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void fillModeChanged(); - -protected: - QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsImage) -QT_END_HEADER - -#endif // QFXIMAGE_H diff --git a/src/declarative/fx/qfximage_p.h b/src/declarative/fx/qfximage_p.h deleted file mode 100644 index 30f7665..0000000 --- a/src/declarative/fx/qfximage_p.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGE_P_H -#define QFXIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem_p.h" -#include "qfximagebase_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsImage) - -public: - QmlGraphicsImagePrivate() - : fillMode(QmlGraphicsImage::Stretch) - { - } - - QmlGraphicsImage::FillMode fillMode; - -}; - -QT_END_NAMESPACE - -#endif // QFXIMAGE_P_H diff --git a/src/declarative/fx/qfximagebase.cpp b/src/declarative/fx/qfximagebase.cpp deleted file mode 100644 index 5afb79a..0000000 --- a/src/declarative/fx/qfximagebase.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfximagebase.h" -#include "qfximagebase_p.h" -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsImageBasePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, true); -} - -QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, true); -} - -QmlGraphicsImageBase::~QmlGraphicsImageBase() -{ - Q_D(QmlGraphicsImageBase); - if (d->pendingPixmapCache) - QmlGraphicsPixmapCache::cancelGet(d->url, this); -} - -QmlGraphicsImageBase::Status QmlGraphicsImageBase::status() const -{ - Q_D(const QmlGraphicsImageBase); - return d->status; -} - - -qreal QmlGraphicsImageBase::progress() const -{ - Q_D(const QmlGraphicsImageBase); - return d->progress; -} - -QUrl QmlGraphicsImageBase::source() const -{ - Q_D(const QmlGraphicsImageBase); - return d->url; -} - -void QmlGraphicsImageBase::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsImageBase); - //equality is fairly expensive, so we bypass for simple, common case - if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) - return; - - if (d->pendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->url, this); - d->pendingPixmapCache = false; - } - - d->url = url; - if (d->progress != 0.0) { - d->progress = 0.0; - emit progressChanged(d->progress); - } - - if (url.isEmpty()) { - d->pix = QPixmap(); - d->status = Null; - d->progress = 1.0; - setImplicitWidth(0); - setImplicitHeight(0); - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } else { - d->status = Loading; - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); - if (reply) { - d->pendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } - - emit statusChanged(d->status); -} - -void QmlGraphicsImageBase::requestFinished() -{ - Q_D(QmlGraphicsImageBase); - - d->pendingPixmapCache = false; - - if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) - d->status = Error; - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); -} - -void QmlGraphicsImageBase::requestProgress(qint64 received, qint64 total) -{ - Q_D(QmlGraphicsImageBase); - if (d->status == Loading && total > 0) { - d->progress = qreal(received)/total; - emit progressChanged(d->progress); - } -} - - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfximagebase.h b/src/declarative/fx/qfximagebase.h deleted file mode 100644 index b43e9a2..0000000 --- a/src/declarative/fx/qfximagebase.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGEBASE_H -#define QFXIMAGEBASE_H - -#include - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class QmlGraphicsImageBasePrivate; -class QmlGraphicsImageBase : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - -public: - QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); - ~QmlGraphicsImageBase(); - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - QUrl source() const; - virtual void setSource(const QUrl &url); - -Q_SIGNALS: - void sourceChanged(const QUrl &); - void statusChanged(Status); - void progressChanged(qreal progress); - -protected: - QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - virtual void requestFinished(); - void requestProgress(qint64,qint64); - -private: - Q_DISABLE_COPY(QmlGraphicsImageBase) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) -}; - -QT_END_NAMESPACE -QT_END_HEADER - -#endif // QFXIMAGEBASE_H diff --git a/src/declarative/fx/qfximagebase_p.h b/src/declarative/fx/qfximagebase_p.h deleted file mode 100644 index 9025c51..0000000 --- a/src/declarative/fx/qfximagebase_p.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGEBASE_P_H -#define QFXIMAGEBASE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem_p.h" -#include - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsImageBase) - -public: - QmlGraphicsImageBasePrivate() - : status(QmlGraphicsImageBase::Null), - progress(0.0), - pendingPixmapCache(false) - { - } - - QPixmap pix; - QmlGraphicsImageBase::Status status; - QUrl url; - qreal progress; - bool pendingPixmapCache; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp deleted file mode 100644 index 7a3cded..0000000 --- a/src/declarative/fx/qfxitem.cpp +++ /dev/null @@ -1,2921 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "qmlstate.h" -#include "qlistmodelinterface.h" - -#include "qmlview.h" -#include "qmlstategroup.h" - -#include "qfxitem_p.h" -#include "qfxitem.h" -#include "qfxevents_p.h" -#include - -QT_BEGIN_NAMESPACE - -#ifndef FLT_MAX -#define FLT_MAX 1E+37 -#endif - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QmlGraphicsItem) - -QML_DEFINE_NOCREATE_TYPE(QGraphicsTransform); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Scale,QGraphicsScale) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) - -#include "qfxeffects.cpp" - -/*! - \qmlclass Transform - \brief The Transform elements provide a way of building advanced transformations on Items. - - The Transform elements let you create and control advanced transformations that can be configured - independently using specialized properties. - - You can assign any number of Transform elements to an Item. Each Transform is applied in order, - one at a time, to the Item it's assigned to. - - \sa Rotation, Scale -*/ - -/*! - \qmlclass Scale - \brief The Scale object provides a way to scale an Item. - - The Scale object gives more control over scaling than using Item's scale property. Specifically, - it allows a different scale for the x and y axes, and allows the scale to be relative to an - arbitrary point. - - The following example scales the X axis of the Rectangle, relative to its interior point 25, 25: - \qml - Rectangle { - width: 100; height: 100 - color: "blue" - transform: Scale { origin.x: 25; origin.y: 25; xScale: 3} - } - \endqml -*/ - -/*! - \qmlproperty real Scale::origin.x - \qmlproperty real Scale::origin.y - - The point that the item is scaled from (i.e., the point that stays fixed relative to the parent as - the rest of the item grows). By default the origin is 0, 0. -*/ - -/*! - \qmlproperty real Scale::xScale - - The scaling factor for the X axis. -*/ - -/*! - \qmlproperty real Scale::yScale - - The scaling factor for the Y axis. -*/ - -/*! - \qmlclass Rotation - \brief The Rotation object provides a way to rotate an Item. - - The Rotation object gives more control over rotation than using Item's rotation property. - Specifically, it allows (z axis) rotation to be relative to an arbitrary point. - - The following example rotates a Rectangle around its interior point 25, 25: - \qml - Rectangle { - width: 100; height: 100 - color: "blue" - transform: Rotation { origin.x: 25; origin.y: 25; angle: 45} - } - \endqml - - Rotation also provides a way to specify 3D-like rotations for Items. For these types of - rotations you must specify the axis to rotate around in addition to the origin point. - - The following example shows various 3D-like rotations applied to an \l Image. - \snippet doc/src/snippets/declarative/rotation.qml 0 - - \image axisrotation.png -*/ - -/*! - \qmlproperty real Rotation::origin.x - \qmlproperty real Rotation::origin.y - - The origin point of the rotation (i.e., the point that stays fixed relative to the parent as - the rest of the item rotates). By default the origin is 0, 0. -*/ - -/*! - \qmlproperty real Rotation::axis.x - \qmlproperty real Rotation::axis.y - \qmlproperty real Rotation::axis.z - - The axis to rotate around. For simple (2D) rotation around a point, you do not need to specify an axis, - as the default axis is the z axis (\c{ axis { x: 0; y: 0; z: 0 } }). - - For a typical 3D-like rotation you will usually specify both the origin and the axis. - - \image 3d-rotation-axis.png -*/ - -/*! - \qmlproperty real Rotation::angle - - The angle to rotate, in degrees clockwise. -*/ - - -/*! - \group group_animation - \title Animation -*/ - -/*! - \group group_coreitems - \title Basic Items -*/ - -/*! - \group group_effects - \title Effects -*/ - -/*! - \group group_layouts - \title Layouts -*/ - -/*! - \group group_states - \title States and Transitions -*/ - -/*! - \group group_utility - \title Utility -*/ - -/*! - \group group_views - \title Views -*/ - -/*! - \group group_widgets - \title Widgets -*/ - -/*! - \internal - \class QmlGraphicsContents - \ingroup group_utility - \brief The QmlGraphicsContents class gives access to the height and width of an item's contents. - -*/ - -QmlGraphicsContents::QmlGraphicsContents() : m_x(0), m_y(0), m_width(0), m_height(0) -{ -} - -/*! - \qmlproperty real Item::childrenRect.x - \qmlproperty real Item::childrenRect.y - \qmlproperty real Item::childrenRect.width - \qmlproperty real Item::childrenRect.height - - The childrenRect properties allow an item access to the geometry of its - children. This property is useful if you have an item that needs to be - sized to fit its children. -*/ - -QRectF QmlGraphicsContents::rectF() const -{ - return QRectF(m_x, m_y, m_width, m_height); -} - -//TODO: optimization: only check sender(), if there is one -void QmlGraphicsContents::calcHeight() -{ - qreal oldy = m_y; - qreal oldheight = m_height; - - qreal top = FLT_MAX; - qreal bottom = 0; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - qreal y = child->y(); - if (y + child->height() > bottom) - bottom = y + child->height(); - if (y < top) - top = y; - } - if (!children.isEmpty()) - m_y = top; - m_height = qMax(bottom - top, qreal(0.0)); - - if (m_height != oldheight || m_y != oldy) - emit rectChanged(); -} - -//TODO: optimization: only check sender(), if there is one -void QmlGraphicsContents::calcWidth() -{ - qreal oldx = m_x; - qreal oldwidth = m_width; - - qreal left = FLT_MAX; - qreal right = 0; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - qreal x = child->x(); - if (x + child->width() > right) - right = x + child->width(); - if (x < left) - left = x; - } - if (!children.isEmpty()) - m_x = left; - m_width = qMax(right - left, qreal(0.0)); - - if (m_width != oldwidth || m_x != oldx) - emit rectChanged(); -} - -void QmlGraphicsContents::setItem(QmlGraphicsItem *item) -{ - m_item = item; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - connect(child, SIGNAL(heightChanged()), this, SLOT(calcHeight())); - connect(child, SIGNAL(yChanged()), this, SLOT(calcHeight())); - connect(child, SIGNAL(widthChanged()), this, SLOT(calcWidth())); - connect(child, SIGNAL(xChanged()), this, SLOT(calcWidth())); - connect(this, SIGNAL(rectChanged()), m_item, SIGNAL(childrenRectChanged())); - } - - calcHeight(); - calcWidth(); -} - -/* - Key filters can be installed on a QmlGraphicsItem, but not removed. Currently they - are only used by attached objects (which are only destroyed on Item - destruction), so this isn't a problem. If in future this becomes any form - of public API, they will have to support removal too. -*/ -class QmlGraphicsItemKeyFilter -{ -public: - QmlGraphicsItemKeyFilter(QmlGraphicsItem * = 0); - virtual ~QmlGraphicsItemKeyFilter(); - - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *event); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - virtual void componentComplete(); - -private: - QmlGraphicsItemKeyFilter *m_next; -}; - -QmlGraphicsItemKeyFilter::QmlGraphicsItemKeyFilter(QmlGraphicsItem *item) -: m_next(0) -{ - QmlGraphicsItemPrivate *p = - item?static_cast(QGraphicsItemPrivate::get(item)):0; - if (p) { - m_next = p->keyHandler; - p->keyHandler = this; - } -} - -QmlGraphicsItemKeyFilter::~QmlGraphicsItemKeyFilter() -{ -} - -void QmlGraphicsItemKeyFilter::keyPressed(QKeyEvent *event) -{ - if (m_next) m_next->keyPressed(event); -} - -void QmlGraphicsItemKeyFilter::keyReleased(QKeyEvent *event) -{ - if (m_next) m_next->keyReleased(event); -} - -void QmlGraphicsItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) -{ - if (m_next) m_next->inputMethodEvent(event); -} - -QVariant QmlGraphicsItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const -{ - if (m_next) return m_next->inputMethodQuery(query); - return QVariant(); -} - -void QmlGraphicsItemKeyFilter::componentComplete() -{ - if (m_next) m_next->componentComplete(); -} - -class QmlGraphicsKeyNavigationAttachedPrivate : public QObjectPrivate -{ -public: - QmlGraphicsKeyNavigationAttachedPrivate() - : QObjectPrivate(), left(0), right(0), up(0), down(0) {} - - QmlGraphicsItem *left; - QmlGraphicsItem *right; - QmlGraphicsItem *up; - QmlGraphicsItem *down; -}; - -class QmlGraphicsKeyNavigationAttached : public QObject, public QmlGraphicsItemKeyFilter -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsKeyNavigationAttached) - - Q_PROPERTY(QmlGraphicsItem *left READ left WRITE setLeft NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *right READ right WRITE setRight NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *up READ up WRITE setUp NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *down READ down WRITE setDown NOTIFY changed) -public: - QmlGraphicsKeyNavigationAttached(QObject * = 0); - - QmlGraphicsItem *left() const; - void setLeft(QmlGraphicsItem *); - QmlGraphicsItem *right() const; - void setRight(QmlGraphicsItem *); - QmlGraphicsItem *up() const; - void setUp(QmlGraphicsItem *); - QmlGraphicsItem *down() const; - void setDown(QmlGraphicsItem *); - - static QmlGraphicsKeyNavigationAttached *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void changed(); - -private: - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); -}; - -QmlGraphicsKeyNavigationAttached::QmlGraphicsKeyNavigationAttached(QObject *parent) -: QObject(*(new QmlGraphicsKeyNavigationAttachedPrivate), parent), - QmlGraphicsItemKeyFilter(qobject_cast(parent)) -{ -} - -QmlGraphicsKeyNavigationAttached * -QmlGraphicsKeyNavigationAttached::qmlAttachedProperties(QObject *obj) -{ - return new QmlGraphicsKeyNavigationAttached(obj); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::left() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->left; -} - -void QmlGraphicsKeyNavigationAttached::setLeft(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->left = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::right() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->right; -} - -void QmlGraphicsKeyNavigationAttached::setRight(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->right = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::up() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->up; -} - -void QmlGraphicsKeyNavigationAttached::setUp(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->up = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::down() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->down; -} - -void QmlGraphicsKeyNavigationAttached::setDown(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->down = i; - emit changed(); -} - -void QmlGraphicsKeyNavigationAttached::keyPressed(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - - event->ignore(); - - switch(event->key()) { - case Qt::Key_Left: - if (d->left) { - d->left->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Right: - if (d->right) { - d->right->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Up: - if (d->up) { - d->up->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Down: - if (d->down) { - d->down->setFocus(true); - event->accept(); - } - break; - default: - break; - } - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); -} - -void QmlGraphicsKeyNavigationAttached::keyReleased(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - - event->ignore(); - - switch(event->key()) { - case Qt::Key_Left: - if (d->left) { - event->accept(); - } - break; - case Qt::Key_Right: - if (d->right) { - event->accept(); - } - break; - case Qt::Key_Up: - if (d->up) { - event->accept(); - } - break; - case Qt::Key_Down: - if (d->down) { - event->accept(); - } - break; - default: - break; - } - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); -} - -/*! - \qmlclass Keys - \brief The Keys attached property provides key handling to Items. - - All visual primitives support key handling via the \e Keys - attached property. Keys can be handled via the \e onPressed - and \e onReleased signal properties. - - The signal properties have a \l KeyEvent parameter, named - \e event which contains details of the event. If a key is - handled \e event.accepted should be set to true to prevent the - event from propagating up the item heirarchy. - - \code - Item { - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_Left) { - print("move left"); - event.accepted = true; - } - } - } - \endcode - - Some keys may alternatively be handled via specific signal properties, - for example \e onSelectPressed. These handlers automatically set - \e event.accepted to true. - - \code - Item { - focus: true - Keys.onLeftPressed: print("move left") - } - \endcode - - See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. - - \sa KeyEvent -*/ - -/*! - \qmlproperty bool Keys::enabled - - This flags enables key handling if true (default); otherwise - no key handlers will be called. -*/ - -/*! - \qmlproperty List Keys::forwardTo - - This property provides a way to forward key presses, key releases, and keyboard input - coming from input methods to other items. This can be useful when you want - one item to handle some keys (e.g. the up and down arrow keys), and another item to - handle other keys (e.g. the left and right arrow keys). Once an item that has been - forwarded keys accepts the event it is no longer forwarded to items later in the - list. - - This example forwards key events to two lists: - \qml - ListView { id: list1 ... } - ListView { id: list2 ... } - Keys.forwardTo: [list1, list2] - focus: true - \endqml -*/ - -/*! - \qmlsignal Keys::onPressed(event) - - This handler is called when a key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onReleased(event) - - This handler is called when a key has been released. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit0Pressed(event) - - This handler is called when the digit '0' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit1Pressed(event) - - This handler is called when the digit '1' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit2Pressed(event) - - This handler is called when the digit '2' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit3Pressed(event) - - This handler is called when the digit '3' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit4Pressed(event) - - This handler is called when the digit '4' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit5Pressed(event) - - This handler is called when the digit '5' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit6Pressed(event) - - This handler is called when the digit '6' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit7Pressed(event) - - This handler is called when the digit '7' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit8Pressed(event) - - This handler is called when the digit '8' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit9Pressed(event) - - This handler is called when the digit '9' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onLeftPressed(event) - - This handler is called when the Left arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onRightPressed(event) - - This handler is called when the Right arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onUpPressed(event) - - This handler is called when the Up arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDownPressed(event) - - This handler is called when the Down arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onAsteriskPressed(event) - - This handler is called when the Asterisk '*' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onEscapePressed(event) - - This handler is called when the Escape key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onReturnPressed(event) - - This handler is called when the Return key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onEnterPressed(event) - - This handler is called when the Enter key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDeletePressed(event) - - This handler is called when the Delete key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onSpacePressed(event) - - This handler is called when the Space key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onBackPressed(event) - - This handler is called when the Back key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onCancelPressed(event) - - This handler is called when the Cancel key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onSelectPressed(event) - - This handler is called when the Select key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onYesPressed(event) - - This handler is called when the Yes key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onNoPressed(event) - - This handler is called when the No key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext1Pressed(event) - - This handler is called when the Context1 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext2Pressed(event) - - This handler is called when the Context2 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext3Pressed(event) - - This handler is called when the Context3 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext4Pressed(event) - - This handler is called when the Context4 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onCallPressed(event) - - This handler is called when the Call key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onHangupPressed(event) - - This handler is called when the Hangup key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onFlipPressed(event) - - This handler is called when the Flip key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onMenuPressed(event) - - This handler is called when the Menu key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onVolumeUpPressed(event) - - This handler is called when the VolumeUp key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onVolumeDownPressed(event) - - This handler is called when the VolumeDown key has been pressed. The \a event - parameter provides information about the event. -*/ - - -class QmlGraphicsKeysAttachedPrivate : public QObjectPrivate -{ -public: - QmlGraphicsKeysAttachedPrivate() - : QObjectPrivate(), inPress(false), inRelease(false) - , inIM(false), enabled(true), imeItem(0), item(0) - {} - - bool isConnected(const char *signalName); - - QGraphicsItem *finalFocusProxy(QGraphicsItem *item) const - { - QGraphicsItem *fp; - while ((fp = item->focusProxy())) - item = fp; - return item; - } - - //loop detection - bool inPress:1; - bool inRelease:1; - bool inIM:1; - - bool enabled : 1; - - QGraphicsItem *imeItem; - QList targets; - QmlGraphicsItem *item; -}; - -class QmlGraphicsKeysAttached : public QObject, public QmlGraphicsItemKeyFilter -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsKeysAttached) - - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(QList *forwardTo READ forwardTo) - -public: - QmlGraphicsKeysAttached(QObject *parent=0); - ~QmlGraphicsKeysAttached(); - - bool enabled() const { Q_D(const QmlGraphicsKeysAttached); return d->enabled; } - void setEnabled(bool enabled) { - Q_D(QmlGraphicsKeysAttached); - if (enabled != d->enabled) { - d->enabled = enabled; - emit enabledChanged(); - } - } - - QList *forwardTo() { - Q_D(QmlGraphicsKeysAttached); - return &d->targets; - } - - virtual void componentComplete(); - - static QmlGraphicsKeysAttached *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void enabledChanged(); - void pressed(QmlGraphicsKeyEvent *event); - void released(QmlGraphicsKeyEvent *event); - void digit0Pressed(QmlGraphicsKeyEvent *event); - void digit1Pressed(QmlGraphicsKeyEvent *event); - void digit2Pressed(QmlGraphicsKeyEvent *event); - void digit3Pressed(QmlGraphicsKeyEvent *event); - void digit4Pressed(QmlGraphicsKeyEvent *event); - void digit5Pressed(QmlGraphicsKeyEvent *event); - void digit6Pressed(QmlGraphicsKeyEvent *event); - void digit7Pressed(QmlGraphicsKeyEvent *event); - void digit8Pressed(QmlGraphicsKeyEvent *event); - void digit9Pressed(QmlGraphicsKeyEvent *event); - - void leftPressed(QmlGraphicsKeyEvent *event); - void rightPressed(QmlGraphicsKeyEvent *event); - void upPressed(QmlGraphicsKeyEvent *event); - void downPressed(QmlGraphicsKeyEvent *event); - - void asteriskPressed(QmlGraphicsKeyEvent *event); - void numberSignPressed(QmlGraphicsKeyEvent *event); - void escapePressed(QmlGraphicsKeyEvent *event); - void returnPressed(QmlGraphicsKeyEvent *event); - void enterPressed(QmlGraphicsKeyEvent *event); - void deletePressed(QmlGraphicsKeyEvent *event); - void spacePressed(QmlGraphicsKeyEvent *event); - void backPressed(QmlGraphicsKeyEvent *event); - void cancelPressed(QmlGraphicsKeyEvent *event); - void selectPressed(QmlGraphicsKeyEvent *event); - void yesPressed(QmlGraphicsKeyEvent *event); - void noPressed(QmlGraphicsKeyEvent *event); - void context1Pressed(QmlGraphicsKeyEvent *event); - void context2Pressed(QmlGraphicsKeyEvent *event); - void context3Pressed(QmlGraphicsKeyEvent *event); - void context4Pressed(QmlGraphicsKeyEvent *event); - void callPressed(QmlGraphicsKeyEvent *event); - void hangupPressed(QmlGraphicsKeyEvent *event); - void flipPressed(QmlGraphicsKeyEvent *event); - void menuPressed(QmlGraphicsKeyEvent *event); - void volumeUpPressed(QmlGraphicsKeyEvent *event); - void volumeDownPressed(QmlGraphicsKeyEvent *event); - -private: - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - - const QByteArray keyToSignal(int key) { - QByteArray keySignal; - if (key >= Qt::Key_0 && key <= Qt::Key_9) { - keySignal = "digit0Pressed"; - keySignal[5] = '0' + (key - Qt::Key_0); - } else { - int i = 0; - while (sigMap[i].key && sigMap[i].key != key) - ++i; - keySignal = sigMap[i].sig; - } - return keySignal; - } - - struct SigMap { - int key; - const char *sig; - }; - - static const SigMap sigMap[]; -}; - -const QmlGraphicsKeysAttached::SigMap QmlGraphicsKeysAttached::sigMap[] = { - { Qt::Key_Left, "leftPressed" }, - { Qt::Key_Right, "rightPressed" }, - { Qt::Key_Up, "upPressed" }, - { Qt::Key_Down, "downPressed" }, - { Qt::Key_Asterisk, "asteriskPressed" }, - { Qt::Key_NumberSign, "numberSignPressed" }, - { Qt::Key_Escape, "escapePressed" }, - { Qt::Key_Return, "returnPressed" }, - { Qt::Key_Enter, "enterPressed" }, - { Qt::Key_Delete, "deletePressed" }, - { Qt::Key_Space, "spacePressed" }, - { Qt::Key_Back, "backPressed" }, - { Qt::Key_Cancel, "cancelPressed" }, - { Qt::Key_Select, "selectPressed" }, - { Qt::Key_Yes, "yesPressed" }, - { Qt::Key_No, "noPressed" }, - { Qt::Key_Context1, "context1Pressed" }, - { Qt::Key_Context2, "context2Pressed" }, - { Qt::Key_Context3, "context3Pressed" }, - { Qt::Key_Context4, "context4Pressed" }, - { Qt::Key_Call, "callPressed" }, - { Qt::Key_Hangup, "hangupPressed" }, - { Qt::Key_Flip, "flipPressed" }, - { Qt::Key_Menu, "menuPressed" }, - { Qt::Key_VolumeUp, "volumeUpPressed" }, - { Qt::Key_VolumeDown, "volumeDownPressed" }, - { 0, 0 } -}; - -bool QmlGraphicsKeysAttachedPrivate::isConnected(const char *signalName) -{ - return isSignalConnected(signalIndex(signalName)); -} - -QmlGraphicsKeysAttached::QmlGraphicsKeysAttached(QObject *parent) -: QObject(*(new QmlGraphicsKeysAttachedPrivate), parent), - QmlGraphicsItemKeyFilter(qobject_cast(parent)) -{ - Q_D(QmlGraphicsKeysAttached); - d->item = qobject_cast(parent); -} - -QmlGraphicsKeysAttached::~QmlGraphicsKeysAttached() -{ -} - -void QmlGraphicsKeysAttached::componentComplete() -{ - Q_D(QmlGraphicsKeysAttached); - if (d->item) { - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *targetItem = d->finalFocusProxy(d->targets.at(ii)); - if (targetItem && (targetItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { - d->item->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - break; - } - } - } -} - -void QmlGraphicsKeysAttached::keyPressed(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (!d->enabled || d->inPress) { - event->ignore(); - return; - } - - // first process forwards - if (d->item && d->item->scene()) { - d->inPress = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->inPress = false; - return; - } - } - } - d->inPress = false; - } - - QmlGraphicsKeyEvent ke(*event); - QByteArray keySignal = keyToSignal(event->key()); - if (!keySignal.isEmpty()) { - keySignal += "(QmlGraphicsKeyEvent*)"; - if (d->isConnected(keySignal)) { - // If we specifically handle a key then default to accepted - ke.setAccepted(true); - int idx = QmlGraphicsKeysAttached::staticMetaObject.indexOfSignal(keySignal); - metaObject()->method(idx).invoke(this, Q_ARG(QmlGraphicsKeysAttached, &ke)); - } - } - if (!ke.isAccepted()) - emit pressed(&ke); - event->setAccepted(ke.isAccepted()); - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); -} - -void QmlGraphicsKeysAttached::keyReleased(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (!d->enabled || d->inRelease) { - event->ignore(); - return; - } - - if (d->item && d->item->scene()) { - d->inRelease = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->inRelease = false; - return; - } - } - } - d->inRelease = false; - } - - QmlGraphicsKeyEvent ke(*event); - emit released(&ke); - event->setAccepted(ke.isAccepted()); - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); -} - -void QmlGraphicsKeysAttached::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (d->item && !d->inIM && d->item->scene()) { - d->inIM = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->imeItem = i; - d->inIM = false; - return; - } - } - } - d->inIM = false; - } - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::inputMethodEvent(event); -} - -class QmlGraphicsItemAccessor : public QGraphicsItem -{ -public: - QVariant doInputMethodQuery(Qt::InputMethodQuery query) const { - return QGraphicsItem::inputMethodQuery(query); - } -}; - -QVariant QmlGraphicsKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const -{ - Q_D(const QmlGraphicsKeysAttached); - if (d->item) { - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod) && i == d->imeItem) { //### how robust is i == d->imeItem check? - QVariant v = static_cast(i)->doInputMethodQuery(query); - if (v.type() == QVariant::RectF) - v = d->item->mapRectFromItem(i, v.toRectF()); //### cost? - return v; - } - } - } - return QmlGraphicsItemKeyFilter::inputMethodQuery(query); -} - -QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject *obj) -{ - return new QmlGraphicsKeysAttached(obj); -} - -/*! - \class QmlGraphicsItem - \brief The QmlGraphicsItem class provides the most basic of all visual items in QML. - - All visual items in Qt Declarative inherit from QmlGraphicsItem. Although QmlGraphicsItem - has no visual appearance, it defines all the properties that are - common across visual items - such as the x and y position, the - width and height, \l {anchor-layout}{anchoring} and key handling. - - You can subclass QmlGraphicsItem to provide your own custom visual item that inherits - these features. -*/ - -/*! - \qmlclass Item QmlGraphicsItem - \brief The Item is the most basic of all visual items in QML. - - All visual items in Qt Declarative inherit from Item. Although Item - has no visual appearance, it defines all the properties that are - common across visual items - such as the x and y position, the - width and height, \l {anchor-layout}{anchoring} and key handling. - - Item is also useful for grouping items together. - - \qml - Item { - Image { - file: "tile.png" - } - Image { - x: 80 - width: 100 - height: 100 - file: "tile.png" - } - Image { - x: 190 - width: 100 - height: 100 - tile: true - file: "tile.png" - } - } - \endqml - - \section1 Key Handling - - Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} - attached property. The \e Keys attached property provides basic handlers such - as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, - as well as handlers for specific keys, such as - \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below - assigns \l {qmlfocus}{focus} to the item and handles - the Left key via the general \e onPressed handler and the Select key via the - onSelectPressed handler: - - \qml - Item { - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_Left) { - print("move left"); - event.accepted = true; - } - } - Keys.onSelectPressed: print("Selected"); - } - \endqml - - See the \l {Keys}{Keys} attached property for detailed documentation. - - \ingroup group_coreitems -*/ - -/*! - \property QmlGraphicsItem::baseline - \internal -*/ - -/*! - \property QmlGraphicsItem::effect - \internal -*/ - -/*! - \property QmlGraphicsItem::focus - \internal -*/ - -/*! - \property QmlGraphicsItem::wantsFocus - \internal -*/ - -/*! - \property QmlGraphicsItem::transformOrigin - \internal -*/ - -/*! - \fn void QmlGraphicsItem::childrenRectChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::baselineOffsetChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::widthChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::heightChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::stateChanged(const QString &state) - \internal -*/ - -/*! - \fn void QmlGraphicsItem::parentChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::focusChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::wantsFocusChanged() - \internal -*/ - -static inline void qfxitem_registerAnchorLine() { - static bool registered = false; - if (!registered) { - qRegisterMetaType("QmlGraphicsAnchorLine"); - registered = true; - } -} - -/*! - \fn QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem *parent) - - Constructs a QmlGraphicsItem with the given \a parent. -*/ -QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem* parent) - : QGraphicsObject(*(new QmlGraphicsItemPrivate), parent, 0) -{ - Q_D(QmlGraphicsItem); - qfxitem_registerAnchorLine(); - d->init(parent); -} - -/*! \internal -*/ -QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent) - : QGraphicsObject(dd, parent, 0) -{ - Q_D(QmlGraphicsItem); - qfxitem_registerAnchorLine(); - d->init(parent); -} - -/*! - Destroys the QmlGraphicsItem. -*/ -QmlGraphicsItem::~QmlGraphicsItem() -{ - Q_D(QmlGraphicsItem); - for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->clearItem(this); - } - if (!d->parent || (parentItem() && !parentItem()->QGraphicsItem::d_ptr->inDestructor)) - for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - if (anchor->d_func()->item && anchor->d_func()->item->parentItem() != this) //child will be deleted anyway - anchor->d_func()->updateOnComplete(); - } - d->dependantAnchors.clear(); - delete d->_anchorLines; d->_anchorLines = 0; - delete d->_anchors; d->_anchors = 0; -} - -/*! - \qmlproperty enum Item::transformOrigin - This property holds the origin point around which scale and rotation transform. - - Nine transform origins are available, as shown in the image below. - - \image declarative-transformorigin.png - - This example scales an image about its center. - \qml - Image { - source: "myimage.png" - transformOrigin: Item.Center - scale: 4 - } - \endqml - - The default transform origin is \c TopLeft. -*/ - -/*! - \qmlproperty Item Item::parent - This property holds the parent of the item. -*/ - -/*! - \property QmlGraphicsItem::parent - This property holds the parent of the item. -*/ -void QmlGraphicsItem::setParentItem(QmlGraphicsItem *parent) -{ - QmlGraphicsItem *oldParent = parentItem(); - if (parent == oldParent || !parent) return; - - QObject::setParent(parent); - QGraphicsObject::setParentItem(parent); -} - -/*! - Returns the QmlGraphicsItem parent of this item. -*/ -QmlGraphicsItem *QmlGraphicsItem::parentItem() const -{ - return qobject_cast(QGraphicsObject::parentItem()); -} - -/*! - \qmlproperty list Item::children - \qmlproperty list Item::resources - - The children property contains the list of visual children of this item. - The resources property contains non-visual resources that you want to - reference by name. - - Generally you can rely on Item's default property to handle all this for - you, but it can come in handy in some cases. - - \qml - Item { - children: [ - Text {}, - Rectangle {} - ] - resources: [ - Component { - id: myComponent - Text {} - } - ] - } - \endqml -*/ - -/*! - \property QmlGraphicsItem::children - \internal -*/ - -/*! - \property QmlGraphicsItem::resources - \internal -*/ - -/*! - Returns true if construction of the QML component is complete; otherwise - returns false. - - It is often desireable to delay some processing until the component is - completed. - - \sa componentComplete() -*/ -bool QmlGraphicsItem::isComponentComplete() const -{ - Q_D(const QmlGraphicsItem); - return d->_componentComplete; -} - -/*! - \property QmlGraphicsItem::anchors - \internal -*/ - -/*! \internal */ -QmlGraphicsAnchors *QmlGraphicsItem::anchors() -{ - Q_D(QmlGraphicsItem); - return d->anchors(); -} - -void QmlGraphicsItemPrivate::data_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::data_count() const -{ - // ### - return 0; -} - -void QmlGraphicsItemPrivate::data_append(QObject *o) -{ - Q_Q(QmlGraphicsItem); - QmlGraphicsItem *i = qobject_cast(o); - if (i) - q->fxChildren()->append(i); - else - resources_append(o); -} - -void QmlGraphicsItemPrivate::data_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsItemPrivate::data_at(int) const -{ - // ### - return 0; -} - -void QmlGraphicsItemPrivate::data_clear() -{ - // ### -} - -void QmlGraphicsItemPrivate::resources_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::resources_count() const -{ - Q_Q(const QmlGraphicsItem); - return q->children().count(); -} - -void QmlGraphicsItemPrivate::resources_append(QObject *o) -{ - Q_Q(QmlGraphicsItem); - o->setParent(q); -} - -void QmlGraphicsItemPrivate::resources_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsItemPrivate::resources_at(int idx) const -{ - Q_Q(const QmlGraphicsItem); - QObjectList children = q->children(); - if (idx < children.count()) - return children.at(idx); - else - return 0; -} - -void QmlGraphicsItemPrivate::resources_clear() -{ - // ### -} - -void QmlGraphicsItemPrivate::children_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::children_count() const -{ - Q_Q(const QmlGraphicsItem); - return q->childItems().count(); -} - -void QmlGraphicsItemPrivate::children_append(QmlGraphicsItem *i) -{ - Q_Q(QmlGraphicsItem); - i->setParentItem(q); -} - -void QmlGraphicsItemPrivate::children_insert(int, QmlGraphicsItem *) -{ - // ### -} - -QmlGraphicsItem *QmlGraphicsItemPrivate::children_at(int idx) const -{ - Q_Q(const QmlGraphicsItem); - QList children = q->childItems(); - if (idx < children.count()) - return qobject_cast(children.at(idx)); - else - return 0; -} - -void QmlGraphicsItemPrivate::children_clear() -{ - // ### -} - - -void QmlGraphicsItemPrivate::transform_removeAt(int i) -{ - if (!transformData) - return; - transformData->graphicsTransforms.removeAt(i); - dirtySceneTransform = 1; -} - -int QmlGraphicsItemPrivate::transform_count() const -{ - return transformData ? transformData->graphicsTransforms.size() : 0; -} - -void QmlGraphicsItemPrivate::transform_append(QGraphicsTransform *item) -{ - appendGraphicsTransform(item); -} - -void QmlGraphicsItemPrivate::transform_insert(int, QGraphicsTransform *) -{ - // ### -} - -QGraphicsTransform *QmlGraphicsItemPrivate::transform_at(int idx) const -{ - if (!transformData) - return 0; - return transformData->graphicsTransforms.at(idx); -} - -void QmlGraphicsItemPrivate::transform_clear() -{ - if (!transformData) - return; - Q_Q(QmlGraphicsItem); - q->setTransformations(QList()); -} - -/*! - \qmlproperty list Item::data - \default - - The data property is allows you to freely mix visual children and resources - of an item. If you assign a visual item to the data list it becomes - a child and if you assign any other object type, it is added as a resource. - - So you can write: - \qml - Item { - Text {} - Rectangle {} - Script {} - } - \endqml - - instead of: - \qml - Item { - children: [ - Text {}, - Rectangle {} - ] - resources: [ - Script {} - ] - } - \endqml - - data is a behind-the-scenes property: you should never need to explicitly - specify it. - */ - -/*! - \property QmlGraphicsItem::data - \internal -*/ - -/*! \internal */ -QmlList *QmlGraphicsItem::data() -{ - Q_D(QmlGraphicsItem); - return &d->data; -} - -/*! - \property QmlGraphicsItem::childrenRect - \brief The geometry of an item's children. - - childrenRect provides an easy way to access the (collective) position and size of the item's children. -*/ -QRectF QmlGraphicsItem::childrenRect() -{ - Q_D(QmlGraphicsItem); - if (!d->_contents) { - d->_contents = new QmlGraphicsContents; - d->_contents->setParent(this); - d->_contents->setItem(this); - } - return d->_contents->rectF(); -} - -bool QmlGraphicsItem::clip() const -{ - return flags() & ItemClipsChildrenToShape; -} - -void QmlGraphicsItem::setClip(bool c) -{ - setFlag(ItemClipsChildrenToShape, c); -} - -/*! - \qmlproperty real Item::x - \qmlproperty real Item::y - \qmlproperty real Item::width - \qmlproperty real Item::height - - Defines the item's position and size relative to its parent. - - \qml - Item { x: 100; y: 100; width: 100; height: 100 } - \endqml - */ - -/*! - \property QmlGraphicsItem::width - - Defines the item's width relative to its parent. - */ - -/*! - \property QmlGraphicsItem::height - - Defines the item's height relative to its parent. - */ - -/*! - \qmlproperty real Item::z - - Sets the stacking order of the item. By default the stacking order is 0. - - Items with a higher stacking value are drawn on top of items with a - lower stacking order. Items with the same stacking value are drawn - bottom up in the order they appear. Items with a negative stacking - value are drawn under their parent's content. - - The following example shows the various effects of stacking order. - - \table - \row - \o \image declarative-item_stacking1.png - \o Same \c z - later children above earlier children: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - } - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - \endqml - \row - \o \image declarative-item_stacking2.png - \o Higher \c z on top: - \qml - Item { - Rectangle { - z: 1 - color: "red" - width: 100; height: 100 - } - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - \endqml - \row - \o \image declarative-item_stacking3.png - \o Same \c z - children above parents: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \row - \o \image declarative-item_stacking4.png - \o Lower \c z below: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - z: -1 - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \endtable - */ - -/*! - This function is called to handle this item's changes in - geometry from \a oldGeometry to \a newGeometry. If the two - geometries are the same, it doesn't do anything. - */ -void QmlGraphicsItem::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - Q_D(QmlGraphicsItem); - - if (d->_anchors) - d->_anchors->d_func()->updateMe(); - - if (transformOrigin() != QmlGraphicsItem::TopLeft) - setTransformOriginPoint(d->computeTransformOrigin()); - - if (newGeometry.x() != oldGeometry.x()) - emit xChanged(); - if (newGeometry.width() != oldGeometry.width()) - emit widthChanged(); - if (newGeometry.y() != oldGeometry.y()) - emit yChanged(); - if (newGeometry.height() != oldGeometry.height()) - emit heightChanged(); - - for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->update(this, newGeometry, oldGeometry); - } -} - -/*! \internal */ -void QmlGraphicsItem::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->keyPressed(event); - else - event->ignore(); -} - -/*! \internal */ -void QmlGraphicsItem::keyReleaseEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->keyReleased(event); - else - event->ignore(); -} - -/*! \internal */ -void QmlGraphicsItem::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->inputMethodEvent(event); - else - event->ignore(); -} - -/*! \internal */ -QVariant QmlGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const -{ - Q_D(const QmlGraphicsItem); - QVariant v; - if (d->keyHandler) - v = d->keyHandler->inputMethodQuery(query); - - if (!v.isValid()) - v = QGraphicsObject::inputMethodQuery(query); - - return v; -} - -/*! - \qmlproperty string Item::id - This property holds the identifier for the item. - - The identifier can be used in bindings and other expressions to - refer to the item. For example: - - \qml - Text { id: myText; ... } - Text { text: myText.text } - \endqml - - The identifier is available throughout to the \l {components}{component} - where it is declared. The identifier must be unique in thecomponent. -*/ - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::left() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->left; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::right() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->right; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::horizontalCenter() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->hCenter; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::top() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->top; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::bottom() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->bottom; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::verticalCenter() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->vCenter; -} - - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->baseline; -} - -/*! - \property QmlGraphicsItem::top - \internal -*/ - -/*! - \property QmlGraphicsItem::bottom - \internal -*/ - -/*! - \property QmlGraphicsItem::left - \internal -*/ - -/*! - \property QmlGraphicsItem::right - \internal -*/ - -/*! - \property QmlGraphicsItem::horizontalCenter - \internal -*/ - -/*! - \property QmlGraphicsItem::verticalCenter - \internal -*/ - -/*! - \qmlproperty AnchorLine Item::top - \qmlproperty AnchorLine Item::bottom - \qmlproperty AnchorLine Item::left - \qmlproperty AnchorLine Item::right - \qmlproperty AnchorLine Item::horizontalCenter - \qmlproperty AnchorLine Item::verticalCenter - \qmlproperty AnchorLine Item::baseline - - The anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. -*/ - -/*! - \qmlproperty AnchorLine Item::anchors.top - \qmlproperty AnchorLine Item::anchors.bottom - \qmlproperty AnchorLine Item::anchors.left - \qmlproperty AnchorLine Item::anchors.right - \qmlproperty AnchorLine Item::anchors.horizontalCenter - \qmlproperty AnchorLine Item::anchors.verticalCenter - \qmlproperty AnchorLine Item::anchors.baseline - - \qmlproperty Item Item::anchors.fill - \qmlproperty Item Item::anchors.centerIn - - \qmlproperty real Item::anchors.topMargin - \qmlproperty real Item::anchors.bottomMargin - \qmlproperty real Item::anchors.leftMargin - \qmlproperty real Item::anchors.rightMargin - \qmlproperty real Item::anchors.horizontalCenterOffset - \qmlproperty real Item::anchors.verticalCenterOffset - \qmlproperty real Item::anchors.baselineOffset - - Anchors provide a way to position an item by specifying its - relationship with other items. - - Margins apply to top, bottom, left, right, and fill anchors. - - Offsets apply for horizontal center, vertical center, and baseline anchors. - - \table - \row - \o \image declarative-anchors_example.png - \o Text anchored to Image, horizontally centered and vertically below, with a margin. - \qml - Image { id: pic; ... } - Text { - id: label - anchors.horizontalCenter: pic.horizontalCenter - anchors.top: pic.bottom - anchors.topMargin: 5 - ... - } - \endqml - \row - \o \image declarative-anchors_example2.png - \o - Left of Text anchored to right of Image, with a margin. The y - property of both defaults to 0. - - \qml - Image { id: pic; ... } - Text { - id: label - anchors.left: pic.right - anchors.leftMargin: 5 - ... - } - \endqml - \endtable - - anchors.fill provides a convenient way for one item to have the - same geometry as another item, and is equivalent to connecting all - four directional anchors. - - \note You can only anchor an item to siblings or a parent. - - For more information see \l {anchor-layout}{Anchor Layouts}. -*/ - -/*! - \property QmlGraphicsItem::baselineOffset - \brief The position of the item's baseline in local coordinates. - - The baseline of a Text item is the imaginary line on which the text - sits. Controls containing text usually set their baseline to the - baseline of their text. - - For non-text items, a default baseline offset of 0 is used. -*/ -qreal QmlGraphicsItem::baselineOffset() const -{ - Q_D(const QmlGraphicsItem); - if (!d->_baselineOffset.isValid()) { - return 0.0; - } else - return d->_baselineOffset; -} - -void QmlGraphicsItem::setBaselineOffset(qreal offset) -{ - Q_D(QmlGraphicsItem); - if (offset == d->_baselineOffset) - return; - - d->_baselineOffset = offset; - emit baselineOffsetChanged(); - - for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->updateVerticalAnchors(); - } -} - -/*! - \qmlproperty real Item::rotation - This property holds the rotation of the item in degrees clockwise. - - This specifies how many degrees to rotate the item around its transformOrigin. - The default rotation is 0 degrees (i.e. not rotated at all). - - \table - \row - \o \image declarative-rotation.png - \o - \qml - Rectangle { - color: "blue" - width: 100; height: 100 - Rectangle { - color: "green" - width: 25; height: 25 - } - Rectangle { - color: "red" - x: 25; y: 25; width: 50; height: 50 - rotation: 30 - } - } - \endqml - \endtable -*/ - -/*! - \qmlproperty real Item::scale - This property holds the scale of the item. - - A scale of less than 1 means the item will be displayed smaller than - normal, and a scale of greater than 1 means the item will be - displayed larger than normal. A negative scale means the item will - be mirrored. - - By default, items are displayed at a scale of 1 (i.e. at their - normal size). - - Scaling is from the item's transformOrigin. - - \table - \row - \o \image declarative-scale.png - \o - \qml - Rectangle { - color: "blue" - width: 100; height: 100 - Rectangle { - color: "green" - width: 25; height: 25 - } - Rectangle { - color: "red" - x: 25; y: 25; width: 50; height: 50 - scale: 1.4 - } - } - \endqml - \endtable -*/ - -/*! - \qmlproperty real Item::opacity - - The opacity of the item. Opacity is specified as a number between 0 - (fully transparent) and 1 (fully opaque). The default is 1. - - Opacity is an \e inherited attribute. That is, the opacity is - also applied individually to child items. In almost all cases this - is what you want. If you can spot the issue in the following - example, you might need to use an opacity filter (not yet available) instead. - - \table - \row - \o \image declarative-item_opacity1.png - \o - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \row - \o \image declarative-item_opacity2.png - \o - \qml - Item { - Rectangle { - opacity: 0.5 - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \endtable -*/ - -/*! - Returns a value indicating whether mouse input should - remain with this item exclusively. - - \sa setKeepMouseGrab() - */ -bool QmlGraphicsItem::keepMouseGrab() const -{ - Q_D(const QmlGraphicsItem); - return d->_keepMouse; -} - -/*! - The flag indicating whether the mouse should remain - with this item is set to \a keep. - - This is useful for items that wish to grab and keep mouse - interaction following a predefined gesture. For example, - an item that is interested in horizontal mouse movement - may set keepMouseGrab to true once a threshold has been - exceeded. Once keepMouseGrab has been set to true, filtering - items will not react to mouse events. - - If the item does not indicate that it wishes to retain mouse grab, - a filtering item may steal the grab. For example, Flickable may attempt - to steal a mouse grab if it detects that the user has begun to - move the viewport. - - \sa keepMouseGrab - */ -void QmlGraphicsItem::setKeepMouseGrab(bool keep) -{ - Q_D(QmlGraphicsItem); - d->_keepMouse = keep; -} - -/*! - \internal - - This function emits the \e focusChanged signal. - - Subclasses overriding this function should call up - to their base class. -*/ -void QmlGraphicsItem::focusChanged(bool flag) -{ - Q_UNUSED(flag); - emit focusChanged(); -} - -/*! \internal */ -QmlList *QmlGraphicsItem::fxChildren() -{ - Q_D(QmlGraphicsItem); - return &(d->children); -} - -/*! \internal */ -QmlList *QmlGraphicsItem::resources() -{ - Q_D(QmlGraphicsItem); - return &(d->resources); -} - -/*! - \qmlproperty list Item::states - This property holds a list of states defined by the item. - - \qml - Item { - states: [ - State { ... }, - State { ... } - ... - ] - } - \endqml - - \sa {qmlstate}{States} -*/ - -/*! - \property QmlGraphicsItem::states - \internal -*/ -/*! \internal */ -QmlList* QmlGraphicsItem::states() -{ - Q_D(QmlGraphicsItem); - return d->states()->statesProperty(); -} - -/*! - \qmlproperty list Item::transitions - This property holds a list of transitions defined by the item. - - \qml - Item { - transitions: [ - Transition { ... }, - Transition { ... } - ... - ] - } - \endqml - - \sa {state-transitions}{Transitions} -*/ - -/*! - \property QmlGraphicsItem::transitions - \internal -*/ - -/*! \internal */ -QmlList* QmlGraphicsItem::transitions() -{ - Q_D(QmlGraphicsItem); - return d->states()->transitionsProperty(); -} - -/* - \qmlproperty list Item::filter - This property holds a list of graphical filters to be applied to the item. - - \l {Filter}{Filters} include things like \l {Blur}{blurring} - the item, or giving it a \l Reflection. Some - filters may not be available on all canvases; if a filter is not - available on a certain canvas, it will simply not be applied for - that canvas (but the QML will still be considered valid). - - \qml - Item { - filter: [ - Blur { ... }, - Relection { ... } - ... - ] - } - \endqml -*/ - -/*! - \qmlproperty bool Item::clip - This property holds whether clipping is enabled. - - if clipping is enabled, an item will clip its own painting, as well - as the painting of its children, to its bounding rectangle. - - Non-rectangular clipping regions are not supported for performance reasons. -*/ - -/*! - \property QmlGraphicsItem::clip - This property holds whether clipping is enabled. - - if clipping is enabled, an item will clip its own painting, as well - as the painting of its children, to its bounding rectangle. - - Non-rectangular clipping regions are not supported for performance reasons. -*/ - -/*! - \qmlproperty string Item::state - - This property holds the name of the current state of the item. - - This property is often used in scripts to change between states. For - example: - - \qml - Script { - function toggle() { - if (button.state == 'On') - button.state = 'Off'; - else - button.state = 'On'; - } - } - \endqml - - If the item is in its base state (i.e. no explicit state has been - set), \c state will be a blank string. Likewise, you can return an - item to its base state by setting its current state to \c ''. - - \sa {qmlstates}{States} -*/ - -/*! - \property QmlGraphicsItem::state - \internal -*/ - -/*! \internal */ -QString QmlGraphicsItem::state() const -{ - Q_D(const QmlGraphicsItem); - if (!d->_stateGroup) - return QString(); - else - return d->_stateGroup->state(); -} - -/*! \internal */ -void QmlGraphicsItem::setState(const QString &state) -{ - Q_D(QmlGraphicsItem); - d->states()->setState(state); -} - -/*! - \qmlproperty list Item::transform - This property holds the list of transformations to apply. - - For more information see \l Transform. -*/ - -/*! - \property QmlGraphicsItem::transform - \internal -*/ - -/*! \internal */ -QmlList* QmlGraphicsItem::transform() -{ - Q_D(QmlGraphicsItem); - return &(d->transform); -} - -/*! - \internal - - classBegin() is called when the item is constructed, but its - properties have not yet been set. - - \sa componentComplete(), isComponentComplete() -*/ -void QmlGraphicsItem::classBegin() -{ - Q_D(QmlGraphicsItem); - d->_componentComplete = false; - if (d->_stateGroup) - d->_stateGroup->classBegin(); - if (d->_anchors) - d->_anchors->classBegin(); -} - -/*! - \internal - - componentComplete() is called when all items in the component - have been constructed. It is often desireable to delay some - processing until the component is complete an all bindings in the - component have been resolved. -*/ -void QmlGraphicsItem::componentComplete() -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - - Q_D(QmlGraphicsItem); - d->_componentComplete = true; - if (d->_stateGroup) - d->_stateGroup->componentComplete(); - if (d->_anchors) { - d->_anchors->componentComplete(); - d->_anchors->d_func()->updateOnComplete(); - } - if (d->keyHandler) - d->keyHandler->componentComplete(); -} - -QmlStateGroup *QmlGraphicsItemPrivate::states() -{ - Q_Q(QmlGraphicsItem); - if (!_stateGroup) { - _stateGroup = new QmlStateGroup(q); - if (!_componentComplete) - _stateGroup->classBegin(); - QObject::connect(_stateGroup, SIGNAL(stateChanged(QString)), - q, SIGNAL(stateChanged(QString))); - } - - return _stateGroup; -} - -QmlGraphicsItemPrivate::AnchorLines::AnchorLines(QmlGraphicsItem *q) -{ - left.item = q; - left.anchorLine = QmlGraphicsAnchorLine::Left; - right.item = q; - right.anchorLine = QmlGraphicsAnchorLine::Right; - hCenter.item = q; - hCenter.anchorLine = QmlGraphicsAnchorLine::HCenter; - top.item = q; - top.anchorLine = QmlGraphicsAnchorLine::Top; - bottom.item = q; - bottom.anchorLine = QmlGraphicsAnchorLine::Bottom; - vCenter.item = q; - vCenter.anchorLine = QmlGraphicsAnchorLine::VCenter; - baseline.item = q; - baseline.anchorLine = QmlGraphicsAnchorLine::Baseline; -} - -QPointF QmlGraphicsItemPrivate::computeTransformOrigin() const -{ - Q_Q(const QmlGraphicsItem); - - QRectF br = q->boundingRect(); - - switch(origin) { - default: - case QmlGraphicsItem::TopLeft: - return QPointF(0, 0); - case QmlGraphicsItem::Top: - return QPointF(br.width() / 2., 0); - case QmlGraphicsItem::TopRight: - return QPointF(br.width(), 0); - case QmlGraphicsItem::Left: - return QPointF(0, br.height() / 2.); - case QmlGraphicsItem::Center: - return QPointF(br.width() / 2., br.height() / 2.); - case QmlGraphicsItem::Right: - return QPointF(br.width(), br.height() / 2.); - case QmlGraphicsItem::BottomLeft: - return QPointF(0, br.height()); - case QmlGraphicsItem::Bottom: - return QPointF(br.width() / 2., br.height()); - case QmlGraphicsItem::BottomRight: - return QPointF(br.width(), br.height()); - } -} - -/*! \internal */ -bool QmlGraphicsItem::sceneEvent(QEvent *event) -{ - bool rv = QGraphicsItem::sceneEvent(event); - - if (event->type() == QEvent::FocusIn || - event->type() == QEvent::FocusOut) { - focusChanged(hasFocus()); - } - - return rv; -} - -/*! \internal */ -QVariant QmlGraphicsItem::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - if (change == ItemParentHasChanged) { - emit parentChanged(); - } - - return QGraphicsItem::itemChange(change, value); -} - -/*! \internal */ -QRectF QmlGraphicsItem::boundingRect() const -{ - Q_D(const QmlGraphicsItem); - return QRectF(0, 0, d->width, d->height); -} - -/*! - \enum QmlGraphicsItem::TransformOrigin - - Controls the point about which simple transforms like scale apply. - - \value TopLeft The top-left corner of the item. - \value Top The center point of the top of the item. - \value TopRight The top-right corner of the item. - \value Left The left most point of the vertical middle. - \value Center The center of the item. - \value Right The right most point of the vertical middle. - \value BottomLeft The bottom-left corner of the item. - \value Bottom The center point of the bottom of the item. - \value BottomRight The bottom-right corner of the item. -*/ - -/*! - Returns the current transform origin. -*/ -QmlGraphicsItem::TransformOrigin QmlGraphicsItem::transformOrigin() const -{ - Q_D(const QmlGraphicsItem); - return d->origin; -} - -/*! - Set the transform \a origin. -*/ -void QmlGraphicsItem::setTransformOrigin(TransformOrigin origin) -{ - Q_D(QmlGraphicsItem); - if (origin != d->origin) { - d->origin = origin; - QGraphicsItem::setTransformOriginPoint(d->computeTransformOrigin()); - } -} - -/*! - \property QmlGraphicsItem::smooth - \brief whether the item is smoothly transformed. - - This property is provided purely for the purpose of optimization. Turning - smooth transforms off is faster, but looks worse; turning smooth - transformations on is slower, but looks better. - - By default smooth transformations are off. -*/ - -/*! - Returns true if the item should be drawn with antialiasing and - smooth pixmap filtering, false otherwise. - - The default is false. - - \sa setSmoothTransform() -*/ -bool QmlGraphicsItem::smoothTransform() const -{ - Q_D(const QmlGraphicsItem); - return d->smooth; -} - -/*! - Sets whether the item should be drawn with antialiasing and - smooth pixmap filtering to \a smooth. - - \sa smoothTransform() -*/ -void QmlGraphicsItem::setSmoothTransform(bool smooth) -{ - Q_D(QmlGraphicsItem); - if (d->smooth == smooth) - return; - d->smooth = smooth; - update(); -} - -qreal QmlGraphicsItem::width() const -{ - Q_D(const QmlGraphicsItem); - return d->width; -} - -void QmlGraphicsItem::setWidth(qreal w) -{ - Q_D(QmlGraphicsItem); - d->widthValid = true; - if (d->width == w) - return; - - qreal oldWidth = d->width; - - prepareGeometryChange(); - d->width = w; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), oldWidth, height())); -} - -void QmlGraphicsItem::resetWidth() -{ - Q_D(QmlGraphicsItem); - d->widthValid = false; - setImplicitWidth(implicitWidth()); -} - -qreal QmlGraphicsItem::implicitWidth() const -{ - Q_D(const QmlGraphicsItem); - return d->implicitWidth; -} - -void QmlGraphicsItem::setImplicitWidth(qreal w) -{ - Q_D(QmlGraphicsItem); - d->implicitWidth = w; - if (d->width == w || widthValid()) - return; - - qreal oldWidth = d->width; - - prepareGeometryChange(); - d->width = w; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), oldWidth, height())); -} - -bool QmlGraphicsItem::widthValid() const -{ - Q_D(const QmlGraphicsItem); - return d->widthValid; -} - -qreal QmlGraphicsItem::height() const -{ - Q_D(const QmlGraphicsItem); - return d->height; -} - -void QmlGraphicsItem::setHeight(qreal h) -{ - Q_D(QmlGraphicsItem); - d->heightValid = true; - if (d->height == h) - return; - - qreal oldHeight = d->height; - - prepareGeometryChange(); - d->height = h; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), width(), oldHeight)); -} - -void QmlGraphicsItem::resetHeight() -{ - Q_D(QmlGraphicsItem); - d->heightValid = false; - setImplicitHeight(implicitHeight()); -} - -qreal QmlGraphicsItem::implicitHeight() const -{ - Q_D(const QmlGraphicsItem); - return d->implicitHeight; -} - -void QmlGraphicsItem::setImplicitHeight(qreal h) -{ - Q_D(QmlGraphicsItem); - d->implicitHeight = h; - if (d->height == h || heightValid()) - return; - - qreal oldHeight = d->height; - - prepareGeometryChange(); - d->height = h; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), width(), oldHeight)); -} - -bool QmlGraphicsItem::heightValid() const -{ - Q_D(const QmlGraphicsItem); - return d->heightValid; -} - -/*! - \qmlproperty bool Item::wantsFocus - - This property indicates whether the item has has an active focus request. -*/ - -/*! \internal */ -bool QmlGraphicsItem::wantsFocus() const -{ - return focusItem() != 0; -} - -/*! - \qmlproperty bool Item::focus - This property indicates whether the item has keyboard input focus. Set this - property to true to request focus. -*/ - -/*! \internal */ -bool QmlGraphicsItem::hasFocus() const -{ - return QGraphicsItem::hasFocus(); -} - -/*! \internal */ -void QmlGraphicsItem::setFocus(bool focus) -{ - if (focus) - QGraphicsItem::setFocus(Qt::OtherFocusReason); - else - QGraphicsItem::clearFocus(); -} - -/*! - \reimp - \internal -*/ -void QmlGraphicsItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) -{ -} - -/*! - \reimp - \internal -*/ -bool QmlGraphicsItem::event(QEvent *ev) -{ - return QGraphicsObject::event(ev); -} - -QDebug operator<<(QDebug debug, QmlGraphicsItem *item) -{ - if (!item) { - debug << "QmlGraphicsItem(0)"; - return debug; - } - - debug << item->metaObject()->className() << "(this =" << ((void*)item) - << ", parent =" << ((void*)item->parentItem()) - << ", geometry =" << QRectF(item->pos(), QSizeF(item->width(), item->height())) - << ", z =" << item->zValue() << ")"; - return debug; -} - -int QmlGraphicsItemPrivate::consistentTime = -1; -void QmlGraphicsItemPrivate::setConsistentTime(int t) -{ - consistentTime = t; -} - -QTime QmlGraphicsItemPrivate::currentTime() -{ - if (consistentTime == -1) - return QTime::currentTime(); - else - return QTime(0, 0).addMSecs(consistentTime); -} - -void QmlGraphicsItemPrivate::start(QTime &t) -{ - t = currentTime(); -} - -int QmlGraphicsItemPrivate::elapsed(QTime &t) -{ - int n = t.msecsTo(currentTime()); - if (n < 0) // passed midnight - n += 86400 * 1000; - return n; -} - -int QmlGraphicsItemPrivate::restart(QTime &t) -{ - QTime time = currentTime(); - int n = t.msecsTo(time); - if (n < 0) // passed midnight - n += 86400*1000; - t = time; - return n; -} - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsKeysAttached) -QML_DECLARE_TYPEINFO(QmlGraphicsKeysAttached, QML_HAS_ATTACHED_PROPERTIES) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) -QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) - -#include "moc_qfxitem.cpp" -#include "qfxitem.moc" diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h deleted file mode 100644 index ac094ad..0000000 --- a/src/declarative/fx/qfxitem.h +++ /dev/null @@ -1,238 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXITEM_H -#define QFXITEM_H - -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlState; -class QmlGraphicsAnchorLine; -class QmlTransition; -class QmlGraphicsKeyEvent; -class QmlGraphicsAnchors; -class QmlGraphicsItemPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsItem : public QGraphicsObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QmlGraphicsItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) - Q_PROPERTY(QmlList *data READ data DESIGNABLE false) - Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) - Q_PROPERTY(QmlList* resources READ resources DESIGNABLE false) - Q_PROPERTY(QmlList* states READ states DESIGNABLE false) - Q_PROPERTY(QmlList* transitions READ transitions DESIGNABLE false) - Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) - Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged RESET resetWidth FINAL) - Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged RESET resetHeight FINAL) - Q_PROPERTY(QRectF childrenRect READ childrenRect NOTIFY childrenRectChanged DESIGNABLE false FINAL) - Q_PROPERTY(QmlGraphicsAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine left READ left CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline CONSTANT FINAL) - Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged) - Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY - Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL) - Q_PROPERTY(bool wantsFocus READ wantsFocus NOTIFY wantsFocusChanged) - Q_PROPERTY(QmlList* transform READ transform DESIGNABLE false FINAL) - Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin) - Q_PROPERTY(bool smooth READ smoothTransform WRITE setSmoothTransform) - Q_PROPERTY(QGraphicsEffect *effect READ graphicsEffect WRITE setGraphicsEffect) - Q_ENUMS(TransformOrigin) - Q_CLASSINFO("DefaultProperty", "data") - -public: - enum TransformOrigin { - TopLeft, Top, TopRight, - Left, Center, Right, - BottomLeft, Bottom, BottomRight - }; - - QmlGraphicsItem(QmlGraphicsItem *parent = 0); - virtual ~QmlGraphicsItem(); - - QmlGraphicsItem *parentItem() const; - void setParentItem(QmlGraphicsItem *parent); - void setParent(QmlGraphicsItem *parent) { setParentItem(parent); } - - QmlList *data(); - QmlList *fxChildren(); - QmlList *resources(); - - QmlGraphicsAnchors *anchors(); - QRectF childrenRect(); - - bool clip() const; - void setClip(bool); - - QmlList* states(); - QmlList* transitions(); - - QString state() const; - void setState(const QString &); - - qreal baselineOffset() const; - void setBaselineOffset(qreal); - - QmlList *transform(); - - qreal width() const; - void setWidth(qreal); - void resetWidth(); - qreal implicitWidth() const; - - qreal height() const; - void setHeight(qreal); - void resetHeight(); - qreal implicitHeight() const; - - TransformOrigin transformOrigin() const; - void setTransformOrigin(TransformOrigin); - - bool smoothTransform() const; - void setSmoothTransform(bool); - - QRectF boundingRect() const; - virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - bool wantsFocus() const; - bool hasFocus() const; - void setFocus(bool); - - bool keepMouseGrab() const; - void setKeepMouseGrab(bool); - -Q_SIGNALS: - void widthChanged(); - void heightChanged(); - void childrenRectChanged(); - void baselineOffsetChanged(); - void stateChanged(const QString &); - void focusChanged(); - void wantsFocusChanged(); - void parentChanged(); - -protected: - bool isComponentComplete() const; - virtual bool sceneEvent(QEvent *); - virtual bool event(QEvent *); - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); - - void setImplicitWidth(qreal); - bool widthValid() const; // ### better name? - void setImplicitHeight(qreal); - bool heightValid() const; // ### better name? - - virtual void classBegin(); - virtual void componentComplete(); - virtual void focusChanged(bool); - virtual void keyPressEvent(QKeyEvent *event); - virtual void keyReleaseEvent(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - -protected: - QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent = 0); - -private: - // ### public? - QmlGraphicsAnchorLine left() const; - QmlGraphicsAnchorLine right() const; - QmlGraphicsAnchorLine horizontalCenter() const; - QmlGraphicsAnchorLine top() const; - QmlGraphicsAnchorLine bottom() const; - QmlGraphicsAnchorLine verticalCenter() const; - QmlGraphicsAnchorLine baseline() const; - - friend class QmlStatePrivate; - friend class QmlGraphicsAnchors; - Q_DISABLE_COPY(QmlGraphicsItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) -}; - -template - T qobject_cast(QGraphicsObject *o) -{ - QObject *obj = o; - return qobject_cast(obj); -} - -// ### move to QGO -template -T qobject_cast(QGraphicsItem *item) -{ - if (!item) return 0; - QObject *o = item->toGraphicsObject(); - return qobject_cast(o); -} - -QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QmlGraphicsItem *item); - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsItem) -QML_DECLARE_TYPE(QGraphicsTransform) -QML_DECLARE_TYPE(QGraphicsScale) -QML_DECLARE_TYPE(QGraphicsRotation) - -QT_END_HEADER - -#endif // QFXITEM_H diff --git a/src/declarative/fx/qfxitem_p.h b/src/declarative/fx/qfxitem_p.h deleted file mode 100644 index 87b33be..0000000 --- a/src/declarative/fx/qfxitem_p.h +++ /dev/null @@ -1,245 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXITEM_P_H -#define QFXITEM_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsItemKeyFilter; - -//### merge into private? -class QmlGraphicsContents : public QObject -{ - Q_OBJECT -public: - QmlGraphicsContents(); - - QRectF rectF() const; - - void setItem(QmlGraphicsItem *item); - -public Q_SLOTS: - void calcHeight(); - void calcWidth(); - -Q_SIGNALS: - void rectChanged(); - -private: - QmlGraphicsItem *m_item; - qreal m_x; - qreal m_y; - qreal m_width; - qreal m_height; -}; - -class QmlGraphicsItemPrivate : public QGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsItem) - -public: - QmlGraphicsItemPrivate() - : _anchors(0), _contents(0), - _baselineOffset(0), - _anchorLines(0), - _stateGroup(0), origin(QmlGraphicsItem::TopLeft), - widthValid(false), heightValid(false), - _componentComplete(true), _keepMouse(false), - smooth(false), keyHandler(0), - width(0), height(0), implicitWidth(0), implicitHeight(0) - {} - ~QmlGraphicsItemPrivate() - { delete _anchors; } - - void init(QmlGraphicsItem *parent) - { - Q_Q(QmlGraphicsItem); - - if (parent) - q->setParentItem(parent); - _baselineOffset.invalidate(); - q->setAcceptedMouseButtons(Qt::NoButton); - q->setFlags(QGraphicsItem::ItemHasNoContents | - QGraphicsItem::ItemIsFocusable | - QGraphicsItem::ItemNegativeZStacksBehindParent); - mouseSetsFocus = false; - } - - QString _id; - - // data property - void data_removeAt(int); - int data_count() const; - void data_append(QObject *); - void data_insert(int, QObject *); - QObject *data_at(int) const; - void data_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, data) - - // resources property - void resources_removeAt(int); - int resources_count() const; - void resources_append(QObject *); - void resources_insert(int, QObject *); - QObject *resources_at(int) const; - void resources_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, resources) - - // children property - void children_removeAt(int); - int children_count() const; - void children_append(QmlGraphicsItem *); - void children_insert(int, QmlGraphicsItem *); - QmlGraphicsItem *children_at(int) const; - void children_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QmlGraphicsItem *, children) - - // transform property - void transform_removeAt(int); - int transform_count() const; - void transform_append(QGraphicsTransform *); - void transform_insert(int, QGraphicsTransform *); - QGraphicsTransform *transform_at(int) const; - void transform_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QGraphicsTransform *, transform) - - QmlGraphicsAnchors *anchors() { - if (!_anchors) { - Q_Q(QmlGraphicsItem); - _anchors = new QmlGraphicsAnchors; - _anchors->setItem(q); - if (!_componentComplete) - _anchors->classBegin(); - } - return _anchors; - } - QList dependantAnchors; - QmlGraphicsAnchors *_anchors; - QmlGraphicsContents *_contents; - - QmlNullableValue _baselineOffset; - - struct AnchorLines { - AnchorLines(QmlGraphicsItem *); - QmlGraphicsAnchorLine left; - QmlGraphicsAnchorLine right; - QmlGraphicsAnchorLine hCenter; - QmlGraphicsAnchorLine top; - QmlGraphicsAnchorLine bottom; - QmlGraphicsAnchorLine vCenter; - QmlGraphicsAnchorLine baseline; - }; - mutable AnchorLines *_anchorLines; - AnchorLines *anchorLines() const { - Q_Q(const QmlGraphicsItem); - if (!_anchorLines) _anchorLines = - new AnchorLines(const_cast(q)); - return _anchorLines; - } - - QmlStateGroup *states(); - QmlStateGroup *_stateGroup; - - QmlGraphicsItem::TransformOrigin origin:4; - bool widthValid:1; - bool heightValid:1; - bool _componentComplete:1; - bool _keepMouse:1; - bool smooth:1; - - QmlGraphicsItemKeyFilter *keyHandler; - - qreal width; - qreal height; - qreal implicitWidth; - qreal implicitHeight; - - QPointF computeTransformOrigin() const; - - virtual void setPosHelper(const QPointF &pos) - { - Q_Q(QmlGraphicsItem); - QRectF oldGeometry(this->pos.x(), this->pos.y(), width, height); - QGraphicsItemPrivate::setPosHelper(pos); - q->geometryChanged(QRectF(this->pos.x(), this->pos.y(), width, height), oldGeometry); - } - - // Reimplemented from QGraphicsItemPrivate - virtual void subFocusItemChange() - { - emit q_func()->wantsFocusChanged(); - } - - static int consistentTime; - static QTime currentTime(); - static void Q_DECLARATIVE_EXPORT setConsistentTime(int t); - static void start(QTime &); - static int elapsed(QTime &); - static int restart(QTime &); -}; - -QT_END_NAMESPACE - -#endif // QFXITEM_P_H diff --git a/src/declarative/fx/qfxlayoutitem.cpp b/src/declarative/fx/qfxlayoutitem.cpp deleted file mode 100644 index 201dea2..0000000 --- a/src/declarative/fx/qfxlayoutitem.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxlayoutitem.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QmlGraphicsLayoutItem) - -/*! - \qmlclass LayoutItem QmlGraphicsLayoutItem - \brief The LayoutItem element allows you to place your Fluid UI elements inside a classical Qt layout. -*/ - -/*! - \internal - \class QmlGraphicsLayoutItem - \brief The QmlGraphicsLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. -*/ - - -/*! - \qmlproperty QSizeF LayoutItem::maximumSize - - The maximumSize property can be set to specify the maximum desired size of this LayoutItem -*/ - -/*! - \qmlproperty QSizeF LayoutItem::minimumSize - - The minimumSize property can be set to specify the minimum desired size of this LayoutItem -*/ - -/*! - \qmlproperty QSizeF LayoutItem::preferredSize - - The preferredSize property can be set to specify the preferred size of this LayoutItem -*/ - -QmlGraphicsLayoutItem::QmlGraphicsLayoutItem(QmlGraphicsItem* parent) - : QmlGraphicsItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) -{ - setGraphicsItem(this); -} - -void QmlGraphicsLayoutItem::setGeometry(const QRectF & rect) -{ - setX(rect.x()); - setY(rect.y()); - setWidth(rect.width()); - setHeight(rect.height()); -} - -QSizeF QmlGraphicsLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const -{ - Q_UNUSED(constraint); - if(w == Qt::MinimumSize){ - return m_minimumSize; - }else if(w == Qt::MaximumSize){ - return m_maximumSize; - }else{ - return m_preferredSize; - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxlayoutitem.h b/src/declarative/fx/qfxlayoutitem.h deleted file mode 100644 index 35e6e74..0000000 --- a/src/declarative/fx/qfxlayoutitem.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXGRAPHICSLAYOUTITEM_H -#define QFXGRAPHICSLAYOUTITEM_H -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayoutItem) - Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) - Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) - Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) -public: - QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); - - QSizeF maximumSize() const { return m_maximumSize; } - void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } - - QSizeF minimumSize() const { return m_minimumSize; } - void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } - - QSizeF preferredSize() const { return m_preferredSize; } - void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } - - virtual void setGeometry(const QRectF & rect); -protected: - virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; - -Q_SIGNALS: - void maximumSizeChanged(); - void minimumSizeChanged(); - void preferredSizeChanged(); - -private: - QSizeF m_maximumSize; - QSizeF m_minimumSize; - QSizeF m_preferredSize; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLayoutItem) - -QT_END_HEADER -#endif diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp deleted file mode 100644 index f85380a..0000000 --- a/src/declarative/fx/qfxlistview.cpp +++ /dev/null @@ -1,2035 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "private/qfxflickable_p.h" -#include "qmleasefollow.h" -#include "qlistmodelinterface.h" -#include "qfxvisualitemmodel.h" -#include "qfxlistview.h" -#include - -#include - -QT_BEGIN_NAMESPACE -class QmlGraphicsListViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsListViewAttached(QObject *parent) - : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {} - ~QmlGraphicsListViewAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(QmlGraphicsListView *view READ view CONSTANT) - QmlGraphicsListView *view() { return m_view; } - - Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) - bool isCurrentItem() const { return m_isCurrent; } - void setIsCurrentItem(bool c) { - if (m_isCurrent != c) { - m_isCurrent = c; - emit currentItemChanged(); - } - } - - Q_PROPERTY(QString prevSection READ prevSection NOTIFY prevSectionChanged) - QString prevSection() const { return m_prevSection; } - void setPrevSection(const QString §) { - if (m_prevSection != sect) { - m_prevSection = sect; - emit prevSectionChanged(); - } - } - - Q_PROPERTY(QString section READ section NOTIFY sectionChanged) - QString section() const { return m_section; } - void setSection(const QString §) { - if (m_section != sect) { - m_section = sect; - emit sectionChanged(); - } - } - - Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) - bool delayRemove() const { return m_delayRemove; } - void setDelayRemove(bool delay) { - if (m_delayRemove != delay) { - m_delayRemove = delay; - emit delayRemoveChanged(); - } - } - - static QmlGraphicsListViewAttached *properties(QObject *obj) { - QmlGraphicsListViewAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsListViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - - void emitAdd() { emit add(); } - void emitRemove() { emit remove(); } - -Q_SIGNALS: - void currentItemChanged(); - void sectionChanged(); - void prevSectionChanged(); - void delayRemoveChanged(); - void add(); - void remove(); - -public: - QmlGraphicsListView *m_view; - bool m_isCurrent; - mutable QString m_section; - QString m_prevSection; - bool m_delayRemove; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsListViewAttached::attachedProperties; - -//---------------------------------------------------------------------------- - -class FxListItem -{ -public: - FxListItem(QmlGraphicsItem *i, QmlGraphicsListView *v) : item(i), view(v) { - attached = QmlGraphicsListViewAttached::properties(item); - attached->m_view = view; - } - ~FxListItem() {} - - qreal position() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() : item->x()); } - int size() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->height() : item->width()); } - qreal endPosition() const { - return (view->orientation() == QmlGraphicsListView::Vertical - ? item->y() + (item->height() > 0 ? item->height() : 1) - : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; - } - void setPosition(qreal pos) { - if (view->orientation() == QmlGraphicsListView::Vertical) { - item->setY(pos); - } else { - item->setX(pos); - } - } - - QmlGraphicsItem *item; - QmlGraphicsListView *view; - QmlGraphicsListViewAttached *attached; - int index; -}; - -//---------------------------------------------------------------------------- - -class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsListView) - -public: - QmlGraphicsListViewPrivate() - : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical) - , visiblePos(0), visibleIndex(0) - , averageSize(100.0), currentIndex(-1), requestedIndex(-1) - , highlightRangeStart(0), highlightRangeEnd(0) - , highlightComponent(0), highlight(0), trackedItem(0) - , moveReason(Other), buffer(0), highlightPosAnimator(0), highlightSizeAnimator(0), spacing(0.0) - , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QmlGraphicsListView::NoHighlightRange) - , ownModel(false), wrap(false), autoHighlight(true) - , haveHighlightRange(false) - {} - - void init(); - void clear(); - FxListItem *createItem(int modelIndex); - void releaseItem(FxListItem *item); - - FxListItem *visibleItem(int modelIndex) const { - if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { - for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems.at(i); - if (item->index == modelIndex) - return item; - } - } - return 0; - } - - qreal position() const { - Q_Q(const QmlGraphicsListView); - return orient == QmlGraphicsListView::Vertical ? q->viewportY() : q->viewportX(); - } - void setPosition(qreal pos) { - Q_Q(QmlGraphicsListView); - if (orient == QmlGraphicsListView::Vertical) - q->setViewportY(pos); - else - q->setViewportX(pos); - } - qreal size() const { - Q_Q(const QmlGraphicsListView); - return orient == QmlGraphicsListView::Vertical ? q->height() : q->width(); - } - - qreal startPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) { - pos = visibleItems.first()->position(); - if (visibleIndex > 0) - pos -= visibleIndex * (averageSize + spacing) - spacing; - } - return pos; - } - - qreal endPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) { - int invisibleCount = visibleItems.count() - visibleIndex; - for (int i = visibleItems.count()-1; i >= 0; --i) { - if (visibleItems.at(i)->index != -1) { - invisibleCount = model->count() - visibleItems.at(i)->index - 1; - break; - } - } - pos = visibleItems.last()->endPosition() + invisibleCount * (averageSize + spacing); - } - return pos; - } - - qreal positionAt(int modelIndex) const { - if (FxListItem *item = visibleItem(modelIndex)) - return item->position(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int count = visibleIndex - modelIndex; - return visibleItems.first()->position() - count * (averageSize + spacing); - } else { - int idx = visibleItems.count() - 1; - while (idx >= 0 && visibleItems.at(idx)->index == -1) - --idx; - if (idx < 0) - idx = visibleIndex; - else - idx = visibleItems.at(idx)->index; - int count = modelIndex - idx - 1; - return visibleItems.last()->endPosition() + spacing + count * (averageSize + spacing) + 1; - } - } - return 0; - } - - QString sectionAt(int modelIndex) { - Q_Q(QmlGraphicsListView); - if (FxListItem *item = visibleItem(modelIndex)) - return item->attached->section(); - QString section; - if (!sectionExpression.isEmpty()) - section = model->evaluate(modelIndex, sectionExpression, q).toString(); - return section; - } - - bool isValid() const { - return model && model->count() && model->isValid(); - } - - int snapIndex() { - int index = currentIndex; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems[i]; - if (item->index == -1) - continue; - qreal itemTop = item->position(); - if (itemTop >= highlight->position()-item->size()/2 && itemTop < highlight->position()+item->size()/2) - return item->index; - } - return index; - } - - //XXX Rough. Only works for fixed size items. - qreal snapPosAt(qreal pos) { - return qRound((pos - startPosition()) / averageSize) * averageSize + startPosition(); - } - - int lastVisibleIndex() const { - int lastIndex = -1; - for (int i = visibleItems.count()-1; i >= 0; --i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index != -1) { - lastIndex = listItem->index; - break; - } - } - return lastIndex; - } - - // map a model index to visibleItems index. - // These may differ if removed items are still present in the visible list, - // e.g. doing a removal animation - int mapFromModel(int modelIndex) const { - if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) - return -1; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index == modelIndex) - return i + visibleIndex; - if (listItem->index > modelIndex) - return -1; - } - return -1; // Not in visibleList - } - - bool mapRangeFromModel(int &index, int &count) const { - if (index + count < visibleIndex) - return false; - - int lastIndex = -1; - for (int i = visibleItems.count()-1; i >= 0; --i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index != -1) { - lastIndex = listItem->index; - break; - } - } - - if (index > lastIndex) - return false; - - int last = qMin(index + count - 1, lastIndex); - index = qMax(index, visibleIndex); - count = last - index + 1; - - return true; - } - - void updateViewport() { - Q_Q(QmlGraphicsListView); - if (orient == QmlGraphicsListView::Vertical) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } - - - // for debugging only - void checkVisible() const { - int skip = 0; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index == -1) { - ++skip; - } else if (listItem->index != visibleIndex + i - skip) { - qFatal("index %d %d %d", visibleIndex, i, listItem->index); - } - } - } - - void refill(qreal from, qreal to); - void layout(); - void updateUnrequestedIndexes(); - void updateUnrequestedPositions(); - void updateTrackedItem(); - void createHighlight(); - void updateHighlight(); - void updateSections(); - void updateCurrentSection(); - void updateCurrent(int); - void updateAverage(); - void fixupPosition(); - virtual void fixupY(); - virtual void fixupX(); - virtual void flickX(qreal velocity); - virtual void flickY(qreal velocity); - - QmlGraphicsVisualModel *model; - QVariant modelVariant; - QList visibleItems; - QHash unrequestedItems; - FxListItem *currentItem; - QmlGraphicsListView::Orientation orient; - int visiblePos; - int visibleIndex; - qreal averageSize; - int currentIndex; - int requestedIndex; - qreal highlightRangeStart; - qreal highlightRangeEnd; - QmlComponent *highlightComponent; - FxListItem *highlight; - FxListItem *trackedItem; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; - int buffer; - QmlEaseFollow *highlightPosAnimator; - QmlEaseFollow *highlightSizeAnimator; - QString sectionExpression; - QString currentSection; - qreal spacing; - qreal highlightMoveSpeed; - qreal highlightResizeSpeed; - QmlGraphicsListView::HighlightRangeMode highlightRange; - - bool ownModel : 1; - bool wrap : 1; - bool autoHighlight : 1; - bool haveHighlightRange : 1; -}; - -void QmlGraphicsListViewPrivate::init() -{ - Q_Q(QmlGraphicsListView); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(refill())); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(refill())); -} - -void QmlGraphicsListViewPrivate::clear() -{ - for (int i = 0; i < visibleItems.count(); ++i) - releaseItem(visibleItems.at(i)); - visibleItems.clear(); - visiblePos = 0; - visibleIndex = 0; - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - createHighlight(); - trackedItem = 0; -} - -FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex) -{ - Q_Q(QmlGraphicsListView); - // create object - requestedIndex = modelIndex; - FxListItem *listItem = 0; - if (QmlGraphicsItem *item = model->item(modelIndex, false)) { - listItem = new FxListItem(item, q); - listItem->index = modelIndex; - // initialise attached properties - if (!sectionExpression.isEmpty()) { - QmlExpression e(qmlContext(listItem->item), sectionExpression, q); - e.setTrackChange(false); - listItem->attached->m_section = e.value().toString(); - if (modelIndex > 0) { - if (FxListItem *item = visibleItem(modelIndex-1)) - listItem->attached->m_prevSection = item->attached->section(); - else - listItem->attached->m_prevSection = sectionAt(modelIndex-1); - } - } - // complete - model->completeItem(); - listItem->item->setZValue(1); - listItem->item->setParent(q->viewport()); - if (orient == QmlGraphicsListView::Vertical) - QObject::connect(listItem->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); - else - QObject::connect(listItem->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); - } - requestedIndex = -1; - - return listItem; -} - -void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item) -{ - Q_Q(QmlGraphicsListView); - if (!item) - return; - if (trackedItem == item) { - const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); - QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - if (model->release(item->item) == 0) { - // item was not destroyed, and we no longer reference it. - unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - if (orient == QmlGraphicsListView::Vertical) - QObject::disconnect(item->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); - else - QObject::disconnect(item->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); - } - delete item; -} - -void QmlGraphicsListViewPrivate::refill(qreal from, qreal to) -{ - Q_Q(QmlGraphicsListView); - if (!isValid() || !q->isComponentComplete()) - return; - from -= buffer; - to += buffer; - int modelIndex = 0; - qreal itemEnd = visiblePos-1; - if (!visibleItems.isEmpty()) { - visiblePos = visibleItems.first()->position(); - itemEnd = visibleItems.last()->endPosition() + spacing; - int i = visibleItems.count() - 1; - while (i > 0 && visibleItems.at(i)->index == -1) - --i; - modelIndex = visibleItems.at(i)->index + 1; - } - - bool changed = false; - FxListItem *item = 0; - int pos = itemEnd + 1; - while (modelIndex < model->count() && pos <= to) { - //qDebug() << "refill: append item" << modelIndex; - if (!(item = createItem(modelIndex))) - break; - item->setPosition(pos); - pos += item->size() + spacing; - visibleItems.append(item); - ++modelIndex; - changed = true; - } - while (visibleIndex > 0 && visibleIndex <= model->count() && visiblePos > from) { - //qDebug() << "refill: prepend item" << visibleIndex-1 << "current top pos" << visiblePos; - if (!(item = createItem(visibleIndex-1))) - break; - --visibleIndex; - visiblePos -= item->size() + spacing; - item->setPosition(visiblePos); - visibleItems.prepend(item); - changed = true; - } - - while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endPosition() < from) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endPosition(); - if (item->index != -1) - visibleIndex++; - visibleItems.removeFirst(); - releaseItem(item); - changed = true; - } - while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->position() > to) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; - visibleItems.removeLast(); - releaseItem(item); - changed = true; - } - if (changed) { - if (visibleItems.count()) - visiblePos = visibleItems.first()->position(); - updateAverage(); - if (!sectionExpression.isEmpty()) - updateCurrentSection(); - updateViewport(); - } -} - -void QmlGraphicsListViewPrivate::layout() -{ - Q_Q(QmlGraphicsListView); - if (!visibleItems.isEmpty()) { - int oldEnd = visibleItems.last()->endPosition(); - int pos = visibleItems.first()->endPosition() + spacing + 1; - for (int i=1; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems.at(i); - item->setPosition(pos); - pos += item->size() + spacing; - } - // move current item if it is after the visible items. - if (currentItem && currentIndex > lastVisibleIndex()) - currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd)); - } - if (!isValid()) - return; - q->refill(); - updateHighlight(); - fixupPosition(); - updateUnrequestedPositions(); - updateViewport(); -} - -void QmlGraphicsListViewPrivate::updateUnrequestedIndexes() -{ - Q_Q(QmlGraphicsListView); - QHash::iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) - *it = model->indexOf(it.key(), q); -} - -void QmlGraphicsListViewPrivate::updateUnrequestedPositions() -{ - QHash::const_iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { - if (visibleItem(*it)) - continue; - if (orient == QmlGraphicsListView::Vertical) - it.key()->setY(positionAt(*it)); - else - it.key()->setX(positionAt(*it)); - } -} - -void QmlGraphicsListViewPrivate::updateTrackedItem() -{ - Q_Q(QmlGraphicsListView); - FxListItem *item = currentItem; - if (highlight) - item = highlight; - - FxListItem *oldTracked = trackedItem; - - const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); - - if (trackedItem && item != trackedItem) { - QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - - if (!trackedItem && item) { - trackedItem = item; - QObject::connect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::connect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - } - if (trackedItem && trackedItem != oldTracked) - q->trackedPositionChanged(); -} - -void QmlGraphicsListViewPrivate::createHighlight() -{ - Q_Q(QmlGraphicsListView); - if (highlight) { - if (trackedItem == highlight) - trackedItem = 0; - delete highlight->item; - delete highlight; - highlight = 0; - delete highlightPosAnimator; - delete highlightSizeAnimator; - highlightPosAnimator = 0; - highlightSizeAnimator = 0; - } - - if (currentItem) { - QmlGraphicsItem *item = 0; - if (highlightComponent) { - QmlContext *highlightContext = new QmlContext(qmlContext(q)); - QObject *nobj = highlightComponent->create(highlightContext); - if (nobj) { - highlightContext->setParent(nobj); - item = qobject_cast(nobj); - if (!item) { - delete nobj; - } else { - item->setParent(q->viewport()); - } - } else { - delete highlightContext; - } - } else { - item = new QmlGraphicsItem; - item->setParent(q->viewport()); - } - if (item) { - item->setZValue(0); - highlight = new FxListItem(item, q); - if (orient == QmlGraphicsListView::Vertical) - highlight->item->setHeight(currentItem->item->height()); - else - highlight->item->setWidth(currentItem->item->width()); - const QLatin1String posProp(orient == QmlGraphicsListView::Vertical ? "y" : "x"); - highlightPosAnimator = new QmlEaseFollow(q); - highlightPosAnimator->setTarget(QmlMetaProperty(highlight->item, posProp)); - highlightPosAnimator->setVelocity(highlightMoveSpeed); - highlightPosAnimator->setEnabled(autoHighlight); - const QLatin1String sizeProp(orient == QmlGraphicsListView::Vertical ? "height" : "width"); - highlightSizeAnimator = new QmlEaseFollow(q); - highlightSizeAnimator->setVelocity(highlightResizeSpeed); - highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); - highlightSizeAnimator->setEnabled(autoHighlight); - } - } -} - -void QmlGraphicsListViewPrivate::updateHighlight() -{ - if ((!currentItem && highlight) || (currentItem && !highlight)) - createHighlight(); - if (currentItem && autoHighlight && highlight && !moving) { - // auto-update highlight - highlightPosAnimator->setSourceValue(currentItem->position()); - highlightSizeAnimator->setSourceValue(currentItem->size()); - if (orient == QmlGraphicsListView::Vertical) { - if (highlight->item->width() == 0) - highlight->item->setWidth(currentItem->item->width()); - } else { - if (highlight->item->height() == 0) - highlight->item->setHeight(currentItem->item->height()); - } - } - updateTrackedItem(); -} - -void QmlGraphicsListViewPrivate::updateSections() -{ - if (!sectionExpression.isEmpty()) { - QString prevSection; - if (visibleIndex > 0) - prevSection = sectionAt(visibleIndex-1); - for (int i = 0; i < visibleItems.count(); ++i) { - if (visibleItems.at(i)->index != -1) { - QmlGraphicsListViewAttached *attached = visibleItems.at(i)->attached; - attached->setPrevSection(prevSection); - prevSection = attached->section(); - } - } - } -} - -void QmlGraphicsListViewPrivate::updateCurrentSection() -{ - if (sectionExpression.isEmpty() || visibleItems.isEmpty()) { - currentSection = QString(); - return; - } - int index = 0; - while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count()) - ++index; - - if (index < visibleItems.count()) - currentSection = visibleItems.at(index)->attached->section(); - else - currentSection = visibleItems.first()->attached->section(); -} - -void QmlGraphicsListViewPrivate::updateCurrent(int modelIndex) -{ - Q_Q(QmlGraphicsListView); - if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { - if (currentItem) { - currentItem->attached->setIsCurrentItem(false); - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - updateHighlight(); - emit q->currentIndexChanged(); - } - return; - } - - if (currentItem && currentIndex == modelIndex) { - updateHighlight(); - return; - } - FxListItem *oldCurrentItem = currentItem; - currentIndex = modelIndex; - currentItem = createItem(modelIndex); - if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) - oldCurrentItem->attached->setIsCurrentItem(false); - if (currentItem) { - if (modelIndex == visibleIndex - 1) { - // We can calculate exact postion in this case - currentItem->setPosition(visibleItems.first()->position() - currentItem->size() - spacing); - } else { - // Create current item now and position as best we can. - // Its position will be corrected when it becomes visible. - currentItem->setPosition(positionAt(modelIndex)); - } - currentItem->item->setFocus(true); - currentItem->attached->setIsCurrentItem(true); - } - updateHighlight(); - emit q->currentIndexChanged(); - // Release the old current item - releaseItem(oldCurrentItem); -} - -void QmlGraphicsListViewPrivate::updateAverage() -{ - if (!visibleItems.count()) - return; - qreal sum = 0.0; - for (int i = 0; i < visibleItems.count(); ++i) - sum += visibleItems.at(i)->size(); - averageSize = sum / visibleItems.count(); -} - -void QmlGraphicsListViewPrivate::fixupPosition() -{ - if (orient == QmlGraphicsListView::Vertical) - fixupY(); - else - fixupX(); -} - -void QmlGraphicsListViewPrivate::fixupY() -{ - QmlGraphicsFlickablePrivate::fixupY(); - if (orient == QmlGraphicsListView::Horizontal) - return; - - if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { - if (currentItem && highlight && currentItem->position() != highlight->position()) { - moveReason = Mouse; - timeline.clear(); - timeline.move(_moveY, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); - } - } -} - -void QmlGraphicsListViewPrivate::fixupX() -{ - QmlGraphicsFlickablePrivate::fixupX(); - if (orient == QmlGraphicsListView::Vertical) - return; - - if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { - if (currentItem && highlight && currentItem->position() != highlight->position()) { - moveReason = Mouse; - timeline.clear(); - timeline.move(_moveX, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); - } - } -} - -void QmlGraphicsListViewPrivate::flickX(qreal velocity) -{ - Q_Q(QmlGraphicsListView); - - if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { - QmlGraphicsFlickablePrivate::flickX(velocity); - return; - } - - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveX.value() < q->minXExtent()) - maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); - flickTargetX = q->minXExtent(); - } else { - if (_moveX.value() > q->maxXExtent()) - maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); - flickTargetX = q->maxXExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - qreal accel = deceleration; - qreal v2 = v * v; - qreal maxAccel = v2 / (2.0f * maxDistance); - if (maxAccel < accel) { - // If we are not flicking to the end then attempt to stop exactly on an item boundary - qreal dist = v2 / accel / 2.0; - if (v > 0) - dist = -dist; - dist = -_moveX.value() - snapPosAt(-(_moveX.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { - timeline.reset(_moveX); - fixupX(); - return; - } - accel = v2 / (2.0f * qAbs(dist)); - } - timeline.reset(_moveX); - timeline.accel(_moveX, v, accel, maxDistance); - timeline.execute(fixupXEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveX); - fixupX(); - } -} - -void QmlGraphicsListViewPrivate::flickY(qreal velocity) -{ - Q_Q(QmlGraphicsListView); - - if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { - QmlGraphicsFlickablePrivate::flickY(velocity); - return; - } - - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveY.value() < q->minYExtent()) - maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); - flickTargetY = q->minYExtent(); - } else { - if (_moveY.value() > q->maxYExtent()) - maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); - flickTargetY = q->maxYExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - qreal accel = deceleration; - qreal v2 = v * v; - qreal maxAccel = v2 / (2.0f * maxDistance); - if (maxAccel < accel) { - // If we are not flicking to the end then attempt to stop exactly on an item boundary - qreal dist = v2 / accel / 2.0; - if (v > 0) - dist = -dist; - dist = -_moveY.value() - snapPosAt(-(_moveY.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { - timeline.reset(_moveY); - fixupY(); - return; - } - accel = v2 / (2.0f * qAbs(dist)); - } - timeline.reset(_moveY); - timeline.accel(_moveY, v, accel, maxDistance); - timeline.execute(fixupYEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveY); - fixupY(); - } -} - -//---------------------------------------------------------------------------- - -/*! - \qmlclass ListView - \inherits Flickable - \brief The ListView item provides a list view of items provided by a model. - - The model is typically provided by a QAbstractListModel "C++ model object", - but can also be created directly in QML. The items are laid out vertically - or horizontally and may be flicked to scroll. - - The below example creates a very simple vertical list, using a QML model. - \image trivialListView.png - - The user interface defines a delegate to display an item, a highlight, - and the ListView which uses the above. - - \snippet doc/src/snippets/declarative/listview/listview.qml 3 - - The model is defined as a ListModel using QML: - \quotefile doc/src/snippets/declarative/listview/dummydata/ContactModel.qml - - In this case ListModel is a handy way for us to test our UI. In practice - the model would be implemented in C++, or perhaps via a SQL data source. -*/ - -QmlGraphicsListView::QmlGraphicsListView(QmlGraphicsItem *parent) - : QmlGraphicsFlickable(*(new QmlGraphicsListViewPrivate), parent) -{ - Q_D(QmlGraphicsListView); - d->init(); -} - -QmlGraphicsListView::~QmlGraphicsListView() -{ - Q_D(QmlGraphicsListView); - d->clear(); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlattachedproperty bool ListView::isCurrentItem - This attched property is true if this delegate is the current item; otherwise false. - - It is attached to each instance of the delegate. - - This property may be used to adjust the appearance of the current item, for example: - - \snippet doc/src/snippets/declarative/listview/highlight.qml 0 -*/ - -/*! - \qmlattachedproperty ListView ListView::view - This attached property holds the view that manages this delegate instance. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty string ListView::prevSection - This attached property holds the section of the previous element. - - It is attached to each instance of the delegate. - - The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. -*/ - -/*! - \qmlattachedproperty string ListView::section - This attached property holds the section of this element. - - It is attached to each instance of the delegate. - - The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. -*/ - -/*! - \qmlattachedproperty bool ListView::delayRemove - This attached property holds whether the delegate may be destroyed. - - It is attached to each instance of the delegate. - - It is sometimes necessary to delay the destruction of an item - until an animation completes. - - The example below ensures that the animation completes before - the item is removed from the list. - - \code - Component { - id: myDelegate - Item { - id: wrapper - ListView.onRemove: SequentialAnimation { - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } - NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } - } - } - } - \endcode -*/ - -/*! - \qmlattachedsignal ListView::onAdd() - This attached handler is called immediately after an item is added to the view. -*/ - -/*! - \qmlattachedsignal ListView::onRemove() - This attached handler is called immediately before an item is removed from the view. -*/ - -/*! - \qmlproperty model ListView::model - This property holds the model providing data for the list. - - The model provides a set of data that is used to create the items - for the view. For large or dynamic datasets the model is usually - provided by a C++ model object. The C++ model object must be a \l - {QAbstractItemModel} subclass or a simple list. - - Models can also be created directly in QML, using a \l{ListModel}, - \l{XmlListModel} or \l{VisualItemModel}. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsListView::model() const -{ - Q_D(const QmlGraphicsListView); - return d->modelVariant; -} - -void QmlGraphicsListView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsListView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - } - d->clear(); - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - if (d->currentIndex >= d->model->count() || d->currentIndex < 0) - setCurrentIndex(0); - else - d->updateCurrent(d->currentIndex); - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - refill(); - emit countChanged(); - } -} - -/*! - \qmlproperty component ListView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/listview/listview.qml 0 -*/ -QmlComponent *QmlGraphicsListView::delegate() const -{ - Q_D(const QmlGraphicsListView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsListView::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsListView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - d->updateCurrent(d->currentIndex); - refill(); - } -} - -/*! - \qmlproperty int ListView::currentIndex - \qmlproperty Item ListView::currentItem - - \c currentIndex holds the index of the current item. - \c currentItem is the current item. Note that the position of the current item - may only be approximate until it becomes visible in the view. -*/ -int QmlGraphicsListView::currentIndex() const -{ - Q_D(const QmlGraphicsListView); - return d->currentIndex; -} - -void QmlGraphicsListView::setCurrentIndex(int index) -{ - Q_D(QmlGraphicsListView); - d->moveReason = QmlGraphicsListViewPrivate::Other; - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { - cancelFlick(); - d->updateCurrent(index); - } else { - d->currentIndex = index; - } -} - -QmlGraphicsItem *QmlGraphicsListView::currentItem() -{ - Q_D(QmlGraphicsListView); - if (!d->currentItem) - return 0; - return d->currentItem->item; -} - -/*! - \qmlproperty int ListView::count - This property holds the number of items in the view. -*/ -int QmlGraphicsListView::count() const -{ - Q_D(const QmlGraphicsListView); - if (d->model) - return d->model->count(); - return 0; -} - -/*! - \qmlproperty component ListView::highlight - This property holds the component to use as the highlight. - - An instance of the highlight component will be created for each list. - The geometry of the resultant component instance will be managed by the list - so as to stay with the current item, unless the highlightFollowsCurrentItem - property is false. - - The below example demonstrates how to make a simple highlight - for a vertical list. - - \snippet doc/src/snippets/declarative/listview/listview.qml 1 - \image trivialListView.png - - \sa highlightFollowsCurrentItem -*/ -QmlComponent *QmlGraphicsListView::highlight() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightComponent; -} - -void QmlGraphicsListView::setHighlight(QmlComponent *highlight) -{ - Q_D(QmlGraphicsListView); - delete d->highlightComponent; - d->highlightComponent = highlight; - d->updateCurrent(d->currentIndex); -} - -/*! - \qmlproperty bool ListView::highlightFollowsCurrentItem - This property holds whether the highlight is managed by the view. - - If highlightFollowsCurrentItem is true, the highlight will be moved smoothly - to follow the current item. If highlightFollowsCurrentItem is false, the - highlight will not be moved by the view, and must be implemented - by the highlight. The following example creates a highlight with - its motion defined by the spring \l {SpringFollow}: - - \snippet doc/src/snippets/declarative/listview/highlight.qml 1 - - Note that the highlight animation also affects the way that the view - is scrolled. This is because the view moves to maintain the - highlight within the preferred highlight range (or visible viewport). - - \sa highlight -*/ -bool QmlGraphicsListView::highlightFollowsCurrentItem() const -{ - Q_D(const QmlGraphicsListView); - return d->autoHighlight; -} - -void QmlGraphicsListView::setHighlightFollowsCurrentItem(bool autoHighlight) -{ - Q_D(QmlGraphicsListView); - d->autoHighlight = autoHighlight; - if (d->highlightPosAnimator) { - d->highlightPosAnimator->setEnabled(d->autoHighlight); - d->highlightSizeAnimator->setEnabled(d->autoHighlight); - } - d->updateHighlight(); -} - -/*! - \qmlproperty real ListView::preferredHighlightBegin - \qmlproperty real ListView::preferredHighlightEnd - \qmlproperty bool ListView::highlightRangeMode - - These properties set the preferred range of the highlight (current item) - within the view. - - If highlightRangeMode is set to \e ApplyRange the view will - attempt to maintain the highlight within the range, however - the highlight can move outside of the range at the ends of the list - or due to a mouse interaction. - - If highlightRangeMode is set to \e StrictlyEnforceRange the highlight will never - move outside of the range. This means that the current item will change - if a keyboard or mouse action would cause the highlight to move - outside of the range. - - The default value is \e NoHighlightRange. - - Note that a valid range requires preferredHighlightEnd to be greater - than or equal to preferredHighlightBegin. -*/ -qreal QmlGraphicsListView::preferredHighlightBegin() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRangeStart; -} - -void QmlGraphicsListView::setPreferredHighlightBegin(qreal start) -{ - Q_D(QmlGraphicsListView); - d->highlightRangeStart = start; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -qreal QmlGraphicsListView::preferredHighlightEnd() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRangeEnd; -} - -void QmlGraphicsListView::setPreferredHighlightEnd(qreal end) -{ - Q_D(QmlGraphicsListView); - d->highlightRangeEnd = end; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -QmlGraphicsListView::HighlightRangeMode QmlGraphicsListView::highlightRangeMode() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRange; -} - -void QmlGraphicsListView::setHighlightRangeMode(HighlightRangeMode mode) -{ - Q_D(QmlGraphicsListView); - d->highlightRange = mode; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -/*! - \qmlproperty real ListView::spacing - - This property holds the spacing to leave between items. -*/ -qreal QmlGraphicsListView::spacing() const -{ - Q_D(const QmlGraphicsListView); - return d->spacing; -} - -void QmlGraphicsListView::setSpacing(qreal spacing) -{ - Q_D(QmlGraphicsListView); - if (spacing != d->spacing) { - d->spacing = spacing; - d->layout(); - emit spacingChanged(); - } -} - -/*! - \qmlproperty enumeration ListView::orientation - This property holds the orientation of the list. - - Possible values are \c Vertical (default) and \c Horizontal. - - Vertical Example: - \image trivialListView.png - Horizontal Example: - \image ListViewHorizontal.png -*/ -QmlGraphicsListView::Orientation QmlGraphicsListView::orientation() const -{ - Q_D(const QmlGraphicsListView); - return d->orient; -} - -void QmlGraphicsListView::setOrientation(QmlGraphicsListView::Orientation orientation) -{ - Q_D(QmlGraphicsListView); - if (d->orient != orientation) { - d->orient = orientation; - if (d->orient == QmlGraphicsListView::Vertical) - setViewportWidth(-1); - else - setViewportHeight(-1); - d->clear(); - refill(); - emit orientationChanged(); - d->updateCurrent(d->currentIndex); - } -} - -/*! - \qmlproperty bool ListView::keyNavigationWraps - This property holds whether the list wraps key navigation - - If this property is true then key presses to move off of one end of the list will cause the - current item to jump to the other end. -*/ -bool QmlGraphicsListView::isWrapEnabled() const -{ - Q_D(const QmlGraphicsListView); - return d->wrap; -} - -void QmlGraphicsListView::setWrapEnabled(bool wrap) -{ - Q_D(QmlGraphicsListView); - d->wrap = wrap; -} - -/*! - \qmlproperty int ListView::cacheBuffer - This property holds the number of off-screen pixels to cache. - - This property determines the number of pixels above the top of the list - and below the bottom of the list to cache. Setting this value can make - scrolling the list smoother at the expense of additional memory usage. -*/ -int QmlGraphicsListView::cacheBuffer() const -{ - Q_D(const QmlGraphicsListView); - return d->buffer; -} - -void QmlGraphicsListView::setCacheBuffer(int b) -{ - Q_D(QmlGraphicsListView); - if (d->buffer != b) { - d->buffer = b; - if (isComponentComplete()) - refill(); - } -} - -/*! - \qmlproperty string ListView::sectionExpression - This property holds the expression to be evaluated for the section attached property. - - Each item in the list has attached properties named \c ListView.section and - \c ListView.prevSection. These may be used to place a section header for - related items. The example below assumes that the model is sorted by size of - pet. The section expression is the size property. If \c ListView.section and - \c ListView.prevSection differ, the item will display a section header. - - \snippet examples/declarative/listview/sections.qml 0 - - \image ListViewSections.png -*/ -QString QmlGraphicsListView::sectionExpression() const -{ - Q_D(const QmlGraphicsListView); - return d->sectionExpression; -} - -void QmlGraphicsListView::setSectionExpression(const QString &expression) -{ - Q_D(QmlGraphicsListView); - if (d->sectionExpression != expression) { - d->sectionExpression = expression; - emit sectionExpressionChanged(); - } -} - -QString QmlGraphicsListView::currentSection() const -{ - Q_D(const QmlGraphicsListView); - return d->currentSection; -} - -/*! - \qmlproperty real ListView::highlightMoveSpeed - - This property holds the moving animation speed of the highlight delegate. -*/ -qreal QmlGraphicsListView::highlightMoveSpeed() const -{ - Q_D(const QmlGraphicsListView);\ - return d->highlightMoveSpeed; -} - -void QmlGraphicsListView::setHighlightMoveSpeed(qreal speed) -{ - Q_D(QmlGraphicsListView);\ - if (d->highlightMoveSpeed != speed) - { - d->highlightMoveSpeed = speed; - emit highlightMoveSpeedChanged(); - } -} - -/*! - \qmlproperty real ListView::highlightResizeSpeed - - This property holds the resizing animation speed of the highlight delegate. -*/ -qreal QmlGraphicsListView::highlightResizeSpeed() const -{ - Q_D(const QmlGraphicsListView);\ - return d->highlightResizeSpeed; -} - -void QmlGraphicsListView::setHighlightResizeSpeed(qreal speed) -{ - Q_D(QmlGraphicsListView);\ - if (d->highlightResizeSpeed != speed) - { - d->highlightResizeSpeed = speed; - emit highlightResizeSpeedChanged(); - } -} - -void QmlGraphicsListView::viewportMoved() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::viewportMoved(); - refill(); - if (isFlicking() || d->moving) - d->moveReason = QmlGraphicsListViewPrivate::Mouse; - if (d->moveReason == QmlGraphicsListViewPrivate::Mouse) { - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange && d->highlight) { - int idx = d->snapIndex(); - if (idx >= 0 && idx != d->currentIndex) - d->updateCurrent(idx); - - qreal pos = d->currentItem->position(); - if (pos > d->position() + d->highlightRangeEnd - 1 - d->highlight->size()) - pos = d->position() + d->highlightRangeEnd - 1 - d->highlight->size(); - if (pos < d->position() + d->highlightRangeStart) - pos = d->position() + d->highlightRangeStart; - d->highlight->setPosition(pos); - } - } -} - -qreal QmlGraphicsListView::minYExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Horizontal) - return QmlGraphicsFlickable::minYExtent(); - qreal extent = -d->startPosition(); - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent += d->highlightRangeStart; - - return extent; -} - -qreal QmlGraphicsListView::maxYExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Horizontal) - return QmlGraphicsFlickable::maxYExtent(); - qreal extent; - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); - else - extent = -(d->endPosition() - height()); - qreal minY = minYExtent(); - if (extent > minY) - extent = minY; - return extent; -} - -qreal QmlGraphicsListView::minXExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Vertical) - return QmlGraphicsFlickable::minXExtent(); - qreal extent = -d->startPosition(); - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent += d->highlightRangeStart; - - return extent; -} - -qreal QmlGraphicsListView::maxXExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Vertical) - return QmlGraphicsFlickable::maxXExtent(); - qreal extent; - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); - else - extent = -(d->endPosition() - width()); - qreal minX = minXExtent(); - if (extent > minX) - extent = minX; - return extent; -} - -void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::keyPressEvent(event); - if (event->isAccepted()) - return; - - if (d->model && d->model->count() && d->interactive) { - if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Left) - || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Up)) { - if (currentIndex() > 0 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QmlGraphicsListViewPrivate::Key; - decrementCurrentIndex(); - event->accept(); - return; - } else if (d->wrap) { - event->accept(); - return; - } - } else if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Right) - || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Down)) { - if (currentIndex() < d->model->count() - 1 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QmlGraphicsListViewPrivate::Key; - incrementCurrentIndex(); - event->accept(); - return; - } else if (d->wrap) { - event->accept(); - return; - } - } - } - d->moveReason = QmlGraphicsListViewPrivate::Other; - event->ignore(); -} - -/*! - \qmlmethod ListView::incrementCurrentIndex - - Increments the current index. The current index will wrap - if keyNavigationWraps is true and it is currently at the end. -*/ -void QmlGraphicsListView::incrementCurrentIndex() -{ - Q_D(QmlGraphicsListView); - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex()+1; - cancelFlick(); - d->updateCurrent(index < d->model->count() ? index : 0); - } -} - -/*! - \qmlmethod ListView::decrementCurrentIndex - - Decrements the current index. The current index will wrap - if keyNavigationWraps is true and it is currently at the beginning. -*/ -void QmlGraphicsListView::decrementCurrentIndex() -{ - Q_D(QmlGraphicsListView); - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex()-1; - cancelFlick(); - d->updateCurrent(index >= 0 ? index : d->model->count()-1); - } -} - -void QmlGraphicsListView::componentComplete() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::componentComplete(); - if (d->currentIndex < 0) - d->updateCurrent(0); - refill(); - d->fixupPosition(); -} - -void QmlGraphicsListView::refill() -{ - Q_D(QmlGraphicsListView); - d->refill(d->position(), d->position()+d->size()-1); -} - -void QmlGraphicsListView::trackedPositionChanged() -{ - Q_D(QmlGraphicsListView); - if (!d->trackedItem) - return; - if (!isFlicking() && !d->moving && d->moveReason != QmlGraphicsListViewPrivate::Mouse) { - const qreal trackedPos = d->trackedItem->position(); - const qreal viewPos = d->position(); - if (d->haveHighlightRange) { - if (d->highlightRange == StrictlyEnforceRange) { - qreal pos = viewPos; - if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size()) - pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); - if (trackedPos < pos + d->highlightRangeStart) - pos = trackedPos - d->highlightRangeStart; - d->setPosition(pos); - } else { - qreal pos = viewPos; - if (trackedPos < d->startPosition() + d->highlightRangeStart) { - pos = d->startPosition(); - } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) { - pos = d->endPosition() - d->size(); - } else { - if (trackedPos < viewPos + d->highlightRangeStart) { - pos = trackedPos - d->highlightRangeStart; - } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) { - pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); - } - } - d->setPosition(pos); - } - } else { - if (trackedPos < viewPos && d->currentItem->position() < viewPos) { - d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position()); - d->fixupPosition(); - } else if (d->trackedItem->endPosition() > viewPos + d->size() - && d->currentItem->endPosition() > viewPos + d->size()) { - qreal pos; - if (d->trackedItem->endPosition() < d->currentItem->endPosition()) { - pos = d->trackedItem->endPosition() - d->size(); - if (d->trackedItem->size() > d->size()) - pos = trackedPos; - } else { - pos = d->currentItem->endPosition() - d->size(); - if (d->currentItem->size() > d->size()) - pos = d->currentItem->position(); - } - d->setPosition(pos); - d->fixupPosition(); - } - } - } -} - -void QmlGraphicsListView::itemResized() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsItem *item = qobject_cast(sender()); - if (item) { - d->layout(); - d->fixupPosition(); - } -} - -void QmlGraphicsListView::itemsInserted(int modelIndex, int count) -{ - Q_D(QmlGraphicsListView); - d->updateUnrequestedIndexes(); - if (!d->visibleItems.count() || d->model->count() <= 1) { - d->layout(); - d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); - emit countChanged(); - return; - } - - if (!d->mapRangeFromModel(modelIndex, count)) { - int i = d->visibleItems.count() - 1; - while (i > 0 && d->visibleItems.at(i)->index == -1) - --i; - if (d->visibleItems.at(i)->index + 1 == modelIndex) { - // Special case of appending an item to the model. - modelIndex = d->visibleIndex + d->visibleItems.count(); - } else { - if (modelIndex + count - 1 < d->visibleIndex) { - // Insert before visible items - d->visibleIndex += count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxListItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index += count; - } - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) - d->currentItem->index = d->currentIndex; - } - d->layout(); - emit countChanged(); - return; - } - } - - // At least some of the added items will be visible - - int index = modelIndex - d->visibleIndex; - int to = d->buffer+d->position()+d->size()-1; - // index can be the next item past the end of the visible items list (i.e. appended) - int pos = index < d->visibleItems.count() ? d->visibleItems.at(index)->position() - : d->visibleItems.at(index-1)->endPosition()+d->spacing+1; - int initialPos = pos; - QList added; - for (int i = 0; i < count && pos <= to; ++i) { - FxListItem *item = d->createItem(modelIndex + i); - d->visibleItems.insert(index, item); - item->setPosition(pos); - added.append(item); - pos += item->size() + d->spacing; - ++index; - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) { - d->currentItem->index = d->currentIndex; - d->currentItem->setPosition(d->currentItem->position() + (pos - initialPos)); - } - } - if (pos > to) { - // We didn't insert all our new items, which means anything - // beyond the current index is not visible - remove it. - while (d->visibleItems.count() > index) - d->releaseItem(d->visibleItems.takeLast()); - } else { - // Update the indexes of the following visible items. - for (; index < d->visibleItems.count(); ++index) { - FxListItem *listItem = d->visibleItems.at(index); - if (listItem->item != d->currentItem->item) - listItem->setPosition(listItem->position() + (pos - initialPos)); - if (listItem->index != -1) - listItem->index += count; - } - } - // everything is in order now - emit add() signal - for (int j = 0; j < added.count(); ++j) - added.at(j)->attached->emitAdd(); - d->updateUnrequestedPositions(); - d->updateViewport(); - emit countChanged(); -} - -void QmlGraphicsListView::itemsRemoved(int modelIndex, int count) -{ - Q_D(QmlGraphicsListView); - d->updateUnrequestedIndexes(); - bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; - if (!d->mapRangeFromModel(modelIndex, count)) { - if (modelIndex + count - 1 < d->visibleIndex) { - // Items removed before our visible items. - d->visibleIndex -= count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxListItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index -= count; - } - } - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - d->layout(); - d->updateSections(); - emit countChanged(); - return; - } - - // Remove the items from the visible list, skipping anything already marked for removal - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (item->index == -1 || item->index < modelIndex) { - // already removed, or before removed items - ++it; - } else if (item->index >= modelIndex + count) { - // after removed items - item->index -= count; - ++it; - } else { - // removed item - item->attached->emitRemove(); - if (item->attached->delayRemove()) { - item->index = -1; - connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); - ++it; - } else { - it = d->visibleItems.erase(it); - d->releaseItem(item); - } - } - } - - // fix current - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->currentItem->attached->setIsCurrentItem(false); - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - - // update visibleIndex - for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { - if ((*it)->index != -1) { - d->visibleIndex = (*it)->index; - break; - } - } - - if (d->visibleItems.isEmpty()) { - d->visibleIndex = 0; - d->visiblePos = 0; - d->timeline.clear(); - d->setPosition(0); - if (d->model->count() == 0) - update(); - else - refill(); - } else { - // Correct the positioning of the items - d->layout(); - d->updateSections(); - } - - emit countChanged(); -} - -void QmlGraphicsListView::destroyRemoved() -{ - Q_D(QmlGraphicsListView); - for (QList::Iterator it = d->visibleItems.begin(); - it != d->visibleItems.end();) { - FxListItem *listItem = *it; - if (listItem->index == -1 && listItem->attached->delayRemove() == false) { - d->releaseItem(listItem); - it = d->visibleItems.erase(it); - } else { - ++it; - } - } - - // Correct the positioning of the items - d->layout(); -} - -void QmlGraphicsListView::itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsListView); - qreal firstItemPos = d->visibleItems.first()->position(); - QHash moved; - int moveBy = 0; - - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (item->index >= from && item->index < from + count) { - // take the items that are moving - item->index += (to-from); - moved.insert(item->index, item); - moveBy += item->size(); - it = d->visibleItems.erase(it); - } else { - // move everything after the moved items. - if (item->index > from && item->index != -1) - item->index -= count; - ++it; - } - } - - int remaining = count; - int endIndex = d->visibleIndex; - it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (remaining && item->index >= to && item->index < to + count) { - // place items in the target position, reusing any existing items - FxListItem *movedItem = moved.take(item->index); - if (!movedItem) - movedItem = d->createItem(item->index); - it = d->visibleItems.insert(it, movedItem); - ++it; - --remaining; - } else { - if (item->index != -1) { - if (item->index >= to) { - // update everything after the moved items. - item->index += count; - } - endIndex = item->index; - } - ++it; - } - } - - // If we have moved items to the end of the visible items - // then add any existing moved items that we have - while (FxListItem *item = moved.take(endIndex+1)) { - d->visibleItems.append(item); - ++endIndex; - } - - // Whatever moved items remain are no longer visible items. - while (moved.count()) - d->releaseItem(moved.take(moved.begin().key())); - - // Ensure we don't cause an ugly list scroll. - d->visibleItems.first()->setPosition(firstItemPos); - - d->layout(); -} - -void QmlGraphicsListView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsListView); - if (d->requestedIndex != index) { - item->setParentItem(viewport()); - d->unrequestedItems.insert(item, index); - if (d->orient == QmlGraphicsListView::Vertical) - item->setY(d->positionAt(index)); - else - item->setX(d->positionAt(index)); - } -} - -void QmlGraphicsListView::destroyingItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsListView); - d->unrequestedItems.remove(item); -} - -QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsListViewAttached::properties(obj); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) - -QT_END_NAMESPACE -#include "qfxlistview.moc" diff --git a/src/declarative/fx/qfxlistview.h b/src/declarative/fx/qfxlistview.h deleted file mode 100644 index 19e88c7..0000000 --- a/src/declarative/fx/qfxlistview.h +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXLISTVIEW_H -#define QFXLISTVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsVisualModel; -class QmlGraphicsListViewAttached; -class QmlGraphicsListViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - - Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) - Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) - Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) - - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) - Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) - - Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) - Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) - Q_ENUMS(HighlightRangeMode) - Q_ENUMS(Orientation) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsListView(QmlGraphicsItem *parent=0); - ~QmlGraphicsListView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; - HighlightRangeMode highlightRangeMode() const; - void setHighlightRangeMode(HighlightRangeMode mode); - - qreal preferredHighlightBegin() const; - void setPreferredHighlightBegin(qreal); - - qreal preferredHighlightEnd() const; - void setPreferredHighlightEnd(qreal); - - qreal spacing() const; - void setSpacing(qreal spacing); - - enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; - Orientation orientation() const; - void setOrientation(Orientation); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - QString sectionExpression() const; - void setSectionExpression(const QString &); - QString currentSection() const; - - qreal highlightMoveSpeed() const; - void setHighlightMoveSpeed(qreal); - - qreal highlightResizeSpeed() const; - void setHighlightResizeSpeed(qreal); - - static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void incrementCurrentIndex(); - void decrementCurrentIndex(); - -Q_SIGNALS: - void countChanged(); - void spacingChanged(); - void orientationChanged(); - void currentIndexChanged(); - void currentSectionChanged(); - void sectionExpressionChanged(); - void highlightMoveSpeedChanged(); - void highlightResizeSpeedChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void refill(); - void trackedPositionChanged(); - void itemResized(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsListView) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxloader.cpp b/src/declarative/fx/qfxloader.cpp deleted file mode 100644 index af51282..0000000 --- a/src/declarative/fx/qfxloader.cpp +++ /dev/null @@ -1,390 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxloader_p.h" -#include - -QT_BEGIN_NAMESPACE - -QmlGraphicsLoaderPrivate::QmlGraphicsLoaderPrivate() -: item(0), component(0), ownComponent(false), resizeMode(QmlGraphicsLoader::SizeLoaderToItem) -{ -} - -QmlGraphicsLoaderPrivate::~QmlGraphicsLoaderPrivate() -{ -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QmlGraphicsLoader) - -/*! - \qmlclass Loader - \inherits Item - - \brief The Loader item allows dynamically loading an Item-based - subtree from a QML URL or Component. - - Loader instantiates an item from a component. The component to - instantiate may be specified directly by the \c sourceComponent - property, or loaded from a URL via the \c source property. - - It is also an effective means of delaying the creation of a component - until it is required: - \code - Loader { id: pageLoader } - Rectangle { - MouseRegion { anchors.fill: parent; onClicked: pageLoader.source = "Page1.qml" } - } - \endcode -*/ - -/*! - \internal - \class QmlGraphicsLoader - \qmlclass Loader - */ - -/*! - Create a new QmlGraphicsLoader instance. - */ -QmlGraphicsLoader::QmlGraphicsLoader(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsLoaderPrivate), parent) -{ -} - -/*! - Destroy the loader instance. - */ -QmlGraphicsLoader::~QmlGraphicsLoader() -{ -} - -/*! - \qmlproperty url Loader::source - This property holds the URL of the QML component to - instantiate. - - \sa status, progress -*/ -QUrl QmlGraphicsLoader::source() const -{ - Q_D(const QmlGraphicsLoader); - return d->source; -} - -void QmlGraphicsLoader::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsLoader); - if (d->source == url) - return; - - if (d->ownComponent) { - delete d->component; - d->component = 0; - } - delete d->item; - d->item = 0; - - d->source = url; - if (d->source.isEmpty()) { - emit sourceChanged(); - emit statusChanged(); - emit progressChanged(); - emit itemChanged(); - return; - } - - d->component = new QmlComponent(qmlEngine(this), d->source, this); - d->ownComponent = true; - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit statusChanged(); - emit progressChanged(); - emit sourceChanged(); - emit itemChanged(); - } -} - -/*! - \qmlproperty Component Loader::sourceComponent - The sourceComponent property holds the \l{Component} to instantiate. - - \qml - Item { - Component { - id: redSquare - Rectangle { color: "red"; width: 10; height: 10 } - } - - Loader { sourceComponent: redSquare } - Loader { sourceComponent: redSquare; x: 10 } - } - \endqml - - \sa source -*/ - -QmlComponent *QmlGraphicsLoader::sourceComponent() const -{ - Q_D(const QmlGraphicsLoader); - return d->component; -} - -void QmlGraphicsLoader::setSourceComponent(QmlComponent *comp) -{ - Q_D(QmlGraphicsLoader); - if (comp == d->component) - return; - - d->source = QUrl(); - if (d->ownComponent) { - delete d->component; - d->component = 0; - } - delete d->item; - d->item = 0; - - d->component = comp; - d->ownComponent = false; - if (!d->component) { - emit sourceChanged(); - emit statusChanged(); - emit progressChanged(); - emit itemChanged(); - return; - } - - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit progressChanged(); - emit sourceChanged(); - emit statusChanged(); - emit itemChanged(); - } -} - -void QmlGraphicsLoaderPrivate::_q_sourceLoaded() -{ - Q_Q(QmlGraphicsLoader); - - if (component) { - QmlContext *ctxt = new QmlContext(qmlContext(q)); - ctxt->addDefaultObject(q); - - if (!component->errors().isEmpty()) { - qWarning() << component->errors(); - emit q->sourceChanged(); - emit q->statusChanged(); - emit q->progressChanged(); - return; - } - - QObject *obj = component->create(ctxt); - if (obj) { - item = qobject_cast(obj); - if (item) { - item->setParentItem(q); -// item->setFocus(true); - QmlGraphicsItem *resizeItem = 0; - if (resizeMode == QmlGraphicsLoader::SizeLoaderToItem) - resizeItem = item; - else if (resizeMode == QmlGraphicsLoader::SizeItemToLoader) - resizeItem = q; - if (resizeItem) { - QObject::connect(resizeItem, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::connect(resizeItem, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } - _q_updateSize(); - } - } else { - delete obj; - source = QUrl(); - } - emit q->sourceChanged(); - emit q->statusChanged(); - emit q->progressChanged(); - emit q->itemChanged(); - } -} - -/*! - \qmlproperty enum Loader::status - - This property holds the status of QML loading. It can be one of: - \list - \o Null - no QML source has been set - \o Ready - the QML source has been loaded - \o Loading - the QML source is currently being loaded - \o Error - an error occurred while loading the QML source - \endlist - - \sa progress -*/ - -QmlGraphicsLoader::Status QmlGraphicsLoader::status() const -{ - Q_D(const QmlGraphicsLoader); - - if (d->component) - return static_cast(d->component->status()); - - if (d->item) - return Ready; - - return d->source.isEmpty() ? Null : Error; -} - -/*! - \qmlproperty real Loader::progress - - This property holds the progress of QML data loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ -qreal QmlGraphicsLoader::progress() const -{ - Q_D(const QmlGraphicsLoader); - - if (d->item) - return 1.0; - - if (d->component) - return d->component->progress(); - - return 0.0; -} - -/*! - \qmlproperty enum Loader::resizeMode - - This property determines how the Loader or item are resized: - \list - \o NoResize - no item will be resized - \o SizeLoaderToItem - the Loader will be sized to the size of the item, unless the size of the Loader has been otherwise specified. - \o SizeItemToLoader - the item will be sized to the size of the Loader. - \endlist - - The default resizeMode is SizeLoaderToItem. -*/ -QmlGraphicsLoader::ResizeMode QmlGraphicsLoader::resizeMode() const -{ - Q_D(const QmlGraphicsLoader); - return d->resizeMode; -} - -void QmlGraphicsLoader::setResizeMode(ResizeMode mode) -{ - Q_D(QmlGraphicsLoader); - if (mode == d->resizeMode) - return; - - if (d->item) { - QmlGraphicsItem *resizeItem = 0; - if (d->resizeMode == SizeLoaderToItem) - resizeItem = d->item; - else if (d->resizeMode == SizeItemToLoader) - resizeItem = this; - if (resizeItem) { - disconnect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); - disconnect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); - } - } - - d->resizeMode = mode; - - if (d->item) { - QmlGraphicsItem *resizeItem = 0; - if (d->resizeMode == SizeLoaderToItem) - resizeItem = d->item; - else if (d->resizeMode == SizeItemToLoader) - resizeItem = this; - if (resizeItem) { - connect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); - connect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); - } - - d->_q_updateSize(); - } -} - -void QmlGraphicsLoaderPrivate::_q_updateSize() -{ - Q_Q(QmlGraphicsLoader); - if (!item) - return; - switch (resizeMode) { - case QmlGraphicsLoader::SizeLoaderToItem: - q->setImplicitWidth(item->width()); - q->setImplicitHeight(item->height()); - break; - case QmlGraphicsLoader::SizeItemToLoader: - item->setWidth(q->width()); - item->setHeight(q->height()); - break; - default: - break; - } -} - -/*! - \qmlproperty Item Loader::item - This property holds the top-level item created from source. -*/ -QmlGraphicsItem *QmlGraphicsLoader::item() const -{ - Q_D(const QmlGraphicsLoader); - return d->item; -} - -QT_END_NAMESPACE - -#include "moc_qfxloader.cpp" diff --git a/src/declarative/fx/qfxloader.h b/src/declarative/fx/qfxloader.h deleted file mode 100644 index b838ed0..0000000 --- a/src/declarative/fx/qfxloader.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXLOADER_H -#define QFXLOADER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - Q_ENUMS(ResizeMode) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) - Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) - Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - //### sourceItem - -public: - QmlGraphicsLoader(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsLoader(); - - QUrl source() const; - void setSource(const QUrl &); - - QmlComponent *sourceComponent() const; - void setSourceComponent(QmlComponent *); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; - ResizeMode resizeMode() const; - void setResizeMode(ResizeMode mode); - - QmlGraphicsItem *item() const; - -Q_SIGNALS: - void itemChanged(); - void sourceChanged(); - void statusChanged(); - void progressChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsLoader) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) - Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLoader) - -QT_END_HEADER - -#endif // QFXLOADER_H diff --git a/src/declarative/fx/qfxloader_p.h b/src/declarative/fx/qfxloader_p.h deleted file mode 100644 index 336c884..0000000 --- a/src/declarative/fx/qfxloader_p.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXLOADER_P_H -#define QFXLOADER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem_p.h" -#include "qfxloader.h" - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsLoader) - -public: - QmlGraphicsLoaderPrivate(); - ~QmlGraphicsLoaderPrivate(); - - QUrl source; - QmlGraphicsItem *item; - QmlComponent *component; - bool ownComponent; - QmlGraphicsLoader::ResizeMode resizeMode; - - void _q_sourceLoaded(); - void _q_updateSize(); -}; - -QT_END_NAMESPACE - -#endif // QFXLOADER_P_H diff --git a/src/declarative/fx/qfxmouseregion.cpp b/src/declarative/fx/qfxmouseregion.cpp deleted file mode 100644 index 8acf32c..0000000 --- a/src/declarative/fx/qfxmouseregion.cpp +++ /dev/null @@ -1,649 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxmouseregion.h" -#include "qfxmouseregion_p.h" -#include "qfxevents_p.h" -#include - - -QT_BEGIN_NAMESPACE -static const qreal DragThreshold = 5; -static const int PressAndHoldDelay = 800; - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QmlGraphicsDrag) -QmlGraphicsDrag::QmlGraphicsDrag(QObject *parent) -: QObject(parent), _target(0), _axis(XandYAxis), _xmin(0), _xmax(0), _ymin(0), _ymax(0) -{ -} - -QmlGraphicsDrag::~QmlGraphicsDrag() -{ -} - -QmlGraphicsItem *QmlGraphicsDrag::target() const -{ - return _target; -} - -void QmlGraphicsDrag::setTarget(QmlGraphicsItem *t) -{ - _target = t; -} - -QmlGraphicsDrag::Axis QmlGraphicsDrag::axis() const -{ - return _axis; -} - -void QmlGraphicsDrag::setAxis(QmlGraphicsDrag::Axis a) -{ - _axis = a; -} - -qreal QmlGraphicsDrag::xmin() const -{ - return _xmin; -} - -void QmlGraphicsDrag::setXmin(qreal m) -{ - _xmin = m; -} - -qreal QmlGraphicsDrag::xmax() const -{ - return _xmax; -} - -void QmlGraphicsDrag::setXmax(qreal m) -{ - _xmax = m; -} - -qreal QmlGraphicsDrag::ymin() const -{ - return _ymin; -} - -void QmlGraphicsDrag::setYmin(qreal m) -{ - _ymin = m; -} - -qreal QmlGraphicsDrag::ymax() const -{ - return _ymax; -} - -void QmlGraphicsDrag::setYmax(qreal m) -{ - _ymax = m; -} - -/*! - \qmlclass MouseRegion - \brief The MouseRegion item enables simple mouse handling. - \inherits Item - - A MouseRegion is typically used in conjunction with a visible item, - where the MouseRegion effectively 'proxies' mouse handling for that - item. For example, we can put a MouseRegion in a Rectangle that changes - the Rectangle color to red when clicked: - \snippet doc/src/snippets/declarative/mouseregion.qml 0 - - Many MouseRegion signals pass a \l {MouseEvent}{mouse} parameter that contains - additional information about the mouse event, such as the position, button, - and any key modifiers. - - Below we have the previous - example extended so as to give a different color when you right click. - \snippet doc/src/snippets/declarative/mouseregion.qml 1 - - For basic key handling, see the \l {Keys}{Keys attached property}. - - MouseRegion is an invisible item: it is never painted. - - \sa MouseEvent -*/ - -/*! - \qmlsignal MouseRegion::onEntered - - This handler is called when the mouse enters the mouse region. -*/ - -/*! - \qmlsignal MouseRegion::onExited - - This handler is called when the mouse exists the mouse region. -*/ - -/*! - \qmlsignal MouseRegion::onPositionChanged(mouse) - - This handler is called when the mouse position changes. - - The \l {MouseEvent}{mouse} parameter provides information about the mouse, including the x and y - position, and any buttons currently pressed. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onClicked(mouse) - - This handler is called when there is a click. A click is defined as a press followed by a release, - both inside the MouseRegion (pressing, moving outside the MouseRegion, and then moving back inside and - releasing is also considered a click). - - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onPressed(mouse) - - This handler is called when there is a press. - The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y - position and which button was pressed. - - The \e accepted property of the MouseEvent parameter determines whether this MouseRegion - will handle the press and all future mouse events until release. The default is to accept - the event and not allow other MouseRegions beneath this one to handle the event. If \e accepted - is set to false, no further events will be sent to this MouseRegion until the button is next - pressed. -*/ - -/*! - \qmlsignal MouseRegion::onReleased(mouse) - - This handler is called when there is a release. - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onPressAndHold(mouse) - - This handler is called when there is a long press (currently 800ms). - The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y - position of the press, and which button is pressed. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onDoubleClicked(mouse) - - This handler is called when there is a double-click (a press followed by a release followed by a press). - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QmlGraphicsMouseRegion) - -/*! - \internal - \class QmlGraphicsMouseRegion - \brief The QmlGraphicsMouseRegion class provides a simple mouse handling abstraction for use within Qml. - - \ingroup group_coreitems - - All QmlGraphicsItem derived classes can do mouse handling but the QmlGraphicsMouseRegion class exposes mouse - handling data as properties and tracks flicking and dragging of the mouse. - - A QmlGraphicsMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. - */ -QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsMouseRegionPrivate), parent) -{ - Q_D(QmlGraphicsMouseRegion); - d->init(); -} - -QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsMouseRegion); - d->init(); -} - -QmlGraphicsMouseRegion::~QmlGraphicsMouseRegion() -{ -} - -/*! - \qmlproperty real MouseRegion::mouseX - \qmlproperty real MouseRegion::mouseY - These properties hold the coordinates of the mouse. - - If the hoverEnabled property is false then these properties will only be valid - while a button is pressed, and will remain valid as long as the button is held - even if the mouse is moved outside the region. - - If hoverEnabled is true then these properties will be valid: - \list - \i when no button is pressed, but the mouse is within the MouseRegion (containsMouse is true). - \i if a button is pressed and held, even if it has since moved out of the region. - \endlist - - The coordinates are relative to the MouseRegion. -*/ -qreal QmlGraphicsMouseRegion::mouseX() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastPos.x(); -} - -qreal QmlGraphicsMouseRegion::mouseY() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastPos.y(); -} - -/*! - \qmlproperty bool MouseRegion::enabled - This property holds whether the item accepts mouse events. -*/ -bool QmlGraphicsMouseRegion::isEnabled() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->absorb; -} - -void QmlGraphicsMouseRegion::setEnabled(bool a) -{ - Q_D(QmlGraphicsMouseRegion); - if (a != d->absorb) { - d->absorb = a; - emit enabledChanged(); - } -} -/*! - \qmlproperty MouseButtons MouseRegion::pressedButtons - This property holds the mouse buttons currently pressed. - - It contains a bitwise combination of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist - - The code below displays "right" when the right mouse buttons is pressed: - \code - Text { - text: mr.pressedButtons & Qt.RightButton ? "right" : "" - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - MouseRegion { - id: mr - acceptedButtons: Qt.LeftButton | Qt.RightButton - anchors.fill: parent - } - } - \endcode - - \sa acceptedButtons -*/ -Qt::MouseButtons QmlGraphicsMouseRegion::pressedButtons() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastButtons; -} - -void QmlGraphicsMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - d->moved = false; - if (!d->absorb) - QmlGraphicsItem::mousePressEvent(event); - else { - d->longPress = false; - d->saveEvent(event); - d->dragX = drag()->axis() & QmlGraphicsDrag::XAxis; - d->dragY = drag()->axis() & QmlGraphicsDrag::YAxis; - d->dragged = false; - setHovered(true); - d->start = event->pos(); - d->startScene = event->scenePos(); - // we should only start timer if pressAndHold is connected to. - if (d->isConnected("pressAndHold(QmlGraphicsMouseEvent*)")) - d->pressAndHoldTimer.start(PressAndHoldDelay, this); - setKeepMouseGrab(false); - event->setAccepted(setPressed(true)); - } -} - -void QmlGraphicsMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseMoveEvent(event); - return; - } - - d->saveEvent(event); - - // ### we should skip this if these signals aren't used - // ### can GV handle this for us? - bool contains = boundingRect().contains(d->lastPos); - if (d->hovered && !contains) - setHovered(false); - else if (!d->hovered && contains) - setHovered(true); - - if (drag()->target()) { - if (!d->moved) { - if (d->dragX) d->startX = drag()->target()->x(); - if (d->dragY) d->startY = drag()->target()->y(); - } - - QPointF startLocalPos; - QPointF curLocalPos; - if (drag()->target()->parent()) { - startLocalPos = drag()->target()->parentItem()->mapFromScene(d->startScene); - curLocalPos = drag()->target()->parentItem()->mapFromScene(event->scenePos()); - } else { - startLocalPos = d->startScene; - curLocalPos = event->scenePos(); - } - - qreal dx = qAbs(curLocalPos.x() - startLocalPos.x()); - qreal dy = qAbs(curLocalPos.y() - startLocalPos.y()); - if ((d->dragX && !(dx < DragThreshold)) || (d->dragY && !(dy < DragThreshold))) - d->dragged = true; - if (!keepMouseGrab()) { - if ((!d->dragY && dy < DragThreshold && d->dragX && dx > DragThreshold) - || (!d->dragX && dx < DragThreshold && d->dragY && dy > DragThreshold) - || (d->dragX && d->dragY)) { - setKeepMouseGrab(true); - } - } - - if (d->dragX) { - qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX; - if (x < drag()->xmin()) - x = drag()->xmin(); - else if (x > drag()->xmax()) - x = drag()->xmax(); - drag()->target()->setX(x); - } - if (d->dragY) { - qreal y = (curLocalPos.y() - startLocalPos.y()) + d->startY; - if (y < drag()->ymin()) - y = drag()->ymin(); - else if (y > drag()->ymax()) - y = drag()->ymax(); - drag()->target()->setY(y); - } - } - d->moved = true; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit positionChanged(&me); -} - - -void QmlGraphicsMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseReleaseEvent(event); - } else { - d->saveEvent(event); - setPressed(false); - // If we don't accept hover, we need to reset containsMouse. - if (!acceptHoverEvents()) - setHovered(false); - setKeepMouseGrab(false); - } -} - -void QmlGraphicsMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseDoubleClickEvent(event); - } else { - QmlGraphicsItem::mouseDoubleClickEvent(event); - if (event->isAccepted()) { - // Only deliver the event if we have accepted the press. - d->saveEvent(event); - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); - emit this->doubleClicked(&me); - } - } -} - -void QmlGraphicsMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) - QmlGraphicsItem::hoverEnterEvent(event); - else - setHovered(true); -} - -void QmlGraphicsMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::hoverEnterEvent(event); - } else { - d->lastPos = event->pos(); - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit positionChanged(&me); - } -} - -void QmlGraphicsMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) - QmlGraphicsItem::hoverLeaveEvent(event); - else - setHovered(false); -} - -bool QmlGraphicsMouseRegion::sceneEvent(QEvent *event) -{ - bool rv = QmlGraphicsItem::sceneEvent(event); - if (event->type() == QEvent::UngrabMouse) { - Q_D(QmlGraphicsMouseRegion); - if (d->pressed) { - // if our mouse grab has been removed (probably by Flickable), fix our - // state - d->pressed = false; - setKeepMouseGrab(false); - emit pressedChanged(); - //emit hoveredChanged(); - } - } - return rv; -} - -void QmlGraphicsMouseRegion::timerEvent(QTimerEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (event->timerId() == d->pressAndHoldTimer.timerId()) { - d->pressAndHoldTimer.stop(); - if (d->pressed && d->dragged == false && d->hovered == true) { - d->longPress = true; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit pressAndHold(&me); - } - } -} - -/*! - \qmlproperty bool MouseRegion::hoverEnabled - This property holds whether hover events are handled. - - By default, mouse events are only handled in response to a button event, or when a button is - pressed. Hover enables handling of all mouse events even when no mouse button is - pressed. - - This property affects the containsMouse property and the onEntered, onExited and onPositionChanged signals. -*/ - -/*! - \qmlproperty bool MouseRegion::containsMouse - This property holds whether the mouse is currently inside the mouse region. - - \warning This property is not updated if the region moves under the mouse: \e containsMouse will not change. - In addition, if hoverEnabled is false, containsMouse will only be valid when the mouse is pressed. -*/ -bool QmlGraphicsMouseRegion::hovered() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->hovered; -} - -/*! - \qmlproperty bool MouseRegion::pressed - This property holds whether the mouse region is currently pressed. -*/ -bool QmlGraphicsMouseRegion::pressed() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->pressed; -} - -void QmlGraphicsMouseRegion::setHovered(bool h) -{ - Q_D(QmlGraphicsMouseRegion); - if (d->hovered != h) { - d->hovered = h; - emit hoveredChanged(); - d->hovered ? emit entered() : emit exited(); - } -} - -/*! - \qmlproperty Qt::MouseButtons MouseRegion::acceptedButtons - This property holds the mouse buttons that the mouse region reacts to. - - The available buttons are: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MiddleButton - \endlist - - To accept more than one button the flags can be combined with the - "|" (or) operator: - - \code - MouseRegion { acceptedButtons: Qt.LeftButton | Qt.RightButton } - \endcode - - The default is to accept the Left button. -*/ -Qt::MouseButtons QmlGraphicsMouseRegion::acceptedButtons() const -{ - return acceptedMouseButtons(); -} - -void QmlGraphicsMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) -{ - if (buttons != acceptedMouseButtons()) { - setAcceptedMouseButtons(buttons); - emit acceptedButtonsChanged(); - } -} - -bool QmlGraphicsMouseRegion::setPressed(bool p) -{ - Q_D(QmlGraphicsMouseRegion); - bool isclick = d->pressed == true && p == false && d->dragged == false && d->hovered == true; - - if (d->pressed != p) { - d->pressed = p; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); - if (d->pressed) { - emit positionChanged(&me); - emit pressed(&me); - } else { - emit released(&me); - if (isclick) - emit clicked(&me); - } - - emit pressedChanged(); - return me.isAccepted(); - } - return false; -} - -QmlGraphicsDrag *QmlGraphicsMouseRegion::drag() -{ - Q_D(QmlGraphicsMouseRegion); - return &(d->drag); -} - -/*! - \qmlproperty Item MouseRegion::drag.target - \qmlproperty Axis MouseRegion::drag.axis - \qmlproperty real MouseRegion::drag.minimumX - \qmlproperty real MouseRegion::drag.maximumX - \qmlproperty real MouseRegion::drag.minimumY - \qmlproperty real MouseRegion::drag.maximumY - - drag provides a convenient way to make an item draggable. - - \list - \i \c target specifies the item to drag. - \i \c axis specifies whether dragging can be done horizontally (XAxis), vertically (YAxis), or both (XandYAxis) - \i the minimum and maximum properties limit how far the target can be dragged along the corresponding axes. - \endlist - - The following example uses drag to reduce the opacity of an image as it moves to the right: - \snippet doc/src/snippets/declarative/drag.qml 0 -*/ - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxmouseregion.h b/src/declarative/fx/qfxmouseregion.h deleted file mode 100644 index 41c3d0e..0000000 --- a/src/declarative/fx/qfxmouseregion.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXMOUSEREGION_H -#define QFXMOUSEREGION_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject -{ - Q_OBJECT - - Q_ENUMS(Axis) - Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) - Q_PROPERTY(Axis axis READ axis WRITE setAxis) - Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) - Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) - Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) - Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) - //### consider drag and drop - -public: - QmlGraphicsDrag(QObject *parent=0); - ~QmlGraphicsDrag(); - - QmlGraphicsItem *target() const; - void setTarget(QmlGraphicsItem *); - - enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; - Axis axis() const; - void setAxis(Axis); - - qreal xmin() const; - void setXmin(qreal); - qreal xmax() const; - void setXmax(qreal); - qreal ymin() const; - void setYmin(qreal); - qreal ymax() const; - void setYmax(qreal); - -private: - QmlGraphicsItem *_target; - Axis _axis; - qreal _xmin; - qreal _xmax; - qreal _ymin; - qreal _ymax; - Q_DISABLE_COPY(QmlGraphicsDrag) -}; - -class QmlGraphicsMouseEvent; -class QmlGraphicsMouseRegionPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) - Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) - Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) - Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) - Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) - Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) - Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) - Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? - -public: - QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); - ~QmlGraphicsMouseRegion(); - - qreal mouseX() const; - qreal mouseY() const; - - bool isEnabled() const; - void setEnabled(bool); - - bool hovered() const; - bool pressed() const; - - Qt::MouseButtons pressedButtons() const; - - Qt::MouseButtons acceptedButtons() const; - void setAcceptedButtons(Qt::MouseButtons buttons); - - QmlGraphicsDrag *drag(); - -Q_SIGNALS: - void hoveredChanged(); - void pressedChanged(); - void enabledChanged(); - void acceptedButtonsChanged(); - void positionChanged(QmlGraphicsMouseEvent *mouse); - - void pressed(QmlGraphicsMouseEvent *mouse); - void pressAndHold(QmlGraphicsMouseEvent *mouse); - void released(QmlGraphicsMouseEvent *mouse); - void clicked(QmlGraphicsMouseEvent *mouse); - void doubleClicked(QmlGraphicsMouseEvent *mouse); - void entered(); - void exited(); - -protected: - void setHovered(bool); - bool setPressed(bool); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void hoverEnterEvent(QGraphicsSceneHoverEvent *event); - void hoverMoveEvent(QGraphicsSceneHoverEvent *event); - void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); - bool sceneEvent(QEvent *); - void timerEvent(QTimerEvent *event); - -private: - void handlePress(); - void handleRelease(); - -protected: - QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsMouseRegion) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsDrag) -QML_DECLARE_TYPE(QmlGraphicsMouseRegion) - -QT_END_HEADER - -#endif // QFXMOUSEREGION_H diff --git a/src/declarative/fx/qfxmouseregion_p.h b/src/declarative/fx/qfxmouseregion_p.h deleted file mode 100644 index 66efb6f..0000000 --- a/src/declarative/fx/qfxmouseregion_p.h +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXMOUSEREGION_P_H -#define QFXMOUSEREGION_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qbasictimer.h" -#include "qgraphicssceneevent.h" -#include "qfxitem_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) - -public: - QmlGraphicsMouseRegionPrivate() - : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) - { - } - - void init() - { - Q_Q(QmlGraphicsMouseRegion); - q->setAcceptedMouseButtons(Qt::LeftButton); - } - - void saveEvent(QGraphicsSceneMouseEvent *event) { - lastPos = event->pos(); - lastButton = event->button(); - lastButtons = event->buttons(); - lastModifiers = event->modifiers(); - } - - bool isConnected(const char *signal) { - Q_Q(QmlGraphicsMouseRegion); - int idx = QObjectPrivate::get(q)->signalIndex(signal); - return QObjectPrivate::get(q)->isSignalConnected(idx); - } - - bool absorb : 1; - bool hovered : 1; - bool pressed : 1; - bool longPress : 1; - bool moved : 1; - bool dragX : 1; - bool dragY : 1; - bool dragged : 1; - QmlGraphicsDrag drag; - QPointF start; - QPointF startScene; - qreal startX; - qreal startY; - QPointF lastPos; - Qt::MouseButton lastButton; - Qt::MouseButtons lastButtons; - Qt::KeyboardModifiers lastModifiers; - QBasicTimer pressAndHoldTimer; -}; - -QT_END_NAMESPACE - -#endif // QFXMOUSEREGION_P_H diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp deleted file mode 100644 index 24d9602..0000000 --- a/src/declarative/fx/qfxpainteditem.cpp +++ /dev/null @@ -1,387 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxpainteditem.h" -#include "qfxpainteditem_p.h" - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \class QmlGraphicsPaintedItem - \brief The QmlGraphicsPaintedItem class is an abstract base class for QmlView items that want cached painting. - \internal - - This is a convenience class for implementing items that paint their contents - using a QPainter. The contents of the item are cached behind the scenes. - The dirtyCache() function should be called if the contents change to - ensure the cache is refreshed the next time painting occurs. - - To subclass QmlGraphicsPaintedItem, you must reimplement drawContents() to draw - the contents of the item. -*/ - -/*! - \fn void QmlGraphicsPaintedItem::drawContents(QPainter *painter, const QRect &rect) - - This function is called when the cache needs to be refreshed. When - sub-classing QmlGraphicsPaintedItem this function should be implemented so as to - paint the contents of the item using the given \a painter for the - area of the contents specified by \a rect. -*/ - -/*! - \property QmlGraphicsPaintedItem::contentsSize - \brief The size of the contents - - The contents size is the size of the item in regards to how it is painted - using the drawContents() function. This is distinct from the size of the - item in regards to height() and width(). -*/ - -// XXX bug in WebKit - can call repaintRequested and other cache-changing functions from within render! -static int inpaint=0; -static int inpaint_clearcache=0; - -/*! - Marks areas of the cache that intersect with the given \a rect as dirty and - in need of being refreshed. - - \sa clearCache() -*/ -void QmlGraphicsPaintedItem::dirtyCache(const QRect& rect) -{ - Q_D(QmlGraphicsPaintedItem); - for (int i=0; i < d->imagecache.count(); ) { - QmlGraphicsPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; - QRect isect = (c->area & rect) | c->dirty; - if (isect == c->area && !inpaint) { - delete d->imagecache.takeAt(i); - } else { - c->dirty = isect; - ++i; - } - } -} - -/*! - Marks the entirety of the contents cache as dirty. - - \sa dirtyCache() -*/ -void QmlGraphicsPaintedItem::clearCache() -{ - if (inpaint) { - inpaint_clearcache=1; - return; - } - Q_D(QmlGraphicsPaintedItem); - qDeleteAll(d->imagecache); - d->imagecache.clear(); -} - -/*! - Returns the size of the contents. - - \sa setContentsSize() -*/ -QSize QmlGraphicsPaintedItem::contentsSize() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->contentsSize; -} - -/*! - Sets the size of the contents to the given \a size. - - \sa contentsSize() -*/ -void QmlGraphicsPaintedItem::setContentsSize(const QSize &size) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->contentsSize == size) return; - d->contentsSize = size; - clearCache(); - update(); -} - -/*! - Constructs a new QmlGraphicsPaintedItem with the given \a parent. -*/ -QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsPaintedItemPrivate), parent) -{ - init(); -} - -/*! - \internal - Constructs a new QmlGraphicsPaintedItem with the given \a parent and - initialized private data member \a dd. -*/ -QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - init(); -} - -/*! - Destroys the image item. -*/ -QmlGraphicsPaintedItem::~QmlGraphicsPaintedItem() -{ - clearCache(); -} - -/*! - \internal -*/ -void QmlGraphicsPaintedItem::init() -{ - connect(this,SIGNAL(widthChanged()),this,SLOT(clearCache())); - connect(this,SIGNAL(heightChanged()),this,SLOT(clearCache())); - connect(this,SIGNAL(visibleChanged()),this,SLOT(clearCache())); -} - -void QmlGraphicsPaintedItem::setCacheFrozen(bool frozen) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->cachefrozen == frozen) - return; - d->cachefrozen = frozen; - // XXX clear cache? -} - -/*! - \reimp -*/ -void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsPaintedItem); - const QRect content(QPoint(0,0),d->contentsSize); - if (content.width() <= 0 || content.height() <= 0) - return; - - ++inpaint; - - QRectF clipf = p->clipRegion().boundingRect(); - if (clipf.isEmpty()) - clipf = mapToScene(content).boundingRect(); // ### Inefficient: Maps toScene and then fromScene - else - clipf = mapToScene(clipf).boundingRect(); - - const QRect clip = mapFromScene(clipf).boundingRect().toRect(); - - QRegion topaint(clip); - topaint &= content; - QRegion uncached(content); - - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - if (topaint.contains(area)) { - QRectF target(area.x(), area.y(), area.width(), area.height()); - if (!d->cachefrozen) { - if (!d->imagecache[i]->dirty.isNull() && topaint.contains(d->imagecache[i]->dirty)) { - QPainter qp(&d->imagecache[i]->image); - qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); - qp.translate(-area.x(), -area.y()); - if (d->fillColor.isValid()){ - if(d->fillColor.alpha() < 255){ - // ### Might not work outside of raster paintengine - QPainter::CompositionMode prev = qp.compositionMode(); - qp.setCompositionMode(QPainter::CompositionMode_Source); - qp.fillRect(d->imagecache[i]->dirty,d->fillColor); - qp.setCompositionMode(prev); - }else{ - qp.fillRect(d->imagecache[i]->dirty,d->fillColor); - } - } - qp.setClipRect(d->imagecache[i]->dirty); - drawContents(&qp, d->imagecache[i]->dirty); - d->imagecache[i]->dirty = QRect(); - } - } - p->drawPixmap(target.toRect(), d->imagecache[i]->image); - topaint -= area; - d->imagecache[i]->age=0; - } else { - d->imagecache[i]->age++; - } - cachesize += area.width()*area.height(); - uncached -= area; - } - - if (!topaint.isEmpty()) { - if (!d->cachefrozen) { - // Find a sensible larger area, otherwise will paint lots of tiny images. - QRect biggerrect = topaint.boundingRect().adjusted(-64,-64,128,128); - cachesize += biggerrect.width() * biggerrect.height(); - while (d->imagecache.count() && cachesize > d->max_imagecache_size) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - uncached += d->imagecache[oldest]->area; - d->imagecache.removeAt(oldest); - } - const QRegion bigger = QRegion(biggerrect) & uncached; - const QVector rects = bigger.rects(); - for (int i = 0; i < rects.count(); ++i) { - const QRect &r = rects.at(i); - QPixmap img(r.size()); - if (d->fillColor.isValid()) - img.fill(d->fillColor); - { - QPainter qp(&img); - qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - qp.translate(-r.x(),-r.y()); - drawContents(&qp, r); - } - QmlGraphicsPaintedItemPrivate::ImageCacheItem *newitem = new QmlGraphicsPaintedItemPrivate::ImageCacheItem; - newitem->area = r; - newitem->image = img; - d->imagecache.append(newitem); - p->drawPixmap(r, newitem->image); - } - } else { - const QVector rects = uncached.rects(); - for (int i = 0; i < rects.count(); ++i) - p->fillRect(rects.at(i), Qt::lightGray); - } - } - - if (inpaint_clearcache) { - clearCache(); - inpaint_clearcache = 0; - } - - --inpaint; -} - -/*! - \qmlproperty int PaintedItem::cacheSize - - This property holds the maximum number of pixels of image cache to - allow. The default is 0.1 megapixels. The cache will not be larger - than the (unscaled) size of the item. -*/ - -/*! - \property QmlGraphicsPaintedItem::cacheSize - - The maximum number of pixels of image cache to allow. The default - is 0.1 megapixels. The cache will not be larger than the (unscaled) - size of the QmlGraphicsPaintedItem. -*/ -int QmlGraphicsPaintedItem::cacheSize() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->max_imagecache_size; -} - -void QmlGraphicsPaintedItem::setCacheSize(int pixels) -{ - Q_D(QmlGraphicsPaintedItem); - if (pixels < d->max_imagecache_size) { - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - cachesize += area.width()*area.height(); - } - while (d->imagecache.count() && cachesize > pixels) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - d->imagecache.removeAt(oldest); - } - } - d->max_imagecache_size = pixels; -} - -/*! - \property QmlGraphicsPaintedItem::fillColor - - The color to be used to fill the item prior to calling drawContents(). - By default, this is Qt::transparent. - - Performance improvements can be achieved if subclasses call this with either an - invalid color (QColor()), or an appropriate solid color. -*/ -void QmlGraphicsPaintedItem::setFillColor(const QColor& c) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->fillColor == c) - return; - d->fillColor = c; - emit fillColorChanged(); - update(); -} - -QColor QmlGraphicsPaintedItem::fillColor() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->fillColor; -} - - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxpainteditem.h b/src/declarative/fx/qfxpainteditem.h deleted file mode 100644 index 33f938c..0000000 --- a/src/declarative/fx/qfxpainteditem.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGEITEM_H -#define QFXIMAGEITEM_H - -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsPaintedItemPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) - Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) - Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) - -public: - QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsPaintedItem(); - - QSize contentsSize() const; - void setContentsSize(const QSize &); - - int cacheSize() const; - void setCacheSize(int pixels); - - QColor fillColor() const; - void setFillColor(const QColor&); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -protected: - QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); - - virtual void drawContents(QPainter *p, const QRect &) = 0; - - void setCacheFrozen(bool); - -Q_SIGNALS: - void fillColorChanged(); - -protected Q_SLOTS: - void dirtyCache(const QRect &); - void clearCache(); - -private: - void init(); - Q_DISABLE_COPY(QmlGraphicsPaintedItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPaintedItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxpainteditem_p.h b/src/declarative/fx/qfxpainteditem_p.h deleted file mode 100644 index cc7f697..0000000 --- a/src/declarative/fx/qfxpainteditem_p.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXIMAGEITEM_P_H -#define QFXIMAGEITEM_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) - -public: - QmlGraphicsPaintedItemPrivate() - : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) - { - } - - struct ImageCacheItem { - ImageCacheItem() : age(0) {} - ~ImageCacheItem() { } - int age; - QRect area; - QRect dirty; // one dirty area (allows optimization of common cases) - QPixmap image; - }; - - QList imagecache; - - int max_imagecache_size; - QSize contentsSize; - QColor fillColor; - bool cachefrozen; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxpath.cpp b/src/declarative/fx/qfxpath.cpp deleted file mode 100644 index a9bd233..0000000 --- a/src/declarative/fx/qfxpath.cpp +++ /dev/null @@ -1,839 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxpath.h" -#include "qfxpath_p.h" -#include -#include -#include - - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QmlGraphicsPath) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsPathElement) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsCurve) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QmlGraphicsPathAttribute) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QmlGraphicsPathPercent) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QmlGraphicsPathLine) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QmlGraphicsPathQuad) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QmlGraphicsPathCubic) - -/*! - \qmlclass PathElement - \brief PathElement is the base path type. - - This type is the base for all path types. It cannot - be instantiated. - - \sa Path, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPathElement - \ingroup group_utility -*/ - -/*! - \qmlclass Path QmlGraphicsPath - \brief A Path object defines a path for use by \l PathView. - - A Path is composed of one or more path segments - PathLine, PathQuad, - PathCubic. - - The spacing of the items along the Path can be adjusted via a - PathPercent object. - - PathAttribute allows named attributes with values to be defined - along the path. - - \sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPath - \ingroup group_utility - \brief The QmlGraphicsPath class defines a path. - \sa QmlGraphicsPathView -*/ -QmlGraphicsPath::QmlGraphicsPath(QObject *parent) - : QObject(*(new QmlGraphicsPathPrivate), parent) -{ -} - -QmlGraphicsPath::QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent) - : QObject(dd, parent) -{ -} - -QmlGraphicsPath::~QmlGraphicsPath() -{ -} - -/*! - \qmlproperty real Path::startX - \qmlproperty real Path::startY - This property holds the starting position of the path. -*/ -qreal QmlGraphicsPath::startX() const -{ - Q_D(const QmlGraphicsPath); - return d->startX; -} - -void QmlGraphicsPath::setStartX(qreal x) -{ - Q_D(QmlGraphicsPath); - d->startX = x; -} - -qreal QmlGraphicsPath::startY() const -{ - Q_D(const QmlGraphicsPath); - return d->startY; -} - -void QmlGraphicsPath::setStartY(qreal y) -{ - Q_D(QmlGraphicsPath); - d->startY = y; -} - -/*! - \qmlproperty list Path::pathElements - This property holds the objects composing the path. - - \default - - A path can contain the following path objects: - \list - \i \l PathLine - a straight line to a given position. - \i \l PathQuad - a quadratic Bezier curve to a given position with a control point. - \i \l PathCubic - a cubic Bezier curve to a given position with two control points. - \i \l PathAttribute - an attribute at a given position in the path. - \i \l PathPercent - a way to spread out items along various segments of the path. - \endlist - - \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 2 -*/ - -QList* QmlGraphicsPath::pathElements() -{ - Q_D(QmlGraphicsPath); - return &(d->_pathElements); -} - -void QmlGraphicsPath::interpolate(int idx, const QString &name, qreal value) -{ - Q_D(QmlGraphicsPath); - if (!idx) - return; - - qreal lastValue = 0; - qreal lastPercent = 0; - int search = idx - 1; - while(search >= 0) { - const AttributePoint &point = d->_attributePoints.at(search); - if (point.values.contains(name)) { - lastValue = point.values.value(name); - lastPercent = point.origpercent; - break; - } - --search; - } - - ++search; - - const AttributePoint &curPoint = d->_attributePoints.at(idx); - - for (int ii = search; ii < idx; ++ii) { - AttributePoint &point = d->_attributePoints[ii]; - - qreal val = lastValue + (value - lastValue) * (point.origpercent - lastPercent) / (curPoint.origpercent - lastPercent); - point.values.insert(name, val); - } -} - -void QmlGraphicsPath::endpoint(const QString &name) -{ - Q_D(QmlGraphicsPath); - const AttributePoint &first = d->_attributePoints.first(); - qreal val = first.values.value(name); - for (int ii = d->_attributePoints.count() - 1; ii >= 0; ii--) { - const AttributePoint &point = d->_attributePoints.at(ii); - if (point.values.contains(name)) { - for (int jj = ii + 1; jj < d->_attributePoints.count(); ++jj) { - AttributePoint &setPoint = d->_attributePoints[jj]; - setPoint.values.insert(name, val); - } - return; - } - } -} - -void QmlGraphicsPath::processPath() -{ - Q_D(QmlGraphicsPath); - - d->_pointCache.clear(); - d->_attributePoints.clear(); - d->_path = QPainterPath(); - - AttributePoint first; - for (int ii = 0; ii < d->_attributes.count(); ++ii) - first.values[d->_attributes.at(ii)] = 0; - d->_attributePoints << first; - - d->_path.moveTo(d->startX, d->startY); - - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { - if (QmlGraphicsCurve *curve = qobject_cast(pathElement)) { - curve->addToPath(d->_path); - AttributePoint p; - p.origpercent = d->_path.length(); - d->_attributePoints << p; - } else if (QmlGraphicsPathAttribute *attribute = qobject_cast(pathElement)) { - AttributePoint &point = d->_attributePoints.last(); - point.values[attribute->name()] = attribute->value(); - interpolate(d->_attributePoints.count() - 1, attribute->name(), attribute->value()); - } else if (QmlGraphicsPathPercent *percent = qobject_cast(pathElement)) { - AttributePoint &point = d->_attributePoints.last(); - point.values[QLatin1String("_qfx_percent")] = percent->value(); - interpolate(d->_attributePoints.count() - 1, QLatin1String("_qfx_percent"), percent->value()); - } - } - - // Fixup end points - const AttributePoint &last = d->_attributePoints.last(); - for (int ii = 0; ii < d->_attributes.count(); ++ii) { - if (!last.values.contains(d->_attributes.at(ii))) - endpoint(d->_attributes.at(ii)); - } - - // Adjust percent - qreal length = d->_path.length(); - qreal prevpercent = 0; - qreal prevorigpercent = 0; - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - const AttributePoint &point = d->_attributePoints.at(ii); - if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QmlGraphicsPathPercent - if ( ii > 0) { - qreal scale = (d->_attributePoints[ii].origpercent/length - prevorigpercent) / - (point.values.value(QLatin1String("_qfx_percent"))-prevpercent); - d->_attributePoints[ii].scale = scale; - } - d->_attributePoints[ii].origpercent /= length; - d->_attributePoints[ii].percent = point.values.value(QLatin1String("_qfx_percent")); - prevorigpercent = d->_attributePoints[ii].origpercent; - prevpercent = d->_attributePoints[ii].percent; - } else { - d->_attributePoints[ii].origpercent /= length; - d->_attributePoints[ii].percent = d->_attributePoints[ii].origpercent; - } - } - - emit changed(); -} - -void QmlGraphicsPath::componentComplete() -{ - Q_D(QmlGraphicsPath); - QSet attrs; - // First gather up all the attributes - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { - if (QmlGraphicsPathAttribute *attribute = - qobject_cast(pathElement)) - attrs.insert(attribute->name()); - } - d->_attributes = attrs.toList(); - - processPath(); - - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) - connect(pathElement, SIGNAL(changed()), this, SLOT(processPath())); -} - -QPainterPath QmlGraphicsPath::path() const -{ - Q_D(const QmlGraphicsPath); - return d->_path; -} - -QStringList QmlGraphicsPath::attributes() const -{ - Q_D(const QmlGraphicsPath); - return d->_attributes; -} -#include - -static inline QBezier nextBezier(const QPainterPath &path, int *from, qreal *bezLength) -{ - const int lastElement = path.elementCount() - 1; - for (int i=*from; i <= lastElement; ++i) { - const QPainterPath::Element &e = path.elementAt(i); - - switch (e.type) { - case QPainterPath::MoveToElement: - break; - case QPainterPath::LineToElement: - { - QLineF line(path.elementAt(i-1), e); - *bezLength = line.length(); - QPointF a = path.elementAt(i-1); - QPointF delta = e - a; - *from = i+1; - return QBezier::fromPoints(a, a + delta / 3, a + 2 * delta / 3, e); - } - case QPainterPath::CurveToElement: - { - QBezier b = QBezier::fromPoints(path.elementAt(i-1), - e, - path.elementAt(i+1), - path.elementAt(i+2)); - *bezLength = b.length(); - *from = i+3; - return b; - } - default: - break; - } - } - *from = lastElement; - *bezLength = 0; - return QBezier(); -} - -void QmlGraphicsPath::createPointCache() const -{ - Q_D(const QmlGraphicsPath); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer pc; -#endif - qreal pathLength = d->_path.length(); - const int points = int(pathLength*2); - const int lastElement = d->_path.elementCount() - 1; - d->_pointCache.resize(points+1); - - int currElement = 0; - qreal bezLength = 0; - QBezier currBez = nextBezier(d->_path, &currElement, &bezLength); - qreal currLength = bezLength; - qreal epc = currLength / pathLength; - - for (int i = 0; i < d->_pointCache.size(); i++) { - //find which set we are in - qreal prevPercent = 0; - qreal prevOrigPercent = 0; - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - qreal percent = qreal(i)/points; - const AttributePoint &point = d->_attributePoints.at(ii); - if (percent < point.percent || ii == d->_attributePoints.count() - 1) { //### || is special case for very last item - qreal elementPercent = (percent - prevPercent); - - qreal spc = prevOrigPercent + elementPercent * point.scale; - - while (spc > epc) { - if (currElement > lastElement) - break; - currBez = nextBezier(d->_path, &currElement, &bezLength); - if (bezLength == 0.0) { - currLength = pathLength; - epc = 1.0; - break; - } - currLength += bezLength; - epc = currLength / pathLength; - } - qreal realT = (pathLength * spc - (currLength - bezLength)) / bezLength; - d->_pointCache[i] = currBez.pointAt(qBound(qreal(0), realT, qreal(1))); - break; - } - prevOrigPercent = point.origpercent; - prevPercent = point.percent; - } - } -} - -QPointF QmlGraphicsPath::pointAt(qreal p) const -{ - Q_D(const QmlGraphicsPath); - if (d->_pointCache.isEmpty()) { - createPointCache(); - } - int idx = qRound(p*d->_pointCache.size()); - if (idx >= d->_pointCache.size()) - idx = d->_pointCache.size() - 1; - else if (idx < 0) - idx = 0; - return d->_pointCache.at(idx); -} - -qreal QmlGraphicsPath::attributeAt(const QString &name, qreal percent) const -{ - Q_D(const QmlGraphicsPath); - if (percent < 0 || percent > 1) - return 0; - - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - const AttributePoint &point = d->_attributePoints.at(ii); - - if (point.percent == percent) { - return point.values.value(name); - } else if (point.percent > percent) { - qreal lastValue = - ii?(d->_attributePoints.at(ii - 1).values.value(name)):0; - qreal lastPercent = - ii?(d->_attributePoints.at(ii - 1).percent):0; - qreal curValue = point.values.value(name); - qreal curPercent = point.percent; - - return lastValue + (curValue - lastValue) * (percent - lastPercent) / (curPercent - lastPercent); - } - } - - return 0; -} - -/****************************************************************************/ - -qreal QmlGraphicsCurve::x() const -{ - return _x; -} - -void QmlGraphicsCurve::setX(qreal x) -{ - if (_x != x) { - _x = x; - emit changed(); - } -} - -qreal QmlGraphicsCurve::y() const -{ - return _y; -} - -void QmlGraphicsCurve::setY(qreal y) -{ - if (_y != y) { - _y = y; - emit changed(); - } -} - -/****************************************************************************/ - -/*! - \qmlclass PathAttribute - \brief The PathAttribute allows setting an attribute at a given position in a Path. - - The PathAttribute object allows attibutes consisting of a name and - a value to be specified for the endpoints of path segments. The - attributes are exposed to the delegate as - \l{qmlintroduction.html#attached-properties} {Attached Properties}. - The value of an attribute at any particular point is interpolated - from the PathAttributes bounding the point. - - The example below shows a path with the items scaled to 30% with - opacity 50% at the top of the path and scaled 100% with opacity - 100% at the bottom. Note the use of the PathView.scale and - PathView.opacity attached properties to set the scale and opacity - of the delegate. - - \table - \row - \o \image declarative-pathattribute.png - \o - \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 0 - \endtable - - \sa Path -*/ - -/*! - \internal - \class QmlGraphicsPathAttribute - \ingroup group_utility - \brief The QmlGraphicsPathAttribute class allows to set the value of an attribute at a given position in the path. - - \sa QmlGraphicsPath -*/ - - -/*! - \qmlproperty string PathAttribute::name - the name of the attribute to change. -*/ - -/*! - the name of the attribute to change. -*/ - -QString QmlGraphicsPathAttribute::name() const -{ - return _name; -} - -void QmlGraphicsPathAttribute::setName(const QString &name) -{ - _name = name; -} - -/*! - \qmlproperty string PathAttribute::value - the new value of the attribute. -*/ - -/*! - the new value of the attribute. -*/ -qreal QmlGraphicsPathAttribute::value() const -{ - return _value; -} - -void QmlGraphicsPathAttribute::setValue(qreal value) -{ - if (_value != value) { - _value = value; - emit changed(); - } -} - -/****************************************************************************/ - -/*! - \qmlclass PathLine - \brief The PathLine defines a straight line. - - The example below creates a path consisting of a straight line from - 0,100 to 200,100: - - \qml - Path { - startX: 0; startY: 100 - PathLine { x: 200; y: 100 } - } - \endqml - - \sa Path, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPathLine - \ingroup group_utility - \brief The QmlGraphicsPathLine class defines a straight line. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlproperty real PathLine::x - \qmlproperty real PathLine::y - - Defines the end point of the line. -*/ - -void QmlGraphicsPathLine::addToPath(QPainterPath &path) -{ - path.lineTo(x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathQuad - \brief The PathQuad defines a quadratic Bezier curve with a control point. - - The following QML produces the path shown below: - \table - \row - \o \image declarative-pathquad.png - \o - \qml - Path { - startX: 0; startY: 0 - PathQuad x: 200; y: 0; controlX: 100; controlY: 150 } - } - \endqml - \endtable - - \sa Path, PathCubic, PathLine -*/ - -/*! - \internal - \class QmlGraphicsPathQuad - \ingroup group_utility - \brief The QmlGraphicsPathQuad class defines a quadratic Bezier curve with a control point. - - \sa QmlGraphicsPath -*/ - - -/*! - \qmlproperty real PathQuad::x - \qmlproperty real PathQuad::y - - Defines the end point of the curve. -*/ - -/*! - \qmlproperty real PathQuad::controlX - \qmlproperty real PathQuad::controlY - - Defines the position of the control point. -*/ - -/*! - the x position of the control point. -*/ -qreal QmlGraphicsPathQuad::controlX() const -{ - return _controlX; -} - -void QmlGraphicsPathQuad::setControlX(qreal x) -{ - if (_controlX != x) { - _controlX = x; - emit changed(); - } -} - - -/*! - the y position of the control point. -*/ -qreal QmlGraphicsPathQuad::controlY() const -{ - return _controlY; -} - -void QmlGraphicsPathQuad::setControlY(qreal y) -{ - if (_controlY != y) { - _controlY = y; - emit changed(); - } -} - -void QmlGraphicsPathQuad::addToPath(QPainterPath &path) -{ - path.quadTo(controlX(), controlY(), x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathCubic - \brief The PathCubic defines a cubic Bezier curve with two control points. - - The following QML produces the path shown below: - \table - \row - \o \image declarative-pathcubic.png - \o - \qml - Path { - startX: 20; startY: 0 - PathCubic { - x: 180; y: 0; control1X: -10; control1Y: 90 - control2X: 210; control2Y: 90 - } - } - \endqml - \endtable - - \sa Path, PathQuad, PathLine -*/ - -/*! - \internal - \class QmlGraphicsPathCubic - \ingroup group_utility - \brief The QmlGraphicsPathCubic class defines a cubic Bezier curve with two control points. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlproperty real PathCubic::x - \qmlproperty real PathCubic::y - - Defines the end point of the curve. -*/ - -/*! - \qmlproperty real PathCubic::control1X - \qmlproperty real PathCubic::control1Y - - Defines the position of the first control point. -*/ -qreal QmlGraphicsPathCubic::control1X() const -{ - return _control1X; -} - -void QmlGraphicsPathCubic::setControl1X(qreal x) -{ - if (_control1X != x) { - _control1X = x; - emit changed(); - } -} - -qreal QmlGraphicsPathCubic::control1Y() const -{ - return _control1Y; -} - -void QmlGraphicsPathCubic::setControl1Y(qreal y) -{ - if (_control1Y != y) { - _control1Y = y; - emit changed(); - } -} - -/*! - \qmlproperty real PathCubic::control2X - \qmlproperty real PathCubic::control2Y - - Defines the position of the second control point. -*/ -qreal QmlGraphicsPathCubic::control2X() const -{ - return _control2X; -} - -void QmlGraphicsPathCubic::setControl2X(qreal x) -{ - if (_control2X != x) { - _control2X = x; - emit changed(); - } -} - -qreal QmlGraphicsPathCubic::control2Y() const -{ - return _control2Y; -} - -void QmlGraphicsPathCubic::setControl2Y(qreal y) -{ - if (_control2Y != y) { - _control2Y = y; - emit changed(); - } -} - -void QmlGraphicsPathCubic::addToPath(QPainterPath &path) -{ - path.cubicTo(control1X(), control1Y(), control2X(), control2Y(), x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathPercent - \brief The PathPercent manipulates the way a path is interpreted. - - The examples below show the normal distrubution of items along a path - compared to a distribution which places 50% of the items along the - PathLine section of the path. - \table - \row - \o \image declarative-nopercent.png - \o - \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathLine { x: 150; y: 80 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } - } - \endqml - \row - \o \image declarative-percent.png - \o - \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathPercent { value: 0.25 } - PathLine { x: 150; y: 80 } - PathPercent { value: 0.75 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } - PathPercent { value: 1 } - } - \endqml - \endtable - - \sa Path -*/ - -/*! - \internal - \class QmlGraphicsPathPercent - \ingroup group_utility - \brief The QmlGraphicsPathPercent class manipulates the way a path is interpreted. - - QmlGraphicsPathPercent allows you to bunch up items (or spread out items) along various - segments of a QmlGraphicsPathView's path. - - \sa QmlGraphicsPath - -*/ - -qreal QmlGraphicsPathPercent::value() const -{ - return _value; -} - -void QmlGraphicsPathPercent::setValue(qreal value) -{ - _value = value; -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxpath.h b/src/declarative/fx/qfxpath.h deleted file mode 100644 index e724474..0000000 --- a/src/declarative/fx/qfxpath.h +++ /dev/null @@ -1,259 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPATH_H -#define QFXPATH_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject -{ - Q_OBJECT -public: - QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} -Q_SIGNALS: - void changed(); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) -public: - QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} - - - QString name() const; - void setName(const QString &name); - - qreal value() const; - void setValue(qreal value); - -private: - QString _name; - qreal _value; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) - Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) -public: - QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} - - qreal x() const; - void setX(qreal x); - - qreal y() const; - void setY(qreal y); - - virtual void addToPath(QPainterPath &) {} - -private: - qreal _x; - qreal _y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve -{ - Q_OBJECT -public: - QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} - - void addToPath(QPainterPath &path); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) - Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) -public: - QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} - - qreal controlX() const; - void setControlX(qreal x); - - qreal controlY() const; - void setControlY(qreal y); - - void addToPath(QPainterPath &path); - -private: - qreal _controlX; - qreal _controlY; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) - Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) - Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) - Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) -public: - QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} - - qreal control1X() const; - void setControl1X(qreal x); - - qreal control1Y() const; - void setControl1Y(qreal y); - - qreal control2X() const; - void setControl2X(qreal x); - - qreal control2Y() const; - void setControl2Y(qreal y); - - void addToPath(QPainterPath &path); - -private: - int _control1X; - int _control1Y; - int _control2X; - int _control2Y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement -{ - Q_OBJECT - Q_PROPERTY(qreal value READ value WRITE setValue) -public: - QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} - - qreal value() const; - void setValue(qreal value); - -private: - qreal _value; -}; - -class QmlGraphicsPathPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus -{ - Q_OBJECT - - Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QList* pathElements READ pathElements) - Q_PROPERTY(qreal startX READ startX WRITE setStartX) - Q_PROPERTY(qreal startY READ startY WRITE setStartY) - Q_CLASSINFO("DefaultProperty", "pathElements") - Q_INTERFACES(QmlParserStatus) -public: - QmlGraphicsPath(QObject *parent=0); - ~QmlGraphicsPath(); - - QList* pathElements(); - - qreal startX() const; - void setStartX(qreal x); - - qreal startY() const; - void setStartY(qreal y); - - QPainterPath path() const; - QStringList attributes() const; - qreal attributeAt(const QString &, qreal) const; - QPointF pointAt(qreal) const; - -Q_SIGNALS: - void changed(); - -protected: - virtual void componentComplete(); - QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); - -private Q_SLOTS: - void processPath(); - -private: - struct AttributePoint { - AttributePoint() : percent(0), scale(1), origpercent(0) {} - AttributePoint(const AttributePoint &other) - : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} - AttributePoint &operator=(const AttributePoint &other) { - percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; - } - qreal percent; //massaged percent along the painter path - qreal scale; - qreal origpercent; //'real' percent along the painter path - QHash values; - }; - - void interpolate(int idx, const QString &name, qreal value); - void endpoint(const QString &name); - void createPointCache() const; - -private: - Q_DISABLE_COPY(QmlGraphicsPath) - Q_DECLARE_PRIVATE(QmlGraphicsPath) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathElement) -QML_DECLARE_TYPE(QmlGraphicsPathAttribute) -QML_DECLARE_TYPE(QmlGraphicsCurve) -QML_DECLARE_TYPE(QmlGraphicsPathLine) -QML_DECLARE_TYPE(QmlGraphicsPathQuad) -QML_DECLARE_TYPE(QmlGraphicsPathCubic) -QML_DECLARE_TYPE(QmlGraphicsPathPercent) -QML_DECLARE_TYPE(QmlGraphicsPath) - -QT_END_HEADER - -#endif // QFXPATH_H diff --git a/src/declarative/fx/qfxpath_p.h b/src/declarative/fx/qfxpath_p.h deleted file mode 100644 index 49bd0d8..0000000 --- a/src/declarative/fx/qfxpath_p.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPATH_P_H -#define QFXPATH_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "private/qobject_p.h" -#include "qfxpath.h" -#include "qml.h" - - -QT_BEGIN_NAMESPACE -class QmlGraphicsPathPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPath) - -public: - QmlGraphicsPathPrivate() : startX(0), startY(0) { } - - QPainterPath _path; - QList _pathElements; - mutable QVector _pointCache; - QList _attributePoints; - QStringList _attributes; - int startX; - int startY; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxpathview.cpp b/src/declarative/fx/qfxpathview.cpp deleted file mode 100644 index fd7d734..0000000 --- a/src/declarative/fx/qfxpathview.cpp +++ /dev/null @@ -1,913 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include "qmlstate.h" -#include "qlistmodelinterface.h" -#include "qmlopenmetaobject.h" - -#include "qfxpathview.h" -#include "qfxpathview_p.h" -#include - -static const int FlickThreshold = 5; - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QmlGraphicsPathView) - -class QmlGraphicsPathViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsPathViewAttached(QObject *parent) - : QObject(parent), mo(new QmlOpenMetaObject(this)) - { - } - - ~QmlGraphicsPathViewAttached() - { - QmlGraphicsPathView::attachedProperties.remove(parent()); - } - - QVariant value(const QByteArray &name) const - { - return mo->value(name); - } - void setValue(const QByteArray &name, const QVariant &val) - { - mo->setValue(name, val); - } - -private: - QmlOpenMetaObject *mo; -}; - - -/*! - \internal - \class QmlGraphicsPathView - \brief The QmlGraphicsPathView class lays out items provided by a model on a path. - - \ingroup group_views - - The model must be a \l QListModelInterface subclass. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlclass PathView - \brief The PathView element lays out model-provided items on a path. - \inherits Item - - The model is typically provided by a QAbstractListModel "C++ model object", but can also be created directly in QML. - - The items are laid out along a path defined by a \l Path and may be flicked to scroll. - - \snippet doc/src/snippets/declarative/pathview/pathview.qml 0 - - \image pathview.gif - - \sa Path -*/ - -QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsPathViewPrivate), parent) -{ - Q_D(QmlGraphicsPathView); - d->init(); -} - -QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsPathView); - d->init(); -} - -QmlGraphicsPathView::~QmlGraphicsPathView() -{ - Q_D(QmlGraphicsPathView); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlproperty model PathView::model - This property holds the model providing data for the view. - - The model provides a set of data that is used to create the items for the view. - For large or dynamic datasets the model is usually provided by a C++ model object. - Models can also be created directly in XML, using the ListModel element. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsPathView::model() const -{ - Q_D(const QmlGraphicsPathView); - return d->modelVariant; -} - -void QmlGraphicsPathView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsPathView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - for (int i=0; iitems.count(); i++){ - QmlGraphicsItem *p = d->items[i]; - d->model->release(p); - } - d->items.clear(); - } - - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - } - d->firstIndex = 0; - d->pathOffset = 0; - d->regenerate(); - d->fixOffset(); -} - -/*! - \qmlproperty int PathView::count - This property holds the number of items in the model. -*/ -int QmlGraphicsPathView::count() const -{ - Q_D(const QmlGraphicsPathView); - return d->model ? d->model->count() : 0; -} - -/*! - \qmlproperty Path PathView::path - \default - This property holds the path used to lay out the items. - For more information see the \l Path documentation. -*/ -QmlGraphicsPath *QmlGraphicsPathView::path() const -{ - Q_D(const QmlGraphicsPathView); - return d->path; -} - -void QmlGraphicsPathView::setPath(QmlGraphicsPath *path) -{ - Q_D(QmlGraphicsPathView); - d->path = path; - connect(d->path, SIGNAL(changed()), this, SLOT(refill())); - d->regenerate(); -} - -/*! - \qmlproperty int PathView::currentIndex - This property holds the index of the current item. -*/ -int QmlGraphicsPathView::currentIndex() const -{ - Q_D(const QmlGraphicsPathView); - return d->currentIndex; -} - -void QmlGraphicsPathView::setCurrentIndex(int idx) -{ - Q_D(QmlGraphicsPathView); - if (d->model && d->model->count()) - idx = qAbs(idx % d->model->count()); - if (d->model && idx != d->currentIndex) { - d->currentIndex = idx; - if (d->model->count()) { - d->snapToCurrent(); - int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count(); - if (itemIndex < d->items.count()) - d->items.at(itemIndex)->setFocus(true); - } - emit currentIndexChanged(); - } -} - -/*! - \qmlproperty real PathView::offset - - The offset specifies how far along the path the items are from their initial positions. -*/ -qreal QmlGraphicsPathView::offset() const -{ - Q_D(const QmlGraphicsPathView); - return d->_offset; -} - -void QmlGraphicsPathView::setOffset(qreal offset) -{ - Q_D(QmlGraphicsPathView); - d->setOffset(offset); - d->updateCurrent(); -} - -void QmlGraphicsPathViewPrivate::setOffset(qreal o) -{ - Q_Q(QmlGraphicsPathView); - if (_offset != o) { - _offset = fmod(o, 100.0); - if (_offset < 0) - _offset = 100.0 + _offset; - q->refill(); - } -} - -/*! - \qmlproperty real PathView::snapPosition - - This property determines the position (0-100) the nearest item will snap to. -*/ -qreal QmlGraphicsPathView::snapPosition() const -{ - Q_D(const QmlGraphicsPathView); - return d->snapPos; -} - -void QmlGraphicsPathView::setSnapPosition(qreal pos) -{ - Q_D(QmlGraphicsPathView); - d->snapPos = pos/100; - d->fixOffset(); -} - -/*! - \qmlproperty real PathView::dragMargin - This property holds the maximum distance from the path that initiate mouse dragging. - - By default the path can only be dragged by clicking on an item. If - dragMargin is greater than zero, a drag can be initiated by clicking - within dragMargin pixels of the path. -*/ -qreal QmlGraphicsPathView::dragMargin() const -{ - Q_D(const QmlGraphicsPathView); - return d->dragMargin; -} - -void QmlGraphicsPathView::setDragMargin(qreal dragMargin) -{ - Q_D(QmlGraphicsPathView); - d->dragMargin = dragMargin; -} - -/*! - \qmlproperty component PathView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 -*/ -QmlComponent *QmlGraphicsPathView::delegate() const -{ - Q_D(const QmlGraphicsPathView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsPathView::setDelegate(QmlComponent *c) -{ - Q_D(QmlGraphicsPathView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(c); - d->regenerate(); - } -} - -/*! - \qmlproperty int PathView::pathItemCount - This property holds the number of items visible on the path at any one time -*/ -int QmlGraphicsPathView::pathItemCount() const -{ - Q_D(const QmlGraphicsPathView); - return d->pathItems; -} - -void QmlGraphicsPathView::setPathItemCount(int i) -{ - Q_D(QmlGraphicsPathView); - if (i == d->pathItems) - return; - d->pathItems = i; - d->regenerate(); -} - -QPointF QmlGraphicsPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const -{ - //XXX maybe do recursively at increasing resolution. - qreal mindist = 1e10; // big number - QPointF nearPoint = path->pointAt(0); - qreal nearPc = 0; - for (qreal i=1; i < 1000; i++) { - QPointF pt = path->pointAt(i/1000.0); - QPointF diff = pt - point; - qreal dist = diff.x()*diff.x() + diff.y()*diff.y(); - if (dist < mindist) { - nearPoint = pt; - nearPc = i; - mindist = dist; - } - } - - if (nearPercent) - *nearPercent = nearPc / 10.0; - - return nearPoint; -} - - -void QmlGraphicsPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - if (!d->items.count()) - return; - QPointF scenePoint = mapToScene(event->pos()); - int idx = 0; - for (; idx < d->items.count(); ++idx) { - QRectF rect = d->items.at(idx)->boundingRect(); - rect = d->items.at(idx)->mapToScene(rect).boundingRect(); - if (rect.contains(scenePoint)) - break; - } - if (idx == d->items.count() && d->dragMargin == 0.) // didn't click on an item - return; - - d->startPoint = d->pointNear(event->pos(), &d->startPc); - if (idx == d->items.count()) { - qreal distance = qAbs(event->pos().x() - d->startPoint.x()) + qAbs(event->pos().y() - d->startPoint.y()); - if (distance > d->dragMargin) - return; - } - - d->stealMouse = false; - d->lastElapsed = 0; - d->lastDist = 0; - QmlGraphicsItemPrivate::start(d->lastPosTime); - d->tl.clear(); -} - -void QmlGraphicsPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - if (d->lastPosTime.isNull()) - return; - - if (!d->stealMouse) { - QPointF delta = event->pos() - d->startPoint; - if (qAbs(delta.x()) > FlickThreshold && qAbs(delta.y()) > FlickThreshold) - d->stealMouse = true; - } - - if (d->stealMouse) { - d->moveReason = QmlGraphicsPathViewPrivate::Mouse; - qreal newPc; - d->pointNear(event->pos(), &newPc); - qreal diff = newPc - d->startPc; - if (diff) { - setOffset(d->_offset + diff); - - if (diff > 50) - diff -= 100; - else if (diff < -50) - diff += 100; - - d->lastElapsed = QmlGraphicsItemPrivate::restart(d->lastPosTime); - d->lastDist = diff; - d->startPc = newPc; - } - } -} - -void QmlGraphicsPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) -{ - Q_D(QmlGraphicsPathView); - if (d->lastPosTime.isNull()) - return; - - qreal elapsed = qreal(d->lastElapsed + QmlGraphicsItemPrivate::elapsed(d->lastPosTime)) / 1000.; - qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0; - if (d->model && d->model->count() && qAbs(velocity) > 5) { - if (velocity > 100) - velocity = 100; - else if (velocity < -100) - velocity = -100; - qreal inc = fmod(d->_offset - d->snapPos, 100.0 / d->model->count()); - qreal dist = qAbs(velocity/2 - fmod(velocity/2, 100.0 / d->model->count()) - inc); - d->moveOffset.setValue(d->_offset); - d->tl.accel(d->moveOffset, velocity, 10, dist); - d->tl.execute(d->fixupOffsetEvent); - } else { - d->fixOffset(); - } - - d->lastPosTime = QTime(); - d->stealMouse = false; - ungrabMouse(); -} - -bool QmlGraphicsPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - QGraphicsSceneMouseEvent mouseEvent(event->type()); - QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); - QGraphicsScene *s = scene(); - QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; - if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { - mouseEvent.setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); - } - } - mouseEvent.setScenePos(event->scenePos()); - mouseEvent.setLastScenePos(event->lastScenePos()); - mouseEvent.setPos(mapFromScene(event->scenePos())); - mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); - - switch(mouseEvent.type()) { - case QEvent::GraphicsSceneMouseMove: - mouseMoveEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMousePress: - mousePressEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMouseRelease: - mouseReleaseEvent(&mouseEvent); - break; - default: - break; - } - grabber = qobject_cast(s->mouseGrabberItem()); - if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) - grabMouse(); - - return d->stealMouse; - } else if (!d->lastPosTime.isNull()) { - d->lastPosTime = QTime(); - } - return false; -} - -bool QmlGraphicsPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) -{ - if (!isVisible()) - return QmlGraphicsItem::sceneEventFilter(i, e); - - switch (e->type()) { - case QEvent::GraphicsSceneMousePress: - case QEvent::GraphicsSceneMouseMove: - case QEvent::GraphicsSceneMouseRelease: - { - bool ret = sendMouseEvent(static_cast(e)); - if (e->type() == QEvent::GraphicsSceneMouseRelease) - return ret; - break; - } - default: - break; - } - - return QmlGraphicsItem::sceneEventFilter(i, e); -} - -void QmlGraphicsPathView::componentComplete() -{ - Q_D(QmlGraphicsPathView); - QmlGraphicsItem::componentComplete(); - d->regenerate(); - - // move to correct offset - if (d->items.count()) { - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count(); - - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) { - d->moveOffset.setValue(targetOffset); - } - } -} - -void QmlGraphicsPathViewPrivate::regenerate() -{ - Q_Q(QmlGraphicsPathView); - if (!q->isComponentComplete()) - return; - - for (int i=0; i= model->count()) - firstIndex = model->count()-1; - if (pathOffset >= model->count()) - pathOffset = model->count()-1; - - int numItems = pathItems >= 0 ? pathItems : model->count(); - for (int i=0; i < numItems && i < model->count(); ++i){ - int index = (i + firstIndex) % model->count(); - QmlGraphicsItem *item = getItem(index); - if (!item) { - qWarning() << "PathView: Cannot create item, index" << (i + firstIndex) % model->count(); - return; - } - items.append(item); - item->setZValue(i); - if (currentIndex == index) - item->setFocus(true); - } - q->refill(); -} - -void QmlGraphicsPathViewPrivate::updateItem(QmlGraphicsItem *item, qreal percent) -{ - if (QObject *obj = QmlGraphicsPathView::qmlAttachedProperties(item)) { - foreach(const QString &attr, path->attributes()) - static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); - } - QPointF pf = path->pointAt(percent); - item->setX(pf.x() - item->width()*item->scale()/2); - item->setY(pf.y() - item->height()*item->scale()/2); -} - -void QmlGraphicsPathView::refill() -{ - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - - QList positions; - for (int i=0; iitems.count(); i++){ - qreal percent = i * (100. / d->items.count()); - percent = percent + d->_offset; - percent = fmod(percent,100.); - positions << qAbs(percent/100.0); - } - - if (d->pathItems==-1) { - for (int i=0; iupdateItem(d->items.at(i), positions[i]); - return; - } - - QList rotatedPositions; - for (int i=0; iitems.count(); i++) - rotatedPositions << positions[(i + d->pathOffset + d->items.count()) % d->items.count()]; - - int wrapIndex= -1; - for (int i=0; iitems.count()-1; i++) { - if (rotatedPositions[i] > rotatedPositions[i+1]){ - wrapIndex = i; - break; - } - } - if (wrapIndex != -1 ){ - //A wraparound has occured - if (wrapIndex < d->items.count()/2){ - while(wrapIndex-- >= 0){ - QmlGraphicsItem* p = d->items.takeFirst(); - d->updateItem(p, 0.0); - d->releaseItem(p); - d->firstIndex++; - d->firstIndex %= d->model->count(); - int index = (d->firstIndex + d->items.count())%d->model->count(); - QmlGraphicsItem *item = d->getItem(index); - item->setZValue(wrapIndex); - if (d->currentIndex == index) - item->setFocus(true); - d->items << item; - d->pathOffset++; - d->pathOffset=d->pathOffset % d->items.count(); - } - } else { - while(wrapIndex++ < d->items.count()-1){ - QmlGraphicsItem* p = d->items.takeLast(); - d->updateItem(p, 1.0); - d->releaseItem(p); - d->firstIndex--; - if (d->firstIndex < 0) - d->firstIndex = d->model->count() - 1; - QmlGraphicsItem *item = d->getItem(d->firstIndex); - item->setZValue(d->firstIndex); - if (d->currentIndex == d->firstIndex) - item->setFocus(true); - d->items.prepend(item); - d->pathOffset--; - if (d->pathOffset < 0) - d->pathOffset = d->items.count() - 1; - } - } - for (int i=0; iitems.count(); i++) - rotatedPositions[i] = positions[(i + d->pathOffset + d->items.count()) - % d->items.count()]; - } - for (int i=0; iitems.count(); i++) - d->updateItem(d->items.at(i), rotatedPositions[i]); -} - -void QmlGraphicsPathView::itemsInserted(int modelIndex, int count) -{ - //XXX support animated insertion - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - if (d->pathItems == -1) { - for (int i = 0; i < count; ++i) { - QmlGraphicsItem *item = d->getItem(modelIndex + i); - item->setZValue(modelIndex + i); - d->items.insert(modelIndex + i, item); - } - refill(); - } else { - //XXX This is pretty heavy handed until we reference count items. - d->regenerate(); - } - - // make sure the current item is still at the snap position - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) - d->moveOffset.setValue(targetOffset); -} - -void QmlGraphicsPathView::itemsRemoved(int modelIndex, int count) -{ - //XXX support animated removal - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - if (d->pathItems == -1) { - for (int i = 0; i < count; ++i) { - QmlGraphicsItem* p = d->items.takeAt(modelIndex); - d->model->release(p); - } - d->snapToCurrent(); - refill(); - } else { - d->regenerate(); - } - - if (d->model->count() == 0) { - d->currentIndex = -1; - d->moveOffset.setValue(0); - return; - } - - // make sure the current item is still at the snap position - if (d->currentIndex >= d->model->count()) - d->currentIndex = d->model->count() - 1; - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) - d->moveOffset.setValue(targetOffset); -} - -void QmlGraphicsPathView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsPathView); - if (d->requestedIndex != index) { - item->setParentItem(this); - d->updateItem(item, index < d->firstIndex ? 0.0 : 1.0); - } -} - -void QmlGraphicsPathView::destroyingItem(QmlGraphicsItem *item) -{ - Q_UNUSED(item); -} - -void QmlGraphicsPathView::ticked() -{ - Q_D(QmlGraphicsPathView); - d->updateCurrent(); -} - -// find the item closest to the snap position -int QmlGraphicsPathViewPrivate::calcCurrentIndex() -{ - int current = -1; - if (model && items.count()) { - _offset = fmod(_offset, 100.0); - if (_offset < 0) - _offset += 100.0; - - if (pathItems == -1) { - qreal delta = fmod(_offset - snapPos, 100.0); - if (delta < 0) - delta = 100.0 + delta; - int ii = model->count() - qRound(delta * model->count() / 100); - if (ii < 0) - ii = 0; - current = ii; - } else { - qreal bestDiff=1e9; - int bestI=-1; - for (int i=0; icount()); - } - - return current; -} - -void QmlGraphicsPathViewPrivate::updateCurrent() -{ - Q_Q(QmlGraphicsPathView); - if (moveReason != Mouse) - return; - int idx = calcCurrentIndex(); - if (model && idx != currentIndex) { - currentIndex = idx; - int itemIndex = (idx - firstIndex + model->count()) % model->count(); - if (itemIndex < items.count()) - items.at(itemIndex)->setFocus(true); - emit q->currentIndexChanged(); - } -} - -void QmlGraphicsPathViewPrivate::fixOffset() -{ - Q_Q(QmlGraphicsPathView); - if (model && items.count()) { - int curr = calcCurrentIndex(); - if (curr != currentIndex) - q->setCurrentIndex(curr); - else - snapToCurrent(); - } -} - -void QmlGraphicsPathViewPrivate::snapToCurrent() -{ - if (!model || model->count() <= 0) - return; - - int itemIndex = (currentIndex - firstIndex + model->count()) % model->count(); - - //Rounds is the number of times round to make the current item visible - int rounds = itemIndex / items.count(); - int otherWayRounds = (model->count() - (itemIndex)) / items.count() + 1; - if (otherWayRounds < rounds) - rounds = -otherWayRounds; - - itemIndex += pathOffset; - itemIndex %= items.count(); - qreal targetOffset = fmod(100 + (snapPos*100) - 100.0 * itemIndex / items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset == _offset && rounds == 0) - return; - - moveReason = Other; - tl.clear(); - moveOffset.setValue(_offset); - - if (rounds!=0){ - //Compensate if the targetOffset would bring the target it from off the screen - qreal distance = targetOffset - _offset; - if (distance <= -50) - rounds--; - if (distance > 50) - rounds++; - tl.move(moveOffset, targetOffset + 100.0*(-rounds), QEasingCurve(QEasingCurve::InOutQuad), - int(100*items.count()*qMax((qreal)(2.0/items.count()),(qreal)qAbs(rounds)))); - tl.execute(fixupOffsetEvent); - return; - } - - if (targetOffset - _offset > 50.0) { - qreal distance = 100 - targetOffset + _offset; - tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * _offset / distance)); - tl.set(moveOffset, 100.0); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * (100-targetOffset) / distance)); - } else if (targetOffset - _offset <= -50.0) { - qreal distance = 100 - _offset + targetOffset; - tl.move(moveOffset, 100.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * (100-_offset) / distance)); - tl.set(moveOffset, 0.0); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * targetOffset / distance)); - } else { - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), 200); - } -} - -QHash QmlGraphicsPathView::attachedProperties; -QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) -{ - QObject *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsPathViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; -} - -QT_END_NAMESPACE - -#include "qfxpathview.moc" diff --git a/src/declarative/fx/qfxpathview.h b/src/declarative/fx/qfxpathview.h deleted file mode 100644 index e961106..0000000 --- a/src/declarative/fx/qfxpathview.h +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPATHVIEW_H -#define QFXPATHVIEW_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QListModelInterface; -class QmlGraphicsPathViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) - Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) - Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) - Q_PROPERTY(int count READ count) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) - -public: - QmlGraphicsPathView(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsPathView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlGraphicsPath *path() const; - void setPath(QmlGraphicsPath *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - qreal offset() const; - void setOffset(qreal offset); - - qreal snapPosition() const; - void setSnapPosition(qreal pos); - - qreal dragMargin() const; - void setDragMargin(qreal margin); - - int count() const; - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int pathItemCount() const; - void setPathItemCount(int); - - static QObject *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void currentIndexChanged(); - void offsetChanged(); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - bool sceneEventFilter(QGraphicsItem *, QEvent *); - void componentComplete(); - -private Q_SLOTS: - void refill(); - void ticked(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); - -private: - friend class QmlGraphicsPathViewAttached; - static QHash attachedProperties; - Q_DISABLE_COPY(QmlGraphicsPathView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathView) -QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) -QT_END_HEADER - -#endif // QFXPATHVIEW_H diff --git a/src/declarative/fx/qfxpathview_p.h b/src/declarative/fx/qfxpathview_p.h deleted file mode 100644 index 23b468c..0000000 --- a/src/declarative/fx/qfxpathview_p.h +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPATHVIEW_P_H -#define QFXPATHVIEW_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qfxpathview.h" -#include "qfxitem_p.h" -#include "qfxvisualitemmodel.h" -#include "qml.h" -#include "private/qmlanimation_p.h" - -QT_BEGIN_NAMESPACE - -typedef struct PathViewItem{ - int index; - QmlGraphicsItem* item; -}PathViewItem; - -class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPathView) - -public: - QmlGraphicsPathViewPrivate() - : path(0), currentIndex(0), startPc(0), lastDist(0) - , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) - , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) - , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) - , moveReason(Other) - { - fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); - } - - void init() - { - Q_Q(QmlGraphicsPathView); - _offset = 0; - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - q->setFiltersChildEvents(true); - q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); - } - - QmlGraphicsItem *getItem(int modelIndex) { - Q_Q(QmlGraphicsPathView); - requestedIndex = modelIndex; - QmlGraphicsItem *item = model->item(modelIndex); - if (item) - item->setParentItem(q); - requestedIndex = -1; - return item; - } - void releaseItem(QmlGraphicsItem *item) { - model->release(item); - } - - bool isValid() const { - return model && model->count() > 0 && model->isValid() && path; - } - - int calcCurrentIndex(); - void updateCurrent(); - void fixOffset(); - void setOffset(qreal offset); - void regenerate(); - void updateItem(QmlGraphicsItem *, qreal); - void snapToCurrent(); - QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; - - QmlGraphicsPath *path; - int currentIndex; - qreal startPc; - QPointF startPoint; - qreal lastDist; - int lastElapsed; - qreal _offset; - bool stealMouse : 1; - bool ownModel : 1; - QTime lastPosTime; - QPointF lastPos; - QmlGraphicsItem *activeItem; - qreal snapPos; - qreal dragMargin; - QmlTimeLine tl; - QmlTimeLineValueProxy moveOffset; - QmlTimeLineEvent fixupOffsetEvent; - int firstIndex; - int pathItems; - int pathOffset; - int requestedIndex; - QList items; - QmlGraphicsVisualModel *model; - QVariant modelVariant; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qfxpixmapcache.cpp b/src/declarative/fx/qfxpixmapcache.cpp deleted file mode 100644 index 4d6104c..0000000 --- a/src/declarative/fx/qfxpixmapcache.cpp +++ /dev/null @@ -1,282 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxpixmapcache.h" -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -class QSharedNetworkReply; -typedef QHash QmlGraphicsSharedNetworkReplyHash; -static QmlGraphicsSharedNetworkReplyHash qfxActiveNetworkReplies; - -class QSharedNetworkReply -{ -public: - QSharedNetworkReply(QNetworkReply *r) : reply(r), refCount(1) {} - ~QSharedNetworkReply() - { - reply->deleteLater(); - } - QNetworkReply *reply; - QPixmap pixmap; // ensure reference to pixmap to QPixmapCache does not discard - - int refCount; - void addRef() - { - ++refCount; - } - void release() - { - Q_ASSERT(refCount > 0); - --refCount; - if (refCount == 0) { - QString key = reply->url().toString(); - qfxActiveNetworkReplies.remove(key); - delete this; - } - } -}; - -static bool readImage(QIODevice *dev, QPixmap *pixmap) - { - QImageReader imgio(dev); - -//#define QT_TEST_SCALED_SIZE -#ifdef QT_TEST_SCALED_SIZE - /* - Some mechanism is needed for loading images at a limited size, especially - for remote images. Loading only thumbnails of remote progressive JPEG - images can be efficient. (Qt jpeg handler does not do so currently) - */ - - QSize limit(60,60); - QSize sz = imgio.size(); - if (sz.width() > limit.width() || sz.height() > limit.height()) { - sz.scale(limit,Qt::KeepAspectRatio); - imgio.setScaledSize(sz); - } -#endif - - QImage img; - if (imgio.read(&img)) { -#ifdef QT_TEST_SCALED_SIZE - if (!sz.isValid()) - img = img.scaled(limit,Qt::KeepAspectRatio); -#endif - *pixmap = QPixmap::fromImage(img); - return true; - } else { - qWarning() << imgio.errorString(); - return false; - } - } - -/*! - \internal - \class QmlGraphicsPixmapCache - \brief Enacapsultes a pixmap for QmlGraphics items. - - This class is NOT reentrant. - */ - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - -/*! - Finds the cached pixmap corresponding to \a url. - A previous call to get() must have requested the URL, - and the QNetworkReply must have finished before calling - this function. - - Returns true if the image was loaded without error. -*/ -bool QmlGraphicsPixmapCache::find(const QUrl& url, QPixmap *pixmap) -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer perf; -#endif - - QString key = url.toString(); - bool ok = true; - if (!QPixmapCache::find(key,pixmap)) { -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(url); - if (!lf.isEmpty()) { - QFile f(lf); - if (f.open(QIODevice::ReadOnly)) { - if (!readImage(&f, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - ok = false; - } - } else { - *pixmap = QPixmap(); - ok = false; - } - } else -#endif - { - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) { - // API usage error - qWarning() << "QmlGraphicsPixmapCache: URL not loaded" << url; - ok = false; - } else { - if ((*iter)->reply->error()) { - qWarning() << "Network error loading" << url << (*iter)->reply->errorString(); - *pixmap = QPixmap(); - ok = false; - } else if (!readImage((*iter)->reply, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - ok = false; - } else { - if ((*iter)->refCount > 1) - (*iter)->pixmap = *pixmap; - } - (*iter)->release(); - } - } - QPixmapCache::insert(key, *pixmap); - } else { - ok = !pixmap->isNull(); -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - if (url.scheme()!=QLatin1String("file")) -#endif - // We may be the second finder. Still need to check for active replies. - { - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter != qfxActiveNetworkReplies.end()) - (*iter)->release(); - } - } - return ok; -} - -/*! - Starts a network request to load \a url. - - Returns a QNetworkReply if the image is not immediately available, otherwise - returns 0. Caller should connect to QNetworkReply::finished() to then call - find() when the image is available. - - The returned QNetworkReply will be deleted when all get() calls are - matched by a corresponding find() call. -*/ -QNetworkReply *QmlGraphicsPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) -{ -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(url); - if (!lf.isEmpty()) { - QString key = url.toString(); - if (!QPixmapCache::find(key,pixmap)) { - QFile f(lf); - if (f.open(QIODevice::ReadOnly)) { - if (!readImage(&f, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - } - } else - *pixmap = QPixmap(); - QPixmapCache::insert(key, *pixmap); - } - return 0; - } -#endif - - QString key = url.toString(); - if (QPixmapCache::find(key,pixmap)) { - return 0; - } - - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) { - QNetworkRequest req(url); - QSharedNetworkReply *item = new QSharedNetworkReply(engine->networkAccessManager()->get(req)); - iter = qfxActiveNetworkReplies.insert(key, item); - } else { - (*iter)->addRef(); - } - - return (*iter)->reply; -} - -/*! - Cancels a previous call to get(). - - May also cancel loading (eg. if no other pending request). - - Any connections from the QNetworkReply returned by get() to \a obj will be - disconnected. -*/ -void QmlGraphicsPixmapCache::cancelGet(const QUrl& url, QObject* obj) -{ - QString key = url.toString(); - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) - return; - if (obj) - QObject::disconnect((*iter)->reply, 0, obj, 0); - (*iter)->release(); -} - -/*! - This function is mainly for test verification. It returns the number of - requests that are still unfinished. -*/ -int QmlGraphicsPixmapCache::pendingRequests() -{ - return qfxActiveNetworkReplies.count(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxpixmapcache.h b/src/declarative/fx/qfxpixmapcache.h deleted file mode 100644 index 2a5c4fa..0000000 --- a/src/declarative/fx/qfxpixmapcache.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXPIXMAPCACHE_H -#define QFXPIXMAPCACHE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlEngine; -class QNetworkReply; -class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache -{ -public: - static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); - static void cancelGet(const QUrl& url, QObject* obj); - - static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. - - static int pendingRequests(); // mainly for test verification -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QFXPIXMAPCACHE_H diff --git a/src/declarative/fx/qfxpositioners.cpp b/src/declarative/fx/qfxpositioners.cpp deleted file mode 100644 index d7ae49d..0000000 --- a/src/declarative/fx/qfxpositioners.cpp +++ /dev/null @@ -1,921 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include "qml.h" -#include "qmlstate.h" -#include "qmlstategroup.h" -#include "qmlstateoperations.h" -#include "private/qfxperf_p.h" -#include "qfxpositioners.h" -#include "qfxpositioners_p.h" - - -QT_BEGIN_NAMESPACE - -/*! - \internal - \class QmlGraphicsBasePositioner - \ingroup group_layouts - \brief The QmlGraphicsBasePositioner class provides a base for QmlGraphics layouts. - - To create a QmlGraphics Positioner, simply subclass QmlGraphicsBasePositioner and implement - doLayout(), which is automatically called when the layout might need - updating. - - It is strongly recommended that in your implementation of doLayout() - that you use the move, remove and add transitions when those conditions - arise. You can use the applyAdd, applyMove and applyRemove functions - to do this easily. - - Note also that the subclass is responsible for adding the - spacing in between items. -*/ -QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(AutoUpdateType at, QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsBasePositionerPrivate), parent) -{ - Q_D(QmlGraphicsBasePositioner); - d->init(at); -} - -QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsBasePositioner); - d->init(at); -} - -int QmlGraphicsBasePositioner::spacing() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->_spacing; -} - -void QmlGraphicsBasePositioner::setSpacing(int s) -{ - Q_D(QmlGraphicsBasePositioner); - if (s==d->_spacing) - return; - d->_spacing = s; - prePositioning(); - emit spacingChanged(); -} - -QmlTransition *QmlGraphicsBasePositioner::move() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->moveTransition; -} - -void QmlGraphicsBasePositioner::setMove(QmlTransition *mt) -{ - Q_D(QmlGraphicsBasePositioner); - d->moveTransition = mt; -} - -QmlTransition *QmlGraphicsBasePositioner::add() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->addTransition; -} - -void QmlGraphicsBasePositioner::setAdd(QmlTransition *add) -{ - Q_D(QmlGraphicsBasePositioner); - d->addTransition = add; -} - -QmlTransition *QmlGraphicsBasePositioner::remove() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->removeTransition; -} - -void QmlGraphicsBasePositioner::setRemove(QmlTransition *remove) -{ - Q_D(QmlGraphicsBasePositioner); - d->removeTransition = remove; -} - -void QmlGraphicsBasePositioner::componentComplete() -{ - QmlGraphicsItem::componentComplete(); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - prePositioning(); -} - -QVariant QmlGraphicsBasePositioner::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - if (change == ItemChildAddedChange || - change == ItemChildRemovedChange) { - prePositioning(); - } - - return QmlGraphicsItem::itemChange(change, value); -} - -bool QmlGraphicsBasePositioner::event(QEvent *e) -{ - Q_D(QmlGraphicsBasePositioner); - if (e->type() == QEvent::User) { - d->_ep = false; - d->_stableItems += d->_newItems; - d->_leavingItems.clear(); - d->_newItems.clear(); - return true; - } - return QmlGraphicsItem::event(e); -} - -/*! - Items that have just been added to the positioner. This includes invisible items - that have turned visible. -*/ -QSet* QmlGraphicsBasePositioner::newItems() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_newItems; -} - -/*! - Items that are visible in the positioner, not including ones that have just been added. -*/ -QSet* QmlGraphicsBasePositioner::items() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_stableItems; -} - -/*! - Items that have just left the positioner. This includes visible items - that have turned invisible. -*/ -QSet* QmlGraphicsBasePositioner::leavingItems() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_leavingItems; -} - -void QmlGraphicsBasePositioner::prePositioning() -{ - Q_D(QmlGraphicsBasePositioner); - if (!isComponentComplete() || d->_movingItem) - return; - - if (!d->_ep) { - d->_ep = true; - QCoreApplication::postEvent(this, new QEvent(QEvent::User)); - } - QSet allItems; - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child) - continue; - if (!d->_items.contains(child)){ - QObject::connect(child, SIGNAL(visibleChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(opacityChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(heightChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(widthChanged()), - this, SLOT(prePositioning())); - d->_items += child; - } - if (child->opacity() == 0.0){ - if (d->_stableItems.contains(child)){ - d->_leavingItems += child; - d->_stableItems -= child; - } - }else if (!d->_stableItems.contains(child)){ - d->_newItems+=child; - } - allItems += child; - } - QSet deletedItems = d->_items - allItems; - foreach(QmlGraphicsItem *child, d->_items){ - if (!allItems.contains(child)){ - if (!deletedItems.contains(child)) { - QObject::disconnect(child, SIGNAL(opacityChanged()), - this, SLOT(prePositioning())); - QObject::disconnect(child, SIGNAL(heightChanged()), - this, SLOT(prePositioning())); - QObject::disconnect(child, SIGNAL(widthChanged()), - this, SLOT(prePositioning())); - } - d->_items -= child; - } - } - d->_animated.clear(); - doPositioning(); - finishApplyTransitions(); - //Set implicit size to the size of its children - //###To keep this valid, do we need to update on pos change as well? - qreal h = 0.0f; - qreal w = 0.0f; - foreach(QmlGraphicsItem *child, d->_items){ - if(!child->isVisible() || child->opacity() <= 0) - continue; - h = qMax(h, child->y() + child->height()); - w = qMax(w, child->x() + child->width()); - } - setImplicitHeight(h); - setImplicitWidth(w); -} - -void QmlGraphicsBasePositioner::applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions) -{ - Q_D(QmlGraphicsBasePositioner); - if (!target) - return; - - for (int ii=0; ii_animated << target; -} - -void QmlGraphicsBasePositioner::finishApplyTransitions() -{ - Q_D(QmlGraphicsBasePositioner); - // Note that if a transition is not set the transition manager will - // apply the changes directly, in the case someone uses applyAdd/Move/Remove - // without testing add()/move()/remove(). - d->addTransitionManager.transition(d->addActions, d->addTransition); - d->moveTransitionManager.transition(d->moveActions, d->moveTransition); - d->removeTransitionManager.transition(d->removeActions, d->removeTransition); - d->addActions.clear(); - d->moveActions.clear(); - d->removeActions.clear(); -} -void QmlGraphicsBasePositioner::setMovingItem(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsBasePositioner); - d->_movingItem = i; -} - -/*! - Applies the positioner's add transition to the \a target item.\a changes is a list of property,value - pairs which will be changed on the target using the add transition. -*/ -void QmlGraphicsBasePositioner::applyAdd(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->addActions); -} - -/*! - Applies the positioner's move transition to the \a target.\a changes is a list of property,value pairs - which will be changed on the target using the move transition. -*/ -void QmlGraphicsBasePositioner::applyMove(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->moveActions); -} - -/*! - Applies the positioner's remove transition to the \a target item.\a changes is a list of - property,value pairs which will be changed on the target using the remove transition. -*/ -void QmlGraphicsBasePositioner::applyRemove(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->removeActions); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QmlGraphicsColumn) -/*! - \qmlclass Column - \brief The Column item lines up its children vertically. - \inherits Item - - The Column item positions its child items so that they are vertically - aligned and not overlapping. Spacing between items can be added. - - The below example positions differently shaped rectangles using a Column. - \table - \row - \o \image verticalpositioner_example.png - \o - \qml -Column { - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } -} - \endqml - \endtable - - Column also provides for transitions to be set when items are added, moved, - or removed in the positioner. Adding and removing apply both to items which are deleted - or have their position in the document changed so as to no longer be children of the positioner, - as well as to items which have their opacity set to or from zero so as to appear or disappear. - - \table - \row - \o \image verticalpositioner_transition.gif - \o - \qml -Column { - spacing: 2 - remove: ... - add: ... - move: ... - ... -} - \endqml - \endtable - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. - -*/ -/*! - \qmlproperty Transition Column::remove - This property holds the transition to apply when removing an item from the positioner. The transition is only applied to the removed items. - - Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. - - Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. - - \table - \row - \o \image positioner-remove.gif - \o - \qml -Column { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - \endtable - -*/ -/*! - \qmlproperty Transition Column::add - This property holds the transition to be applied when adding an item to the positioner. The transition will only be applied to the added item(s). - - Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. - - \table - \row - \o \image positioner-add.gif - \o - \qml -Column { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - \endtable - -*/ -/*! - \qmlproperty Transition Column::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or when items resize themselves. - - \table - \row - \o \image positioner-move.gif - \o - \qml -Column { - move: Transition { - NumberAnimation { - properties: "y" - ease: "easeOutBounce" - } - } -} - \endqml - \endtable -*/ -/*! - \qmlproperty int Column::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsColumn - \brief The QmlGraphicsColumn class lines up items vertically. - \ingroup group_positioners -*/ -QmlGraphicsColumn::QmlGraphicsColumn(QmlGraphicsItem *parent) -: QmlGraphicsBasePositioner(Vertical, parent) -{ -} - -void QmlGraphicsColumn::doPositioning() -{ - int voffset = 0; - - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child || child->opacity() == 0.0) - continue; - - bool needMove = (child->y() != voffset || child->x()); - - QList > changes; - changes << qMakePair(QString(QLatin1String("y")),QVariant(voffset)); - changes << qMakePair(QString(QLatin1String("x")),QVariant(0)); - if (needMove && items()->contains(child) && move()) { - applyMove(changes,child); - } else if (!items()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - setMovingItem(child); - child->setY(voffset); - setMovingItem(0); - } - voffset += child->height(); - voffset += spacing(); - } -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QmlGraphicsRow) -/*! - \qmlclass Row - \brief The Row item lines up its children horizontally. - \inherits Item - - The Row item positions its child items so that they are - horizontally aligned and not overlapping. Spacing can be added between the - items, and a margin around all items can also be added. It also provides for - transitions to be set when items are added, moved, or removed in the - positioner. Adding and removing apply both to items which are deleted or have - their position in the document changed so as to no longer be children of the - positioner, as well as to items which have their opacity set to or from zero - so as to appear or disappear. - - The below example lays out differently shaped rectangles using a Row. - \qml -Row { - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } -} - \endqml - \image horizontalpositioner_example.png - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. - -*/ -/*! - \qmlproperty Transition Row::remove - This property holds the transition to apply when removing an item from the positioner. - The transition will only be applied to the removed item(s). - - Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. - - Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. - - \qml -Row { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Row::add - This property holds the transition to apply when adding an item to the positioner. - The transition will only be applied to the added item(s). - - Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. - - \qml -Row { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Row::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or when items resize themselves. - - \qml -Row { - id: positioner - move: Transition { - NumberAnimation { - properties: "x" - ease: "easeOutBounce" - } - } -} - \endqml - -*/ -/*! - \qmlproperty int Row::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsRow - \brief The QmlGraphicsRow class lines up items horizontally. - \ingroup group_positioners -*/ -QmlGraphicsRow::QmlGraphicsRow(QmlGraphicsItem *parent) -: QmlGraphicsBasePositioner(Horizontal, parent) -{ -} - -void QmlGraphicsRow::doPositioning() -{ - int hoffset = 0; - - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child || child->opacity() == 0.0) - continue; - - bool needMove = (child->x() != hoffset || child->y()); - - QList > changes; - changes << qMakePair(QString(QLatin1String("x")),QVariant(hoffset)); - changes << qMakePair(QString(QLatin1String("y")),QVariant(0)); - if (needMove && items()->contains(child) && move()) { - applyMove(changes,child); - } else if (!items()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - setMovingItem(child); - child->setX(hoffset); - setMovingItem(0); - } - if(child->width() && child->height()){//don't advance for invisible children - hoffset += child->width(); - hoffset += spacing(); - } - } -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QmlGraphicsGrid) - -/*! - \qmlclass Grid QmlGraphicsGrid - \brief The Grid item positions its children in a grid. - \inherits Item - - The Grid item positions its child items so that they are - aligned in a grid and are not overlapping. Spacing can be added - between the items. It also provides for transitions to be set when items are - added, moved, or removed in the positioner. Adding and removing apply - both to items which are deleted or have their position in the - document changed so as to no longer be children of the positioner, as - well as to items which have their opacity set to or from zero so - as to appear or disappear. - - The Grid defaults to using four columns, and as many rows as - are necessary to fit all the child items. The number of rows - and/or the number of columns can be constrained by setting the rows - or columns properties. The grid positioner calculates a grid with - rectangular cells of sufficient size to hold all items, and then - places the items in the cells, going across then down, and - positioning each item at the (0,0) corner of the cell. The below - example demonstrates this. - - \table - \row - \o \image gridLayout_example.png - \o - \qml -Grid { - columns: 3 - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } - Rectangle { color: "cyan"; width: 50; height: 50 } - Rectangle { color: "magenta"; width: 10; height: 10 } -} - \endqml - \endtable - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. -*/ -/*! - \qmlproperty Transition Grid::remove - This property holds the transition to apply when removing an item from the positioner. - The transition is only applied to the removed item(s). - - Removed can mean that either the object has been deleted or - reparented, and thus is now longer a child of the positioner, or that - the object has had its opacity set to zero, and thus is no longer - visible. - - Note that if the item counts as removed because its opacity is - zero it will not be visible during the transition unless you set - the opacity in the transition, like in the below example. - - \qml -Grid { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Grid::add - This property holds the transition to apply when adding an item to the positioner. - The transition is only applied to the added item(s). - - Added can mean that either the object has been created or - reparented, and thus is now a child or the positioner, or that the - object has had its opacity increased from zero, and thus is now - visible. - - \qml -Grid { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Grid::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or - when items resize themselves. - - \qml -Grid { - move: Transition { - NumberAnimation { - properties: "x,y" - ease: "easeOutBounce" - } - } -} - \endqml - -*/ -/*! - \qmlproperty int Grid::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsGrid - \brief The QmlGraphicsGrid class lays out items in a grid. - \ingroup group_layouts - -*/ -QmlGraphicsGrid::QmlGraphicsGrid(QmlGraphicsItem *parent) : - QmlGraphicsBasePositioner(Both, parent) -{ - _columns=-1; - _rows=-1; -} - -/*! - \qmlproperty int Grid::columns - This property holds the number of columns in the grid. - - When the columns property is set the Grid will always have - that many columns. Note that if you do not have enough items to - fill this many columns some columns will be of zero width. -*/ - -/*! - \qmlproperty int Grid::rows - This property holds the number of rows in the grid. - - When the rows property is set the Grid will always have that - many rows. Note that if you do not have enough items to fill this - many rows some rows will be of zero width. -*/ - -void QmlGraphicsGrid::doPositioning() -{ - int c=_columns,r=_rows;//Actual number of rows/columns - int numVisible = items()->size() + newItems()->size(); - if (_columns==-1 && _rows==-1){ - c = 4; - r = (numVisible+3)/4; - }else if (_rows==-1){ - r = (numVisible+(_columns-1))/_columns; - }else if (_columns==-1){ - c = (numVisible+(_rows-1))/_rows; - } - - QList maxColWidth; - QList maxRowHeight; - int childIndex =0; - QList children = childItems(); - for (int i=0; i(children.at(childIndex++)); - if (!child || child->opacity() == 0.0) - continue; - if (child->width() > maxColWidth[j]) - maxColWidth[j] = child->width(); - if (child->height() > maxRowHeight[i]) - maxRowHeight[i] = child->height(); - } - } - - int xoffset=0; - int yoffset=0; - int curRow =0; - int curCol =0; - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - foreach(QGraphicsItem* schild, children){ - QmlGraphicsItem *child = qobject_cast(schild); - if (!child || child->opacity() == 0.0) - continue; - bool needMove = (child->x()!=xoffset)||(child->y()!=yoffset); - QList > changes; - changes << qMakePair(QString(QLatin1String("x")),QVariant(xoffset)); - changes << qMakePair(QString(QLatin1String("y")),QVariant(yoffset)); - if (newItems()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - if (move()){ - applyMove(changes,child); - }else{ - setMovingItem(child); - child->setPos(QPointF(xoffset, yoffset)); - setMovingItem(0); - } - } - xoffset+=maxColWidth[curCol]+spacing(); - curCol++; - curCol%=c; - if (!curCol){ - yoffset+=maxRowHeight[curRow]+spacing(); - xoffset=0; - curRow++; - if (curRow>=r) - break; - } - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxpositioners.h b/src/declarative/fx/qfxpositioners.h deleted file mode 100644 index 29c121c..0000000 --- a/src/declarative/fx/qfxpositioners.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXLAYOUTS_H -#define QFXLAYOUTS_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsBasePositionerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(QmlTransition *move READ move WRITE setMove) - Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) - Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) -public: - enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; - QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); - - int spacing() const; - void setSpacing(int); - - QmlTransition *move() const; - void setMove(QmlTransition *); - - QmlTransition *add() const; - void setAdd(QmlTransition *); - - QmlTransition *remove() const; - void setRemove(QmlTransition *); - -protected: - virtual void componentComplete(); - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); - virtual bool event(QEvent *); - QSet* newItems(); - QSet* leavingItems(); - QSet* items(); - void applyAdd(const QList >& changes, QmlGraphicsItem* target); - void applyMove(const QList >& changes, QmlGraphicsItem* target); - void applyRemove(const QList >& changes, QmlGraphicsItem* target); - void finishApplyTransitions(); - -Q_SIGNALS: - void layoutItemChanged(); - void spacingChanged(); - -protected Q_SLOTS: - virtual void doPositioning()=0; - -private Q_SLOTS: - void prePositioning(); - -protected: - QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); - void setMovingItem(QmlGraphicsItem *); - -private: - void applyTransition(const QList >& changes, QmlGraphicsItem* target, - QmlStateOperation::ActionList &actions); - Q_DISABLE_COPY(QmlGraphicsBasePositioner) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsColumn(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsColumn) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsRow(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsRow) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner -{ - Q_OBJECT - Q_PROPERTY(int rows READ rows WRITE setRows) - Q_PROPERTY(int columns READ columns WRITE setcolumns) -public: - QmlGraphicsGrid(QmlGraphicsItem *parent=0); - - int rows() const {return _rows;} - void setRows(const int rows){_rows = rows;} - - int columns() const {return _columns;} - void setcolumns(const int columns){_columns = columns;} -protected Q_SLOTS: - virtual void doPositioning(); - -private: - int _rows; - int _columns; - Q_DISABLE_COPY(QmlGraphicsGrid) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsColumn) -QML_DECLARE_TYPE(QmlGraphicsRow) -QML_DECLARE_TYPE(QmlGraphicsGrid) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxpositioners_p.h b/src/declarative/fx/qfxpositioners_p.h deleted file mode 100644 index fdc11bb..0000000 --- a/src/declarative/fx/qfxpositioners_p.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXLAYOUTS_P_H -#define QFXLAYOUTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) - -public: - QmlGraphicsBasePositionerPrivate() - : _ep(false), _componentComplete(false), _spacing(0), - aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), - removeTransition(0), _movingItem(0) - { - } - - void init(QmlGraphicsBasePositioner::AutoUpdateType at) - { - aut = at; - } - - bool _ep; - bool _componentComplete; - int _spacing; - QmlGraphicsBasePositioner::AutoUpdateType aut; - QmlTransition *moveTransition; - QmlTransition *addTransition; - QmlTransition *removeTransition; - QSet _items; - QSet _leavingItems; - QSet _stableItems; - QSet _newItems; - QSet _animated; - QmlStateOperation::ActionList addActions; - QmlStateOperation::ActionList moveActions; - QmlStateOperation::ActionList removeActions; - QmlTransitionManager addTransitionManager; - QmlTransitionManager moveTransitionManager; - QmlTransitionManager removeTransitionManager; -// QmlStateGroup *stateGroup; - QmlGraphicsItem *_movingItem; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxrect.cpp b/src/declarative/fx/qfxrect.cpp deleted file mode 100644 index 7ebacf0..0000000 --- a/src/declarative/fx/qfxrect.cpp +++ /dev/null @@ -1,475 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxrect.h" -#include "qfxrect_p.h" - -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QmlGraphicsPen) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QmlGraphicsGradientStop) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QmlGraphicsGradient) - -/*! - \internal - \class QmlGraphicsPen - \brief The QmlGraphicsPen class provides a pen used for drawing rectangle borders on a QmlView. - - By default, the pen is invalid and nothing is drawn. You must either set a color (then the default - width is 1) or a width (then the default color is black). - - A width of 1 indicates is a single-pixel line on the border of the item being painted. - - Example: - \qml - Rectangle { border.width: 2; border.color: "red" ... } - \endqml -*/ - -void QmlGraphicsPen::setColor(const QColor &c) -{ - _color = c; - _valid = _color.alpha() ? true : false; - emit penChanged(); -} - -void QmlGraphicsPen::setWidth(int w) -{ - if (_width == w && _valid) - return; - - _width = w; - _valid = (_width < 1) ? false : true; - emit penChanged(); -} - - -/*! - \qmlclass GradientStop QmlGraphicsGradientStop - \brief The GradientStop item defines the color at a position in a Gradient - - \sa Gradient -*/ - -/*! - \qmlproperty real GradientStop::position - \qmlproperty color GradientStop::color - - Sets a \e color at a \e position in a gradient. -*/ - -void QmlGraphicsGradientStop::updateGradient() -{ - if (QmlGraphicsGradient *grad = qobject_cast(parent())) - grad->doUpdate(); -} - -/*! - \qmlclass Gradient QmlGraphicsGradient - \brief The Gradient item defines a gradient fill. - - A gradient is defined by two or more colors, which will be blended seemlessly. The - colors are specified at their position in the range 0.0 - 1.0 via - the GradientStop item. For example, the following code paints a - rectangle with a gradient starting with red, blending to yellow at 1/3 of the - size of the rectangle, and ending with Green: - - \table - \row - \o \image gradient.png - \o \quotefile doc/src/snippets/declarative/gradient.qml - \endtable - - \sa GradientStop -*/ - -/*! - \qmlproperty list Gradient::stops - This property holds the gradient stops describing the gradient. -*/ - -const QGradient *QmlGraphicsGradient::gradient() const -{ - if (!m_gradient && !m_stops.isEmpty()) { - m_gradient = new QLinearGradient(0,0,0,1.0); - for (int i = 0; i < m_stops.count(); ++i) { - const QmlGraphicsGradientStop *stop = m_stops.at(i); - m_gradient->setCoordinateMode(QGradient::ObjectBoundingMode); - m_gradient->setColorAt(stop->position(), stop->color()); - } - } - - return m_gradient; -} - -void QmlGraphicsGradient::doUpdate() -{ - delete m_gradient; - m_gradient = 0; - emit updated(); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QmlGraphicsRect) - -/*! - \qmlclass Rectangle QmlGraphicsRect - \brief The Rectangle item allows you to add rectangles to a scene. - \inherits Item - - A Rectangle is painted having a solid fill (color) and an optional border. - You can also create rounded rectangles using the radius property. - - \qml - Rectangle { - width: 100 - height: 100 - color: "red" - border.color: "black" - border.width: 5 - radius: 10 - } - \endqml - - \image declarative-rect.png -*/ - -/*! - \internal - \class QmlGraphicsRect - \brief The QmlGraphicsRect class provides a rectangle item that you can add to a QmlView. -*/ -QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsRectPrivate), parent) -{ - Q_D(QmlGraphicsRect); - d->init(); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsRect); - d->init(); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -void QmlGraphicsRect::doUpdate() -{ - Q_D(QmlGraphicsRect); - d->rectImage = QPixmap(); - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - d->setPaintMargin((pw+1)/2); - update(); -} - -/*! - \qmlproperty int Rectangle::border.width - \qmlproperty color Rectangle::border.color - - The width and color used to draw the border of the rectangle. - - A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color. - - To keep the border smooth (rather than blurry), odd widths cause the rectangle to be painted at - a half-pixel offset; -*/ -QmlGraphicsPen *QmlGraphicsRect::border() -{ - Q_D(QmlGraphicsRect); - return d->getPen(); -} - -/*! - \qmlproperty Gradient Rectangle::gradient - - The gradient to use to fill the rectangle. - - This property allows for the construction of simple vertical gradients. - Other gradients may by formed by adding rotation to the rectangle. - - \table - \row - \o \image declarative-rect_gradient.png - \o - \qml - Rectangle { y: 0; width: 80; height: 80; color: "lightsteelblue" } - Rectangle { y: 100; width: 80; height: 80 - gradient: Gradient { - GradientStop { position: 0.0; color: "lightsteelblue" } - GradientStop { position: 1.0; color: "blue" } - } - } - Rectangle { rotation: 90; x: 80; y: 200; width: 80; height: 80 - gradient: Gradient { - GradientStop { position: 0.0; color: "lightsteelblue" } - GradientStop { position: 1.0; color: "blue" } - } - } - // The x offset is needed because the rotation is from the top left corner - \endqml - \endtable - - If both a gradient and a color are specified, the gradient will be used. - - \sa Gradient, color -*/ -QmlGraphicsGradient *QmlGraphicsRect::gradient() const -{ - Q_D(const QmlGraphicsRect); - return d->gradient; -} - -void QmlGraphicsRect::setGradient(QmlGraphicsGradient *gradient) -{ - Q_D(QmlGraphicsRect); - if (d->gradient == gradient) - return; - if (d->gradient) - disconnect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); - d->gradient = gradient; - if (d->gradient) - connect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); - update(); -} - - -/*! - \qmlproperty real Rectangle::radius - This property holds the corner radius used to draw a rounded rectangle. - - If radius is non-zero, the rectangle will be painted as a rounded rectangle, otherwise it will be - painted as a normal rectangle. The same radius is used by all 4 corners; there is currently - no way to specify different radii for different corners. -*/ -qreal QmlGraphicsRect::radius() const -{ - Q_D(const QmlGraphicsRect); - return d->radius; -} - -void QmlGraphicsRect::setRadius(qreal radius) -{ - Q_D(QmlGraphicsRect); - if (d->radius == radius) - return; - - d->radius = radius; - d->rectImage = QPixmap(); - update(); - emit radiusChanged(); -} - -/*! - \qmlproperty color Rectangle::color - This property holds the color used to fill the rectangle. - - \qml - // green rectangle using hexidecimal notation - Rectangle { color: "#00FF00" } - - // steelblue rectangle using SVG color name - Rectangle { color: "steelblue" } - \endqml - - The default color is white. - - If both a gradient and a color are specified, the gradient will be used. -*/ -QColor QmlGraphicsRect::color() const -{ - Q_D(const QmlGraphicsRect); - return d->color; -} - -void QmlGraphicsRect::setColor(const QColor &c) -{ - Q_D(QmlGraphicsRect); - if (d->color == c) - return; - - d->color = c; - d->rectImage = QPixmap(); - update(); - emit colorChanged(); -} - -void QmlGraphicsRect::generateRoundedRect() -{ - Q_D(QmlGraphicsRect); - if (d->rectImage.isNull()) { - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - const int radius = qCeil(d->radius); //ensure odd numbered width/height so we get 1-pixel center - d->rectImage = QPixmap(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2); - d->rectImage.fill(Qt::transparent); - QPainter p(&(d->rectImage)); - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(d->color); - if (pw%2) - p.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1)), d->radius, d->radius); - else - p.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw), d->radius, d->radius); - } -} - -void QmlGraphicsRect::generateBorderedRect() -{ - Q_D(QmlGraphicsRect); - if (d->rectImage.isNull()) { - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - d->rectImage = QPixmap(pw*2 + 3, pw*2 + 3); - d->rectImage.fill(Qt::transparent); - QPainter p(&(d->rectImage)); - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - pn.setJoinStyle(Qt::MiterJoin); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(d->color); - if (pw%2) - p.drawRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1))); - else - p.drawRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw)); - } -} - -void QmlGraphicsRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsRect); - if (d->radius > 0 || (d->pen && d->pen->isValid()) - || (d->gradient && d->gradient->gradient()) ) { - drawRect(*p); - } - else { - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing, true); - p->fillRect(QRectF(0, 0, width(), height()), d->color); - if (d->smooth) - p->setRenderHint(QPainter::Antialiasing, oldAA); - } -} - -void QmlGraphicsRect::drawRect(QPainter &p) -{ - Q_D(QmlGraphicsRect); - if (d->gradient && d->gradient->gradient()) { - // XXX This path is still slower than the image path - // Image path won't work for gradients though - bool oldAA = p.testRenderHint(QPainter::Antialiasing); - if (d->smooth) - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(*d->gradient->gradient()); - if (d->radius > 0.) - p.drawRoundedRect(0, 0, width(), height(), d->radius, d->radius); - else - p.drawRect(0, 0, width(), height()); - if (d->smooth) - p.setRenderHint(QPainter::Antialiasing, oldAA); - } else { - bool oldAA = p.testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - const int pw = d->pen && d->pen->isValid() ? (d->pen->width()+1)/2*2 : 0; - - if (d->radius > 0) - generateRoundedRect(); - else - generateBorderedRect(); - - int xOffset = (d->rectImage.width()-1)/2; - int yOffset = (d->rectImage.height()-1)/2; - Q_ASSERT(d->rectImage.width() == 2*xOffset + 1); - Q_ASSERT(d->rectImage.height() == 2*yOffset + 1); - - QMargins margins(xOffset, yOffset, xOffset, yOffset); - QTileRules rules(Qt::StretchTile, Qt::StretchTile); - //NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects - qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width()+pw, height()+pw), margins, d->rectImage, d->rectImage.rect(), margins, rules); - - if (d->smooth) { - p.setRenderHint(QPainter::Antialiasing, oldAA); - p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } - } -} - -/*! - \qmlproperty bool Rectangle::smooth - - Set this property if you want the item to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. - - \image rect-smooth.png -*/ - -QRectF QmlGraphicsRect::boundingRect() const -{ - Q_D(const QmlGraphicsRect); - return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxrect.h b/src/declarative/fx/qfxrect.h deleted file mode 100644 index 5154a8a..0000000 --- a/src/declarative/fx/qfxrect.h +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXRECT_H -#define QFXRECT_H - -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) -public: - QmlGraphicsPen(QObject *parent=0) - : QObject(parent), _width(1), _color("#000000"), _valid(false) - {} - - int width() const { return _width; } - void setWidth(int w); - - QColor color() const { return _color; } - void setColor(const QColor &c); - - bool isValid() { return _valid; }; - -Q_SIGNALS: - void penChanged(); - -private: - int _width; - QColor _color; - bool _valid; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject -{ - Q_OBJECT - - Q_PROPERTY(qreal position READ position WRITE setPosition) - Q_PROPERTY(QColor color READ color WRITE setColor) - -public: - QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} - - qreal position() const { return m_position; } - void setPosition(qreal position) { m_position = position; updateGradient(); } - - QColor color() const { return m_color; } - void setColor(const QColor &color) { m_color = color; updateGradient(); } - -private: - void updateGradient(); - -private: - qreal m_position; - QColor m_color; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QList *stops READ stops) - Q_CLASSINFO("DefaultProperty", "stops") - -public: - QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} - ~QmlGraphicsGradient() { delete m_gradient; } - - QList *stops() { return &m_stops; } - - const QGradient *gradient() const; - -Q_SIGNALS: - void updated(); - -private: - void doUpdate(); - -private: - QList m_stops; - mutable QGradient *m_gradient; - friend class QmlGraphicsGradientStop; -}; - -class QmlGraphicsRectPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) - Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) - Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) -public: - QmlGraphicsRect(QmlGraphicsItem *parent=0); - - QColor color() const; - void setColor(const QColor &); - - QmlGraphicsPen *border(); - - QmlGraphicsGradient *gradient() const; - void setGradient(QmlGraphicsGradient *gradient); - - qreal radius() const; - void setRadius(qreal radius); - - QRectF boundingRect() const; - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void colorChanged(); - void radiusChanged(); - -private Q_SLOTS: - void doUpdate(); - -private: - void generateRoundedRect(); - void generateBorderedRect(); - void drawRect(QPainter &painter); - -protected: - QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsRect) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPen) -QML_DECLARE_TYPE(QmlGraphicsGradientStop) -QML_DECLARE_TYPE(QmlGraphicsGradient) -QML_DECLARE_TYPE(QmlGraphicsRect) - -QT_END_HEADER - -#endif // QFXRECT_H diff --git a/src/declarative/fx/qfxrect_p.h b/src/declarative/fx/qfxrect_p.h deleted file mode 100644 index d67209e..0000000 --- a/src/declarative/fx/qfxrect_p.h +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXRECT_P_H -#define QFXRECT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGradient; -class QmlGraphicsRect; -class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsRect) - -public: - QmlGraphicsRectPrivate() : - color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) - { - } - - ~QmlGraphicsRectPrivate() - { - delete pen; - } - - void init() - { - } - - QColor getColor(); - QColor color; - QmlGraphicsGradient *gradient; - QmlGraphicsPen *getPen() { - if (!pen) { - Q_Q(QmlGraphicsRect); - pen = new QmlGraphicsPen; - QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); - } - return pen; - } - QmlGraphicsPen *pen; - qreal radius; - qreal paintmargin; - QPixmap rectImage; - - void setPaintMargin(qreal margin) - { - Q_Q(QmlGraphicsRect); - if (margin == paintmargin) - return; - q->prepareGeometryChange(); - paintmargin = margin; - } -}; - -QT_END_NAMESPACE - -#endif // QFXRECT_P_H diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp deleted file mode 100644 index e8e44cc..0000000 --- a/src/declarative/fx/qfxrepeater.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxrepeater.h" -#include "qfxrepeater_p.h" -#include "qmllistaccessor.h" -#include "qfxvisualitemmodel.h" -#include - - -QT_BEGIN_NAMESPACE -QmlGraphicsRepeaterPrivate::QmlGraphicsRepeaterPrivate() -: model(0), ownModel(false) -{ -} - -QmlGraphicsRepeaterPrivate::~QmlGraphicsRepeaterPrivate() -{ -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QmlGraphicsRepeater) - -/*! - \qmlclass Repeater - \inherits Item - - \brief The Repeater item allows you to repeat a component based on a model. - - The Repeater item is used when you want to create a large number of - similar items. For each entry in the model, an item is instantiated - in a context seeded with data from the model. If the repeater will - be instantiating a large number of instances, it may be more efficient to - use one of Qt Declarative's \l {xmlViews}{view items}. - - The model may be either an object list, a string list, a number or a Qt model. - In each case, the data element and the index is exposed to each instantiated - component. - - The index is always exposed as an accessible \c index property. - In the case of an object or string list, the data element (of type string - or object) is available as the \c modelData property. In the case of a Qt model, - all roles are available as named properties just like in the view classes. The - following example shows how to use the index property inside the instantiated - items. - - \snippet doc/src/snippets/declarative/repeater-index.qml 0 - - \image repeater-index.png - - Items instantiated by the Repeater are inserted, in order, as - children of the Repeater's parent. The insertion starts immediately after - the repeater's position in its parent stacking list. This is to allow - you to use a Repeater inside a layout. The following QML example shows how - the instantiated items would visually appear stacked between the red and - blue rectangles. - - \snippet doc/src/snippets/declarative/repeater.qml 0 - - \image repeater.png - - The repeater instance continues to own all items it instantiates, even - if they are otherwise manipulated. It is illegal to manually remove an item - created by the Repeater. - */ - -/*! - \internal - \class QmlGraphicsRepeater - \qmlclass Repeater - - XXX Repeater is very conservative in how it instatiates/deletes items. Also - new model entries will not be created and old ones will not be removed. - */ - -/*! - Create a new QmlGraphicsRepeater instance. - */ -QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsRepeaterPrivate), parent) -{ -} - -/*! - \internal - */ -QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ -} - -/*! - Destroy the repeater instance. All items it instantiated are also - destroyed. - */ -QmlGraphicsRepeater::~QmlGraphicsRepeater() -{ -} - -/*! - \qmlproperty any Repeater::model - - The model providing data for the repeater. - - The model may be either an object list, a string list, a number or a Qt model. - In each case, the data element and the index is exposed to each instantiated - component. The index is always exposed as an accessible \c index property. - In the case of an object or string list, the data element (of type string - or object) is available as the \c modelData property. In the case of a Qt model, - all roles are available as named properties just like in the view classes. - - As a special case the model can also be merely a number. In this case it will - create that many instances of the component. They will also be assigned an index - based on the order they are created. - - Models can also be created directly in QML, using a \l{ListModel} or \l{XmlListModel}. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsRepeater::model() const -{ - Q_D(const QmlGraphicsRepeater); - return d->dataSource; -} - -void QmlGraphicsRepeater::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsRepeater); - clear(); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - /* - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - */ - } - d->dataSource = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - /* - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - */ - regenerate(); - emit countChanged(); - } -} - -/*! - \qmlproperty Component Repeater::delegate - \default - - The delegate provides a template describing what each item instantiated by the repeater should look and act like. - */ -QmlComponent *QmlGraphicsRepeater::delegate() const -{ - Q_D(const QmlGraphicsRepeater); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsRepeater::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsRepeater); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - regenerate(); - } -} - -/*! - \qmlproperty int Repeater::count - - This property holds the number of items in the repeater. -*/ -int QmlGraphicsRepeater::count() const -{ - Q_D(const QmlGraphicsRepeater); - if (d->model) - return d->model->count(); - return 0; -} - - -/*! - \internal - */ -void QmlGraphicsRepeater::componentComplete() -{ - QmlGraphicsItem::componentComplete(); - regenerate(); -} - -/*! - \internal - */ -QVariant QmlGraphicsRepeater::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - QVariant rv = QmlGraphicsItem::itemChange(change, value); - if (change == ItemParentHasChanged) { - regenerate(); - } - - return rv; -} - -void QmlGraphicsRepeater::clear() -{ - Q_D(QmlGraphicsRepeater); - if (d->model) { - foreach (QmlGraphicsItem *item, d->deletables) - d->model->release(item); - } - d->deletables.clear(); -} - -/*! - \internal - */ -void QmlGraphicsRepeater::regenerate() -{ - Q_D(QmlGraphicsRepeater); - - clear(); - - if (!d->model || !d->model->count() || !d->model->isValid() || !parentItem() || !isComponentComplete()) - return; - - for (int ii = 0; ii < count(); ++ii) { - QmlGraphicsItem *item = d->model->item(ii); - if (item) { - item->setParent(parentItem()); - item->stackBefore(this); - d->deletables << item; - } - } -} - -void QmlGraphicsRepeater::itemsInserted(int, int) -{ - regenerate(); -} - -void QmlGraphicsRepeater::itemsRemoved(int, int) -{ - regenerate(); -} - -void QmlGraphicsRepeater::itemsMoved(int,int,int) -{ - regenerate(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxrepeater.h b/src/declarative/fx/qfxrepeater.h deleted file mode 100644 index f8a03cc..0000000 --- a/src/declarative/fx/qfxrepeater.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXREPEATER_H -#define QFXREPEATER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsRepeaterPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "delegate") - -public: - QmlGraphicsRepeater(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsRepeater(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int count() const; - -Q_SIGNALS: - void countChanged(); - -private: - void clear(); - void regenerate(); - -protected: - virtual void componentComplete(); - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - void itemsInserted(int,int); - void itemsRemoved(int,int); - void itemsMoved(int,int,int); - -private: - Q_DISABLE_COPY(QmlGraphicsRepeater) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsRepeater) - -QT_END_HEADER - -#endif // QFXREPEATER_H diff --git a/src/declarative/fx/qfxrepeater_p.h b/src/declarative/fx/qfxrepeater_p.h deleted file mode 100644 index eb35352..0000000 --- a/src/declarative/fx/qfxrepeater_p.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXREPEATER_P_H -#define QFXREPEATER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem_p.h" -#include "qfxrepeater.h" -#include - - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlGraphicsVisualModel; -class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsRepeater) - -public: - QmlGraphicsRepeaterPrivate(); - ~QmlGraphicsRepeaterPrivate(); - - QmlGraphicsVisualModel *model; - QVariant dataSource; - bool ownModel; - - QList > deletables; -}; - -QT_END_NAMESPACE -#endif // QFXREPEATER_P_H diff --git a/src/declarative/fx/qfxscalegrid.cpp b/src/declarative/fx/qfxscalegrid.cpp deleted file mode 100644 index 2012616..0000000 --- a/src/declarative/fx/qfxscalegrid.cpp +++ /dev/null @@ -1,212 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include "qfxscalegrid_p.h" - - -QT_BEGIN_NAMESPACE -/*! - \internal - \class QmlGraphicsScaleGrid - \brief The QmlGraphicsScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. -*/ -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsScaleGrid) - -QmlGraphicsScaleGrid::QmlGraphicsScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) -{ -} - -QmlGraphicsScaleGrid::~QmlGraphicsScaleGrid() -{ -} - -bool QmlGraphicsScaleGrid::isNull() const -{ - return !_left && !_top && !_right && !_bottom; -} - -void QmlGraphicsScaleGrid::setLeft(int pos) -{ - if (_left != pos) { - _left = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setTop(int pos) -{ - if (_top != pos) { - _top = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setRight(int pos) -{ - if (_right != pos) { - _right = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setBottom(int pos) -{ - if (_bottom != pos) { - _bottom = pos; - emit borderChanged(); - } -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage() -: _l(-1), _r(-1), _t(-1), _b(-1), - _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) -{ -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &o) -: _l(o._l), _r(o._r), _t(o._t), _b(o._b), _h(o._h), _v(o._v), _pix(o._pix) -{ -} - -QmlGraphicsGridScaledImage &QmlGraphicsGridScaledImage::operator=(const QmlGraphicsGridScaledImage &o) -{ - _l = o._l; - _r = o._r; - _t = o._t; - _b = o._b; - _h = o._h; - _v = o._v; - _pix = o._pix; - return *this; -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(QIODevice *data) -: _l(-1), _r(-1), _t(-1), _b(-1), _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) -{ - int l = -1; - int r = -1; - int t = -1; - int b = -1; - QString imgFile; - - while(!data->atEnd()) { - QString line = QString::fromUtf8(data->readLine().trimmed()); - if (line.isEmpty() || line.startsWith(QLatin1String("#"))) - continue; - - QStringList list = line.split(QLatin1Char(':')); - if (list.count() != 2) - return; - - list[0] = list[0].trimmed(); - list[1] = list[1].trimmed(); - - if (list[0] == QLatin1String("border.left")) - l = list[1].toInt(); - else if (list[0] == QLatin1String("border.right")) - r = list[1].toInt(); - else if (list[0] == QLatin1String("border.top")) - t = list[1].toInt(); - else if (list[0] == QLatin1String("border.bottom")) - b = list[1].toInt(); - else if (list[0] == QLatin1String("source")) - imgFile = list[1]; - else if (list[0] == QLatin1String("horizontalTileRule")) - _h = stringToRule(list[1]); - else if (list[0] == QLatin1String("verticalTileRule")) - _v = stringToRule(list[1]); - } - - if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) - return; - - _l = l; _r = r; _t = t; _b = b; - - _pix = imgFile; -} - -QmlGraphicsBorderImage::TileMode QmlGraphicsGridScaledImage::stringToRule(const QString &s) -{ - if (s == QLatin1String("Stretch")) - return QmlGraphicsBorderImage::Stretch; - if (s == QLatin1String("Repeat")) - return QmlGraphicsBorderImage::Repeat; - if (s == QLatin1String("Round")) - return QmlGraphicsBorderImage::Round; - - qWarning() << "Unknown tile rule specified. Using Stretch"; - return QmlGraphicsBorderImage::Stretch; -} - -bool QmlGraphicsGridScaledImage::isValid() const -{ - return _l >= 0; -} - -int QmlGraphicsGridScaledImage::gridLeft() const -{ - return _l; -} - -int QmlGraphicsGridScaledImage::gridRight() const -{ - return _r; -} - -int QmlGraphicsGridScaledImage::gridTop() const -{ - return _t; -} - -int QmlGraphicsGridScaledImage::gridBottom() const -{ - return _b; -} - -QString QmlGraphicsGridScaledImage::pixmapUrl() const -{ - return _pix; -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxscalegrid_p.h b/src/declarative/fx/qfxscalegrid_p.h deleted file mode 100644 index f065f9d..0000000 --- a/src/declarative/fx/qfxscalegrid_p.h +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXSCALEGRID_H -#define QFXSCALEGRID_H - -#include -#include -#include -#include -#include -#include "qfxborderimage.h" - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject -{ - Q_OBJECT - Q_ENUMS(TileRule) - - Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) - Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) - Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) - Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) - -public: - QmlGraphicsScaleGrid(QObject *parent=0); - ~QmlGraphicsScaleGrid(); - - bool isNull() const; - - int left() const { return _left; } - void setLeft(int); - - int top() const { return _top; } - void setTop(int); - - int right() const { return _right; } - void setRight(int); - - int bottom() const { return _bottom; } - void setBottom(int); - -Q_SIGNALS: - void borderChanged(); - -private: - int _left; - int _top; - int _right; - int _bottom; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage -{ -public: - QmlGraphicsGridScaledImage(); - QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); - QmlGraphicsGridScaledImage(QIODevice*); - QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); - bool isValid() const; - int gridLeft() const; - int gridRight() const; - int gridTop() const; - int gridBottom() const; - QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } - QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } - - QString pixmapUrl() const; - -private: - static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); - -private: - int _l; - int _r; - int _t; - int _b; - QmlGraphicsBorderImage::TileMode _h; - QmlGraphicsBorderImage::TileMode _v; - QString _pix; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsScaleGrid) - -QT_END_HEADER - -#endif // QFXSCALEGRID_H diff --git a/src/declarative/fx/qfxtext.cpp b/src/declarative/fx/qfxtext.cpp deleted file mode 100644 index 77b3ab4..0000000 --- a/src/declarative/fx/qfxtext.cpp +++ /dev/null @@ -1,840 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxtext.h" -#include "qfxtext_p.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QmlGraphicsText) - -/*! - \qmlclass Text QmlGraphicsText - \brief The Text item allows you to add formatted text to a scene. - \inherits Item - - It can display both plain and rich text. For example: - - \qml - Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } - Text { text: "Hello World!" } - \endqml - - \image declarative-text.png - - If height and width are not explicitly set, Text will attempt to determine how - much room is needed and set it accordingly. Unless \c wrap is set, it will always - prefer width to height (all text will be placed on a single line). - - The \c elide property can alternatively be used to fit a single line of - plain text to a set width. - - Text provides read-only text. For editable text, see \l TextEdit. -*/ - -/*! - \internal - \class QmlGraphicsText - \qmlclass Text - \ingroup group_coreitems - - \brief The QmlGraphicsText class provides a formatted text item that you can add to a QmlView. - - Text was designed for read-only text; it does not allow for any text editing. - It can display both plain and rich text. For example: - - \qml - Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } - Text { text: "Hello World!" } - \endqml - - \image text.png - - If height and width are not explicitly set, Text will attempt to determine how - much room is needed and set it accordingly. Unless \c wrap is set, it will always - prefer width to height (all text will be placed on a single line). - - The \c elide property can alternatively be used to fit a line of plain text to a set width. - - A QmlGraphicsText object can be instantiated in Qml using the tag \c Text. -*/ -QmlGraphicsText::QmlGraphicsText(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsTextPrivate), parent) -{ - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsText::QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsText::~QmlGraphicsText() -{ -} - -/*! - \qmlproperty string Text::font.family - \qmlproperty bool Text::font.bold - \qmlproperty bool Text::font.italic - \qmlproperty bool Text::font.underline - \qmlproperty real Text::font.pointSize - \qmlproperty int Text::font.pixelSize - - Set the Text's font attributes. -*/ -QFont QmlGraphicsText::font() const -{ - Q_D(const QmlGraphicsText); - return d->font; -} - -void QmlGraphicsText::setFont(const QFont &font) -{ - Q_D(QmlGraphicsText); - d->font = font; - - d->imgDirty = true; - d->updateSize(); - update(); -} - -void QmlGraphicsText::setText(const QString &n) -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer st; -#endif - Q_D(QmlGraphicsText); - if (d->text == n) - return; - - d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(n)); - if (d->richText) { - if (!d->doc) - { - d->control = new QTextControl(this); - d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); - d->doc = d->control->document(); - d->doc->setDocumentMargin(0); - } - d->doc->setHtml(n); - } - - d->text = n; - d->imgDirty = true; - d->updateSize(); - emit textChanged(d->text); - update(); -} - -/*! - \qmlproperty string Text::text - - The text to display. Text supports both plain and rich text strings. - - The item will try to automatically determine whether the text should - be treated as rich text. This determination is made using Qt::mightBeRichText(). -*/ -QString QmlGraphicsText::text() const -{ - Q_D(const QmlGraphicsText); - return d->text; -} - -void QmlGraphicsText::setColor(const QColor &color) -{ - Q_D(QmlGraphicsText); - if (d->color == color) - return; - - d->imgDirty = true; - d->color = color; - update(); -} - -/*! - \qmlproperty color Text::color - - The text color. - - \qml - //green text using hexadecimal notation - Text { color: "#00FF00"; ... } - - //steelblue text using SVG color name - Text { color: "steelblue"; ... } - \endqml -*/ - -QColor QmlGraphicsText::color() const -{ - Q_D(const QmlGraphicsText); - return d->color; -} - -/*! - \qmlproperty enumeration Text::style - - Set an additional text style. - - Supported text styles are \c Normal, \c Outline, \c Raised and \c Sunken. - - \qml - Row { - Text { font.pointSize: 24; text: "Normal" } - Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" } - Text { font.pointSize: 24; text: "Outline"; style: Text.Outline; styleColor: "red" } - Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" } - } - \endqml - - \image declarative-textstyle.png -*/ -QmlGraphicsText::TextStyle QmlGraphicsText::style() const -{ - Q_D(const QmlGraphicsText); - return d->style; -} - -void QmlGraphicsText::setStyle(QmlGraphicsText::TextStyle style) -{ - Q_D(QmlGraphicsText); - if (d->style == style) - return; - - d->imgDirty = true; - d->style = style; - update(); -} - -void QmlGraphicsText::setStyleColor(const QColor &color) -{ - Q_D(QmlGraphicsText); - if (d->styleColor == color) - return; - - d->imgDirty = true; - d->styleColor = color; - update(); -} - -/*! - \qmlproperty color Text::styleColor - - Defines the secondary color used by text styles. - - \c styleColor is used as the outline color for outlined text, and as the - shadow color for raised or sunken text. If no style has been set, it is not - used at all. - */ -QColor QmlGraphicsText::styleColor() const -{ - Q_D(const QmlGraphicsText); - return d->styleColor; -} - -/*! - \qmlproperty enumeration Text::horizontalAlignment - \qmlproperty enumeration Text::verticalAlignment - - Sets the horizontal and vertical alignment of the text within the Text items - width and height. By default, the text is top-left aligned. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom - and \c AlignVCenter. -*/ -QmlGraphicsText::HAlignment QmlGraphicsText::hAlign() const -{ - Q_D(const QmlGraphicsText); - return d->hAlign; -} - -void QmlGraphicsText::setHAlign(HAlignment align) -{ - Q_D(QmlGraphicsText); - d->hAlign = align; -} - -QmlGraphicsText::VAlignment QmlGraphicsText::vAlign() const -{ - Q_D(const QmlGraphicsText); - return d->vAlign; -} - -void QmlGraphicsText::setVAlign(VAlignment align) -{ - Q_D(QmlGraphicsText); - d->vAlign = align; -} - -/*! - \qmlproperty bool Text::wrap - - Set this property to wrap the text to the Text item's width. The text will only - wrap if an explicit width has been set. - - Wrapping is done on word boundaries (i.e. it is a "word-wrap"). If the text cannot be - word-wrapped to the specified width it will be partially drawn outside of the item's bounds. - If this is undesirable then enable clipping on the item (Item::clip). - - Wrapping is off by default. -*/ -//### Future may provide choice of wrap modes, such as QTextOption::WrapAtWordBoundaryOrAnywhere -bool QmlGraphicsText::wrap() const -{ - Q_D(const QmlGraphicsText); - return d->wrap; -} - -void QmlGraphicsText::setWrap(bool w) -{ - Q_D(QmlGraphicsText); - if (w == d->wrap) - return; - - d->wrap = w; - - d->imgDirty = true; - d->updateSize(); -} - -/*! - \qmlproperty enumeration Text::textFormat - - The way the text property should be displayed. - - Supported text formats are \c AutoText, \c PlainText and \c RichText. - - The default is AutoText. If the text format is AutoText the text element - will automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). - - \table - \row - \o - \qml -Column { - TextEdit { - font.pointSize: 24 - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "RichText" - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "PlainText" - text: "Hello World!" - } -} - \endqml - \o \image declarative-textformat.png - \endtable -*/ - -QmlGraphicsText::TextFormat QmlGraphicsText::textFormat() const -{ - Q_D(const QmlGraphicsText); - return d->format; -} - -void QmlGraphicsText::setTextFormat(TextFormat format) -{ - Q_D(QmlGraphicsText); - if (format == d->format) - return; - bool wasRich = d->richText; - d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); - - if (wasRich && !d->richText) { - //### delete control? (and vice-versa below) - d->imgDirty = true; - d->updateSize(); - update(); - } else if (!wasRich && d->richText) { - if (!d->doc) - { - d->control = new QTextControl(this); - d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); - d->doc = d->control->document(); - d->doc->setDocumentMargin(0); - } - d->doc->setHtml(d->text); - d->imgDirty = true; - d->updateSize(); - update(); - } - d->format = format; -} - -/*! - \qmlproperty enumeration Text::elide - - Set this property to elide parts of the text fit to the Text item's width. - The text will only elide if an explicit width has been set. - - This property cannot be used with wrap enabled or with rich text. - - Eliding can be \c ElideNone (the default), \c ElideLeft, \c ElideMiddle, or \c ElideRight. - - If the text is a multi-length string, and the mode is not \c ElideNone, - the first string that fits will be used, otherwise the last will be elided. - - Multi-length strings are ordered from longest to shortest, separated by the - Unicode "String Terminator" character \c U009C (write this in QML with \c{"\\x9C"}). -*/ -QmlGraphicsText::TextElideMode QmlGraphicsText::elideMode() const -{ - Q_D(const QmlGraphicsText); - return d->elideMode; -} - -void QmlGraphicsText::setElideMode(QmlGraphicsText::TextElideMode mode) -{ - Q_D(QmlGraphicsText); - if (mode == d->elideMode) - return; - - d->elideMode = mode; - - d->imgDirty = true; - d->updateSize(); -} - -void QmlGraphicsText::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - Q_D(QmlGraphicsText); - if (newGeometry.width() != oldGeometry.width()) { - if (d->wrap || d->elideMode != QmlGraphicsText::ElideNone) { - d->imgDirty = true; - d->updateSize(); - } - } - QmlGraphicsItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsTextPrivate::updateSize() -{ - Q_Q(QmlGraphicsText); - if (q->isComponentComplete()) { - QFontMetrics fm(font); - if (text.isEmpty()) { - q->setImplicitHeight(fm.height()); - return; - } - - int dy = q->height(); - QString tmp; - QSize size(0, 0); - - //setup instance of QTextLayout for all cases other than richtext - if (!richText) - { - tmp = text; - tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); - singleline = !tmp.contains(QChar::LineSeparator); - if (singleline && elideMode != QmlGraphicsText::ElideNone && q->widthValid()) - tmp = fm.elidedText(tmp,(Qt::TextElideMode)elideMode,q->width()); // XXX still worth layout...? - layout.clearLayout(); - layout.setFont(font); - layout.setText(tmp); - size = setupTextLayout(&layout); - cachedLayoutSize = size; - } - if (richText) { - singleline = false; // richtext can't elide or be optimized for single-line case - doc->setDefaultFont(font); - QTextOption option((Qt::Alignment)int(hAlign | vAlign)); - if (wrap) - option.setWrapMode(QTextOption::WordWrap); - else - option.setWrapMode(QTextOption::NoWrap); - doc->setDefaultTextOption(option); - if (wrap && !q->heightValid() && q->widthValid()) - doc->setTextWidth(q->width()); - else - doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) - dy -= (int)doc->size().height(); - } else { - dy -= size.height(); - } - int yoff = 0; - - if (q->heightValid()) { - if (vAlign == QmlGraphicsText::AlignBottom) - yoff = dy; - else if (vAlign == QmlGraphicsText::AlignVCenter) - yoff = dy/2; - } - q->setBaselineOffset(fm.ascent() + yoff); - - //### need to comfirm cost of always setting these for richText - q->setImplicitWidth(richText ? (int)doc->idealWidth() : size.width()); - q->setImplicitHeight(richText ? (int)doc->size().height() : size.height()); - } else { - dirty = true; - } -} - -// ### text layout handling should be profiled and optimized as needed -// what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); - -void QmlGraphicsTextPrivate::drawOutline() -{ - QPixmap img = QPixmap(imgCache.size()); - img.fill(Qt::transparent); - - QPainter ppm(&img); - - QPoint pos(imgCache.rect().topLeft()); - pos += QPoint(-1, 0); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(2, 0); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(-1, -1); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(0, 2); - ppm.drawPixmap(pos, imgStyleCache); - - pos += QPoint(0, -1); - ppm.drawPixmap(pos, imgCache); - ppm.end(); - - imgCache = img; -} - -void QmlGraphicsTextPrivate::drawOutline(int yOffset) -{ - QPixmap img = QPixmap(imgCache.size()); - img.fill(Qt::transparent); - - QPainter ppm(&img); - - QPoint pos(imgCache.rect().topLeft()); - pos += QPoint(0, yOffset); - ppm.drawPixmap(pos, imgStyleCache); - - pos += QPoint(0, -yOffset); - ppm.drawPixmap(pos, imgCache); - ppm.end(); - - imgCache = img; -} - -QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) -{ - Q_Q(QmlGraphicsText); - layout->setCacheEnabled(true); - - QFontMetrics fm = QFontMetrics(font); - - int height = 0; - qreal widthUsed = 0; - qreal lineWidth = 0; - - //set manual width - if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) - lineWidth = q->width(); - - layout->beginLayout(); - - while (1) { - QTextLine line = layout->createLine(); - if (!line.isValid()) - break; - - if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) - line.setLineWidth(lineWidth); - } - layout->endLayout(); - - for (int i = 0; i < layout->lineCount(); ++i) { - QTextLine line = layout->lineAt(i); - widthUsed = qMax(widthUsed, line.naturalTextWidth()); - line.setPosition(QPointF(0, height)); - height += int(line.height()); - } - return QSize((int)widthUsed, height); -} - -QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) -{ - //do layout - QSize size = cachedLayoutSize; - - int x = 0; - for (int i = 0; i < layout.lineCount(); ++i) { - QTextLine line = layout.lineAt(i); - if (hAlign == QmlGraphicsText::AlignLeft) { - x = 0; - } else if (hAlign == QmlGraphicsText::AlignRight) { - x = size.width() - (int)line.naturalTextWidth(); - } else if (hAlign == QmlGraphicsText::AlignHCenter) { - x = (size.width() - (int)line.naturalTextWidth()) / 2; - } - line.setPosition(QPoint(x, (int)line.y())); - } - - //paint text - QPixmap img(size); - if (!size.isEmpty()) { - img.fill(Qt::transparent); - QPainter p(&img); - if (drawStyle) { - p.setPen(styleColor); - } - else - p.setPen(color); - p.setFont(font); - layout.draw(&p, QPointF(0, 0)); - } - return img; -} - -QPixmap QmlGraphicsTextPrivate::richTextImage(bool drawStyle) -{ - QSize size = doc->size().toSize(); - - //paint text - QPixmap img(size); - img.fill(Qt::transparent); - QPainter p(&img); - - if (drawStyle) { - QPalette pal = control->palette(); - pal.setColor(QPalette::Text, styleColor); - control->setPalette(pal); - QTextOption colorOption; - colorOption.setFlags(QTextOption::SuppressColors); - doc->setDefaultTextOption(colorOption); - } else { - QPalette pal = control->palette(); - pal.setColor(QPalette::Text, color); - control->setPalette(pal); - } - control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size))); - if (drawStyle) - doc->setDefaultTextOption(QTextOption()); - return img; -} - -void QmlGraphicsTextPrivate::checkImgCache() -{ - if (!imgDirty) - return; - - bool empty = text.isEmpty(); - if (empty) { - imgCache = QPixmap(); - imgStyleCache = QPixmap(); - } else if (richText) { - imgCache = richTextImage(false); - if (style != QmlGraphicsText::Normal) - imgStyleCache = richTextImage(true); //### should use styleColor - } else { - imgCache = wrappedTextImage(false); - if (style != QmlGraphicsText::Normal) - imgStyleCache = wrappedTextImage(true); //### should use styleColor - } - if (!empty) - switch (style) { - case QmlGraphicsText::Outline: - drawOutline(); - break; - case QmlGraphicsText::Sunken: - drawOutline(-1); - break; - case QmlGraphicsText::Raised: - drawOutline(1); - break; - default: - break; - } - - imgDirty = false; -} - -void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsText); - d->checkImgCache(); - if (d->imgCache.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - int w = width(); - int h = height(); - - int x = 0; - int y = 0; - - switch (d->hAlign) { - case AlignLeft: - x = 0; - break; - case AlignRight: - x = w - d->imgCache.width(); - break; - case AlignHCenter: - x = (w - d->imgCache.width()) / 2; - break; - } - - switch (d->vAlign) { - case AlignTop: - y = 0; - break; - case AlignBottom: - y = h - d->imgCache.height(); - break; - case AlignVCenter: - y = (h - d->imgCache.height()) / 2; - break; - } - - bool needClip = !clip() && (d->imgCache.width() > width() || - d->imgCache.height() > height()); - - if (needClip) { - p->save(); - p->setClipRect(boundingRect(), Qt::IntersectClip); - } - p->drawPixmap(x, y, d->imgCache); - if (needClip) - p->restore(); - - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -/*! - \qmlproperty bool Text::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsText::componentComplete() -{ - Q_D(QmlGraphicsText); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - QmlGraphicsItem::componentComplete(); - if (d->dirty) { - d->updateSize(); - d->dirty = false; - } -} - -/*! - \overload - Handles the given mouse \a event. - */ -void QmlGraphicsText::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsText); - - if (!d->richText || !d->doc || d->control->anchorAt(event->pos()).isEmpty()) { - event->setAccepted(false); - d->activeLink = QString(); - } else { - d->activeLink = d->control->anchorAt(event->pos()); - } - - // ### may malfunction if two of the same links are clicked & dragged onto each other) - - if (!event->isAccepted()) - QmlGraphicsItem::mousePressEvent(event); - -} - -/*! - \qmlsignal Text::linkActivated(link) - - This handler is called when the user clicks on a link embedded in the text. -*/ - -/*! - \overload - Handles the given mouse \a event. - */ -void QmlGraphicsText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsText); - - // ### confirm the link, and send a signal out - if (d->richText && d->doc && d->activeLink == d->control->anchorAt(event->pos())) - emit linkActivated(d->activeLink); - else - event->setAccepted(false); - - if (!event->isAccepted()) - QmlGraphicsItem::mouseReleaseEvent(event); -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxtext.h b/src/declarative/fx/qfxtext.h deleted file mode 100644 index bc2fb4f..0000000 --- a/src/declarative/fx/qfxtext.h +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXT_H -#define QFXTEXT_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsTextPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(VAlignment) - Q_ENUMS(TextStyle) - Q_ENUMS(TextFormat) - Q_ENUMS(TextElideMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(TextStyle style READ style WRITE setStyle) - Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? - -public: - QmlGraphicsText(QmlGraphicsItem *parent=0); - ~QmlGraphicsText(); - - enum HAlignment { AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter }; - enum VAlignment { AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter }; - enum TextStyle { Normal, - Outline, - Raised, - Sunken }; - enum TextFormat { PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText }; - enum TextElideMode { ElideLeft = Qt::ElideLeft, - ElideRight = Qt::ElideRight, - ElideMiddle = Qt::ElideMiddle, - ElideNone = Qt::ElideNone }; - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - TextStyle style() const; - void setStyle(TextStyle style); - - QColor styleColor() const; - void setStyleColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - TextElideMode elideMode() const; - void setElideMode(TextElideMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(const QString &text); - void linkActivated(const QString &link); - -protected: - QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - -private: - Q_DISABLE_COPY(QmlGraphicsText) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsText) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxtext_p.h b/src/declarative/fx/qfxtext_p.h deleted file mode 100644 index 436aa08..0000000 --- a/src/declarative/fx/qfxtext_p.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXT_P_H -#define QFXTEXT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem.h" -#include "qfxitem_p.h" -#include "qml.h" -#include - -QT_BEGIN_NAMESPACE - -class QTextLayout; -class QTextDocument; -class QTextControl; - -class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsText) -public: - QmlGraphicsTextPrivate() - : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), - hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), - dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), - format(QmlGraphicsText::AutoText) - { - } - - void updateSize(); - void checkImgCache(); - - void drawOutline(); - void drawOutline(int yOffset); - - QPixmap wrappedTextImage(bool drawStyle); - QPixmap richTextImage(bool drawStyle); - QSize setupTextLayout(QTextLayout *layout); - - QString text; - QFont font; - QColor color; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QString activeLink; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsText::HAlignment hAlign; - QmlGraphicsText::VAlignment vAlign; - QmlGraphicsText::TextElideMode elideMode; - bool dirty; - bool wrap; - bool richText; - bool singleline; - QTextControl *control; - QTextDocument *doc; - QTextLayout layout; - QSize cachedLayoutSize; - QmlGraphicsText::TextFormat format; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp deleted file mode 100644 index ddb9194..0000000 --- a/src/declarative/fx/qfxtextedit.cpp +++ /dev/null @@ -1,1085 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include "qfxtextedit_p.h" -#include -#include -#include "qfxevents_p.h" -#include -#include -#include -#include - -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QmlGraphicsTextEdit) - -/*! - \qmlclass TextEdit - \brief The TextEdit item allows you to add editable formatted text to a scene. - - It can display both plain and rich text. For example: - - \qml -TextEdit { - id: edit - text: "Hello World!" - focus: true - font.family: "Helvetica" - font.pointSize: 20 - color: "blue" - width: 240 -} - \endqml - - \image declarative-textedit.gif - - \sa Text -*/ - -/*! - \internal - \class QmlGraphicsTextEdit - \qmlclass TextEdit - \ingroup group_coreitems - - \brief The QmlGraphicsTextEdit class provides an editable formatted text item that you can add to a QmlView. - - It can display both plain and rich text. - - \image declarative-textedit.png - - A QmlGraphicsTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. -*/ - -/*! - Constructs a new QmlGraphicsTextEdit. -*/ -QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsItem *parent) -: QmlGraphicsPaintedItem(*(new QmlGraphicsTextEditPrivate), parent) -{ - Q_D(QmlGraphicsTextEdit); - d->init(); -} - -/*! -\internal -*/ -QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - Q_D(QmlGraphicsTextEdit); - d->init(); -} - -QString QmlGraphicsTextEdit::text() const -{ - Q_D(const QmlGraphicsTextEdit); - - if (d->richText) - return d->document->toHtml(); - else - return d->document->toPlainText(); -} - -/*! - \qmlproperty string TextEdit::font.family - \qmlproperty bool TextEdit::font.bold - \qmlproperty bool TextEdit::font.italic - \qmlproperty bool TextEdit::font.underline - \qmlproperty real TextEdit::font.pointSize - \qmlproperty int TextEdit::font.pixelSize - - Set the TextEdit's font attributes. -*/ - -/*! - \qmlproperty string TextEdit::text - - The text to display. If the text format is AutoText the text edit will - automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). -*/ -void QmlGraphicsTextEdit::setText(const QString &text) -{ - Q_D(QmlGraphicsTextEdit); - if (QmlGraphicsTextEdit::text() == text) - return; - d->text = text; - d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); - if (d->richText) { - d->control->setHtml(text); - } else { - d->control->setPlainText(text); - } - q_textChanged(); - updateSize(); -} - -/*! - \qmlproperty enumeration TextEdit::textFormat - - The way the text property should be displayed. - - Supported text formats are \c AutoText, \c PlainText and \c RichText. - - The default is AutoText. If the text format is AutoText the text edit - will automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). - - \table - \row - \o - \qml -Column { - TextEdit { - font.pointSize: 24 - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "RichText" - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "PlainText" - text: "Hello World!" - } -} - \endqml - \o \image declarative-textformat.png - \endtable -*/ -QmlGraphicsTextEdit::TextFormat QmlGraphicsTextEdit::textFormat() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->format; -} - -void QmlGraphicsTextEdit::setTextFormat(TextFormat format) -{ - Q_D(QmlGraphicsTextEdit); - if (format == d->format) - return; - bool wasRich = d->richText; - d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); - - if (wasRich && !d->richText) { - d->control->setPlainText(d->text); - updateSize(); - } else if (!wasRich && d->richText) { - d->control->setHtml(d->text); - updateSize(); - } - d->format = format; -} - -QFont QmlGraphicsTextEdit::font() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->font; -} - -void QmlGraphicsTextEdit::setFont(const QFont &font) -{ - Q_D(QmlGraphicsTextEdit); - d->font = font; - - clearCache(); - d->document->setDefaultFont(d->font); - if(d->cursor){ - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); - } - updateSize(); - update(); -} - -/*! - \qmlproperty color TextEdit::color - - The text color. - - \qml -// green text using hexadecimal notation -TextEdit { color: "#00FF00"; ... } - -// steelblue text using SVG color name -TextEdit { color: "steelblue"; ... } - \endqml -*/ -QColor QmlGraphicsTextEdit::color() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->color; -} - -void QmlGraphicsTextEdit::setColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->color == color) - return; - - clearCache(); - d->color = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::Text, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty color TextEdit::selectionColor - - The text highlight color, used behind selections. -*/ -QColor QmlGraphicsTextEdit::selectionColor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->selectionColor; -} - -void QmlGraphicsTextEdit::setSelectionColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->selectionColor == color) - return; - - clearCache(); - d->selectionColor = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::Highlight, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty color TextEdit::selectedTextColor - - The selected text color, used in selections. -*/ -QColor QmlGraphicsTextEdit::selectedTextColor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->selectedTextColor; -} - -void QmlGraphicsTextEdit::setSelectedTextColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->selectedTextColor == color) - return; - - clearCache(); - d->selectedTextColor = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::HighlightedText, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty enumeration TextEdit::horizontalAlignment - \qmlproperty enumeration TextEdit::verticalAlignment - - Sets the horizontal and vertical alignment of the text within the TextEdit items - width and height. By default, the text is top-left aligned. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom - and \c AlignVCenter. -*/ -QmlGraphicsTextEdit::HAlignment QmlGraphicsTextEdit::hAlign() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->hAlign; -} - -void QmlGraphicsTextEdit::setHAlign(QmlGraphicsTextEdit::HAlignment alignment) -{ - Q_D(QmlGraphicsTextEdit); - if (alignment == d->hAlign) - return; - d->hAlign = alignment; - d->updateDefaultTextOption(); - updateSize(); -} - -QmlGraphicsTextEdit::VAlignment QmlGraphicsTextEdit::vAlign() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->vAlign; -} - -void QmlGraphicsTextEdit::setVAlign(QmlGraphicsTextEdit::VAlignment alignment) -{ - Q_D(QmlGraphicsTextEdit); - if (alignment == d->vAlign) - return; - d->vAlign = alignment; - d->updateDefaultTextOption(); - updateSize(); -} - -bool QmlGraphicsTextEdit::wrap() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->wrap; -} - -/*! - \qmlproperty bool TextEdit::wrap - - Set this property to wrap the text to the TextEdit item's width. - The text will only wrap if an explicit width has been set. - - Wrapping is done on word boundaries (i.e. it is a "word-wrap"). Wrapping is off by default. -*/ -void QmlGraphicsTextEdit::setWrap(bool w) -{ - Q_D(QmlGraphicsTextEdit); - if (w == d->wrap) - return; - d->wrap = w; - d->updateDefaultTextOption(); - updateSize(); -} - -/*! - \qmlproperty bool TextEdit::cursorVisible - If true the text edit shows a cursor. - - This property is set and unset when the text edit gets focus, but it can also - be set directly (useful, for example, if a KeyProxy might forward keys to it). -*/ -bool QmlGraphicsTextEdit::isCursorVisible() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->cursorVisible; -} - -void QmlGraphicsTextEdit::setCursorVisible(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->cursorVisible == on) - return; - d->cursorVisible = on; - QFocusEvent focusEvent(on ? QEvent::FocusIn : QEvent::FocusOut); - if (!on && !d->persistentSelection) - d->control->setCursorIsFocusIndicator(true); - d->control->processEvent(&focusEvent, QPointF(0, 0)); -} - -/*! - \qmlproperty int TextEdit::cursorPosition - The position of the cursor in the TextEdit. -*/ -int QmlGraphicsTextEdit::cursorPosition() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().position(); -} - -void QmlGraphicsTextEdit::setCursorPosition(int pos) -{ - Q_D(QmlGraphicsTextEdit); - QTextCursor cursor = d->control->textCursor(); - if (cursor.position() == pos) - return; - cursor.setPosition(pos); - d->control->setTextCursor(cursor); -} - -/*! - \qmlproperty Component TextEdit::cursorDelegate - The delegate for the cursor in the TextEdit. - - If you set a cursorDelegate for a TextEdit, this delegate will be used for - drawing the cursor instead of the standard cursor. An instance of the - delegate will be created and managed by the text edit when a cursor is - needed, and the x and y properties of delegate instance will be set so as - to be one pixel before the top left of the current character. - - Note that the root item of the delegate component must be a QmlGraphicsItem or - QmlGraphicsItem derived item. -*/ -QmlComponent* QmlGraphicsTextEdit::cursorDelegate() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->cursorComponent; -} - -void QmlGraphicsTextEdit::setCursorDelegate(QmlComponent* c) -{ - Q_D(QmlGraphicsTextEdit); - if(d->cursorComponent){ - if(d->cursor){ - disconnect(d->control, SIGNAL(cursorPositionChanged()), - this, SLOT(moveCursorDelegate())); - d->control->setCursorWidth(-1); - dirtyCache(cursorRect()); - delete d->cursor; - d->cursor = 0; - } - } - d->cursorComponent = c; - if(c && c->isReady()){ - loadCursorDelegate(); - }else{ - if(c) - connect(c, SIGNAL(statusChanged()), - this, SLOT(loadCursorDelegate())); - } -} - -void QmlGraphicsTextEdit::loadCursorDelegate() -{ - Q_D(QmlGraphicsTextEdit); - if(d->cursorComponent->isLoading()) - return; - d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); - if(d->cursor){ - connect(d->control, SIGNAL(cursorPositionChanged()), - this, SLOT(moveCursorDelegate())); - d->control->setCursorWidth(0); - dirtyCache(cursorRect()); - d->cursor->setParentItem(this); - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); - }else{ - qWarning() << QLatin1String("Error loading cursor delegate for TextEdit:") + objectName(); - } -} - -/*! - \qmlproperty int TextEdit::selectionStart - - The cursor position before the first character in the current selection. - Setting this and selectionEnd allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionStart to a value outside of - the current text, selectionStart will not be changed. - - \sa selectionEnd, cursorPosition, selectedText -*/ -int QmlGraphicsTextEdit::selectionStart() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectionStart(); -} - -void QmlGraphicsTextEdit::setSelectionStart(int s) -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionStart == s || s < 0 || s > text().length()) - return; - d->lastSelectionStart = s; - d->updateSelection();// Will emit the relevant signals -} - -/*! - \qmlproperty int TextEdit::selectionEnd - - The cursor position after the last character in the current selection. - Setting this and selectionStart allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionEnd to a value outside of - the current text, selectionEnd will not be changed. - - \sa selectionStart, cursorPosition, selectedText -*/ -int QmlGraphicsTextEdit::selectionEnd() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectionEnd(); -} - -void QmlGraphicsTextEdit::setSelectionEnd(int s) -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionEnd == s || s < 0 || s > text().length()) - return; - d->lastSelectionEnd = s; - d->updateSelection();// Will emit the relevant signals -} - -/*! - \qmlproperty string TextEdit::selectedText - - This read-only property provides the text currently selected in the - text edit. - - It is equivalent to the following snippet, but is faster and easier - to use. - \code - //myTextEdit is the id of the TextEdit - myTextEdit.text.toString().substring(myTextEdit.selectionStart, - myTextEdit.selectionEnd); - \endcode -*/ -QString QmlGraphicsTextEdit::selectedText() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectedText(); -} - -/*! - \qmlproperty bool TextEdit::focusOnPress - - Whether the TextEdit should gain focus on a mouse press. By default this is - set to false; -*/ -bool QmlGraphicsTextEdit::focusOnPress() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->focusOnPress; -} - -void QmlGraphicsTextEdit::setFocusOnPress(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->focusOnPress == on) - return; - d->focusOnPress = on; -} - -/*! - \qmlproperty bool TextEdit::persistentSelection - - Whether the TextEdit should keep the selection visible when it loses focus to another - item in the scene. By default this is set to true; -*/ -bool QmlGraphicsTextEdit::persistentSelection() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->persistentSelection; -} - -void QmlGraphicsTextEdit::setPersistentSelection(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->persistentSelection == on) - return; - d->persistentSelection = on; -} - -qreal QmlGraphicsTextEdit::textMargin() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->textMargin; -} - -void QmlGraphicsTextEdit::setTextMargin(qreal margin) -{ - Q_D(QmlGraphicsTextEdit); - if (d->textMargin == margin) - return; - d->textMargin = margin; - d->document->setDocumentMargin(d->textMargin); -} - -void QmlGraphicsTextEdit::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.width() != oldGeometry.width()) - updateSize(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -/*! - Ensures any delayed caching or data loading the class - needs to performed is complete. -*/ -void QmlGraphicsTextEdit::componentComplete() -{ - Q_D(QmlGraphicsTextEdit); - QmlGraphicsPaintedItem::componentComplete(); - if (d->dirty) { - updateSize(); - d->dirty = false; - } -} - -/*! - \qmlproperty bool TextEdit::readOnly - - Whether the user an interact with the TextEdit item. If this - property is set to true the text cannot be edited by user interaction. - - By default this property is false. -*/ -void QmlGraphicsTextEdit::setReadOnly(bool r) -{ - Q_D(QmlGraphicsTextEdit); - - Qt::TextInteractionFlags flags = Qt::NoTextInteraction; - if (r) { - flags = Qt::TextSelectableByMouse; - } else { - flags = Qt::TextEditorInteraction; - } - d->control->setTextInteractionFlags(flags); - if (!r) - d->control->moveCursor(QTextCursor::End); -} - -bool QmlGraphicsTextEdit::isReadOnly() const -{ - Q_D(const QmlGraphicsTextEdit); - return !(d->control->textInteractionFlags() & Qt::TextEditable); -} - -/*! - Sets how the text edit should interact with user input to the given - \a flags. -*/ -void QmlGraphicsTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) -{ - Q_D(QmlGraphicsTextEdit); - d->control->setTextInteractionFlags(flags); -} - -/*! - Returns the flags specifying how the text edit should interact - with user input. -*/ -Qt::TextInteractionFlags QmlGraphicsTextEdit::textInteractionFlags() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textInteractionFlags(); -} - -/*! - Returns the cursor for the point at the given \a pos on the - text edit. -*/ -QTextCursor QmlGraphicsTextEdit::cursorForPosition(const QPoint &pos) const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->cursorForPosition(pos); -} - -/*! - Returns the rectangle where the given text \a cursor is rendered - within the text edit. -*/ -QRect QmlGraphicsTextEdit::cursorRect(const QTextCursor &cursor) const -{ - Q_D(const QmlGraphicsTextEdit); - if (cursor.isNull()) - return QRect(); - - return d->control->cursorRect(cursor).toRect(); -} - -/*! - Returns the rectangle where the text cursor is rendered - within the text edit. -*/ -QRect QmlGraphicsTextEdit::cursorRect() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->cursorRect().toRect(); -} - - -/*! - Sets the text cursor for the text edit to the given \a cursor. -*/ -void QmlGraphicsTextEdit::setTextCursor(const QTextCursor &cursor) -{ - Q_D(QmlGraphicsTextEdit); - d->control->setTextCursor(cursor); -} - -/*! - Returns the text cursor for the text edit. -*/ -QTextCursor QmlGraphicsTextEdit::textCursor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor(); -} - -/*! -Moves the cursor by performing the given \a operation. - -If \a mode is QTextCursor::KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys. -*/ -void QmlGraphicsTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) -{ - Q_D(QmlGraphicsTextEdit); - d->control->moveCursor(operation, mode); -} - -/*! -\overload -Handles the given \a event. -*/ -bool QmlGraphicsTextEdit::event(QEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - if (event->type() == QEvent::ShortcutOverride) { - d->control->processEvent(event, QPointF(0, 0)); - return event->isAccepted(); - } - return QmlGraphicsPaintedItem::event(event); -} - -/*! -\overload -Handles the given key \a event. -*/ -void QmlGraphicsTextEdit::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - //### this causes non-standard cursor behavior in some cases. - // is it still needed? - /*QTextCursor c = textCursor(); - QTextCursor::MoveOperation op = QTextCursor::NoMove; - if (event == QKeySequence::MoveToNextChar) { - op = QTextCursor::Right; - } else if (event == QKeySequence::MoveToPreviousChar) { - op = QTextCursor::Left; - } else if (event == QKeySequence::MoveToNextWord) { - op = QTextCursor::WordRight; - } else if (event == QKeySequence::MoveToPreviousWord) { - op = QTextCursor::WordLeft; - } else if (event == QKeySequence::MoveToNextLine) { - op = QTextCursor::Down; - } else if (event == QKeySequence::MoveToPreviousLine) { - op = QTextCursor::Up; - } - - if (op != QTextCursor::NoMove && !c.movePosition(op)) - event->ignore(); - else*/ - d->control->processEvent(event, QPointF(0, 0)); - - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(event); -} - -/*! -\overload -Handles the given key \a event. -*/ -void QmlGraphicsTextEdit::keyReleaseEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyReleaseEvent(event); -} - -/*! - \overload - Handles changing of the focus property. Focus is applied to the control - even if the edit does not have active focus. This is because things - like KeyProxy can give the behavior of focus even when hasFocus() isn't - true. -*/ -void QmlGraphicsTextEdit::focusChanged(bool hasFocus) -{ - setCursorVisible(hasFocus); - QmlGraphicsItem::focusChanged(hasFocus); -} - -/*! - Causes all text to be selected. -*/ -void QmlGraphicsTextEdit::selectAll() -{ - Q_D(QmlGraphicsTextEdit); - d->control->selectAll(); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - if (d->focusOnPress) - setFocus(true); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mouseDoubleClickEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given input method \a event. -*/ -void QmlGraphicsTextEdit::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); -} - -/*! -\overload -Returns the value of the given \a property. -*/ -QVariant QmlGraphicsTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->inputMethodQuery(property); -} - -/*! -Draws the contents of the text edit using the given \a painter within -the given \a bounds. -*/ -void QmlGraphicsTextEdit::drawContents(QPainter *painter, const QRect &bounds) -{ - Q_D(QmlGraphicsTextEdit); - - painter->setRenderHint(QPainter::TextAntialiasing, true); - - d->control->drawContents(painter, bounds); -} - -void QmlGraphicsTextEdit::updateImgCache(const QRectF &r) -{ - dirtyCache(r.toRect()); - emit update(); -} - -/*! - \qmlproperty bool TextEdit::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsTextEditPrivate::init() -{ - Q_Q(QmlGraphicsTextEdit); - - q->setSmoothTransform(smooth); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemHasNoContents, false); - q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - - control = new QTextControl(q); - - QObject::connect(control, SIGNAL(updateRequest(QRectF)), q, SLOT(updateImgCache(QRectF))); - - QObject::connect(control, SIGNAL(textChanged()), q, SLOT(q_textChanged())); - QObject::connect(control, SIGNAL(selectionChanged()), q, SIGNAL(selectionChanged())); - QObject::connect(control, SIGNAL(selectionChanged()), q, SLOT(updateSelectionMarkers())); - QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SLOT(updateSelectionMarkers())); - QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SIGNAL(cursorPositionChanged())); - - document = control->document(); - document->setDefaultFont(font); - document->setDocumentMargin(textMargin); - document->setUndoRedoEnabled(false); // flush undo buffer. - document->setUndoRedoEnabled(true); - updateDefaultTextOption(); -} - -void QmlGraphicsTextEdit::q_textChanged() -{ - if (!widthValid()) - updateSize(); //### optimize: we get 3 calls to updateSize every time a letter is typed - emit textChanged(text()); -} - -void QmlGraphicsTextEdit::moveCursorDelegate() -{ - Q_D(QmlGraphicsTextEdit); - if(!d->cursor) - return; - QRectF cursorRect = d->control->cursorRect(); - d->cursor->setX(cursorRect.x()); - d->cursor->setY(cursorRect.y()); -} - -void QmlGraphicsTextEditPrivate::updateSelection() -{ - Q_Q(QmlGraphicsTextEdit); - QTextCursor cursor = control->textCursor(); - bool startChange = (lastSelectionStart != cursor.selectionStart()); - bool endChange = (lastSelectionEnd != cursor.selectionEnd()); - //### Is it worth calculating a more minimal set of movements? - cursor.beginEditBlock(); - cursor.setPosition(lastSelectionStart, QTextCursor::MoveAnchor); - cursor.setPosition(lastSelectionEnd, QTextCursor::KeepAnchor); - cursor.endEditBlock(); - control->setTextCursor(cursor); - if(startChange) - q->selectionStartChanged(); - if(endChange) - q->selectionEndChanged(); - startChange = (lastSelectionStart != control->textCursor().selectionStart()); - endChange = (lastSelectionEnd != control->textCursor().selectionEnd()); - if(startChange || endChange) - qWarning() << "QmlGraphicsTextEditPrivate::updateSelection() has failed you."; -} - -void QmlGraphicsTextEdit::updateSelectionMarkers() -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionStart != d->control->textCursor().selectionStart()){ - d->lastSelectionStart = d->control->textCursor().selectionStart(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->textCursor().selectionEnd()){ - d->lastSelectionEnd = d->control->textCursor().selectionEnd(); - emit selectionEndChanged(); - } -} - -//### we should perhaps be a bit smarter here -- depending on what has changed, we shouldn't -// need to do all the calculations each time -void QmlGraphicsTextEdit::updateSize() -{ - Q_D(QmlGraphicsTextEdit); - if (isComponentComplete()) { - QFontMetrics fm = QFontMetrics(d->font); - int dy = height(); - // ### assumes that if the width is set, the text will fill to edges - // ### (unless wrap is false, then clipping will occur) - if (widthValid()) - d->document->setTextWidth(width()); - dy -= (int)d->document->size().height(); - - int yoff = 0; - if (heightValid()) { - if (d->vAlign == AlignBottom) - yoff = dy; - else if (d->vAlign == AlignVCenter) - yoff = dy/2; - } - setBaselineOffset(fm.ascent() + yoff + d->textMargin); - - //### need to comfirm cost of always setting these - int newWidth = (int)d->document->idealWidth(); - d->document->setTextWidth(newWidth); // ### QTextDoc> Alignment will not work unless textWidth is set. Does Text need this line as well? - int cursorWidth = 1; - if(d->cursor) - cursorWidth = d->cursor->width(); - newWidth += cursorWidth; - if(!d->document->isEmpty()) - newWidth += 3;// ### Need a better way of accounting for space between char and cursor - // ### Setting the implicitWidth triggers another updateSize(), and unless there are bindings nothing has changed. - setImplicitWidth(newWidth); - setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); - - setContentsSize(QSize(width(), height())); - } else { - d->dirty = true; - } - emit update(); -} - -void QmlGraphicsTextEditPrivate::updateDefaultTextOption() -{ - QTextOption opt = document->defaultTextOption(); - int oldAlignment = opt.alignment(); - opt.setAlignment((Qt::Alignment)(int)(hAlign | vAlign)); - - QTextOption::WrapMode oldWrapMode = opt.wrapMode(); - - if (wrap) - opt.setWrapMode(QTextOption::WordWrap); - else - opt.setWrapMode(QTextOption::NoWrap); - - if (oldWrapMode == opt.wrapMode() && oldAlignment == opt.alignment()) - return; - document->setDefaultTextOption(opt); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxtextedit.h b/src/declarative/fx/qfxtextedit.h deleted file mode 100644 index 28eb180..0000000 --- a/src/declarative/fx/qfxtextedit.h +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXTEDIT_H -#define QFXTEXTEDIT_H - -#include -#include - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsTextEditPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(VAlignment) - Q_ENUMS(HAlignment) - Q_ENUMS(TextFormat) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) - Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) - -public: - QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - enum VAlignment { - AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter - }; - - enum TextFormat { - PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText - }; - - QString text() const; - void setText(const QString &); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int pos); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - bool focusOnPress() const; - void setFocusOnPress(bool on); - - bool persistentSelection() const; - void setPersistentSelection(bool on); - - qreal textMargin() const; - void setTextMargin(qreal margin); - - virtual void componentComplete(); - - /* FROM EDIT */ - void setReadOnly(bool); - bool isReadOnly() const; - - void setTextInteractionFlags(Qt::TextInteractionFlags flags); - Qt::TextInteractionFlags textInteractionFlags() const; - - QTextCursor cursorForPosition(const QPoint &pos) const; - QRect cursorRect(const QTextCursor &cursor) const; - QRect cursorRect() const; - - void setTextCursor(const QTextCursor &cursor); - QTextCursor textCursor() const; - - void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); - - QVariant inputMethodQuery(Qt::InputMethodQuery property) const; - -Q_SIGNALS: - void textChanged(const QString &); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectionChanged(); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateImgCache(const QRectF &rect); - void q_textChanged(); - void updateSelectionMarkers(); - void moveCursorDelegate(); - void loadCursorDelegate(); - -private: - void updateSize(); - -protected: - QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - bool event(QEvent *); - void keyPressEvent(QKeyEvent *); - void keyReleaseEvent(QKeyEvent *); - - void focusChanged(bool); - - // mouse filter? - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - - void inputMethodEvent(QInputMethodEvent *e); - - void drawContents(QPainter *, const QRect &); -private: - Q_DISABLE_COPY(QmlGraphicsTextEdit) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextEdit) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qfxtextedit_p.h b/src/declarative/fx/qfxtextedit_p.h deleted file mode 100644 index ca65109..0000000 --- a/src/declarative/fx/qfxtextedit_p.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXTEDIT_P_H -#define QFXTEXTEDIT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qfxitem.h" -#include "qfxpainteditem_p.h" -#include "qml.h" - - -QT_BEGIN_NAMESPACE -class QTextLayout; -class QTextDocument; -class QTextControl; -class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) - -public: - QmlGraphicsTextEditPrivate() - : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), - dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), - persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), - cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) - { - } - - void init(); - - void updateDefaultTextOption(); - void relayoutDocument(); - void updateSelection(); - - QString text; - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QString style; - QColor styleColor; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsTextEdit::HAlignment hAlign; - QmlGraphicsTextEdit::VAlignment vAlign; - bool dirty; - bool wrap; - bool richText; - bool cursorVisible; - bool focusOnPress; - bool persistentSelection; - qreal textMargin; - int lastSelectionStart; - int lastSelectionEnd; - QmlComponent* cursorComponent; - QmlGraphicsItem* cursor; - QmlGraphicsTextEdit::TextFormat format; - QTextDocument *document; - QTextControl *control; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp deleted file mode 100644 index 930768d..0000000 --- a/src/declarative/fx/qfxtextinput.cpp +++ /dev/null @@ -1,777 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qfxtextinput.h" -#include "qfxtextinput_p.h" -#include "qmlinfo.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QmlGraphicsTextInput); -QML_DEFINE_NOCREATE_TYPE(QValidator); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); - -/*! - \qmlclass TextInput - The TextInput item allows you to add an editable line of text to a scene. - - TextInput can only display a single line of text, and can only display - plain text. However it can provide addition input constraints on the text. - - Input constraints include setting a QValidator, an input mask, or a - maximum input length. -*/ -QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsItem* parent) - : QmlGraphicsPaintedItem(*(new QmlGraphicsTextInputPrivate), parent) -{ - Q_D(QmlGraphicsTextInput); - d->init(); -} - -/* - \internal -*/ -QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem* parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - Q_D(QmlGraphicsTextInput); - d->init(); -} - -QmlGraphicsTextInput::~QmlGraphicsTextInput() -{ -} - -/*! - \qmlproperty string TextInput::text - - The text in the TextInput. -*/ - -QString QmlGraphicsTextInput::text() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->text(); -} - -void QmlGraphicsTextInput::setText(const QString &s) -{ - Q_D(QmlGraphicsTextInput); - if(s == text()) - return; - d->control->setText(s); - //emit textChanged(); -} - -/*! - \qmlproperty string TextInput::font.family - \qmlproperty bool TextInput::font.bold - \qmlproperty bool TextInput::font.italic - \qmlproperty bool TextInput::font.underline - \qmlproperty real TextInput::font.pointSize - \qmlproperty int TextInput::font.pixelSize - - Set the TextInput's font attributes. -*/ -QFont QmlGraphicsTextInput::font() const -{ - Q_D(const QmlGraphicsTextInput); - return d->font; -} - -void QmlGraphicsTextInput::setFont(const QFont &font) -{ - Q_D(QmlGraphicsTextInput); - d->font = font; - - d->control->setFont(d->font); - if(d->cursorItem){ - d->cursorItem->setHeight(QFontMetrics(d->font).height()); - moveCursor(); - } - updateSize(); -} - -/*! - \qmlproperty color TextInput::color - - The text color. -*/ -QColor QmlGraphicsTextInput::color() const -{ - Q_D(const QmlGraphicsTextInput); - return d->color; -} - -void QmlGraphicsTextInput::setColor(const QColor &c) -{ - Q_D(QmlGraphicsTextInput); - d->color = c; -} - - -/*! - \qmlproperty color TextInput::selectionColor - - The text highlight color, used behind selections. -*/ -QColor QmlGraphicsTextInput::selectionColor() const -{ - Q_D(const QmlGraphicsTextInput); - return d->selectionColor; -} - -void QmlGraphicsTextInput::setSelectionColor(const QColor &color) -{ - Q_D(QmlGraphicsTextInput); - if (d->selectionColor == color) - return; - - d->selectionColor = color; - QPalette p = d->control->palette(); - p.setColor(QPalette::Highlight, d->selectionColor); - d->control->setPalette(p); -} - -/*! - \qmlproperty color TextInput::selectedTextColor - - The highlighted text color, used in selections. -*/ -QColor QmlGraphicsTextInput::selectedTextColor() const -{ - Q_D(const QmlGraphicsTextInput); - return d->selectedTextColor; -} - -void QmlGraphicsTextInput::setSelectedTextColor(const QColor &color) -{ - Q_D(QmlGraphicsTextInput); - if (d->selectedTextColor == color) - return; - - d->selectedTextColor = color; - QPalette p = d->control->palette(); - p.setColor(QPalette::HighlightedText, d->selectedTextColor); - d->control->setPalette(p); -} - -/*! - \qmlproperty enumeration TextInput::horizontalAlignment - - Sets the horizontal alignment of the text within the TextInput item's - width and height. By default, the text is left aligned. - - TextInput does not have vertical alignment, as the natural height is - exactly the height of the single line of text. If you set the height - manually to something larger, TextInput will always be top aligned - vertically. You can use anchors to align it however you want within - another item. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. -*/ -QmlGraphicsTextInput::HAlignment QmlGraphicsTextInput::hAlign() const -{ - Q_D(const QmlGraphicsTextInput); - return d->hAlign; -} - -void QmlGraphicsTextInput::setHAlign(HAlignment align) -{ - Q_D(QmlGraphicsTextInput); - d->hAlign = align; - //TODO: implement -} - -bool QmlGraphicsTextInput::isReadOnly() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->isReadOnly(); -} - -void QmlGraphicsTextInput::setReadOnly(bool ro) -{ - Q_D(QmlGraphicsTextInput); - d->control->setReadOnly(ro); -} - -int QmlGraphicsTextInput::maxLength() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->maxLength(); -} - -void QmlGraphicsTextInput::setMaxLength(int ml) -{ - Q_D(QmlGraphicsTextInput); - d->control->setMaxLength(ml); -} - -/*! - \qmlproperty bool TextInput::cursorVisible - If true the text edit shows a cursor. - - This property is set and unset when the line edit gets focus, but it can also - be set directly (useful, for example, if a KeyProxy might forward keys to it). -*/ -bool QmlGraphicsTextInput::isCursorVisible() const -{ - Q_D(const QmlGraphicsTextInput); - return d->cursorVisible; -} - -void QmlGraphicsTextInput::setCursorVisible(bool on) -{ - Q_D(QmlGraphicsTextInput); - if (d->cursorVisible == on) - return; - d->cursorVisible = on; - d->control->setCursorBlinkPeriod(on?QApplication::cursorFlashTime():0); - //d->control should emit the cursor update regions -} - -/*! - \qmlproperty int TextInput::cursorPosition - The position of the cursor in the TextInput. -*/ -int QmlGraphicsTextInput::cursorPosition() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->cursor(); -} -void QmlGraphicsTextInput::setCursorPosition(int cp) -{ - Q_D(QmlGraphicsTextInput); - d->control->moveCursor(cp); -} - -/*! - \internal - - Returns a Rect which encompasses the cursor, but which may be larger than is - required. Ignores custom cursor delegates. -*/ -QRect QmlGraphicsTextInput::cursorRect() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->cursorRect(); -} - -/*! - \qmlproperty int TextInput::selectionStart - - The cursor position before the first character in the current selection. - Setting this and selectionEnd allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionStart to a value outside of - the current text, selectionStart will not be changed. - - \sa selectionEnd, cursorPosition, selectedText -*/ -int QmlGraphicsTextInput::selectionStart() const -{ - Q_D(const QmlGraphicsTextInput); - return d->lastSelectionStart; -} - -void QmlGraphicsTextInput::setSelectionStart(int s) -{ - Q_D(QmlGraphicsTextInput); - if(d->lastSelectionStart == s || s < 0 || s > text().length()) - return; - d->lastSelectionStart = s; - d->control->setSelection(s, d->lastSelectionEnd - s); -} - -/*! - \qmlproperty int TextInput::selectionEnd - - The cursor position after the last character in the current selection. - Setting this and selectionStart allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionEnd to a value outside of - the current text, selectionEnd will not be changed. - - \sa selectionStart, cursorPosition, selectedText -*/ -int QmlGraphicsTextInput::selectionEnd() const -{ - Q_D(const QmlGraphicsTextInput); - return d->lastSelectionEnd; -} - -void QmlGraphicsTextInput::setSelectionEnd(int s) -{ - Q_D(QmlGraphicsTextInput); - if(d->lastSelectionEnd == s || s < 0 || s > text().length()) - return; - d->lastSelectionEnd = s; - d->control->setSelection(d->lastSelectionStart, s - d->lastSelectionStart); -} - -/*! - \qmlproperty string TextInput::selectedText - - This read-only property provides the text currently selected in the - text input. - - It is equivalent to the following snippet, but is faster and easier - to use. - - \qml - myTextInput.text.toString().substring(myTextInput.selectionStart, - myTextInput.selectionEnd); - \endqml -*/ -QString QmlGraphicsTextInput::selectedText() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->selectedText(); -} - -/*! - \qmlproperty bool TextInput::focusOnPress - - Whether the TextInput should gain focus on a mouse press. By default this is - set to true. -*/ -bool QmlGraphicsTextInput::focusOnPress() const -{ - Q_D(const QmlGraphicsTextInput); - return d->focusOnPress; -} - -void QmlGraphicsTextInput::setFocusOnPress(bool b) -{ - Q_D(QmlGraphicsTextInput); - d->focusOnPress = b; -} - -/*! - \qmlproperty QValidator* TextInput::validator - - Allows you to set a QValidator on the TextInput. When a validator is set - the TextInput will only accept input which leaves the text property in - an acceptable or intermediate state. The accepted signal will only be sent - if the text is in an acceptable state when enter is pressed. - - \sa acceptableInput, inputMask -*/ -QValidator* QmlGraphicsTextInput::validator() const -{ - Q_D(const QmlGraphicsTextInput); - //###const cast isn't good, but needed for property system? - return const_cast(d->control->validator()); -} - -void QmlGraphicsTextInput::setValidator(QValidator* v) -{ - Q_D(QmlGraphicsTextInput); - d->control->setValidator(v); - if(!d->control->hasAcceptableInput()){ - d->oldValidity = false; - emit acceptableInputChanged(); - } -} - -/*! - \qmlproperty string TextInput::inputMask - - Allows you to set an input mask on the TextInput, restricting the allowable - text inputs. See QLineEdit::inputMask for further details, as the exact - same mask strings are used by TextInput. - - \sa acceptableInput, validator -*/ -QString QmlGraphicsTextInput::inputMask() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->inputMask(); -} - -void QmlGraphicsTextInput::setInputMask(const QString &im) -{ - Q_D(QmlGraphicsTextInput); - d->control->setInputMask(im); -} - -/*! - \qmlproperty bool TextInput::acceptableInput - - This property is always true unless a validator or input mask has been set. - If a validator or input mask has been set, this property will only be true - if the current text is acceptable to the validator or input mask as a final - string (not as an intermediate string). -*/ -bool QmlGraphicsTextInput::hasAcceptableInput() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->hasAcceptableInput(); -} - -/*! - \qmlproperty TextInput.EchoMode TextInput::echoMode - - Specifies how the text should be displayed in the TextInput. - The default is Normal, which displays the text as it is. Other values - are Password, which displays asterixes instead of characters, NoEcho, - which displays nothing, and PasswordEchoOnEdit, which displays all but the - current character as asterixes. - -*/ -QmlGraphicsTextInput::EchoMode QmlGraphicsTextInput::echoMode() const -{ - Q_D(const QmlGraphicsTextInput); - return (QmlGraphicsTextInput::EchoMode)d->control->echoMode(); -} - -void QmlGraphicsTextInput::setEchoMode(QmlGraphicsTextInput::EchoMode echo) -{ - Q_D(QmlGraphicsTextInput); - d->control->setEchoMode((uint)echo); -} - -/*! - \qmlproperty Component TextInput::cursorDelegate - The delegate for the cursor in the TextInput. - - If you set a cursorDelegate for a TextInput, this delegate will be used for - drawing the cursor instead of the standard cursor. An instance of the - delegate will be created and managed by the TextInput when a cursor is - needed, and the x property of delegate instance will be set so as - to be one pixel before the top left of the current character. - - Note that the root item of the delegate component must be a QmlGraphicsItem or - QmlGraphicsItem derived item. -*/ -QmlComponent* QmlGraphicsTextInput::cursorDelegate() const -{ - Q_D(const QmlGraphicsTextInput); - return d->cursorComponent; -} - -void QmlGraphicsTextInput::setCursorDelegate(QmlComponent* c) -{ - Q_D(QmlGraphicsTextInput); - d->cursorComponent = c; - if(!c){ - //note that the components are owned by something else - disconnect(d->control, SIGNAL(cursorPositionChanged(int, int)), - this, SLOT(moveCursor())); - delete d->cursorItem; - }else{ - d->startCreatingCursor(); - } -} - -void QmlGraphicsTextInputPrivate::startCreatingCursor() -{ - Q_Q(QmlGraphicsTextInput); - q->connect(control, SIGNAL(cursorPositionChanged(int, int)), - q, SLOT(moveCursor())); - if(cursorComponent->isReady()){ - q->createCursor(); - }else if(cursorComponent->isLoading()){ - q->connect(cursorComponent, SIGNAL(statusChanged(int)), - q, SLOT(createCursor())); - }else{//isError - qmlInfo(QmlGraphicsTextInput::tr("Could not load cursor delegate"), q); - qWarning() << cursorComponent->errors(); - } -} - -void QmlGraphicsTextInput::createCursor() -{ - Q_D(QmlGraphicsTextInput); - if(d->cursorComponent->isError()){ - qmlInfo(tr("Could not load cursor delegate"),this); - qWarning() << d->cursorComponent->errors(); - return; - } - - if(!d->cursorComponent->isReady()) - return; - - if(d->cursorItem) - delete d->cursorItem; - d->cursorItem = qobject_cast(d->cursorComponent->create()); - if(!d->cursorItem){ - qmlInfo(tr("Could not instantiate cursor delegate"),this); - //The failed instantiation should print its own error messages - return; - } - - d->cursorItem->setParentItem(this); - d->cursorItem->setX(d->control->cursorToX()); - d->cursorItem->setHeight(d->control->height()); -} - -void QmlGraphicsTextInput::moveCursor() -{ - Q_D(QmlGraphicsTextInput); - if(!d->cursorItem) - return; - d->cursorItem->setX(d->control->cursorToX() - d->hscroll); -} - -int QmlGraphicsTextInput::xToPos(int x) -{ - Q_D(const QmlGraphicsTextInput); - return d->control->xToPos(x - d->hscroll); -} - -void QmlGraphicsTextInput::focusChanged(bool hasFocus) -{ - Q_D(QmlGraphicsTextInput); - d->focused = hasFocus; - setCursorVisible(hasFocus); - QmlGraphicsItem::focusChanged(hasFocus); -} - -void QmlGraphicsTextInput::keyPressEvent(QKeyEvent* ev) -{ - Q_D(QmlGraphicsTextInput); - if((d->control->cursor() == 0 && ev->key() == Qt::Key_Left) - || (d->control->cursor() == d->control->text().length() - && ev->key() == Qt::Key_Right)){ - //ignore when moving off the end - ev->ignore(); - }else{ - d->control->processKeyEvent(ev); - } - if (!ev->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(ev); -} - -void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextInput); - if(d->focusOnPress){ - setFocus(true); - setCursorVisible(true); - d->focused = true; - } - d->control->processEvent(event); -} - -bool QmlGraphicsTextInput::event(QEvent* ev) -{ - Q_D(QmlGraphicsTextInput); - //Anything we don't deal with ourselves, pass to the control - bool handled = false; - switch(ev->type()){ - case QEvent::KeyPress: - case QEvent::KeyRelease://###Should the control be doing anything with release? - case QEvent::GraphicsSceneMousePress: - break; - default: - handled = d->control->processEvent(ev); - } - if(!handled) - return QmlGraphicsPaintedItem::event(ev); - return true; -} - -void QmlGraphicsTextInput::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.width() != oldGeometry.width()) - updateSize(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsTextInput::drawContents(QPainter *p, const QRect &r) -{ - Q_D(QmlGraphicsTextInput); - p->setRenderHint(QPainter::TextAntialiasing, true); - p->save(); - p->setPen(QPen(d->color)); - int flags = QLineControl::DrawText; - if(!isReadOnly() && d->cursorVisible && !d->cursorItem) - flags |= QLineControl::DrawCursor; - if (d->control->hasSelectedText()){ - flags |= QLineControl::DrawSelections; - } - - QPoint offset = QPoint(0,0); - QRect clipRect = r; - d->control->draw(p, offset, clipRect, flags); - - p->restore(); -} - -void QmlGraphicsTextInput::selectAll() -{ - Q_D(QmlGraphicsTextInput); - d->control->setSelection(0, d->control->text().length()); -} - - -/*! - \qmlproperty bool TextInput::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsTextInputPrivate::init() -{ - Q_Q(QmlGraphicsTextInput); - control->setCursorWidth(1); - control->setPasswordCharacter(QLatin1Char('*')); - control->setLayoutDirection(Qt::LeftToRight); - q->setSmoothTransform(smooth); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemHasNoContents, false); - q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - q->connect(control, SIGNAL(cursorPositionChanged(int,int)), - q, SLOT(cursorPosChanged())); - q->connect(control, SIGNAL(selectionChanged()), - q, SLOT(selectionChanged())); - q->connect(control, SIGNAL(textChanged(const QString &)), - q, SLOT(q_textChanged())); - q->connect(control, SIGNAL(accepted()), - q, SIGNAL(accepted())); - q->connect(control, SIGNAL(updateNeeded(QRect)), - q, SLOT(updateRect(QRect))); - q->connect(control, SIGNAL(cursorPositionChanged(int,int)), - q, SLOT(updateRect()));//TODO: Only update rect between pos's - q->connect(control, SIGNAL(selectionChanged()), - q, SLOT(updateRect()));//TODO: Only update rect in selection - //Note that above TODOs probably aren't that big a savings - q->updateSize(); - oldValidity = control->hasAcceptableInput(); - lastSelectionStart = 0; - lastSelectionEnd = 0; -} - -void QmlGraphicsTextInput::cursorPosChanged() -{ - Q_D(QmlGraphicsTextInput); - emit cursorPositionChanged(); - - if(!d->control->hasSelectedText()){ - if(d->lastSelectionStart != d->control->cursor()){ - d->lastSelectionStart = d->control->cursor(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->cursor()){ - d->lastSelectionEnd = d->control->cursor(); - emit selectionEndChanged(); - } - } -} - -void QmlGraphicsTextInput::selectionChanged() -{ - Q_D(QmlGraphicsTextInput); - emit selectedTextChanged(); - - if(d->lastSelectionStart != d->control->selectionStart()){ - d->lastSelectionStart = d->control->selectionStart(); - if(d->lastSelectionStart == -1) - d->lastSelectionStart = d->control->cursor(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->selectionEnd()){ - d->lastSelectionEnd = d->control->selectionEnd(); - if(d->lastSelectionEnd == -1) - d->lastSelectionEnd = d->control->cursor(); - emit selectionEndChanged(); - } -} - -void QmlGraphicsTextInput::q_textChanged() -{ - Q_D(QmlGraphicsTextInput); - updateSize(); - emit textChanged(); - if(hasAcceptableInput() != d->oldValidity){ - d->oldValidity = hasAcceptableInput(); - emit acceptableInputChanged(); - } -} - -void QmlGraphicsTextInput::updateRect(const QRect &r) -{ - if(r == QRect()) - clearCache(); - else - dirtyCache(r); - update(); -} - -void QmlGraphicsTextInput::updateSize(bool needsRedraw) -{ - Q_D(QmlGraphicsTextInput); - int w = width(); - int h = height(); - setImplicitHeight(d->control->height()); - int cursorWidth = d->control->cursorWidth(); - if(d->cursorItem) - cursorWidth = d->cursorItem->width(); - //### Is QFontMetrics too slow? - QFontMetricsF fm(d->font); - setImplicitWidth(fm.width(d->control->displayText())+cursorWidth); - setContentsSize(QSize(width(), height()));//Repaints if changed - if(w==width() && h==height() && needsRedraw){ - clearCache(); - update(); - } -} - -QT_END_NAMESPACE - diff --git a/src/declarative/fx/qfxtextinput.h b/src/declarative/fx/qfxtextinput.h deleted file mode 100644 index ada32f9..0000000 --- a/src/declarative/fx/qfxtextinput.h +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXTINPUT_H -#define QFXTEXTINPUT_H - -#include "qfxtext.h" -#include "qfxpainteditem.h" -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsTextInputPrivate; -class QValidator; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(EchoMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) - - Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) - Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) - Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) - Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) - Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - -public: - QmlGraphicsTextInput(QmlGraphicsItem* parent=0); - ~QmlGraphicsTextInput(); - - enum EchoMode {//To match QLineEdit::EchoMode - Normal, - NoEcho, - Password, - PasswordEchoOnEdit - }; - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - //### Should we have this function, x based properties, - //### or copy TextEdit with x instead of QTextCursor? - Q_INVOKABLE int xToPos(int x); - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - bool isReadOnly() const; - void setReadOnly(bool); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int cp); - - QRect cursorRect() const; - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - int maxLength() const; - void setMaxLength(int ml); - - QValidator * validator() const; - void setValidator(QValidator* v); - - QString inputMask() const; - void setInputMask(const QString &im); - - EchoMode echoMode() const; - void setEchoMode(EchoMode echo); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - bool focusOnPress() const; - void setFocusOnPress(bool); - - bool hasAcceptableInput() const; - - void drawContents(QPainter *p,const QRect &r); -Q_SIGNALS: - void textChanged(); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectedTextChanged(); - void accepted(); - void acceptableInputChanged(); - -protected: - QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void keyPressEvent(QKeyEvent* ev); - bool event(QEvent *e); - - void focusChanged(bool hasFocus); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateSize(bool needsRedraw = true); - void q_textChanged(); - void selectionChanged(); - void createCursor(); - void moveCursor(); - void cursorPosChanged(); - void updateRect(const QRect &r = QRect()); - -private: - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextInput) -QML_DECLARE_TYPE(QValidator) -QML_DECLARE_TYPE(QIntValidator) - -QT_END_HEADER - -#endif // QFXTEXTINPUT_H diff --git a/src/declarative/fx/qfxtextinput_p.h b/src/declarative/fx/qfxtextinput_p.h deleted file mode 100644 index be8c946..0000000 --- a/src/declarative/fx/qfxtextinput_p.h +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXTEXTINPUT_P_H -#define QFXTEXTINPUT_P_H - -#include "qfxtextinput.h" -#include "qml.h" -#include "qfxpainteditem_p.h" -#include "private/qlinecontrol_p.h" -#include -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. - -QT_BEGIN_NAMESPACE - -class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsTextInput) -public: - QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), - color((QRgb)0), style(QmlGraphicsText::Normal), - styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), - hscroll(0), oldScroll(0), focused(false), focusOnPress(true), - cursorVisible(false) - { - } - - ~QmlGraphicsTextInputPrivate() - { - delete control; - } - - void init(); - void startCreatingCursor(); - - QLineControl* control; - - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QmlGraphicsTextInput::HAlignment hAlign; - QPointer cursorComponent; - QPointer cursorItem; - - int lastSelectionStart; - int lastSelectionEnd; - int oldHeight; - int oldWidth; - bool oldValidity; - int hscroll; - int oldScroll; - bool focused; - bool focusOnPress; - bool cursorVisible; -}; - -QT_END_NAMESPACE - -#endif - diff --git a/src/declarative/fx/qfxvisualitemmodel.cpp b/src/declarative/fx/qfxvisualitemmodel.cpp deleted file mode 100644 index 681e360..0000000 --- a/src/declarative/fx/qfxvisualitemmodel.cpp +++ /dev/null @@ -1,1032 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qlistmodelinterface.h" -#include "qfxitem.h" -#include -#include -#include "qmlpackage.h" -#include "qhash.h" -#include "qlist.h" -#include "private/qobject_p.h" -#include "private/qmetaobjectbuilder_p.h" -#include "qmlopenmetaobject.h" -#include "qmllistaccessor.h" -#include "qmlinfo.h" -#include "qfxvisualitemmodel.h" -#include "private/qguard_p.h" -#include - -QML_DECLARE_TYPE(QListModelInterface) - -QT_BEGIN_NAMESPACE - -class QmlGraphicsVisualItemModelAttached : public QObject -{ - Q_OBJECT - -public: - QmlGraphicsVisualItemModelAttached(QObject *parent) - : QObject(parent), m_index(0) {} - ~QmlGraphicsVisualItemModelAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(int index READ index NOTIFY indexChanged) - int index() const { return m_index; } - void setIndex(int idx) { - if (m_index != idx) { - m_index = idx; - emit indexChanged(); - } - } - - static QmlGraphicsVisualItemModelAttached *properties(QObject *obj) { - QmlGraphicsVisualItemModelAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsVisualItemModelAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - -Q_SIGNALS: - void indexChanged(); - -public: - int m_index; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsVisualItemModelAttached::attachedProperties; - - -class QmlGraphicsVisualItemModelPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsVisualItemModel) -public: - QmlGraphicsVisualItemModelPrivate() : QObjectPrivate(), children(this) {} - - struct ItemList : public QmlConcreteList - { - ItemList(QmlGraphicsVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} - - void append(QmlGraphicsItem *item); - - QmlGraphicsVisualItemModelPrivate *model; - }; - - void itemAppended() { - Q_Q(QmlGraphicsVisualItemModel); - QmlGraphicsVisualItemModelAttached *attached = QmlGraphicsVisualItemModelAttached::properties(children.last()); - attached->setIndex(children.count()-1); - emit q->itemsInserted(children.count()-1, 1); - emit q->countChanged(); - } - - void emitChildrenChanged() { - Q_Q(QmlGraphicsVisualItemModel); - emit q->childrenChanged(); - } - ItemList children; -}; - - -/*! - \qmlclass VisualItemModel QmlGraphicsVisualItemModel - \brief The VisualItemModel allows items to be provided to a view. - - The children of the VisualItemModel are provided in a model which - can be used in a view. Note that no delegate should be - provided to a view since the VisualItemModel contains the - visual delegate (items). - - An item can determine its index within the - model via the VisualItemModel.index attached property. - - The example below places three colored rectangles in a ListView. - \code - Item { - VisualItemModel { - id: itemModel - Rectangle { height: 30; width: 80; color: "red" } - Rectangle { height: 30; width: 80; color: "green" } - Rectangle { height: 30; width: 80; color: "blue" } - } - - ListView { - anchors.fill: parent - model: itemModel - } - } - \endcode -*/ -QmlGraphicsVisualItemModel::QmlGraphicsVisualItemModel() - : QmlGraphicsVisualModel(*(new QmlGraphicsVisualItemModelPrivate)) -{ -} - -QmlList *QmlGraphicsVisualItemModel::children() -{ - Q_D(QmlGraphicsVisualItemModel); - return &(d->children); -} - -/*! - \qmlproperty int VisualItemModel::count - - The number of items in the model. This property is readonly. -*/ -int QmlGraphicsVisualItemModel::count() const -{ - Q_D(const QmlGraphicsVisualItemModel); - return d->children.count(); -} - -bool QmlGraphicsVisualItemModel::isValid() const -{ - return true; -} - -QmlGraphicsItem *QmlGraphicsVisualItemModel::item(int index, bool) -{ - Q_D(QmlGraphicsVisualItemModel); - return d->children.at(index); -} - -QmlGraphicsVisualModel::ReleaseFlags QmlGraphicsVisualItemModel::release(QmlGraphicsItem *) -{ - // Nothing to do - return 0; -} - -void QmlGraphicsVisualItemModel::completeItem() -{ - // Nothing to do -} - -QVariant QmlGraphicsVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) -{ - Q_D(QmlGraphicsVisualItemModel); - QmlContext *ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - ctxt->addDefaultObject(d->children.at(index)); - QmlExpression e(ctxt, expression, objectContext); - e.setTrackChange(false); - QVariant value = e.value(); - delete ctxt; - return value; -} - -int QmlGraphicsVisualItemModel::indexOf(QmlGraphicsItem *item, QObject *) const -{ - Q_D(const QmlGraphicsVisualItemModel); - return d->children.indexOf(item); -} - -void QmlGraphicsVisualItemModelPrivate::ItemList::append(QmlGraphicsItem *item) -{ - QmlConcreteList::append(item); - item->QObject::setParent(model->q_ptr); - model->itemAppended(); - - model->emitChildrenChanged(); -} - -QmlGraphicsVisualItemModelAttached *QmlGraphicsVisualItemModel::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsVisualItemModelAttached::properties(obj); -} - - -class QmlGraphicsVisualDataModelParts; -class QmlGraphicsVisualDataModelData; -class QmlGraphicsVisualDataModelPrivate : public QObjectPrivate -{ -public: - QmlGraphicsVisualDataModelPrivate(QmlContext *); - - static QmlGraphicsVisualDataModelPrivate *get(QmlGraphicsVisualDataModel *m) { - return static_cast(QObjectPrivate::get(m)); - } - - QGuard m_listModelInterface; - QGuard m_abstractItemModel; - QGuard m_visualItemModel; - QString m_part; - - QmlComponent *m_delegate; - QmlContext *m_context; - QList m_roles; - QHash m_roleNames; - void ensureRoles() { - if (m_roleNames.isEmpty()) { - if (m_listModelInterface) { - m_roles = m_listModelInterface->roles(); - for (int ii = 0; ii < m_roles.count(); ++ii) - m_roleNames.insert(m_listModelInterface->toString(m_roles.at(ii)), m_roles.at(ii)); - if (m_roles.count() == 1) - m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); - } else if (m_abstractItemModel) { - for (QHash::const_iterator it = m_abstractItemModel->roleNames().begin(); - it != m_abstractItemModel->roleNames().end(); ++it) { - m_roles.append(it.key()); - m_roleNames.insert(QString::fromUtf8(*it), it.key()); - } - if (m_roles.count() == 1) - m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); - } else if (m_listAccessor) { - m_roleNames.insert(QLatin1String("modelData"), 0); - if (m_listAccessor->type() == QmlListAccessor::Instance) { - if (QObject *object = m_listAccessor->at(0).value()) { - int count = object->metaObject()->propertyCount(); - for (int ii = 1; ii < count; ++ii) { - const QMetaProperty &prop = object->metaObject()->property(ii); - m_roleNames.insert(QString::fromUtf8(prop.name()), 0); - } - } - } - } - } - } - - struct ObjectRef { - ObjectRef(QObject *object=0) : obj(object), ref(1) {} - QObject *obj; - int ref; - }; - class Cache : public QHash { - public: - QObject *getItem(int index) { - QObject *item = 0; - QHash::iterator it = find(index); - if (it != end()) { - (*it).ref++; - item = (*it).obj; - } - return item; - } - QObject *item(int index) { - QObject *item = 0; - QHash::const_iterator it = find(index); - if (it != end()) - item = (*it).obj; - return item; - } - void insertItem(int index, QObject *obj) { - insert(index, ObjectRef(obj)); - } - bool releaseItem(QObject *obj) { - QHash::iterator it = begin(); - for (; it != end(); ++it) { - ObjectRef &objRef = *it; - if (objRef.obj == obj) { - if (--objRef.ref == 0) { - erase(it); - return true; - } - break; - } - } - return false; - } - }; - - Cache m_cache; - QHash m_packaged; - - QmlGraphicsVisualDataModelParts *m_parts; - friend class QmlGraphicsVisualItemParts; - - QmlGraphicsVisualDataModelData *data(QObject *item); - - QVariant m_modelVariant; - QmlListAccessor *m_listAccessor; - - int modelCount() const { - if (m_visualItemModel) - return m_visualItemModel->count(); - if (m_listModelInterface) - return m_listModelInterface->count(); - if (m_abstractItemModel) - return m_abstractItemModel->rowCount(); - if (m_listAccessor) - return m_listAccessor->count(); - return 0; - } -}; - -class QmlGraphicsVisualDataModelDataMetaObject : public QmlOpenMetaObject -{ -public: - QmlGraphicsVisualDataModelDataMetaObject(QObject *parent) - : QmlOpenMetaObject(parent) {} - - virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); - virtual int createProperty(const char *, const char *); - -private: - friend class QmlGraphicsVisualDataModelData; - QList roles; -}; - -class QmlGraphicsVisualDataModelData : public QObject -{ -Q_OBJECT -public: - QmlGraphicsVisualDataModelData(int index, QmlGraphicsVisualDataModel *model); - ~QmlGraphicsVisualDataModelData(); - - Q_PROPERTY(int index READ index NOTIFY indexChanged) - int index() const; - void setIndex(int index); - - int count() const; - int role(int) const; - void setValue(int, const QVariant &); - -Q_SIGNALS: - void indexChanged(); - -private: - friend class QmlGraphicsVisualDataModelDataMetaObject; - int m_index; - QGuard m_model; - QmlGraphicsVisualDataModelDataMetaObject *m_meta; -}; - -int QmlGraphicsVisualDataModelData::count() const -{ - return m_meta->count(); -} - -int QmlGraphicsVisualDataModelData::role(int id) const -{ - Q_ASSERT(id >= 0 && id < count()); - return m_meta->roles.at(id); -} - -void QmlGraphicsVisualDataModelData::setValue(int id, const QVariant &val) -{ - m_meta->setValue(id, val); -} - -int QmlGraphicsVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) -{ - QmlGraphicsVisualDataModelData *data = - static_cast(object()); - - if (!data->m_model) - return -1; - - QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); - - if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { - model->ensureRoles(); - if (model->m_roleNames.contains(QString::fromUtf8(name))) { - return QmlOpenMetaObject::createProperty(name, type); - } else if (model->m_listAccessor->type() == QmlListAccessor::QmlList) { - QObject *object = model->m_listAccessor->at(data->m_index).value(); - if (object && object->property(name).isValid()) - return QmlOpenMetaObject::createProperty(name, type); - } - } else { - model->ensureRoles(); - QString sname = QString::fromUtf8(name); - if (model->m_roleNames.contains(sname)) - return QmlOpenMetaObject::createProperty(name, type); - } - return -1; -} - -QVariant -QmlGraphicsVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) -{ - prop.setWritable(false); - - QmlGraphicsVisualDataModelData *data = - static_cast(object()); - - Q_ASSERT(data->m_model); - QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); - - QString name = QString::fromUtf8(prop.name()); - if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { - if (name == QLatin1String("modelData")) { - if (model->m_listAccessor->type() == QmlListAccessor::Instance) { - QObject *object = model->m_listAccessor->at(0).value(); - return object->metaObject()->property(1).read(object); // the first property after objectName - } - return model->m_listAccessor->at(data->m_index); - } else { - // return any property of a single object instance. - QObject *object = model->m_listAccessor->at(data->m_index).value(); - return object->property(prop.name()); - } - } else if (model->m_listModelInterface) { - model->ensureRoles(); - QHash::const_iterator it = model->m_roleNames.find(name); - if (it != model->m_roleNames.end()) { - roles.append(*it); - QHash values = model->m_listModelInterface->data(data->m_index, QList() << *it); - if (values.isEmpty()) - return QVariant(); - else - return values.value(*it); - } else if (model->m_roles.count() == 1 && name == QLatin1String("modelData")) { - //for compatability with other lists, assign modelData if there is only a single role - QHash values = model->m_listModelInterface->data(data->m_index, QList() << model->m_roles.first()); - if (values.isEmpty()) - return QVariant(); - else - return *values.begin(); - } - } else if (model->m_abstractItemModel) { - model->ensureRoles(); - QHash::const_iterator it = model->m_roleNames.find(name); - if (it != model->m_roleNames.end()) { - roles.append(*it); - QModelIndex index = model->m_abstractItemModel->index(data->m_index, 0); - return model->m_abstractItemModel->data(index, *it); - } - } - Q_ASSERT(!"Can never be reached"); - return QVariant(); -} - -QmlGraphicsVisualDataModelData::QmlGraphicsVisualDataModelData(int index, - QmlGraphicsVisualDataModel *model) -: m_index(index), m_model(model), - m_meta(new QmlGraphicsVisualDataModelDataMetaObject(this)) -{ -} - -QmlGraphicsVisualDataModelData::~QmlGraphicsVisualDataModelData() -{ -} - -int QmlGraphicsVisualDataModelData::index() const -{ - return m_index; -} - -// This is internal only - it should not be set from qml -void QmlGraphicsVisualDataModelData::setIndex(int index) -{ - m_index = index; - emit indexChanged(); -} - -class QmlGraphicsVisualDataModelPartsMetaObject : public QmlOpenMetaObject -{ -public: - QmlGraphicsVisualDataModelPartsMetaObject(QObject *parent) - : QmlOpenMetaObject(parent) {} - - virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); -}; - -class QmlGraphicsVisualDataModelParts : public QObject -{ -Q_OBJECT -public: - QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent); - -private: - friend class QmlGraphicsVisualDataModelPartsMetaObject; - QmlGraphicsVisualDataModel *model; -}; - -QVariant -QmlGraphicsVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) -{ - prop.setWritable(false); - - QmlGraphicsVisualDataModel *m = new QmlGraphicsVisualDataModel; - m->setParent(object()); - m->setPart(QString::fromUtf8(prop.name())); - m->setModel(QVariant::fromValue(static_cast(object())->model)); - - QVariant var = QVariant::fromValue((QObject *)m); - return var; -} - -QmlGraphicsVisualDataModelParts::QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent) -: QObject(parent), model(parent) -{ - new QmlGraphicsVisualDataModelPartsMetaObject(this); -} - -QmlGraphicsVisualDataModelPrivate::QmlGraphicsVisualDataModelPrivate(QmlContext *ctxt) -: m_listModelInterface(0), m_abstractItemModel(0), m_visualItemModel(0), m_delegate(0) -, m_context(ctxt), m_parts(0), m_listAccessor(0) -{ -} - -QmlGraphicsVisualDataModelData *QmlGraphicsVisualDataModelPrivate::data(QObject *item) -{ - QmlGraphicsVisualDataModelData *dataItem = - item->findChild(); - Q_ASSERT(dataItem); - return dataItem; -} - -QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel() -: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(0))) -{ -} - -QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel(QmlContext *ctxt) -: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(ctxt))) -{ -} - -QmlGraphicsVisualDataModel::~QmlGraphicsVisualDataModel() -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_listAccessor) - delete d->m_listAccessor; -} - -QVariant QmlGraphicsVisualDataModel::model() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->m_modelVariant; -} - -void QmlGraphicsVisualDataModel::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsVisualDataModel); - delete d->m_listAccessor; - d->m_listAccessor = 0; - d->m_modelVariant = model; - if (d->m_listModelInterface) { - // Assume caller has released all items. - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), - this, SLOT(_q_itemsChanged(int,int,QList))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), - this, SLOT(_q_itemsInserted(int,int))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), - this, SLOT(_q_itemsRemoved(int,int))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), - this, SLOT(_q_itemsMoved(int,int,int))); - d->m_listModelInterface = 0; - } else if (d->m_abstractItemModel) { - QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), - this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); - QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), - this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); - QObject::disconnect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), - this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); - } else if (d->m_visualItemModel) { - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), - this, SIGNAL(itemsInserted(int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), - this, SIGNAL(itemsRemoved(int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), - this, SIGNAL(itemsMoved(int,int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), - this, SLOT(_q_createdPackage(int,QmlPackage*))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), - this, SLOT(_q_destroyingPackage(QmlPackage*))); - d->m_visualItemModel = 0; - } - - d->m_roles.clear(); - d->m_roleNames.clear(); - - QObject *object = qvariant_cast(model); - if (object && (d->m_listModelInterface = qobject_cast(object))) { - QObject::connect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), - this, SLOT(_q_itemsChanged(int,int,QList))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), - this, SLOT(_q_itemsInserted(int,int))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), - this, SLOT(_q_itemsRemoved(int,int))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), - this, SLOT(_q_itemsMoved(int,int,int))); - if (d->m_delegate && d->m_listModelInterface->count()) - emit itemsInserted(0, d->m_listModelInterface->count()); - return; - } else if (object && (d->m_abstractItemModel = qobject_cast(object))) { - QObject::connect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), - this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); - QObject::connect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), - this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); - QObject::connect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), - this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); - return; - } - if ((d->m_visualItemModel = qvariant_cast(model))) { - QObject::connect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), - this, SIGNAL(itemsInserted(int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), - this, SIGNAL(itemsRemoved(int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), - this, SIGNAL(itemsMoved(int,int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), - this, SLOT(_q_createdPackage(int,QmlPackage*))); - QObject::connect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), - this, SLOT(_q_destroyingPackage(QmlPackage*))); - return; - } - d->m_listAccessor = new QmlListAccessor; - d->m_listAccessor->setList(model, d->m_context?d->m_context->engine():qmlEngine(this)); - if (d->m_delegate && d->modelCount()) { - emit itemsInserted(0, d->modelCount()); - emit countChanged(); - } -} - -QmlComponent *QmlGraphicsVisualDataModel::delegate() const -{ - Q_D(const QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->delegate(); - return d->m_delegate; -} - -void QmlGraphicsVisualDataModel::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsVisualDataModel); - d->m_delegate = delegate; - if (d->modelCount()) { - emit itemsInserted(0, d->modelCount()); - emit countChanged(); - } -} - -QString QmlGraphicsVisualDataModel::part() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->m_part; -} - -void QmlGraphicsVisualDataModel::setPart(const QString &part) -{ - Q_D(QmlGraphicsVisualDataModel); - d->m_part = part; -} - -int QmlGraphicsVisualDataModel::count() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->modelCount(); -} - -QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, bool complete) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->item(index, d->m_part.toUtf8(), complete); - return item(index, QByteArray(), complete); -} - -/* - Returns ReleaseStatus flags. -*/ -QmlGraphicsVisualDataModel::ReleaseFlags QmlGraphicsVisualDataModel::release(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->release(item); - - ReleaseFlags stat = 0; - QObject *obj = item; - bool inPackage = false; - - QHash::iterator it = d->m_packaged.find(item); - if (it != d->m_packaged.end()) { - QmlPackage *package = *it; - d->m_packaged.erase(it); - if (d->m_packaged.contains(item)) - stat |= Referenced; - inPackage = true; - obj = package; // fall through and delete - } - - if (d->m_cache.releaseItem(obj)) { - if (inPackage) - emit destroyingPackage(qobject_cast(obj)); - stat |= Destroyed; - obj->setParent(0); - obj->deleteLater(); - } else if (!inPackage) { - stat |= Referenced; - } - - return stat; -} - -QObject *QmlGraphicsVisualDataModel::parts() -{ - Q_D(QmlGraphicsVisualDataModel); - if (!d->m_parts) - d->m_parts = new QmlGraphicsVisualDataModelParts(this); - return d->m_parts; -} - -QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, const QByteArray &viewId, bool complete) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->item(index, viewId, complete); - - if (d->modelCount() <= 0 || !d->m_delegate) - return 0; - - QObject *nobj = d->m_cache.getItem(index); - if (!nobj) { - QmlContext *ccontext = d->m_context; - if (!ccontext) ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); - ctxt->setContextProperty(QLatin1String("model"), data); - ctxt->addDefaultObject(data); - nobj = d->m_delegate->beginCreate(ctxt); - if (complete) - d->m_delegate->completeCreate(); - if (nobj) { - ctxt->setParent(nobj); - data->setParent(nobj); - d->m_cache.insertItem(index, nobj); - if (QmlPackage *package = qobject_cast(nobj)) - emit createdPackage(index, package); - } else { - delete data; - delete ctxt; - qWarning() << d->m_delegate->errors(); - } - } - QmlGraphicsItem *item = qobject_cast(nobj); - if (!item) { - QmlPackage *package = qobject_cast(nobj); - if (package) { - QObject *o = package->part(QString::fromUtf8(viewId)); - item = qobject_cast(o); - if (item) - d->m_packaged.insertMulti(item, package); - } - } - if (!item) { - d->m_cache.releaseItem(nobj); - qmlInfo(QmlGraphicsVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); - } - - return item; -} - -void QmlGraphicsVisualDataModel::completeItem() -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) { - d->m_visualItemModel->completeItem(); - return; - } - - d->m_delegate->completeCreate(); -} - -QVariant QmlGraphicsVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->evaluate(index, expression, objectContext); - - if ((!d->m_listModelInterface && !d->m_abstractItemModel) || !d->m_delegate) - return QVariant(); - - QVariant value; - QObject *nobj = d->m_cache.item(index); - if (nobj) { - QmlGraphicsItem *item = qobject_cast(nobj); - if (item) { - QmlExpression e(qmlContext(item), expression, objectContext); - e.setTrackChange(false); - value = e.value(); - } - } else { - QmlContext *ccontext = d->m_context; - if (!ccontext) ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); - ctxt->addDefaultObject(data); - QmlExpression e(ctxt, expression, objectContext); - e.setTrackChange(false); - value = e.value(); - delete data; - delete ctxt; - } - - return value; -} - -int QmlGraphicsVisualDataModel::indexOf(QmlGraphicsItem *item, QObject *objectContext) const -{ - QmlExpression e(qmlContext(item), QLatin1String("index"), objectContext); - e.setTrackChange(false); - QVariant value = e.value(); - if (value.isValid()) - return value.toInt(); - return -1; -} - -void QmlGraphicsVisualDataModel::_q_itemsChanged(int index, int count, - const QList &roles) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - for (int ii = index; ii < index + count; ++ii) { - - if (QObject *item = d->m_cache.item(ii)) { - QmlGraphicsVisualDataModelData *data = d->data(item); - - for (int prop = 0; prop < data->count(); ++prop) { - - int role = data->role(prop); - if (roles.contains(role)) { - if (d->m_listModelInterface) { - data->setValue(prop, d->m_listModelInterface->data(ii, QList() << role).value(role)); - } else if (d->m_abstractItemModel) { - QModelIndex index = d->m_abstractItemModel->index(ii, 0); - data->setValue(prop, d->m_abstractItemModel->data(index, role)); - } - } - } - } - - } -} - -void QmlGraphicsVisualDataModel::_q_itemsInserted(int index, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= index) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() + count; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - d->m_cache.unite(items); - - emit itemsInserted(index, count); - emit countChanged(); -} - -void QmlGraphicsVisualDataModel::_q_itemsRemoved(int index, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - if (iter.key() >= index && iter.key() < index + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - iter = d->m_cache.erase(iter); - items.insertMulti(-1, objRef); //XXX perhaps better to maintain separately - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(-1); - } else if (iter.key() >= index + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() - count; - iter = d->m_cache.erase(iter); - items.insert(index, objRef); - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - - d->m_cache.unite(items); - emit itemsRemoved(index, count); - emit countChanged(); -} - -void QmlGraphicsVisualDataModel::_q_itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= from && iter.key() < from + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() - from + to; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= qMin(from,to) && iter.key() < qMax(from+count,to+count)) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() + from - to; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - d->m_cache.unite(items); - - emit itemsMoved(from, to, count); -} - -void QmlGraphicsVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) -{ - _q_itemsInserted(begin, end - begin + 1); -} - -void QmlGraphicsVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) -{ - _q_itemsRemoved(begin, end - begin + 1); -} - -void QmlGraphicsVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) -{ - Q_D(QmlGraphicsVisualDataModel); - _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles); -} - -void QmlGraphicsVisualDataModel::_q_createdPackage(int index, QmlPackage *package) -{ - Q_D(QmlGraphicsVisualDataModel); - emit createdItem(index, qobject_cast(package->part(d->m_part))); -} - -void QmlGraphicsVisualDataModel::_q_destroyingPackage(QmlPackage *package) -{ - Q_D(QmlGraphicsVisualDataModel); - emit destroyingItem(qobject_cast(package->part(d->m_part))); -} - -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsVisualModel); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisualItemModel) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) - -QT_END_NAMESPACE -#include "qfxvisualitemmodel.moc" diff --git a/src/declarative/fx/qfxvisualitemmodel.h b/src/declarative/fx/qfxvisualitemmodel.h deleted file mode 100644 index 7f7a13f..0000000 --- a/src/declarative/fx/qfxvisualitemmodel.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXVISUALDATAMODEL_H -#define QFXVISUALDATAMODEL_H - -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -/***************************************************************************** - ***************************************************************************** - XXX Experimental - ***************************************************************************** -*****************************************************************************/ - -class QmlGraphicsItem; -class QmlComponent; -class QmlPackage; -class QmlGraphicsVisualDataModelPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int count READ count NOTIFY countChanged) - -public: - QmlGraphicsVisualModel() {} - virtual ~QmlGraphicsVisualModel() {} - - enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; - Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) - - virtual int count() const = 0; - virtual bool isValid() const = 0; - virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; - virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; - virtual void completeItem() = 0; - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; - -Q_SIGNALS: - void countChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) - : QObject(dd, parent) {} - -private: - Q_DISABLE_COPY(QmlGraphicsVisualModel) -}; - -class QmlGraphicsVisualItemModelAttached; -class QmlGraphicsVisualItemModelPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) - - Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) - Q_CLASSINFO("DefaultProperty", "children") - -public: - QmlGraphicsVisualItemModel(); - virtual ~QmlGraphicsVisualItemModel() {} - - virtual int count() const; - virtual bool isValid() const; - virtual QmlGraphicsItem *item(int index, bool complete=true); - virtual ReleaseFlags release(QmlGraphicsItem *item); - virtual void completeItem(); - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QmlList *children(); - - static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); - -signals: - void childrenChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualItemModel) -}; - - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(QString part READ part WRITE setPart) - Q_PROPERTY(QObject *parts READ parts CONSTANT) - Q_CLASSINFO("DefaultProperty", "delegate") -public: - QmlGraphicsVisualDataModel(); - QmlGraphicsVisualDataModel(QmlContext *); - virtual ~QmlGraphicsVisualDataModel(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - QString part() const; - void setPart(const QString &); - - int count() const; - bool isValid() const { return delegate() != 0; } - QmlGraphicsItem *item(int index, bool complete=true); - QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); - ReleaseFlags release(QmlGraphicsItem *item); - void completeItem(); - QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QObject *parts(); - -Q_SIGNALS: - void createdPackage(int index, QmlPackage *package); - void destroyingPackage(QmlPackage *package); - -private Q_SLOTS: - void _q_itemsChanged(int, int, const QList &); - void _q_itemsInserted(int index, int count); - void _q_itemsRemoved(int index, int count); - void _q_itemsMoved(int from, int to, int count); - void _q_rowsInserted(const QModelIndex &,int,int); - void _q_rowsRemoved(const QModelIndex &,int,int); - void _q_dataChanged(const QModelIndex&,const QModelIndex&); - void _q_createdPackage(int index, QmlPackage *package); - void _q_destroyingPackage(QmlPackage *package); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualDataModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsVisualModel) -QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) -QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) - -QT_END_HEADER - -#endif // QFXVISUALDATAMODEL_H diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp deleted file mode 100644 index e6f0a1d..0000000 --- a/src/declarative/fx/qfxwebview.cpp +++ /dev/null @@ -1,1388 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "qml.h" -#include "qmlengine.h" -#include "qmlstate.h" -#include "qlistmodelinterface.h" - -#include "qfxwebview.h" -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) -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 -{ - Q_DECLARE_PUBLIC(QmlGraphicsWebView) - -public: - QmlGraphicsWebViewPrivate() - : QmlGraphicsPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), - progress(1.0), status(QmlGraphicsWebView::Null), pending(PendingNone), - newWindowComponent(0), newWindowParent(0), - windowObjects(this), - rendering(true) - { - } - - QUrl url; // page url might be different if it has not loaded yet - QWebPage *page; - - int preferredwidth; - int pagewidth; - qreal progress; - QmlGraphicsWebView::Status status; - QString statusText; - enum { PendingNone, PendingUrl, PendingHtml, PendingContent } pending; - QUrl pending_url; - QString pending_string; - QByteArray pending_data; - mutable QmlGraphicsWebSettings settings; - QmlComponent *newWindowComponent; - QmlGraphicsItem *newWindowParent; - - void updateWindowObjects(); - class WindowObjectList : public QmlConcreteList - { - public: - WindowObjectList(QmlGraphicsWebViewPrivate *p) - : priv(p) {} - virtual void append(QObject *v) { - QmlConcreteList::append(v); - priv->updateWindowObjects(); - } - private: - QmlGraphicsWebViewPrivate *priv; - } windowObjects; - - bool rendering; -}; - -/*! - \qmlclass WebView - \brief The WebView item allows you to add web content to a canvas. - \inherits Item - - A WebView renders web content based on a URL. - - If the width and height of the item is not set, they will - dynamically adjust to a size appropriate for the content. - This width may be large for typical online web pages. - - If the preferredWidth is set, the width will be this amount or larger, - usually laying out the web content to fit the preferredWidth. - - \qml - WebView { - url: "http://www.nokia.com" - width: 490 - height: 400 - scale: 0.5 - smooth: true - } - \endqml - - \image webview.png - - The item includes no scrolling, scaling, - toolbars, etc., those must be implemented around WebView. See the WebBrowser example - for a demonstration of this. -*/ - -/*! - \internal - \class QmlGraphicsWebView - \brief The QmlGraphicsWebView class allows you to add web content to a QmlView. - - A WebView renders web content base on a URL. - - \image webview.png - - The item includes no scrolling, scaling, - toolbars, etc., those must be implemented around WebView. See the WebBrowser example - for a demonstration of this. - - A QmlGraphicsWebView object can be instantiated in Qml using the tag \l WebView. -*/ - -QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(*(new QmlGraphicsWebViewPrivate), parent) -{ - init(); -} - -QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - init(); -} - -QmlGraphicsWebView::~QmlGraphicsWebView() -{ - Q_D(QmlGraphicsWebView); - delete d->page; -} - -void QmlGraphicsWebView::init() -{ - Q_D(QmlGraphicsWebView); - - setAcceptHoverEvents(true); - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); - - d->page = 0; -} - -void QmlGraphicsWebView::componentComplete() -{ - QmlGraphicsPaintedItem::componentComplete(); - Q_D(QmlGraphicsWebView); - switch (d->pending) { - case QmlGraphicsWebViewPrivate::PendingUrl: - setUrl(d->pending_url); - break; - case QmlGraphicsWebViewPrivate::PendingHtml: - setHtml(d->pending_string, d->pending_url); - break; - case QmlGraphicsWebViewPrivate::PendingContent: - setContent(d->pending_data, d->pending_string, d->pending_url); - break; - default: - break; - } - d->pending = QmlGraphicsWebViewPrivate::PendingNone; - d->updateWindowObjects(); -} - -QmlGraphicsWebView::Status QmlGraphicsWebView::status() const -{ - Q_D(const QmlGraphicsWebView); - return d->status; -} - - -/*! - \qmlproperty real WebView::progress - This property holds the progress of loading the current URL, from 0 to 1. - - \sa onLoadFinished() onLoadFailed() -*/ -qreal QmlGraphicsWebView::progress() const -{ - Q_D(const QmlGraphicsWebView); - return d->progress; -} - -void QmlGraphicsWebView::doLoadStarted() -{ - Q_D(QmlGraphicsWebView); - - if (!d->url.isEmpty()) { - d->status = Loading; - emit statusChanged(d->status); - } - emit loadStarted(); -} - -void QmlGraphicsWebView::doLoadProgress(int p) -{ - Q_D(QmlGraphicsWebView); - if (d->progress == p/100.0) - return; - d->progress = p/100.0; - emit progressChanged(); -} - -void QmlGraphicsWebView::pageUrlChanged() -{ - Q_D(QmlGraphicsWebView); - - // Reset zooming to full - qreal zf = 1.0; - if (d->preferredwidth) { - if (d->pagewidth) - zf = qreal(d->preferredwidth)/d->pagewidth; - page()->mainFrame()->setZoomFactor(zf); - page()->setViewportSize(QSize(d->preferredwidth,-1)); - } else { - page()->mainFrame()->setZoomFactor(zf); - page()->setViewportSize(QSize(-1,-1)); - } - emit zooming(zf,0,0); - expandToWebPage(); - - if ((d->url.isEmpty() && page()->mainFrame()->url() != QUrl(QLatin1String("about:blank"))) - || d->url != page()->mainFrame()->url()) - { - d->url = page()->mainFrame()->url(); - if (d->url == QUrl(QLatin1String("about:blank"))) - d->url = QUrl(); - emit urlChanged(); - } -} - -void QmlGraphicsWebView::doLoadFinished(bool ok) -{ - Q_D(QmlGraphicsWebView); - - if (title().isEmpty()) - pageUrlChanged(); // XXX bug 232556 - pages with no title never get urlChanged() - - if (ok) { - d->status = d->url.isEmpty() ? Null : Ready; - emit loadFinished(); - } else { - d->status = Error; - emit loadFailed(); - } - emit statusChanged(d->status); -} - -/*! - \qmlproperty url WebView::url - This property holds the URL to the page displayed in this item. It can be set, - but also can change spontaneously (eg. because of network redirection). - - If the url is empty, the page is blank. - - The url is always absolute (QML will resolve relative URL strings in the context - of the containing QML document). -*/ -QUrl QmlGraphicsWebView::url() const -{ - Q_D(const QmlGraphicsWebView); - return d->url; -} - -void QmlGraphicsWebView::setUrl(const QUrl &url) -{ - Q_D(QmlGraphicsWebView); - if (url == d->url) - return; - - if (isComponentComplete()) { - d->url = url; - qreal zf = 1.0; - if (d->preferredwidth) { - if (d->pagewidth) - zf = qreal(d->preferredwidth)/d->pagewidth; - page()->setViewportSize(QSize(d->preferredwidth,-1)); - } else { - page()->setViewportSize(QSize(-1,-1)); - } - page()->mainFrame()->setZoomFactor(zf); - QUrl seturl = url; - if (seturl.isEmpty()) - seturl = QUrl(QLatin1String("about:blank")); - - Q_ASSERT(!seturl.isRelative()); - - page()->mainFrame()->load(seturl); - - emit urlChanged(); - } else { - d->pending = d->PendingUrl; - d->pending_url = url; - } -} - -/*! - \qmlproperty int WebView::preferredWidth - This property holds the ideal width for displaying the current URL. -*/ -int QmlGraphicsWebView::preferredWidth() const -{ - Q_D(const QmlGraphicsWebView); - return d->preferredwidth; -} - -void QmlGraphicsWebView::setPreferredWidth(int iw) -{ - Q_D(QmlGraphicsWebView); - if (d->preferredwidth == iw) return; - if (d->pagewidth) { - if (d->preferredwidth) { - setZoomFactor(zoomFactor()*iw/d->preferredwidth); - } else { - setZoomFactor(qreal(iw)/d->pagewidth); - } - } - d->preferredwidth = iw; - expandToWebPage(); - emit preferredWidthChanged(); -} - -/*! - \qmlproperty int WebView::webPageWidth - This property holds the page width suggested to the web engine. -*/ -int QmlGraphicsWebView::webPageWidth() const -{ - Q_D(const QmlGraphicsWebView); - return d->pagewidth; -} - -void QmlGraphicsWebView::setWebPageWidth(int pw) -{ - Q_D(QmlGraphicsWebView); - if (d->pagewidth == pw) return; - d->pagewidth = pw; - expandToWebPage(); -} - -/*! - Evaluates the \a scriptSource JavaScript inside the main frame - context and returns the result of the last executed statement. -*/ -QVariant QmlGraphicsWebView::evaluateJavaScript(const QString &scriptSource) -{ - return this->page()->mainFrame()->evaluateJavaScript(scriptSource); -} - -void QmlGraphicsWebView::focusChanged(bool hasFocus) -{ - QFocusEvent e(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); - page()->event(&e); - QmlGraphicsItem::focusChanged(hasFocus); -} - -void QmlGraphicsWebView::contentsSizeChanged(const QSize&) -{ - expandToWebPage(); -} - -void QmlGraphicsWebView::expandToWebPage() -{ - Q_D(QmlGraphicsWebView); - QSize cs = page()->mainFrame()->contentsSize(); - qreal zoom = zoomFactor(); - if (cs.width() < d->preferredwidth*zoom) - cs.setWidth(d->preferredwidth*zoom); - if (widthValid()) - cs.setWidth(width()); - if (heightValid()) - cs.setHeight(height()); - if (cs != page()->viewportSize()) { - page()->setViewportSize(cs); - clearCache(); - setImplicitWidth(cs.width()); - setImplicitHeight(cs.height()); - } -} - -void QmlGraphicsWebView::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.size() != oldGeometry.size()) - expandToWebPage(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsWebView::paintPage(const QRect& r) -{ - Q_D(QmlGraphicsWebView); - if (d->page->mainFrame()->contentsSize() != contentsSize()) - setContentsSize(d->page->mainFrame()->contentsSize()); - dirtyCache(r); - update(); -} - -/*! - \qmlproperty int WebView::pixelCacheSize - - This property holds the maximum number of pixels of image cache to - allow. The default is 0.1 megapixels. The cache will not be larger - than the (unscaled) size of the WebView. -*/ -int QmlGraphicsWebView::pixelCacheSize() const -{ - Q_D(const QmlGraphicsWebView); - return d->max_imagecache_size; -} - -void QmlGraphicsWebView::setPixelCacheSize(int pixels) -{ - Q_D(QmlGraphicsWebView); - if (pixels < d->max_imagecache_size) { - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - cachesize += area.width()*area.height(); - } - while (d->imagecache.count() && cachesize > pixels) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - d->imagecache.removeAt(oldest); - } - } - d->max_imagecache_size = pixels; -} - -/*! - \qmlproperty list WebView::javaScriptWindowObjects - - This property is a list of object that are available from within - the webview's JavaScript context. - - The \a object will be inserted as a child of the frame's window - object, under the name given by the attached property \c WebView.windowObjectName. - - \qml - WebView { - javaScriptWindowObjects: Object { - WebView.windowObjectName: "coordinates" - } - } - \endqml - - Properties of the object will be exposed as JavaScript properties and slots as - JavaScript methods. - - If Javascript is not enabled for this page, then this property does nothing. -*/ -QmlList *QmlGraphicsWebView::javaScriptWindowObjects() -{ - Q_D(QmlGraphicsWebView); - return &d->windowObjects; -} - -class QmlGraphicsWebViewAttached : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString windowObjectName READ windowObjectName WRITE setWindowObjectName) -public: - QmlGraphicsWebViewAttached(QObject *parent) - : QObject(parent) - { - } - - QString windowObjectName() const - { - return m_windowObjectName; - } - - void setWindowObjectName(const QString &n) - { - m_windowObjectName = n; - } - -private: - QString m_windowObjectName; -}; - -QmlGraphicsWebViewAttached *QmlGraphicsWebView::qmlAttachedProperties(QObject *o) -{ - return new QmlGraphicsWebViewAttached(o); -} - -void QmlGraphicsWebViewPrivate::updateWindowObjects() -{ - Q_Q(QmlGraphicsWebView); - if (!q->isComponentComplete() || !page) - return; - - for (int ii = 0; ii < windowObjects.count(); ++ii) { - QObject *object = windowObjects.at(ii); - QmlGraphicsWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); - if (attached && !attached->windowObjectName().isEmpty()) { - page->mainFrame()->addToJavaScriptWindowObject(attached->windowObjectName(), object); - } - } -} - -bool QmlGraphicsWebView::renderingEnabled() const -{ - Q_D(const QmlGraphicsWebView); - return d->rendering; -} - -void QmlGraphicsWebView::setRenderingEnabled(bool enabled) -{ - Q_D(QmlGraphicsWebView); - if (d->rendering == enabled) - return; - d->rendering = enabled; - setCacheFrozen(!enabled); - if (enabled) - clearCache(); -} - - -void QmlGraphicsWebView::drawContents(QPainter *p, const QRect &r) -{ - Q_D(QmlGraphicsWebView); - if (d->rendering) - page()->mainFrame()->render(p,r); -} - -static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) -{ - QEvent::Type t; - switch(e->type()) { - default: - case QEvent::GraphicsSceneMousePress: - t = QEvent::MouseButtonPress; - break; - case QEvent::GraphicsSceneMouseRelease: - t = QEvent::MouseButtonRelease; - break; - case QEvent::GraphicsSceneMouseMove: - t = QEvent::MouseMove; - break; - case QGraphicsSceneEvent::GraphicsSceneMouseDoubleClick: - t = QEvent::MouseButtonDblClick; - break; - } - - QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), e->button(), e->buttons(), 0); - return me; -} - -static QMouseEvent *sceneHoverMoveEventToMouseEvent(QGraphicsSceneHoverEvent *e) -{ - QEvent::Type t = QEvent::MouseMove; - - QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), Qt::NoButton, Qt::NoButton, 0); - - return me; -} - - -/*! - \qmlsignal WebView::onDoubleClick(clickx,clicky) - - The WebView does not pass double-click events to the web engine, but rather - emits this signals. -*/ - -void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - emit doubleClick(me->x(),me->y()); - delete me; -} - -void QmlGraphicsWebView::heuristicZoom(int clickX, int clickY) -{ - Q_D(QmlGraphicsWebView); - qreal ozf = zoomFactor(); - QRect showarea = elementAreaAt(clickX, clickY, 1, 1); - qreal z = qreal(preferredWidth())*ozf/showarea.width()*.95; - if ((z/ozf > 0.99 && z/ozf <1.01) || z < qreal(d->preferredwidth)/d->pagewidth) { - // zoom out - z = qreal(d->preferredwidth)/d->pagewidth; - } - QRectF r(showarea.left()/ozf*z, showarea.top()/ozf*z, showarea.width()/ozf*z, showarea.height()/ozf*z); - emit zooming(z,r.x()+r.width()/2, r.y()+r.height()/2); -} - -void QmlGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - setFocus (true); - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit - Might be a bug in WebKit, though - */ -#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) { - QmlGraphicsPaintedItem::mousePressEvent(event); - } -} - -void QmlGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send all the events to WebKit - */ -#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) { - QmlGraphicsPaintedItem::mouseReleaseEvent(event); - } -} - -void QmlGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit - Might be a bug in WebKit, though - */ -#if 1 // QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mouseMoveEvent(event); - -} -void QmlGraphicsWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) -{ - QMouseEvent *me = sceneHoverMoveEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -#if QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) - QmlGraphicsPaintedItem::hoverMoveEvent(event); -} - -void QmlGraphicsWebView::keyPressEvent(QKeyEvent* event) -{ - page()->event(event); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(event); -} - -void QmlGraphicsWebView::keyReleaseEvent(QKeyEvent* event) -{ - page()->event(event); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyReleaseEvent(event); -} - -bool QmlGraphicsWebView::sceneEvent(QEvent *event) -{ - if (event->type() == QEvent::KeyPress) { - QKeyEvent *k = static_cast(event); - if (k->key() == Qt::Key_Tab || k->key() == Qt::Key_Backtab) { - if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? - page()->event(event); - if (event->isAccepted()) - return true; - } - } - } - return QmlGraphicsPaintedItem::sceneEvent(event); -} - - - -/*! - \qmlproperty action WebView::back - This property holds the action for causing the previous URL in the history to be displayed. -*/ -QAction *QmlGraphicsWebView::backAction() const -{ - return page()->action(QWebPage::Back); -} - -/*! - \qmlproperty action WebView::forward - This property holds the action for causing the next URL in the history to be displayed. -*/ -QAction *QmlGraphicsWebView::forwardAction() const -{ - return page()->action(QWebPage::Forward); -} - -/*! - \qmlproperty action WebView::reload - This property holds the action for reloading with the current URL -*/ -QAction *QmlGraphicsWebView::reloadAction() const -{ - return page()->action(QWebPage::Reload); -} - -/*! - \qmlproperty action WebView::stop - This property holds the action for stopping loading with the current URL -*/ -QAction *QmlGraphicsWebView::stopAction() const -{ - return page()->action(QWebPage::Stop); -} - -/*! - \qmlproperty real WebView::title - This property holds the title of the web page currently viewed - - By default, this property contains an empty string. -*/ -QString QmlGraphicsWebView::title() const -{ - return page()->mainFrame()->title(); -} - - - -/*! - \qmlproperty pixmap WebView::icon - This property holds the icon associated with the web page currently viewed -*/ -QPixmap QmlGraphicsWebView::icon() const -{ - return page()->mainFrame()->icon().pixmap(QSize(256,256)); -} - - -/*! - \qmlproperty real WebView::textSizeMultiplier - This property holds the multiplier used to scale the text in a Web page -*/ -void QmlGraphicsWebView::setTextSizeMultiplier(qreal factor) -{ - page()->mainFrame()->setTextSizeMultiplier(factor); -} - -qreal QmlGraphicsWebView::textSizeMultiplier() const -{ - return page()->mainFrame()->textSizeMultiplier(); -} - -/*! - \qmlproperty real WebView::zoomFactor - This property holds the multiplier used to scale the contents of a Web page. -*/ -void QmlGraphicsWebView::setZoomFactor(qreal factor) -{ - Q_D(QmlGraphicsWebView); - if (factor == page()->mainFrame()->zoomFactor()) - return; - - page()->mainFrame()->setZoomFactor(factor); - page()->setViewportSize(QSize(d->pagewidth*factor,-1)); - expandToWebPage(); - - emit zoomFactorChanged(); -} - -qreal QmlGraphicsWebView::zoomFactor() const -{ - return page()->mainFrame()->zoomFactor(); -} - -/*! - \qmlproperty string WebView::statusText - - This property is the current status suggested by the current web page. In a web browser, - such status is often shown in some kind of status bar. -*/ -void QmlGraphicsWebView::setStatusText(const QString& s) -{ - Q_D(QmlGraphicsWebView); - d->statusText = s; - emit statusTextChanged(); -} - -void QmlGraphicsWebView::windowObjectCleared() -{ - Q_D(QmlGraphicsWebView); - d->updateWindowObjects(); -} - -QString QmlGraphicsWebView::statusText() const -{ - Q_D(const QmlGraphicsWebView); - return d->statusText; -} - -QWebPage *QmlGraphicsWebView::page() const -{ - Q_D(const QmlGraphicsWebView); - - if (!d->page) { - QmlGraphicsWebView *self = const_cast(this); - QWebPage *wp = new QmlGraphicsWebPage(self); - - // QML items don't default to having a background, - // even though most we pages will set one anyway. - QPalette pal = QApplication::palette(); - pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0)); - wp->setPalette(pal); - - wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager()); - - self->setPage(wp); - - return wp; - } - - return d->page; -} - - -// The QObject interface to settings(). -/*! - \qmlproperty string WebView::settings.standardFontFamily - \qmlproperty string WebView::settings.fixedFontFamily - \qmlproperty string WebView::settings.serifFontFamily - \qmlproperty string WebView::settings.sansSerifFontFamily - \qmlproperty string WebView::settings.cursiveFontFamily - \qmlproperty string WebView::settings.fantasyFontFamily - - \qmlproperty int WebView::settings.minimumFontSize - \qmlproperty int WebView::settings.minimumLogicalFontSize - \qmlproperty int WebView::settings.defaultFontSize - \qmlproperty int WebView::settings.defaultFixedFontSize - - \qmlproperty bool WebView::settings.autoLoadImages - \qmlproperty bool WebView::settings.javascriptEnabled - \qmlproperty bool WebView::settings.javaEnabled - \qmlproperty bool WebView::settings.pluginsEnabled - \qmlproperty bool WebView::settings.privateBrowsingEnabled - \qmlproperty bool WebView::settings.javascriptCanOpenWindows - \qmlproperty bool WebView::settings.javascriptCanAccessClipboard - \qmlproperty bool WebView::settings.developerExtrasEnabled - \qmlproperty bool WebView::settings.linksIncludedInFocusChain - \qmlproperty bool WebView::settings.zoomTextOnly - \qmlproperty bool WebView::settings.printElementBackgrounds - \qmlproperty bool WebView::settings.offlineStorageDatabaseEnabled - \qmlproperty bool WebView::settings.offlineWebApplicationCacheEnabled - \qmlproperty bool WebView::settings.localStorageDatabaseEnabled - \qmlproperty bool WebView::settings.localContentCanAccessRemoteUrls - - These properties give access to the settings controlling the web view. - - See QWebSettings for details of these properties. - - \qml - WebView { - settings.pluginsEnabled: true - settings.standardFontFamily: "Arial" - ... - } - \endqml -*/ -QmlGraphicsWebSettings *QmlGraphicsWebView::settingsObject() const -{ - Q_D(const QmlGraphicsWebView); - d->settings.s = page()->settings(); - return &d->settings; -} - -void QmlGraphicsWebView::setPage(QWebPage *page) -{ - Q_D(QmlGraphicsWebView); - if (d->page == page) - return; - if (d->page) { - if (d->page->parent() == this) { - delete d->page; - } else { - d->page->disconnect(this); - } - } - d->page = page; - d->page->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : -1, -1)); - d->page->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); - d->page->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); - connect(d->page,SIGNAL(repaintRequested(QRect)),this,SLOT(paintPage(QRect))); - connect(d->page->mainFrame(),SIGNAL(urlChanged(QUrl)),this,SLOT(pageUrlChanged())); - connect(d->page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString))); - connect(d->page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged())); - connect(d->page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SLOT(contentsSizeChanged(QSize))); - - connect(d->page,SIGNAL(loadStarted()),this,SLOT(doLoadStarted())); - connect(d->page,SIGNAL(loadProgress(int)),this,SLOT(doLoadProgress(int))); - connect(d->page,SIGNAL(loadFinished(bool)),this,SLOT(doLoadFinished(bool))); - connect(d->page,SIGNAL(statusBarMessage(QString)),this,SLOT(setStatusText(QString))); - - connect(d->page->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT(windowObjectCleared())); -} - -/*! - \qmlsignal WebView::onLoadStarted() - - This handler is called when the web engine begins loading - a page. - - \sa progress onLoadFinished() onLoadFailed() -*/ - -/*! - \qmlsignal WebView::onLoadFinished() - - This handler is called when the web engine finishes loading - a page, including any component content. - - \sa progress onLoadFailed() -*/ - -/*! - \qmlsignal WebView::onLoadFailed() - - This handler is called when the web engine fails loading - a page or any component content. - - \sa progress onLoadFinished() -*/ - -void QmlGraphicsWebView::load(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation, - const QByteArray &body) -{ - page()->mainFrame()->load(request, operation, body); -} - -QString QmlGraphicsWebView::html() const -{ - return page()->mainFrame()->toHtml(); -} - -/*! - \qmlproperty string WebView::html - This property holds HTML text set directly - - The html property can be set as a string. - - \qml - WebView { - html: "

This is HTML." - } - \endqml -*/ -void QmlGraphicsWebView::setHtml(const QString &html, const QUrl &baseUrl) -{ - Q_D(QmlGraphicsWebView); - page()->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : width(), height())); - if (isComponentComplete()) - page()->mainFrame()->setHtml(html, baseUrl); - else { - d->pending = d->PendingHtml; - d->pending_url = baseUrl; - d->pending_string = html; - } -} - -void QmlGraphicsWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) -{ - Q_D(QmlGraphicsWebView); - page()->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : width(), height())); - - if (isComponentComplete()) - page()->mainFrame()->setContent(data,mimeType,qmlContext(this)->resolvedUrl(baseUrl)); - else { - d->pending = d->PendingContent; - d->pending_url = baseUrl; - d->pending_string = mimeType; - d->pending_data = data; - } -} - -QWebHistory *QmlGraphicsWebView::history() const -{ - return page()->history(); -} - -QWebSettings *QmlGraphicsWebView::settings() const -{ - return page()->settings(); -} - -QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType type) -{ - Q_D(QmlGraphicsWebView); - switch (type) { - case QWebPage::WebBrowserWindow: { - if (!d->newWindowComponent && d->newWindowParent) - qWarning("WebView::newWindowComponent not set - WebView::newWindowParent ignored"); - else if (d->newWindowComponent && !d->newWindowParent) - qWarning("WebView::newWindowParent not set - WebView::newWindowComponent ignored"); - else if (d->newWindowComponent && d->newWindowParent) { - QmlGraphicsWebView *webview = 0; - QmlContext *windowContext = new QmlContext(qmlContext(this)); - - QObject *nobj = d->newWindowComponent->create(windowContext); - if (nobj) { - windowContext->setParent(nobj); - QmlGraphicsItem *item = qobject_cast(nobj); - if (!item) { - delete nobj; - } else { - webview = item->findChild(); - if (!webview) { - delete item; - } else { - item->setParent(d->newWindowParent); - } - } - } else { - delete windowContext; - } - - return webview; - } - } - break; - case QWebPage::WebModalDialog: { - // Not supported - } - } - return 0; -} - -/*! - \qmlproperty component WebView::newWindowComponent - - This property holds the component to use for new windows. - The component must have a WebView somewhere in its structure. - - When the web engine requests a new window, it will be an instance of - this component. - - The parent of the new window is set by newWindowParent. It must be set. -*/ -QmlComponent *QmlGraphicsWebView::newWindowComponent() const -{ - Q_D(const QmlGraphicsWebView); - return d->newWindowComponent; -} - -void QmlGraphicsWebView::setNewWindowComponent(QmlComponent *newWindow) -{ - Q_D(QmlGraphicsWebView); - delete d->newWindowComponent; - d->newWindowComponent = newWindow; -} - - -/*! - \qmlproperty item WebView::newWindowParent - - The parent item for new windows. - - \sa newWindowComponent -*/ -QmlGraphicsItem *QmlGraphicsWebView::newWindowParent() const -{ - Q_D(const QmlGraphicsWebView); - return d->newWindowParent; -} - -void QmlGraphicsWebView::setNewWindowParent(QmlGraphicsItem *parent) -{ - Q_D(QmlGraphicsWebView); - delete d->newWindowParent; - d->newWindowParent = parent; -} - -/*! - Returns the area of the largest element at position (\a x,\a y) that is no larger - than \a maxwidth by \a maxheight pixels. - - May return an area larger in the case when no smaller element is at the position. -*/ -QRect QmlGraphicsWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const -{ - QWebHitTestResult hit = page()->mainFrame()->hitTestContent(QPoint(x,y)); - QWebElement element = hit.enclosingBlockElement(); - QWebElement parent = element.parent(); - if (maxwidth<=0) maxwidth = INT_MAX; - if (maxheight<=0) maxheight = INT_MAX; - while (!parent.isNull() && parent.geometry().width() <= maxwidth && parent.geometry().height() <= maxheight) { - element = parent; - parent = element.parent(); - } - return element.geometry(); -} - -/*! - \internal - \class QmlGraphicsWebPage - \brief The QmlGraphicsWebPage class is a QWebPage that can create QML plugins. - - \sa QmlGraphicsWebView -*/ -QmlGraphicsWebPage::QmlGraphicsWebPage(QmlGraphicsWebView *parent) : - QWebPage(parent) -{ -} - -QmlGraphicsWebPage::~QmlGraphicsWebPage() -{ -} - -/* - Qt WebKit does not understand non-QWidget plugins, so dummy widgets - are created, parented to a single dummy tool window. - - The requirements for QML object plugins are input to the Qt WebKit - non-QWidget plugin support, which will obsolete this kludge. -*/ -class QWidget_Dummy_Plugin : public QWidget -{ - Q_OBJECT -public: - static QWidget *dummy_shared_parent() - { - static QWidget *dsp = 0; - if (!dsp) { - dsp = new QWidget(0,Qt::Tool); - dsp->setGeometry(-10000,-10000,0,0); - dsp->show(); - } - return dsp; - } - QWidget_Dummy_Plugin(const QUrl& url, QmlGraphicsWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : - QWidget(dummy_shared_parent()), - propertyNames(paramNames), - propertyValues(paramValues), - webview(view) - { - QmlEngine *engine = qmlEngine(webview); - component = new QmlComponent(engine, url, this); - item = 0; - if (component->isLoading()) - connect(component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(qmlLoaded())); - else - qmlLoaded(); - } - -public Q_SLOTS: - void qmlLoaded() - { - if (component->isError()) { - // ### Could instead give these errors to the WebView to handle. - qWarning() << component->errors(); - return; - } - item = qobject_cast(component->create(qmlContext(webview))); - item->setParent(webview); - QString jsObjName; - for (int i=0; isetProperty(propertyNames[i].toUtf8(),propertyValues[i]); - if (propertyNames[i] == QLatin1String("objectname")) - jsObjName = propertyValues[i]; - } - } - if (!jsObjName.isNull()) { - QWebFrame *f = webview->page()->mainFrame(); - f->addToJavaScriptWindowObject(jsObjName, item); - } - resizeEvent(0); - delete component; - component = 0; - } - void resizeEvent(QResizeEvent*) - { - if (item) { - item->setX(x()); - item->setY(y()); - item->setWidth(width()); - item->setHeight(height()); - } - } - -private: - QmlComponent *component; - QmlGraphicsItem *item; - QStringList propertyNames, propertyValues; - QmlGraphicsWebView *webview; -}; - -QmlGraphicsWebView *QmlGraphicsWebPage::viewItem() -{ - return static_cast(parent()); -} - -QObject *QmlGraphicsWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) -{ - QUrl comp = qmlContext(viewItem())->resolvedUrl(url); - return new QWidget_Dummy_Plugin(comp,viewItem(),paramNames,paramValues); -} - -QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) -{ - QmlGraphicsWebView *newView = viewItem()->createWindow(type); - if (newView) - return newView->page(); - return 0; -} - -QT_END_NAMESPACE - -#include "qfxwebview.moc" diff --git a/src/declarative/fx/qfxwebview.h b/src/declarative/fx/qfxwebview.h deleted file mode 100644 index e567197..0000000 --- a/src/declarative/fx/qfxwebview.h +++ /dev/null @@ -1,251 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFXWEBVIEW_H -#define QFXWEBVIEW_H - -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -class QWebHistory; -class QWebSettings; - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsWebViewPrivate; -class QNetworkRequest; -class QmlGraphicsWebView; - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage -{ - Q_OBJECT -public: - explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); - ~QmlGraphicsWebPage(); -protected: - QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); - QWebPage *createWindow(WebWindowType type); - -private: - QmlGraphicsWebView *viewItem(); -}; - - -class QmlGraphicsWebViewAttached; -class QmlGraphicsWebSettings; - -//### TODO: browser plugins - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem -{ - Q_OBJECT - - Q_ENUMS(Status) - - Q_PROPERTY(QString title READ title NOTIFY titleChanged) - Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) - Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) - Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) - Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) - - Q_PROPERTY(QString html READ html WRITE setHtml) - - Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) - Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) - Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) - Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - - Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) - Q_PROPERTY(QAction* back READ backAction CONSTANT) - Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) - Q_PROPERTY(QAction* stop READ stopAction CONSTANT) - - Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) - - Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) - - Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) - Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) - - Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) - -public: - QmlGraphicsWebView(QmlGraphicsItem *parent=0); - ~QmlGraphicsWebView(); - - QUrl url() const; - void setUrl(const QUrl &); - - QString title() const; - - QPixmap icon() const; - - qreal textSizeMultiplier() const; - void setTextSizeMultiplier(qreal); - - qreal zoomFactor() const; - void setZoomFactor(qreal); - - int preferredWidth() const; - void setPreferredWidth(int); - int webPageWidth() const; - void setWebPageWidth(int); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - QString statusText() const; - - QAction *reloadAction() const; - QAction *backAction() const; - QAction *forwardAction() const; - QAction *stopAction() const; - - QWebPage *page() const; - void setPage(QWebPage *page); - - void load(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, - const QByteArray &body = QByteArray()); - - QString html() const; - - void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); - void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); - - QWebHistory *history() const; - QWebSettings *settings() const; - QmlGraphicsWebSettings *settingsObject() const; - - int pixelCacheSize() const; - void setPixelCacheSize(int pixels); - - bool renderingEnabled() const; - void setRenderingEnabled(bool); - - QmlList *javaScriptWindowObjects(); - - static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); - - QmlComponent *newWindowComponent() const; - void setNewWindowComponent(QmlComponent *newWindow); - QmlGraphicsItem *newWindowParent() const; - void setNewWindowParent(QmlGraphicsItem *newWindow); - -Q_SIGNALS: - void preferredWidthChanged(); - void preferredHeightChanged(); - void urlChanged(); - void progressChanged(); - void statusChanged(Status); - void titleChanged(const QString&); - void iconChanged(); - void statusTextChanged(); - void zoomFactorChanged(); - - void loadStarted(); - void loadFinished(); - void loadFailed(); - - void doubleClick(int clickX, int clickY); - - void zooming(qreal zoom, int centerX, int centerY); - -public Q_SLOTS: - QVariant evaluateJavaScript(const QString&); - void heuristicZoom(int clickX, int clickY); - -private Q_SLOTS: - void expandToWebPage(); - void paintPage(const QRect&); - void doLoadStarted(); - void doLoadProgress(int p); - void doLoadFinished(bool ok); - void setStatusText(const QString&); - void windowObjectCleared(); - void pageUrlChanged(); - void contentsSizeChanged(const QSize&); - -protected: - QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); - - void drawContents(QPainter *, const QRect &); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void hoverMoveEvent (QGraphicsSceneHoverEvent * event); - void keyPressEvent(QKeyEvent* event); - void keyReleaseEvent(QKeyEvent* event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - 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(); - virtual void componentComplete(); - Q_DISABLE_COPY(QmlGraphicsWebView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) - friend class QmlGraphicsWebPage; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsWebView) -QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QAction) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsanchors.cpp b/src/declarative/fx/qmlgraphicsanchors.cpp new file mode 100644 index 0000000..d0e26d8 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsanchors.cpp @@ -0,0 +1,962 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsanchors_p.h" +#include "qmlgraphicsitem.h" +#include "qmlgraphicsitem_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QmlGraphicsAnchors) + +//TODO: should we cache relationships, so we don't have to check each time (parent-child or sibling)? +//TODO: support non-parent, non-sibling (need to find lowest common ancestor) + +//### const item? +//local position +static qreal position(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) +{ + qreal ret = 0.0; + switch(anchorLine) { + case QmlGraphicsAnchorLine::Left: + ret = item->x(); + break; + case QmlGraphicsAnchorLine::Right: + ret = item->x() + item->width(); + break; + case QmlGraphicsAnchorLine::Top: + ret = item->y(); + break; + case QmlGraphicsAnchorLine::Bottom: + ret = item->y() + item->height(); + break; + case QmlGraphicsAnchorLine::HCenter: + ret = item->x() + item->width()/2; + break; + case QmlGraphicsAnchorLine::VCenter: + ret = item->y() + item->height()/2; + break; + case QmlGraphicsAnchorLine::Baseline: + ret = item->y() + item->baselineOffset(); + break; + default: + break; + } + + return ret; +} + +//position when origin is 0,0 +static qreal adjustedPosition(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) +{ + int ret = 0; + switch(anchorLine) { + case QmlGraphicsAnchorLine::Left: + ret = 0; + break; + case QmlGraphicsAnchorLine::Right: + ret = item->width(); + break; + case QmlGraphicsAnchorLine::Top: + ret = 0; + break; + case QmlGraphicsAnchorLine::Bottom: + ret = item->height(); + break; + case QmlGraphicsAnchorLine::HCenter: + ret = item->width()/2; + break; + case QmlGraphicsAnchorLine::VCenter: + ret = item->height()/2; + break; + case QmlGraphicsAnchorLine::Baseline: + ret = item->baselineOffset(); + break; + default: + break; + } + + return ret; +} + +/*! + \internal + \class QmlGraphicsAnchors + \ingroup group_layouts + \brief The QmlGraphicsAnchors class provides a way to lay out items relative to other items. + + \warning Currently, only anchoring to siblings or parent is supported. +*/ + +QmlGraphicsAnchors::QmlGraphicsAnchors(QObject *parent) + : QObject(*new QmlGraphicsAnchorsPrivate(), parent) +{ +} + +QmlGraphicsAnchors::~QmlGraphicsAnchors() +{ + Q_D(QmlGraphicsAnchors); + d->remDepend(d->fill); + d->remDepend(d->centerIn); + d->remDepend(d->left.item); + d->remDepend(d->right.item); + d->remDepend(d->top.item); + d->remDepend(d->bottom.item); + d->remDepend(d->vCenter.item); + d->remDepend(d->hCenter.item); + d->remDepend(d->baseline.item); +} + +void QmlGraphicsAnchorsPrivate::fillChanged() +{ + if (!fill || !isItemComplete()) + return; + + if (fill == item->parentItem()) { //child-parent + setItemPos(QPointF(leftMargin, topMargin)); + } else if (fill->parentItem() == item->parentItem()) { //siblings + setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin)); + } + setItemWidth(fill->width()-leftMargin-rightMargin); + setItemHeight(fill->height()-topMargin-bottomMargin); +} + +void QmlGraphicsAnchorsPrivate::centerInChanged() +{ + if (!centerIn || fill || !isItemComplete()) + return; + + if (centerIn == item->parentItem()) { + QPointF p((item->parentItem()->width() - item->width()) / 2., + (item->parentItem()->height() - item->height()) / 2.); + setItemPos(p); + + } else if (centerIn->parentItem() == item->parentItem()) { + + QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2., + centerIn->y() + (centerIn->height() - item->height()) / 2.); + setItemPos(p); + } +} + +void QmlGraphicsAnchorsPrivate::clearItem(QmlGraphicsItem *item) +{ + if (!item) + return; + if (fill == item) + fill = 0; + if (centerIn == item) + centerIn = 0; + if (left.item == item) { + left.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasLeftAnchor; + } + if (right.item == item) { + right.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasRightAnchor; + } + if (top.item == item) { + top.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasTopAnchor; + } + if (bottom.item == item) { + bottom.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasBottomAnchor; + } + if (vCenter.item == item) { + vCenter.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasVCenterAnchor; + } + if (hCenter.item == item) { + hCenter.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasHCenterAnchor; + } + if (baseline.item == item) { + baseline.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasBaselineAnchor; + } +} + +void QmlGraphicsAnchorsPrivate::addDepend(QmlGraphicsItem *item) +{ + Q_Q(QmlGraphicsAnchors); + if (!item) + return; + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); + p->dependantAnchors.append(q); +} + +void QmlGraphicsAnchorsPrivate::remDepend(QmlGraphicsItem *item) +{ + Q_Q(QmlGraphicsAnchors); + if (!item) + return; + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); + p->dependantAnchors.removeOne(q); +} + +bool QmlGraphicsAnchorsPrivate::isItemComplete() const +{ + return componentComplete; +} + +void QmlGraphicsAnchors::classBegin() +{ + Q_D(QmlGraphicsAnchors); + d->componentComplete = false; +} + +void QmlGraphicsAnchors::componentComplete() +{ + Q_D(QmlGraphicsAnchors); + d->componentComplete = true; +} + +void QmlGraphicsAnchorsPrivate::setItemHeight(qreal v) +{ + updatingMe = true; + item->setHeight(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemWidth(qreal v) +{ + updatingMe = true; + item->setWidth(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemX(qreal v) +{ + updatingMe = true; + item->setX(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemY(qreal v) +{ + updatingMe = true; + item->setY(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemPos(const QPointF &v) +{ + updatingMe = true; + item->setPos(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::updateMe() +{ + if (updatingMe) { + updatingMe = false; + return; + } + + fillChanged(); + centerInChanged(); + updateHorizontalAnchors(); + updateVerticalAnchors(); +} + +void QmlGraphicsAnchorsPrivate::updateOnComplete() +{ + fillChanged(); + centerInChanged(); + updateHorizontalAnchors(); + updateVerticalAnchors(); +} + +void QmlGraphicsAnchorsPrivate::update(QmlGraphicsItem *, const QRectF &newG, const QRectF &oldG) +{ + fillChanged(); + centerInChanged(); + + if (newG.x() != oldG.x() || newG.width() != oldG.width()) + updateHorizontalAnchors(); + if (newG.y() != oldG.y() || newG.height() != oldG.height()) + updateVerticalAnchors(); +} + +QmlGraphicsItem *QmlGraphicsAnchors::fill() const +{ + Q_D(const QmlGraphicsAnchors); + return d->fill; +} + +void QmlGraphicsAnchors::setFill(QmlGraphicsItem *f) +{ + Q_D(QmlGraphicsAnchors); + if (!f) { + d->remDepend(d->fill); + d->fill = f; + return; + } + if (f != d->item->parentItem() && f->parentItem() != d->item->parentItem()){ + qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); + return; + } + d->remDepend(d->fill); + d->fill = f; + d->addDepend(d->fill); + + d->fillChanged(); +} + +QmlGraphicsItem *QmlGraphicsAnchors::centerIn() const +{ + Q_D(const QmlGraphicsAnchors); + return d->centerIn; +} + +void QmlGraphicsAnchors::setCenterIn(QmlGraphicsItem* c) +{ + Q_D(QmlGraphicsAnchors); + if (!c) { + d->remDepend(d->centerIn); + d->centerIn = c; + return; + } + if (c != d->item->parentItem() && c->parentItem() != d->item->parentItem()){ + qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); + return; + } + + d->remDepend(d->centerIn); + d->centerIn = c; + d->addDepend(d->centerIn); + + d->centerInChanged(); +} + +bool QmlGraphicsAnchorsPrivate::calcStretch(const QmlGraphicsAnchorLine &edge1, + const QmlGraphicsAnchorLine &edge2, + int offset1, + int offset2, + QmlGraphicsAnchorLine::AnchorLine line, + int &stretch) +{ + bool edge1IsParent = (edge1.item == item->parentItem()); + bool edge2IsParent = (edge2.item == item->parentItem()); + bool edge1IsSibling = (edge1.item->parentItem() == item->parentItem()); + bool edge2IsSibling = (edge2.item->parentItem() == item->parentItem()); + + bool invalid = false; + if ((edge2IsParent && edge1IsParent) || (edge2IsSibling && edge1IsSibling)) { + stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(edge1.item, edge1.anchorLine) + offset1); + } else if (edge2IsParent && edge1IsSibling) { + stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(item->parentItem(), line) + + (int)position(edge1.item, edge1.anchorLine) + offset1); + } else if (edge2IsSibling && edge1IsParent) { + stretch = ((int)position(item->parentItem(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(edge1.item, edge1.anchorLine) + offset1); + } else + invalid = true; + + return invalid; +} + +void QmlGraphicsAnchorsPrivate::updateVerticalAnchors() +{ + if (fill || centerIn || !isItemComplete()) + return; + + if (updatingVerticalAnchor < 2) { + ++updatingVerticalAnchor; + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor) { + //Handle stretching + bool invalid = true; + int height = 0; + if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { + invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QmlGraphicsAnchorLine::Top, height); + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QmlGraphicsAnchorLine::Top, height); + height *= 2; + } + if (!invalid) + setItemHeight(height); + + //Handle top + if (top.item == item->parentItem()) { + setItemY(adjustedPosition(top.item, top.anchorLine) + topMargin); + } else if (top.item->parentItem() == item->parentItem()) { + setItemY(position(top.item, top.anchorLine) + topMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { + //Handle stretching (top + bottom case is handled above) + if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + int height = 0; + bool invalid = calcStretch(vCenter, bottom, vCenterOffset, -bottomMargin, + QmlGraphicsAnchorLine::Top, height); + if (!invalid) + setItemHeight(height*2); + } + + //Handle bottom + if (bottom.item == item->parentItem()) { + setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + } else if (bottom.item->parentItem() == item->parentItem()) { + setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + //(stetching handled above) + + //Handle vCenter + if (vCenter.item == item->parentItem()) { + setItemY(adjustedPosition(vCenter.item, vCenter.anchorLine) + - item->height()/2 + vCenterOffset); + } else if (vCenter.item->parentItem() == item->parentItem()) { + setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor) { + //Handle baseline + if (baseline.item->parentItem() == item->parentItem()) { + setItemY(position(baseline.item, baseline.anchorLine) - item->baselineOffset() + baselineOffset); + } + } + --updatingVerticalAnchor; + } else { + // ### Make this certain :) + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on vertical anchor."), item); + } +} + +void QmlGraphicsAnchorsPrivate::updateHorizontalAnchors() +{ + if (fill || centerIn || !isItemComplete()) + return; + + if (updatingHorizontalAnchor < 2) { + ++updatingHorizontalAnchor; + + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor) { + //Handle stretching + bool invalid = true; + int width = 0; + if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { + invalid = calcStretch(left, right, leftMargin, -rightMargin, QmlGraphicsAnchorLine::Left, width); + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QmlGraphicsAnchorLine::Left, width); + width *= 2; + } + if (!invalid) + setItemWidth(width); + + //Handle left + if (left.item == item->parentItem()) { + setItemX(adjustedPosition(left.item, left.anchorLine) + leftMargin); + } else if (left.item->parentItem() == item->parentItem()) { + setItemX(position(left.item, left.anchorLine) + leftMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { + //Handle stretching (left + right case is handled in updateLeftAnchor) + if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + int width = 0; + bool invalid = calcStretch(hCenter, right, hCenterOffset, -rightMargin, + QmlGraphicsAnchorLine::Left, width); + if (!invalid) + setItemWidth(width*2); + } + + //Handle right + if (right.item == item->parentItem()) { + setItemX(adjustedPosition(right.item, right.anchorLine) - item->width() - rightMargin); + } else if (right.item->parentItem() == item->parentItem()) { + setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + //Handle hCenter + if (hCenter.item == item->parentItem()) { + setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + } else if (hCenter.item->parentItem() == item->parentItem()) { + setItemX(position(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + } + } + + --updatingHorizontalAnchor; + } else { + // ### Make this certain :) + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); + } +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::top() const +{ + Q_D(const QmlGraphicsAnchors); + return d->top; +} + +void QmlGraphicsAnchors::setTop(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasTopAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasTopAnchor; + return; + } + + d->remDepend(d->top.item); + d->top = edge; + d->addDepend(d->top.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetTop() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasTopAnchor; + d->remDepend(d->top.item); + d->top = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::bottom() const +{ + Q_D(const QmlGraphicsAnchors); + return d->bottom; +} + +void QmlGraphicsAnchors::setBottom(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasBottomAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasBottomAnchor; + return; + } + + d->remDepend(d->bottom.item); + d->bottom = edge; + d->addDepend(d->bottom.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetBottom() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasBottomAnchor; + d->remDepend(d->bottom.item); + d->bottom = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::verticalCenter() const +{ + Q_D(const QmlGraphicsAnchors); + return d->vCenter; +} + +void QmlGraphicsAnchors::setVerticalCenter(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasVCenterAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasVCenterAnchor; + return; + } + + d->remDepend(d->vCenter.item); + d->vCenter = edge; + d->addDepend(d->vCenter.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetVerticalCenter() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasVCenterAnchor; + d->remDepend(d->vCenter.item); + d->vCenter = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::baseline() const +{ + Q_D(const QmlGraphicsAnchors); + return d->baseline; +} + +void QmlGraphicsAnchors::setBaseline(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasBaselineAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasBaselineAnchor; + return; + } + + d->remDepend(d->baseline.item); + d->baseline = edge; + d->addDepend(d->baseline.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetBaseline() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasBaselineAnchor; + d->remDepend(d->baseline.item); + d->baseline = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::left() const +{ + Q_D(const QmlGraphicsAnchors); + return d->left; +} + +void QmlGraphicsAnchors::setLeft(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasLeftAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasLeftAnchor; + return; + } + + d->remDepend(d->left.item); + d->left = edge; + d->addDepend(d->left.item); + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetLeft() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasLeftAnchor; + d->remDepend(d->left.item); + d->left = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::right() const +{ + Q_D(const QmlGraphicsAnchors); + return d->right; +} + +void QmlGraphicsAnchors::setRight(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasRightAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasRightAnchor; + return; + } + + d->remDepend(d->right.item); + d->right = edge; + d->addDepend(d->right.item); + + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetRight() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasRightAnchor; + d->remDepend(d->right.item); + d->right = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::horizontalCenter() const +{ + Q_D(const QmlGraphicsAnchors); + return d->hCenter; +} + +void QmlGraphicsAnchors::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasHCenterAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasHCenterAnchor; + return; + } + + d->remDepend(d->hCenter.item); + d->hCenter = edge; + d->addDepend(d->hCenter.item); + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetHorizontalCenter() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasHCenterAnchor; + d->remDepend(d->hCenter.item); + d->hCenter = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +qreal QmlGraphicsAnchors::leftMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->leftMargin; +} + +void QmlGraphicsAnchors::setLeftMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->leftMargin == offset) + return; + d->leftMargin = offset; + d->updateHorizontalAnchors(); + emit leftMarginChanged(); +} + +qreal QmlGraphicsAnchors::rightMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->rightMargin; +} + +void QmlGraphicsAnchors::setRightMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->rightMargin == offset) + return; + d->rightMargin = offset; + d->updateHorizontalAnchors(); + emit rightMarginChanged(); +} + +qreal QmlGraphicsAnchors::horizontalCenterOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->hCenterOffset; +} + +void QmlGraphicsAnchors::setHorizontalCenterOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->hCenterOffset == offset) + return; + d->hCenterOffset = offset; + d->updateHorizontalAnchors(); + emit horizontalCenterOffsetChanged(); +} + +qreal QmlGraphicsAnchors::topMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->topMargin; +} + +void QmlGraphicsAnchors::setTopMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->topMargin == offset) + return; + d->topMargin = offset; + d->updateVerticalAnchors(); + emit topMarginChanged(); +} + +qreal QmlGraphicsAnchors::bottomMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->bottomMargin; +} + +void QmlGraphicsAnchors::setBottomMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->bottomMargin == offset) + return; + d->bottomMargin = offset; + d->updateVerticalAnchors(); + emit bottomMarginChanged(); +} + +qreal QmlGraphicsAnchors::verticalCenterOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->vCenterOffset; +} + +void QmlGraphicsAnchors::setVerticalCenterOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->vCenterOffset == offset) + return; + d->vCenterOffset = offset; + d->updateVerticalAnchors(); + emit verticalCenterOffsetChanged(); +} + +qreal QmlGraphicsAnchors::baselineOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->baselineOffset; +} + +void QmlGraphicsAnchors::setBaselineOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->baselineOffset == offset) + return; + d->baselineOffset = offset; + d->updateVerticalAnchors(); + emit baselineOffsetChanged(); +} + +QmlGraphicsAnchors::UsedAnchors QmlGraphicsAnchors::usedAnchors() const +{ + Q_D(const QmlGraphicsAnchors); + return d->usedAnchors; +} + +void QmlGraphicsAnchors::setItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsAnchors); + d->item = item; +} + +bool QmlGraphicsAnchorsPrivate::checkHValid() const +{ + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor && + usedAnchors & QmlGraphicsAnchors::HasRightAnchor && + usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify left, right, and hcenter anchors."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkHAnchorValid(QmlGraphicsAnchorLine anchor) const +{ + if (!anchor.item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); + return false; + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Vertical_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); + return false; + } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + return false; + } else if (anchor.item == item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkVValid() const +{ + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor && + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor && + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); + return false; + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor && + (usedAnchors & QmlGraphicsAnchors::HasTopAnchor || + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor || + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor)) { + qmlInfo(QmlGraphicsAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) const +{ + if (!anchor.item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); + return false; + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Horizontal_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); + return false; + } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + return false; + } else if (anchor.item == item){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); + return false; + } + + return true; +} + +QT_END_NAMESPACE + +#include "moc_qmlgraphicsanchors.cpp" + diff --git a/src/declarative/fx/qmlgraphicsanchors.h b/src/declarative/fx/qmlgraphicsanchors.h new file mode 100644 index 0000000..de7214d --- /dev/null +++ b/src/declarative/fx/qmlgraphicsanchors.h @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANCHORS_H +#define QMLGRAPHICSANCHORS_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsAnchorsPrivate; +class QmlGraphicsAnchorLine; +class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) + Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) + Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) + Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) + Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) + Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) + Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) + Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) + Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) + Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) + +public: + QmlGraphicsAnchors(QObject *parent=0); + virtual ~QmlGraphicsAnchors(); + + enum UsedAnchor { + HasLeftAnchor = 0x01, + HasRightAnchor = 0x02, + HasTopAnchor = 0x04, + HasBottomAnchor = 0x08, + HasHCenterAnchor = 0x10, + HasVCenterAnchor = 0x20, + HasBaselineAnchor = 0x40, + Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, + Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor + }; + Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) + + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); + void resetLeft(); + + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); + void resetRight(); + + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); + void resetHorizontalCenter(); + + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); + void resetTop(); + + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); + void resetBottom(); + + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); + void resetVerticalCenter(); + + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); + void resetBaseline(); + + qreal leftMargin() const; + void setLeftMargin(qreal); + + qreal rightMargin() const; + void setRightMargin(qreal); + + qreal horizontalCenterOffset() const; + void setHorizontalCenterOffset(qreal); + + qreal topMargin() const; + void setTopMargin(qreal); + + qreal bottomMargin() const; + void setBottomMargin(qreal); + + qreal verticalCenterOffset() const; + void setVerticalCenterOffset(qreal); + + qreal baselineOffset() const; + void setBaselineOffset(qreal); + + QmlGraphicsItem *fill() const; + void setFill(QmlGraphicsItem *); + + QmlGraphicsItem *centerIn() const; + void setCenterIn(QmlGraphicsItem *); + + UsedAnchors usedAnchors() const; + + void setItem(QmlGraphicsItem *item); + + void classBegin(); + void componentComplete(); + +Q_SIGNALS: + void leftMarginChanged(); + void rightMarginChanged(); + void topMarginChanged(); + void bottomMarginChanged(); + void verticalCenterOffsetChanged(); + void horizontalCenterOffsetChanged(); + void baselineOffsetChanged(); + +private: + friend class QmlGraphicsItem; + Q_DISABLE_COPY(QmlGraphicsAnchors) + Q_DECLARE_PRIVATE(QmlGraphicsAnchors) +}; +Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsAnchors) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsanchors_p.h b/src/declarative/fx/qmlgraphicsanchors_p.h new file mode 100644 index 0000000..3986cd6 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsanchors_p.h @@ -0,0 +1,160 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANCHORS_P_H +#define QMLGRAPHICSANCHORS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsanchors.h" +#include "private/qobject_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsAnchorLine +{ +public: + QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) + { + } + + enum AnchorLine { + Invalid = 0x0, + Left = 0x01, + Right = 0x02, + Top = 0x04, + Bottom = 0x08, + HCenter = 0x10, + VCenter = 0x20, + Baseline = 0x40, + Horizontal_Mask = Left | Right | HCenter, + Vertical_Mask = Top | Bottom | VCenter | Baseline + }; + + QmlGraphicsItem *item; + AnchorLine anchorLine; +}; +Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) + +class QmlGraphicsAnchorsPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnchors) +public: + QmlGraphicsAnchorsPrivate() + : updatingMe(false), updatingHorizontalAnchor(0), + updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), + centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), + bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), + componentComplete(true) + { + } + + void init() + { + } + + void clearItem(QmlGraphicsItem *); + + void addDepend(QmlGraphicsItem *); + void remDepend(QmlGraphicsItem *); + bool isItemComplete() const; + + bool updatingMe; + int updatingHorizontalAnchor; + int updatingVerticalAnchor; + + void setItemHeight(qreal); + void setItemWidth(qreal); + void setItemX(qreal); + void setItemY(qreal); + void setItemPos(const QPointF &); + + void updateOnComplete(); + void updateMe(); + void update(QmlGraphicsItem *, const QRectF &, const QRectF &); + + bool checkHValid() const; + bool checkVValid() const; + bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); + + void updateHorizontalAnchors(); + void updateVerticalAnchors(); + void fillChanged(); + void centerInChanged(); + + QmlGraphicsItem *item; + QmlGraphicsAnchors::UsedAnchors usedAnchors; + + QmlGraphicsItem *fill; + QmlGraphicsItem *centerIn; + + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine baseline; + + qreal leftMargin; + qreal rightMargin; + qreal topMargin; + qreal bottomMargin; + qreal vCenterOffset; + qreal hCenterOffset; + qreal baselineOffset; + + bool componentComplete; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicsborderimage.cpp b/src/declarative/fx/qmlgraphicsborderimage.cpp new file mode 100644 index 0000000..c346366 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsborderimage.cpp @@ -0,0 +1,411 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsborderimage.h" +#include "qmlgraphicsborderimage_p.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QmlGraphicsBorderImage) + +/*! + \qmlclass BorderImage QmlGraphicsBorderImage + \brief The BorderImage element provides an image that can be used as a border. + \inherits Item + + \snippet examples/declarative/border-image/example.qml 0 + + \image BorderImage.png + + \sa examples/declarative/border-image + */ + +/*! + \internal + \class QmlGraphicsBorderImage BorderImage + \brief The QmlGraphicsBorderImage class provides an image item that you can add to a QmlView. +*/ + +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsBorderImagePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsBorderImage::~QmlGraphicsBorderImage() +{ + Q_D(QmlGraphicsBorderImage); + if (d->sciReply) + d->sciReply->deleteLater(); + if (d->sciPendingPixmapCache) + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); +} +/*! + \qmlproperty enum BorderImage::status + + This property holds the status of image loading. It can be one of: + \list + \o Null - no image has been set + \o Ready - the image has been loaded + \o Loading - the image is currently being loaded + \o Error - an error occurred while loading the image + \endlist + + \sa progress +*/ + +/*! + \qmlproperty real BorderImage::progress + + This property holds the progress of image loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ + +/*! + \qmlproperty bool BorderImage::smooth + + Set this property if you want the image to be smoothly filtered when scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the image is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the image is stationary on + the screen. A common pattern when animating an image is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +/*! + \qmlproperty url BorderImage::source + + BorderImage can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. + + It can also handle .sci files, which are a Qml-specific format. A .sci file uses a simple text-based format that specifies + the borders, the image file and the tile rules. + + The following .sci file sets the borders to 10 on each side for the image \c picture.png: + \qml + border.left: 10 + border.top: 10 + border.bottom: 10 + border.right: 10 + source: picture.png + \endqml + + The URL may be absolute, or relative to the URL of the component. +*/ + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + + +void QmlGraphicsBorderImage::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsBorderImage); + //equality is fairly expensive, so we bypass for simple, common case + if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) + return; + + if (d->sciReply) { + d->sciReply->deleteLater(); + d->sciReply = 0; + } + + if (d->pendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->url, this); + d->pendingPixmapCache = false; + } + if (d->sciPendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); + d->sciPendingPixmapCache = false; + } + + d->url = url; + d->sciurl = QUrl(); + if (d->progress != 0.0) { + d->progress = 0.0; + emit progressChanged(d->progress); + } + + if (url.isEmpty()) { + d->pix = QPixmap(); + d->status = Null; + d->progress = 1.0; + setImplicitWidth(0); + setImplicitHeight(0); + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } else { + d->status = Loading; + if (d->url.path().endsWith(QLatin1String(".sci"))) { +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(d->url); + if (!lf.isEmpty()) { + QFile file(lf); + file.open(QIODevice::ReadOnly); + setGridScaledImage(QmlGraphicsGridScaledImage(&file)); + } else +#endif + { + QNetworkRequest req(d->url); + d->sciReply = qmlEngine(this)->networkAccessManager()->get(req); + QObject::connect(d->sciReply, SIGNAL(finished()), + this, SLOT(sciRequestFinished())); + } + } else { + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); + if (reply) { + d->pendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } + } + + emit statusChanged(d->status); +} + +/*! + \qmlproperty int BorderImage::border.left + \qmlproperty int BorderImage::border.right + \qmlproperty int BorderImage::border.top + \qmlproperty int BorderImage::border.bottom + + \target ImagexmlpropertiesscaleGrid + + The 4 border lines (2 horizontal and 2 vertical) break an image into 9 sections, as shown below: + + \image declarative-scalegrid.png + + When the image is scaled: + \list + \i the corners (sections 1, 3, 7, and 9) are not scaled at all + \i the middle (section 5) is scaled according to BorderImage::horizontalTileMode and BorderImage::verticalTileMode + \i sections 2 and 8 are scaled according to BorderImage::horizontalTileMode + \i sections 4 and 6 are scaled according to BorderImage::verticalTileMode + \endlist + + Each border line (left, right, top, and bottom) specifies an offset from the respective side. For example, \c{border.bottom: 10} sets the bottom line 10 pixels up from the bottom of the image. + + The border lines can also be specified using a + \l {BorderImage::source}{.sci file}. +*/ + +QmlGraphicsScaleGrid *QmlGraphicsBorderImage::border() +{ + Q_D(QmlGraphicsBorderImage); + return d->getScaleGrid(); +} + +/*! + \qmlproperty TileMode BorderImage::horizontalTileMode + \qmlproperty TileMode BorderImage::verticalTileMode + + This property describes how to repeat or stretch the middle parts of the border image. + + \list + \o Stretch - Scale the image to fit to the available area. + \o Repeat - Tile the image until there is no more space. May crop the last image. + \o Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. + \endlist +*/ +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::horizontalTileMode() const +{ + Q_D(const QmlGraphicsBorderImage); + return d->horizontalTileMode; +} + +void QmlGraphicsBorderImage::setHorizontalTileMode(TileMode t) +{ + Q_D(QmlGraphicsBorderImage); + if (t != d->horizontalTileMode) { + d->horizontalTileMode = t; + emit horizontalTileModeChanged(); + update(); + } +} + +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::verticalTileMode() const +{ + Q_D(const QmlGraphicsBorderImage); + return d->verticalTileMode; +} + +void QmlGraphicsBorderImage::setVerticalTileMode(TileMode t) +{ + Q_D(QmlGraphicsBorderImage); + if (t != d->verticalTileMode) { + d->verticalTileMode = t; + emit verticalTileModeChanged(); + update(); + } +} + +void QmlGraphicsBorderImage::setGridScaledImage(const QmlGraphicsGridScaledImage& sci) +{ + Q_D(QmlGraphicsBorderImage); + if (!sci.isValid()) { + d->status = Error; + emit statusChanged(d->status); + } else { + QmlGraphicsScaleGrid *sg = border(); + sg->setTop(sci.gridTop()); + sg->setBottom(sci.gridBottom()); + sg->setLeft(sci.gridLeft()); + sg->setRight(sci.gridRight()); + d->horizontalTileMode = sci.horizontalTileRule(); + d->verticalTileMode = sci.verticalTileRule(); + + d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl())); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); + if (reply) { + d->sciPendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } +} + +void QmlGraphicsBorderImage::requestFinished() +{ + Q_D(QmlGraphicsBorderImage); + + if (d->url.path().endsWith(QLatin1String(".sci"))) { + d->sciPendingPixmapCache = false; + QmlGraphicsPixmapCache::find(d->sciurl, &d->pix); + } else { + d->pendingPixmapCache = false; + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) + d->status = Error; + } + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); +} + +void QmlGraphicsBorderImage::sciRequestFinished() +{ + Q_D(QmlGraphicsBorderImage); + if (d->sciReply->error() != QNetworkReply::NoError) { + d->status = Error; + d->sciReply->deleteLater(); + d->sciReply = 0; + emit statusChanged(d->status); + } else { + QmlGraphicsGridScaledImage sci(d->sciReply); + d->sciReply->deleteLater(); + d->sciReply = 0; + setGridScaledImage(sci); + } +} + +void QmlGraphicsBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsBorderImage); + if (d->pix.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + QMargins margins(border()->top(), border()->left(), border()->bottom(), border()->right()); + QTileRules rules((Qt::TileRule)d->horizontalTileMode, (Qt::TileRule)d->verticalTileMode); + qDrawBorderPixmap(p, QRect(0, 0, (int)d->width, (int)d->height), margins, d->pix, d->pix.rect(), margins, rules); + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsborderimage.h b/src/declarative/fx/qmlgraphicsborderimage.h new file mode 100644 index 0000000..e3c50bb --- /dev/null +++ b/src/declarative/fx/qmlgraphicsborderimage.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSBORDERIMAGE_H +#define QMLGRAPHICSBORDERIMAGE_H + +#include +#include "qmlgraphicsimagebase.h" + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsScaleGrid; +class QmlGraphicsGridScaledImage; +class QmlGraphicsBorderImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase +{ + Q_OBJECT + Q_ENUMS(TileMode) + + Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) + Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) + Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) + +public: + QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsBorderImage(); + + QmlGraphicsScaleGrid *border(); + + enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; + + TileMode horizontalTileMode() const; + void setHorizontalTileMode(TileMode); + + TileMode verticalTileMode() const; + void setVerticalTileMode(TileMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + void setSource(const QUrl &url); + +Q_SIGNALS: + void horizontalTileModeChanged(); + void verticalTileModeChanged(); + +protected: + QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); + +private: + void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); + +private Q_SLOTS: + void requestFinished(); + void sciRequestFinished(); + +private: + Q_DISABLE_COPY(QmlGraphicsBorderImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) +}; + +QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsBorderImage) +QT_END_HEADER + +#endif // QMLGRAPHICSBORDERIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsborderimage_p.h b/src/declarative/fx/qmlgraphicsborderimage_p.h new file mode 100644 index 0000000..fb905cd --- /dev/null +++ b/src/declarative/fx/qmlgraphicsborderimage_p.h @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSBORDERIMAGE_P_H +#define QMLGRAPHICSBORDERIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsimagebase_p.h" +#include "qmlgraphicsscalegrid_p.h" + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) + +public: + QmlGraphicsBorderImagePrivate() + : border(0), sciReply(0), + sciPendingPixmapCache(false), + horizontalTileMode(QmlGraphicsBorderImage::Stretch), + verticalTileMode(QmlGraphicsBorderImage::Stretch) + { + } + + ~QmlGraphicsBorderImagePrivate() + { + } + + QmlGraphicsScaleGrid *getScaleGrid() + { + Q_Q(QmlGraphicsBorderImage); + if (!border) + border = new QmlGraphicsScaleGrid(q); + return border; + } + + QmlGraphicsScaleGrid *border; + QUrl sciurl; + QNetworkReply *sciReply; + bool sciPendingPixmapCache; + QmlGraphicsBorderImage::TileMode horizontalTileMode; + QmlGraphicsBorderImage::TileMode verticalTileMode; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSBORDERIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicseffects.cpp b/src/declarative/fx/qmlgraphicseffects.cpp new file mode 100644 index 0000000..ebdd880 --- /dev/null +++ b/src/declarative/fx/qmlgraphicseffects.cpp @@ -0,0 +1,238 @@ +#include +#include +#include + +QML_DECLARE_TYPE(QGraphicsEffect) +QML_DEFINE_NOCREATE_TYPE(QGraphicsEffect) + +QML_DECLARE_TYPE(QGraphicsBlurEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Blur,QGraphicsBlurEffect) + +/*! + \qmlclass Blur + \brief The Blur object provides a blur effect. + + A blur effect blurs the source item. This effect is useful for reducing details, + such as when the source loses focus and you want to draw attention to other + elements. The level of detail can be modified using the blurRadius property. + Use blurHint to choose the quality or performance blur hints. + + By default, the blur radius is 5 pixels. + + \img graphicseffect-blur.png +*/ + +/*! + \qmlproperty real Blur::blurRadius + + blurRadius controls how blurry an item will appear. + Using a smaller radius results in a sharper appearance, whereas a bigger + radius results in a more blurred appearance. + + By default, the blur radius is 5 pixels. +*/ +/*! + \qmlproperty enumeration Blur::blurHint + + Use the Qt.PerformanceHint hint to say that you want a faster blur, + and the Qt.QualityHint hint to say that you prefer a higher quality blur. + + When animating the blur radius it's recommended to use Qt.PerformanceHint. + + By default, the blur hint is Qt.PerformanceHint. +*/ + +QML_DECLARE_TYPE(QGraphicsGrayscaleEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grayscale,QGraphicsGrayscaleEffect) + +/*! + \qmlclass Grayscale + \brief The Grayscale object provides a grayscale effect. + + A grayscale effect renders the source item in shades of gray. + + \img graphicseffect-grayscale.png +*/ + +/*! + \qmlproperty real Grayscale::strength + + To what extent the source item is "grayed". A strength of 0.0 is equal to no effect, + while 1.0 means full grayscale. By default, the strength is 1.0. +*/ + +QML_DECLARE_TYPE(QGraphicsColorizeEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Colorize,QGraphicsColorizeEffect) + +/*! + \qmlclass Colorize + \brief The Colorize object provides a colorize effect. + + A colorize effect renders the source item with a tint of its color. + + By default, the color is light blue. + + \img graphicseffect-colorize.png +*/ + +/*! + \qmlproperty color Colorize::color + The color of the effect. + + By default, the color is light blue. +*/ + +/*! + \qmlproperty real Colorize::strength + + To what extent the source item is "colored". A strength of 0.0 is equal to no effect, + while 1.0 means full colorization. By default, the strength is 1.0. +*/ + +QML_DECLARE_TYPE(QGraphicsPixelizeEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pixelize,QGraphicsPixelizeEffect) + +/*! + \qmlclass Pixelize + \brief The Pixelize object provides a pixelize effect. + + A pixelize effect renders the source item in lower resolution. The resolution + can be modified using the pixelSize property. + + By default, the pixel size is 3. + + \img graphicseffect-pixelize.png +*/ + +/*! + \qmlproperty int Pixelize::pixelSize + The size of a pixel in the effect. + + Setting the pixel size to 2 means two pixels in the source item will be used to + represent one pixel in the output. Using a bigger size results in lower resolution. + + By default, the pixel size is 3. +*/ + + +QML_DECLARE_TYPE(QGraphicsDropShadowEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,DropShadow,QGraphicsDropShadowEffect) + +/*! + \qmlclass DropShadow + \brief The DropShadow object provides a drop shadow effect. + + A drop shadow effect renders the source item with a drop shadow. The color of + the drop shadow can be modified using the color property. The drop + shadow offset can be modified using the xOffset and yOffset properties and the blur + radius of the drop shadow can be changed with the blurRadius property. + + By default, the drop shadow is a semi-transparent dark gray shadow, + blurred with a radius of 1 at an offset of 8 pixels towards the lower right. + + \img graphicseffect-drop-shadow.png +*/ + +/*! + \qmlproperty real DropShadow::xOffset + \qmlproperty real DropShadow::yOffset + The shadow offset in pixels. + + By default, xOffset and yOffset are 8 pixels. +*/ + +/*! + \qmlproperty real DropShadow::blurRadius + The blur radius in pixels of the drop shadow. + + Using a smaller radius results in a sharper shadow, whereas using a bigger + radius results in a more blurred shadow. + + By default, the blur radius is 1 pixel. +*/ + +/*! + \qmlproperty color DropShadow::color + The color of the drop shadow. + + By default, the drop color is a semi-transparent dark gray. +*/ + +QML_DECLARE_TYPE(QGraphicsOpacityEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Opacity,QGraphicsOpacityEffect) + +/*! + \qmlclass Opacity + \brief The Opacity object provides an opacity effect. + + An opacity effect renders the source with an opacity. This effect is useful + for making the source semi-transparent, similar to a fade-in/fade-out + sequence. The opacity can be modified using the opacity property. + + By default, the opacity is 0.7. + + \img graphicseffect-opacity.png +*/ + +/*! + \qmlproperty real Opacity::opacity + This property specifies how opaque an item should appear. + + The value should be in the range of 0.0 to 1.0, where 0.0 is + fully transparent and 1.0 is fully opaque. + + By default, the opacity is 0.7. +*/ + +QML_DECLARE_TYPE(QGraphicsBloomEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Bloom,QGraphicsBloomEffect) + +/*! + \qmlclass Bloom + \brief The Bloom object provides a bloom/glow effect. + + A bloom/glow effect adds fringes of light around bright areas in the source item. + + \img graphicseffect-bloom.png +*/ + +/*! + \qmlproperty real Bloom::blurRadius + The blur radius in pixels of the effect. + + Using a smaller radius results in a sharper appearance, whereas a bigger + radius results in a more blurred appearance. + + By default, the blur radius is 5 pixels. +*/ + +/*! + \qmlproperty enumeration Bloom::blurHint + + Use the Qt.PerformanceHint hint to say that you want a faster blur, + and the Qt.QualityHint hint to say that you prefer a higher quality blur. + + When animating the blur radius it's recommended to use Qt.PerformanceHint. + + By default, the blur hint is Qt.PerformanceHint. +*/ + +/*! + \qmlproperty int Bloom::brightness + This property specifies how bright the glow should appear. + + The value should be in the range of 0 to 255, where 0 is dark + and 255 is bright. + + By default, the brightness is 70. +*/ + +/*! + \qmlproperty real Bloom::strength + The strength of the glow. + + A strength of 0.0 is equal to no effect, while 1.0 means maximum glow. + + By default, the strength is 0.7. +*/ + diff --git a/src/declarative/fx/qmlgraphicsevents.cpp b/src/declarative/fx/qmlgraphicsevents.cpp new file mode 100644 index 0000000..468b223 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsevents.cpp @@ -0,0 +1,195 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsevents_p.h" + +QT_BEGIN_NAMESPACE +/*! + \qmlclass KeyEvent QmlGraphicsKeyEvent + \brief The KeyEvent object provides information about a key event. + + For example, the following changes the Item's state property when the Enter + key is pressed: + \qml +Item { + focus: true + Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; } +} + \endqml +*/ + +/*! + \internal + \class QmlGraphicsKeyEvent +*/ + +/*! + \qmlproperty int KeyEvent::key + + This property holds the code of the key that was pressed or released. + + See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. These codes are + independent of the underlying window system. Note that this + function does not distinguish between capital and non-capital + letters, use the text() function (returning the Unicode text the + key generated) for this purpose. + + A value of either 0 or \l {Qt::Key_unknown}{Qt.Key_Unknown} means that the event is not + the result of a known key; for example, it may be the result of + a compose sequence, a keyboard macro, or due to key event + compression. +*/ + +/*! + \qmlproperty string KeyEvent::text + + This property holds the Unicode text that the key generated. + The text returned can be an empty string in cases where modifier keys, + such as Shift, Control, Alt, and Meta, are being pressed or released. + In such cases \c key will contain a valid value +*/ + +/*! + \qmlproperty bool KeyEvent::isAutoRepeat + + This property holds whether this event comes from an auto-repeating key. +*/ + +/*! + \qmlproperty int KeyEvent::count + + This property holds the number of keys involved in this event. If \l KeyEvent::text + is not empty, this is simply the length of the string. +*/ + +/*! + \qmlproperty bool KeyEvent::accepted + + Setting \a accepted to true prevents the key event from being + propagated to the item's parent. + + Generally, if the item acts on the key event then it should be accepted + so that ancestor items do not also respond to the same event. +*/ + + +/*! + \qmlclass MouseEvent QmlGraphicsMouseEvent + \brief The MouseEvent object provides information about a mouse event. + + The position of the mouse can be found via the x and y properties. + The button that caused the event is available via the button property. +*/ + +/*! + \internal + \class QmlGraphicsMouseEvent +*/ + +/*! + \qmlproperty int MouseEvent::x + \qmlproperty int MouseEvent::y + + These properties hold the position of the mouse event. +*/ + +/*! + \qmlproperty enum MouseEvent::button + + This property holds the button that caused the event. It can be one of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist +*/ + +/*! + \qmlproperty bool MouseEvent::wasHeld + + This property is true if the mouse button has been held pressed longer the + threshold (800ms). +*/ + +/*! + \qmlproperty int MouseEvent::buttons + + This property holds the mouse buttons pressed when the event was generated. + For mouse move events, this is all buttons that are pressed down. For mouse + press and double click events this includes the button that caused the event. + For mouse release events this excludes the button that caused the event. + + It contains a bitwise combination of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist +*/ + +/*! + \qmlproperty int MouseEvent::modifiers + + This property holds the keyboard modifier flags that existed immediately + before the event occurred. + + It contains a bitwise combination of: + \list + \o Qt.NoModifier - No modifier key is pressed. + \o Qt.ShiftModifier - A Shift key on the keyboard is pressed. + \o Qt.ControlModifier - A Ctrl key on the keyboard is pressed. + \o Qt.AltModifier - An Alt key on the keyboard is pressed. + \o Qt.MetaModifier - A Meta key on the keyboard is pressed. + \o Qt.KeypadModifier - A keypad button is pressed. + \endlist + + For example, to react to a Shift key + Left mouse button click: + \qml +MouseRegion { + onClicked: { if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething(); } +} + \endqml +*/ + +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsKeyEvent) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsMouseEvent) + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsevents_p.h b/src/declarative/fx/qmlgraphicsevents_p.h new file mode 100644 index 0000000..f093932 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsevents_p.h @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSEVENTS_P_H +#define QMLGRAPHICSEVENTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsKeyEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int key READ key) + Q_PROPERTY(QString text READ text) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) + Q_PROPERTY(int count READ count) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) + : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } + QmlGraphicsKeyEvent(const QKeyEvent &ke) + : event(ke) { event.setAccepted(false); } + + int key() const { return event.key(); } + QString text() const { return event.text(); } + int modifiers() const { return event.modifiers(); } + bool isAutoRepeat() const { return event.isAutoRepeat(); } + int count() const { return event.count(); } + + bool isAccepted() { return event.isAccepted(); } + void setAccepted(bool accepted) { event.setAccepted(accepted); } + +private: + QKeyEvent event; +}; + +class QmlGraphicsMouseEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int x READ x) + Q_PROPERTY(int y READ y) + Q_PROPERTY(int button READ button) + Q_PROPERTY(int buttons READ buttons) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool wasHeld READ wasHeld) + Q_PROPERTY(bool isClick READ isClick) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers + , bool isClick=false, bool wasHeld=false) + : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) + , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} + + int x() const { return _x; } + int y() const { return _y; } + int button() const { return _button; } + int buttons() const { return _buttons; } + int modifiers() const { return _modifiers; } + bool wasHeld() const { return _wasHeld; } + bool isClick() const { return _isClick; } + + bool isAccepted() { return _accepted; } + void setAccepted(bool accepted) { _accepted = accepted; } + +private: + int _x; + int _y; + Qt::MouseButton _button; + Qt::MouseButtons _buttons; + Qt::KeyboardModifiers _modifiers; + bool _wasHeld; + bool _isClick; + bool _accepted; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsKeyEvent) +QML_DECLARE_TYPE(QmlGraphicsMouseEvent) + +#endif // QMLGRAPHICSEVENTS_P_H diff --git a/src/declarative/fx/qmlgraphicsflickable.cpp b/src/declarative/fx/qmlgraphicsflickable.cpp new file mode 100644 index 0000000..ed964aa --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflickable.cpp @@ -0,0 +1,1283 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsflickable.h" +#include "qmlgraphicsflickable_p.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + + +// These are highly device dependant. +// DragThreshold determines how far the "mouse" must move before +// we begin a drag. +// FlickThreshold determines how far the "mouse" must have moved +// before we perform a flick. +static const int DragThreshold = 8; +static const int FlickThreshold = 20; + +// Really slow flicks can be annoying. +static const int minimumFlickVelocity = 200; + +class QmlGraphicsFlickableVisibleArea : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal xPosition READ xPosition NOTIFY pageChanged) + Q_PROPERTY(qreal yPosition READ yPosition NOTIFY pageChanged) + Q_PROPERTY(qreal widthRatio READ widthRatio NOTIFY pageChanged) + Q_PROPERTY(qreal heightRatio READ heightRatio NOTIFY pageChanged) + +public: + QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent=0); + + qreal xPosition() const; + qreal widthRatio() const; + qreal yPosition() const; + qreal heightRatio() const; + + void updateVisible(); + +signals: + void pageChanged(); + +private: + QmlGraphicsFlickable *flickable; + qreal m_xPosition; + qreal m_widthRatio; + qreal m_yPosition; + qreal m_heightRatio; +}; + +QmlGraphicsFlickableVisibleArea::QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent) + : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) + , m_yPosition(0.), m_heightRatio(0.) +{ +} + +qreal QmlGraphicsFlickableVisibleArea::widthRatio() const +{ + return m_widthRatio; +} + +qreal QmlGraphicsFlickableVisibleArea::xPosition() const +{ + return m_xPosition; +} + +qreal QmlGraphicsFlickableVisibleArea::heightRatio() const +{ + return m_heightRatio; +} + +qreal QmlGraphicsFlickableVisibleArea::yPosition() const +{ + return m_yPosition; +} + +void QmlGraphicsFlickableVisibleArea::updateVisible() +{ + QmlGraphicsFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); + bool pageChange = false; + + // Vertical + const qreal viewheight = flickable->height(); + const qreal maxyextent = -flickable->maxYExtent(); + qreal pagePos = -p->_moveY.value() / (maxyextent + viewheight); + qreal pageSize = viewheight / (maxyextent + viewheight); + + if (pageSize != m_heightRatio) { + m_heightRatio = pageSize; + pageChange = true; + } + if (pagePos != m_yPosition) { + m_yPosition = pagePos; + pageChange = true; + } + + // Horizontal + const qreal viewwidth = flickable->width(); + const qreal maxxextent = -flickable->maxXExtent(); + pagePos = -p->_moveX.value() / (maxxextent + viewwidth); + pageSize = viewwidth / (maxxextent + viewwidth); + + if (pageSize != m_widthRatio) { + m_widthRatio = pageSize; + pageChange = true; + } + if (pagePos != m_xPosition) { + m_xPosition = pagePos; + pageChange = true; + } + if (pageChange) + emit pageChanged(); +} + + +QmlGraphicsFlickablePrivate::QmlGraphicsFlickablePrivate() + : viewport(new QmlGraphicsItem), _moveX(viewport, &QmlGraphicsItem::setX), _moveY(viewport, &QmlGraphicsItem::setY) + , vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false) + , pressed(false), atXEnd(false), atXBeginning(true), atYEnd(false), atYBeginning(true) + , interactive(true), deceleration(500), maxVelocity(5000), reportedVelocitySmoothing(100) + , delayedPressEvent(0), delayedPressTarget(0), pressDelay(0) + , horizontalVelocity(this), verticalVelocity(this), vTime(0), visibleArea(0) +{ + fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); + fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); +} + +void QmlGraphicsFlickablePrivate::init() +{ + Q_Q(QmlGraphicsFlickable); + viewport->setParent(q); + QObject::connect(&timeline, SIGNAL(updated()), q, SLOT(ticked())); + QObject::connect(&timeline, SIGNAL(completed()), q, SLOT(movementEnding())); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFiltersChildEvents(true); + QObject::connect(viewport, SIGNAL(xChanged()), q, SIGNAL(positionXChanged())); + QObject::connect(viewport, SIGNAL(yChanged()), q, SIGNAL(positionYChanged())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(heightChange())); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(widthChange())); +} + +void QmlGraphicsFlickablePrivate::flickX(qreal velocity) +{ + Q_Q(QmlGraphicsFlickable); + qreal maxDistance = -1; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveX.value() < q->minXExtent()) + maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); + flickTargetX = q->minXExtent(); + } else { + if (_moveX.value() > q->maxXExtent()) + maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); + flickTargetX = q->maxXExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + timeline.reset(_moveX); + timeline.accel(_moveX, v, deceleration, maxDistance); + timeline.execute(fixupXEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveX); + fixupX(); + } +} + +void QmlGraphicsFlickablePrivate::flickY(qreal velocity) +{ + Q_Q(QmlGraphicsFlickable); + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveY.value() < q->minYExtent()) + maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); + flickTargetY = q->minYExtent(); + } else { + if (_moveY.value() > q->maxYExtent()) + maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); + flickTargetY = q->maxYExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + timeline.reset(_moveY); + timeline.accel(_moveY, v, deceleration, maxDistance); + timeline.execute(fixupYEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveY); + fixupY(); + } +} + +void QmlGraphicsFlickablePrivate::fixupX() +{ + Q_Q(QmlGraphicsFlickable); + if (!q->xflick() || _moveX.timeLine()) + return; + + vTime = timeline.time(); + + if (_moveX.value() > q->minXExtent() || (q->maxXExtent() > q->minXExtent())) { + timeline.reset(_moveX); + if (_moveX.value() != q->minXExtent()) + timeline.move(_moveX, q->minXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else if (_moveX.value() < q->maxXExtent()) { + timeline.reset(_moveX); + timeline.move(_moveX, q->maxXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else { + flicked = false; + } +} + +void QmlGraphicsFlickablePrivate::fixupY() +{ + Q_Q(QmlGraphicsFlickable); + if (!q->yflick() || _moveY.timeLine()) + return; + + vTime = timeline.time(); + + if (_moveY.value() > q->minYExtent() || (q->maxYExtent() > q->minYExtent())) { + timeline.reset(_moveY); + if (_moveY.value() != q->minYExtent()) + timeline.move(_moveY, q->minYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else if (_moveY.value() < q->maxYExtent()) { + timeline.reset(_moveY); + timeline.move(_moveY, q->maxYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else { + flicked = false; + } +} + +void QmlGraphicsFlickablePrivate::updateBeginningEnd() +{ + Q_Q(QmlGraphicsFlickable); + bool atBoundaryChange = false; + + // Vertical + const int maxyextent = int(-q->maxYExtent()); + const qreal ypos = -_moveY.value(); + bool atBeginning = (ypos <= 0.0); + bool atEnd = (maxyextent <= ypos); + + if (atBeginning != atYBeginning) { + atYBeginning = atBeginning; + atBoundaryChange = true; + } + if (atEnd != atYEnd) { + atYEnd = atEnd; + atBoundaryChange = true; + } + + // Horizontal + const int maxxextent = int(-q->maxXExtent()); + const qreal xpos = -_moveX.value(); + atBeginning = (xpos <= 0.0); + atEnd = (maxxextent <= xpos); + + if (atBeginning != atXBeginning) { + atXBeginning = atBeginning; + atBoundaryChange = true; + } + if (atEnd != atXEnd) { + atXEnd = atEnd; + atBoundaryChange = true; + } + + if (atBoundaryChange) + emit q->isAtBoundaryChanged(); + + if (visibleArea) + visibleArea->updateVisible(); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QmlGraphicsFlickable) + +/*! + \qmlclass Flickable + \brief The Flickable item provides a surface that can be "flicked". + \inherits Item + + Flickable places its children on a surface that can be dragged and flicked. + + \code + Flickable { + width: 200; height: 200; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } + } + \endcode + + \image flickable.gif + + \note Flickable does not automatically clip its contents. If + it is not full-screen it is likely that \c clip should be set + to true. + + \note Due to an implementation detail items placed inside a flickable cannot anchor to it by + id, use 'parent' instead. +*/ + +/*! + \internal + \class QmlGraphicsFlickable + \brief The QmlGraphicsFlickable class provides a view that can be "flicked". + + \ingroup group_widgets + + QmlGraphicsFlickable allows its children to be dragged and flicked. + +\code +Flickable { + width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } +} +\endcode + + Note that QmlGraphicsFlickable does not automatically clip its contents. If + it is not full-screen it is likely that QmlGraphicsItem::clip should be set + to true. + +*/ + +/*! + \qmlproperty real Flickable::visibleArea.xPosition + \qmlproperty real Flickable::visibleArea.widthRatio + \qmlproperty real Flickable::visibleArea.yPosition + \qmlproperty real Flickable::visibleArea.heightRatio + + These properties describe the position and size of the currently viewed area. + The size is defined as the percentage of the full view currently visible, + scaled to 0.0 - 1.0. The page position is in the range 0.0 (beginning) to + size ratio (end), i.e. yPosition is in the range 0.0 - heightRatio. + + These properties are typically used to draw a scrollbar, for example: + \code + Rectangle { + opacity: 0.5; anchors.right: MyListView.right-2; width: 6 + y: MyListView.visibleArea.yPosition * MyListView.height + height: MyListView.visibleArea.heightRatio * MyListView.height + } + \endcode +*/ + +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsFlickablePrivate), parent) +{ + Q_D(QmlGraphicsFlickable); + d->init(); +} + +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsFlickable); + d->init(); +} + +QmlGraphicsFlickable::~QmlGraphicsFlickable() +{ +} + +/*! + \qmlproperty int Flickable::viewportX + \qmlproperty int Flickable::viewportY + + These properties hold the surface coordinate currently at the top-left + corner of the Flickable. For example, if you flick an image up 100 pixels, + \c yPosition will be 100. +*/ +qreal QmlGraphicsFlickable::viewportX() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveX.value(); +} + +void QmlGraphicsFlickable::setViewportX(qreal pos) +{ + Q_D(QmlGraphicsFlickable); + pos = qRound(pos); + d->timeline.reset(d->_moveX); + if (-pos != d->_moveX.value()) { + d->_moveX.setValue(-pos); + viewportMoved(); + } +} + +qreal QmlGraphicsFlickable::viewportY() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveY.value(); +} + +void QmlGraphicsFlickable::setViewportY(qreal pos) +{ + Q_D(QmlGraphicsFlickable); + pos = qRound(pos); + d->timeline.reset(d->_moveY); + if (-pos != d->_moveY.value()) { + d->_moveY.setValue(-pos); + viewportMoved(); + } +} + +/*! + \qmlproperty bool Flickable::interactive + + A user cannot drag or flick a Flickable that is not interactive. + + This property is useful for temporarily disabling flicking. This allows + special interaction with Flickable's children: for example, you might want to + freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable. +*/ +bool QmlGraphicsFlickable::isInteractive() const +{ + Q_D(const QmlGraphicsFlickable); + return d->interactive; +} + +void QmlGraphicsFlickable::setInteractive(bool interactive) +{ + Q_D(QmlGraphicsFlickable); + d->interactive = interactive; + if (!interactive && d->flicked) { + d->timeline.clear(); + d->flicked = false; + emit flickingChanged(); + emit flickEnded(); + } +} + +/*! + \qmlproperty real Flickable::horizontalVelocity + \qmlproperty real Flickable::verticalVelocity + \qmlproperty real Flickable::reportedVelocitySmoothing + + The instantaneous velocity of movement along the x and y axes, in pixels/sec. + + The reported velocity is smoothed to avoid erratic output. + reportedVelocitySmoothing determines how much smoothing is applied. +*/ +qreal QmlGraphicsFlickable::horizontalVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->horizontalVelocity.value(); +} + +qreal QmlGraphicsFlickable::verticalVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->verticalVelocity.value(); +} + +/*! + \qmlproperty bool Flickable::atXBeginning + \qmlproperty bool Flickable::atXEnd + \qmlproperty bool Flickable::atYBeginning + \qmlproperty bool Flickable::atYEnd + + These properties are true if the flickable view is positioned at the beginning, + or end respecively. +*/ +bool QmlGraphicsFlickable::isAtXEnd() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atXEnd; +} + +bool QmlGraphicsFlickable::isAtXBeginning() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atXBeginning; +} + +bool QmlGraphicsFlickable::isAtYEnd() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atYEnd; +} + +bool QmlGraphicsFlickable::isAtYBeginning() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atYBeginning; +} + +void QmlGraphicsFlickable::ticked() +{ + viewportMoved(); +} + +QmlGraphicsItem *QmlGraphicsFlickable::viewport() +{ + Q_D(QmlGraphicsFlickable); + return d->viewport; +} + +qreal QmlGraphicsFlickable::visibleX() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveX.value(); +} + +qreal QmlGraphicsFlickable::visibleY() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveY.value(); +} + +QmlGraphicsFlickableVisibleArea *QmlGraphicsFlickable::visibleArea() +{ + Q_D(QmlGraphicsFlickable); + if (!d->visibleArea) + d->visibleArea = new QmlGraphicsFlickableVisibleArea(this); + return d->visibleArea; +} + +void QmlGraphicsFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) +{ + if (interactive && timeline.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10)) + stealMouse = true; // If we've been flicked then steal the click. + else + stealMouse = false; + pressed = true; + timeline.clear(); + velocityX = 0; + velocityY = 0; + lastPos = QPoint(); + QmlGraphicsItemPrivate::start(lastPosTime); + pressPos = event->pos(); + pressX = _moveX.value(); + pressY = _moveY.value(); + flicked = false; + QmlGraphicsItemPrivate::start(pressTime); + QmlGraphicsItemPrivate::start(velocityTime); +} + +void QmlGraphicsFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + if (!interactive || lastPosTime.isNull()) + return; + bool rejectY = false; + bool rejectX = false; + bool moved = false; + + if (q->yflick()) { + int dy = int(event->pos().y() - pressPos.y()); + if (qAbs(dy) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { + qreal newY = dy + pressY; + const qreal minY = q->minYExtent(); + const qreal maxY = q->maxYExtent(); + if (newY > minY) + newY = minY + (newY - minY) / 2; + if (newY < maxY && maxY - minY < 0) + newY = maxY + (newY - maxY) / 2; + if (!q->overShoot() && (newY > minY || newY < maxY)) { + if (newY > minY) + newY = minY; + else if (newY < maxY) + newY = maxY; + else + rejectY = true; + } + if (!rejectY) { + _moveY.setValue(newY); + moved = true; + } + if (qAbs(dy) > DragThreshold) + stealMouse = true; + } + } + + if (q->xflick()) { + int dx = int(event->pos().x() - pressPos.x()); + if (qAbs(dx) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { + qreal newX = dx + pressX; + const qreal minX = q->minXExtent(); + const qreal maxX = q->maxXExtent(); + if (newX > minX) + newX = minX + (newX - minX) / 2; + if (newX < maxX && maxX - minX < 0) + newX = maxX + (newX - maxX) / 2; + if (!q->overShoot() && (newX > minX || newX < maxX)) { + if (newX > minX) + newX = minX; + else if (newX < maxX) + newX = maxX; + else + rejectX = true; + } + if (!rejectX) { + _moveX.setValue(newX); + moved = true; + } + + if (qAbs(dx) > DragThreshold) + stealMouse = true; + } + } + + if (!lastPos.isNull()) { + qreal elapsed = qreal(QmlGraphicsItemPrivate::restart(lastPosTime)) / 1000.; + if (elapsed <= 0) + elapsed = 1; + if (q->yflick()) { + qreal diff = event->pos().y() - lastPos.y(); + // average to reduce the effect of spurious moves + velocityY += diff / elapsed; + velocityY /= 2; + } + + if (q->xflick()) { + qreal diff = event->pos().x() - lastPos.x(); + // average to reduce the effect of spurious moves + velocityX += diff / elapsed; + velocityX /= 2; + } + } + + if (rejectY) velocityY = 0; + if (rejectX) velocityX = 0; + + if (moved) { + q->movementStarting(); + q->viewportMoved(); + } + + lastPos = event->pos(); +} + +void QmlGraphicsFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + pressed = false; + if (lastPosTime.isNull()) + return; + + if (QmlGraphicsItemPrivate::elapsed(lastPosTime) > 100) { + // if we drag then pause before release we should not cause a flick. + velocityX = 0.0; + velocityY = 0.0; + } + + vTime = timeline.time(); + if (qAbs(velocityY) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) { + qreal velocity = velocityY; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + flickY(velocity); + } else { + fixupY(); + } + + if (qAbs(velocityX) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) { + qreal velocity = velocityX; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + flickX(velocity); + } else { + fixupX(); + } + + stealMouse = false; + lastPosTime = QTime(); + + if (!timeline.isActive()) + q->movementEnding(); +} + +void QmlGraphicsFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->handleMousePressEvent(event); + event->accept(); +} + +void QmlGraphicsFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->handleMouseMoveEvent(event); + event->accept(); +} + +void QmlGraphicsFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->clearDelayedPress(); + d->handleMouseReleaseEvent(event); + event->accept(); + ungrabMouse(); +} + +void QmlGraphicsFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + if (!q->scene() || pressDelay <= 0) + return; + delayedPressTarget = q->scene()->mouseGrabberItem(); + delayedPressEvent = new QGraphicsSceneMouseEvent(event->type()); + delayedPressEvent->setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + delayedPressEvent->setButtonDownPos(button, event->buttonDownPos(button)); + delayedPressEvent->setButtonDownScenePos(button, event->buttonDownScenePos(button)); + delayedPressEvent->setButtonDownScreenPos(button, event->buttonDownScreenPos(button)); + } + } + delayedPressEvent->setButtons(event->buttons()); + delayedPressEvent->setButton(event->button()); + delayedPressEvent->setPos(event->pos()); + delayedPressEvent->setScenePos(event->scenePos()); + delayedPressEvent->setScreenPos(event->screenPos()); + delayedPressEvent->setLastPos(event->lastPos()); + delayedPressEvent->setLastScenePos(event->lastScenePos()); + delayedPressEvent->setLastScreenPos(event->lastScreenPos()); + delayedPressEvent->setModifiers(event->modifiers()); + delayedPressTimer.start(pressDelay, q); +} + +void QmlGraphicsFlickablePrivate::clearDelayedPress() +{ + if (delayedPressEvent) { + delayedPressTimer.stop(); + delete delayedPressEvent; + delayedPressEvent = 0; + } +} + +void QmlGraphicsFlickable::timerEvent(QTimerEvent *event) +{ + Q_D(QmlGraphicsFlickable); + if (event->timerId() == d->delayedPressTimer.timerId()) { + d->delayedPressTimer.stop(); + if (d->delayedPressEvent) { + QmlGraphicsItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; + if (!grabber || grabber != this) + scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); + delete d->delayedPressEvent; + d->delayedPressEvent = 0; + } + } +} + +qreal QmlGraphicsFlickable::minYExtent() const +{ + return 0.0; +} + +qreal QmlGraphicsFlickable::minXExtent() const +{ + return 0.0; +} + +/* returns -ve */ +qreal QmlGraphicsFlickable::maxXExtent() const +{ + return width() - vWidth(); +} +/* returns -ve */ +qreal QmlGraphicsFlickable::maxYExtent() const +{ + return height() - vHeight(); +} + +void QmlGraphicsFlickable::viewportMoved() +{ + Q_D(QmlGraphicsFlickable); + + int elapsed = QmlGraphicsItemPrivate::elapsed(d->velocityTime); + + if (elapsed) { + qreal prevY = d->lastFlickablePosition.x(); + qreal prevX = d->lastFlickablePosition.y(); + d->velocityTimeline.clear(); + if (d->pressed) { + qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / elapsed; + qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / elapsed; + d->velocityTimeline.move(d->horizontalVelocity, horizontalVelocity, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->horizontalVelocity, 0, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->verticalVelocity, verticalVelocity, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->verticalVelocity, 0, d->reportedVelocitySmoothing); + } else { + if (d->timeline.time() != d->vTime) { + qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / (d->timeline.time() - d->vTime); + qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / (d->timeline.time() - d->vTime); + d->horizontalVelocity.setValue(horizontalVelocity); + d->verticalVelocity.setValue(verticalVelocity); + } + d->vTime = d->timeline.time(); + } + } + + d->lastFlickablePosition = QPointF(d->_moveY.value(), d->_moveX.value()); + QmlGraphicsItemPrivate::restart(d->velocityTime); + d->updateBeginningEnd(); + + if (d->flicked) { + // Near an end and it seems that the extent has changed? + // Recalculate the flick so that we don't end up in an odd position. + if (d->velocityY > 0) { + const qreal minY = minYExtent(); + if (minY - d->_moveY.value() < height()/3 && minY != d->flickTargetY) + d->flickY(-d->verticalVelocity.value()); + } else { + const qreal maxY = maxYExtent(); + if (d->_moveY.value() - maxY < height()/3 && maxY != d->flickTargetY) + d->flickY(-d->verticalVelocity.value()); + } + + if (d->velocityX > 0) { + const qreal minX = minXExtent(); + if (minX - d->_moveX.value() < height()/3 && minX != d->flickTargetX) + d->flickX(-d->horizontalVelocity.value()); + } else { + const qreal maxX = maxXExtent(); + if (d->_moveX.value() - maxX < height()/3 && maxX != d->flickTargetX) + d->flickX(-d->horizontalVelocity.value()); + } + } +} + +void QmlGraphicsFlickable::cancelFlick() +{ + Q_D(QmlGraphicsFlickable); + d->timeline.reset(d->_moveX); + d->timeline.reset(d->_moveY); + movementEnding(); +} + +void QmlGraphicsFlickablePrivate::data_removeAt(int) +{ + // ### +} + +int QmlGraphicsFlickablePrivate::data_count() const +{ + // ### + return 0; +} + +void QmlGraphicsFlickablePrivate::data_append(QObject *o) +{ + Q_Q(QmlGraphicsFlickable); + QmlGraphicsItem *i = qobject_cast(o); + if (i) + viewport->fxChildren()->append(i); + else + o->setParent(q); +} + +void QmlGraphicsFlickablePrivate::data_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsFlickablePrivate::data_at(int) const +{ + // ### + return 0; +} + +void QmlGraphicsFlickablePrivate::data_clear() +{ + // ### +} + + +QmlList *QmlGraphicsFlickable::flickableData() +{ + Q_D(QmlGraphicsFlickable); + return &d->data; +} + +QmlList *QmlGraphicsFlickable::flickableChildren() +{ + Q_D(QmlGraphicsFlickable); + return d->viewport->fxChildren(); +} + +/*! + \qmlproperty bool Flickable::overShoot + This property holds the number of pixels the surface may overshoot the + Flickable's boundaries when flicked. + + If overShoot is non-zero the contents can be flicked beyond the boundary + of the Flickable before being moved back to the boundary. This provides + the feeling that the edges of the view are soft, rather than a hard + physical boundary. +*/ +bool QmlGraphicsFlickable::overShoot() const +{ + Q_D(const QmlGraphicsFlickable); + return d->overShoot; +} + +void QmlGraphicsFlickable::setOverShoot(bool o) +{ + Q_D(QmlGraphicsFlickable); + d->overShoot = o; +} + +/*! + \qmlproperty int Flickable::viewportWidth + \qmlproperty int Flickable::viewportHeight + + The dimensions of the viewport (the surface controlled by Flickable). Typically this + should be set to the combined size of the items placed in the Flickable. + + \code + Flickable { + width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } + } + \endcode +*/ +qreal QmlGraphicsFlickable::viewportWidth() const +{ + Q_D(const QmlGraphicsFlickable); + return d->vWidth; +} + +void QmlGraphicsFlickable::setViewportWidth(qreal w) +{ + Q_D(QmlGraphicsFlickable); + if (d->vWidth == w) + return; + d->vWidth = w; + if (w < 0) + d->viewport->setWidth(width()); + else + d->viewport->setWidth(w); + // Make sure that we're entirely in view. + if (!d->pressed) + d->fixupX(); + emit viewportWidthChanged(); + d->updateBeginningEnd(); +} + +void QmlGraphicsFlickable::widthChange() +{ + Q_D(QmlGraphicsFlickable); + if (d->vWidth < 0) { + d->viewport->setWidth(width()); + emit viewportWidthChanged(); + } + d->updateBeginningEnd(); +} + +void QmlGraphicsFlickable::heightChange() +{ + Q_D(QmlGraphicsFlickable); + if (d->vHeight < 0) { + d->viewport->setHeight(height()); + emit viewportHeightChanged(); + } + d->updateBeginningEnd(); +} + +qreal QmlGraphicsFlickable::viewportHeight() const +{ + Q_D(const QmlGraphicsFlickable); + return d->vHeight; +} + +void QmlGraphicsFlickable::setViewportHeight(qreal h) +{ + Q_D(QmlGraphicsFlickable); + if (d->vHeight == h) + return; + d->vHeight = h; + if (h < 0) + d->viewport->setHeight(height()); + else + d->viewport->setHeight(h); + // Make sure that we're entirely in view. + if (!d->pressed) + d->fixupY(); + emit viewportHeightChanged(); + d->updateBeginningEnd(); +} + +qreal QmlGraphicsFlickable::vWidth() const +{ + Q_D(const QmlGraphicsFlickable); + if (d->vWidth < 0) + return width(); + else + return d->vWidth; +} + +qreal QmlGraphicsFlickable::vHeight() const +{ + Q_D(const QmlGraphicsFlickable); + if (d->vHeight < 0) + return height(); + else + return d->vHeight; +} + +bool QmlGraphicsFlickable::xflick() const +{ + return vWidth() != width(); +} + +bool QmlGraphicsFlickable::yflick() const +{ + return vHeight() != height(); +} + +bool QmlGraphicsFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + QGraphicsSceneMouseEvent mouseEvent(event->type()); + QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); + + QGraphicsScene *s = scene(); + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { + mouseEvent.setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); + } + } + mouseEvent.setScenePos(event->scenePos()); + mouseEvent.setLastScenePos(event->lastScenePos()); + mouseEvent.setPos(mapFromScene(event->scenePos())); + mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); + + switch(mouseEvent.type()) { + case QEvent::GraphicsSceneMouseMove: + d->handleMouseMoveEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMousePress: + if (d->delayedPressEvent) + return false; + + d->handleMousePressEvent(&mouseEvent); + d->captureDelayedPress(event); + break; + case QEvent::GraphicsSceneMouseRelease: + if (d->delayedPressEvent) { + scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); + d->clearDelayedPress(); + } + d->handleMouseReleaseEvent(&mouseEvent); + break; + default: + break; + } + grabber = qobject_cast(s->mouseGrabberItem()); + if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) { + d->clearDelayedPress(); + grabMouse(); + } + + return d->stealMouse || d->delayedPressEvent; + } else if (!d->lastPosTime.isNull()) { + d->lastPosTime = QTime(); + } + if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) + d->clearDelayedPress(); + return false; +} + +bool QmlGraphicsFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) +{ + if (!isVisible()) + return QmlGraphicsItem::sceneEventFilter(i, e); + switch (e->type()) { + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMouseRelease: + return sendMouseEvent(static_cast(e)); + default: + break; + } + + return QmlGraphicsItem::sceneEventFilter(i, e); +} + +/*! + \qmlproperty real Flickable::maximumFlickVelocity + This property holds the maximum velocity that the user can flick the view in pixels/second. + + The default is 5000 pixels/s +*/ +qreal QmlGraphicsFlickable::maximumFlickVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->maxVelocity; +} + +void QmlGraphicsFlickable::setMaximumFlickVelocity(qreal v) +{ + Q_D(QmlGraphicsFlickable); + if (v == d->maxVelocity) + return; + d->maxVelocity = v; +} + +/*! + \qmlproperty real Flickable::maximumFlickVelocity + This property holds the rate at which a flick will decelerate. + + The default is 500. +*/ +qreal QmlGraphicsFlickable::flickDeceleration() const +{ + Q_D(const QmlGraphicsFlickable); + return d->deceleration; +} + +void QmlGraphicsFlickable::setFlickDeceleration(qreal deceleration) +{ + Q_D(QmlGraphicsFlickable); + d->deceleration = deceleration; +} + +bool QmlGraphicsFlickable::isFlicking() const +{ + Q_D(const QmlGraphicsFlickable); + return d->flicked; +} + +/*! + \qmlproperty int Flickable::pressDelay + + This property holds the time to delay (ms) delivering a press to + children of the Flickable. This can be useful where reacting + to a press before a flicking action has undesireable effects. + + If the flickable is dragged/flicked before the delay times out + the press event will not be delivered. If the button is released + within the timeout, both the press and release will be delivered. +*/ +int QmlGraphicsFlickable::pressDelay() const +{ + Q_D(const QmlGraphicsFlickable); + return d->pressDelay; +} + +void QmlGraphicsFlickable::setPressDelay(int delay) +{ + Q_D(QmlGraphicsFlickable); + if (d->pressDelay == delay) + return; + d->pressDelay = delay; +} + +qreal QmlGraphicsFlickable::reportedVelocitySmoothing() const +{ + Q_D(const QmlGraphicsFlickable); + return d->reportedVelocitySmoothing; +} + +void QmlGraphicsFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) +{ + Q_D(QmlGraphicsFlickable); + Q_ASSERT(reportedVelocitySmoothing >= 0); + if (reportedVelocitySmoothing == d->reportedVelocitySmoothing) + return; + d->reportedVelocitySmoothing = reportedVelocitySmoothing; + emit reportedVelocitySmoothingChanged(reportedVelocitySmoothing); +} + +bool QmlGraphicsFlickable::isMoving() const +{ + Q_D(const QmlGraphicsFlickable); + return d->moving; +} + +void QmlGraphicsFlickable::movementStarting() +{ + Q_D(QmlGraphicsFlickable); + if (!d->moving) { + d->moving = true; + emit movingChanged(); + emit movementStarted(); + } +} + +void QmlGraphicsFlickable::movementEnding() +{ + Q_D(QmlGraphicsFlickable); + if (d->moving) { + d->moving = false; + emit movingChanged(); + emit movementEnded(); + } + if (d->flicked) { + d->flicked = false; + emit flickingChanged(); + emit flickEnded(); + } + d->horizontalVelocity.setValue(0); + d->verticalVelocity.setValue(0); +} + +void QmlGraphicsFlickablePrivate::updateVelocity() +{ + Q_Q(QmlGraphicsFlickable); + emit q->horizontalVelocityChanged(); + emit q->verticalVelocityChanged(); +} + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) + +#include "qfxflickable.moc" diff --git a/src/declarative/fx/qmlgraphicsflickable.h b/src/declarative/fx/qmlgraphicsflickable.h new file mode 100644 index 0000000..f7ef0088 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflickable.h @@ -0,0 +1,203 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFLICKABLE_H +#define QMLGRAPHICSFLICKABLE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsFlickablePrivate; +class QmlGraphicsFlickableVisibleArea; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) + Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) + Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) + Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) + + Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) + Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) + Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) + + Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) + Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) + Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) + Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) + Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) + + Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) + Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) + + Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) + + Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) + + Q_PROPERTY(QmlList* flickableData READ flickableData) + Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) + Q_CLASSINFO("DefaultProperty", "flickableData") + +public: + QmlGraphicsFlickable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlickable(); + + QmlList *flickableData(); + QmlList *flickableChildren(); + + bool overShoot() const; + void setOverShoot(bool); + + qreal viewportWidth() const; + void setViewportWidth(qreal); + + qreal viewportHeight() const; + void setViewportHeight(qreal); + + qreal viewportX() const; + void setViewportX(qreal pos); + + qreal viewportY() const; + void setViewportY(qreal pos); + + bool isMoving() const; + bool isFlicking() const; + + int pressDelay() const; + void setPressDelay(int delay); + + qreal reportedVelocitySmoothing() const; + void setReportedVelocitySmoothing(qreal); + + qreal maximumFlickVelocity() const; + void setMaximumFlickVelocity(qreal); + + qreal flickDeceleration() const; + void setFlickDeceleration(qreal); + + bool isInteractive() const; + void setInteractive(bool); + + qreal horizontalVelocity() const; + qreal verticalVelocity() const; + + bool isAtXEnd() const; + bool isAtXBeginning() const; + bool isAtYEnd() const; + bool isAtYBeginning() const; + + QmlGraphicsItem *viewport(); + +Q_SIGNALS: + void viewportWidthChanged(); + void viewportHeightChanged(); + void positionXChanged(); + void positionYChanged(); + void movingChanged(); + void flickingChanged(); + void movementStarted(); + void movementEnded(); + void flickStarted(); + void flickEnded(); + void reportedVelocitySmoothingChanged(int); + void horizontalVelocityChanged(); + void verticalVelocityChanged(); + void isAtBoundaryChanged(); + void pageChanged(); + +protected: + virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void timerEvent(QTimerEvent *event); + + qreal visibleX() const; + qreal visibleY() const; + + QmlGraphicsFlickableVisibleArea *visibleArea(); + +protected Q_SLOTS: + virtual void ticked(); + void movementStarting(); + void movementEnding(); + void heightChange(); + void widthChange(); + +protected: + virtual qreal minXExtent() const; + virtual qreal minYExtent() const; + virtual qreal maxXExtent() const; + virtual qreal maxYExtent() const; + qreal vWidth() const; + qreal vHeight() const; + virtual void viewportMoved(); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + + bool xflick() const; + bool yflick() const; + void cancelFlick(); + +protected: + QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsFlickable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) + friend class QmlGraphicsFlickableVisibleArea; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlickable) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsflickable_p.h b/src/declarative/fx/qmlgraphicsflickable_p.h new file mode 100644 index 0000000..d9f917d --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflickable_p.h @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFLICKABLE_P_H +#define QMLGRAPHICSFLICKABLE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicsflickable.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include "private/qmltimeline_p.h" +#include "private/qmlanimation_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsFlickableVisibleArea; +class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsFlickable) + +public: + QmlGraphicsFlickablePrivate(); + void init(); + virtual void flickX(qreal velocity); + virtual void flickY(qreal velocity); + virtual void fixupX(); + virtual void fixupY(); + void updateBeginningEnd(); + + void captureDelayedPress(QGraphicsSceneMouseEvent *event); + void clearDelayedPress(); + +public: + QmlGraphicsItem *viewport; + QmlTimeLineValueProxy _moveX; + QmlTimeLineValueProxy _moveY; + QmlTimeLine timeline; + qreal vWidth; + qreal vHeight; + bool overShoot : 1; + bool flicked : 1; + bool moving : 1; + bool stealMouse : 1; + bool pressed : 1; + bool atXEnd : 1; + bool atXBeginning : 1; + bool atYEnd : 1; + bool atYBeginning : 1; + bool interactive : 1; + QTime lastPosTime; + QPointF lastPos; + QPointF pressPos; + qreal pressX; + qreal pressY; + qreal velocityX; + qreal velocityY; + QTime pressTime; + QmlTimeLineEvent fixupXEvent; + QmlTimeLineEvent fixupYEvent; + qreal deceleration; + qreal maxVelocity; + QTime velocityTime; + QPointF lastFlickablePosition; + qreal reportedVelocitySmoothing; + int flickTargetX; + int flickTargetY; + QGraphicsSceneMouseEvent *delayedPressEvent; + QGraphicsItem *delayedPressTarget; + QBasicTimer delayedPressTimer; + int pressDelay; + + void updateVelocity(); + struct Velocity : public QmlTimeLineValue + { + Velocity(QmlGraphicsFlickablePrivate *p) + : parent(p) {} + virtual void setValue(qreal v) { + QmlTimeLineValue::setValue(v); + parent->updateVelocity(); + } + QmlGraphicsFlickablePrivate *parent; + }; + Velocity horizontalVelocity; + Velocity verticalVelocity; + int vTime; + QmlTimeLine velocityTimeline; + QmlGraphicsFlickableVisibleArea *visibleArea; + + void handleMousePressEvent(QGraphicsSceneMouseEvent *); + void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); + void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); + + // flickableData property + void data_removeAt(int); + int data_count() const; + void data_append(QObject *); + void data_insert(int, QObject *); + QObject *data_at(int) const; + void data_clear(); + + friend class QmlGraphicsFlickableVisibleArea; + QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicsflipable.cpp b/src/declarative/fx/qmlgraphicsflipable.cpp new file mode 100644 index 0000000..4df35f1 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflipable.cpp @@ -0,0 +1,236 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsflipable.h" +#include "private/qmlgraphicsitem_p.h" +#include "QtGui/qgraphicstransform.h" +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QmlGraphicsFlipable) + +class QmlGraphicsFlipablePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsFlipable) +public: + QmlGraphicsFlipablePrivate() : current(QmlGraphicsFlipable::Front), front(0), back(0) {} + + void updateSceneTransformFromParent(); + + QmlGraphicsFlipable::Side current; + QmlGraphicsItem *front; + QmlGraphicsItem *back; +}; + +/*! + \qmlclass Flipable QmlGraphicsFlipable + \brief The Flipable item provides a surface that can be flipped. + \inherits Item + + Flipable allows you to specify a front and a back and then flip between those sides. + + \qml + Flipable { + id: flipable + width: 40 + height: 40 + axis: Axis { + startX: 20 + startY: 0 + endX: 20 + endY: 40 + } + front: Image { source: "front.png" } + back: Image { source: "back.png" } + states: [ + State { + name: "back" + SetProperty { + target: flipable + property: "rotation" + value: 180 + } + } + ] + transitions: [ + Transition { + NumberAnimation { + easing: "easeInOutQuad" + properties: "rotation" + } + } + ] +} + \endqml + + \image flipable.gif +*/ + +/*! + \internal + \class QmlGraphicsFlipable + \brief The QmlGraphicsFlipable class provides a flipable surface. + + \ingroup group_widgets + + QmlGraphicsFlipable allows you to specify a front and a back, as well as an + axis for the flip. +*/ + +QmlGraphicsFlipable::QmlGraphicsFlipable(QmlGraphicsItem *parent) +: QmlGraphicsItem(*(new QmlGraphicsFlipablePrivate), parent) +{ +} + +QmlGraphicsFlipable::~QmlGraphicsFlipable() +{ +} + +/*! + \qmlproperty Item Flipable::front + \qmlproperty Item Flipable::back + + The front and back sides of the flipable. +*/ + +QmlGraphicsItem *QmlGraphicsFlipable::front() +{ + Q_D(const QmlGraphicsFlipable); + return d->front; +} + +void QmlGraphicsFlipable::setFront(QmlGraphicsItem *front) +{ + Q_D(QmlGraphicsFlipable); + if (d->front) { + qmlInfo(tr("front is a write-once property"),this); + return; + } + d->front = front; + fxChildren()->append(d->front); + if (Back == d->current) + d->front->setOpacity(0.); +} + +QmlGraphicsItem *QmlGraphicsFlipable::back() +{ + Q_D(const QmlGraphicsFlipable); + return d->back; +} + +void QmlGraphicsFlipable::setBack(QmlGraphicsItem *back) +{ + Q_D(QmlGraphicsFlipable); + if (d->back) { + qmlInfo(tr("back is a write-once property"),this); + return; + } + d->back = back; + fxChildren()->append(d->back); + if (Front == d->current) + d->back->setOpacity(0.); +} + +/*! + \qmlproperty enumeration Flipable::side + + The side of the Flippable currently visible. Possible values are \c + Front and \c Back. +*/ +QmlGraphicsFlipable::Side QmlGraphicsFlipable::side() const +{ + Q_D(const QmlGraphicsFlipable); + if (d->dirtySceneTransform) + const_cast(d)->updateSceneTransformFromParent(); + + return d->current; +} + +// determination on the currently visible side of the flipable +// has to be done on the complete scene transform to give +// correct results. +void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() +{ + Q_Q(QmlGraphicsFlipable); + + QmlGraphicsItemPrivate::updateSceneTransformFromParent(); + QPointF p1(0, 0); + QPointF p2(1, 0); + QPointF p3(1, 1); + + p1 = sceneTransform.map(p1); + p2 = sceneTransform.map(p2); + p3 = sceneTransform.map(p3); + + qreal cross = (p1.x() - p2.x()) * (p3.y() - p2.y()) - + (p1.y() - p2.y()) * (p3.x() - p2.x()); + + QmlGraphicsFlipable::Side newSide; + if (cross > 0) { + newSide = QmlGraphicsFlipable::Back; + } else { + newSide = QmlGraphicsFlipable::Front; + } + + if (newSide != current) { + current = newSide; + if (current == QmlGraphicsFlipable::Back) { + QTransform mat; + mat.translate(back->width()/2,back->height()/2); + if (back->width() && p1.x() >= p2.x()) + mat.rotate(180, Qt::YAxis); + if (back->height() && p2.y() >= p3.y()) + mat.rotate(180, Qt::XAxis); + mat.translate(-back->width()/2,-back->height()/2); + back->setTransform(mat); + } + if (front) + front->setOpacity((current==QmlGraphicsFlipable::Front)?1.:0.); + if (back) + back->setOpacity((current==QmlGraphicsFlipable::Back)?1.:0.); + emit q->sideChanged(); + } +} + +QT_END_NAMESPACE + +#include "moc_qmlgraphicsflipable.cpp" diff --git a/src/declarative/fx/qmlgraphicsflipable.h b/src/declarative/fx/qmlgraphicsflipable.h new file mode 100644 index 0000000..7f92d65 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflipable.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFLIPABLE_H +#define QMLGRAPHICSFLIPABLE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsFlipablePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem +{ + Q_OBJECT + + Q_ENUMS(Side) + Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) + Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) + Q_PROPERTY(Side side READ side NOTIFY sideChanged) + //### flipAxis + //### flipRotation +public: + QmlGraphicsFlipable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlipable(); + + QmlGraphicsItem *front(); + void setFront(QmlGraphicsItem *); + + QmlGraphicsItem *back(); + void setBack(QmlGraphicsItem *); + + enum Side { Front, Back }; + Side side() const; + +Q_SIGNALS: + void sideChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsFlipable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlipable) + +QT_END_HEADER + +#endif // QMLGRAPHICSFLIPABLE_H diff --git a/src/declarative/fx/qmlgraphicsfocuspanel.cpp b/src/declarative/fx/qmlgraphicsfocuspanel.cpp new file mode 100644 index 0000000..db8fcdb --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocuspanel.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsfocuspanel.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QmlGraphicsFocusPanel) + +/*! + \qmlclass FocusPanel + \brief The FocusPanel item explicitly creates a focus panel. + \inherits Item + + Focus panels assist in keyboard focus handling when building QML + applications. All the details are covered in the + \l {qmlfocus}{keyboard focus documentation}. +*/ + +/*! + \internal + \class QmlGraphicsFocusPanel +*/ + +QmlGraphicsFocusPanel::QmlGraphicsFocusPanel(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) +{ + setFlag(ItemIsPanel); +} + +QmlGraphicsFocusPanel::~QmlGraphicsFocusPanel() +{ +} + +/*! + \qmlproperty bool FocusPanel::active + + Sets whether the item is the active focus panel. +*/ + +bool QmlGraphicsFocusPanel::sceneEvent(QEvent *event) +{ + if (event->type() == QEvent::WindowActivate || + event->type() == QEvent::WindowDeactivate) + emit activeChanged(); + return QmlGraphicsItem::sceneEvent(event); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsfocuspanel.h b/src/declarative/fx/qmlgraphicsfocuspanel.h new file mode 100644 index 0000000..2c4f792 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocuspanel.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFOCUSPANEL_H +#define QMLGRAPHICSFOCUSPANEL_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem +{ + Q_OBJECT + Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) +public: + QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusPanel(); + +Q_SIGNALS: + void activeChanged(); + +protected: + bool sceneEvent(QEvent *event); + +private: + Q_DISABLE_COPY(QmlGraphicsFocusPanel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusPanel) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSPANEL_H diff --git a/src/declarative/fx/qmlgraphicsfocusscope.cpp b/src/declarative/fx/qmlgraphicsfocusscope.cpp new file mode 100644 index 0000000..e957085 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocusscope.cpp @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsfocusscope.h" + + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QmlGraphicsFocusScope) + +/*! + \qmlclass FocusScope + \brief The FocusScope object explicitly creates a focus scope. + \inherits Item + + Focus scopes assist in keyboard focus handling when building reusable QML + components. All the details are covered in the + \l {qmlfocus}{keyboard focus documentation}. +*/ + +/*! + \internal + \class QmlGraphicsFocusScope +*/ + +QmlGraphicsFocusScope::QmlGraphicsFocusScope(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) +{ + setFlag(QGraphicsItem::ItemIsFocusScope); +} + +QmlGraphicsFocusScope::~QmlGraphicsFocusScope() +{ +} +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsfocusscope.h b/src/declarative/fx/qmlgraphicsfocusscope.h new file mode 100644 index 0000000..28d1f4f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocusscope.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFOCUSSCOPE_H +#define QMLGRAPHICSFOCUSSCOPE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +//### set component root as focusscope +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem +{ + Q_OBJECT +public: + QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusScope(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusScope) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSSCOPE_H diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp new file mode 100644 index 0000000..87193cd --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsgraphicsobjectcontainer.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGraphicsObjectContainerPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsGraphicsObjectContainer) + +public: + QmlGraphicsGraphicsObjectContainerPrivate() : QmlGraphicsItemPrivate(), graphicsObject(0), syncedResize(false) + { } + + void _q_updateSize(); + + void setFiltering(bool on) + { + Q_Q(QmlGraphicsGraphicsObjectContainer); + if (graphicsObject && graphicsObject->isWidget()) { + if (!on) { + graphicsObject->removeEventFilter(q); + QObject::disconnect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::disconnect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } else { + graphicsObject->installEventFilter(q); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } + } + } + + + QGraphicsObject *graphicsObject; + bool syncedResize; +}; + + +/*! + \qmlclass GraphicsObjectContainer QmlGraphicsGraphicsObjectContainer + \brief The GraphicsObjectContainer element allows you to add QGraphicsObjects into Fluid UI elements. +*/ + +/*! + \internal + \class QmlGraphicsGraphicsObjectContainer + \brief The QmlGraphicsGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. +*/ + +QML_DEFINE_NOCREATE_TYPE(QGraphicsObject) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QmlGraphicsGraphicsObjectContainer) + +QmlGraphicsGraphicsObjectContainer::QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent) +: QmlGraphicsItem(*new QmlGraphicsGraphicsObjectContainerPrivate, parent) +{ +} + +QmlGraphicsGraphicsObjectContainer::~QmlGraphicsGraphicsObjectContainer() +{ +} + +QGraphicsObject *QmlGraphicsGraphicsObjectContainer::graphicsObject() const +{ + Q_D(const QmlGraphicsGraphicsObjectContainer); + return d->graphicsObject; +} + +/*! + \qmlproperty QGraphicsObject GraphicsObjectContainer::graphicsObject + The QGraphicsObject associated with this element. +*/ +void QmlGraphicsGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (object == d->graphicsObject) + return; + + //### remove previously set item? + + d->setFiltering(false); + + d->graphicsObject = object; + + if (d->graphicsObject) { + d->graphicsObject->setParentItem(this); + + if (d->syncedResize && d->graphicsObject->isWidget()) { + QGraphicsWidget *gw = static_cast(d->graphicsObject); + QSizeF gwSize = gw->size(); //### should we use sizeHint? + QSizeF newSize = gwSize; + if (heightValid()) + newSize.setHeight(height()); + if (widthValid()) + newSize.setWidth(width()); + if (gwSize != newSize) + gw->resize(newSize); + + gwSize = gw->size(); + setImplicitWidth(gwSize.width()); + setImplicitHeight(gwSize.height()); + + d->setFiltering(true); + } + } +} + +QVariant QmlGraphicsGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (change == ItemSceneHasChanged) { + QGraphicsObject *o = d->graphicsObject; + d->graphicsObject = 0; + setGraphicsObject(o); + } + return QmlGraphicsItem::itemChange(change, value); +} + +bool QmlGraphicsGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (watched == d->graphicsObject && e->type() == QEvent::GraphicsSceneResize) { + if (d->graphicsObject && d->graphicsObject->isWidget() && d->syncedResize) { + QSizeF newSize = static_cast(d->graphicsObject)->size(); + setImplicitWidth(newSize.width()); + setImplicitHeight(newSize.height()); + } + } + return QmlGraphicsItem::eventFilter(watched, e); +} + +/*! + \qmlproperty bool GraphicsObjectContainer::synchronizedResizing + + This property determines whether or not the container and graphics object will synchronize their + sizes. + + \note This property only applies when wrapping a QGraphicsWidget. + + If synchronizedResizing is enabled, the container and widget will + synchronize their sizes as follows. + \list + \o If a size has been set on the container, the widget will be resized to the container. + Any changes in the container's size will be reflected in the widget. + + \o \e Otherwise, the container will initially be sized to the preferred size of the widget. + Any changes to the container's size will be reflected in the widget, and any changes to the + widget's size will be reflected in the container. + \endlist +*/ +bool QmlGraphicsGraphicsObjectContainer::synchronizedResizing() const +{ + Q_D(const QmlGraphicsGraphicsObjectContainer); + return d->syncedResize; +} + +void QmlGraphicsGraphicsObjectContainer::setSynchronizedResizing(bool on) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (on == d->syncedResize) + return; + + d->syncedResize = on; + d->setFiltering(on); +} + +void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() +{ + if (!graphicsObject || !graphicsObject->isWidget() || !syncedResize) + return; + + QGraphicsWidget *gw = static_cast(graphicsObject); + const QSizeF newSize(width, height); + gw->resize(newSize); + + //### will respecting the widgets min/max ever get us in trouble? (all other items always + // size to exactly what you tell them) + /*QSizeF constrainedSize = newSize.expandedTo(gw->minimumSize()).boundedTo(gw->maximumSize()); + gw->resize(constrainedSize); + if (constrainedSize != newSize) { + setImplicitWidth(constrainedSize.width()); + setImplicitHeight(constrainedSize.height()); + }*/ +} + +QT_END_NAMESPACE + +#include "moc_qmlgraphicsgraphicsobjectcontainer.cpp" diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h new file mode 100644 index 0000000..0189e2f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H +#define QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QGraphicsObject; +class QmlGraphicsGraphicsObjectContainerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem +{ + Q_OBJECT + + Q_CLASSINFO("DefaultProperty", "graphicsObject") + Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) + Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) + +public: + QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); + ~QmlGraphicsGraphicsObjectContainer(); + + QGraphicsObject *graphicsObject() const; + void setGraphicsObject(QGraphicsObject *); + + bool synchronizedResizing() const; + void setSynchronizedResizing(bool on); + +protected: + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + bool eventFilter(QObject *watched, QEvent *e); + +private: + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QGraphicsObject) +QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) + +QT_END_HEADER + +#endif // QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/fx/qmlgraphicsgridview.cpp b/src/declarative/fx/qmlgraphicsgridview.cpp new file mode 100644 index 0000000..d512b8c --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgridview.cpp @@ -0,0 +1,1585 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsvisualitemmodel.h" +#include "qlistmodelinterface.h" +#include "qmleasefollow.h" +#include "private/qmlgraphicsflickable_p.h" +#include "qmlgraphicsgridview.h" + +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGridViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsGridViewAttached(QObject *parent) + : QObject(parent), m_isCurrent(false), m_delayRemove(false) {} + ~QmlGraphicsGridViewAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(QmlGraphicsGridView *view READ view CONSTANT) + QmlGraphicsGridView *view() { return m_view; } + + Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) + bool isCurrentItem() const { return m_isCurrent; } + void setIsCurrentItem(bool c) { + if (m_isCurrent != c) { + m_isCurrent = c; + emit currentItemChanged(); + } + } + + Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) + bool delayRemove() const { return m_delayRemove; } + void setDelayRemove(bool delay) { + if (m_delayRemove != delay) { + m_delayRemove = delay; + emit delayRemoveChanged(); + } + } + + static QmlGraphicsGridViewAttached *properties(QObject *obj) { + QmlGraphicsGridViewAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsGridViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + + void emitAdd() { emit add(); } + void emitRemove() { emit remove(); } + +Q_SIGNALS: + void currentItemChanged(); + void delayRemoveChanged(); + void add(); + void remove(); + +public: + QmlGraphicsGridView *m_view; + bool m_isCurrent; + bool m_delayRemove; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsGridViewAttached::attachedProperties; + + +//---------------------------------------------------------------------------- + +class FxGridItem +{ +public: + FxGridItem(QmlGraphicsItem *i, QmlGraphicsGridView *v) : item(i), view(v) { + attached = QmlGraphicsGridViewAttached::properties(item); + attached->m_view = view; + } + ~FxGridItem() {} + + qreal rowPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() : item->x()); } + qreal colPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->x() : item->y()); } + qreal endRowPos() const { + return view->flow() == QmlGraphicsGridView::LeftToRight + ? item->y() + view->cellHeight() - 1 + : item->x() + view->cellWidth() - 1; + } + void setPosition(qreal col, qreal row) { + if (view->flow() == QmlGraphicsGridView::LeftToRight) { + item->setPos(QPointF(col, row)); + } else { + item->setPos(QPointF(row, col)); + } + } + + QmlGraphicsItem *item; + QmlGraphicsGridView *view; + QmlGraphicsGridViewAttached *attached; + int index; +}; + +//---------------------------------------------------------------------------- + +class QmlGraphicsGridViewPrivate : public QmlGraphicsFlickablePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsGridView) + +public: + QmlGraphicsGridViewPrivate() + : model(0), currentItem(0), flow(QmlGraphicsGridView::LeftToRight) + , visiblePos(0), visibleIndex(0) , currentIndex(-1) + , cellWidth(100), cellHeight(100), columns(1), requestedIndex(-1) + , highlightComponent(0), highlight(0), trackedItem(0) + , moveReason(Other), buffer(0), highlightXAnimator(0), highlightYAnimator(0) + , ownModel(false), wrap(false), autoHighlight(true) + , fixCurrentVisibility(false) {} + + void init(); + void clear(); + FxGridItem *createItem(int modelIndex); + void releaseItem(FxGridItem *item); + void refill(qreal from, qreal to); + + void updateGrid(); + void layout(bool removed=false); + void updateUnrequestedIndexes(); + void updateUnrequestedPositions(); + void updateTrackedItem(); + void createHighlight(); + void updateHighlight(); + void updateCurrent(int modelIndex); + + FxGridItem *visibleItem(int modelIndex) const { + if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { + for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { + FxGridItem *item = visibleItems.at(i); + if (item->index == modelIndex) + return item; + } + } + return 0; + } + + qreal position() const { + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->viewportY() : q->viewportX(); + } + void setPosition(qreal pos) { + Q_Q(QmlGraphicsGridView); + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportY(pos); + else + q->setViewportX(pos); + } + int size() const { + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->height() : q->width(); + } + qreal startPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) + pos = visibleItems.first()->rowPos() - visibleIndex / columns * rowSize(); + return pos; + } + + qreal endPosition() const { + qreal pos = 0; + if (model && model->count()) + pos = rowPosAt(model->count() - 1) + rowSize(); + return pos; + } + + bool isValid() const { + return model && model->count() && model->isValid(); + } + + int rowSize() const { + return flow == QmlGraphicsGridView::LeftToRight ? cellHeight : cellWidth; + } + int colSize() const { + return flow == QmlGraphicsGridView::LeftToRight ? cellWidth : cellHeight; + } + + qreal colPosAt(int modelIndex) const { + if (FxGridItem *item = visibleItem(modelIndex)) + return item->colPos(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int count = (visibleIndex - modelIndex) % columns; + int col = visibleItems.first()->colPos() / colSize(); + col = (columns - count + col) % columns; + return col * colSize(); + } else { + int count = columns - 1 - (modelIndex - visibleItems.last()->index - 1) % columns; + return visibleItems.last()->colPos() - count * colSize(); + } + } else { + return (modelIndex % columns) * colSize(); + } + return 0; + } + qreal rowPosAt(int modelIndex) const { + if (FxGridItem *item = visibleItem(modelIndex)) + return item->rowPos(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int firstCol = visibleItems.first()->colPos() / colSize(); + int col = visibleIndex - modelIndex + (columns - firstCol - 1); + int rows = col / columns; + return visibleItems.first()->rowPos() - rows * rowSize(); + } else { + int count = modelIndex - visibleItems.last()->index; + int col = visibleItems.last()->colPos() + count * colSize(); + int rows = col / (columns * colSize()); + return visibleItems.last()->rowPos() + rows * rowSize(); + } + } else { + return (modelIndex / columns) * rowSize(); + } + return 0; + } + + // Map a model index to visibleItems list index. + // These may differ if removed items are still present in the visible list, + // e.g. doing a removal animation + int mapFromModel(int modelIndex) const { + if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) + return -1; + for (int i = 0; i < visibleItems.count(); ++i) { + FxGridItem *listItem = visibleItems.at(i); + if (listItem->index == modelIndex) + return i + visibleIndex; + if (listItem->index > modelIndex) + return -1; + } + return -1; // Not in visibleList + } + + // for debugging only + void checkVisible() const { + int skip = 0; + for (int i = 0; i < visibleItems.count(); ++i) { + FxGridItem *listItem = visibleItems.at(i); + if (listItem->index == -1) { + ++skip; + } else if (listItem->index != visibleIndex + i - skip) { + for (int j = 0; j < visibleItems.count(); j++) + qDebug() << " index" << j << "item index" << visibleItems.at(j)->index; + qFatal("index %d %d %d", visibleIndex, i, listItem->index); + } + } + } + + QmlGraphicsVisualModel *model; + QVariant modelVariant; + QList visibleItems; + QHash unrequestedItems; + FxGridItem *currentItem; + QmlGraphicsGridView::Flow flow; + int visiblePos; + int visibleIndex; + int currentIndex; + int cellWidth; + int cellHeight; + int columns; + int requestedIndex; + QmlComponent *highlightComponent; + FxGridItem *highlight; + FxGridItem *trackedItem; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; + int buffer; + QmlEaseFollow *highlightXAnimator; + QmlEaseFollow *highlightYAnimator; + + int ownModel : 1; + int wrap : 1; + int autoHighlight : 1; + int fixCurrentVisibility : 1; +}; + +void QmlGraphicsGridViewPrivate::init() +{ + Q_Q(QmlGraphicsGridView); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(sizeChange())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(sizeChange())); +} + +void QmlGraphicsGridViewPrivate::clear() +{ + for (int i = 0; i < visibleItems.count(); ++i) + releaseItem(visibleItems.at(i)); + visibleItems.clear(); + visiblePos = 0; + visibleIndex = 0; + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + createHighlight(); + trackedItem = 0; +} + +FxGridItem *QmlGraphicsGridViewPrivate::createItem(int modelIndex) +{ + Q_Q(QmlGraphicsGridView); + // create object + requestedIndex = modelIndex; + FxGridItem *listItem = 0; + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { + listItem = new FxGridItem(item, q); + listItem->index = modelIndex; + // complete + model->completeItem(); + listItem->item->setZValue(modelIndex + 1); + listItem->item->setParent(q->viewport()); + } + requestedIndex = 0; + return listItem; +} + + +void QmlGraphicsGridViewPrivate::releaseItem(FxGridItem *item) +{ + Q_Q(QmlGraphicsGridView); + if (!item) + return; + if (trackedItem == item) { + QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + if (model->release(item->item) == 0) { + // item was not destroyed, and we no longer reference it. + unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + } + delete item; +} + +void QmlGraphicsGridViewPrivate::refill(qreal from, qreal to) +{ + Q_Q(QmlGraphicsGridView); + if (!isValid() || !q->isComponentComplete()) + return; + + from -= buffer; + to += buffer; + bool changed = false; + + int colPos = 0; + int rowPos = 0; + int modelIndex = 0; + if (visibleItems.count()) { + rowPos = visibleItems.last()->rowPos(); + colPos = visibleItems.last()->colPos() + colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + int i = visibleItems.count() - 1; + while (i > 0 && visibleItems.at(i)->index == -1) + --i; + modelIndex = visibleItems.at(i)->index + 1; + } + + FxGridItem *item = 0; + while (modelIndex < model->count() && rowPos <= to) { + //qDebug() << "refill: append item" << modelIndex; + if (!(item = createItem(modelIndex))) + break; + item->setPosition(colPos, rowPos); + visibleItems.append(item); + colPos += colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + ++modelIndex; + changed = true; + } + + if (visibleItems.count()) { + rowPos = visibleItems.first()->rowPos(); + colPos = visibleItems.first()->colPos() - colSize(); + if (colPos < 0) { + colPos = colSize() * (columns - 1); + rowPos -= rowSize(); + } + } + while (visibleIndex > 0 && rowPos + rowSize() - 1 >= from){ + //qDebug() << "refill: prepend item" << visibleIndex-1 << "top pos" << rowPos << colPos; + if (!(item = createItem(visibleIndex-1))) + break; + --visibleIndex; + item->setPosition(colPos, rowPos); + visibleItems.prepend(item); + colPos -= colSize(); + if (colPos < 0) { + colPos = colSize() * (columns - 1); + rowPos -= rowSize(); + } + changed = true; + } + + while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endRowPos() < from) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endRowPos(); + if (item->index != -1) + visibleIndex++; + visibleItems.removeFirst(); + releaseItem(item); + changed = true; + } + while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->rowPos() > to) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; + visibleItems.removeLast(); + releaseItem(item); + changed = true; + } + if (changed) { + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } +} + +void QmlGraphicsGridViewPrivate::updateGrid() +{ + Q_Q(QmlGraphicsGridView); + columns = (int)qMax((flow == QmlGraphicsGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); + if (isValid()) { + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } +} + +void QmlGraphicsGridViewPrivate::layout(bool removed) +{ + Q_Q(QmlGraphicsGridView); + if (visibleItems.count()) { + qreal rowPos = visibleItems.first()->rowPos(); + qreal colPos = visibleItems.first()->colPos(); + if (visibleIndex % columns != 0) { + if (removed) + rowPos -= rowSize(); + colPos = (visibleIndex % columns) * colSize(); + visibleItems.first()->setPosition(colPos, rowPos); + } else if (colPos != 0) { + colPos = 0; + visibleItems.first()->setPosition(colPos, rowPos); + } + for (int i = 1; i < visibleItems.count(); ++i) { + FxGridItem *item = visibleItems.at(i); + colPos += colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + item->setPosition(colPos, rowPos); + } + } + q->refill(); + q->trackedPositionChanged(); + updateHighlight(); + if (flow == QmlGraphicsGridView::LeftToRight) { + q->setViewportHeight(endPosition() - startPosition()); + fixupY(); + } else { + q->setViewportWidth(endPosition() - startPosition()); + fixupX(); + } + updateUnrequestedPositions(); +} + +void QmlGraphicsGridViewPrivate::updateUnrequestedIndexes() +{ + Q_Q(QmlGraphicsGridView); + QHash::iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) + *it = model->indexOf(it.key(), q); +} + +void QmlGraphicsGridViewPrivate::updateUnrequestedPositions() +{ + QHash::const_iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { + if (flow == QmlGraphicsGridView::LeftToRight) { + it.key()->setPos(QPointF(colPosAt(*it), rowPosAt(*it))); + } else { + it.key()->setPos(QPointF(rowPosAt(*it), colPosAt(*it))); + } + } +} + +void QmlGraphicsGridViewPrivate::updateTrackedItem() +{ + Q_Q(QmlGraphicsGridView); + FxGridItem *item = currentItem; + if (highlight) + item = highlight; + + if (trackedItem && item != trackedItem) { + QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + + if (!trackedItem && item) { + trackedItem = item; + QObject::connect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::connect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + q->trackedPositionChanged(); + } + if (trackedItem) + q->trackedPositionChanged(); +} + +void QmlGraphicsGridViewPrivate::createHighlight() +{ + Q_Q(QmlGraphicsGridView); + if (highlight) { + if (trackedItem == highlight) + trackedItem = 0; + delete highlight->item; + delete highlight; + highlight = 0; + delete highlightXAnimator; + delete highlightYAnimator; + highlightXAnimator = 0; + highlightYAnimator = 0; + } + + if (!highlightComponent) + return; + + if (currentItem) { + QmlContext *highlightContext = new QmlContext(qmlContext(q)); + QObject *nobj = highlightComponent->create(highlightContext); + if (nobj) { + highlightContext->setParent(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); + if (item) { + item->setParent(q->viewport()); + highlight = new FxGridItem(item, q); + highlightXAnimator = new QmlEaseFollow(q); + highlightXAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("x"))); + highlightXAnimator->setDuration(150); + highlightXAnimator->setEnabled(autoHighlight); + highlightYAnimator = new QmlEaseFollow(q); + highlightYAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("y"))); + highlightYAnimator->setDuration(150); + highlightYAnimator->setEnabled(autoHighlight); + } else { + delete highlightContext; + } + } + } +} + +void QmlGraphicsGridViewPrivate::updateHighlight() +{ + if ((!currentItem && highlight) || (currentItem && !highlight)) + createHighlight(); + updateTrackedItem(); + if (currentItem && autoHighlight && highlight) { + // auto-update highlight + highlightXAnimator->setSourceValue(currentItem->item->x()); + highlightYAnimator->setSourceValue(currentItem->item->y()); + highlight->item->setWidth(currentItem->item->width()); + highlight->item->setHeight(currentItem->item->height()); + } +} + +void QmlGraphicsGridViewPrivate::updateCurrent(int modelIndex) +{ + Q_Q(QmlGraphicsGridView); + if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { + if (currentItem) { + currentItem->attached->setIsCurrentItem(false); + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + updateHighlight(); + emit q->currentIndexChanged(); + } + return; + } + + if (currentItem && currentIndex == modelIndex) { + updateHighlight(); + return; + } + + FxGridItem *oldCurrentItem = currentItem; + currentIndex = modelIndex; + currentItem = createItem(modelIndex); + fixCurrentVisibility = true; + if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) + oldCurrentItem->attached->setIsCurrentItem(false); + if (currentItem) { + currentItem->setPosition(colPosAt(modelIndex), rowPosAt(modelIndex)); + currentItem->item->setFocus(true); + currentItem->attached->setIsCurrentItem(true); + } + updateHighlight(); + emit q->currentIndexChanged(); + releaseItem(oldCurrentItem); +} + +//---------------------------------------------------------------------------- + +/*! + \qmlclass GridView + \inherits Flickable + \brief The GridView item provides a grid view of items provided by a model. + + The model is typically provided by a QAbstractListModel "C++ model object", + but can also be created directly in QML. + + The items are laid out top to bottom (vertically) or left to right (horizontally) + and may be flicked to scroll. + + The below example creates a very simple grid, using a QML model. + + \image gridview.png + + \snippet doc/src/snippets/declarative/gridview/gridview.qml 3 + + The model is defined as a ListModel using QML: + \quotefile doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml + + In this case ListModel is a handy way for us to test our UI. In practice + the model would be implemented in C++, or perhaps via a SQL data source. +*/ +QmlGraphicsGridView::QmlGraphicsGridView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsGridViewPrivate), parent) +{ + Q_D(QmlGraphicsGridView); + d->init(); +} + +QmlGraphicsGridView::~QmlGraphicsGridView() +{ + Q_D(QmlGraphicsGridView); + d->clear(); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlattachedproperty bool GridView::isCurrentItem + This attched property is true if this delegate is the current item; otherwise false. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty GridView GridView::view + This attached property holds the view that manages this delegate instance. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty bool GridView::delayRemove + This attached property holds whether the delegate may be destroyed. + + It is attached to each instance of the delegate. + + It is sometimes necessary to delay the destruction of an item + until an animation completes. + + The example below ensures that the animation completes before + the item is removed from the grid. + + \code + Component { + id: myDelegate + Item { + id: wrapper + GridView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } + PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: false } + } + } + } + \endcode +*/ + +/*! + \qmlattachedsignal GridView::onAdd() + This attached handler is called immediately after an item is added to the view. +*/ + +/*! + \qmlattachedsignal GridView::onRemove() + This attached handler is called immediately before an item is removed from the view. +*/ + + +/*! + \qmlproperty model GridView::model + This property holds the model providing data for the grid. + + The model provides a set of data that is used to create the items + for the view. For large or dynamic datasets the model is usually + provided by a C++ model object. The C++ model object must be a \l + {QAbstractItemModel} subclass, a VisualModel, or a simple list. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsGridView::model() const +{ + Q_D(const QmlGraphicsGridView); + return d->modelVariant; +} + +void QmlGraphicsGridView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsGridView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + } + d->clear(); + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + if (d->currentIndex >= d->model->count() || d->currentIndex < 0) + setCurrentIndex(0); + else + d->updateCurrent(d->currentIndex); + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + refill(); + emit countChanged(); + } +} + +/*! + \qmlproperty component GridView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 +*/ +QmlComponent *QmlGraphicsGridView::delegate() const +{ + Q_D(const QmlGraphicsGridView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsGridView::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsGridView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + d->updateCurrent(d->currentIndex); + refill(); + } +} + +/*! + \qmlproperty int GridView::currentIndex + \qmlproperty Item GridView::currentItem + + \c currentIndex holds the index of the current item. + \c currentItem is the current item. Note that the position of the current item + may only be approximate until it becomes visible in the view. +*/ +int QmlGraphicsGridView::currentIndex() const +{ + Q_D(const QmlGraphicsGridView); + return d->currentIndex; +} + +void QmlGraphicsGridView::setCurrentIndex(int index) +{ + Q_D(QmlGraphicsGridView); + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); + d->updateCurrent(index); + } else { + d->currentIndex = index; + } +} + +QmlGraphicsItem *QmlGraphicsGridView::currentItem() +{ + Q_D(QmlGraphicsGridView); + if (!d->currentItem) + return 0; + return d->currentItem->item; +} + +/*! + \qmlproperty int GridView::count + This property holds the number of items in the view. +*/ +int QmlGraphicsGridView::count() const +{ + Q_D(const QmlGraphicsGridView); + if (d->model) + return d->model->count(); + return 0; +} + +/*! + \qmlproperty component GridView::highlight + This property holds the component to use as the highlight. + + An instance of the highlight component will be created for each view. + The geometry of the resultant component instance will be managed by the view + so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. + + The below example demonstrates how to make a simple highlight: + \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 + + \sa highlightFollowsCurrentItem +*/ +QmlComponent *QmlGraphicsGridView::highlight() const +{ + Q_D(const QmlGraphicsGridView); + return d->highlightComponent; +} + +void QmlGraphicsGridView::setHighlight(QmlComponent *highlight) +{ + Q_D(QmlGraphicsGridView); + delete d->highlightComponent; + d->highlightComponent = highlight; + d->updateCurrent(d->currentIndex); +} + +/*! + \qmlproperty bool GridView::highlightFollowsCurrentItem + This property sets whether the highlight is managed by the view. + + If highlightFollowsCurrentItem is true, the highlight will be moved smoothly + to follow the current item. If highlightFollowsCurrentItem is false, the + highlight will not be moved by the view, and must be implemented + by the highlight component, for example: + + \code + Component { + id: myHighlight + Rectangle { + id: wrapper; color: "lightsteelblue"; radius: 4; width: 320; height: 60 > + y: SpringFollow { source: Wrapper.GridView.view.currentItem.y; spring: 3; damping: 0.2 } + x: SpringFollow { source: Wrapper.GridView.view.currentItem.x; spring: 3; damping: 0.2 } + } + } + \endcode +*/ +bool QmlGraphicsGridView::highlightFollowsCurrentItem() const +{ + Q_D(const QmlGraphicsGridView); + return d->autoHighlight; +} + +void QmlGraphicsGridView::setHighlightFollowsCurrentItem(bool autoHighlight) +{ + Q_D(QmlGraphicsGridView); + d->autoHighlight = autoHighlight; + if (d->highlightXAnimator) { + d->highlightXAnimator->setEnabled(d->autoHighlight); + d->highlightYAnimator->setEnabled(d->autoHighlight); + } + d->updateHighlight(); +} + +/*! + \qmlproperty enumeration GridView::flow + This property holds the flow of the grid. + + Possible values are \c LeftToRight (default) and \c TopToBottom. + + If \a flow is \c LeftToRight, the view will scroll vertically. + If \a flow is \c TopToBottom, the view will scroll horizontally. +*/ +QmlGraphicsGridView::Flow QmlGraphicsGridView::flow() const +{ + Q_D(const QmlGraphicsGridView); + return d->flow; +} + +void QmlGraphicsGridView::setFlow(Flow flow) +{ + Q_D(QmlGraphicsGridView); + if (d->flow != flow) { + d->flow = flow; + if (d->flow == LeftToRight) + setViewportWidth(-1); + else + setViewportHeight(-1); + d->clear(); + d->updateGrid(); + refill(); + d->updateCurrent(d->currentIndex); + } +} + +/*! + \qmlproperty bool GridView::keyNavigationWraps + This property holds whether the grid wraps key navigation + + If this property is true then key presses to move off of one end of the grid will cause the + selection to jump to the other side. +*/ +bool QmlGraphicsGridView::isWrapEnabled() const +{ + Q_D(const QmlGraphicsGridView); + return d->wrap; +} + +void QmlGraphicsGridView::setWrapEnabled(bool wrap) +{ + Q_D(QmlGraphicsGridView); + d->wrap = wrap; +} + +/*! + \qmlproperty int GridView::cacheBuffer + This property holds the number of off-screen pixels to cache. + + This property determines the number of pixels above the top of the view + and below the bottom of the view to cache. Setting this value can make + scrolling the view smoother at the expense of additional memory usage. +*/ +int QmlGraphicsGridView::cacheBuffer() const +{ + Q_D(const QmlGraphicsGridView); + return d->buffer; +} + +void QmlGraphicsGridView::setCacheBuffer(int buffer) +{ + Q_D(QmlGraphicsGridView); + if (d->buffer != buffer) { + d->buffer = buffer; + if (isComponentComplete()) + refill(); + } +} + +/*! + \qmlproperty int GridView::cellWidth + \qmlproperty int GridView::cellHeight + + These properties holds the width and height of each cell in the grid + + The default sell size is 100x100. +*/ +int QmlGraphicsGridView::cellWidth() const +{ + Q_D(const QmlGraphicsGridView); + return d->cellWidth; +} + +void QmlGraphicsGridView::setCellWidth(int cellWidth) +{ + Q_D(QmlGraphicsGridView); + if (cellWidth != d->cellWidth && cellWidth > 0) { + d->cellWidth = qMax(1, cellWidth); + d->updateGrid(); + emit cellWidthChanged(); + d->layout(); + } +} + +int QmlGraphicsGridView::cellHeight() const +{ + Q_D(const QmlGraphicsGridView); + return d->cellHeight; +} + +void QmlGraphicsGridView::setCellHeight(int cellHeight) +{ + Q_D(QmlGraphicsGridView); + if (cellHeight != d->cellHeight && cellHeight > 0) { + d->cellHeight = qMax(1, cellHeight); + d->updateGrid(); + emit cellHeightChanged(); + d->layout(); + } +} + +void QmlGraphicsGridView::sizeChange() +{ + Q_D(QmlGraphicsGridView); + if (isComponentComplete()) { + d->updateGrid(); + d->layout(); + } +} + +void QmlGraphicsGridView::viewportMoved() +{ + QmlGraphicsFlickable::viewportMoved(); + refill(); +} + +qreal QmlGraphicsGridView::minYExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::minYExtent(); + return -d->startPosition(); +} + +qreal QmlGraphicsGridView::maxYExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::maxYExtent(); + return -(d->endPosition() - height()); +} + +qreal QmlGraphicsGridView::minXExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::minXExtent(); + return -d->startPosition(); +} + +qreal QmlGraphicsGridView::maxXExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::maxXExtent(); + return -(d->endPosition() - width()); +} + +void QmlGraphicsGridView::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::keyPressEvent(event); + if (event->isAccepted()) + return; + + if (d->model && d->model->count() && d->interactive) { + d->moveReason = QmlGraphicsGridViewPrivate::Key; + int oldCurrent = currentIndex(); + switch (event->key()) { + case Qt::Key_Up: + moveCurrentIndexUp(); + break; + case Qt::Key_Down: + moveCurrentIndexDown(); + break; + case Qt::Key_Left: + moveCurrentIndexLeft(); + break; + case Qt::Key_Right: + moveCurrentIndexRight(); + break; + default: + break; + } + if (oldCurrent != currentIndex()) { + event->accept(); + return; + } + } + d->moveReason = QmlGraphicsGridViewPrivate::Other; + event->ignore(); +} + +/*! + \qmlmethod GridView::moveCurrentIndexUp + + Move the currentIndex up one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexUp() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() >= d->columns || d->wrap) { + int index = currentIndex() - d->columns; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } else { + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex() - 1; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexDown + + Move the currentIndex down one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexDown() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() < d->model->count() - d->columns || d->wrap) { + int index = currentIndex()+d->columns; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } else { + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex() + 1; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexLeft + + Move the currentIndex left one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexLeft() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex() - 1; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } else { + if (currentIndex() >= d->columns || d->wrap) { + int index = currentIndex() - d->columns; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexRight + + Move the currentIndex right one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexRight() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex() + 1; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } else { + if (currentIndex() < d->model->count() - d->columns || d->wrap) { + int index = currentIndex()+d->columns; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } +} + +void QmlGraphicsGridView::componentComplete() +{ + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::componentComplete(); + d->updateGrid(); + if (d->currentIndex < 0) + d->updateCurrent(0); + refill(); +} + +void QmlGraphicsGridView::trackedPositionChanged() +{ + Q_D(QmlGraphicsGridView); + if (!d->trackedItem) + return; + if (!isFlicking() && !d->pressed && d->moveReason == QmlGraphicsGridViewPrivate::Key) { + if (d->trackedItem->rowPos() < d->position()) { + d->setPosition(d->trackedItem->rowPos()); + } else if (d->trackedItem->endRowPos() > d->position() + d->size()) { + qreal pos = d->trackedItem->endRowPos() - d->size(); + if (d->rowSize() > d->size()) + pos = d->trackedItem->rowPos(); + d->setPosition(pos); + } + } +} + +void QmlGraphicsGridView::itemsInserted(int modelIndex, int count) +{ + Q_D(QmlGraphicsGridView); + if (!d->visibleItems.count() || d->model->count() <= 1) { + refill(); + d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); + emit countChanged(); + return; + } + + int index = d->mapFromModel(modelIndex); + if (index == -1) { + int i = d->visibleItems.count() - 1; + while (i > 0 && d->visibleItems.at(i)->index == -1) + --i; + if (d->visibleItems.at(i)->index + 1 == modelIndex) { + // Special case of appending an item to the model. + index = d->visibleIndex + d->visibleItems.count(); + } else { + if (modelIndex + count - 1 < d->visibleIndex) { + // Insert before visible items + d->visibleIndex += count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxGridItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index += count; + } + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) + d->currentItem->index = d->currentIndex; + } + d->layout(); + emit countChanged(); + return; + } + } + + // At least some of the added items will be visible + int insertCount = count; + if (index < d->visibleIndex) { + insertCount -= d->visibleIndex - index; + index = d->visibleIndex; + modelIndex = d->visibleIndex; + } + + index -= d->visibleIndex; + int to = d->buffer+d->position()+d->size()-1; + int colPos, rowPos; + if (index < d->visibleItems.count()) { + colPos = d->visibleItems.at(index)->colPos(); + rowPos = d->visibleItems.at(index)->rowPos(); + } else { + // appending items to visible list + colPos = d->visibleItems.at(index-1)->colPos() + d->colSize(); + rowPos = d->visibleItems.at(index-1)->rowPos(); + if (colPos > d->colSize() * (d->columns-1)) { + colPos = 0; + rowPos += d->rowSize(); + } + } + + QList added; + int i = 0; + for (; i < insertCount && rowPos + d->rowSize() - 1 <= to; ++i) { + int mod = (modelIndex+i) % d->columns; + while (mod++ < d->columns && modelIndex + i < d->model->count() && i < insertCount) { + FxGridItem *item = d->createItem(modelIndex + i); + d->visibleItems.insert(index, item); + item->setPosition(colPos, rowPos); + added.append(item); + colPos += d->colSize(); + if (colPos > d->colSize() * (d->columns-1)) { + colPos = 0; + rowPos += d->rowSize(); + } + ++index; + ++i; + } + } + + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) { + d->currentItem->index = d->currentIndex; + d->currentItem->setPosition(d->colPosAt(d->currentIndex), d->rowPosAt(d->currentIndex)); + } + } + if (i < insertCount) { + // We didn't insert all our new items, which means anything + // beyond the current index is not visible - remove it. + while (d->visibleItems.count() > index) + d->releaseItem(d->visibleItems.takeLast()); + } else { + // Update the indexes of the following visible items. + for (; index < d->visibleItems.count(); ++index) { + FxGridItem *listItem = d->visibleItems.at(index); + if (listItem->index != -1) + listItem->index += count; + } + } + // everything is in order now - emit add() signal + for (int j = 0; j < added.count(); ++j) + added.at(j)->attached->emitAdd(); + d->layout(); + emit countChanged(); +} + +void QmlGraphicsGridView::itemsRemoved(int modelIndex, int count) +{ + Q_D(QmlGraphicsGridView); + bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; + int index = d->mapFromModel(modelIndex); + if (index == -1) { + if (modelIndex + count - 1 < d->visibleIndex) { + // Items removed before our visible items. + d->visibleIndex -= count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxGridItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index -= count; + } + } + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + d->layout(true); + emit countChanged(); + return; + } + + // Remove the items from the visible list, skipping anything already marked for removal + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (item->index == -1 || item->index < modelIndex) { + // already removed, or before removed items + ++it; + } else if (item->index >= modelIndex + count) { + // after removed items + item->index -= count; + ++it; + } else { + // removed item + item->attached->emitRemove(); + if (item->attached->delayRemove()) { + item->index = -1; + connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); + ++it; + } else { + it = d->visibleItems.erase(it); + d->releaseItem(item); + } + } + } + + // fix current + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + + // update visibleIndex + for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { + if ((*it)->index != -1) { + d->visibleIndex = (*it)->index; + break; + } + } + + if (d->visibleItems.isEmpty()) { + d->visibleIndex = 0; + d->setPosition(0); + refill(); + } else { + // Correct the positioning of the items + d->layout(); + } + emit countChanged(); +} + +void QmlGraphicsGridView::destroyRemoved() +{ + Q_D(QmlGraphicsGridView); + for (QList::Iterator it = d->visibleItems.begin(); + it != d->visibleItems.end();) { + FxGridItem *listItem = *it; + if (listItem->index == -1 && listItem->attached->delayRemove() == false) { + d->releaseItem(listItem); + it = d->visibleItems.erase(it); + } else { + ++it; + } + } + + // Correct the positioning of the items + d->layout(); +} + +void QmlGraphicsGridView::itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsGridView); + QHash moved; + + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (item->index >= from && item->index < from + count) { + // take the items that are moving + item->index += (to-from); + moved.insert(item->index, item); + it = d->visibleItems.erase(it); + } else { + if (item->index > from && item->index != -1) { + // move everything after the moved items. + item->index -= count; + } + ++it; + } + } + + int remaining = count; + int endIndex = d->visibleIndex; + it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (remaining && item->index >= to && item->index < to + count) { + // place items in the target position, reusing any existing items + FxGridItem *movedItem = moved.take(item->index); + if (!movedItem) + movedItem = d->createItem(item->index); + it = d->visibleItems.insert(it, movedItem); + ++it; + --remaining; + } else { + if (item->index != -1) { + if (item->index >= to) { + // update everything after the moved items. + item->index += count; + } + endIndex = item->index; + } + ++it; + } + } + + // If we have moved items to the end of the visible items + // then add any existing moved items that we have + while (FxGridItem *item = moved.take(endIndex+1)) { + d->visibleItems.append(item); + ++endIndex; + } + + // Whatever moved items remain are no longer visible items. + while (moved.count()) + d->releaseItem(moved.take(moved.begin().key())); + + d->layout(); +} + +void QmlGraphicsGridView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsGridView); + item->setParentItem(this); + if (d->requestedIndex != index) { + item->setParentItem(this); + d->unrequestedItems.insert(item, index); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + item->setPos(QPointF(d->colPosAt(index), d->rowPosAt(index))); + } else { + item->setPos(QPointF(d->rowPosAt(index), d->colPosAt(index))); + } + } +} + +void QmlGraphicsGridView::destroyingItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsGridView); + d->unrequestedItems.remove(item); +} + + +void QmlGraphicsGridView::refill() +{ + Q_D(QmlGraphicsGridView); + d->refill(d->position(), d->position()+d->size()-1); +} + + +QmlGraphicsGridViewAttached *QmlGraphicsGridView::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsGridViewAttached::properties(obj); +} + +QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView) + +QT_END_NAMESPACE + +#include "qfxgridview.moc" diff --git a/src/declarative/fx/qmlgraphicsgridview.h b/src/declarative/fx/qmlgraphicsgridview.h new file mode 100644 index 0000000..1582529 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgridview.h @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRIDVIEW_H +#define QMLGRAPHICSGRIDVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsVisualModel; +class QmlGraphicsGridViewAttached; +class QmlGraphicsGridViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + Q_PROPERTY(Flow flow READ flow WRITE setFlow) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) + Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsGridView(QmlGraphicsItem *parent=0); + ~QmlGraphicsGridView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + Q_ENUMS(Flow) + enum Flow { LeftToRight, TopToBottom }; + Flow flow() const; + void setFlow(Flow); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + int cellWidth() const; + void setCellWidth(int); + + int cellHeight() const; + void setCellHeight(int); + + static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void moveCurrentIndexUp(); + void moveCurrentIndexDown(); + void moveCurrentIndexLeft(); + void moveCurrentIndexRight(); + +Q_SIGNALS: + void countChanged(); + void currentIndexChanged(); + void cellWidthChanged(); + void cellHeightChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void trackedPositionChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + void sizeChange(); + +private: + void refill(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsGridView) +QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsimage.cpp b/src/declarative/fx/qmlgraphicsimage.cpp new file mode 100644 index 0000000..a6156ce --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimage.cpp @@ -0,0 +1,301 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsimage.h" +#include "qmlgraphicsimage_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE + + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QmlGraphicsImage) + +/*! + \qmlclass Image QmlGraphicsImage + \brief The Image element allows you to add bitmaps to a scene. + \inherits Item + + The Image element supports untransformed, stretched and tiled. + + For an explanation of stretching and tiling, see the fillMode property description. + + Examples: + \table + \row + \o \image declarative-qtlogo1.png + \o Untransformed + \qml + Image { source: "pics/qtlogo.png" } + \endqml + \row + \o \image declarative-qtlogo2.png + \o fillMode: Stretch (default) + \qml + Image { + width: 160 + height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo3.png + \o fillMode: Tile + \qml + Image { + fillMode: Image.Tile + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo6.png + \o fillMode: TileVertically + \qml + Image { + fillMode: Image.TileVertically + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo5.png + \o fillMode: TileHorizontally + \qml + Image { + fillMode: Image.TileHorizontally + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \endtable + */ + +/*! + \internal + \class QmlGraphicsImage Image + \brief The QmlGraphicsImage class provides an image item that you can add to a QmlView. + + \ingroup group_coreitems + + Example: + \qml + Image { source: "pics/star.png" } + \endqml + + A QmlGraphicsImage object can be instantiated in Qml using the tag \l Image. +*/ + +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsImagePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsImage::~QmlGraphicsImage() +{ +} + +QPixmap QmlGraphicsImage::pixmap() const +{ + Q_D(const QmlGraphicsImage); + return d->pix; +} + +void QmlGraphicsImage::setPixmap(const QPixmap &pix) +{ + Q_D(QmlGraphicsImage); + if (!d->url.isEmpty()) + return; + d->pix = pix; + + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + update(); +} + +/*! + \qmlproperty enumeration Image::fillMode + + Set this property to define what happens when the image set for the item is smaller + than the size of the item. + + \list + \o Stretch - the image is scaled to fit + \o PreserveAspectFit - the image is scaled uniformly to fit without cropping + \o PreserveAspectCrop - the image is scaled uniformly to fill, cropping if necessary + \o Tile - the image is duplicated horizontally and vertically + \o TileVertically - the image is stretched horizontally and tiled vertically + \o TileHorizontally - the image is stretched vertically and tiled horizontally + \endlist + + \image declarative-image_fillMode.gif + \sa examples/declarative/fillmode + \sa examples/declarative/aspectratio +*/ +QmlGraphicsImage::FillMode QmlGraphicsImage::fillMode() const +{ + Q_D(const QmlGraphicsImage); + return d->fillMode; +} + +void QmlGraphicsImage::setFillMode(FillMode mode) +{ + Q_D(QmlGraphicsImage); + if (d->fillMode == mode) + return; + d->fillMode = mode; + update(); + emit fillModeChanged(); +} + +/*! + \qmlproperty enum Image::status + + This property holds the status of image loading. It can be one of: + \list + \o Null - no image has been set + \o Ready - the image has been loaded + \o Loading - the image is currently being loaded + \o Error - an error occurred while loading the image + \endlist + + \sa progress +*/ + +/*! + \qmlproperty real Image::progress + + This property holds the progress of image loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ + +/*! + \qmlproperty bool Image::smooth + + Set this property if you want the image to be smoothly filtered when scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the image is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the image is stationary on + the screen. A common pattern when animating an image is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +/*! + \qmlproperty url Image::source + + Image can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. + + The URL may be absolute, or relative to the URL of the component. +*/ + +void QmlGraphicsImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsImage); + if (d->pix.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + if (width() != d->pix.width() || height() != d->pix.height()) { + if (d->fillMode >= Tile) { + if (d->fillMode == Tile) + p->drawTiledPixmap(QRectF(0,0,width(),height()), d->pix); + else if (d->fillMode == TileVertically) + p->drawTiledPixmap(QRectF(0,0,d->pix.width(),height()), d->pix); + else + p->drawTiledPixmap(QRectF(0,0,width(),d->pix.height()), d->pix); + } else { + qreal widthScale = width() / qreal(d->pix.width()); + qreal heightScale = height() / qreal(d->pix.height()); + + QTransform scale; + + if (d->fillMode == PreserveAspectFit) { + if (widthScale < heightScale) { + heightScale = widthScale; + scale.translate(0, (height() - heightScale * d->pix.height()) / 2); + } else if(heightScale < widthScale) { + widthScale = heightScale; + scale.translate((width() - widthScale * d->pix.width()) / 2, 0); + } + } else if (d->fillMode == PreserveAspectCrop) { + if (widthScale < heightScale) { + widthScale = heightScale; + scale.translate((width() - widthScale * d->pix.width()) / 2, 0); + } else if(heightScale < widthScale) { + heightScale = widthScale; + scale.translate(0, (height() - heightScale * d->pix.height()) / 2); + } + } + + scale.scale(widthScale, heightScale); + QTransform old = p->transform(); + p->setWorldTransform(scale * old); + p->drawPixmap(0, 0, d->pix); + p->setWorldTransform(old); + } + } else { + p->drawPixmap(0, 0, d->pix); + } + + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsimage.h b/src/declarative/fx/qmlgraphicsimage.h new file mode 100644 index 0000000..167ecd4 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimage.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGE_H +#define QMLGRAPHICSIMAGE_H + +#include +#include "qmlgraphicsimagebase.h" + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase +{ + Q_OBJECT + Q_ENUMS(FillMode) + + Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) + Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) + +public: + QmlGraphicsImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsImage(); + + enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; + FillMode fillMode() const; + void setFillMode(FillMode); + + QPixmap pixmap() const; + void setPixmap(const QPixmap &); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void fillModeChanged(); + +protected: + QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) +}; + +QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsImage) +QT_END_HEADER + +#endif // QMLGRAPHICSIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsimage_p.h b/src/declarative/fx/qmlgraphicsimage_p.h new file mode 100644 index 0000000..c5bcf8e --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimage_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGE_P_H +#define QMLGRAPHICSIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsimagebase_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImage) + +public: + QmlGraphicsImagePrivate() + : fillMode(QmlGraphicsImage::Stretch) + { + } + + QmlGraphicsImage::FillMode fillMode; + +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicsimagebase.cpp b/src/declarative/fx/qmlgraphicsimagebase.cpp new file mode 100644 index 0000000..d71438d --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimagebase.cpp @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsimagebase.h" +#include "qmlgraphicsimagebase_p.h" +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsImageBasePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, true); +} + +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, true); +} + +QmlGraphicsImageBase::~QmlGraphicsImageBase() +{ + Q_D(QmlGraphicsImageBase); + if (d->pendingPixmapCache) + QmlGraphicsPixmapCache::cancelGet(d->url, this); +} + +QmlGraphicsImageBase::Status QmlGraphicsImageBase::status() const +{ + Q_D(const QmlGraphicsImageBase); + return d->status; +} + + +qreal QmlGraphicsImageBase::progress() const +{ + Q_D(const QmlGraphicsImageBase); + return d->progress; +} + +QUrl QmlGraphicsImageBase::source() const +{ + Q_D(const QmlGraphicsImageBase); + return d->url; +} + +void QmlGraphicsImageBase::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsImageBase); + //equality is fairly expensive, so we bypass for simple, common case + if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) + return; + + if (d->pendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->url, this); + d->pendingPixmapCache = false; + } + + d->url = url; + if (d->progress != 0.0) { + d->progress = 0.0; + emit progressChanged(d->progress); + } + + if (url.isEmpty()) { + d->pix = QPixmap(); + d->status = Null; + d->progress = 1.0; + setImplicitWidth(0); + setImplicitHeight(0); + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } else { + d->status = Loading; + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); + if (reply) { + d->pendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } + + emit statusChanged(d->status); +} + +void QmlGraphicsImageBase::requestFinished() +{ + Q_D(QmlGraphicsImageBase); + + d->pendingPixmapCache = false; + + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) + d->status = Error; + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); +} + +void QmlGraphicsImageBase::requestProgress(qint64 received, qint64 total) +{ + Q_D(QmlGraphicsImageBase); + if (d->status == Loading && total > 0) { + d->progress = qreal(received)/total; + emit progressChanged(d->progress); + } +} + + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsimagebase.h b/src/declarative/fx/qmlgraphicsimagebase.h new file mode 100644 index 0000000..3ad0e4b --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimagebase.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEBASE_H +#define QMLGRAPHICSIMAGEBASE_H + +#include + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +class QmlGraphicsImageBasePrivate; +class QmlGraphicsImageBase : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + +public: + QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); + ~QmlGraphicsImageBase(); + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + QUrl source() const; + virtual void setSource(const QUrl &url); + +Q_SIGNALS: + void sourceChanged(const QUrl &); + void statusChanged(Status); + void progressChanged(qreal progress); + +protected: + QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + virtual void requestFinished(); + void requestProgress(qint64,qint64); + +private: + Q_DISABLE_COPY(QmlGraphicsImageBase) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) +}; + +QT_END_NAMESPACE +QT_END_HEADER + +#endif // QMLGRAPHICSIMAGEBASE_H diff --git a/src/declarative/fx/qmlgraphicsimagebase_p.h b/src/declarative/fx/qmlgraphicsimagebase_p.h new file mode 100644 index 0000000..5fd5f11 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimagebase_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEBASE_P_H +#define QMLGRAPHICSIMAGEBASE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImageBase) + +public: + QmlGraphicsImageBasePrivate() + : status(QmlGraphicsImageBase::Null), + progress(0.0), + pendingPixmapCache(false) + { + } + + QPixmap pix; + QmlGraphicsImageBase::Status status; + QUrl url; + qreal progress; + bool pendingPixmapCache; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicsitem.cpp b/src/declarative/fx/qmlgraphicsitem.cpp new file mode 100644 index 0000000..d5b31d0 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsitem.cpp @@ -0,0 +1,2921 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "qmlstate.h" +#include "qlistmodelinterface.h" + +#include "qmlview.h" +#include "qmlstategroup.h" + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsitem.h" +#include "qmlgraphicsevents_p.h" +#include + +QT_BEGIN_NAMESPACE + +#ifndef FLT_MAX +#define FLT_MAX 1E+37 +#endif + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QmlGraphicsItem) + +QML_DEFINE_NOCREATE_TYPE(QGraphicsTransform); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Scale,QGraphicsScale) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) + +#include "qmlgraphicseffects.cpp" + +/*! + \qmlclass Transform + \brief The Transform elements provide a way of building advanced transformations on Items. + + The Transform elements let you create and control advanced transformations that can be configured + independently using specialized properties. + + You can assign any number of Transform elements to an Item. Each Transform is applied in order, + one at a time, to the Item it's assigned to. + + \sa Rotation, Scale +*/ + +/*! + \qmlclass Scale + \brief The Scale object provides a way to scale an Item. + + The Scale object gives more control over scaling than using Item's scale property. Specifically, + it allows a different scale for the x and y axes, and allows the scale to be relative to an + arbitrary point. + + The following example scales the X axis of the Rectangle, relative to its interior point 25, 25: + \qml + Rectangle { + width: 100; height: 100 + color: "blue" + transform: Scale { origin.x: 25; origin.y: 25; xScale: 3} + } + \endqml +*/ + +/*! + \qmlproperty real Scale::origin.x + \qmlproperty real Scale::origin.y + + The point that the item is scaled from (i.e., the point that stays fixed relative to the parent as + the rest of the item grows). By default the origin is 0, 0. +*/ + +/*! + \qmlproperty real Scale::xScale + + The scaling factor for the X axis. +*/ + +/*! + \qmlproperty real Scale::yScale + + The scaling factor for the Y axis. +*/ + +/*! + \qmlclass Rotation + \brief The Rotation object provides a way to rotate an Item. + + The Rotation object gives more control over rotation than using Item's rotation property. + Specifically, it allows (z axis) rotation to be relative to an arbitrary point. + + The following example rotates a Rectangle around its interior point 25, 25: + \qml + Rectangle { + width: 100; height: 100 + color: "blue" + transform: Rotation { origin.x: 25; origin.y: 25; angle: 45} + } + \endqml + + Rotation also provides a way to specify 3D-like rotations for Items. For these types of + rotations you must specify the axis to rotate around in addition to the origin point. + + The following example shows various 3D-like rotations applied to an \l Image. + \snippet doc/src/snippets/declarative/rotation.qml 0 + + \image axisrotation.png +*/ + +/*! + \qmlproperty real Rotation::origin.x + \qmlproperty real Rotation::origin.y + + The origin point of the rotation (i.e., the point that stays fixed relative to the parent as + the rest of the item rotates). By default the origin is 0, 0. +*/ + +/*! + \qmlproperty real Rotation::axis.x + \qmlproperty real Rotation::axis.y + \qmlproperty real Rotation::axis.z + + The axis to rotate around. For simple (2D) rotation around a point, you do not need to specify an axis, + as the default axis is the z axis (\c{ axis { x: 0; y: 0; z: 0 } }). + + For a typical 3D-like rotation you will usually specify both the origin and the axis. + + \image 3d-rotation-axis.png +*/ + +/*! + \qmlproperty real Rotation::angle + + The angle to rotate, in degrees clockwise. +*/ + + +/*! + \group group_animation + \title Animation +*/ + +/*! + \group group_coreitems + \title Basic Items +*/ + +/*! + \group group_effects + \title Effects +*/ + +/*! + \group group_layouts + \title Layouts +*/ + +/*! + \group group_states + \title States and Transitions +*/ + +/*! + \group group_utility + \title Utility +*/ + +/*! + \group group_views + \title Views +*/ + +/*! + \group group_widgets + \title Widgets +*/ + +/*! + \internal + \class QmlGraphicsContents + \ingroup group_utility + \brief The QmlGraphicsContents class gives access to the height and width of an item's contents. + +*/ + +QmlGraphicsContents::QmlGraphicsContents() : m_x(0), m_y(0), m_width(0), m_height(0) +{ +} + +/*! + \qmlproperty real Item::childrenRect.x + \qmlproperty real Item::childrenRect.y + \qmlproperty real Item::childrenRect.width + \qmlproperty real Item::childrenRect.height + + The childrenRect properties allow an item access to the geometry of its + children. This property is useful if you have an item that needs to be + sized to fit its children. +*/ + +QRectF QmlGraphicsContents::rectF() const +{ + return QRectF(m_x, m_y, m_width, m_height); +} + +//TODO: optimization: only check sender(), if there is one +void QmlGraphicsContents::calcHeight() +{ + qreal oldy = m_y; + qreal oldheight = m_height; + + qreal top = FLT_MAX; + qreal bottom = 0; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + qreal y = child->y(); + if (y + child->height() > bottom) + bottom = y + child->height(); + if (y < top) + top = y; + } + if (!children.isEmpty()) + m_y = top; + m_height = qMax(bottom - top, qreal(0.0)); + + if (m_height != oldheight || m_y != oldy) + emit rectChanged(); +} + +//TODO: optimization: only check sender(), if there is one +void QmlGraphicsContents::calcWidth() +{ + qreal oldx = m_x; + qreal oldwidth = m_width; + + qreal left = FLT_MAX; + qreal right = 0; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + qreal x = child->x(); + if (x + child->width() > right) + right = x + child->width(); + if (x < left) + left = x; + } + if (!children.isEmpty()) + m_x = left; + m_width = qMax(right - left, qreal(0.0)); + + if (m_width != oldwidth || m_x != oldx) + emit rectChanged(); +} + +void QmlGraphicsContents::setItem(QmlGraphicsItem *item) +{ + m_item = item; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + connect(child, SIGNAL(heightChanged()), this, SLOT(calcHeight())); + connect(child, SIGNAL(yChanged()), this, SLOT(calcHeight())); + connect(child, SIGNAL(widthChanged()), this, SLOT(calcWidth())); + connect(child, SIGNAL(xChanged()), this, SLOT(calcWidth())); + connect(this, SIGNAL(rectChanged()), m_item, SIGNAL(childrenRectChanged())); + } + + calcHeight(); + calcWidth(); +} + +/* + Key filters can be installed on a QmlGraphicsItem, but not removed. Currently they + are only used by attached objects (which are only destroyed on Item + destruction), so this isn't a problem. If in future this becomes any form + of public API, they will have to support removal too. +*/ +class QmlGraphicsItemKeyFilter +{ +public: + QmlGraphicsItemKeyFilter(QmlGraphicsItem * = 0); + virtual ~QmlGraphicsItemKeyFilter(); + + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *event); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + virtual void componentComplete(); + +private: + QmlGraphicsItemKeyFilter *m_next; +}; + +QmlGraphicsItemKeyFilter::QmlGraphicsItemKeyFilter(QmlGraphicsItem *item) +: m_next(0) +{ + QmlGraphicsItemPrivate *p = + item?static_cast(QGraphicsItemPrivate::get(item)):0; + if (p) { + m_next = p->keyHandler; + p->keyHandler = this; + } +} + +QmlGraphicsItemKeyFilter::~QmlGraphicsItemKeyFilter() +{ +} + +void QmlGraphicsItemKeyFilter::keyPressed(QKeyEvent *event) +{ + if (m_next) m_next->keyPressed(event); +} + +void QmlGraphicsItemKeyFilter::keyReleased(QKeyEvent *event) +{ + if (m_next) m_next->keyReleased(event); +} + +void QmlGraphicsItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) +{ + if (m_next) m_next->inputMethodEvent(event); +} + +QVariant QmlGraphicsItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const +{ + if (m_next) return m_next->inputMethodQuery(query); + return QVariant(); +} + +void QmlGraphicsItemKeyFilter::componentComplete() +{ + if (m_next) m_next->componentComplete(); +} + +class QmlGraphicsKeyNavigationAttachedPrivate : public QObjectPrivate +{ +public: + QmlGraphicsKeyNavigationAttachedPrivate() + : QObjectPrivate(), left(0), right(0), up(0), down(0) {} + + QmlGraphicsItem *left; + QmlGraphicsItem *right; + QmlGraphicsItem *up; + QmlGraphicsItem *down; +}; + +class QmlGraphicsKeyNavigationAttached : public QObject, public QmlGraphicsItemKeyFilter +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsKeyNavigationAttached) + + Q_PROPERTY(QmlGraphicsItem *left READ left WRITE setLeft NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *right READ right WRITE setRight NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *up READ up WRITE setUp NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *down READ down WRITE setDown NOTIFY changed) +public: + QmlGraphicsKeyNavigationAttached(QObject * = 0); + + QmlGraphicsItem *left() const; + void setLeft(QmlGraphicsItem *); + QmlGraphicsItem *right() const; + void setRight(QmlGraphicsItem *); + QmlGraphicsItem *up() const; + void setUp(QmlGraphicsItem *); + QmlGraphicsItem *down() const; + void setDown(QmlGraphicsItem *); + + static QmlGraphicsKeyNavigationAttached *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void changed(); + +private: + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); +}; + +QmlGraphicsKeyNavigationAttached::QmlGraphicsKeyNavigationAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeyNavigationAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) +{ +} + +QmlGraphicsKeyNavigationAttached * +QmlGraphicsKeyNavigationAttached::qmlAttachedProperties(QObject *obj) +{ + return new QmlGraphicsKeyNavigationAttached(obj); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::left() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->left; +} + +void QmlGraphicsKeyNavigationAttached::setLeft(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->left = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::right() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->right; +} + +void QmlGraphicsKeyNavigationAttached::setRight(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->right = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::up() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->up; +} + +void QmlGraphicsKeyNavigationAttached::setUp(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->up = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::down() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->down; +} + +void QmlGraphicsKeyNavigationAttached::setDown(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->down = i; + emit changed(); +} + +void QmlGraphicsKeyNavigationAttached::keyPressed(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + + event->ignore(); + + switch(event->key()) { + case Qt::Key_Left: + if (d->left) { + d->left->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Right: + if (d->right) { + d->right->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Up: + if (d->up) { + d->up->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Down: + if (d->down) { + d->down->setFocus(true); + event->accept(); + } + break; + default: + break; + } + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); +} + +void QmlGraphicsKeyNavigationAttached::keyReleased(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + + event->ignore(); + + switch(event->key()) { + case Qt::Key_Left: + if (d->left) { + event->accept(); + } + break; + case Qt::Key_Right: + if (d->right) { + event->accept(); + } + break; + case Qt::Key_Up: + if (d->up) { + event->accept(); + } + break; + case Qt::Key_Down: + if (d->down) { + event->accept(); + } + break; + default: + break; + } + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); +} + +/*! + \qmlclass Keys + \brief The Keys attached property provides key handling to Items. + + All visual primitives support key handling via the \e Keys + attached property. Keys can be handled via the \e onPressed + and \e onReleased signal properties. + + The signal properties have a \l KeyEvent parameter, named + \e event which contains details of the event. If a key is + handled \e event.accepted should be set to true to prevent the + event from propagating up the item heirarchy. + + \code + Item { + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_Left) { + print("move left"); + event.accepted = true; + } + } + } + \endcode + + Some keys may alternatively be handled via specific signal properties, + for example \e onSelectPressed. These handlers automatically set + \e event.accepted to true. + + \code + Item { + focus: true + Keys.onLeftPressed: print("move left") + } + \endcode + + See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. + + \sa KeyEvent +*/ + +/*! + \qmlproperty bool Keys::enabled + + This flags enables key handling if true (default); otherwise + no key handlers will be called. +*/ + +/*! + \qmlproperty List Keys::forwardTo + + This property provides a way to forward key presses, key releases, and keyboard input + coming from input methods to other items. This can be useful when you want + one item to handle some keys (e.g. the up and down arrow keys), and another item to + handle other keys (e.g. the left and right arrow keys). Once an item that has been + forwarded keys accepts the event it is no longer forwarded to items later in the + list. + + This example forwards key events to two lists: + \qml + ListView { id: list1 ... } + ListView { id: list2 ... } + Keys.forwardTo: [list1, list2] + focus: true + \endqml +*/ + +/*! + \qmlsignal Keys::onPressed(event) + + This handler is called when a key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onReleased(event) + + This handler is called when a key has been released. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit0Pressed(event) + + This handler is called when the digit '0' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit1Pressed(event) + + This handler is called when the digit '1' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit2Pressed(event) + + This handler is called when the digit '2' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit3Pressed(event) + + This handler is called when the digit '3' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit4Pressed(event) + + This handler is called when the digit '4' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit5Pressed(event) + + This handler is called when the digit '5' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit6Pressed(event) + + This handler is called when the digit '6' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit7Pressed(event) + + This handler is called when the digit '7' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit8Pressed(event) + + This handler is called when the digit '8' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit9Pressed(event) + + This handler is called when the digit '9' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onLeftPressed(event) + + This handler is called when the Left arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onRightPressed(event) + + This handler is called when the Right arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onUpPressed(event) + + This handler is called when the Up arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDownPressed(event) + + This handler is called when the Down arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onAsteriskPressed(event) + + This handler is called when the Asterisk '*' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onEscapePressed(event) + + This handler is called when the Escape key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onReturnPressed(event) + + This handler is called when the Return key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onEnterPressed(event) + + This handler is called when the Enter key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDeletePressed(event) + + This handler is called when the Delete key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onSpacePressed(event) + + This handler is called when the Space key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onBackPressed(event) + + This handler is called when the Back key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onCancelPressed(event) + + This handler is called when the Cancel key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onSelectPressed(event) + + This handler is called when the Select key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onYesPressed(event) + + This handler is called when the Yes key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onNoPressed(event) + + This handler is called when the No key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext1Pressed(event) + + This handler is called when the Context1 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext2Pressed(event) + + This handler is called when the Context2 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext3Pressed(event) + + This handler is called when the Context3 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext4Pressed(event) + + This handler is called when the Context4 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onCallPressed(event) + + This handler is called when the Call key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onHangupPressed(event) + + This handler is called when the Hangup key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onFlipPressed(event) + + This handler is called when the Flip key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onMenuPressed(event) + + This handler is called when the Menu key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onVolumeUpPressed(event) + + This handler is called when the VolumeUp key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onVolumeDownPressed(event) + + This handler is called when the VolumeDown key has been pressed. The \a event + parameter provides information about the event. +*/ + + +class QmlGraphicsKeysAttachedPrivate : public QObjectPrivate +{ +public: + QmlGraphicsKeysAttachedPrivate() + : QObjectPrivate(), inPress(false), inRelease(false) + , inIM(false), enabled(true), imeItem(0), item(0) + {} + + bool isConnected(const char *signalName); + + QGraphicsItem *finalFocusProxy(QGraphicsItem *item) const + { + QGraphicsItem *fp; + while ((fp = item->focusProxy())) + item = fp; + return item; + } + + //loop detection + bool inPress:1; + bool inRelease:1; + bool inIM:1; + + bool enabled : 1; + + QGraphicsItem *imeItem; + QList targets; + QmlGraphicsItem *item; +}; + +class QmlGraphicsKeysAttached : public QObject, public QmlGraphicsItemKeyFilter +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsKeysAttached) + + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(QList *forwardTo READ forwardTo) + +public: + QmlGraphicsKeysAttached(QObject *parent=0); + ~QmlGraphicsKeysAttached(); + + bool enabled() const { Q_D(const QmlGraphicsKeysAttached); return d->enabled; } + void setEnabled(bool enabled) { + Q_D(QmlGraphicsKeysAttached); + if (enabled != d->enabled) { + d->enabled = enabled; + emit enabledChanged(); + } + } + + QList *forwardTo() { + Q_D(QmlGraphicsKeysAttached); + return &d->targets; + } + + virtual void componentComplete(); + + static QmlGraphicsKeysAttached *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void enabledChanged(); + void pressed(QmlGraphicsKeyEvent *event); + void released(QmlGraphicsKeyEvent *event); + void digit0Pressed(QmlGraphicsKeyEvent *event); + void digit1Pressed(QmlGraphicsKeyEvent *event); + void digit2Pressed(QmlGraphicsKeyEvent *event); + void digit3Pressed(QmlGraphicsKeyEvent *event); + void digit4Pressed(QmlGraphicsKeyEvent *event); + void digit5Pressed(QmlGraphicsKeyEvent *event); + void digit6Pressed(QmlGraphicsKeyEvent *event); + void digit7Pressed(QmlGraphicsKeyEvent *event); + void digit8Pressed(QmlGraphicsKeyEvent *event); + void digit9Pressed(QmlGraphicsKeyEvent *event); + + void leftPressed(QmlGraphicsKeyEvent *event); + void rightPressed(QmlGraphicsKeyEvent *event); + void upPressed(QmlGraphicsKeyEvent *event); + void downPressed(QmlGraphicsKeyEvent *event); + + void asteriskPressed(QmlGraphicsKeyEvent *event); + void numberSignPressed(QmlGraphicsKeyEvent *event); + void escapePressed(QmlGraphicsKeyEvent *event); + void returnPressed(QmlGraphicsKeyEvent *event); + void enterPressed(QmlGraphicsKeyEvent *event); + void deletePressed(QmlGraphicsKeyEvent *event); + void spacePressed(QmlGraphicsKeyEvent *event); + void backPressed(QmlGraphicsKeyEvent *event); + void cancelPressed(QmlGraphicsKeyEvent *event); + void selectPressed(QmlGraphicsKeyEvent *event); + void yesPressed(QmlGraphicsKeyEvent *event); + void noPressed(QmlGraphicsKeyEvent *event); + void context1Pressed(QmlGraphicsKeyEvent *event); + void context2Pressed(QmlGraphicsKeyEvent *event); + void context3Pressed(QmlGraphicsKeyEvent *event); + void context4Pressed(QmlGraphicsKeyEvent *event); + void callPressed(QmlGraphicsKeyEvent *event); + void hangupPressed(QmlGraphicsKeyEvent *event); + void flipPressed(QmlGraphicsKeyEvent *event); + void menuPressed(QmlGraphicsKeyEvent *event); + void volumeUpPressed(QmlGraphicsKeyEvent *event); + void volumeDownPressed(QmlGraphicsKeyEvent *event); + +private: + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + const QByteArray keyToSignal(int key) { + QByteArray keySignal; + if (key >= Qt::Key_0 && key <= Qt::Key_9) { + keySignal = "digit0Pressed"; + keySignal[5] = '0' + (key - Qt::Key_0); + } else { + int i = 0; + while (sigMap[i].key && sigMap[i].key != key) + ++i; + keySignal = sigMap[i].sig; + } + return keySignal; + } + + struct SigMap { + int key; + const char *sig; + }; + + static const SigMap sigMap[]; +}; + +const QmlGraphicsKeysAttached::SigMap QmlGraphicsKeysAttached::sigMap[] = { + { Qt::Key_Left, "leftPressed" }, + { Qt::Key_Right, "rightPressed" }, + { Qt::Key_Up, "upPressed" }, + { Qt::Key_Down, "downPressed" }, + { Qt::Key_Asterisk, "asteriskPressed" }, + { Qt::Key_NumberSign, "numberSignPressed" }, + { Qt::Key_Escape, "escapePressed" }, + { Qt::Key_Return, "returnPressed" }, + { Qt::Key_Enter, "enterPressed" }, + { Qt::Key_Delete, "deletePressed" }, + { Qt::Key_Space, "spacePressed" }, + { Qt::Key_Back, "backPressed" }, + { Qt::Key_Cancel, "cancelPressed" }, + { Qt::Key_Select, "selectPressed" }, + { Qt::Key_Yes, "yesPressed" }, + { Qt::Key_No, "noPressed" }, + { Qt::Key_Context1, "context1Pressed" }, + { Qt::Key_Context2, "context2Pressed" }, + { Qt::Key_Context3, "context3Pressed" }, + { Qt::Key_Context4, "context4Pressed" }, + { Qt::Key_Call, "callPressed" }, + { Qt::Key_Hangup, "hangupPressed" }, + { Qt::Key_Flip, "flipPressed" }, + { Qt::Key_Menu, "menuPressed" }, + { Qt::Key_VolumeUp, "volumeUpPressed" }, + { Qt::Key_VolumeDown, "volumeDownPressed" }, + { 0, 0 } +}; + +bool QmlGraphicsKeysAttachedPrivate::isConnected(const char *signalName) +{ + return isSignalConnected(signalIndex(signalName)); +} + +QmlGraphicsKeysAttached::QmlGraphicsKeysAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeysAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) +{ + Q_D(QmlGraphicsKeysAttached); + d->item = qobject_cast(parent); +} + +QmlGraphicsKeysAttached::~QmlGraphicsKeysAttached() +{ +} + +void QmlGraphicsKeysAttached::componentComplete() +{ + Q_D(QmlGraphicsKeysAttached); + if (d->item) { + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *targetItem = d->finalFocusProxy(d->targets.at(ii)); + if (targetItem && (targetItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { + d->item->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + break; + } + } + } +} + +void QmlGraphicsKeysAttached::keyPressed(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (!d->enabled || d->inPress) { + event->ignore(); + return; + } + + // first process forwards + if (d->item && d->item->scene()) { + d->inPress = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->inPress = false; + return; + } + } + } + d->inPress = false; + } + + QmlGraphicsKeyEvent ke(*event); + QByteArray keySignal = keyToSignal(event->key()); + if (!keySignal.isEmpty()) { + keySignal += "(QmlGraphicsKeyEvent*)"; + if (d->isConnected(keySignal)) { + // If we specifically handle a key then default to accepted + ke.setAccepted(true); + int idx = QmlGraphicsKeysAttached::staticMetaObject.indexOfSignal(keySignal); + metaObject()->method(idx).invoke(this, Q_ARG(QmlGraphicsKeysAttached, &ke)); + } + } + if (!ke.isAccepted()) + emit pressed(&ke); + event->setAccepted(ke.isAccepted()); + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); +} + +void QmlGraphicsKeysAttached::keyReleased(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (!d->enabled || d->inRelease) { + event->ignore(); + return; + } + + if (d->item && d->item->scene()) { + d->inRelease = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->inRelease = false; + return; + } + } + } + d->inRelease = false; + } + + QmlGraphicsKeyEvent ke(*event); + emit released(&ke); + event->setAccepted(ke.isAccepted()); + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); +} + +void QmlGraphicsKeysAttached::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (d->item && !d->inIM && d->item->scene()) { + d->inIM = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->imeItem = i; + d->inIM = false; + return; + } + } + } + d->inIM = false; + } + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::inputMethodEvent(event); +} + +class QmlGraphicsItemAccessor : public QGraphicsItem +{ +public: + QVariant doInputMethodQuery(Qt::InputMethodQuery query) const { + return QGraphicsItem::inputMethodQuery(query); + } +}; + +QVariant QmlGraphicsKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const +{ + Q_D(const QmlGraphicsKeysAttached); + if (d->item) { + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod) && i == d->imeItem) { //### how robust is i == d->imeItem check? + QVariant v = static_cast(i)->doInputMethodQuery(query); + if (v.type() == QVariant::RectF) + v = d->item->mapRectFromItem(i, v.toRectF()); //### cost? + return v; + } + } + } + return QmlGraphicsItemKeyFilter::inputMethodQuery(query); +} + +QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject *obj) +{ + return new QmlGraphicsKeysAttached(obj); +} + +/*! + \class QmlGraphicsItem + \brief The QmlGraphicsItem class provides the most basic of all visual items in QML. + + All visual items in Qt Declarative inherit from QmlGraphicsItem. Although QmlGraphicsItem + has no visual appearance, it defines all the properties that are + common across visual items - such as the x and y position, the + width and height, \l {anchor-layout}{anchoring} and key handling. + + You can subclass QmlGraphicsItem to provide your own custom visual item that inherits + these features. +*/ + +/*! + \qmlclass Item QmlGraphicsItem + \brief The Item is the most basic of all visual items in QML. + + All visual items in Qt Declarative inherit from Item. Although Item + has no visual appearance, it defines all the properties that are + common across visual items - such as the x and y position, the + width and height, \l {anchor-layout}{anchoring} and key handling. + + Item is also useful for grouping items together. + + \qml + Item { + Image { + file: "tile.png" + } + Image { + x: 80 + width: 100 + height: 100 + file: "tile.png" + } + Image { + x: 190 + width: 100 + height: 100 + tile: true + file: "tile.png" + } + } + \endqml + + \section1 Key Handling + + Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} + attached property. The \e Keys attached property provides basic handlers such + as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, + as well as handlers for specific keys, such as + \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below + assigns \l {qmlfocus}{focus} to the item and handles + the Left key via the general \e onPressed handler and the Select key via the + onSelectPressed handler: + + \qml + Item { + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_Left) { + print("move left"); + event.accepted = true; + } + } + Keys.onSelectPressed: print("Selected"); + } + \endqml + + See the \l {Keys}{Keys} attached property for detailed documentation. + + \ingroup group_coreitems +*/ + +/*! + \property QmlGraphicsItem::baseline + \internal +*/ + +/*! + \property QmlGraphicsItem::effect + \internal +*/ + +/*! + \property QmlGraphicsItem::focus + \internal +*/ + +/*! + \property QmlGraphicsItem::wantsFocus + \internal +*/ + +/*! + \property QmlGraphicsItem::transformOrigin + \internal +*/ + +/*! + \fn void QmlGraphicsItem::childrenRectChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::baselineOffsetChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::widthChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::heightChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::stateChanged(const QString &state) + \internal +*/ + +/*! + \fn void QmlGraphicsItem::parentChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::focusChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::wantsFocusChanged() + \internal +*/ + +static inline void qfxitem_registerAnchorLine() { + static bool registered = false; + if (!registered) { + qRegisterMetaType("QmlGraphicsAnchorLine"); + registered = true; + } +} + +/*! + \fn QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem *parent) + + Constructs a QmlGraphicsItem with the given \a parent. +*/ +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem* parent) + : QGraphicsObject(*(new QmlGraphicsItemPrivate), parent, 0) +{ + Q_D(QmlGraphicsItem); + qfxitem_registerAnchorLine(); + d->init(parent); +} + +/*! \internal +*/ +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent) + : QGraphicsObject(dd, parent, 0) +{ + Q_D(QmlGraphicsItem); + qfxitem_registerAnchorLine(); + d->init(parent); +} + +/*! + Destroys the QmlGraphicsItem. +*/ +QmlGraphicsItem::~QmlGraphicsItem() +{ + Q_D(QmlGraphicsItem); + for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->clearItem(this); + } + if (!d->parent || (parentItem() && !parentItem()->QGraphicsItem::d_ptr->inDestructor)) + for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + if (anchor->d_func()->item && anchor->d_func()->item->parentItem() != this) //child will be deleted anyway + anchor->d_func()->updateOnComplete(); + } + d->dependantAnchors.clear(); + delete d->_anchorLines; d->_anchorLines = 0; + delete d->_anchors; d->_anchors = 0; +} + +/*! + \qmlproperty enum Item::transformOrigin + This property holds the origin point around which scale and rotation transform. + + Nine transform origins are available, as shown in the image below. + + \image declarative-transformorigin.png + + This example scales an image about its center. + \qml + Image { + source: "myimage.png" + transformOrigin: Item.Center + scale: 4 + } + \endqml + + The default transform origin is \c TopLeft. +*/ + +/*! + \qmlproperty Item Item::parent + This property holds the parent of the item. +*/ + +/*! + \property QmlGraphicsItem::parent + This property holds the parent of the item. +*/ +void QmlGraphicsItem::setParentItem(QmlGraphicsItem *parent) +{ + QmlGraphicsItem *oldParent = parentItem(); + if (parent == oldParent || !parent) return; + + QObject::setParent(parent); + QGraphicsObject::setParentItem(parent); +} + +/*! + Returns the QmlGraphicsItem parent of this item. +*/ +QmlGraphicsItem *QmlGraphicsItem::parentItem() const +{ + return qobject_cast(QGraphicsObject::parentItem()); +} + +/*! + \qmlproperty list Item::children + \qmlproperty list Item::resources + + The children property contains the list of visual children of this item. + The resources property contains non-visual resources that you want to + reference by name. + + Generally you can rely on Item's default property to handle all this for + you, but it can come in handy in some cases. + + \qml + Item { + children: [ + Text {}, + Rectangle {} + ] + resources: [ + Component { + id: myComponent + Text {} + } + ] + } + \endqml +*/ + +/*! + \property QmlGraphicsItem::children + \internal +*/ + +/*! + \property QmlGraphicsItem::resources + \internal +*/ + +/*! + Returns true if construction of the QML component is complete; otherwise + returns false. + + It is often desireable to delay some processing until the component is + completed. + + \sa componentComplete() +*/ +bool QmlGraphicsItem::isComponentComplete() const +{ + Q_D(const QmlGraphicsItem); + return d->_componentComplete; +} + +/*! + \property QmlGraphicsItem::anchors + \internal +*/ + +/*! \internal */ +QmlGraphicsAnchors *QmlGraphicsItem::anchors() +{ + Q_D(QmlGraphicsItem); + return d->anchors(); +} + +void QmlGraphicsItemPrivate::data_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::data_count() const +{ + // ### + return 0; +} + +void QmlGraphicsItemPrivate::data_append(QObject *o) +{ + Q_Q(QmlGraphicsItem); + QmlGraphicsItem *i = qobject_cast(o); + if (i) + q->fxChildren()->append(i); + else + resources_append(o); +} + +void QmlGraphicsItemPrivate::data_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsItemPrivate::data_at(int) const +{ + // ### + return 0; +} + +void QmlGraphicsItemPrivate::data_clear() +{ + // ### +} + +void QmlGraphicsItemPrivate::resources_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::resources_count() const +{ + Q_Q(const QmlGraphicsItem); + return q->children().count(); +} + +void QmlGraphicsItemPrivate::resources_append(QObject *o) +{ + Q_Q(QmlGraphicsItem); + o->setParent(q); +} + +void QmlGraphicsItemPrivate::resources_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsItemPrivate::resources_at(int idx) const +{ + Q_Q(const QmlGraphicsItem); + QObjectList children = q->children(); + if (idx < children.count()) + return children.at(idx); + else + return 0; +} + +void QmlGraphicsItemPrivate::resources_clear() +{ + // ### +} + +void QmlGraphicsItemPrivate::children_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::children_count() const +{ + Q_Q(const QmlGraphicsItem); + return q->childItems().count(); +} + +void QmlGraphicsItemPrivate::children_append(QmlGraphicsItem *i) +{ + Q_Q(QmlGraphicsItem); + i->setParentItem(q); +} + +void QmlGraphicsItemPrivate::children_insert(int, QmlGraphicsItem *) +{ + // ### +} + +QmlGraphicsItem *QmlGraphicsItemPrivate::children_at(int idx) const +{ + Q_Q(const QmlGraphicsItem); + QList children = q->childItems(); + if (idx < children.count()) + return qobject_cast(children.at(idx)); + else + return 0; +} + +void QmlGraphicsItemPrivate::children_clear() +{ + // ### +} + + +void QmlGraphicsItemPrivate::transform_removeAt(int i) +{ + if (!transformData) + return; + transformData->graphicsTransforms.removeAt(i); + dirtySceneTransform = 1; +} + +int QmlGraphicsItemPrivate::transform_count() const +{ + return transformData ? transformData->graphicsTransforms.size() : 0; +} + +void QmlGraphicsItemPrivate::transform_append(QGraphicsTransform *item) +{ + appendGraphicsTransform(item); +} + +void QmlGraphicsItemPrivate::transform_insert(int, QGraphicsTransform *) +{ + // ### +} + +QGraphicsTransform *QmlGraphicsItemPrivate::transform_at(int idx) const +{ + if (!transformData) + return 0; + return transformData->graphicsTransforms.at(idx); +} + +void QmlGraphicsItemPrivate::transform_clear() +{ + if (!transformData) + return; + Q_Q(QmlGraphicsItem); + q->setTransformations(QList()); +} + +/*! + \qmlproperty list Item::data + \default + + The data property is allows you to freely mix visual children and resources + of an item. If you assign a visual item to the data list it becomes + a child and if you assign any other object type, it is added as a resource. + + So you can write: + \qml + Item { + Text {} + Rectangle {} + Script {} + } + \endqml + + instead of: + \qml + Item { + children: [ + Text {}, + Rectangle {} + ] + resources: [ + Script {} + ] + } + \endqml + + data is a behind-the-scenes property: you should never need to explicitly + specify it. + */ + +/*! + \property QmlGraphicsItem::data + \internal +*/ + +/*! \internal */ +QmlList *QmlGraphicsItem::data() +{ + Q_D(QmlGraphicsItem); + return &d->data; +} + +/*! + \property QmlGraphicsItem::childrenRect + \brief The geometry of an item's children. + + childrenRect provides an easy way to access the (collective) position and size of the item's children. +*/ +QRectF QmlGraphicsItem::childrenRect() +{ + Q_D(QmlGraphicsItem); + if (!d->_contents) { + d->_contents = new QmlGraphicsContents; + d->_contents->setParent(this); + d->_contents->setItem(this); + } + return d->_contents->rectF(); +} + +bool QmlGraphicsItem::clip() const +{ + return flags() & ItemClipsChildrenToShape; +} + +void QmlGraphicsItem::setClip(bool c) +{ + setFlag(ItemClipsChildrenToShape, c); +} + +/*! + \qmlproperty real Item::x + \qmlproperty real Item::y + \qmlproperty real Item::width + \qmlproperty real Item::height + + Defines the item's position and size relative to its parent. + + \qml + Item { x: 100; y: 100; width: 100; height: 100 } + \endqml + */ + +/*! + \property QmlGraphicsItem::width + + Defines the item's width relative to its parent. + */ + +/*! + \property QmlGraphicsItem::height + + Defines the item's height relative to its parent. + */ + +/*! + \qmlproperty real Item::z + + Sets the stacking order of the item. By default the stacking order is 0. + + Items with a higher stacking value are drawn on top of items with a + lower stacking order. Items with the same stacking value are drawn + bottom up in the order they appear. Items with a negative stacking + value are drawn under their parent's content. + + The following example shows the various effects of stacking order. + + \table + \row + \o \image declarative-item_stacking1.png + \o Same \c z - later children above earlier children: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + } + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + \endqml + \row + \o \image declarative-item_stacking2.png + \o Higher \c z on top: + \qml + Item { + Rectangle { + z: 1 + color: "red" + width: 100; height: 100 + } + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + \endqml + \row + \o \image declarative-item_stacking3.png + \o Same \c z - children above parents: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \row + \o \image declarative-item_stacking4.png + \o Lower \c z below: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + z: -1 + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \endtable + */ + +/*! + This function is called to handle this item's changes in + geometry from \a oldGeometry to \a newGeometry. If the two + geometries are the same, it doesn't do anything. + */ +void QmlGraphicsItem::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + Q_D(QmlGraphicsItem); + + if (d->_anchors) + d->_anchors->d_func()->updateMe(); + + if (transformOrigin() != QmlGraphicsItem::TopLeft) + setTransformOriginPoint(d->computeTransformOrigin()); + + if (newGeometry.x() != oldGeometry.x()) + emit xChanged(); + if (newGeometry.width() != oldGeometry.width()) + emit widthChanged(); + if (newGeometry.y() != oldGeometry.y()) + emit yChanged(); + if (newGeometry.height() != oldGeometry.height()) + emit heightChanged(); + + for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->update(this, newGeometry, oldGeometry); + } +} + +/*! \internal */ +void QmlGraphicsItem::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->keyPressed(event); + else + event->ignore(); +} + +/*! \internal */ +void QmlGraphicsItem::keyReleaseEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->keyReleased(event); + else + event->ignore(); +} + +/*! \internal */ +void QmlGraphicsItem::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->inputMethodEvent(event); + else + event->ignore(); +} + +/*! \internal */ +QVariant QmlGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const +{ + Q_D(const QmlGraphicsItem); + QVariant v; + if (d->keyHandler) + v = d->keyHandler->inputMethodQuery(query); + + if (!v.isValid()) + v = QGraphicsObject::inputMethodQuery(query); + + return v; +} + +/*! + \qmlproperty string Item::id + This property holds the identifier for the item. + + The identifier can be used in bindings and other expressions to + refer to the item. For example: + + \qml + Text { id: myText; ... } + Text { text: myText.text } + \endqml + + The identifier is available throughout to the \l {components}{component} + where it is declared. The identifier must be unique in thecomponent. +*/ + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::left() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->left; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::right() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->right; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::horizontalCenter() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->hCenter; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::top() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->top; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::bottom() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->bottom; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::verticalCenter() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->vCenter; +} + + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->baseline; +} + +/*! + \property QmlGraphicsItem::top + \internal +*/ + +/*! + \property QmlGraphicsItem::bottom + \internal +*/ + +/*! + \property QmlGraphicsItem::left + \internal +*/ + +/*! + \property QmlGraphicsItem::right + \internal +*/ + +/*! + \property QmlGraphicsItem::horizontalCenter + \internal +*/ + +/*! + \property QmlGraphicsItem::verticalCenter + \internal +*/ + +/*! + \qmlproperty AnchorLine Item::top + \qmlproperty AnchorLine Item::bottom + \qmlproperty AnchorLine Item::left + \qmlproperty AnchorLine Item::right + \qmlproperty AnchorLine Item::horizontalCenter + \qmlproperty AnchorLine Item::verticalCenter + \qmlproperty AnchorLine Item::baseline + + The anchor lines of the item. + + For more information see \l {anchor-layout}{Anchor Layouts}. +*/ + +/*! + \qmlproperty AnchorLine Item::anchors.top + \qmlproperty AnchorLine Item::anchors.bottom + \qmlproperty AnchorLine Item::anchors.left + \qmlproperty AnchorLine Item::anchors.right + \qmlproperty AnchorLine Item::anchors.horizontalCenter + \qmlproperty AnchorLine Item::anchors.verticalCenter + \qmlproperty AnchorLine Item::anchors.baseline + + \qmlproperty Item Item::anchors.fill + \qmlproperty Item Item::anchors.centerIn + + \qmlproperty real Item::anchors.topMargin + \qmlproperty real Item::anchors.bottomMargin + \qmlproperty real Item::anchors.leftMargin + \qmlproperty real Item::anchors.rightMargin + \qmlproperty real Item::anchors.horizontalCenterOffset + \qmlproperty real Item::anchors.verticalCenterOffset + \qmlproperty real Item::anchors.baselineOffset + + Anchors provide a way to position an item by specifying its + relationship with other items. + + Margins apply to top, bottom, left, right, and fill anchors. + + Offsets apply for horizontal center, vertical center, and baseline anchors. + + \table + \row + \o \image declarative-anchors_example.png + \o Text anchored to Image, horizontally centered and vertically below, with a margin. + \qml + Image { id: pic; ... } + Text { + id: label + anchors.horizontalCenter: pic.horizontalCenter + anchors.top: pic.bottom + anchors.topMargin: 5 + ... + } + \endqml + \row + \o \image declarative-anchors_example2.png + \o + Left of Text anchored to right of Image, with a margin. The y + property of both defaults to 0. + + \qml + Image { id: pic; ... } + Text { + id: label + anchors.left: pic.right + anchors.leftMargin: 5 + ... + } + \endqml + \endtable + + anchors.fill provides a convenient way for one item to have the + same geometry as another item, and is equivalent to connecting all + four directional anchors. + + \note You can only anchor an item to siblings or a parent. + + For more information see \l {anchor-layout}{Anchor Layouts}. +*/ + +/*! + \property QmlGraphicsItem::baselineOffset + \brief The position of the item's baseline in local coordinates. + + The baseline of a Text item is the imaginary line on which the text + sits. Controls containing text usually set their baseline to the + baseline of their text. + + For non-text items, a default baseline offset of 0 is used. +*/ +qreal QmlGraphicsItem::baselineOffset() const +{ + Q_D(const QmlGraphicsItem); + if (!d->_baselineOffset.isValid()) { + return 0.0; + } else + return d->_baselineOffset; +} + +void QmlGraphicsItem::setBaselineOffset(qreal offset) +{ + Q_D(QmlGraphicsItem); + if (offset == d->_baselineOffset) + return; + + d->_baselineOffset = offset; + emit baselineOffsetChanged(); + + for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->updateVerticalAnchors(); + } +} + +/*! + \qmlproperty real Item::rotation + This property holds the rotation of the item in degrees clockwise. + + This specifies how many degrees to rotate the item around its transformOrigin. + The default rotation is 0 degrees (i.e. not rotated at all). + + \table + \row + \o \image declarative-rotation.png + \o + \qml + Rectangle { + color: "blue" + width: 100; height: 100 + Rectangle { + color: "green" + width: 25; height: 25 + } + Rectangle { + color: "red" + x: 25; y: 25; width: 50; height: 50 + rotation: 30 + } + } + \endqml + \endtable +*/ + +/*! + \qmlproperty real Item::scale + This property holds the scale of the item. + + A scale of less than 1 means the item will be displayed smaller than + normal, and a scale of greater than 1 means the item will be + displayed larger than normal. A negative scale means the item will + be mirrored. + + By default, items are displayed at a scale of 1 (i.e. at their + normal size). + + Scaling is from the item's transformOrigin. + + \table + \row + \o \image declarative-scale.png + \o + \qml + Rectangle { + color: "blue" + width: 100; height: 100 + Rectangle { + color: "green" + width: 25; height: 25 + } + Rectangle { + color: "red" + x: 25; y: 25; width: 50; height: 50 + scale: 1.4 + } + } + \endqml + \endtable +*/ + +/*! + \qmlproperty real Item::opacity + + The opacity of the item. Opacity is specified as a number between 0 + (fully transparent) and 1 (fully opaque). The default is 1. + + Opacity is an \e inherited attribute. That is, the opacity is + also applied individually to child items. In almost all cases this + is what you want. If you can spot the issue in the following + example, you might need to use an opacity filter (not yet available) instead. + + \table + \row + \o \image declarative-item_opacity1.png + \o + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \row + \o \image declarative-item_opacity2.png + \o + \qml + Item { + Rectangle { + opacity: 0.5 + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \endtable +*/ + +/*! + Returns a value indicating whether mouse input should + remain with this item exclusively. + + \sa setKeepMouseGrab() + */ +bool QmlGraphicsItem::keepMouseGrab() const +{ + Q_D(const QmlGraphicsItem); + return d->_keepMouse; +} + +/*! + The flag indicating whether the mouse should remain + with this item is set to \a keep. + + This is useful for items that wish to grab and keep mouse + interaction following a predefined gesture. For example, + an item that is interested in horizontal mouse movement + may set keepMouseGrab to true once a threshold has been + exceeded. Once keepMouseGrab has been set to true, filtering + items will not react to mouse events. + + If the item does not indicate that it wishes to retain mouse grab, + a filtering item may steal the grab. For example, Flickable may attempt + to steal a mouse grab if it detects that the user has begun to + move the viewport. + + \sa keepMouseGrab + */ +void QmlGraphicsItem::setKeepMouseGrab(bool keep) +{ + Q_D(QmlGraphicsItem); + d->_keepMouse = keep; +} + +/*! + \internal + + This function emits the \e focusChanged signal. + + Subclasses overriding this function should call up + to their base class. +*/ +void QmlGraphicsItem::focusChanged(bool flag) +{ + Q_UNUSED(flag); + emit focusChanged(); +} + +/*! \internal */ +QmlList *QmlGraphicsItem::fxChildren() +{ + Q_D(QmlGraphicsItem); + return &(d->children); +} + +/*! \internal */ +QmlList *QmlGraphicsItem::resources() +{ + Q_D(QmlGraphicsItem); + return &(d->resources); +} + +/*! + \qmlproperty list Item::states + This property holds a list of states defined by the item. + + \qml + Item { + states: [ + State { ... }, + State { ... } + ... + ] + } + \endqml + + \sa {qmlstate}{States} +*/ + +/*! + \property QmlGraphicsItem::states + \internal +*/ +/*! \internal */ +QmlList* QmlGraphicsItem::states() +{ + Q_D(QmlGraphicsItem); + return d->states()->statesProperty(); +} + +/*! + \qmlproperty list Item::transitions + This property holds a list of transitions defined by the item. + + \qml + Item { + transitions: [ + Transition { ... }, + Transition { ... } + ... + ] + } + \endqml + + \sa {state-transitions}{Transitions} +*/ + +/*! + \property QmlGraphicsItem::transitions + \internal +*/ + +/*! \internal */ +QmlList* QmlGraphicsItem::transitions() +{ + Q_D(QmlGraphicsItem); + return d->states()->transitionsProperty(); +} + +/* + \qmlproperty list Item::filter + This property holds a list of graphical filters to be applied to the item. + + \l {Filter}{Filters} include things like \l {Blur}{blurring} + the item, or giving it a \l Reflection. Some + filters may not be available on all canvases; if a filter is not + available on a certain canvas, it will simply not be applied for + that canvas (but the QML will still be considered valid). + + \qml + Item { + filter: [ + Blur { ... }, + Relection { ... } + ... + ] + } + \endqml +*/ + +/*! + \qmlproperty bool Item::clip + This property holds whether clipping is enabled. + + if clipping is enabled, an item will clip its own painting, as well + as the painting of its children, to its bounding rectangle. + + Non-rectangular clipping regions are not supported for performance reasons. +*/ + +/*! + \property QmlGraphicsItem::clip + This property holds whether clipping is enabled. + + if clipping is enabled, an item will clip its own painting, as well + as the painting of its children, to its bounding rectangle. + + Non-rectangular clipping regions are not supported for performance reasons. +*/ + +/*! + \qmlproperty string Item::state + + This property holds the name of the current state of the item. + + This property is often used in scripts to change between states. For + example: + + \qml + Script { + function toggle() { + if (button.state == 'On') + button.state = 'Off'; + else + button.state = 'On'; + } + } + \endqml + + If the item is in its base state (i.e. no explicit state has been + set), \c state will be a blank string. Likewise, you can return an + item to its base state by setting its current state to \c ''. + + \sa {qmlstates}{States} +*/ + +/*! + \property QmlGraphicsItem::state + \internal +*/ + +/*! \internal */ +QString QmlGraphicsItem::state() const +{ + Q_D(const QmlGraphicsItem); + if (!d->_stateGroup) + return QString(); + else + return d->_stateGroup->state(); +} + +/*! \internal */ +void QmlGraphicsItem::setState(const QString &state) +{ + Q_D(QmlGraphicsItem); + d->states()->setState(state); +} + +/*! + \qmlproperty list Item::transform + This property holds the list of transformations to apply. + + For more information see \l Transform. +*/ + +/*! + \property QmlGraphicsItem::transform + \internal +*/ + +/*! \internal */ +QmlList* QmlGraphicsItem::transform() +{ + Q_D(QmlGraphicsItem); + return &(d->transform); +} + +/*! + \internal + + classBegin() is called when the item is constructed, but its + properties have not yet been set. + + \sa componentComplete(), isComponentComplete() +*/ +void QmlGraphicsItem::classBegin() +{ + Q_D(QmlGraphicsItem); + d->_componentComplete = false; + if (d->_stateGroup) + d->_stateGroup->classBegin(); + if (d->_anchors) + d->_anchors->classBegin(); +} + +/*! + \internal + + componentComplete() is called when all items in the component + have been constructed. It is often desireable to delay some + processing until the component is complete an all bindings in the + component have been resolved. +*/ +void QmlGraphicsItem::componentComplete() +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + + Q_D(QmlGraphicsItem); + d->_componentComplete = true; + if (d->_stateGroup) + d->_stateGroup->componentComplete(); + if (d->_anchors) { + d->_anchors->componentComplete(); + d->_anchors->d_func()->updateOnComplete(); + } + if (d->keyHandler) + d->keyHandler->componentComplete(); +} + +QmlStateGroup *QmlGraphicsItemPrivate::states() +{ + Q_Q(QmlGraphicsItem); + if (!_stateGroup) { + _stateGroup = new QmlStateGroup(q); + if (!_componentComplete) + _stateGroup->classBegin(); + QObject::connect(_stateGroup, SIGNAL(stateChanged(QString)), + q, SIGNAL(stateChanged(QString))); + } + + return _stateGroup; +} + +QmlGraphicsItemPrivate::AnchorLines::AnchorLines(QmlGraphicsItem *q) +{ + left.item = q; + left.anchorLine = QmlGraphicsAnchorLine::Left; + right.item = q; + right.anchorLine = QmlGraphicsAnchorLine::Right; + hCenter.item = q; + hCenter.anchorLine = QmlGraphicsAnchorLine::HCenter; + top.item = q; + top.anchorLine = QmlGraphicsAnchorLine::Top; + bottom.item = q; + bottom.anchorLine = QmlGraphicsAnchorLine::Bottom; + vCenter.item = q; + vCenter.anchorLine = QmlGraphicsAnchorLine::VCenter; + baseline.item = q; + baseline.anchorLine = QmlGraphicsAnchorLine::Baseline; +} + +QPointF QmlGraphicsItemPrivate::computeTransformOrigin() const +{ + Q_Q(const QmlGraphicsItem); + + QRectF br = q->boundingRect(); + + switch(origin) { + default: + case QmlGraphicsItem::TopLeft: + return QPointF(0, 0); + case QmlGraphicsItem::Top: + return QPointF(br.width() / 2., 0); + case QmlGraphicsItem::TopRight: + return QPointF(br.width(), 0); + case QmlGraphicsItem::Left: + return QPointF(0, br.height() / 2.); + case QmlGraphicsItem::Center: + return QPointF(br.width() / 2., br.height() / 2.); + case QmlGraphicsItem::Right: + return QPointF(br.width(), br.height() / 2.); + case QmlGraphicsItem::BottomLeft: + return QPointF(0, br.height()); + case QmlGraphicsItem::Bottom: + return QPointF(br.width() / 2., br.height()); + case QmlGraphicsItem::BottomRight: + return QPointF(br.width(), br.height()); + } +} + +/*! \internal */ +bool QmlGraphicsItem::sceneEvent(QEvent *event) +{ + bool rv = QGraphicsItem::sceneEvent(event); + + if (event->type() == QEvent::FocusIn || + event->type() == QEvent::FocusOut) { + focusChanged(hasFocus()); + } + + return rv; +} + +/*! \internal */ +QVariant QmlGraphicsItem::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + if (change == ItemParentHasChanged) { + emit parentChanged(); + } + + return QGraphicsItem::itemChange(change, value); +} + +/*! \internal */ +QRectF QmlGraphicsItem::boundingRect() const +{ + Q_D(const QmlGraphicsItem); + return QRectF(0, 0, d->width, d->height); +} + +/*! + \enum QmlGraphicsItem::TransformOrigin + + Controls the point about which simple transforms like scale apply. + + \value TopLeft The top-left corner of the item. + \value Top The center point of the top of the item. + \value TopRight The top-right corner of the item. + \value Left The left most point of the vertical middle. + \value Center The center of the item. + \value Right The right most point of the vertical middle. + \value BottomLeft The bottom-left corner of the item. + \value Bottom The center point of the bottom of the item. + \value BottomRight The bottom-right corner of the item. +*/ + +/*! + Returns the current transform origin. +*/ +QmlGraphicsItem::TransformOrigin QmlGraphicsItem::transformOrigin() const +{ + Q_D(const QmlGraphicsItem); + return d->origin; +} + +/*! + Set the transform \a origin. +*/ +void QmlGraphicsItem::setTransformOrigin(TransformOrigin origin) +{ + Q_D(QmlGraphicsItem); + if (origin != d->origin) { + d->origin = origin; + QGraphicsItem::setTransformOriginPoint(d->computeTransformOrigin()); + } +} + +/*! + \property QmlGraphicsItem::smooth + \brief whether the item is smoothly transformed. + + This property is provided purely for the purpose of optimization. Turning + smooth transforms off is faster, but looks worse; turning smooth + transformations on is slower, but looks better. + + By default smooth transformations are off. +*/ + +/*! + Returns true if the item should be drawn with antialiasing and + smooth pixmap filtering, false otherwise. + + The default is false. + + \sa setSmoothTransform() +*/ +bool QmlGraphicsItem::smoothTransform() const +{ + Q_D(const QmlGraphicsItem); + return d->smooth; +} + +/*! + Sets whether the item should be drawn with antialiasing and + smooth pixmap filtering to \a smooth. + + \sa smoothTransform() +*/ +void QmlGraphicsItem::setSmoothTransform(bool smooth) +{ + Q_D(QmlGraphicsItem); + if (d->smooth == smooth) + return; + d->smooth = smooth; + update(); +} + +qreal QmlGraphicsItem::width() const +{ + Q_D(const QmlGraphicsItem); + return d->width; +} + +void QmlGraphicsItem::setWidth(qreal w) +{ + Q_D(QmlGraphicsItem); + d->widthValid = true; + if (d->width == w) + return; + + qreal oldWidth = d->width; + + prepareGeometryChange(); + d->width = w; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), oldWidth, height())); +} + +void QmlGraphicsItem::resetWidth() +{ + Q_D(QmlGraphicsItem); + d->widthValid = false; + setImplicitWidth(implicitWidth()); +} + +qreal QmlGraphicsItem::implicitWidth() const +{ + Q_D(const QmlGraphicsItem); + return d->implicitWidth; +} + +void QmlGraphicsItem::setImplicitWidth(qreal w) +{ + Q_D(QmlGraphicsItem); + d->implicitWidth = w; + if (d->width == w || widthValid()) + return; + + qreal oldWidth = d->width; + + prepareGeometryChange(); + d->width = w; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), oldWidth, height())); +} + +bool QmlGraphicsItem::widthValid() const +{ + Q_D(const QmlGraphicsItem); + return d->widthValid; +} + +qreal QmlGraphicsItem::height() const +{ + Q_D(const QmlGraphicsItem); + return d->height; +} + +void QmlGraphicsItem::setHeight(qreal h) +{ + Q_D(QmlGraphicsItem); + d->heightValid = true; + if (d->height == h) + return; + + qreal oldHeight = d->height; + + prepareGeometryChange(); + d->height = h; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), width(), oldHeight)); +} + +void QmlGraphicsItem::resetHeight() +{ + Q_D(QmlGraphicsItem); + d->heightValid = false; + setImplicitHeight(implicitHeight()); +} + +qreal QmlGraphicsItem::implicitHeight() const +{ + Q_D(const QmlGraphicsItem); + return d->implicitHeight; +} + +void QmlGraphicsItem::setImplicitHeight(qreal h) +{ + Q_D(QmlGraphicsItem); + d->implicitHeight = h; + if (d->height == h || heightValid()) + return; + + qreal oldHeight = d->height; + + prepareGeometryChange(); + d->height = h; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), width(), oldHeight)); +} + +bool QmlGraphicsItem::heightValid() const +{ + Q_D(const QmlGraphicsItem); + return d->heightValid; +} + +/*! + \qmlproperty bool Item::wantsFocus + + This property indicates whether the item has has an active focus request. +*/ + +/*! \internal */ +bool QmlGraphicsItem::wantsFocus() const +{ + return focusItem() != 0; +} + +/*! + \qmlproperty bool Item::focus + This property indicates whether the item has keyboard input focus. Set this + property to true to request focus. +*/ + +/*! \internal */ +bool QmlGraphicsItem::hasFocus() const +{ + return QGraphicsItem::hasFocus(); +} + +/*! \internal */ +void QmlGraphicsItem::setFocus(bool focus) +{ + if (focus) + QGraphicsItem::setFocus(Qt::OtherFocusReason); + else + QGraphicsItem::clearFocus(); +} + +/*! + \reimp + \internal +*/ +void QmlGraphicsItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) +{ +} + +/*! + \reimp + \internal +*/ +bool QmlGraphicsItem::event(QEvent *ev) +{ + return QGraphicsObject::event(ev); +} + +QDebug operator<<(QDebug debug, QmlGraphicsItem *item) +{ + if (!item) { + debug << "QmlGraphicsItem(0)"; + return debug; + } + + debug << item->metaObject()->className() << "(this =" << ((void*)item) + << ", parent =" << ((void*)item->parentItem()) + << ", geometry =" << QRectF(item->pos(), QSizeF(item->width(), item->height())) + << ", z =" << item->zValue() << ")"; + return debug; +} + +int QmlGraphicsItemPrivate::consistentTime = -1; +void QmlGraphicsItemPrivate::setConsistentTime(int t) +{ + consistentTime = t; +} + +QTime QmlGraphicsItemPrivate::currentTime() +{ + if (consistentTime == -1) + return QTime::currentTime(); + else + return QTime(0, 0).addMSecs(consistentTime); +} + +void QmlGraphicsItemPrivate::start(QTime &t) +{ + t = currentTime(); +} + +int QmlGraphicsItemPrivate::elapsed(QTime &t) +{ + int n = t.msecsTo(currentTime()); + if (n < 0) // passed midnight + n += 86400 * 1000; + return n; +} + +int QmlGraphicsItemPrivate::restart(QTime &t) +{ + QTime time = currentTime(); + int n = t.msecsTo(time); + if (n < 0) // passed midnight + n += 86400*1000; + t = time; + return n; +} + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsKeysAttached) +QML_DECLARE_TYPEINFO(QmlGraphicsKeysAttached, QML_HAS_ATTACHED_PROPERTIES) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) +QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) + +#include "moc_qmlgraphicsitem.cpp" +#include "qfxitem.moc" diff --git a/src/declarative/fx/qmlgraphicsitem.h b/src/declarative/fx/qmlgraphicsitem.h new file mode 100644 index 0000000..0672dd6 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsitem.h @@ -0,0 +1,238 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSITEM_H +#define QMLGRAPHICSITEM_H + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlState; +class QmlGraphicsAnchorLine; +class QmlTransition; +class QmlGraphicsKeyEvent; +class QmlGraphicsAnchors; +class QmlGraphicsItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsItem : public QGraphicsObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QmlGraphicsItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) + Q_PROPERTY(QmlList *data READ data DESIGNABLE false) + Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) + Q_PROPERTY(QmlList* resources READ resources DESIGNABLE false) + Q_PROPERTY(QmlList* states READ states DESIGNABLE false) + Q_PROPERTY(QmlList* transitions READ transitions DESIGNABLE false) + Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) + Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged RESET resetWidth FINAL) + Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged RESET resetHeight FINAL) + Q_PROPERTY(QRectF childrenRect READ childrenRect NOTIFY childrenRectChanged DESIGNABLE false FINAL) + Q_PROPERTY(QmlGraphicsAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline CONSTANT FINAL) + Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged) + Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY + Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL) + Q_PROPERTY(bool wantsFocus READ wantsFocus NOTIFY wantsFocusChanged) + Q_PROPERTY(QmlList* transform READ transform DESIGNABLE false FINAL) + Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin) + Q_PROPERTY(bool smooth READ smoothTransform WRITE setSmoothTransform) + Q_PROPERTY(QGraphicsEffect *effect READ graphicsEffect WRITE setGraphicsEffect) + Q_ENUMS(TransformOrigin) + Q_CLASSINFO("DefaultProperty", "data") + +public: + enum TransformOrigin { + TopLeft, Top, TopRight, + Left, Center, Right, + BottomLeft, Bottom, BottomRight + }; + + QmlGraphicsItem(QmlGraphicsItem *parent = 0); + virtual ~QmlGraphicsItem(); + + QmlGraphicsItem *parentItem() const; + void setParentItem(QmlGraphicsItem *parent); + void setParent(QmlGraphicsItem *parent) { setParentItem(parent); } + + QmlList *data(); + QmlList *fxChildren(); + QmlList *resources(); + + QmlGraphicsAnchors *anchors(); + QRectF childrenRect(); + + bool clip() const; + void setClip(bool); + + QmlList* states(); + QmlList* transitions(); + + QString state() const; + void setState(const QString &); + + qreal baselineOffset() const; + void setBaselineOffset(qreal); + + QmlList *transform(); + + qreal width() const; + void setWidth(qreal); + void resetWidth(); + qreal implicitWidth() const; + + qreal height() const; + void setHeight(qreal); + void resetHeight(); + qreal implicitHeight() const; + + TransformOrigin transformOrigin() const; + void setTransformOrigin(TransformOrigin); + + bool smoothTransform() const; + void setSmoothTransform(bool); + + QRectF boundingRect() const; + virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + bool wantsFocus() const; + bool hasFocus() const; + void setFocus(bool); + + bool keepMouseGrab() const; + void setKeepMouseGrab(bool); + +Q_SIGNALS: + void widthChanged(); + void heightChanged(); + void childrenRectChanged(); + void baselineOffsetChanged(); + void stateChanged(const QString &); + void focusChanged(); + void wantsFocusChanged(); + void parentChanged(); + +protected: + bool isComponentComplete() const; + virtual bool sceneEvent(QEvent *); + virtual bool event(QEvent *); + virtual QVariant itemChange(GraphicsItemChange, const QVariant &); + + void setImplicitWidth(qreal); + bool widthValid() const; // ### better name? + void setImplicitHeight(qreal); + bool heightValid() const; // ### better name? + + virtual void classBegin(); + virtual void componentComplete(); + virtual void focusChanged(bool); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + +protected: + QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent = 0); + +private: + // ### public? + QmlGraphicsAnchorLine left() const; + QmlGraphicsAnchorLine right() const; + QmlGraphicsAnchorLine horizontalCenter() const; + QmlGraphicsAnchorLine top() const; + QmlGraphicsAnchorLine bottom() const; + QmlGraphicsAnchorLine verticalCenter() const; + QmlGraphicsAnchorLine baseline() const; + + friend class QmlStatePrivate; + friend class QmlGraphicsAnchors; + Q_DISABLE_COPY(QmlGraphicsItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) +}; + +template + T qobject_cast(QGraphicsObject *o) +{ + QObject *obj = o; + return qobject_cast(obj); +} + +// ### move to QGO +template +T qobject_cast(QGraphicsItem *item) +{ + if (!item) return 0; + QObject *o = item->toGraphicsObject(); + return qobject_cast(o); +} + +QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QmlGraphicsItem *item); + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsItem) +QML_DECLARE_TYPE(QGraphicsTransform) +QML_DECLARE_TYPE(QGraphicsScale) +QML_DECLARE_TYPE(QGraphicsRotation) + +QT_END_HEADER + +#endif // QMLGRAPHICSITEM_H diff --git a/src/declarative/fx/qmlgraphicsitem_p.h b/src/declarative/fx/qmlgraphicsitem_p.h new file mode 100644 index 0000000..799374a --- /dev/null +++ b/src/declarative/fx/qmlgraphicsitem_p.h @@ -0,0 +1,245 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSITEM_P_H +#define QMLGRAPHICSITEM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsItemKeyFilter; + +//### merge into private? +class QmlGraphicsContents : public QObject +{ + Q_OBJECT +public: + QmlGraphicsContents(); + + QRectF rectF() const; + + void setItem(QmlGraphicsItem *item); + +public Q_SLOTS: + void calcHeight(); + void calcWidth(); + +Q_SIGNALS: + void rectChanged(); + +private: + QmlGraphicsItem *m_item; + qreal m_x; + qreal m_y; + qreal m_width; + qreal m_height; +}; + +class QmlGraphicsItemPrivate : public QGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsItem) + +public: + QmlGraphicsItemPrivate() + : _anchors(0), _contents(0), + _baselineOffset(0), + _anchorLines(0), + _stateGroup(0), origin(QmlGraphicsItem::TopLeft), + widthValid(false), heightValid(false), + _componentComplete(true), _keepMouse(false), + smooth(false), keyHandler(0), + width(0), height(0), implicitWidth(0), implicitHeight(0) + {} + ~QmlGraphicsItemPrivate() + { delete _anchors; } + + void init(QmlGraphicsItem *parent) + { + Q_Q(QmlGraphicsItem); + + if (parent) + q->setParentItem(parent); + _baselineOffset.invalidate(); + q->setAcceptedMouseButtons(Qt::NoButton); + q->setFlags(QGraphicsItem::ItemHasNoContents | + QGraphicsItem::ItemIsFocusable | + QGraphicsItem::ItemNegativeZStacksBehindParent); + mouseSetsFocus = false; + } + + QString _id; + + // data property + void data_removeAt(int); + int data_count() const; + void data_append(QObject *); + void data_insert(int, QObject *); + QObject *data_at(int) const; + void data_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, data) + + // resources property + void resources_removeAt(int); + int resources_count() const; + void resources_append(QObject *); + void resources_insert(int, QObject *); + QObject *resources_at(int) const; + void resources_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, resources) + + // children property + void children_removeAt(int); + int children_count() const; + void children_append(QmlGraphicsItem *); + void children_insert(int, QmlGraphicsItem *); + QmlGraphicsItem *children_at(int) const; + void children_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QmlGraphicsItem *, children) + + // transform property + void transform_removeAt(int); + int transform_count() const; + void transform_append(QGraphicsTransform *); + void transform_insert(int, QGraphicsTransform *); + QGraphicsTransform *transform_at(int) const; + void transform_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QGraphicsTransform *, transform) + + QmlGraphicsAnchors *anchors() { + if (!_anchors) { + Q_Q(QmlGraphicsItem); + _anchors = new QmlGraphicsAnchors; + _anchors->setItem(q); + if (!_componentComplete) + _anchors->classBegin(); + } + return _anchors; + } + QList dependantAnchors; + QmlGraphicsAnchors *_anchors; + QmlGraphicsContents *_contents; + + QmlNullableValue _baselineOffset; + + struct AnchorLines { + AnchorLines(QmlGraphicsItem *); + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine baseline; + }; + mutable AnchorLines *_anchorLines; + AnchorLines *anchorLines() const { + Q_Q(const QmlGraphicsItem); + if (!_anchorLines) _anchorLines = + new AnchorLines(const_cast(q)); + return _anchorLines; + } + + QmlStateGroup *states(); + QmlStateGroup *_stateGroup; + + QmlGraphicsItem::TransformOrigin origin:4; + bool widthValid:1; + bool heightValid:1; + bool _componentComplete:1; + bool _keepMouse:1; + bool smooth:1; + + QmlGraphicsItemKeyFilter *keyHandler; + + qreal width; + qreal height; + qreal implicitWidth; + qreal implicitHeight; + + QPointF computeTransformOrigin() const; + + virtual void setPosHelper(const QPointF &pos) + { + Q_Q(QmlGraphicsItem); + QRectF oldGeometry(this->pos.x(), this->pos.y(), width, height); + QGraphicsItemPrivate::setPosHelper(pos); + q->geometryChanged(QRectF(this->pos.x(), this->pos.y(), width, height), oldGeometry); + } + + // Reimplemented from QGraphicsItemPrivate + virtual void subFocusItemChange() + { + emit q_func()->wantsFocusChanged(); + } + + static int consistentTime; + static QTime currentTime(); + static void Q_DECLARATIVE_EXPORT setConsistentTime(int t); + static void start(QTime &); + static int elapsed(QTime &); + static int restart(QTime &); +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSITEM_P_H diff --git a/src/declarative/fx/qmlgraphicslayoutitem.cpp b/src/declarative/fx/qmlgraphicslayoutitem.cpp new file mode 100644 index 0000000..b75f787 --- /dev/null +++ b/src/declarative/fx/qmlgraphicslayoutitem.cpp @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicslayoutitem.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QmlGraphicsLayoutItem) + +/*! + \qmlclass LayoutItem QmlGraphicsLayoutItem + \brief The LayoutItem element allows you to place your Fluid UI elements inside a classical Qt layout. +*/ + +/*! + \internal + \class QmlGraphicsLayoutItem + \brief The QmlGraphicsLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. +*/ + + +/*! + \qmlproperty QSizeF LayoutItem::maximumSize + + The maximumSize property can be set to specify the maximum desired size of this LayoutItem +*/ + +/*! + \qmlproperty QSizeF LayoutItem::minimumSize + + The minimumSize property can be set to specify the minimum desired size of this LayoutItem +*/ + +/*! + \qmlproperty QSizeF LayoutItem::preferredSize + + The preferredSize property can be set to specify the preferred size of this LayoutItem +*/ + +QmlGraphicsLayoutItem::QmlGraphicsLayoutItem(QmlGraphicsItem* parent) + : QmlGraphicsItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) +{ + setGraphicsItem(this); +} + +void QmlGraphicsLayoutItem::setGeometry(const QRectF & rect) +{ + setX(rect.x()); + setY(rect.y()); + setWidth(rect.width()); + setHeight(rect.height()); +} + +QSizeF QmlGraphicsLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const +{ + Q_UNUSED(constraint); + if(w == Qt::MinimumSize){ + return m_minimumSize; + }else if(w == Qt::MaximumSize){ + return m_maximumSize; + }else{ + return m_preferredSize; + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicslayoutitem.h b/src/declarative/fx/qmlgraphicslayoutitem.h new file mode 100644 index 0000000..184001a --- /dev/null +++ b/src/declarative/fx/qmlgraphicslayoutitem.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#define QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayoutItem) + Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) + Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) + Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) +public: + QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); + + QSizeF maximumSize() const { return m_maximumSize; } + void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } + + QSizeF minimumSize() const { return m_minimumSize; } + void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } + + QSizeF preferredSize() const { return m_preferredSize; } + void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } + + virtual void setGeometry(const QRectF & rect); +protected: + virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; + +Q_SIGNALS: + void maximumSizeChanged(); + void minimumSizeChanged(); + void preferredSizeChanged(); + +private: + QSizeF m_maximumSize; + QSizeF m_minimumSize; + QSizeF m_preferredSize; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsLayoutItem) + +QT_END_HEADER +#endif diff --git a/src/declarative/fx/qmlgraphicslistview.cpp b/src/declarative/fx/qmlgraphicslistview.cpp new file mode 100644 index 0000000..62ca23d --- /dev/null +++ b/src/declarative/fx/qmlgraphicslistview.cpp @@ -0,0 +1,2035 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "private/qmlgraphicsflickable_p.h" +#include "qmleasefollow.h" +#include "qlistmodelinterface.h" +#include "qmlgraphicsvisualitemmodel.h" +#include "qmlgraphicslistview.h" +#include + +#include + +QT_BEGIN_NAMESPACE +class QmlGraphicsListViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsListViewAttached(QObject *parent) + : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {} + ~QmlGraphicsListViewAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(QmlGraphicsListView *view READ view CONSTANT) + QmlGraphicsListView *view() { return m_view; } + + Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) + bool isCurrentItem() const { return m_isCurrent; } + void setIsCurrentItem(bool c) { + if (m_isCurrent != c) { + m_isCurrent = c; + emit currentItemChanged(); + } + } + + Q_PROPERTY(QString prevSection READ prevSection NOTIFY prevSectionChanged) + QString prevSection() const { return m_prevSection; } + void setPrevSection(const QString §) { + if (m_prevSection != sect) { + m_prevSection = sect; + emit prevSectionChanged(); + } + } + + Q_PROPERTY(QString section READ section NOTIFY sectionChanged) + QString section() const { return m_section; } + void setSection(const QString §) { + if (m_section != sect) { + m_section = sect; + emit sectionChanged(); + } + } + + Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) + bool delayRemove() const { return m_delayRemove; } + void setDelayRemove(bool delay) { + if (m_delayRemove != delay) { + m_delayRemove = delay; + emit delayRemoveChanged(); + } + } + + static QmlGraphicsListViewAttached *properties(QObject *obj) { + QmlGraphicsListViewAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsListViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + + void emitAdd() { emit add(); } + void emitRemove() { emit remove(); } + +Q_SIGNALS: + void currentItemChanged(); + void sectionChanged(); + void prevSectionChanged(); + void delayRemoveChanged(); + void add(); + void remove(); + +public: + QmlGraphicsListView *m_view; + bool m_isCurrent; + mutable QString m_section; + QString m_prevSection; + bool m_delayRemove; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsListViewAttached::attachedProperties; + +//---------------------------------------------------------------------------- + +class FxListItem +{ +public: + FxListItem(QmlGraphicsItem *i, QmlGraphicsListView *v) : item(i), view(v) { + attached = QmlGraphicsListViewAttached::properties(item); + attached->m_view = view; + } + ~FxListItem() {} + + qreal position() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() : item->x()); } + int size() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->height() : item->width()); } + qreal endPosition() const { + return (view->orientation() == QmlGraphicsListView::Vertical + ? item->y() + (item->height() > 0 ? item->height() : 1) + : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; + } + void setPosition(qreal pos) { + if (view->orientation() == QmlGraphicsListView::Vertical) { + item->setY(pos); + } else { + item->setX(pos); + } + } + + QmlGraphicsItem *item; + QmlGraphicsListView *view; + QmlGraphicsListViewAttached *attached; + int index; +}; + +//---------------------------------------------------------------------------- + +class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsListView) + +public: + QmlGraphicsListViewPrivate() + : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical) + , visiblePos(0), visibleIndex(0) + , averageSize(100.0), currentIndex(-1), requestedIndex(-1) + , highlightRangeStart(0), highlightRangeEnd(0) + , highlightComponent(0), highlight(0), trackedItem(0) + , moveReason(Other), buffer(0), highlightPosAnimator(0), highlightSizeAnimator(0), spacing(0.0) + , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QmlGraphicsListView::NoHighlightRange) + , ownModel(false), wrap(false), autoHighlight(true) + , haveHighlightRange(false) + {} + + void init(); + void clear(); + FxListItem *createItem(int modelIndex); + void releaseItem(FxListItem *item); + + FxListItem *visibleItem(int modelIndex) const { + if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { + for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems.at(i); + if (item->index == modelIndex) + return item; + } + } + return 0; + } + + qreal position() const { + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->viewportY() : q->viewportX(); + } + void setPosition(qreal pos) { + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) + q->setViewportY(pos); + else + q->setViewportX(pos); + } + qreal size() const { + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->height() : q->width(); + } + + qreal startPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) { + pos = visibleItems.first()->position(); + if (visibleIndex > 0) + pos -= visibleIndex * (averageSize + spacing) - spacing; + } + return pos; + } + + qreal endPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) { + int invisibleCount = visibleItems.count() - visibleIndex; + for (int i = visibleItems.count()-1; i >= 0; --i) { + if (visibleItems.at(i)->index != -1) { + invisibleCount = model->count() - visibleItems.at(i)->index - 1; + break; + } + } + pos = visibleItems.last()->endPosition() + invisibleCount * (averageSize + spacing); + } + return pos; + } + + qreal positionAt(int modelIndex) const { + if (FxListItem *item = visibleItem(modelIndex)) + return item->position(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int count = visibleIndex - modelIndex; + return visibleItems.first()->position() - count * (averageSize + spacing); + } else { + int idx = visibleItems.count() - 1; + while (idx >= 0 && visibleItems.at(idx)->index == -1) + --idx; + if (idx < 0) + idx = visibleIndex; + else + idx = visibleItems.at(idx)->index; + int count = modelIndex - idx - 1; + return visibleItems.last()->endPosition() + spacing + count * (averageSize + spacing) + 1; + } + } + return 0; + } + + QString sectionAt(int modelIndex) { + Q_Q(QmlGraphicsListView); + if (FxListItem *item = visibleItem(modelIndex)) + return item->attached->section(); + QString section; + if (!sectionExpression.isEmpty()) + section = model->evaluate(modelIndex, sectionExpression, q).toString(); + return section; + } + + bool isValid() const { + return model && model->count() && model->isValid(); + } + + int snapIndex() { + int index = currentIndex; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems[i]; + if (item->index == -1) + continue; + qreal itemTop = item->position(); + if (itemTop >= highlight->position()-item->size()/2 && itemTop < highlight->position()+item->size()/2) + return item->index; + } + return index; + } + + //XXX Rough. Only works for fixed size items. + qreal snapPosAt(qreal pos) { + return qRound((pos - startPosition()) / averageSize) * averageSize + startPosition(); + } + + int lastVisibleIndex() const { + int lastIndex = -1; + for (int i = visibleItems.count()-1; i >= 0; --i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index != -1) { + lastIndex = listItem->index; + break; + } + } + return lastIndex; + } + + // map a model index to visibleItems index. + // These may differ if removed items are still present in the visible list, + // e.g. doing a removal animation + int mapFromModel(int modelIndex) const { + if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) + return -1; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index == modelIndex) + return i + visibleIndex; + if (listItem->index > modelIndex) + return -1; + } + return -1; // Not in visibleList + } + + bool mapRangeFromModel(int &index, int &count) const { + if (index + count < visibleIndex) + return false; + + int lastIndex = -1; + for (int i = visibleItems.count()-1; i >= 0; --i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index != -1) { + lastIndex = listItem->index; + break; + } + } + + if (index > lastIndex) + return false; + + int last = qMin(index + count - 1, lastIndex); + index = qMax(index, visibleIndex); + count = last - index + 1; + + return true; + } + + void updateViewport() { + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } + + + // for debugging only + void checkVisible() const { + int skip = 0; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index == -1) { + ++skip; + } else if (listItem->index != visibleIndex + i - skip) { + qFatal("index %d %d %d", visibleIndex, i, listItem->index); + } + } + } + + void refill(qreal from, qreal to); + void layout(); + void updateUnrequestedIndexes(); + void updateUnrequestedPositions(); + void updateTrackedItem(); + void createHighlight(); + void updateHighlight(); + void updateSections(); + void updateCurrentSection(); + void updateCurrent(int); + void updateAverage(); + void fixupPosition(); + virtual void fixupY(); + virtual void fixupX(); + virtual void flickX(qreal velocity); + virtual void flickY(qreal velocity); + + QmlGraphicsVisualModel *model; + QVariant modelVariant; + QList visibleItems; + QHash unrequestedItems; + FxListItem *currentItem; + QmlGraphicsListView::Orientation orient; + int visiblePos; + int visibleIndex; + qreal averageSize; + int currentIndex; + int requestedIndex; + qreal highlightRangeStart; + qreal highlightRangeEnd; + QmlComponent *highlightComponent; + FxListItem *highlight; + FxListItem *trackedItem; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; + int buffer; + QmlEaseFollow *highlightPosAnimator; + QmlEaseFollow *highlightSizeAnimator; + QString sectionExpression; + QString currentSection; + qreal spacing; + qreal highlightMoveSpeed; + qreal highlightResizeSpeed; + QmlGraphicsListView::HighlightRangeMode highlightRange; + + bool ownModel : 1; + bool wrap : 1; + bool autoHighlight : 1; + bool haveHighlightRange : 1; +}; + +void QmlGraphicsListViewPrivate::init() +{ + Q_Q(QmlGraphicsListView); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(refill())); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(refill())); +} + +void QmlGraphicsListViewPrivate::clear() +{ + for (int i = 0; i < visibleItems.count(); ++i) + releaseItem(visibleItems.at(i)); + visibleItems.clear(); + visiblePos = 0; + visibleIndex = 0; + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + createHighlight(); + trackedItem = 0; +} + +FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex) +{ + Q_Q(QmlGraphicsListView); + // create object + requestedIndex = modelIndex; + FxListItem *listItem = 0; + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { + listItem = new FxListItem(item, q); + listItem->index = modelIndex; + // initialise attached properties + if (!sectionExpression.isEmpty()) { + QmlExpression e(qmlContext(listItem->item), sectionExpression, q); + e.setTrackChange(false); + listItem->attached->m_section = e.value().toString(); + if (modelIndex > 0) { + if (FxListItem *item = visibleItem(modelIndex-1)) + listItem->attached->m_prevSection = item->attached->section(); + else + listItem->attached->m_prevSection = sectionAt(modelIndex-1); + } + } + // complete + model->completeItem(); + listItem->item->setZValue(1); + listItem->item->setParent(q->viewport()); + if (orient == QmlGraphicsListView::Vertical) + QObject::connect(listItem->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); + else + QObject::connect(listItem->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); + } + requestedIndex = -1; + + return listItem; +} + +void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item) +{ + Q_Q(QmlGraphicsListView); + if (!item) + return; + if (trackedItem == item) { + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + if (model->release(item->item) == 0) { + // item was not destroyed, and we no longer reference it. + unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + if (orient == QmlGraphicsListView::Vertical) + QObject::disconnect(item->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); + else + QObject::disconnect(item->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); + } + delete item; +} + +void QmlGraphicsListViewPrivate::refill(qreal from, qreal to) +{ + Q_Q(QmlGraphicsListView); + if (!isValid() || !q->isComponentComplete()) + return; + from -= buffer; + to += buffer; + int modelIndex = 0; + qreal itemEnd = visiblePos-1; + if (!visibleItems.isEmpty()) { + visiblePos = visibleItems.first()->position(); + itemEnd = visibleItems.last()->endPosition() + spacing; + int i = visibleItems.count() - 1; + while (i > 0 && visibleItems.at(i)->index == -1) + --i; + modelIndex = visibleItems.at(i)->index + 1; + } + + bool changed = false; + FxListItem *item = 0; + int pos = itemEnd + 1; + while (modelIndex < model->count() && pos <= to) { + //qDebug() << "refill: append item" << modelIndex; + if (!(item = createItem(modelIndex))) + break; + item->setPosition(pos); + pos += item->size() + spacing; + visibleItems.append(item); + ++modelIndex; + changed = true; + } + while (visibleIndex > 0 && visibleIndex <= model->count() && visiblePos > from) { + //qDebug() << "refill: prepend item" << visibleIndex-1 << "current top pos" << visiblePos; + if (!(item = createItem(visibleIndex-1))) + break; + --visibleIndex; + visiblePos -= item->size() + spacing; + item->setPosition(visiblePos); + visibleItems.prepend(item); + changed = true; + } + + while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endPosition() < from) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endPosition(); + if (item->index != -1) + visibleIndex++; + visibleItems.removeFirst(); + releaseItem(item); + changed = true; + } + while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->position() > to) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; + visibleItems.removeLast(); + releaseItem(item); + changed = true; + } + if (changed) { + if (visibleItems.count()) + visiblePos = visibleItems.first()->position(); + updateAverage(); + if (!sectionExpression.isEmpty()) + updateCurrentSection(); + updateViewport(); + } +} + +void QmlGraphicsListViewPrivate::layout() +{ + Q_Q(QmlGraphicsListView); + if (!visibleItems.isEmpty()) { + int oldEnd = visibleItems.last()->endPosition(); + int pos = visibleItems.first()->endPosition() + spacing + 1; + for (int i=1; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems.at(i); + item->setPosition(pos); + pos += item->size() + spacing; + } + // move current item if it is after the visible items. + if (currentItem && currentIndex > lastVisibleIndex()) + currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd)); + } + if (!isValid()) + return; + q->refill(); + updateHighlight(); + fixupPosition(); + updateUnrequestedPositions(); + updateViewport(); +} + +void QmlGraphicsListViewPrivate::updateUnrequestedIndexes() +{ + Q_Q(QmlGraphicsListView); + QHash::iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) + *it = model->indexOf(it.key(), q); +} + +void QmlGraphicsListViewPrivate::updateUnrequestedPositions() +{ + QHash::const_iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { + if (visibleItem(*it)) + continue; + if (orient == QmlGraphicsListView::Vertical) + it.key()->setY(positionAt(*it)); + else + it.key()->setX(positionAt(*it)); + } +} + +void QmlGraphicsListViewPrivate::updateTrackedItem() +{ + Q_Q(QmlGraphicsListView); + FxListItem *item = currentItem; + if (highlight) + item = highlight; + + FxListItem *oldTracked = trackedItem; + + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + + if (trackedItem && item != trackedItem) { + QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + + if (!trackedItem && item) { + trackedItem = item; + QObject::connect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::connect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + } + if (trackedItem && trackedItem != oldTracked) + q->trackedPositionChanged(); +} + +void QmlGraphicsListViewPrivate::createHighlight() +{ + Q_Q(QmlGraphicsListView); + if (highlight) { + if (trackedItem == highlight) + trackedItem = 0; + delete highlight->item; + delete highlight; + highlight = 0; + delete highlightPosAnimator; + delete highlightSizeAnimator; + highlightPosAnimator = 0; + highlightSizeAnimator = 0; + } + + if (currentItem) { + QmlGraphicsItem *item = 0; + if (highlightComponent) { + QmlContext *highlightContext = new QmlContext(qmlContext(q)); + QObject *nobj = highlightComponent->create(highlightContext); + if (nobj) { + highlightContext->setParent(nobj); + item = qobject_cast(nobj); + if (!item) { + delete nobj; + } else { + item->setParent(q->viewport()); + } + } else { + delete highlightContext; + } + } else { + item = new QmlGraphicsItem; + item->setParent(q->viewport()); + } + if (item) { + item->setZValue(0); + highlight = new FxListItem(item, q); + if (orient == QmlGraphicsListView::Vertical) + highlight->item->setHeight(currentItem->item->height()); + else + highlight->item->setWidth(currentItem->item->width()); + const QLatin1String posProp(orient == QmlGraphicsListView::Vertical ? "y" : "x"); + highlightPosAnimator = new QmlEaseFollow(q); + highlightPosAnimator->setTarget(QmlMetaProperty(highlight->item, posProp)); + highlightPosAnimator->setVelocity(highlightMoveSpeed); + highlightPosAnimator->setEnabled(autoHighlight); + const QLatin1String sizeProp(orient == QmlGraphicsListView::Vertical ? "height" : "width"); + highlightSizeAnimator = new QmlEaseFollow(q); + highlightSizeAnimator->setVelocity(highlightResizeSpeed); + highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); + highlightSizeAnimator->setEnabled(autoHighlight); + } + } +} + +void QmlGraphicsListViewPrivate::updateHighlight() +{ + if ((!currentItem && highlight) || (currentItem && !highlight)) + createHighlight(); + if (currentItem && autoHighlight && highlight && !moving) { + // auto-update highlight + highlightPosAnimator->setSourceValue(currentItem->position()); + highlightSizeAnimator->setSourceValue(currentItem->size()); + if (orient == QmlGraphicsListView::Vertical) { + if (highlight->item->width() == 0) + highlight->item->setWidth(currentItem->item->width()); + } else { + if (highlight->item->height() == 0) + highlight->item->setHeight(currentItem->item->height()); + } + } + updateTrackedItem(); +} + +void QmlGraphicsListViewPrivate::updateSections() +{ + if (!sectionExpression.isEmpty()) { + QString prevSection; + if (visibleIndex > 0) + prevSection = sectionAt(visibleIndex-1); + for (int i = 0; i < visibleItems.count(); ++i) { + if (visibleItems.at(i)->index != -1) { + QmlGraphicsListViewAttached *attached = visibleItems.at(i)->attached; + attached->setPrevSection(prevSection); + prevSection = attached->section(); + } + } + } +} + +void QmlGraphicsListViewPrivate::updateCurrentSection() +{ + if (sectionExpression.isEmpty() || visibleItems.isEmpty()) { + currentSection = QString(); + return; + } + int index = 0; + while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count()) + ++index; + + if (index < visibleItems.count()) + currentSection = visibleItems.at(index)->attached->section(); + else + currentSection = visibleItems.first()->attached->section(); +} + +void QmlGraphicsListViewPrivate::updateCurrent(int modelIndex) +{ + Q_Q(QmlGraphicsListView); + if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { + if (currentItem) { + currentItem->attached->setIsCurrentItem(false); + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + updateHighlight(); + emit q->currentIndexChanged(); + } + return; + } + + if (currentItem && currentIndex == modelIndex) { + updateHighlight(); + return; + } + FxListItem *oldCurrentItem = currentItem; + currentIndex = modelIndex; + currentItem = createItem(modelIndex); + if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) + oldCurrentItem->attached->setIsCurrentItem(false); + if (currentItem) { + if (modelIndex == visibleIndex - 1) { + // We can calculate exact postion in this case + currentItem->setPosition(visibleItems.first()->position() - currentItem->size() - spacing); + } else { + // Create current item now and position as best we can. + // Its position will be corrected when it becomes visible. + currentItem->setPosition(positionAt(modelIndex)); + } + currentItem->item->setFocus(true); + currentItem->attached->setIsCurrentItem(true); + } + updateHighlight(); + emit q->currentIndexChanged(); + // Release the old current item + releaseItem(oldCurrentItem); +} + +void QmlGraphicsListViewPrivate::updateAverage() +{ + if (!visibleItems.count()) + return; + qreal sum = 0.0; + for (int i = 0; i < visibleItems.count(); ++i) + sum += visibleItems.at(i)->size(); + averageSize = sum / visibleItems.count(); +} + +void QmlGraphicsListViewPrivate::fixupPosition() +{ + if (orient == QmlGraphicsListView::Vertical) + fixupY(); + else + fixupX(); +} + +void QmlGraphicsListViewPrivate::fixupY() +{ + QmlGraphicsFlickablePrivate::fixupY(); + if (orient == QmlGraphicsListView::Horizontal) + return; + + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { + if (currentItem && highlight && currentItem->position() != highlight->position()) { + moveReason = Mouse; + timeline.clear(); + timeline.move(_moveY, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); + } + } +} + +void QmlGraphicsListViewPrivate::fixupX() +{ + QmlGraphicsFlickablePrivate::fixupX(); + if (orient == QmlGraphicsListView::Vertical) + return; + + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { + if (currentItem && highlight && currentItem->position() != highlight->position()) { + moveReason = Mouse; + timeline.clear(); + timeline.move(_moveX, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); + } + } +} + +void QmlGraphicsListViewPrivate::flickX(qreal velocity) +{ + Q_Q(QmlGraphicsListView); + + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickX(velocity); + return; + } + + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveX.value() < q->minXExtent()) + maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); + flickTargetX = q->minXExtent(); + } else { + if (_moveX.value() > q->maxXExtent()) + maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); + flickTargetX = q->maxXExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + qreal accel = deceleration; + qreal v2 = v * v; + qreal maxAccel = v2 / (2.0f * maxDistance); + if (maxAccel < accel) { + // If we are not flicking to the end then attempt to stop exactly on an item boundary + qreal dist = v2 / accel / 2.0; + if (v > 0) + dist = -dist; + dist = -_moveX.value() - snapPosAt(-(_moveX.value() - highlightRangeStart) + dist) + highlightRangeStart; + if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + timeline.reset(_moveX); + fixupX(); + return; + } + accel = v2 / (2.0f * qAbs(dist)); + } + timeline.reset(_moveX); + timeline.accel(_moveX, v, accel, maxDistance); + timeline.execute(fixupXEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveX); + fixupX(); + } +} + +void QmlGraphicsListViewPrivate::flickY(qreal velocity) +{ + Q_Q(QmlGraphicsListView); + + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickY(velocity); + return; + } + + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveY.value() < q->minYExtent()) + maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); + flickTargetY = q->minYExtent(); + } else { + if (_moveY.value() > q->maxYExtent()) + maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); + flickTargetY = q->maxYExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + qreal accel = deceleration; + qreal v2 = v * v; + qreal maxAccel = v2 / (2.0f * maxDistance); + if (maxAccel < accel) { + // If we are not flicking to the end then attempt to stop exactly on an item boundary + qreal dist = v2 / accel / 2.0; + if (v > 0) + dist = -dist; + dist = -_moveY.value() - snapPosAt(-(_moveY.value() - highlightRangeStart) + dist) + highlightRangeStart; + if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + timeline.reset(_moveY); + fixupY(); + return; + } + accel = v2 / (2.0f * qAbs(dist)); + } + timeline.reset(_moveY); + timeline.accel(_moveY, v, accel, maxDistance); + timeline.execute(fixupYEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveY); + fixupY(); + } +} + +//---------------------------------------------------------------------------- + +/*! + \qmlclass ListView + \inherits Flickable + \brief The ListView item provides a list view of items provided by a model. + + The model is typically provided by a QAbstractListModel "C++ model object", + but can also be created directly in QML. The items are laid out vertically + or horizontally and may be flicked to scroll. + + The below example creates a very simple vertical list, using a QML model. + \image trivialListView.png + + The user interface defines a delegate to display an item, a highlight, + and the ListView which uses the above. + + \snippet doc/src/snippets/declarative/listview/listview.qml 3 + + The model is defined as a ListModel using QML: + \quotefile doc/src/snippets/declarative/listview/dummydata/ContactModel.qml + + In this case ListModel is a handy way for us to test our UI. In practice + the model would be implemented in C++, or perhaps via a SQL data source. +*/ + +QmlGraphicsListView::QmlGraphicsListView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsListViewPrivate), parent) +{ + Q_D(QmlGraphicsListView); + d->init(); +} + +QmlGraphicsListView::~QmlGraphicsListView() +{ + Q_D(QmlGraphicsListView); + d->clear(); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlattachedproperty bool ListView::isCurrentItem + This attched property is true if this delegate is the current item; otherwise false. + + It is attached to each instance of the delegate. + + This property may be used to adjust the appearance of the current item, for example: + + \snippet doc/src/snippets/declarative/listview/highlight.qml 0 +*/ + +/*! + \qmlattachedproperty ListView ListView::view + This attached property holds the view that manages this delegate instance. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty string ListView::prevSection + This attached property holds the section of the previous element. + + It is attached to each instance of the delegate. + + The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. +*/ + +/*! + \qmlattachedproperty string ListView::section + This attached property holds the section of this element. + + It is attached to each instance of the delegate. + + The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. +*/ + +/*! + \qmlattachedproperty bool ListView::delayRemove + This attached property holds whether the delegate may be destroyed. + + It is attached to each instance of the delegate. + + It is sometimes necessary to delay the destruction of an item + until an animation completes. + + The example below ensures that the animation completes before + the item is removed from the list. + + \code + Component { + id: myDelegate + Item { + id: wrapper + ListView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } + } + } + } + \endcode +*/ + +/*! + \qmlattachedsignal ListView::onAdd() + This attached handler is called immediately after an item is added to the view. +*/ + +/*! + \qmlattachedsignal ListView::onRemove() + This attached handler is called immediately before an item is removed from the view. +*/ + +/*! + \qmlproperty model ListView::model + This property holds the model providing data for the list. + + The model provides a set of data that is used to create the items + for the view. For large or dynamic datasets the model is usually + provided by a C++ model object. The C++ model object must be a \l + {QAbstractItemModel} subclass or a simple list. + + Models can also be created directly in QML, using a \l{ListModel}, + \l{XmlListModel} or \l{VisualItemModel}. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsListView::model() const +{ + Q_D(const QmlGraphicsListView); + return d->modelVariant; +} + +void QmlGraphicsListView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsListView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + } + d->clear(); + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + if (d->currentIndex >= d->model->count() || d->currentIndex < 0) + setCurrentIndex(0); + else + d->updateCurrent(d->currentIndex); + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + refill(); + emit countChanged(); + } +} + +/*! + \qmlproperty component ListView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/listview/listview.qml 0 +*/ +QmlComponent *QmlGraphicsListView::delegate() const +{ + Q_D(const QmlGraphicsListView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsListView::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsListView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + d->updateCurrent(d->currentIndex); + refill(); + } +} + +/*! + \qmlproperty int ListView::currentIndex + \qmlproperty Item ListView::currentItem + + \c currentIndex holds the index of the current item. + \c currentItem is the current item. Note that the position of the current item + may only be approximate until it becomes visible in the view. +*/ +int QmlGraphicsListView::currentIndex() const +{ + Q_D(const QmlGraphicsListView); + return d->currentIndex; +} + +void QmlGraphicsListView::setCurrentIndex(int index) +{ + Q_D(QmlGraphicsListView); + d->moveReason = QmlGraphicsListViewPrivate::Other; + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); + d->updateCurrent(index); + } else { + d->currentIndex = index; + } +} + +QmlGraphicsItem *QmlGraphicsListView::currentItem() +{ + Q_D(QmlGraphicsListView); + if (!d->currentItem) + return 0; + return d->currentItem->item; +} + +/*! + \qmlproperty int ListView::count + This property holds the number of items in the view. +*/ +int QmlGraphicsListView::count() const +{ + Q_D(const QmlGraphicsListView); + if (d->model) + return d->model->count(); + return 0; +} + +/*! + \qmlproperty component ListView::highlight + This property holds the component to use as the highlight. + + An instance of the highlight component will be created for each list. + The geometry of the resultant component instance will be managed by the list + so as to stay with the current item, unless the highlightFollowsCurrentItem + property is false. + + The below example demonstrates how to make a simple highlight + for a vertical list. + + \snippet doc/src/snippets/declarative/listview/listview.qml 1 + \image trivialListView.png + + \sa highlightFollowsCurrentItem +*/ +QmlComponent *QmlGraphicsListView::highlight() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightComponent; +} + +void QmlGraphicsListView::setHighlight(QmlComponent *highlight) +{ + Q_D(QmlGraphicsListView); + delete d->highlightComponent; + d->highlightComponent = highlight; + d->updateCurrent(d->currentIndex); +} + +/*! + \qmlproperty bool ListView::highlightFollowsCurrentItem + This property holds whether the highlight is managed by the view. + + If highlightFollowsCurrentItem is true, the highlight will be moved smoothly + to follow the current item. If highlightFollowsCurrentItem is false, the + highlight will not be moved by the view, and must be implemented + by the highlight. The following example creates a highlight with + its motion defined by the spring \l {SpringFollow}: + + \snippet doc/src/snippets/declarative/listview/highlight.qml 1 + + Note that the highlight animation also affects the way that the view + is scrolled. This is because the view moves to maintain the + highlight within the preferred highlight range (or visible viewport). + + \sa highlight +*/ +bool QmlGraphicsListView::highlightFollowsCurrentItem() const +{ + Q_D(const QmlGraphicsListView); + return d->autoHighlight; +} + +void QmlGraphicsListView::setHighlightFollowsCurrentItem(bool autoHighlight) +{ + Q_D(QmlGraphicsListView); + d->autoHighlight = autoHighlight; + if (d->highlightPosAnimator) { + d->highlightPosAnimator->setEnabled(d->autoHighlight); + d->highlightSizeAnimator->setEnabled(d->autoHighlight); + } + d->updateHighlight(); +} + +/*! + \qmlproperty real ListView::preferredHighlightBegin + \qmlproperty real ListView::preferredHighlightEnd + \qmlproperty bool ListView::highlightRangeMode + + These properties set the preferred range of the highlight (current item) + within the view. + + If highlightRangeMode is set to \e ApplyRange the view will + attempt to maintain the highlight within the range, however + the highlight can move outside of the range at the ends of the list + or due to a mouse interaction. + + If highlightRangeMode is set to \e StrictlyEnforceRange the highlight will never + move outside of the range. This means that the current item will change + if a keyboard or mouse action would cause the highlight to move + outside of the range. + + The default value is \e NoHighlightRange. + + Note that a valid range requires preferredHighlightEnd to be greater + than or equal to preferredHighlightBegin. +*/ +qreal QmlGraphicsListView::preferredHighlightBegin() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRangeStart; +} + +void QmlGraphicsListView::setPreferredHighlightBegin(qreal start) +{ + Q_D(QmlGraphicsListView); + d->highlightRangeStart = start; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +qreal QmlGraphicsListView::preferredHighlightEnd() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRangeEnd; +} + +void QmlGraphicsListView::setPreferredHighlightEnd(qreal end) +{ + Q_D(QmlGraphicsListView); + d->highlightRangeEnd = end; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +QmlGraphicsListView::HighlightRangeMode QmlGraphicsListView::highlightRangeMode() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRange; +} + +void QmlGraphicsListView::setHighlightRangeMode(HighlightRangeMode mode) +{ + Q_D(QmlGraphicsListView); + d->highlightRange = mode; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +/*! + \qmlproperty real ListView::spacing + + This property holds the spacing to leave between items. +*/ +qreal QmlGraphicsListView::spacing() const +{ + Q_D(const QmlGraphicsListView); + return d->spacing; +} + +void QmlGraphicsListView::setSpacing(qreal spacing) +{ + Q_D(QmlGraphicsListView); + if (spacing != d->spacing) { + d->spacing = spacing; + d->layout(); + emit spacingChanged(); + } +} + +/*! + \qmlproperty enumeration ListView::orientation + This property holds the orientation of the list. + + Possible values are \c Vertical (default) and \c Horizontal. + + Vertical Example: + \image trivialListView.png + Horizontal Example: + \image ListViewHorizontal.png +*/ +QmlGraphicsListView::Orientation QmlGraphicsListView::orientation() const +{ + Q_D(const QmlGraphicsListView); + return d->orient; +} + +void QmlGraphicsListView::setOrientation(QmlGraphicsListView::Orientation orientation) +{ + Q_D(QmlGraphicsListView); + if (d->orient != orientation) { + d->orient = orientation; + if (d->orient == QmlGraphicsListView::Vertical) + setViewportWidth(-1); + else + setViewportHeight(-1); + d->clear(); + refill(); + emit orientationChanged(); + d->updateCurrent(d->currentIndex); + } +} + +/*! + \qmlproperty bool ListView::keyNavigationWraps + This property holds whether the list wraps key navigation + + If this property is true then key presses to move off of one end of the list will cause the + current item to jump to the other end. +*/ +bool QmlGraphicsListView::isWrapEnabled() const +{ + Q_D(const QmlGraphicsListView); + return d->wrap; +} + +void QmlGraphicsListView::setWrapEnabled(bool wrap) +{ + Q_D(QmlGraphicsListView); + d->wrap = wrap; +} + +/*! + \qmlproperty int ListView::cacheBuffer + This property holds the number of off-screen pixels to cache. + + This property determines the number of pixels above the top of the list + and below the bottom of the list to cache. Setting this value can make + scrolling the list smoother at the expense of additional memory usage. +*/ +int QmlGraphicsListView::cacheBuffer() const +{ + Q_D(const QmlGraphicsListView); + return d->buffer; +} + +void QmlGraphicsListView::setCacheBuffer(int b) +{ + Q_D(QmlGraphicsListView); + if (d->buffer != b) { + d->buffer = b; + if (isComponentComplete()) + refill(); + } +} + +/*! + \qmlproperty string ListView::sectionExpression + This property holds the expression to be evaluated for the section attached property. + + Each item in the list has attached properties named \c ListView.section and + \c ListView.prevSection. These may be used to place a section header for + related items. The example below assumes that the model is sorted by size of + pet. The section expression is the size property. If \c ListView.section and + \c ListView.prevSection differ, the item will display a section header. + + \snippet examples/declarative/listview/sections.qml 0 + + \image ListViewSections.png +*/ +QString QmlGraphicsListView::sectionExpression() const +{ + Q_D(const QmlGraphicsListView); + return d->sectionExpression; +} + +void QmlGraphicsListView::setSectionExpression(const QString &expression) +{ + Q_D(QmlGraphicsListView); + if (d->sectionExpression != expression) { + d->sectionExpression = expression; + emit sectionExpressionChanged(); + } +} + +QString QmlGraphicsListView::currentSection() const +{ + Q_D(const QmlGraphicsListView); + return d->currentSection; +} + +/*! + \qmlproperty real ListView::highlightMoveSpeed + + This property holds the moving animation speed of the highlight delegate. +*/ +qreal QmlGraphicsListView::highlightMoveSpeed() const +{ + Q_D(const QmlGraphicsListView);\ + return d->highlightMoveSpeed; +} + +void QmlGraphicsListView::setHighlightMoveSpeed(qreal speed) +{ + Q_D(QmlGraphicsListView);\ + if (d->highlightMoveSpeed != speed) + { + d->highlightMoveSpeed = speed; + emit highlightMoveSpeedChanged(); + } +} + +/*! + \qmlproperty real ListView::highlightResizeSpeed + + This property holds the resizing animation speed of the highlight delegate. +*/ +qreal QmlGraphicsListView::highlightResizeSpeed() const +{ + Q_D(const QmlGraphicsListView);\ + return d->highlightResizeSpeed; +} + +void QmlGraphicsListView::setHighlightResizeSpeed(qreal speed) +{ + Q_D(QmlGraphicsListView);\ + if (d->highlightResizeSpeed != speed) + { + d->highlightResizeSpeed = speed; + emit highlightResizeSpeedChanged(); + } +} + +void QmlGraphicsListView::viewportMoved() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::viewportMoved(); + refill(); + if (isFlicking() || d->moving) + d->moveReason = QmlGraphicsListViewPrivate::Mouse; + if (d->moveReason == QmlGraphicsListViewPrivate::Mouse) { + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange && d->highlight) { + int idx = d->snapIndex(); + if (idx >= 0 && idx != d->currentIndex) + d->updateCurrent(idx); + + qreal pos = d->currentItem->position(); + if (pos > d->position() + d->highlightRangeEnd - 1 - d->highlight->size()) + pos = d->position() + d->highlightRangeEnd - 1 - d->highlight->size(); + if (pos < d->position() + d->highlightRangeStart) + pos = d->position() + d->highlightRangeStart; + d->highlight->setPosition(pos); + } + } +} + +qreal QmlGraphicsListView::minYExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::minYExtent(); + qreal extent = -d->startPosition(); + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent += d->highlightRangeStart; + + return extent; +} + +qreal QmlGraphicsListView::maxYExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::maxYExtent(); + qreal extent; + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); + else + extent = -(d->endPosition() - height()); + qreal minY = minYExtent(); + if (extent > minY) + extent = minY; + return extent; +} + +qreal QmlGraphicsListView::minXExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::minXExtent(); + qreal extent = -d->startPosition(); + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent += d->highlightRangeStart; + + return extent; +} + +qreal QmlGraphicsListView::maxXExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::maxXExtent(); + qreal extent; + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); + else + extent = -(d->endPosition() - width()); + qreal minX = minXExtent(); + if (extent > minX) + extent = minX; + return extent; +} + +void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::keyPressEvent(event); + if (event->isAccepted()) + return; + + if (d->model && d->model->count() && d->interactive) { + if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Left) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Up)) { + if (currentIndex() > 0 || (d->wrap && !event->isAutoRepeat())) { + d->moveReason = QmlGraphicsListViewPrivate::Key; + decrementCurrentIndex(); + event->accept(); + return; + } else if (d->wrap) { + event->accept(); + return; + } + } else if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Right) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Down)) { + if (currentIndex() < d->model->count() - 1 || (d->wrap && !event->isAutoRepeat())) { + d->moveReason = QmlGraphicsListViewPrivate::Key; + incrementCurrentIndex(); + event->accept(); + return; + } else if (d->wrap) { + event->accept(); + return; + } + } + } + d->moveReason = QmlGraphicsListViewPrivate::Other; + event->ignore(); +} + +/*! + \qmlmethod ListView::incrementCurrentIndex + + Increments the current index. The current index will wrap + if keyNavigationWraps is true and it is currently at the end. +*/ +void QmlGraphicsListView::incrementCurrentIndex() +{ + Q_D(QmlGraphicsListView); + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex()+1; + cancelFlick(); + d->updateCurrent(index < d->model->count() ? index : 0); + } +} + +/*! + \qmlmethod ListView::decrementCurrentIndex + + Decrements the current index. The current index will wrap + if keyNavigationWraps is true and it is currently at the beginning. +*/ +void QmlGraphicsListView::decrementCurrentIndex() +{ + Q_D(QmlGraphicsListView); + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex()-1; + cancelFlick(); + d->updateCurrent(index >= 0 ? index : d->model->count()-1); + } +} + +void QmlGraphicsListView::componentComplete() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::componentComplete(); + if (d->currentIndex < 0) + d->updateCurrent(0); + refill(); + d->fixupPosition(); +} + +void QmlGraphicsListView::refill() +{ + Q_D(QmlGraphicsListView); + d->refill(d->position(), d->position()+d->size()-1); +} + +void QmlGraphicsListView::trackedPositionChanged() +{ + Q_D(QmlGraphicsListView); + if (!d->trackedItem) + return; + if (!isFlicking() && !d->moving && d->moveReason != QmlGraphicsListViewPrivate::Mouse) { + const qreal trackedPos = d->trackedItem->position(); + const qreal viewPos = d->position(); + if (d->haveHighlightRange) { + if (d->highlightRange == StrictlyEnforceRange) { + qreal pos = viewPos; + if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size()) + pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); + if (trackedPos < pos + d->highlightRangeStart) + pos = trackedPos - d->highlightRangeStart; + d->setPosition(pos); + } else { + qreal pos = viewPos; + if (trackedPos < d->startPosition() + d->highlightRangeStart) { + pos = d->startPosition(); + } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) { + pos = d->endPosition() - d->size(); + } else { + if (trackedPos < viewPos + d->highlightRangeStart) { + pos = trackedPos - d->highlightRangeStart; + } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) { + pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); + } + } + d->setPosition(pos); + } + } else { + if (trackedPos < viewPos && d->currentItem->position() < viewPos) { + d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position()); + d->fixupPosition(); + } else if (d->trackedItem->endPosition() > viewPos + d->size() + && d->currentItem->endPosition() > viewPos + d->size()) { + qreal pos; + if (d->trackedItem->endPosition() < d->currentItem->endPosition()) { + pos = d->trackedItem->endPosition() - d->size(); + if (d->trackedItem->size() > d->size()) + pos = trackedPos; + } else { + pos = d->currentItem->endPosition() - d->size(); + if (d->currentItem->size() > d->size()) + pos = d->currentItem->position(); + } + d->setPosition(pos); + d->fixupPosition(); + } + } + } +} + +void QmlGraphicsListView::itemResized() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsItem *item = qobject_cast(sender()); + if (item) { + d->layout(); + d->fixupPosition(); + } +} + +void QmlGraphicsListView::itemsInserted(int modelIndex, int count) +{ + Q_D(QmlGraphicsListView); + d->updateUnrequestedIndexes(); + if (!d->visibleItems.count() || d->model->count() <= 1) { + d->layout(); + d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); + emit countChanged(); + return; + } + + if (!d->mapRangeFromModel(modelIndex, count)) { + int i = d->visibleItems.count() - 1; + while (i > 0 && d->visibleItems.at(i)->index == -1) + --i; + if (d->visibleItems.at(i)->index + 1 == modelIndex) { + // Special case of appending an item to the model. + modelIndex = d->visibleIndex + d->visibleItems.count(); + } else { + if (modelIndex + count - 1 < d->visibleIndex) { + // Insert before visible items + d->visibleIndex += count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxListItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index += count; + } + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) + d->currentItem->index = d->currentIndex; + } + d->layout(); + emit countChanged(); + return; + } + } + + // At least some of the added items will be visible + + int index = modelIndex - d->visibleIndex; + int to = d->buffer+d->position()+d->size()-1; + // index can be the next item past the end of the visible items list (i.e. appended) + int pos = index < d->visibleItems.count() ? d->visibleItems.at(index)->position() + : d->visibleItems.at(index-1)->endPosition()+d->spacing+1; + int initialPos = pos; + QList added; + for (int i = 0; i < count && pos <= to; ++i) { + FxListItem *item = d->createItem(modelIndex + i); + d->visibleItems.insert(index, item); + item->setPosition(pos); + added.append(item); + pos += item->size() + d->spacing; + ++index; + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) { + d->currentItem->index = d->currentIndex; + d->currentItem->setPosition(d->currentItem->position() + (pos - initialPos)); + } + } + if (pos > to) { + // We didn't insert all our new items, which means anything + // beyond the current index is not visible - remove it. + while (d->visibleItems.count() > index) + d->releaseItem(d->visibleItems.takeLast()); + } else { + // Update the indexes of the following visible items. + for (; index < d->visibleItems.count(); ++index) { + FxListItem *listItem = d->visibleItems.at(index); + if (listItem->item != d->currentItem->item) + listItem->setPosition(listItem->position() + (pos - initialPos)); + if (listItem->index != -1) + listItem->index += count; + } + } + // everything is in order now - emit add() signal + for (int j = 0; j < added.count(); ++j) + added.at(j)->attached->emitAdd(); + d->updateUnrequestedPositions(); + d->updateViewport(); + emit countChanged(); +} + +void QmlGraphicsListView::itemsRemoved(int modelIndex, int count) +{ + Q_D(QmlGraphicsListView); + d->updateUnrequestedIndexes(); + bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; + if (!d->mapRangeFromModel(modelIndex, count)) { + if (modelIndex + count - 1 < d->visibleIndex) { + // Items removed before our visible items. + d->visibleIndex -= count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxListItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index -= count; + } + } + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + d->layout(); + d->updateSections(); + emit countChanged(); + return; + } + + // Remove the items from the visible list, skipping anything already marked for removal + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (item->index == -1 || item->index < modelIndex) { + // already removed, or before removed items + ++it; + } else if (item->index >= modelIndex + count) { + // after removed items + item->index -= count; + ++it; + } else { + // removed item + item->attached->emitRemove(); + if (item->attached->delayRemove()) { + item->index = -1; + connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); + ++it; + } else { + it = d->visibleItems.erase(it); + d->releaseItem(item); + } + } + } + + // fix current + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->currentItem->attached->setIsCurrentItem(false); + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + + // update visibleIndex + for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { + if ((*it)->index != -1) { + d->visibleIndex = (*it)->index; + break; + } + } + + if (d->visibleItems.isEmpty()) { + d->visibleIndex = 0; + d->visiblePos = 0; + d->timeline.clear(); + d->setPosition(0); + if (d->model->count() == 0) + update(); + else + refill(); + } else { + // Correct the positioning of the items + d->layout(); + d->updateSections(); + } + + emit countChanged(); +} + +void QmlGraphicsListView::destroyRemoved() +{ + Q_D(QmlGraphicsListView); + for (QList::Iterator it = d->visibleItems.begin(); + it != d->visibleItems.end();) { + FxListItem *listItem = *it; + if (listItem->index == -1 && listItem->attached->delayRemove() == false) { + d->releaseItem(listItem); + it = d->visibleItems.erase(it); + } else { + ++it; + } + } + + // Correct the positioning of the items + d->layout(); +} + +void QmlGraphicsListView::itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsListView); + qreal firstItemPos = d->visibleItems.first()->position(); + QHash moved; + int moveBy = 0; + + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (item->index >= from && item->index < from + count) { + // take the items that are moving + item->index += (to-from); + moved.insert(item->index, item); + moveBy += item->size(); + it = d->visibleItems.erase(it); + } else { + // move everything after the moved items. + if (item->index > from && item->index != -1) + item->index -= count; + ++it; + } + } + + int remaining = count; + int endIndex = d->visibleIndex; + it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (remaining && item->index >= to && item->index < to + count) { + // place items in the target position, reusing any existing items + FxListItem *movedItem = moved.take(item->index); + if (!movedItem) + movedItem = d->createItem(item->index); + it = d->visibleItems.insert(it, movedItem); + ++it; + --remaining; + } else { + if (item->index != -1) { + if (item->index >= to) { + // update everything after the moved items. + item->index += count; + } + endIndex = item->index; + } + ++it; + } + } + + // If we have moved items to the end of the visible items + // then add any existing moved items that we have + while (FxListItem *item = moved.take(endIndex+1)) { + d->visibleItems.append(item); + ++endIndex; + } + + // Whatever moved items remain are no longer visible items. + while (moved.count()) + d->releaseItem(moved.take(moved.begin().key())); + + // Ensure we don't cause an ugly list scroll. + d->visibleItems.first()->setPosition(firstItemPos); + + d->layout(); +} + +void QmlGraphicsListView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsListView); + if (d->requestedIndex != index) { + item->setParentItem(viewport()); + d->unrequestedItems.insert(item, index); + if (d->orient == QmlGraphicsListView::Vertical) + item->setY(d->positionAt(index)); + else + item->setX(d->positionAt(index)); + } +} + +void QmlGraphicsListView::destroyingItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsListView); + d->unrequestedItems.remove(item); +} + +QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsListViewAttached::properties(obj); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) + +QT_END_NAMESPACE +#include "qfxlistview.moc" diff --git a/src/declarative/fx/qmlgraphicslistview.h b/src/declarative/fx/qmlgraphicslistview.h new file mode 100644 index 0000000..1c19c38 --- /dev/null +++ b/src/declarative/fx/qmlgraphicslistview.h @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLISTVIEW_H +#define QMLGRAPHICSLISTVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + + +class QmlGraphicsVisualModel; +class QmlGraphicsListViewAttached; +class QmlGraphicsListViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + + Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) + Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) + Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) + + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) + Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) + + Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) + Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) + Q_ENUMS(HighlightRangeMode) + Q_ENUMS(Orientation) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsListView(QmlGraphicsItem *parent=0); + ~QmlGraphicsListView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; + HighlightRangeMode highlightRangeMode() const; + void setHighlightRangeMode(HighlightRangeMode mode); + + qreal preferredHighlightBegin() const; + void setPreferredHighlightBegin(qreal); + + qreal preferredHighlightEnd() const; + void setPreferredHighlightEnd(qreal); + + qreal spacing() const; + void setSpacing(qreal spacing); + + enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; + Orientation orientation() const; + void setOrientation(Orientation); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + QString sectionExpression() const; + void setSectionExpression(const QString &); + QString currentSection() const; + + qreal highlightMoveSpeed() const; + void setHighlightMoveSpeed(qreal); + + qreal highlightResizeSpeed() const; + void setHighlightResizeSpeed(qreal); + + static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void incrementCurrentIndex(); + void decrementCurrentIndex(); + +Q_SIGNALS: + void countChanged(); + void spacingChanged(); + void orientationChanged(); + void currentIndexChanged(); + void currentSectionChanged(); + void sectionExpressionChanged(); + void highlightMoveSpeedChanged(); + void highlightResizeSpeedChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void refill(); + void trackedPositionChanged(); + void itemResized(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsListView) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsloader.cpp b/src/declarative/fx/qmlgraphicsloader.cpp new file mode 100644 index 0000000..b2a9c4f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsloader.cpp @@ -0,0 +1,390 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsloader_p.h" +#include + +QT_BEGIN_NAMESPACE + +QmlGraphicsLoaderPrivate::QmlGraphicsLoaderPrivate() +: item(0), component(0), ownComponent(false), resizeMode(QmlGraphicsLoader::SizeLoaderToItem) +{ +} + +QmlGraphicsLoaderPrivate::~QmlGraphicsLoaderPrivate() +{ +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QmlGraphicsLoader) + +/*! + \qmlclass Loader + \inherits Item + + \brief The Loader item allows dynamically loading an Item-based + subtree from a QML URL or Component. + + Loader instantiates an item from a component. The component to + instantiate may be specified directly by the \c sourceComponent + property, or loaded from a URL via the \c source property. + + It is also an effective means of delaying the creation of a component + until it is required: + \code + Loader { id: pageLoader } + Rectangle { + MouseRegion { anchors.fill: parent; onClicked: pageLoader.source = "Page1.qml" } + } + \endcode +*/ + +/*! + \internal + \class QmlGraphicsLoader + \qmlclass Loader + */ + +/*! + Create a new QmlGraphicsLoader instance. + */ +QmlGraphicsLoader::QmlGraphicsLoader(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsLoaderPrivate), parent) +{ +} + +/*! + Destroy the loader instance. + */ +QmlGraphicsLoader::~QmlGraphicsLoader() +{ +} + +/*! + \qmlproperty url Loader::source + This property holds the URL of the QML component to + instantiate. + + \sa status, progress +*/ +QUrl QmlGraphicsLoader::source() const +{ + Q_D(const QmlGraphicsLoader); + return d->source; +} + +void QmlGraphicsLoader::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsLoader); + if (d->source == url) + return; + + if (d->ownComponent) { + delete d->component; + d->component = 0; + } + delete d->item; + d->item = 0; + + d->source = url; + if (d->source.isEmpty()) { + emit sourceChanged(); + emit statusChanged(); + emit progressChanged(); + emit itemChanged(); + return; + } + + d->component = new QmlComponent(qmlEngine(this), d->source, this); + d->ownComponent = true; + if (!d->component->isLoading()) { + d->_q_sourceLoaded(); + } else { + connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(_q_sourceLoaded())); + connect(d->component, SIGNAL(progressChanged(qreal)), + this, SIGNAL(progressChanged())); + emit statusChanged(); + emit progressChanged(); + emit sourceChanged(); + emit itemChanged(); + } +} + +/*! + \qmlproperty Component Loader::sourceComponent + The sourceComponent property holds the \l{Component} to instantiate. + + \qml + Item { + Component { + id: redSquare + Rectangle { color: "red"; width: 10; height: 10 } + } + + Loader { sourceComponent: redSquare } + Loader { sourceComponent: redSquare; x: 10 } + } + \endqml + + \sa source +*/ + +QmlComponent *QmlGraphicsLoader::sourceComponent() const +{ + Q_D(const QmlGraphicsLoader); + return d->component; +} + +void QmlGraphicsLoader::setSourceComponent(QmlComponent *comp) +{ + Q_D(QmlGraphicsLoader); + if (comp == d->component) + return; + + d->source = QUrl(); + if (d->ownComponent) { + delete d->component; + d->component = 0; + } + delete d->item; + d->item = 0; + + d->component = comp; + d->ownComponent = false; + if (!d->component) { + emit sourceChanged(); + emit statusChanged(); + emit progressChanged(); + emit itemChanged(); + return; + } + + if (!d->component->isLoading()) { + d->_q_sourceLoaded(); + } else { + connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(_q_sourceLoaded())); + connect(d->component, SIGNAL(progressChanged(qreal)), + this, SIGNAL(progressChanged())); + emit progressChanged(); + emit sourceChanged(); + emit statusChanged(); + emit itemChanged(); + } +} + +void QmlGraphicsLoaderPrivate::_q_sourceLoaded() +{ + Q_Q(QmlGraphicsLoader); + + if (component) { + QmlContext *ctxt = new QmlContext(qmlContext(q)); + ctxt->addDefaultObject(q); + + if (!component->errors().isEmpty()) { + qWarning() << component->errors(); + emit q->sourceChanged(); + emit q->statusChanged(); + emit q->progressChanged(); + return; + } + + QObject *obj = component->create(ctxt); + if (obj) { + item = qobject_cast(obj); + if (item) { + item->setParentItem(q); +// item->setFocus(true); + QmlGraphicsItem *resizeItem = 0; + if (resizeMode == QmlGraphicsLoader::SizeLoaderToItem) + resizeItem = item; + else if (resizeMode == QmlGraphicsLoader::SizeItemToLoader) + resizeItem = q; + if (resizeItem) { + QObject::connect(resizeItem, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::connect(resizeItem, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } + _q_updateSize(); + } + } else { + delete obj; + source = QUrl(); + } + emit q->sourceChanged(); + emit q->statusChanged(); + emit q->progressChanged(); + emit q->itemChanged(); + } +} + +/*! + \qmlproperty enum Loader::status + + This property holds the status of QML loading. It can be one of: + \list + \o Null - no QML source has been set + \o Ready - the QML source has been loaded + \o Loading - the QML source is currently being loaded + \o Error - an error occurred while loading the QML source + \endlist + + \sa progress +*/ + +QmlGraphicsLoader::Status QmlGraphicsLoader::status() const +{ + Q_D(const QmlGraphicsLoader); + + if (d->component) + return static_cast(d->component->status()); + + if (d->item) + return Ready; + + return d->source.isEmpty() ? Null : Error; +} + +/*! + \qmlproperty real Loader::progress + + This property holds the progress of QML data loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ +qreal QmlGraphicsLoader::progress() const +{ + Q_D(const QmlGraphicsLoader); + + if (d->item) + return 1.0; + + if (d->component) + return d->component->progress(); + + return 0.0; +} + +/*! + \qmlproperty enum Loader::resizeMode + + This property determines how the Loader or item are resized: + \list + \o NoResize - no item will be resized + \o SizeLoaderToItem - the Loader will be sized to the size of the item, unless the size of the Loader has been otherwise specified. + \o SizeItemToLoader - the item will be sized to the size of the Loader. + \endlist + + The default resizeMode is SizeLoaderToItem. +*/ +QmlGraphicsLoader::ResizeMode QmlGraphicsLoader::resizeMode() const +{ + Q_D(const QmlGraphicsLoader); + return d->resizeMode; +} + +void QmlGraphicsLoader::setResizeMode(ResizeMode mode) +{ + Q_D(QmlGraphicsLoader); + if (mode == d->resizeMode) + return; + + if (d->item) { + QmlGraphicsItem *resizeItem = 0; + if (d->resizeMode == SizeLoaderToItem) + resizeItem = d->item; + else if (d->resizeMode == SizeItemToLoader) + resizeItem = this; + if (resizeItem) { + disconnect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); + disconnect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); + } + } + + d->resizeMode = mode; + + if (d->item) { + QmlGraphicsItem *resizeItem = 0; + if (d->resizeMode == SizeLoaderToItem) + resizeItem = d->item; + else if (d->resizeMode == SizeItemToLoader) + resizeItem = this; + if (resizeItem) { + connect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); + connect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); + } + + d->_q_updateSize(); + } +} + +void QmlGraphicsLoaderPrivate::_q_updateSize() +{ + Q_Q(QmlGraphicsLoader); + if (!item) + return; + switch (resizeMode) { + case QmlGraphicsLoader::SizeLoaderToItem: + q->setImplicitWidth(item->width()); + q->setImplicitHeight(item->height()); + break; + case QmlGraphicsLoader::SizeItemToLoader: + item->setWidth(q->width()); + item->setHeight(q->height()); + break; + default: + break; + } +} + +/*! + \qmlproperty Item Loader::item + This property holds the top-level item created from source. +*/ +QmlGraphicsItem *QmlGraphicsLoader::item() const +{ + Q_D(const QmlGraphicsLoader); + return d->item; +} + +QT_END_NAMESPACE + +#include "moc_qmlgraphicsloader.cpp" diff --git a/src/declarative/fx/qmlgraphicsloader.h b/src/declarative/fx/qmlgraphicsloader.h new file mode 100644 index 0000000..98f764f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsloader.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLOADER_H +#define QMLGRAPHICSLOADER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(Status) + Q_ENUMS(ResizeMode) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) + Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) + Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + //### sourceItem + +public: + QmlGraphicsLoader(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsLoader(); + + QUrl source() const; + void setSource(const QUrl &); + + QmlComponent *sourceComponent() const; + void setSourceComponent(QmlComponent *); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; + ResizeMode resizeMode() const; + void setResizeMode(ResizeMode mode); + + QmlGraphicsItem *item() const; + +Q_SIGNALS: + void itemChanged(); + void sourceChanged(); + void statusChanged(); + void progressChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsLoader) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) + Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsLoader) + +QT_END_HEADER + +#endif // QMLGRAPHICSLOADER_H diff --git a/src/declarative/fx/qmlgraphicsloader_p.h b/src/declarative/fx/qmlgraphicsloader_p.h new file mode 100644 index 0000000..ea55334 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsloader_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLOADER_P_H +#define QMLGRAPHICSLOADER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsloader.h" + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsLoader) + +public: + QmlGraphicsLoaderPrivate(); + ~QmlGraphicsLoaderPrivate(); + + QUrl source; + QmlGraphicsItem *item; + QmlComponent *component; + bool ownComponent; + QmlGraphicsLoader::ResizeMode resizeMode; + + void _q_sourceLoaded(); + void _q_updateSize(); +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSLOADER_P_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion.cpp b/src/declarative/fx/qmlgraphicsmouseregion.cpp new file mode 100644 index 0000000..7ad1ac2 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsmouseregion.cpp @@ -0,0 +1,649 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsmouseregion.h" +#include "qmlgraphicsmouseregion_p.h" +#include "qmlgraphicsevents_p.h" +#include + + +QT_BEGIN_NAMESPACE +static const qreal DragThreshold = 5; +static const int PressAndHoldDelay = 800; + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QmlGraphicsDrag) +QmlGraphicsDrag::QmlGraphicsDrag(QObject *parent) +: QObject(parent), _target(0), _axis(XandYAxis), _xmin(0), _xmax(0), _ymin(0), _ymax(0) +{ +} + +QmlGraphicsDrag::~QmlGraphicsDrag() +{ +} + +QmlGraphicsItem *QmlGraphicsDrag::target() const +{ + return _target; +} + +void QmlGraphicsDrag::setTarget(QmlGraphicsItem *t) +{ + _target = t; +} + +QmlGraphicsDrag::Axis QmlGraphicsDrag::axis() const +{ + return _axis; +} + +void QmlGraphicsDrag::setAxis(QmlGraphicsDrag::Axis a) +{ + _axis = a; +} + +qreal QmlGraphicsDrag::xmin() const +{ + return _xmin; +} + +void QmlGraphicsDrag::setXmin(qreal m) +{ + _xmin = m; +} + +qreal QmlGraphicsDrag::xmax() const +{ + return _xmax; +} + +void QmlGraphicsDrag::setXmax(qreal m) +{ + _xmax = m; +} + +qreal QmlGraphicsDrag::ymin() const +{ + return _ymin; +} + +void QmlGraphicsDrag::setYmin(qreal m) +{ + _ymin = m; +} + +qreal QmlGraphicsDrag::ymax() const +{ + return _ymax; +} + +void QmlGraphicsDrag::setYmax(qreal m) +{ + _ymax = m; +} + +/*! + \qmlclass MouseRegion + \brief The MouseRegion item enables simple mouse handling. + \inherits Item + + A MouseRegion is typically used in conjunction with a visible item, + where the MouseRegion effectively 'proxies' mouse handling for that + item. For example, we can put a MouseRegion in a Rectangle that changes + the Rectangle color to red when clicked: + \snippet doc/src/snippets/declarative/mouseregion.qml 0 + + Many MouseRegion signals pass a \l {MouseEvent}{mouse} parameter that contains + additional information about the mouse event, such as the position, button, + and any key modifiers. + + Below we have the previous + example extended so as to give a different color when you right click. + \snippet doc/src/snippets/declarative/mouseregion.qml 1 + + For basic key handling, see the \l {Keys}{Keys attached property}. + + MouseRegion is an invisible item: it is never painted. + + \sa MouseEvent +*/ + +/*! + \qmlsignal MouseRegion::onEntered + + This handler is called when the mouse enters the mouse region. +*/ + +/*! + \qmlsignal MouseRegion::onExited + + This handler is called when the mouse exists the mouse region. +*/ + +/*! + \qmlsignal MouseRegion::onPositionChanged(mouse) + + This handler is called when the mouse position changes. + + The \l {MouseEvent}{mouse} parameter provides information about the mouse, including the x and y + position, and any buttons currently pressed. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onClicked(mouse) + + This handler is called when there is a click. A click is defined as a press followed by a release, + both inside the MouseRegion (pressing, moving outside the MouseRegion, and then moving back inside and + releasing is also considered a click). + + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onPressed(mouse) + + This handler is called when there is a press. + The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y + position and which button was pressed. + + The \e accepted property of the MouseEvent parameter determines whether this MouseRegion + will handle the press and all future mouse events until release. The default is to accept + the event and not allow other MouseRegions beneath this one to handle the event. If \e accepted + is set to false, no further events will be sent to this MouseRegion until the button is next + pressed. +*/ + +/*! + \qmlsignal MouseRegion::onReleased(mouse) + + This handler is called when there is a release. + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onPressAndHold(mouse) + + This handler is called when there is a long press (currently 800ms). + The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y + position of the press, and which button is pressed. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onDoubleClicked(mouse) + + This handler is called when there is a double-click (a press followed by a release followed by a press). + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QmlGraphicsMouseRegion) + +/*! + \internal + \class QmlGraphicsMouseRegion + \brief The QmlGraphicsMouseRegion class provides a simple mouse handling abstraction for use within Qml. + + \ingroup group_coreitems + + All QmlGraphicsItem derived classes can do mouse handling but the QmlGraphicsMouseRegion class exposes mouse + handling data as properties and tracks flicking and dragging of the mouse. + + A QmlGraphicsMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. + */ +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsMouseRegionPrivate), parent) +{ + Q_D(QmlGraphicsMouseRegion); + d->init(); +} + +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsMouseRegion); + d->init(); +} + +QmlGraphicsMouseRegion::~QmlGraphicsMouseRegion() +{ +} + +/*! + \qmlproperty real MouseRegion::mouseX + \qmlproperty real MouseRegion::mouseY + These properties hold the coordinates of the mouse. + + If the hoverEnabled property is false then these properties will only be valid + while a button is pressed, and will remain valid as long as the button is held + even if the mouse is moved outside the region. + + If hoverEnabled is true then these properties will be valid: + \list + \i when no button is pressed, but the mouse is within the MouseRegion (containsMouse is true). + \i if a button is pressed and held, even if it has since moved out of the region. + \endlist + + The coordinates are relative to the MouseRegion. +*/ +qreal QmlGraphicsMouseRegion::mouseX() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastPos.x(); +} + +qreal QmlGraphicsMouseRegion::mouseY() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastPos.y(); +} + +/*! + \qmlproperty bool MouseRegion::enabled + This property holds whether the item accepts mouse events. +*/ +bool QmlGraphicsMouseRegion::isEnabled() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->absorb; +} + +void QmlGraphicsMouseRegion::setEnabled(bool a) +{ + Q_D(QmlGraphicsMouseRegion); + if (a != d->absorb) { + d->absorb = a; + emit enabledChanged(); + } +} +/*! + \qmlproperty MouseButtons MouseRegion::pressedButtons + This property holds the mouse buttons currently pressed. + + It contains a bitwise combination of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist + + The code below displays "right" when the right mouse buttons is pressed: + \code + Text { + text: mr.pressedButtons & Qt.RightButton ? "right" : "" + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + MouseRegion { + id: mr + acceptedButtons: Qt.LeftButton | Qt.RightButton + anchors.fill: parent + } + } + \endcode + + \sa acceptedButtons +*/ +Qt::MouseButtons QmlGraphicsMouseRegion::pressedButtons() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastButtons; +} + +void QmlGraphicsMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + d->moved = false; + if (!d->absorb) + QmlGraphicsItem::mousePressEvent(event); + else { + d->longPress = false; + d->saveEvent(event); + d->dragX = drag()->axis() & QmlGraphicsDrag::XAxis; + d->dragY = drag()->axis() & QmlGraphicsDrag::YAxis; + d->dragged = false; + setHovered(true); + d->start = event->pos(); + d->startScene = event->scenePos(); + // we should only start timer if pressAndHold is connected to. + if (d->isConnected("pressAndHold(QmlGraphicsMouseEvent*)")) + d->pressAndHoldTimer.start(PressAndHoldDelay, this); + setKeepMouseGrab(false); + event->setAccepted(setPressed(true)); + } +} + +void QmlGraphicsMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseMoveEvent(event); + return; + } + + d->saveEvent(event); + + // ### we should skip this if these signals aren't used + // ### can GV handle this for us? + bool contains = boundingRect().contains(d->lastPos); + if (d->hovered && !contains) + setHovered(false); + else if (!d->hovered && contains) + setHovered(true); + + if (drag()->target()) { + if (!d->moved) { + if (d->dragX) d->startX = drag()->target()->x(); + if (d->dragY) d->startY = drag()->target()->y(); + } + + QPointF startLocalPos; + QPointF curLocalPos; + if (drag()->target()->parent()) { + startLocalPos = drag()->target()->parentItem()->mapFromScene(d->startScene); + curLocalPos = drag()->target()->parentItem()->mapFromScene(event->scenePos()); + } else { + startLocalPos = d->startScene; + curLocalPos = event->scenePos(); + } + + qreal dx = qAbs(curLocalPos.x() - startLocalPos.x()); + qreal dy = qAbs(curLocalPos.y() - startLocalPos.y()); + if ((d->dragX && !(dx < DragThreshold)) || (d->dragY && !(dy < DragThreshold))) + d->dragged = true; + if (!keepMouseGrab()) { + if ((!d->dragY && dy < DragThreshold && d->dragX && dx > DragThreshold) + || (!d->dragX && dx < DragThreshold && d->dragY && dy > DragThreshold) + || (d->dragX && d->dragY)) { + setKeepMouseGrab(true); + } + } + + if (d->dragX) { + qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX; + if (x < drag()->xmin()) + x = drag()->xmin(); + else if (x > drag()->xmax()) + x = drag()->xmax(); + drag()->target()->setX(x); + } + if (d->dragY) { + qreal y = (curLocalPos.y() - startLocalPos.y()) + d->startY; + if (y < drag()->ymin()) + y = drag()->ymin(); + else if (y > drag()->ymax()) + y = drag()->ymax(); + drag()->target()->setY(y); + } + } + d->moved = true; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit positionChanged(&me); +} + + +void QmlGraphicsMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseReleaseEvent(event); + } else { + d->saveEvent(event); + setPressed(false); + // If we don't accept hover, we need to reset containsMouse. + if (!acceptHoverEvents()) + setHovered(false); + setKeepMouseGrab(false); + } +} + +void QmlGraphicsMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseDoubleClickEvent(event); + } else { + QmlGraphicsItem::mouseDoubleClickEvent(event); + if (event->isAccepted()) { + // Only deliver the event if we have accepted the press. + d->saveEvent(event); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); + emit this->doubleClicked(&me); + } + } +} + +void QmlGraphicsMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) + QmlGraphicsItem::hoverEnterEvent(event); + else + setHovered(true); +} + +void QmlGraphicsMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::hoverEnterEvent(event); + } else { + d->lastPos = event->pos(); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit positionChanged(&me); + } +} + +void QmlGraphicsMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) + QmlGraphicsItem::hoverLeaveEvent(event); + else + setHovered(false); +} + +bool QmlGraphicsMouseRegion::sceneEvent(QEvent *event) +{ + bool rv = QmlGraphicsItem::sceneEvent(event); + if (event->type() == QEvent::UngrabMouse) { + Q_D(QmlGraphicsMouseRegion); + if (d->pressed) { + // if our mouse grab has been removed (probably by Flickable), fix our + // state + d->pressed = false; + setKeepMouseGrab(false); + emit pressedChanged(); + //emit hoveredChanged(); + } + } + return rv; +} + +void QmlGraphicsMouseRegion::timerEvent(QTimerEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (event->timerId() == d->pressAndHoldTimer.timerId()) { + d->pressAndHoldTimer.stop(); + if (d->pressed && d->dragged == false && d->hovered == true) { + d->longPress = true; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit pressAndHold(&me); + } + } +} + +/*! + \qmlproperty bool MouseRegion::hoverEnabled + This property holds whether hover events are handled. + + By default, mouse events are only handled in response to a button event, or when a button is + pressed. Hover enables handling of all mouse events even when no mouse button is + pressed. + + This property affects the containsMouse property and the onEntered, onExited and onPositionChanged signals. +*/ + +/*! + \qmlproperty bool MouseRegion::containsMouse + This property holds whether the mouse is currently inside the mouse region. + + \warning This property is not updated if the region moves under the mouse: \e containsMouse will not change. + In addition, if hoverEnabled is false, containsMouse will only be valid when the mouse is pressed. +*/ +bool QmlGraphicsMouseRegion::hovered() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->hovered; +} + +/*! + \qmlproperty bool MouseRegion::pressed + This property holds whether the mouse region is currently pressed. +*/ +bool QmlGraphicsMouseRegion::pressed() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->pressed; +} + +void QmlGraphicsMouseRegion::setHovered(bool h) +{ + Q_D(QmlGraphicsMouseRegion); + if (d->hovered != h) { + d->hovered = h; + emit hoveredChanged(); + d->hovered ? emit entered() : emit exited(); + } +} + +/*! + \qmlproperty Qt::MouseButtons MouseRegion::acceptedButtons + This property holds the mouse buttons that the mouse region reacts to. + + The available buttons are: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MiddleButton + \endlist + + To accept more than one button the flags can be combined with the + "|" (or) operator: + + \code + MouseRegion { acceptedButtons: Qt.LeftButton | Qt.RightButton } + \endcode + + The default is to accept the Left button. +*/ +Qt::MouseButtons QmlGraphicsMouseRegion::acceptedButtons() const +{ + return acceptedMouseButtons(); +} + +void QmlGraphicsMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) +{ + if (buttons != acceptedMouseButtons()) { + setAcceptedMouseButtons(buttons); + emit acceptedButtonsChanged(); + } +} + +bool QmlGraphicsMouseRegion::setPressed(bool p) +{ + Q_D(QmlGraphicsMouseRegion); + bool isclick = d->pressed == true && p == false && d->dragged == false && d->hovered == true; + + if (d->pressed != p) { + d->pressed = p; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); + if (d->pressed) { + emit positionChanged(&me); + emit pressed(&me); + } else { + emit released(&me); + if (isclick) + emit clicked(&me); + } + + emit pressedChanged(); + return me.isAccepted(); + } + return false; +} + +QmlGraphicsDrag *QmlGraphicsMouseRegion::drag() +{ + Q_D(QmlGraphicsMouseRegion); + return &(d->drag); +} + +/*! + \qmlproperty Item MouseRegion::drag.target + \qmlproperty Axis MouseRegion::drag.axis + \qmlproperty real MouseRegion::drag.minimumX + \qmlproperty real MouseRegion::drag.maximumX + \qmlproperty real MouseRegion::drag.minimumY + \qmlproperty real MouseRegion::drag.maximumY + + drag provides a convenient way to make an item draggable. + + \list + \i \c target specifies the item to drag. + \i \c axis specifies whether dragging can be done horizontally (XAxis), vertically (YAxis), or both (XandYAxis) + \i the minimum and maximum properties limit how far the target can be dragged along the corresponding axes. + \endlist + + The following example uses drag to reduce the opacity of an image as it moves to the right: + \snippet doc/src/snippets/declarative/drag.qml 0 +*/ + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsmouseregion.h b/src/declarative/fx/qmlgraphicsmouseregion.h new file mode 100644 index 0000000..9874fbf --- /dev/null +++ b/src/declarative/fx/qmlgraphicsmouseregion.h @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSMOUSEREGION_H +#define QMLGRAPHICSMOUSEREGION_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject +{ + Q_OBJECT + + Q_ENUMS(Axis) + Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) + Q_PROPERTY(Axis axis READ axis WRITE setAxis) + Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) + Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) + Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) + Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) + //### consider drag and drop + +public: + QmlGraphicsDrag(QObject *parent=0); + ~QmlGraphicsDrag(); + + QmlGraphicsItem *target() const; + void setTarget(QmlGraphicsItem *); + + enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; + Axis axis() const; + void setAxis(Axis); + + qreal xmin() const; + void setXmin(qreal); + qreal xmax() const; + void setXmax(qreal); + qreal ymin() const; + void setYmin(qreal); + qreal ymax() const; + void setYmax(qreal); + +private: + QmlGraphicsItem *_target; + Axis _axis; + qreal _xmin; + qreal _xmax; + qreal _ymin; + qreal _ymax; + Q_DISABLE_COPY(QmlGraphicsDrag) +}; + +class QmlGraphicsMouseEvent; +class QmlGraphicsMouseRegionPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) + Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) + Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) + Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) + Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) + Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) + Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) + Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? + +public: + QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); + ~QmlGraphicsMouseRegion(); + + qreal mouseX() const; + qreal mouseY() const; + + bool isEnabled() const; + void setEnabled(bool); + + bool hovered() const; + bool pressed() const; + + Qt::MouseButtons pressedButtons() const; + + Qt::MouseButtons acceptedButtons() const; + void setAcceptedButtons(Qt::MouseButtons buttons); + + QmlGraphicsDrag *drag(); + +Q_SIGNALS: + void hoveredChanged(); + void pressedChanged(); + void enabledChanged(); + void acceptedButtonsChanged(); + void positionChanged(QmlGraphicsMouseEvent *mouse); + + void pressed(QmlGraphicsMouseEvent *mouse); + void pressAndHold(QmlGraphicsMouseEvent *mouse); + void released(QmlGraphicsMouseEvent *mouse); + void clicked(QmlGraphicsMouseEvent *mouse); + void doubleClicked(QmlGraphicsMouseEvent *mouse); + void entered(); + void exited(); + +protected: + void setHovered(bool); + bool setPressed(bool); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + bool sceneEvent(QEvent *); + void timerEvent(QTimerEvent *event); + +private: + void handlePress(); + void handleRelease(); + +protected: + QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsMouseRegion) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsDrag) +QML_DECLARE_TYPE(QmlGraphicsMouseRegion) + +QT_END_HEADER + +#endif // QMLGRAPHICSMOUSEREGION_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion_p.h b/src/declarative/fx/qmlgraphicsmouseregion_p.h new file mode 100644 index 0000000..71b31b4 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsmouseregion_p.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSMOUSEREGION_P_H +#define QMLGRAPHICSMOUSEREGION_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qbasictimer.h" +#include "qgraphicssceneevent.h" +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) + +public: + QmlGraphicsMouseRegionPrivate() + : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) + { + } + + void init() + { + Q_Q(QmlGraphicsMouseRegion); + q->setAcceptedMouseButtons(Qt::LeftButton); + } + + void saveEvent(QGraphicsSceneMouseEvent *event) { + lastPos = event->pos(); + lastButton = event->button(); + lastButtons = event->buttons(); + lastModifiers = event->modifiers(); + } + + bool isConnected(const char *signal) { + Q_Q(QmlGraphicsMouseRegion); + int idx = QObjectPrivate::get(q)->signalIndex(signal); + return QObjectPrivate::get(q)->isSignalConnected(idx); + } + + bool absorb : 1; + bool hovered : 1; + bool pressed : 1; + bool longPress : 1; + bool moved : 1; + bool dragX : 1; + bool dragY : 1; + bool dragged : 1; + QmlGraphicsDrag drag; + QPointF start; + QPointF startScene; + qreal startX; + qreal startY; + QPointF lastPos; + Qt::MouseButton lastButton; + Qt::MouseButtons lastButtons; + Qt::KeyboardModifiers lastModifiers; + QBasicTimer pressAndHoldTimer; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSMOUSEREGION_P_H diff --git a/src/declarative/fx/qmlgraphicspainteditem.cpp b/src/declarative/fx/qmlgraphicspainteditem.cpp new file mode 100644 index 0000000..43d0318 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspainteditem.cpp @@ -0,0 +1,387 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicspainteditem.h" +#include "qmlgraphicspainteditem_p.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \class QmlGraphicsPaintedItem + \brief The QmlGraphicsPaintedItem class is an abstract base class for QmlView items that want cached painting. + \internal + + This is a convenience class for implementing items that paint their contents + using a QPainter. The contents of the item are cached behind the scenes. + The dirtyCache() function should be called if the contents change to + ensure the cache is refreshed the next time painting occurs. + + To subclass QmlGraphicsPaintedItem, you must reimplement drawContents() to draw + the contents of the item. +*/ + +/*! + \fn void QmlGraphicsPaintedItem::drawContents(QPainter *painter, const QRect &rect) + + This function is called when the cache needs to be refreshed. When + sub-classing QmlGraphicsPaintedItem this function should be implemented so as to + paint the contents of the item using the given \a painter for the + area of the contents specified by \a rect. +*/ + +/*! + \property QmlGraphicsPaintedItem::contentsSize + \brief The size of the contents + + The contents size is the size of the item in regards to how it is painted + using the drawContents() function. This is distinct from the size of the + item in regards to height() and width(). +*/ + +// XXX bug in WebKit - can call repaintRequested and other cache-changing functions from within render! +static int inpaint=0; +static int inpaint_clearcache=0; + +/*! + Marks areas of the cache that intersect with the given \a rect as dirty and + in need of being refreshed. + + \sa clearCache() +*/ +void QmlGraphicsPaintedItem::dirtyCache(const QRect& rect) +{ + Q_D(QmlGraphicsPaintedItem); + for (int i=0; i < d->imagecache.count(); ) { + QmlGraphicsPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; + QRect isect = (c->area & rect) | c->dirty; + if (isect == c->area && !inpaint) { + delete d->imagecache.takeAt(i); + } else { + c->dirty = isect; + ++i; + } + } +} + +/*! + Marks the entirety of the contents cache as dirty. + + \sa dirtyCache() +*/ +void QmlGraphicsPaintedItem::clearCache() +{ + if (inpaint) { + inpaint_clearcache=1; + return; + } + Q_D(QmlGraphicsPaintedItem); + qDeleteAll(d->imagecache); + d->imagecache.clear(); +} + +/*! + Returns the size of the contents. + + \sa setContentsSize() +*/ +QSize QmlGraphicsPaintedItem::contentsSize() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->contentsSize; +} + +/*! + Sets the size of the contents to the given \a size. + + \sa contentsSize() +*/ +void QmlGraphicsPaintedItem::setContentsSize(const QSize &size) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->contentsSize == size) return; + d->contentsSize = size; + clearCache(); + update(); +} + +/*! + Constructs a new QmlGraphicsPaintedItem with the given \a parent. +*/ +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPaintedItemPrivate), parent) +{ + init(); +} + +/*! + \internal + Constructs a new QmlGraphicsPaintedItem with the given \a parent and + initialized private data member \a dd. +*/ +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + init(); +} + +/*! + Destroys the image item. +*/ +QmlGraphicsPaintedItem::~QmlGraphicsPaintedItem() +{ + clearCache(); +} + +/*! + \internal +*/ +void QmlGraphicsPaintedItem::init() +{ + connect(this,SIGNAL(widthChanged()),this,SLOT(clearCache())); + connect(this,SIGNAL(heightChanged()),this,SLOT(clearCache())); + connect(this,SIGNAL(visibleChanged()),this,SLOT(clearCache())); +} + +void QmlGraphicsPaintedItem::setCacheFrozen(bool frozen) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->cachefrozen == frozen) + return; + d->cachefrozen = frozen; + // XXX clear cache? +} + +/*! + \reimp +*/ +void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsPaintedItem); + const QRect content(QPoint(0,0),d->contentsSize); + if (content.width() <= 0 || content.height() <= 0) + return; + + ++inpaint; + + QRectF clipf = p->clipRegion().boundingRect(); + if (clipf.isEmpty()) + clipf = mapToScene(content).boundingRect(); // ### Inefficient: Maps toScene and then fromScene + else + clipf = mapToScene(clipf).boundingRect(); + + const QRect clip = mapFromScene(clipf).boundingRect().toRect(); + + QRegion topaint(clip); + topaint &= content; + QRegion uncached(content); + + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + if (topaint.contains(area)) { + QRectF target(area.x(), area.y(), area.width(), area.height()); + if (!d->cachefrozen) { + if (!d->imagecache[i]->dirty.isNull() && topaint.contains(d->imagecache[i]->dirty)) { + QPainter qp(&d->imagecache[i]->image); + qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); + qp.translate(-area.x(), -area.y()); + if (d->fillColor.isValid()){ + if(d->fillColor.alpha() < 255){ + // ### Might not work outside of raster paintengine + QPainter::CompositionMode prev = qp.compositionMode(); + qp.setCompositionMode(QPainter::CompositionMode_Source); + qp.fillRect(d->imagecache[i]->dirty,d->fillColor); + qp.setCompositionMode(prev); + }else{ + qp.fillRect(d->imagecache[i]->dirty,d->fillColor); + } + } + qp.setClipRect(d->imagecache[i]->dirty); + drawContents(&qp, d->imagecache[i]->dirty); + d->imagecache[i]->dirty = QRect(); + } + } + p->drawPixmap(target.toRect(), d->imagecache[i]->image); + topaint -= area; + d->imagecache[i]->age=0; + } else { + d->imagecache[i]->age++; + } + cachesize += area.width()*area.height(); + uncached -= area; + } + + if (!topaint.isEmpty()) { + if (!d->cachefrozen) { + // Find a sensible larger area, otherwise will paint lots of tiny images. + QRect biggerrect = topaint.boundingRect().adjusted(-64,-64,128,128); + cachesize += biggerrect.width() * biggerrect.height(); + while (d->imagecache.count() && cachesize > d->max_imagecache_size) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + uncached += d->imagecache[oldest]->area; + d->imagecache.removeAt(oldest); + } + const QRegion bigger = QRegion(biggerrect) & uncached; + const QVector rects = bigger.rects(); + for (int i = 0; i < rects.count(); ++i) { + const QRect &r = rects.at(i); + QPixmap img(r.size()); + if (d->fillColor.isValid()) + img.fill(d->fillColor); + { + QPainter qp(&img); + qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + qp.translate(-r.x(),-r.y()); + drawContents(&qp, r); + } + QmlGraphicsPaintedItemPrivate::ImageCacheItem *newitem = new QmlGraphicsPaintedItemPrivate::ImageCacheItem; + newitem->area = r; + newitem->image = img; + d->imagecache.append(newitem); + p->drawPixmap(r, newitem->image); + } + } else { + const QVector rects = uncached.rects(); + for (int i = 0; i < rects.count(); ++i) + p->fillRect(rects.at(i), Qt::lightGray); + } + } + + if (inpaint_clearcache) { + clearCache(); + inpaint_clearcache = 0; + } + + --inpaint; +} + +/*! + \qmlproperty int PaintedItem::cacheSize + + This property holds the maximum number of pixels of image cache to + allow. The default is 0.1 megapixels. The cache will not be larger + than the (unscaled) size of the item. +*/ + +/*! + \property QmlGraphicsPaintedItem::cacheSize + + The maximum number of pixels of image cache to allow. The default + is 0.1 megapixels. The cache will not be larger than the (unscaled) + size of the QmlGraphicsPaintedItem. +*/ +int QmlGraphicsPaintedItem::cacheSize() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->max_imagecache_size; +} + +void QmlGraphicsPaintedItem::setCacheSize(int pixels) +{ + Q_D(QmlGraphicsPaintedItem); + if (pixels < d->max_imagecache_size) { + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + cachesize += area.width()*area.height(); + } + while (d->imagecache.count() && cachesize > pixels) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + d->imagecache.removeAt(oldest); + } + } + d->max_imagecache_size = pixels; +} + +/*! + \property QmlGraphicsPaintedItem::fillColor + + The color to be used to fill the item prior to calling drawContents(). + By default, this is Qt::transparent. + + Performance improvements can be achieved if subclasses call this with either an + invalid color (QColor()), or an appropriate solid color. +*/ +void QmlGraphicsPaintedItem::setFillColor(const QColor& c) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->fillColor == c) + return; + d->fillColor = c; + emit fillColorChanged(); + update(); +} + +QColor QmlGraphicsPaintedItem::fillColor() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->fillColor; +} + + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspainteditem.h b/src/declarative/fx/qmlgraphicspainteditem.h new file mode 100644 index 0000000..7ff55a5 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspainteditem.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEITEM_H +#define QMLGRAPHICSIMAGEITEM_H + +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsPaintedItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) + Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) + Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) + +public: + QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsPaintedItem(); + + QSize contentsSize() const; + void setContentsSize(const QSize &); + + int cacheSize() const; + void setCacheSize(int pixels); + + QColor fillColor() const; + void setFillColor(const QColor&); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +protected: + QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); + + virtual void drawContents(QPainter *p, const QRect &) = 0; + + void setCacheFrozen(bool); + +Q_SIGNALS: + void fillColorChanged(); + +protected Q_SLOTS: + void dirtyCache(const QRect &); + void clearCache(); + +private: + void init(); + Q_DISABLE_COPY(QmlGraphicsPaintedItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPaintedItem) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicspainteditem_p.h b/src/declarative/fx/qmlgraphicspainteditem_p.h new file mode 100644 index 0000000..d5cd673 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspainteditem_p.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEITEM_P_H +#define QMLGRAPHICSIMAGEITEM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) + +public: + QmlGraphicsPaintedItemPrivate() + : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) + { + } + + struct ImageCacheItem { + ImageCacheItem() : age(0) {} + ~ImageCacheItem() { } + int age; + QRect area; + QRect dirty; // one dirty area (allows optimization of common cases) + QPixmap image; + }; + + QList imagecache; + + int max_imagecache_size; + QSize contentsSize; + QColor fillColor; + bool cachefrozen; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicspath.cpp b/src/declarative/fx/qmlgraphicspath.cpp new file mode 100644 index 0000000..15dbfef --- /dev/null +++ b/src/declarative/fx/qmlgraphicspath.cpp @@ -0,0 +1,839 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicspath.h" +#include "qmlgraphicspath_p.h" +#include +#include +#include + + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QmlGraphicsPath) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsPathElement) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsCurve) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QmlGraphicsPathAttribute) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QmlGraphicsPathPercent) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QmlGraphicsPathLine) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QmlGraphicsPathQuad) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QmlGraphicsPathCubic) + +/*! + \qmlclass PathElement + \brief PathElement is the base path type. + + This type is the base for all path types. It cannot + be instantiated. + + \sa Path, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPathElement + \ingroup group_utility +*/ + +/*! + \qmlclass Path QmlGraphicsPath + \brief A Path object defines a path for use by \l PathView. + + A Path is composed of one or more path segments - PathLine, PathQuad, + PathCubic. + + The spacing of the items along the Path can be adjusted via a + PathPercent object. + + PathAttribute allows named attributes with values to be defined + along the path. + + \sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPath + \ingroup group_utility + \brief The QmlGraphicsPath class defines a path. + \sa QmlGraphicsPathView +*/ +QmlGraphicsPath::QmlGraphicsPath(QObject *parent) + : QObject(*(new QmlGraphicsPathPrivate), parent) +{ +} + +QmlGraphicsPath::QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent) + : QObject(dd, parent) +{ +} + +QmlGraphicsPath::~QmlGraphicsPath() +{ +} + +/*! + \qmlproperty real Path::startX + \qmlproperty real Path::startY + This property holds the starting position of the path. +*/ +qreal QmlGraphicsPath::startX() const +{ + Q_D(const QmlGraphicsPath); + return d->startX; +} + +void QmlGraphicsPath::setStartX(qreal x) +{ + Q_D(QmlGraphicsPath); + d->startX = x; +} + +qreal QmlGraphicsPath::startY() const +{ + Q_D(const QmlGraphicsPath); + return d->startY; +} + +void QmlGraphicsPath::setStartY(qreal y) +{ + Q_D(QmlGraphicsPath); + d->startY = y; +} + +/*! + \qmlproperty list Path::pathElements + This property holds the objects composing the path. + + \default + + A path can contain the following path objects: + \list + \i \l PathLine - a straight line to a given position. + \i \l PathQuad - a quadratic Bezier curve to a given position with a control point. + \i \l PathCubic - a cubic Bezier curve to a given position with two control points. + \i \l PathAttribute - an attribute at a given position in the path. + \i \l PathPercent - a way to spread out items along various segments of the path. + \endlist + + \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 2 +*/ + +QList* QmlGraphicsPath::pathElements() +{ + Q_D(QmlGraphicsPath); + return &(d->_pathElements); +} + +void QmlGraphicsPath::interpolate(int idx, const QString &name, qreal value) +{ + Q_D(QmlGraphicsPath); + if (!idx) + return; + + qreal lastValue = 0; + qreal lastPercent = 0; + int search = idx - 1; + while(search >= 0) { + const AttributePoint &point = d->_attributePoints.at(search); + if (point.values.contains(name)) { + lastValue = point.values.value(name); + lastPercent = point.origpercent; + break; + } + --search; + } + + ++search; + + const AttributePoint &curPoint = d->_attributePoints.at(idx); + + for (int ii = search; ii < idx; ++ii) { + AttributePoint &point = d->_attributePoints[ii]; + + qreal val = lastValue + (value - lastValue) * (point.origpercent - lastPercent) / (curPoint.origpercent - lastPercent); + point.values.insert(name, val); + } +} + +void QmlGraphicsPath::endpoint(const QString &name) +{ + Q_D(QmlGraphicsPath); + const AttributePoint &first = d->_attributePoints.first(); + qreal val = first.values.value(name); + for (int ii = d->_attributePoints.count() - 1; ii >= 0; ii--) { + const AttributePoint &point = d->_attributePoints.at(ii); + if (point.values.contains(name)) { + for (int jj = ii + 1; jj < d->_attributePoints.count(); ++jj) { + AttributePoint &setPoint = d->_attributePoints[jj]; + setPoint.values.insert(name, val); + } + return; + } + } +} + +void QmlGraphicsPath::processPath() +{ + Q_D(QmlGraphicsPath); + + d->_pointCache.clear(); + d->_attributePoints.clear(); + d->_path = QPainterPath(); + + AttributePoint first; + for (int ii = 0; ii < d->_attributes.count(); ++ii) + first.values[d->_attributes.at(ii)] = 0; + d->_attributePoints << first; + + d->_path.moveTo(d->startX, d->startY); + + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsCurve *curve = qobject_cast(pathElement)) { + curve->addToPath(d->_path); + AttributePoint p; + p.origpercent = d->_path.length(); + d->_attributePoints << p; + } else if (QmlGraphicsPathAttribute *attribute = qobject_cast(pathElement)) { + AttributePoint &point = d->_attributePoints.last(); + point.values[attribute->name()] = attribute->value(); + interpolate(d->_attributePoints.count() - 1, attribute->name(), attribute->value()); + } else if (QmlGraphicsPathPercent *percent = qobject_cast(pathElement)) { + AttributePoint &point = d->_attributePoints.last(); + point.values[QLatin1String("_qfx_percent")] = percent->value(); + interpolate(d->_attributePoints.count() - 1, QLatin1String("_qfx_percent"), percent->value()); + } + } + + // Fixup end points + const AttributePoint &last = d->_attributePoints.last(); + for (int ii = 0; ii < d->_attributes.count(); ++ii) { + if (!last.values.contains(d->_attributes.at(ii))) + endpoint(d->_attributes.at(ii)); + } + + // Adjust percent + qreal length = d->_path.length(); + qreal prevpercent = 0; + qreal prevorigpercent = 0; + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + const AttributePoint &point = d->_attributePoints.at(ii); + if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QmlGraphicsPathPercent + if ( ii > 0) { + qreal scale = (d->_attributePoints[ii].origpercent/length - prevorigpercent) / + (point.values.value(QLatin1String("_qfx_percent"))-prevpercent); + d->_attributePoints[ii].scale = scale; + } + d->_attributePoints[ii].origpercent /= length; + d->_attributePoints[ii].percent = point.values.value(QLatin1String("_qfx_percent")); + prevorigpercent = d->_attributePoints[ii].origpercent; + prevpercent = d->_attributePoints[ii].percent; + } else { + d->_attributePoints[ii].origpercent /= length; + d->_attributePoints[ii].percent = d->_attributePoints[ii].origpercent; + } + } + + emit changed(); +} + +void QmlGraphicsPath::componentComplete() +{ + Q_D(QmlGraphicsPath); + QSet attrs; + // First gather up all the attributes + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsPathAttribute *attribute = + qobject_cast(pathElement)) + attrs.insert(attribute->name()); + } + d->_attributes = attrs.toList(); + + processPath(); + + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) + connect(pathElement, SIGNAL(changed()), this, SLOT(processPath())); +} + +QPainterPath QmlGraphicsPath::path() const +{ + Q_D(const QmlGraphicsPath); + return d->_path; +} + +QStringList QmlGraphicsPath::attributes() const +{ + Q_D(const QmlGraphicsPath); + return d->_attributes; +} +#include + +static inline QBezier nextBezier(const QPainterPath &path, int *from, qreal *bezLength) +{ + const int lastElement = path.elementCount() - 1; + for (int i=*from; i <= lastElement; ++i) { + const QPainterPath::Element &e = path.elementAt(i); + + switch (e.type) { + case QPainterPath::MoveToElement: + break; + case QPainterPath::LineToElement: + { + QLineF line(path.elementAt(i-1), e); + *bezLength = line.length(); + QPointF a = path.elementAt(i-1); + QPointF delta = e - a; + *from = i+1; + return QBezier::fromPoints(a, a + delta / 3, a + 2 * delta / 3, e); + } + case QPainterPath::CurveToElement: + { + QBezier b = QBezier::fromPoints(path.elementAt(i-1), + e, + path.elementAt(i+1), + path.elementAt(i+2)); + *bezLength = b.length(); + *from = i+3; + return b; + } + default: + break; + } + } + *from = lastElement; + *bezLength = 0; + return QBezier(); +} + +void QmlGraphicsPath::createPointCache() const +{ + Q_D(const QmlGraphicsPath); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer pc; +#endif + qreal pathLength = d->_path.length(); + const int points = int(pathLength*2); + const int lastElement = d->_path.elementCount() - 1; + d->_pointCache.resize(points+1); + + int currElement = 0; + qreal bezLength = 0; + QBezier currBez = nextBezier(d->_path, &currElement, &bezLength); + qreal currLength = bezLength; + qreal epc = currLength / pathLength; + + for (int i = 0; i < d->_pointCache.size(); i++) { + //find which set we are in + qreal prevPercent = 0; + qreal prevOrigPercent = 0; + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + qreal percent = qreal(i)/points; + const AttributePoint &point = d->_attributePoints.at(ii); + if (percent < point.percent || ii == d->_attributePoints.count() - 1) { //### || is special case for very last item + qreal elementPercent = (percent - prevPercent); + + qreal spc = prevOrigPercent + elementPercent * point.scale; + + while (spc > epc) { + if (currElement > lastElement) + break; + currBez = nextBezier(d->_path, &currElement, &bezLength); + if (bezLength == 0.0) { + currLength = pathLength; + epc = 1.0; + break; + } + currLength += bezLength; + epc = currLength / pathLength; + } + qreal realT = (pathLength * spc - (currLength - bezLength)) / bezLength; + d->_pointCache[i] = currBez.pointAt(qBound(qreal(0), realT, qreal(1))); + break; + } + prevOrigPercent = point.origpercent; + prevPercent = point.percent; + } + } +} + +QPointF QmlGraphicsPath::pointAt(qreal p) const +{ + Q_D(const QmlGraphicsPath); + if (d->_pointCache.isEmpty()) { + createPointCache(); + } + int idx = qRound(p*d->_pointCache.size()); + if (idx >= d->_pointCache.size()) + idx = d->_pointCache.size() - 1; + else if (idx < 0) + idx = 0; + return d->_pointCache.at(idx); +} + +qreal QmlGraphicsPath::attributeAt(const QString &name, qreal percent) const +{ + Q_D(const QmlGraphicsPath); + if (percent < 0 || percent > 1) + return 0; + + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + const AttributePoint &point = d->_attributePoints.at(ii); + + if (point.percent == percent) { + return point.values.value(name); + } else if (point.percent > percent) { + qreal lastValue = + ii?(d->_attributePoints.at(ii - 1).values.value(name)):0; + qreal lastPercent = + ii?(d->_attributePoints.at(ii - 1).percent):0; + qreal curValue = point.values.value(name); + qreal curPercent = point.percent; + + return lastValue + (curValue - lastValue) * (percent - lastPercent) / (curPercent - lastPercent); + } + } + + return 0; +} + +/****************************************************************************/ + +qreal QmlGraphicsCurve::x() const +{ + return _x; +} + +void QmlGraphicsCurve::setX(qreal x) +{ + if (_x != x) { + _x = x; + emit changed(); + } +} + +qreal QmlGraphicsCurve::y() const +{ + return _y; +} + +void QmlGraphicsCurve::setY(qreal y) +{ + if (_y != y) { + _y = y; + emit changed(); + } +} + +/****************************************************************************/ + +/*! + \qmlclass PathAttribute + \brief The PathAttribute allows setting an attribute at a given position in a Path. + + The PathAttribute object allows attibutes consisting of a name and + a value to be specified for the endpoints of path segments. The + attributes are exposed to the delegate as + \l{qmlintroduction.html#attached-properties} {Attached Properties}. + The value of an attribute at any particular point is interpolated + from the PathAttributes bounding the point. + + The example below shows a path with the items scaled to 30% with + opacity 50% at the top of the path and scaled 100% with opacity + 100% at the bottom. Note the use of the PathView.scale and + PathView.opacity attached properties to set the scale and opacity + of the delegate. + + \table + \row + \o \image declarative-pathattribute.png + \o + \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 0 + \endtable + + \sa Path +*/ + +/*! + \internal + \class QmlGraphicsPathAttribute + \ingroup group_utility + \brief The QmlGraphicsPathAttribute class allows to set the value of an attribute at a given position in the path. + + \sa QmlGraphicsPath +*/ + + +/*! + \qmlproperty string PathAttribute::name + the name of the attribute to change. +*/ + +/*! + the name of the attribute to change. +*/ + +QString QmlGraphicsPathAttribute::name() const +{ + return _name; +} + +void QmlGraphicsPathAttribute::setName(const QString &name) +{ + _name = name; +} + +/*! + \qmlproperty string PathAttribute::value + the new value of the attribute. +*/ + +/*! + the new value of the attribute. +*/ +qreal QmlGraphicsPathAttribute::value() const +{ + return _value; +} + +void QmlGraphicsPathAttribute::setValue(qreal value) +{ + if (_value != value) { + _value = value; + emit changed(); + } +} + +/****************************************************************************/ + +/*! + \qmlclass PathLine + \brief The PathLine defines a straight line. + + The example below creates a path consisting of a straight line from + 0,100 to 200,100: + + \qml + Path { + startX: 0; startY: 100 + PathLine { x: 200; y: 100 } + } + \endqml + + \sa Path, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPathLine + \ingroup group_utility + \brief The QmlGraphicsPathLine class defines a straight line. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlproperty real PathLine::x + \qmlproperty real PathLine::y + + Defines the end point of the line. +*/ + +void QmlGraphicsPathLine::addToPath(QPainterPath &path) +{ + path.lineTo(x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathQuad + \brief The PathQuad defines a quadratic Bezier curve with a control point. + + The following QML produces the path shown below: + \table + \row + \o \image declarative-pathquad.png + \o + \qml + Path { + startX: 0; startY: 0 + PathQuad x: 200; y: 0; controlX: 100; controlY: 150 } + } + \endqml + \endtable + + \sa Path, PathCubic, PathLine +*/ + +/*! + \internal + \class QmlGraphicsPathQuad + \ingroup group_utility + \brief The QmlGraphicsPathQuad class defines a quadratic Bezier curve with a control point. + + \sa QmlGraphicsPath +*/ + + +/*! + \qmlproperty real PathQuad::x + \qmlproperty real PathQuad::y + + Defines the end point of the curve. +*/ + +/*! + \qmlproperty real PathQuad::controlX + \qmlproperty real PathQuad::controlY + + Defines the position of the control point. +*/ + +/*! + the x position of the control point. +*/ +qreal QmlGraphicsPathQuad::controlX() const +{ + return _controlX; +} + +void QmlGraphicsPathQuad::setControlX(qreal x) +{ + if (_controlX != x) { + _controlX = x; + emit changed(); + } +} + + +/*! + the y position of the control point. +*/ +qreal QmlGraphicsPathQuad::controlY() const +{ + return _controlY; +} + +void QmlGraphicsPathQuad::setControlY(qreal y) +{ + if (_controlY != y) { + _controlY = y; + emit changed(); + } +} + +void QmlGraphicsPathQuad::addToPath(QPainterPath &path) +{ + path.quadTo(controlX(), controlY(), x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathCubic + \brief The PathCubic defines a cubic Bezier curve with two control points. + + The following QML produces the path shown below: + \table + \row + \o \image declarative-pathcubic.png + \o + \qml + Path { + startX: 20; startY: 0 + PathCubic { + x: 180; y: 0; control1X: -10; control1Y: 90 + control2X: 210; control2Y: 90 + } + } + \endqml + \endtable + + \sa Path, PathQuad, PathLine +*/ + +/*! + \internal + \class QmlGraphicsPathCubic + \ingroup group_utility + \brief The QmlGraphicsPathCubic class defines a cubic Bezier curve with two control points. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlproperty real PathCubic::x + \qmlproperty real PathCubic::y + + Defines the end point of the curve. +*/ + +/*! + \qmlproperty real PathCubic::control1X + \qmlproperty real PathCubic::control1Y + + Defines the position of the first control point. +*/ +qreal QmlGraphicsPathCubic::control1X() const +{ + return _control1X; +} + +void QmlGraphicsPathCubic::setControl1X(qreal x) +{ + if (_control1X != x) { + _control1X = x; + emit changed(); + } +} + +qreal QmlGraphicsPathCubic::control1Y() const +{ + return _control1Y; +} + +void QmlGraphicsPathCubic::setControl1Y(qreal y) +{ + if (_control1Y != y) { + _control1Y = y; + emit changed(); + } +} + +/*! + \qmlproperty real PathCubic::control2X + \qmlproperty real PathCubic::control2Y + + Defines the position of the second control point. +*/ +qreal QmlGraphicsPathCubic::control2X() const +{ + return _control2X; +} + +void QmlGraphicsPathCubic::setControl2X(qreal x) +{ + if (_control2X != x) { + _control2X = x; + emit changed(); + } +} + +qreal QmlGraphicsPathCubic::control2Y() const +{ + return _control2Y; +} + +void QmlGraphicsPathCubic::setControl2Y(qreal y) +{ + if (_control2Y != y) { + _control2Y = y; + emit changed(); + } +} + +void QmlGraphicsPathCubic::addToPath(QPainterPath &path) +{ + path.cubicTo(control1X(), control1Y(), control2X(), control2Y(), x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathPercent + \brief The PathPercent manipulates the way a path is interpreted. + + The examples below show the normal distrubution of items along a path + compared to a distribution which places 50% of the items along the + PathLine section of the path. + \table + \row + \o \image declarative-nopercent.png + \o + \qml + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathLine { x: 150; y: 80 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + } + \endqml + \row + \o \image declarative-percent.png + \o + \qml + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathPercent { value: 0.25 } + PathLine { x: 150; y: 80 } + PathPercent { value: 0.75 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + PathPercent { value: 1 } + } + \endqml + \endtable + + \sa Path +*/ + +/*! + \internal + \class QmlGraphicsPathPercent + \ingroup group_utility + \brief The QmlGraphicsPathPercent class manipulates the way a path is interpreted. + + QmlGraphicsPathPercent allows you to bunch up items (or spread out items) along various + segments of a QmlGraphicsPathView's path. + + \sa QmlGraphicsPath + +*/ + +qreal QmlGraphicsPathPercent::value() const +{ + return _value; +} + +void QmlGraphicsPathPercent::setValue(qreal value) +{ + _value = value; +} +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspath.h b/src/declarative/fx/qmlgraphicspath.h new file mode 100644 index 0000000..db6c84f --- /dev/null +++ b/src/declarative/fx/qmlgraphicspath.h @@ -0,0 +1,259 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATH_H +#define QMLGRAPHICSPATH_H + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject +{ + Q_OBJECT +public: + QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} +Q_SIGNALS: + void changed(); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) +public: + QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} + + + QString name() const; + void setName(const QString &name); + + qreal value() const; + void setValue(qreal value); + +private: + QString _name; + qreal _value; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) + Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) +public: + QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} + + qreal x() const; + void setX(qreal x); + + qreal y() const; + void setY(qreal y); + + virtual void addToPath(QPainterPath &) {} + +private: + qreal _x; + qreal _y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve +{ + Q_OBJECT +public: + QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} + + void addToPath(QPainterPath &path); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) + Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) +public: + QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} + + qreal controlX() const; + void setControlX(qreal x); + + qreal controlY() const; + void setControlY(qreal y); + + void addToPath(QPainterPath &path); + +private: + qreal _controlX; + qreal _controlY; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) + Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) + Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) + Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) +public: + QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} + + qreal control1X() const; + void setControl1X(qreal x); + + qreal control1Y() const; + void setControl1Y(qreal y); + + qreal control2X() const; + void setControl2X(qreal x); + + qreal control2Y() const; + void setControl2Y(qreal y); + + void addToPath(QPainterPath &path); + +private: + int _control1X; + int _control1Y; + int _control2X; + int _control2Y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement +{ + Q_OBJECT + Q_PROPERTY(qreal value READ value WRITE setValue) +public: + QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} + + qreal value() const; + void setValue(qreal value); + +private: + qreal _value; +}; + +class QmlGraphicsPathPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus +{ + Q_OBJECT + + Q_INTERFACES(QmlParserStatus) + Q_PROPERTY(QList* pathElements READ pathElements) + Q_PROPERTY(qreal startX READ startX WRITE setStartX) + Q_PROPERTY(qreal startY READ startY WRITE setStartY) + Q_CLASSINFO("DefaultProperty", "pathElements") + Q_INTERFACES(QmlParserStatus) +public: + QmlGraphicsPath(QObject *parent=0); + ~QmlGraphicsPath(); + + QList* pathElements(); + + qreal startX() const; + void setStartX(qreal x); + + qreal startY() const; + void setStartY(qreal y); + + QPainterPath path() const; + QStringList attributes() const; + qreal attributeAt(const QString &, qreal) const; + QPointF pointAt(qreal) const; + +Q_SIGNALS: + void changed(); + +protected: + virtual void componentComplete(); + QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); + +private Q_SLOTS: + void processPath(); + +private: + struct AttributePoint { + AttributePoint() : percent(0), scale(1), origpercent(0) {} + AttributePoint(const AttributePoint &other) + : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} + AttributePoint &operator=(const AttributePoint &other) { + percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; + } + qreal percent; //massaged percent along the painter path + qreal scale; + qreal origpercent; //'real' percent along the painter path + QHash values; + }; + + void interpolate(int idx, const QString &name, qreal value); + void endpoint(const QString &name); + void createPointCache() const; + +private: + Q_DISABLE_COPY(QmlGraphicsPath) + Q_DECLARE_PRIVATE(QmlGraphicsPath) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPathElement) +QML_DECLARE_TYPE(QmlGraphicsPathAttribute) +QML_DECLARE_TYPE(QmlGraphicsCurve) +QML_DECLARE_TYPE(QmlGraphicsPathLine) +QML_DECLARE_TYPE(QmlGraphicsPathQuad) +QML_DECLARE_TYPE(QmlGraphicsPathCubic) +QML_DECLARE_TYPE(QmlGraphicsPathPercent) +QML_DECLARE_TYPE(QmlGraphicsPath) + +QT_END_HEADER + +#endif // QMLGRAPHICSPATH_H diff --git a/src/declarative/fx/qmlgraphicspath_p.h b/src/declarative/fx/qmlgraphicspath_p.h new file mode 100644 index 0000000..7c0e1ea --- /dev/null +++ b/src/declarative/fx/qmlgraphicspath_p.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATH_P_H +#define QMLGRAPHICSPATH_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "private/qobject_p.h" +#include "qmlgraphicspath.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QmlGraphicsPathPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPath) + +public: + QmlGraphicsPathPrivate() : startX(0), startY(0) { } + + QPainterPath _path; + QList _pathElements; + mutable QVector _pointCache; + QList _attributePoints; + QStringList _attributes; + int startX; + int startY; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicspathview.cpp b/src/declarative/fx/qmlgraphicspathview.cpp new file mode 100644 index 0000000..48d9fc8 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspathview.cpp @@ -0,0 +1,913 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include "qmlstate.h" +#include "qlistmodelinterface.h" +#include "qmlopenmetaobject.h" + +#include "qmlgraphicspathview.h" +#include "qmlgraphicspathview_p.h" +#include + +static const int FlickThreshold = 5; + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QmlGraphicsPathView) + +class QmlGraphicsPathViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsPathViewAttached(QObject *parent) + : QObject(parent), mo(new QmlOpenMetaObject(this)) + { + } + + ~QmlGraphicsPathViewAttached() + { + QmlGraphicsPathView::attachedProperties.remove(parent()); + } + + QVariant value(const QByteArray &name) const + { + return mo->value(name); + } + void setValue(const QByteArray &name, const QVariant &val) + { + mo->setValue(name, val); + } + +private: + QmlOpenMetaObject *mo; +}; + + +/*! + \internal + \class QmlGraphicsPathView + \brief The QmlGraphicsPathView class lays out items provided by a model on a path. + + \ingroup group_views + + The model must be a \l QListModelInterface subclass. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlclass PathView + \brief The PathView element lays out model-provided items on a path. + \inherits Item + + The model is typically provided by a QAbstractListModel "C++ model object", but can also be created directly in QML. + + The items are laid out along a path defined by a \l Path and may be flicked to scroll. + + \snippet doc/src/snippets/declarative/pathview/pathview.qml 0 + + \image pathview.gif + + \sa Path +*/ + +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPathViewPrivate), parent) +{ + Q_D(QmlGraphicsPathView); + d->init(); +} + +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsPathView); + d->init(); +} + +QmlGraphicsPathView::~QmlGraphicsPathView() +{ + Q_D(QmlGraphicsPathView); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlproperty model PathView::model + This property holds the model providing data for the view. + + The model provides a set of data that is used to create the items for the view. + For large or dynamic datasets the model is usually provided by a C++ model object. + Models can also be created directly in XML, using the ListModel element. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsPathView::model() const +{ + Q_D(const QmlGraphicsPathView); + return d->modelVariant; +} + +void QmlGraphicsPathView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsPathView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + for (int i=0; iitems.count(); i++){ + QmlGraphicsItem *p = d->items[i]; + d->model->release(p); + } + d->items.clear(); + } + + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + } + d->firstIndex = 0; + d->pathOffset = 0; + d->regenerate(); + d->fixOffset(); +} + +/*! + \qmlproperty int PathView::count + This property holds the number of items in the model. +*/ +int QmlGraphicsPathView::count() const +{ + Q_D(const QmlGraphicsPathView); + return d->model ? d->model->count() : 0; +} + +/*! + \qmlproperty Path PathView::path + \default + This property holds the path used to lay out the items. + For more information see the \l Path documentation. +*/ +QmlGraphicsPath *QmlGraphicsPathView::path() const +{ + Q_D(const QmlGraphicsPathView); + return d->path; +} + +void QmlGraphicsPathView::setPath(QmlGraphicsPath *path) +{ + Q_D(QmlGraphicsPathView); + d->path = path; + connect(d->path, SIGNAL(changed()), this, SLOT(refill())); + d->regenerate(); +} + +/*! + \qmlproperty int PathView::currentIndex + This property holds the index of the current item. +*/ +int QmlGraphicsPathView::currentIndex() const +{ + Q_D(const QmlGraphicsPathView); + return d->currentIndex; +} + +void QmlGraphicsPathView::setCurrentIndex(int idx) +{ + Q_D(QmlGraphicsPathView); + if (d->model && d->model->count()) + idx = qAbs(idx % d->model->count()); + if (d->model && idx != d->currentIndex) { + d->currentIndex = idx; + if (d->model->count()) { + d->snapToCurrent(); + int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count(); + if (itemIndex < d->items.count()) + d->items.at(itemIndex)->setFocus(true); + } + emit currentIndexChanged(); + } +} + +/*! + \qmlproperty real PathView::offset + + The offset specifies how far along the path the items are from their initial positions. +*/ +qreal QmlGraphicsPathView::offset() const +{ + Q_D(const QmlGraphicsPathView); + return d->_offset; +} + +void QmlGraphicsPathView::setOffset(qreal offset) +{ + Q_D(QmlGraphicsPathView); + d->setOffset(offset); + d->updateCurrent(); +} + +void QmlGraphicsPathViewPrivate::setOffset(qreal o) +{ + Q_Q(QmlGraphicsPathView); + if (_offset != o) { + _offset = fmod(o, 100.0); + if (_offset < 0) + _offset = 100.0 + _offset; + q->refill(); + } +} + +/*! + \qmlproperty real PathView::snapPosition + + This property determines the position (0-100) the nearest item will snap to. +*/ +qreal QmlGraphicsPathView::snapPosition() const +{ + Q_D(const QmlGraphicsPathView); + return d->snapPos; +} + +void QmlGraphicsPathView::setSnapPosition(qreal pos) +{ + Q_D(QmlGraphicsPathView); + d->snapPos = pos/100; + d->fixOffset(); +} + +/*! + \qmlproperty real PathView::dragMargin + This property holds the maximum distance from the path that initiate mouse dragging. + + By default the path can only be dragged by clicking on an item. If + dragMargin is greater than zero, a drag can be initiated by clicking + within dragMargin pixels of the path. +*/ +qreal QmlGraphicsPathView::dragMargin() const +{ + Q_D(const QmlGraphicsPathView); + return d->dragMargin; +} + +void QmlGraphicsPathView::setDragMargin(qreal dragMargin) +{ + Q_D(QmlGraphicsPathView); + d->dragMargin = dragMargin; +} + +/*! + \qmlproperty component PathView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 +*/ +QmlComponent *QmlGraphicsPathView::delegate() const +{ + Q_D(const QmlGraphicsPathView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsPathView::setDelegate(QmlComponent *c) +{ + Q_D(QmlGraphicsPathView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(c); + d->regenerate(); + } +} + +/*! + \qmlproperty int PathView::pathItemCount + This property holds the number of items visible on the path at any one time +*/ +int QmlGraphicsPathView::pathItemCount() const +{ + Q_D(const QmlGraphicsPathView); + return d->pathItems; +} + +void QmlGraphicsPathView::setPathItemCount(int i) +{ + Q_D(QmlGraphicsPathView); + if (i == d->pathItems) + return; + d->pathItems = i; + d->regenerate(); +} + +QPointF QmlGraphicsPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const +{ + //XXX maybe do recursively at increasing resolution. + qreal mindist = 1e10; // big number + QPointF nearPoint = path->pointAt(0); + qreal nearPc = 0; + for (qreal i=1; i < 1000; i++) { + QPointF pt = path->pointAt(i/1000.0); + QPointF diff = pt - point; + qreal dist = diff.x()*diff.x() + diff.y()*diff.y(); + if (dist < mindist) { + nearPoint = pt; + nearPc = i; + mindist = dist; + } + } + + if (nearPercent) + *nearPercent = nearPc / 10.0; + + return nearPoint; +} + + +void QmlGraphicsPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + if (!d->items.count()) + return; + QPointF scenePoint = mapToScene(event->pos()); + int idx = 0; + for (; idx < d->items.count(); ++idx) { + QRectF rect = d->items.at(idx)->boundingRect(); + rect = d->items.at(idx)->mapToScene(rect).boundingRect(); + if (rect.contains(scenePoint)) + break; + } + if (idx == d->items.count() && d->dragMargin == 0.) // didn't click on an item + return; + + d->startPoint = d->pointNear(event->pos(), &d->startPc); + if (idx == d->items.count()) { + qreal distance = qAbs(event->pos().x() - d->startPoint.x()) + qAbs(event->pos().y() - d->startPoint.y()); + if (distance > d->dragMargin) + return; + } + + d->stealMouse = false; + d->lastElapsed = 0; + d->lastDist = 0; + QmlGraphicsItemPrivate::start(d->lastPosTime); + d->tl.clear(); +} + +void QmlGraphicsPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + if (d->lastPosTime.isNull()) + return; + + if (!d->stealMouse) { + QPointF delta = event->pos() - d->startPoint; + if (qAbs(delta.x()) > FlickThreshold && qAbs(delta.y()) > FlickThreshold) + d->stealMouse = true; + } + + if (d->stealMouse) { + d->moveReason = QmlGraphicsPathViewPrivate::Mouse; + qreal newPc; + d->pointNear(event->pos(), &newPc); + qreal diff = newPc - d->startPc; + if (diff) { + setOffset(d->_offset + diff); + + if (diff > 50) + diff -= 100; + else if (diff < -50) + diff += 100; + + d->lastElapsed = QmlGraphicsItemPrivate::restart(d->lastPosTime); + d->lastDist = diff; + d->startPc = newPc; + } + } +} + +void QmlGraphicsPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) +{ + Q_D(QmlGraphicsPathView); + if (d->lastPosTime.isNull()) + return; + + qreal elapsed = qreal(d->lastElapsed + QmlGraphicsItemPrivate::elapsed(d->lastPosTime)) / 1000.; + qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0; + if (d->model && d->model->count() && qAbs(velocity) > 5) { + if (velocity > 100) + velocity = 100; + else if (velocity < -100) + velocity = -100; + qreal inc = fmod(d->_offset - d->snapPos, 100.0 / d->model->count()); + qreal dist = qAbs(velocity/2 - fmod(velocity/2, 100.0 / d->model->count()) - inc); + d->moveOffset.setValue(d->_offset); + d->tl.accel(d->moveOffset, velocity, 10, dist); + d->tl.execute(d->fixupOffsetEvent); + } else { + d->fixOffset(); + } + + d->lastPosTime = QTime(); + d->stealMouse = false; + ungrabMouse(); +} + +bool QmlGraphicsPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + QGraphicsSceneMouseEvent mouseEvent(event->type()); + QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); + QGraphicsScene *s = scene(); + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { + mouseEvent.setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); + } + } + mouseEvent.setScenePos(event->scenePos()); + mouseEvent.setLastScenePos(event->lastScenePos()); + mouseEvent.setPos(mapFromScene(event->scenePos())); + mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); + + switch(mouseEvent.type()) { + case QEvent::GraphicsSceneMouseMove: + mouseMoveEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMousePress: + mousePressEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMouseRelease: + mouseReleaseEvent(&mouseEvent); + break; + default: + break; + } + grabber = qobject_cast(s->mouseGrabberItem()); + if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) + grabMouse(); + + return d->stealMouse; + } else if (!d->lastPosTime.isNull()) { + d->lastPosTime = QTime(); + } + return false; +} + +bool QmlGraphicsPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) +{ + if (!isVisible()) + return QmlGraphicsItem::sceneEventFilter(i, e); + + switch (e->type()) { + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMouseRelease: + { + bool ret = sendMouseEvent(static_cast(e)); + if (e->type() == QEvent::GraphicsSceneMouseRelease) + return ret; + break; + } + default: + break; + } + + return QmlGraphicsItem::sceneEventFilter(i, e); +} + +void QmlGraphicsPathView::componentComplete() +{ + Q_D(QmlGraphicsPathView); + QmlGraphicsItem::componentComplete(); + d->regenerate(); + + // move to correct offset + if (d->items.count()) { + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count(); + + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) { + d->moveOffset.setValue(targetOffset); + } + } +} + +void QmlGraphicsPathViewPrivate::regenerate() +{ + Q_Q(QmlGraphicsPathView); + if (!q->isComponentComplete()) + return; + + for (int i=0; i= model->count()) + firstIndex = model->count()-1; + if (pathOffset >= model->count()) + pathOffset = model->count()-1; + + int numItems = pathItems >= 0 ? pathItems : model->count(); + for (int i=0; i < numItems && i < model->count(); ++i){ + int index = (i + firstIndex) % model->count(); + QmlGraphicsItem *item = getItem(index); + if (!item) { + qWarning() << "PathView: Cannot create item, index" << (i + firstIndex) % model->count(); + return; + } + items.append(item); + item->setZValue(i); + if (currentIndex == index) + item->setFocus(true); + } + q->refill(); +} + +void QmlGraphicsPathViewPrivate::updateItem(QmlGraphicsItem *item, qreal percent) +{ + if (QObject *obj = QmlGraphicsPathView::qmlAttachedProperties(item)) { + foreach(const QString &attr, path->attributes()) + static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); + } + QPointF pf = path->pointAt(percent); + item->setX(pf.x() - item->width()*item->scale()/2); + item->setY(pf.y() - item->height()*item->scale()/2); +} + +void QmlGraphicsPathView::refill() +{ + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + + QList positions; + for (int i=0; iitems.count(); i++){ + qreal percent = i * (100. / d->items.count()); + percent = percent + d->_offset; + percent = fmod(percent,100.); + positions << qAbs(percent/100.0); + } + + if (d->pathItems==-1) { + for (int i=0; iupdateItem(d->items.at(i), positions[i]); + return; + } + + QList rotatedPositions; + for (int i=0; iitems.count(); i++) + rotatedPositions << positions[(i + d->pathOffset + d->items.count()) % d->items.count()]; + + int wrapIndex= -1; + for (int i=0; iitems.count()-1; i++) { + if (rotatedPositions[i] > rotatedPositions[i+1]){ + wrapIndex = i; + break; + } + } + if (wrapIndex != -1 ){ + //A wraparound has occured + if (wrapIndex < d->items.count()/2){ + while(wrapIndex-- >= 0){ + QmlGraphicsItem* p = d->items.takeFirst(); + d->updateItem(p, 0.0); + d->releaseItem(p); + d->firstIndex++; + d->firstIndex %= d->model->count(); + int index = (d->firstIndex + d->items.count())%d->model->count(); + QmlGraphicsItem *item = d->getItem(index); + item->setZValue(wrapIndex); + if (d->currentIndex == index) + item->setFocus(true); + d->items << item; + d->pathOffset++; + d->pathOffset=d->pathOffset % d->items.count(); + } + } else { + while(wrapIndex++ < d->items.count()-1){ + QmlGraphicsItem* p = d->items.takeLast(); + d->updateItem(p, 1.0); + d->releaseItem(p); + d->firstIndex--; + if (d->firstIndex < 0) + d->firstIndex = d->model->count() - 1; + QmlGraphicsItem *item = d->getItem(d->firstIndex); + item->setZValue(d->firstIndex); + if (d->currentIndex == d->firstIndex) + item->setFocus(true); + d->items.prepend(item); + d->pathOffset--; + if (d->pathOffset < 0) + d->pathOffset = d->items.count() - 1; + } + } + for (int i=0; iitems.count(); i++) + rotatedPositions[i] = positions[(i + d->pathOffset + d->items.count()) + % d->items.count()]; + } + for (int i=0; iitems.count(); i++) + d->updateItem(d->items.at(i), rotatedPositions[i]); +} + +void QmlGraphicsPathView::itemsInserted(int modelIndex, int count) +{ + //XXX support animated insertion + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + if (d->pathItems == -1) { + for (int i = 0; i < count; ++i) { + QmlGraphicsItem *item = d->getItem(modelIndex + i); + item->setZValue(modelIndex + i); + d->items.insert(modelIndex + i, item); + } + refill(); + } else { + //XXX This is pretty heavy handed until we reference count items. + d->regenerate(); + } + + // make sure the current item is still at the snap position + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) + d->moveOffset.setValue(targetOffset); +} + +void QmlGraphicsPathView::itemsRemoved(int modelIndex, int count) +{ + //XXX support animated removal + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + if (d->pathItems == -1) { + for (int i = 0; i < count; ++i) { + QmlGraphicsItem* p = d->items.takeAt(modelIndex); + d->model->release(p); + } + d->snapToCurrent(); + refill(); + } else { + d->regenerate(); + } + + if (d->model->count() == 0) { + d->currentIndex = -1; + d->moveOffset.setValue(0); + return; + } + + // make sure the current item is still at the snap position + if (d->currentIndex >= d->model->count()) + d->currentIndex = d->model->count() - 1; + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) + d->moveOffset.setValue(targetOffset); +} + +void QmlGraphicsPathView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsPathView); + if (d->requestedIndex != index) { + item->setParentItem(this); + d->updateItem(item, index < d->firstIndex ? 0.0 : 1.0); + } +} + +void QmlGraphicsPathView::destroyingItem(QmlGraphicsItem *item) +{ + Q_UNUSED(item); +} + +void QmlGraphicsPathView::ticked() +{ + Q_D(QmlGraphicsPathView); + d->updateCurrent(); +} + +// find the item closest to the snap position +int QmlGraphicsPathViewPrivate::calcCurrentIndex() +{ + int current = -1; + if (model && items.count()) { + _offset = fmod(_offset, 100.0); + if (_offset < 0) + _offset += 100.0; + + if (pathItems == -1) { + qreal delta = fmod(_offset - snapPos, 100.0); + if (delta < 0) + delta = 100.0 + delta; + int ii = model->count() - qRound(delta * model->count() / 100); + if (ii < 0) + ii = 0; + current = ii; + } else { + qreal bestDiff=1e9; + int bestI=-1; + for (int i=0; icount()); + } + + return current; +} + +void QmlGraphicsPathViewPrivate::updateCurrent() +{ + Q_Q(QmlGraphicsPathView); + if (moveReason != Mouse) + return; + int idx = calcCurrentIndex(); + if (model && idx != currentIndex) { + currentIndex = idx; + int itemIndex = (idx - firstIndex + model->count()) % model->count(); + if (itemIndex < items.count()) + items.at(itemIndex)->setFocus(true); + emit q->currentIndexChanged(); + } +} + +void QmlGraphicsPathViewPrivate::fixOffset() +{ + Q_Q(QmlGraphicsPathView); + if (model && items.count()) { + int curr = calcCurrentIndex(); + if (curr != currentIndex) + q->setCurrentIndex(curr); + else + snapToCurrent(); + } +} + +void QmlGraphicsPathViewPrivate::snapToCurrent() +{ + if (!model || model->count() <= 0) + return; + + int itemIndex = (currentIndex - firstIndex + model->count()) % model->count(); + + //Rounds is the number of times round to make the current item visible + int rounds = itemIndex / items.count(); + int otherWayRounds = (model->count() - (itemIndex)) / items.count() + 1; + if (otherWayRounds < rounds) + rounds = -otherWayRounds; + + itemIndex += pathOffset; + itemIndex %= items.count(); + qreal targetOffset = fmod(100 + (snapPos*100) - 100.0 * itemIndex / items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset == _offset && rounds == 0) + return; + + moveReason = Other; + tl.clear(); + moveOffset.setValue(_offset); + + if (rounds!=0){ + //Compensate if the targetOffset would bring the target it from off the screen + qreal distance = targetOffset - _offset; + if (distance <= -50) + rounds--; + if (distance > 50) + rounds++; + tl.move(moveOffset, targetOffset + 100.0*(-rounds), QEasingCurve(QEasingCurve::InOutQuad), + int(100*items.count()*qMax((qreal)(2.0/items.count()),(qreal)qAbs(rounds)))); + tl.execute(fixupOffsetEvent); + return; + } + + if (targetOffset - _offset > 50.0) { + qreal distance = 100 - targetOffset + _offset; + tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * _offset / distance)); + tl.set(moveOffset, 100.0); + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * (100-targetOffset) / distance)); + } else if (targetOffset - _offset <= -50.0) { + qreal distance = 100 - _offset + targetOffset; + tl.move(moveOffset, 100.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * (100-_offset) / distance)); + tl.set(moveOffset, 0.0); + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * targetOffset / distance)); + } else { + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), 200); + } +} + +QHash QmlGraphicsPathView::attachedProperties; +QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) +{ + QObject *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsPathViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; +} + +QT_END_NAMESPACE + +#include "qfxpathview.moc" diff --git a/src/declarative/fx/qmlgraphicspathview.h b/src/declarative/fx/qmlgraphicspathview.h new file mode 100644 index 0000000..3bb5d1f --- /dev/null +++ b/src/declarative/fx/qmlgraphicspathview.h @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATHVIEW_H +#define QMLGRAPHICSPATHVIEW_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QListModelInterface; +class QmlGraphicsPathViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) + Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) + Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) + Q_PROPERTY(int count READ count) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) + +public: + QmlGraphicsPathView(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsPathView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlGraphicsPath *path() const; + void setPath(QmlGraphicsPath *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + qreal offset() const; + void setOffset(qreal offset); + + qreal snapPosition() const; + void setSnapPosition(qreal pos); + + qreal dragMargin() const; + void setDragMargin(qreal margin); + + int count() const; + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int pathItemCount() const; + void setPathItemCount(int); + + static QObject *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void currentIndexChanged(); + void offsetChanged(); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + bool sceneEventFilter(QGraphicsItem *, QEvent *); + void componentComplete(); + +private Q_SLOTS: + void refill(); + void ticked(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); + +private: + friend class QmlGraphicsPathViewAttached; + static QHash attachedProperties; + Q_DISABLE_COPY(QmlGraphicsPathView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPathView) +QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) +QT_END_HEADER + +#endif // QMLGRAPHICSPATHVIEW_H diff --git a/src/declarative/fx/qmlgraphicspathview_p.h b/src/declarative/fx/qmlgraphicspathview_p.h new file mode 100644 index 0000000..22ee075 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspathview_p.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATHVIEW_P_H +#define QMLGRAPHICSPATHVIEW_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicspathview.h" +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsvisualitemmodel.h" +#include "qml.h" +#include "private/qmlanimation_p.h" + +QT_BEGIN_NAMESPACE + +typedef struct PathViewItem{ + int index; + QmlGraphicsItem* item; +}PathViewItem; + +class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPathView) + +public: + QmlGraphicsPathViewPrivate() + : path(0), currentIndex(0), startPc(0), lastDist(0) + , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) + , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) + , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) + , moveReason(Other) + { + fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); + } + + void init() + { + Q_Q(QmlGraphicsPathView); + _offset = 0; + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + q->setFiltersChildEvents(true); + q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); + } + + QmlGraphicsItem *getItem(int modelIndex) { + Q_Q(QmlGraphicsPathView); + requestedIndex = modelIndex; + QmlGraphicsItem *item = model->item(modelIndex); + if (item) + item->setParentItem(q); + requestedIndex = -1; + return item; + } + void releaseItem(QmlGraphicsItem *item) { + model->release(item); + } + + bool isValid() const { + return model && model->count() > 0 && model->isValid() && path; + } + + int calcCurrentIndex(); + void updateCurrent(); + void fixOffset(); + void setOffset(qreal offset); + void regenerate(); + void updateItem(QmlGraphicsItem *, qreal); + void snapToCurrent(); + QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; + + QmlGraphicsPath *path; + int currentIndex; + qreal startPc; + QPointF startPoint; + qreal lastDist; + int lastElapsed; + qreal _offset; + bool stealMouse : 1; + bool ownModel : 1; + QTime lastPosTime; + QPointF lastPos; + QmlGraphicsItem *activeItem; + qreal snapPos; + qreal dragMargin; + QmlTimeLine tl; + QmlTimeLineValueProxy moveOffset; + QmlTimeLineEvent fixupOffsetEvent; + int firstIndex; + int pathItems; + int pathOffset; + int requestedIndex; + QList items; + QmlGraphicsVisualModel *model; + QVariant modelVariant; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicspixmapcache.cpp b/src/declarative/fx/qmlgraphicspixmapcache.cpp new file mode 100644 index 0000000..e347a8b --- /dev/null +++ b/src/declarative/fx/qmlgraphicspixmapcache.cpp @@ -0,0 +1,282 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicspixmapcache.h" +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QSharedNetworkReply; +typedef QHash QmlGraphicsSharedNetworkReplyHash; +static QmlGraphicsSharedNetworkReplyHash qfxActiveNetworkReplies; + +class QSharedNetworkReply +{ +public: + QSharedNetworkReply(QNetworkReply *r) : reply(r), refCount(1) {} + ~QSharedNetworkReply() + { + reply->deleteLater(); + } + QNetworkReply *reply; + QPixmap pixmap; // ensure reference to pixmap to QPixmapCache does not discard + + int refCount; + void addRef() + { + ++refCount; + } + void release() + { + Q_ASSERT(refCount > 0); + --refCount; + if (refCount == 0) { + QString key = reply->url().toString(); + qfxActiveNetworkReplies.remove(key); + delete this; + } + } +}; + +static bool readImage(QIODevice *dev, QPixmap *pixmap) + { + QImageReader imgio(dev); + +//#define QT_TEST_SCALED_SIZE +#ifdef QT_TEST_SCALED_SIZE + /* + Some mechanism is needed for loading images at a limited size, especially + for remote images. Loading only thumbnails of remote progressive JPEG + images can be efficient. (Qt jpeg handler does not do so currently) + */ + + QSize limit(60,60); + QSize sz = imgio.size(); + if (sz.width() > limit.width() || sz.height() > limit.height()) { + sz.scale(limit,Qt::KeepAspectRatio); + imgio.setScaledSize(sz); + } +#endif + + QImage img; + if (imgio.read(&img)) { +#ifdef QT_TEST_SCALED_SIZE + if (!sz.isValid()) + img = img.scaled(limit,Qt::KeepAspectRatio); +#endif + *pixmap = QPixmap::fromImage(img); + return true; + } else { + qWarning() << imgio.errorString(); + return false; + } + } + +/*! + \internal + \class QmlGraphicsPixmapCache + \brief Enacapsultes a pixmap for QmlGraphics items. + + This class is NOT reentrant. + */ + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + +/*! + Finds the cached pixmap corresponding to \a url. + A previous call to get() must have requested the URL, + and the QNetworkReply must have finished before calling + this function. + + Returns true if the image was loaded without error. +*/ +bool QmlGraphicsPixmapCache::find(const QUrl& url, QPixmap *pixmap) +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer perf; +#endif + + QString key = url.toString(); + bool ok = true; + if (!QPixmapCache::find(key,pixmap)) { +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(url); + if (!lf.isEmpty()) { + QFile f(lf); + if (f.open(QIODevice::ReadOnly)) { + if (!readImage(&f, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + ok = false; + } + } else { + *pixmap = QPixmap(); + ok = false; + } + } else +#endif + { + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) { + // API usage error + qWarning() << "QmlGraphicsPixmapCache: URL not loaded" << url; + ok = false; + } else { + if ((*iter)->reply->error()) { + qWarning() << "Network error loading" << url << (*iter)->reply->errorString(); + *pixmap = QPixmap(); + ok = false; + } else if (!readImage((*iter)->reply, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + ok = false; + } else { + if ((*iter)->refCount > 1) + (*iter)->pixmap = *pixmap; + } + (*iter)->release(); + } + } + QPixmapCache::insert(key, *pixmap); + } else { + ok = !pixmap->isNull(); +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + if (url.scheme()!=QLatin1String("file")) +#endif + // We may be the second finder. Still need to check for active replies. + { + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter != qfxActiveNetworkReplies.end()) + (*iter)->release(); + } + } + return ok; +} + +/*! + Starts a network request to load \a url. + + Returns a QNetworkReply if the image is not immediately available, otherwise + returns 0. Caller should connect to QNetworkReply::finished() to then call + find() when the image is available. + + The returned QNetworkReply will be deleted when all get() calls are + matched by a corresponding find() call. +*/ +QNetworkReply *QmlGraphicsPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) +{ +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(url); + if (!lf.isEmpty()) { + QString key = url.toString(); + if (!QPixmapCache::find(key,pixmap)) { + QFile f(lf); + if (f.open(QIODevice::ReadOnly)) { + if (!readImage(&f, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + } + } else + *pixmap = QPixmap(); + QPixmapCache::insert(key, *pixmap); + } + return 0; + } +#endif + + QString key = url.toString(); + if (QPixmapCache::find(key,pixmap)) { + return 0; + } + + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) { + QNetworkRequest req(url); + QSharedNetworkReply *item = new QSharedNetworkReply(engine->networkAccessManager()->get(req)); + iter = qfxActiveNetworkReplies.insert(key, item); + } else { + (*iter)->addRef(); + } + + return (*iter)->reply; +} + +/*! + Cancels a previous call to get(). + + May also cancel loading (eg. if no other pending request). + + Any connections from the QNetworkReply returned by get() to \a obj will be + disconnected. +*/ +void QmlGraphicsPixmapCache::cancelGet(const QUrl& url, QObject* obj) +{ + QString key = url.toString(); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) + return; + if (obj) + QObject::disconnect((*iter)->reply, 0, obj, 0); + (*iter)->release(); +} + +/*! + This function is mainly for test verification. It returns the number of + requests that are still unfinished. +*/ +int QmlGraphicsPixmapCache::pendingRequests() +{ + return qfxActiveNetworkReplies.count(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspixmapcache.h b/src/declarative/fx/qmlgraphicspixmapcache.h new file mode 100644 index 0000000..5094665 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspixmapcache.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPIXMAPCACHE_H +#define QMLGRAPHICSPIXMAPCACHE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlEngine; +class QNetworkReply; +class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache +{ +public: + static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); + static void cancelGet(const QUrl& url, QObject* obj); + + static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. + + static int pendingRequests(); // mainly for test verification +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLGRAPHICSPIXMAPCACHE_H diff --git a/src/declarative/fx/qmlgraphicspositioners.cpp b/src/declarative/fx/qmlgraphicspositioners.cpp new file mode 100644 index 0000000..31950e6 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspositioners.cpp @@ -0,0 +1,921 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include "qml.h" +#include "qmlstate.h" +#include "qmlstategroup.h" +#include "qmlstateoperations.h" +#include "private/qfxperf_p.h" +#include "qmlgraphicspositioners.h" +#include "qmlgraphicspositioners_p.h" + + +QT_BEGIN_NAMESPACE + +/*! + \internal + \class QmlGraphicsBasePositioner + \ingroup group_layouts + \brief The QmlGraphicsBasePositioner class provides a base for QmlGraphics layouts. + + To create a QmlGraphics Positioner, simply subclass QmlGraphicsBasePositioner and implement + doLayout(), which is automatically called when the layout might need + updating. + + It is strongly recommended that in your implementation of doLayout() + that you use the move, remove and add transitions when those conditions + arise. You can use the applyAdd, applyMove and applyRemove functions + to do this easily. + + Note also that the subclass is responsible for adding the + spacing in between items. +*/ +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsBasePositionerPrivate), parent) +{ + Q_D(QmlGraphicsBasePositioner); + d->init(at); +} + +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsBasePositioner); + d->init(at); +} + +int QmlGraphicsBasePositioner::spacing() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->_spacing; +} + +void QmlGraphicsBasePositioner::setSpacing(int s) +{ + Q_D(QmlGraphicsBasePositioner); + if (s==d->_spacing) + return; + d->_spacing = s; + prePositioning(); + emit spacingChanged(); +} + +QmlTransition *QmlGraphicsBasePositioner::move() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->moveTransition; +} + +void QmlGraphicsBasePositioner::setMove(QmlTransition *mt) +{ + Q_D(QmlGraphicsBasePositioner); + d->moveTransition = mt; +} + +QmlTransition *QmlGraphicsBasePositioner::add() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->addTransition; +} + +void QmlGraphicsBasePositioner::setAdd(QmlTransition *add) +{ + Q_D(QmlGraphicsBasePositioner); + d->addTransition = add; +} + +QmlTransition *QmlGraphicsBasePositioner::remove() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->removeTransition; +} + +void QmlGraphicsBasePositioner::setRemove(QmlTransition *remove) +{ + Q_D(QmlGraphicsBasePositioner); + d->removeTransition = remove; +} + +void QmlGraphicsBasePositioner::componentComplete() +{ + QmlGraphicsItem::componentComplete(); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + prePositioning(); +} + +QVariant QmlGraphicsBasePositioner::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + if (change == ItemChildAddedChange || + change == ItemChildRemovedChange) { + prePositioning(); + } + + return QmlGraphicsItem::itemChange(change, value); +} + +bool QmlGraphicsBasePositioner::event(QEvent *e) +{ + Q_D(QmlGraphicsBasePositioner); + if (e->type() == QEvent::User) { + d->_ep = false; + d->_stableItems += d->_newItems; + d->_leavingItems.clear(); + d->_newItems.clear(); + return true; + } + return QmlGraphicsItem::event(e); +} + +/*! + Items that have just been added to the positioner. This includes invisible items + that have turned visible. +*/ +QSet* QmlGraphicsBasePositioner::newItems() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_newItems; +} + +/*! + Items that are visible in the positioner, not including ones that have just been added. +*/ +QSet* QmlGraphicsBasePositioner::items() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_stableItems; +} + +/*! + Items that have just left the positioner. This includes visible items + that have turned invisible. +*/ +QSet* QmlGraphicsBasePositioner::leavingItems() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_leavingItems; +} + +void QmlGraphicsBasePositioner::prePositioning() +{ + Q_D(QmlGraphicsBasePositioner); + if (!isComponentComplete() || d->_movingItem) + return; + + if (!d->_ep) { + d->_ep = true; + QCoreApplication::postEvent(this, new QEvent(QEvent::User)); + } + QSet allItems; + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child) + continue; + if (!d->_items.contains(child)){ + QObject::connect(child, SIGNAL(visibleChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(opacityChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(heightChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(widthChanged()), + this, SLOT(prePositioning())); + d->_items += child; + } + if (child->opacity() == 0.0){ + if (d->_stableItems.contains(child)){ + d->_leavingItems += child; + d->_stableItems -= child; + } + }else if (!d->_stableItems.contains(child)){ + d->_newItems+=child; + } + allItems += child; + } + QSet deletedItems = d->_items - allItems; + foreach(QmlGraphicsItem *child, d->_items){ + if (!allItems.contains(child)){ + if (!deletedItems.contains(child)) { + QObject::disconnect(child, SIGNAL(opacityChanged()), + this, SLOT(prePositioning())); + QObject::disconnect(child, SIGNAL(heightChanged()), + this, SLOT(prePositioning())); + QObject::disconnect(child, SIGNAL(widthChanged()), + this, SLOT(prePositioning())); + } + d->_items -= child; + } + } + d->_animated.clear(); + doPositioning(); + finishApplyTransitions(); + //Set implicit size to the size of its children + //###To keep this valid, do we need to update on pos change as well? + qreal h = 0.0f; + qreal w = 0.0f; + foreach(QmlGraphicsItem *child, d->_items){ + if(!child->isVisible() || child->opacity() <= 0) + continue; + h = qMax(h, child->y() + child->height()); + w = qMax(w, child->x() + child->width()); + } + setImplicitHeight(h); + setImplicitWidth(w); +} + +void QmlGraphicsBasePositioner::applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions) +{ + Q_D(QmlGraphicsBasePositioner); + if (!target) + return; + + for (int ii=0; ii_animated << target; +} + +void QmlGraphicsBasePositioner::finishApplyTransitions() +{ + Q_D(QmlGraphicsBasePositioner); + // Note that if a transition is not set the transition manager will + // apply the changes directly, in the case someone uses applyAdd/Move/Remove + // without testing add()/move()/remove(). + d->addTransitionManager.transition(d->addActions, d->addTransition); + d->moveTransitionManager.transition(d->moveActions, d->moveTransition); + d->removeTransitionManager.transition(d->removeActions, d->removeTransition); + d->addActions.clear(); + d->moveActions.clear(); + d->removeActions.clear(); +} +void QmlGraphicsBasePositioner::setMovingItem(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsBasePositioner); + d->_movingItem = i; +} + +/*! + Applies the positioner's add transition to the \a target item.\a changes is a list of property,value + pairs which will be changed on the target using the add transition. +*/ +void QmlGraphicsBasePositioner::applyAdd(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->addActions); +} + +/*! + Applies the positioner's move transition to the \a target.\a changes is a list of property,value pairs + which will be changed on the target using the move transition. +*/ +void QmlGraphicsBasePositioner::applyMove(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->moveActions); +} + +/*! + Applies the positioner's remove transition to the \a target item.\a changes is a list of + property,value pairs which will be changed on the target using the remove transition. +*/ +void QmlGraphicsBasePositioner::applyRemove(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->removeActions); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QmlGraphicsColumn) +/*! + \qmlclass Column + \brief The Column item lines up its children vertically. + \inherits Item + + The Column item positions its child items so that they are vertically + aligned and not overlapping. Spacing between items can be added. + + The below example positions differently shaped rectangles using a Column. + \table + \row + \o \image verticalpositioner_example.png + \o + \qml +Column { + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } +} + \endqml + \endtable + + Column also provides for transitions to be set when items are added, moved, + or removed in the positioner. Adding and removing apply both to items which are deleted + or have their position in the document changed so as to no longer be children of the positioner, + as well as to items which have their opacity set to or from zero so as to appear or disappear. + + \table + \row + \o \image verticalpositioner_transition.gif + \o + \qml +Column { + spacing: 2 + remove: ... + add: ... + move: ... + ... +} + \endqml + \endtable + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. + +*/ +/*! + \qmlproperty Transition Column::remove + This property holds the transition to apply when removing an item from the positioner. The transition is only applied to the removed items. + + Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. + + Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. + + \table + \row + \o \image positioner-remove.gif + \o + \qml +Column { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + \endtable + +*/ +/*! + \qmlproperty Transition Column::add + This property holds the transition to be applied when adding an item to the positioner. The transition will only be applied to the added item(s). + + Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. + + \table + \row + \o \image positioner-add.gif + \o + \qml +Column { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + \endtable + +*/ +/*! + \qmlproperty Transition Column::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or when items resize themselves. + + \table + \row + \o \image positioner-move.gif + \o + \qml +Column { + move: Transition { + NumberAnimation { + properties: "y" + ease: "easeOutBounce" + } + } +} + \endqml + \endtable +*/ +/*! + \qmlproperty int Column::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsColumn + \brief The QmlGraphicsColumn class lines up items vertically. + \ingroup group_positioners +*/ +QmlGraphicsColumn::QmlGraphicsColumn(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Vertical, parent) +{ +} + +void QmlGraphicsColumn::doPositioning() +{ + int voffset = 0; + + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child || child->opacity() == 0.0) + continue; + + bool needMove = (child->y() != voffset || child->x()); + + QList > changes; + changes << qMakePair(QString(QLatin1String("y")),QVariant(voffset)); + changes << qMakePair(QString(QLatin1String("x")),QVariant(0)); + if (needMove && items()->contains(child) && move()) { + applyMove(changes,child); + } else if (!items()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + setMovingItem(child); + child->setY(voffset); + setMovingItem(0); + } + voffset += child->height(); + voffset += spacing(); + } +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QmlGraphicsRow) +/*! + \qmlclass Row + \brief The Row item lines up its children horizontally. + \inherits Item + + The Row item positions its child items so that they are + horizontally aligned and not overlapping. Spacing can be added between the + items, and a margin around all items can also be added. It also provides for + transitions to be set when items are added, moved, or removed in the + positioner. Adding and removing apply both to items which are deleted or have + their position in the document changed so as to no longer be children of the + positioner, as well as to items which have their opacity set to or from zero + so as to appear or disappear. + + The below example lays out differently shaped rectangles using a Row. + \qml +Row { + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } +} + \endqml + \image horizontalpositioner_example.png + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. + +*/ +/*! + \qmlproperty Transition Row::remove + This property holds the transition to apply when removing an item from the positioner. + The transition will only be applied to the removed item(s). + + Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. + + Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. + + \qml +Row { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Row::add + This property holds the transition to apply when adding an item to the positioner. + The transition will only be applied to the added item(s). + + Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. + + \qml +Row { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Row::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or when items resize themselves. + + \qml +Row { + id: positioner + move: Transition { + NumberAnimation { + properties: "x" + ease: "easeOutBounce" + } + } +} + \endqml + +*/ +/*! + \qmlproperty int Row::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsRow + \brief The QmlGraphicsRow class lines up items horizontally. + \ingroup group_positioners +*/ +QmlGraphicsRow::QmlGraphicsRow(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Horizontal, parent) +{ +} + +void QmlGraphicsRow::doPositioning() +{ + int hoffset = 0; + + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child || child->opacity() == 0.0) + continue; + + bool needMove = (child->x() != hoffset || child->y()); + + QList > changes; + changes << qMakePair(QString(QLatin1String("x")),QVariant(hoffset)); + changes << qMakePair(QString(QLatin1String("y")),QVariant(0)); + if (needMove && items()->contains(child) && move()) { + applyMove(changes,child); + } else if (!items()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + setMovingItem(child); + child->setX(hoffset); + setMovingItem(0); + } + if(child->width() && child->height()){//don't advance for invisible children + hoffset += child->width(); + hoffset += spacing(); + } + } +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QmlGraphicsGrid) + +/*! + \qmlclass Grid QmlGraphicsGrid + \brief The Grid item positions its children in a grid. + \inherits Item + + The Grid item positions its child items so that they are + aligned in a grid and are not overlapping. Spacing can be added + between the items. It also provides for transitions to be set when items are + added, moved, or removed in the positioner. Adding and removing apply + both to items which are deleted or have their position in the + document changed so as to no longer be children of the positioner, as + well as to items which have their opacity set to or from zero so + as to appear or disappear. + + The Grid defaults to using four columns, and as many rows as + are necessary to fit all the child items. The number of rows + and/or the number of columns can be constrained by setting the rows + or columns properties. The grid positioner calculates a grid with + rectangular cells of sufficient size to hold all items, and then + places the items in the cells, going across then down, and + positioning each item at the (0,0) corner of the cell. The below + example demonstrates this. + + \table + \row + \o \image gridLayout_example.png + \o + \qml +Grid { + columns: 3 + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } + Rectangle { color: "cyan"; width: 50; height: 50 } + Rectangle { color: "magenta"; width: 10; height: 10 } +} + \endqml + \endtable + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. +*/ +/*! + \qmlproperty Transition Grid::remove + This property holds the transition to apply when removing an item from the positioner. + The transition is only applied to the removed item(s). + + Removed can mean that either the object has been deleted or + reparented, and thus is now longer a child of the positioner, or that + the object has had its opacity set to zero, and thus is no longer + visible. + + Note that if the item counts as removed because its opacity is + zero it will not be visible during the transition unless you set + the opacity in the transition, like in the below example. + + \qml +Grid { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Grid::add + This property holds the transition to apply when adding an item to the positioner. + The transition is only applied to the added item(s). + + Added can mean that either the object has been created or + reparented, and thus is now a child or the positioner, or that the + object has had its opacity increased from zero, and thus is now + visible. + + \qml +Grid { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Grid::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or + when items resize themselves. + + \qml +Grid { + move: Transition { + NumberAnimation { + properties: "x,y" + ease: "easeOutBounce" + } + } +} + \endqml + +*/ +/*! + \qmlproperty int Grid::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsGrid + \brief The QmlGraphicsGrid class lays out items in a grid. + \ingroup group_layouts + +*/ +QmlGraphicsGrid::QmlGraphicsGrid(QmlGraphicsItem *parent) : + QmlGraphicsBasePositioner(Both, parent) +{ + _columns=-1; + _rows=-1; +} + +/*! + \qmlproperty int Grid::columns + This property holds the number of columns in the grid. + + When the columns property is set the Grid will always have + that many columns. Note that if you do not have enough items to + fill this many columns some columns will be of zero width. +*/ + +/*! + \qmlproperty int Grid::rows + This property holds the number of rows in the grid. + + When the rows property is set the Grid will always have that + many rows. Note that if you do not have enough items to fill this + many rows some rows will be of zero width. +*/ + +void QmlGraphicsGrid::doPositioning() +{ + int c=_columns,r=_rows;//Actual number of rows/columns + int numVisible = items()->size() + newItems()->size(); + if (_columns==-1 && _rows==-1){ + c = 4; + r = (numVisible+3)/4; + }else if (_rows==-1){ + r = (numVisible+(_columns-1))/_columns; + }else if (_columns==-1){ + c = (numVisible+(_rows-1))/_rows; + } + + QList maxColWidth; + QList maxRowHeight; + int childIndex =0; + QList children = childItems(); + for (int i=0; i(children.at(childIndex++)); + if (!child || child->opacity() == 0.0) + continue; + if (child->width() > maxColWidth[j]) + maxColWidth[j] = child->width(); + if (child->height() > maxRowHeight[i]) + maxRowHeight[i] = child->height(); + } + } + + int xoffset=0; + int yoffset=0; + int curRow =0; + int curCol =0; + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + foreach(QGraphicsItem* schild, children){ + QmlGraphicsItem *child = qobject_cast(schild); + if (!child || child->opacity() == 0.0) + continue; + bool needMove = (child->x()!=xoffset)||(child->y()!=yoffset); + QList > changes; + changes << qMakePair(QString(QLatin1String("x")),QVariant(xoffset)); + changes << qMakePair(QString(QLatin1String("y")),QVariant(yoffset)); + if (newItems()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + if (move()){ + applyMove(changes,child); + }else{ + setMovingItem(child); + child->setPos(QPointF(xoffset, yoffset)); + setMovingItem(0); + } + } + xoffset+=maxColWidth[curCol]+spacing(); + curCol++; + curCol%=c; + if (!curCol){ + yoffset+=maxRowHeight[curRow]+spacing(); + xoffset=0; + curRow++; + if (curRow>=r) + break; + } + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspositioners.h b/src/declarative/fx/qmlgraphicspositioners.h new file mode 100644 index 0000000..e252ed8 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspositioners.h @@ -0,0 +1,167 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLAYOUTS_H +#define QMLGRAPHICSLAYOUTS_H + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsBasePositionerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(QmlTransition *move READ move WRITE setMove) + Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) + Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) +public: + enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; + QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); + + int spacing() const; + void setSpacing(int); + + QmlTransition *move() const; + void setMove(QmlTransition *); + + QmlTransition *add() const; + void setAdd(QmlTransition *); + + QmlTransition *remove() const; + void setRemove(QmlTransition *); + +protected: + virtual void componentComplete(); + virtual QVariant itemChange(GraphicsItemChange, const QVariant &); + virtual bool event(QEvent *); + QSet* newItems(); + QSet* leavingItems(); + QSet* items(); + void applyAdd(const QList >& changes, QmlGraphicsItem* target); + void applyMove(const QList >& changes, QmlGraphicsItem* target); + void applyRemove(const QList >& changes, QmlGraphicsItem* target); + void finishApplyTransitions(); + +Q_SIGNALS: + void layoutItemChanged(); + void spacingChanged(); + +protected Q_SLOTS: + virtual void doPositioning()=0; + +private Q_SLOTS: + void prePositioning(); + +protected: + QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); + void setMovingItem(QmlGraphicsItem *); + +private: + void applyTransition(const QList >& changes, QmlGraphicsItem* target, + QmlStateOperation::ActionList &actions); + Q_DISABLE_COPY(QmlGraphicsBasePositioner) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsColumn(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsColumn) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsRow(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsRow) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner +{ + Q_OBJECT + Q_PROPERTY(int rows READ rows WRITE setRows) + Q_PROPERTY(int columns READ columns WRITE setcolumns) +public: + QmlGraphicsGrid(QmlGraphicsItem *parent=0); + + int rows() const {return _rows;} + void setRows(const int rows){_rows = rows;} + + int columns() const {return _columns;} + void setcolumns(const int columns){_columns = columns;} +protected Q_SLOTS: + virtual void doPositioning(); + +private: + int _rows; + int _columns; + Q_DISABLE_COPY(QmlGraphicsGrid) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsColumn) +QML_DECLARE_TYPE(QmlGraphicsRow) +QML_DECLARE_TYPE(QmlGraphicsGrid) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicspositioners_p.h b/src/declarative/fx/qmlgraphicspositioners_p.h new file mode 100644 index 0000000..f8ca6fd --- /dev/null +++ b/src/declarative/fx/qmlgraphicspositioners_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLAYOUTS_P_H +#define QMLGRAPHICSLAYOUTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) + +public: + QmlGraphicsBasePositionerPrivate() + : _ep(false), _componentComplete(false), _spacing(0), + aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), + removeTransition(0), _movingItem(0) + { + } + + void init(QmlGraphicsBasePositioner::AutoUpdateType at) + { + aut = at; + } + + bool _ep; + bool _componentComplete; + int _spacing; + QmlGraphicsBasePositioner::AutoUpdateType aut; + QmlTransition *moveTransition; + QmlTransition *addTransition; + QmlTransition *removeTransition; + QSet _items; + QSet _leavingItems; + QSet _stableItems; + QSet _newItems; + QSet _animated; + QmlStateOperation::ActionList addActions; + QmlStateOperation::ActionList moveActions; + QmlStateOperation::ActionList removeActions; + QmlTransitionManager addTransitionManager; + QmlTransitionManager moveTransitionManager; + QmlTransitionManager removeTransitionManager; +// QmlStateGroup *stateGroup; + QmlGraphicsItem *_movingItem; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicsrect.cpp b/src/declarative/fx/qmlgraphicsrect.cpp new file mode 100644 index 0000000..1784ae1 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrect.cpp @@ -0,0 +1,475 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsrect.h" +#include "qmlgraphicsrect_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QmlGraphicsPen) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QmlGraphicsGradientStop) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QmlGraphicsGradient) + +/*! + \internal + \class QmlGraphicsPen + \brief The QmlGraphicsPen class provides a pen used for drawing rectangle borders on a QmlView. + + By default, the pen is invalid and nothing is drawn. You must either set a color (then the default + width is 1) or a width (then the default color is black). + + A width of 1 indicates is a single-pixel line on the border of the item being painted. + + Example: + \qml + Rectangle { border.width: 2; border.color: "red" ... } + \endqml +*/ + +void QmlGraphicsPen::setColor(const QColor &c) +{ + _color = c; + _valid = _color.alpha() ? true : false; + emit penChanged(); +} + +void QmlGraphicsPen::setWidth(int w) +{ + if (_width == w && _valid) + return; + + _width = w; + _valid = (_width < 1) ? false : true; + emit penChanged(); +} + + +/*! + \qmlclass GradientStop QmlGraphicsGradientStop + \brief The GradientStop item defines the color at a position in a Gradient + + \sa Gradient +*/ + +/*! + \qmlproperty real GradientStop::position + \qmlproperty color GradientStop::color + + Sets a \e color at a \e position in a gradient. +*/ + +void QmlGraphicsGradientStop::updateGradient() +{ + if (QmlGraphicsGradient *grad = qobject_cast(parent())) + grad->doUpdate(); +} + +/*! + \qmlclass Gradient QmlGraphicsGradient + \brief The Gradient item defines a gradient fill. + + A gradient is defined by two or more colors, which will be blended seemlessly. The + colors are specified at their position in the range 0.0 - 1.0 via + the GradientStop item. For example, the following code paints a + rectangle with a gradient starting with red, blending to yellow at 1/3 of the + size of the rectangle, and ending with Green: + + \table + \row + \o \image gradient.png + \o \quotefile doc/src/snippets/declarative/gradient.qml + \endtable + + \sa GradientStop +*/ + +/*! + \qmlproperty list Gradient::stops + This property holds the gradient stops describing the gradient. +*/ + +const QGradient *QmlGraphicsGradient::gradient() const +{ + if (!m_gradient && !m_stops.isEmpty()) { + m_gradient = new QLinearGradient(0,0,0,1.0); + for (int i = 0; i < m_stops.count(); ++i) { + const QmlGraphicsGradientStop *stop = m_stops.at(i); + m_gradient->setCoordinateMode(QGradient::ObjectBoundingMode); + m_gradient->setColorAt(stop->position(), stop->color()); + } + } + + return m_gradient; +} + +void QmlGraphicsGradient::doUpdate() +{ + delete m_gradient; + m_gradient = 0; + emit updated(); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QmlGraphicsRect) + +/*! + \qmlclass Rectangle QmlGraphicsRect + \brief The Rectangle item allows you to add rectangles to a scene. + \inherits Item + + A Rectangle is painted having a solid fill (color) and an optional border. + You can also create rounded rectangles using the radius property. + + \qml + Rectangle { + width: 100 + height: 100 + color: "red" + border.color: "black" + border.width: 5 + radius: 10 + } + \endqml + + \image declarative-rect.png +*/ + +/*! + \internal + \class QmlGraphicsRect + \brief The QmlGraphicsRect class provides a rectangle item that you can add to a QmlView. +*/ +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRectPrivate), parent) +{ + Q_D(QmlGraphicsRect); + d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsRect); + d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +void QmlGraphicsRect::doUpdate() +{ + Q_D(QmlGraphicsRect); + d->rectImage = QPixmap(); + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + d->setPaintMargin((pw+1)/2); + update(); +} + +/*! + \qmlproperty int Rectangle::border.width + \qmlproperty color Rectangle::border.color + + The width and color used to draw the border of the rectangle. + + A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color. + + To keep the border smooth (rather than blurry), odd widths cause the rectangle to be painted at + a half-pixel offset; +*/ +QmlGraphicsPen *QmlGraphicsRect::border() +{ + Q_D(QmlGraphicsRect); + return d->getPen(); +} + +/*! + \qmlproperty Gradient Rectangle::gradient + + The gradient to use to fill the rectangle. + + This property allows for the construction of simple vertical gradients. + Other gradients may by formed by adding rotation to the rectangle. + + \table + \row + \o \image declarative-rect_gradient.png + \o + \qml + Rectangle { y: 0; width: 80; height: 80; color: "lightsteelblue" } + Rectangle { y: 100; width: 80; height: 80 + gradient: Gradient { + GradientStop { position: 0.0; color: "lightsteelblue" } + GradientStop { position: 1.0; color: "blue" } + } + } + Rectangle { rotation: 90; x: 80; y: 200; width: 80; height: 80 + gradient: Gradient { + GradientStop { position: 0.0; color: "lightsteelblue" } + GradientStop { position: 1.0; color: "blue" } + } + } + // The x offset is needed because the rotation is from the top left corner + \endqml + \endtable + + If both a gradient and a color are specified, the gradient will be used. + + \sa Gradient, color +*/ +QmlGraphicsGradient *QmlGraphicsRect::gradient() const +{ + Q_D(const QmlGraphicsRect); + return d->gradient; +} + +void QmlGraphicsRect::setGradient(QmlGraphicsGradient *gradient) +{ + Q_D(QmlGraphicsRect); + if (d->gradient == gradient) + return; + if (d->gradient) + disconnect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); + d->gradient = gradient; + if (d->gradient) + connect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); + update(); +} + + +/*! + \qmlproperty real Rectangle::radius + This property holds the corner radius used to draw a rounded rectangle. + + If radius is non-zero, the rectangle will be painted as a rounded rectangle, otherwise it will be + painted as a normal rectangle. The same radius is used by all 4 corners; there is currently + no way to specify different radii for different corners. +*/ +qreal QmlGraphicsRect::radius() const +{ + Q_D(const QmlGraphicsRect); + return d->radius; +} + +void QmlGraphicsRect::setRadius(qreal radius) +{ + Q_D(QmlGraphicsRect); + if (d->radius == radius) + return; + + d->radius = radius; + d->rectImage = QPixmap(); + update(); + emit radiusChanged(); +} + +/*! + \qmlproperty color Rectangle::color + This property holds the color used to fill the rectangle. + + \qml + // green rectangle using hexidecimal notation + Rectangle { color: "#00FF00" } + + // steelblue rectangle using SVG color name + Rectangle { color: "steelblue" } + \endqml + + The default color is white. + + If both a gradient and a color are specified, the gradient will be used. +*/ +QColor QmlGraphicsRect::color() const +{ + Q_D(const QmlGraphicsRect); + return d->color; +} + +void QmlGraphicsRect::setColor(const QColor &c) +{ + Q_D(QmlGraphicsRect); + if (d->color == c) + return; + + d->color = c; + d->rectImage = QPixmap(); + update(); + emit colorChanged(); +} + +void QmlGraphicsRect::generateRoundedRect() +{ + Q_D(QmlGraphicsRect); + if (d->rectImage.isNull()) { + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + const int radius = qCeil(d->radius); //ensure odd numbered width/height so we get 1-pixel center + d->rectImage = QPixmap(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2); + d->rectImage.fill(Qt::transparent); + QPainter p(&(d->rectImage)); + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(d->color); + if (pw%2) + p.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1)), d->radius, d->radius); + else + p.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw), d->radius, d->radius); + } +} + +void QmlGraphicsRect::generateBorderedRect() +{ + Q_D(QmlGraphicsRect); + if (d->rectImage.isNull()) { + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + d->rectImage = QPixmap(pw*2 + 3, pw*2 + 3); + d->rectImage.fill(Qt::transparent); + QPainter p(&(d->rectImage)); + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + pn.setJoinStyle(Qt::MiterJoin); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(d->color); + if (pw%2) + p.drawRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1))); + else + p.drawRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw)); + } +} + +void QmlGraphicsRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsRect); + if (d->radius > 0 || (d->pen && d->pen->isValid()) + || (d->gradient && d->gradient->gradient()) ) { + drawRect(*p); + } + else { + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing, true); + p->fillRect(QRectF(0, 0, width(), height()), d->color); + if (d->smooth) + p->setRenderHint(QPainter::Antialiasing, oldAA); + } +} + +void QmlGraphicsRect::drawRect(QPainter &p) +{ + Q_D(QmlGraphicsRect); + if (d->gradient && d->gradient->gradient()) { + // XXX This path is still slower than the image path + // Image path won't work for gradients though + bool oldAA = p.testRenderHint(QPainter::Antialiasing); + if (d->smooth) + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(*d->gradient->gradient()); + if (d->radius > 0.) + p.drawRoundedRect(0, 0, width(), height(), d->radius, d->radius); + else + p.drawRect(0, 0, width(), height()); + if (d->smooth) + p.setRenderHint(QPainter::Antialiasing, oldAA); + } else { + bool oldAA = p.testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + const int pw = d->pen && d->pen->isValid() ? (d->pen->width()+1)/2*2 : 0; + + if (d->radius > 0) + generateRoundedRect(); + else + generateBorderedRect(); + + int xOffset = (d->rectImage.width()-1)/2; + int yOffset = (d->rectImage.height()-1)/2; + Q_ASSERT(d->rectImage.width() == 2*xOffset + 1); + Q_ASSERT(d->rectImage.height() == 2*yOffset + 1); + + QMargins margins(xOffset, yOffset, xOffset, yOffset); + QTileRules rules(Qt::StretchTile, Qt::StretchTile); + //NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects + qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width()+pw, height()+pw), margins, d->rectImage, d->rectImage.rect(), margins, rules); + + if (d->smooth) { + p.setRenderHint(QPainter::Antialiasing, oldAA); + p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } + } +} + +/*! + \qmlproperty bool Rectangle::smooth + + Set this property if you want the item to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. + + \image rect-smooth.png +*/ + +QRectF QmlGraphicsRect::boundingRect() const +{ + Q_D(const QmlGraphicsRect); + return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsrect.h b/src/declarative/fx/qmlgraphicsrect.h new file mode 100644 index 0000000..454b2f1 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrect.h @@ -0,0 +1,189 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSRECT_H +#define QMLGRAPHICSRECT_H + +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) +public: + QmlGraphicsPen(QObject *parent=0) + : QObject(parent), _width(1), _color("#000000"), _valid(false) + {} + + int width() const { return _width; } + void setWidth(int w); + + QColor color() const { return _color; } + void setColor(const QColor &c); + + bool isValid() { return _valid; }; + +Q_SIGNALS: + void penChanged(); + +private: + int _width; + QColor _color; + bool _valid; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal position READ position WRITE setPosition) + Q_PROPERTY(QColor color READ color WRITE setColor) + +public: + QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} + + qreal position() const { return m_position; } + void setPosition(qreal position) { m_position = position; updateGradient(); } + + QColor color() const { return m_color; } + void setColor(const QColor &color) { m_color = color; updateGradient(); } + +private: + void updateGradient(); + +private: + qreal m_position; + QColor m_color; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QList *stops READ stops) + Q_CLASSINFO("DefaultProperty", "stops") + +public: + QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} + ~QmlGraphicsGradient() { delete m_gradient; } + + QList *stops() { return &m_stops; } + + const QGradient *gradient() const; + +Q_SIGNALS: + void updated(); + +private: + void doUpdate(); + +private: + QList m_stops; + mutable QGradient *m_gradient; + friend class QmlGraphicsGradientStop; +}; + +class QmlGraphicsRectPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) + Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) + Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) +public: + QmlGraphicsRect(QmlGraphicsItem *parent=0); + + QColor color() const; + void setColor(const QColor &); + + QmlGraphicsPen *border(); + + QmlGraphicsGradient *gradient() const; + void setGradient(QmlGraphicsGradient *gradient); + + qreal radius() const; + void setRadius(qreal radius); + + QRectF boundingRect() const; + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void colorChanged(); + void radiusChanged(); + +private Q_SLOTS: + void doUpdate(); + +private: + void generateRoundedRect(); + void generateBorderedRect(); + void drawRect(QPainter &painter); + +protected: + QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsRect) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPen) +QML_DECLARE_TYPE(QmlGraphicsGradientStop) +QML_DECLARE_TYPE(QmlGraphicsGradient) +QML_DECLARE_TYPE(QmlGraphicsRect) + +QT_END_HEADER + +#endif // QMLGRAPHICSRECT_H diff --git a/src/declarative/fx/qmlgraphicsrect_p.h b/src/declarative/fx/qmlgraphicsrect_p.h new file mode 100644 index 0000000..f44e8de --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrect_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSRECT_P_H +#define QMLGRAPHICSRECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGradient; +class QmlGraphicsRect; +class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRect) + +public: + QmlGraphicsRectPrivate() : + color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) + { + } + + ~QmlGraphicsRectPrivate() + { + delete pen; + } + + void init() + { + } + + QColor getColor(); + QColor color; + QmlGraphicsGradient *gradient; + QmlGraphicsPen *getPen() { + if (!pen) { + Q_Q(QmlGraphicsRect); + pen = new QmlGraphicsPen; + QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); + } + return pen; + } + QmlGraphicsPen *pen; + qreal radius; + qreal paintmargin; + QPixmap rectImage; + + void setPaintMargin(qreal margin) + { + Q_Q(QmlGraphicsRect); + if (margin == paintmargin) + return; + q->prepareGeometryChange(); + paintmargin = margin; + } +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSRECT_P_H diff --git a/src/declarative/fx/qmlgraphicsrepeater.cpp b/src/declarative/fx/qmlgraphicsrepeater.cpp new file mode 100644 index 0000000..608f948 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrepeater.cpp @@ -0,0 +1,320 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicsrepeater.h" +#include "qmlgraphicsrepeater_p.h" +#include "qmllistaccessor.h" +#include "qmlgraphicsvisualitemmodel.h" +#include + + +QT_BEGIN_NAMESPACE +QmlGraphicsRepeaterPrivate::QmlGraphicsRepeaterPrivate() +: model(0), ownModel(false) +{ +} + +QmlGraphicsRepeaterPrivate::~QmlGraphicsRepeaterPrivate() +{ +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QmlGraphicsRepeater) + +/*! + \qmlclass Repeater + \inherits Item + + \brief The Repeater item allows you to repeat a component based on a model. + + The Repeater item is used when you want to create a large number of + similar items. For each entry in the model, an item is instantiated + in a context seeded with data from the model. If the repeater will + be instantiating a large number of instances, it may be more efficient to + use one of Qt Declarative's \l {xmlViews}{view items}. + + The model may be either an object list, a string list, a number or a Qt model. + In each case, the data element and the index is exposed to each instantiated + component. + + The index is always exposed as an accessible \c index property. + In the case of an object or string list, the data element (of type string + or object) is available as the \c modelData property. In the case of a Qt model, + all roles are available as named properties just like in the view classes. The + following example shows how to use the index property inside the instantiated + items. + + \snippet doc/src/snippets/declarative/repeater-index.qml 0 + + \image repeater-index.png + + Items instantiated by the Repeater are inserted, in order, as + children of the Repeater's parent. The insertion starts immediately after + the repeater's position in its parent stacking list. This is to allow + you to use a Repeater inside a layout. The following QML example shows how + the instantiated items would visually appear stacked between the red and + blue rectangles. + + \snippet doc/src/snippets/declarative/repeater.qml 0 + + \image repeater.png + + The repeater instance continues to own all items it instantiates, even + if they are otherwise manipulated. It is illegal to manually remove an item + created by the Repeater. + */ + +/*! + \internal + \class QmlGraphicsRepeater + \qmlclass Repeater + + XXX Repeater is very conservative in how it instatiates/deletes items. Also + new model entries will not be created and old ones will not be removed. + */ + +/*! + Create a new QmlGraphicsRepeater instance. + */ +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRepeaterPrivate), parent) +{ +} + +/*! + \internal + */ +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ +} + +/*! + Destroy the repeater instance. All items it instantiated are also + destroyed. + */ +QmlGraphicsRepeater::~QmlGraphicsRepeater() +{ +} + +/*! + \qmlproperty any Repeater::model + + The model providing data for the repeater. + + The model may be either an object list, a string list, a number or a Qt model. + In each case, the data element and the index is exposed to each instantiated + component. The index is always exposed as an accessible \c index property. + In the case of an object or string list, the data element (of type string + or object) is available as the \c modelData property. In the case of a Qt model, + all roles are available as named properties just like in the view classes. + + As a special case the model can also be merely a number. In this case it will + create that many instances of the component. They will also be assigned an index + based on the order they are created. + + Models can also be created directly in QML, using a \l{ListModel} or \l{XmlListModel}. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsRepeater::model() const +{ + Q_D(const QmlGraphicsRepeater); + return d->dataSource; +} + +void QmlGraphicsRepeater::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsRepeater); + clear(); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + /* + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + */ + } + d->dataSource = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + /* + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + */ + regenerate(); + emit countChanged(); + } +} + +/*! + \qmlproperty Component Repeater::delegate + \default + + The delegate provides a template describing what each item instantiated by the repeater should look and act like. + */ +QmlComponent *QmlGraphicsRepeater::delegate() const +{ + Q_D(const QmlGraphicsRepeater); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsRepeater::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsRepeater); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + regenerate(); + } +} + +/*! + \qmlproperty int Repeater::count + + This property holds the number of items in the repeater. +*/ +int QmlGraphicsRepeater::count() const +{ + Q_D(const QmlGraphicsRepeater); + if (d->model) + return d->model->count(); + return 0; +} + + +/*! + \internal + */ +void QmlGraphicsRepeater::componentComplete() +{ + QmlGraphicsItem::componentComplete(); + regenerate(); +} + +/*! + \internal + */ +QVariant QmlGraphicsRepeater::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + QVariant rv = QmlGraphicsItem::itemChange(change, value); + if (change == ItemParentHasChanged) { + regenerate(); + } + + return rv; +} + +void QmlGraphicsRepeater::clear() +{ + Q_D(QmlGraphicsRepeater); + if (d->model) { + foreach (QmlGraphicsItem *item, d->deletables) + d->model->release(item); + } + d->deletables.clear(); +} + +/*! + \internal + */ +void QmlGraphicsRepeater::regenerate() +{ + Q_D(QmlGraphicsRepeater); + + clear(); + + if (!d->model || !d->model->count() || !d->model->isValid() || !parentItem() || !isComponentComplete()) + return; + + for (int ii = 0; ii < count(); ++ii) { + QmlGraphicsItem *item = d->model->item(ii); + if (item) { + item->setParent(parentItem()); + item->stackBefore(this); + d->deletables << item; + } + } +} + +void QmlGraphicsRepeater::itemsInserted(int, int) +{ + regenerate(); +} + +void QmlGraphicsRepeater::itemsRemoved(int, int) +{ + regenerate(); +} + +void QmlGraphicsRepeater::itemsMoved(int,int,int) +{ + regenerate(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsrepeater.h b/src/declarative/fx/qmlgraphicsrepeater.h new file mode 100644 index 0000000..9cb7d45 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrepeater.h @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSREPEATER_H +#define QMLGRAPHICSREPEATER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsRepeaterPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "delegate") + +public: + QmlGraphicsRepeater(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsRepeater(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int count() const; + +Q_SIGNALS: + void countChanged(); + +private: + void clear(); + void regenerate(); + +protected: + virtual void componentComplete(); + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + void itemsInserted(int,int); + void itemsRemoved(int,int); + void itemsMoved(int,int,int); + +private: + Q_DISABLE_COPY(QmlGraphicsRepeater) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsRepeater) + +QT_END_HEADER + +#endif // QMLGRAPHICSREPEATER_H diff --git a/src/declarative/fx/qmlgraphicsrepeater_p.h b/src/declarative/fx/qmlgraphicsrepeater_p.h new file mode 100644 index 0000000..7c111da --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrepeater_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSREPEATER_P_H +#define QMLGRAPHICSREPEATER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsrepeater.h" +#include + + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsVisualModel; +class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRepeater) + +public: + QmlGraphicsRepeaterPrivate(); + ~QmlGraphicsRepeaterPrivate(); + + QmlGraphicsVisualModel *model; + QVariant dataSource; + bool ownModel; + + QList > deletables; +}; + +QT_END_NAMESPACE +#endif // QMLGRAPHICSREPEATER_P_H diff --git a/src/declarative/fx/qmlgraphicsscalegrid.cpp b/src/declarative/fx/qmlgraphicsscalegrid.cpp new file mode 100644 index 0000000..fdf44cf --- /dev/null +++ b/src/declarative/fx/qmlgraphicsscalegrid.cpp @@ -0,0 +1,212 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include "qmlgraphicsscalegrid_p.h" + + +QT_BEGIN_NAMESPACE +/*! + \internal + \class QmlGraphicsScaleGrid + \brief The QmlGraphicsScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. +*/ +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsScaleGrid) + +QmlGraphicsScaleGrid::QmlGraphicsScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) +{ +} + +QmlGraphicsScaleGrid::~QmlGraphicsScaleGrid() +{ +} + +bool QmlGraphicsScaleGrid::isNull() const +{ + return !_left && !_top && !_right && !_bottom; +} + +void QmlGraphicsScaleGrid::setLeft(int pos) +{ + if (_left != pos) { + _left = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setTop(int pos) +{ + if (_top != pos) { + _top = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setRight(int pos) +{ + if (_right != pos) { + _right = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setBottom(int pos) +{ + if (_bottom != pos) { + _bottom = pos; + emit borderChanged(); + } +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage() +: _l(-1), _r(-1), _t(-1), _b(-1), + _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) +{ +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &o) +: _l(o._l), _r(o._r), _t(o._t), _b(o._b), _h(o._h), _v(o._v), _pix(o._pix) +{ +} + +QmlGraphicsGridScaledImage &QmlGraphicsGridScaledImage::operator=(const QmlGraphicsGridScaledImage &o) +{ + _l = o._l; + _r = o._r; + _t = o._t; + _b = o._b; + _h = o._h; + _v = o._v; + _pix = o._pix; + return *this; +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(QIODevice *data) +: _l(-1), _r(-1), _t(-1), _b(-1), _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) +{ + int l = -1; + int r = -1; + int t = -1; + int b = -1; + QString imgFile; + + while(!data->atEnd()) { + QString line = QString::fromUtf8(data->readLine().trimmed()); + if (line.isEmpty() || line.startsWith(QLatin1String("#"))) + continue; + + QStringList list = line.split(QLatin1Char(':')); + if (list.count() != 2) + return; + + list[0] = list[0].trimmed(); + list[1] = list[1].trimmed(); + + if (list[0] == QLatin1String("border.left")) + l = list[1].toInt(); + else if (list[0] == QLatin1String("border.right")) + r = list[1].toInt(); + else if (list[0] == QLatin1String("border.top")) + t = list[1].toInt(); + else if (list[0] == QLatin1String("border.bottom")) + b = list[1].toInt(); + else if (list[0] == QLatin1String("source")) + imgFile = list[1]; + else if (list[0] == QLatin1String("horizontalTileRule")) + _h = stringToRule(list[1]); + else if (list[0] == QLatin1String("verticalTileRule")) + _v = stringToRule(list[1]); + } + + if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) + return; + + _l = l; _r = r; _t = t; _b = b; + + _pix = imgFile; +} + +QmlGraphicsBorderImage::TileMode QmlGraphicsGridScaledImage::stringToRule(const QString &s) +{ + if (s == QLatin1String("Stretch")) + return QmlGraphicsBorderImage::Stretch; + if (s == QLatin1String("Repeat")) + return QmlGraphicsBorderImage::Repeat; + if (s == QLatin1String("Round")) + return QmlGraphicsBorderImage::Round; + + qWarning() << "Unknown tile rule specified. Using Stretch"; + return QmlGraphicsBorderImage::Stretch; +} + +bool QmlGraphicsGridScaledImage::isValid() const +{ + return _l >= 0; +} + +int QmlGraphicsGridScaledImage::gridLeft() const +{ + return _l; +} + +int QmlGraphicsGridScaledImage::gridRight() const +{ + return _r; +} + +int QmlGraphicsGridScaledImage::gridTop() const +{ + return _t; +} + +int QmlGraphicsGridScaledImage::gridBottom() const +{ + return _b; +} + +QString QmlGraphicsGridScaledImage::pixmapUrl() const +{ + return _pix; +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsscalegrid_p.h b/src/declarative/fx/qmlgraphicsscalegrid_p.h new file mode 100644 index 0000000..040db4c --- /dev/null +++ b/src/declarative/fx/qmlgraphicsscalegrid_p.h @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSSCALEGRID_H +#define QMLGRAPHICSSCALEGRID_H + +#include +#include +#include +#include +#include +#include "qmlgraphicsborderimage.h" + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject +{ + Q_OBJECT + Q_ENUMS(TileRule) + + Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) + Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) + Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) + Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) + +public: + QmlGraphicsScaleGrid(QObject *parent=0); + ~QmlGraphicsScaleGrid(); + + bool isNull() const; + + int left() const { return _left; } + void setLeft(int); + + int top() const { return _top; } + void setTop(int); + + int right() const { return _right; } + void setRight(int); + + int bottom() const { return _bottom; } + void setBottom(int); + +Q_SIGNALS: + void borderChanged(); + +private: + int _left; + int _top; + int _right; + int _bottom; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage +{ +public: + QmlGraphicsGridScaledImage(); + QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); + QmlGraphicsGridScaledImage(QIODevice*); + QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); + bool isValid() const; + int gridLeft() const; + int gridRight() const; + int gridTop() const; + int gridBottom() const; + QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } + QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } + + QString pixmapUrl() const; + +private: + static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); + +private: + int _l; + int _r; + int _t; + int _b; + QmlGraphicsBorderImage::TileMode _h; + QmlGraphicsBorderImage::TileMode _v; + QString _pix; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsScaleGrid) + +QT_END_HEADER + +#endif // QMLGRAPHICSSCALEGRID_H diff --git a/src/declarative/fx/qmlgraphicstext.cpp b/src/declarative/fx/qmlgraphicstext.cpp new file mode 100644 index 0000000..f5ea55f --- /dev/null +++ b/src/declarative/fx/qmlgraphicstext.cpp @@ -0,0 +1,840 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicstext.h" +#include "qmlgraphicstext_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QmlGraphicsText) + +/*! + \qmlclass Text QmlGraphicsText + \brief The Text item allows you to add formatted text to a scene. + \inherits Item + + It can display both plain and rich text. For example: + + \qml + Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } + Text { text: "Hello World!" } + \endqml + + \image declarative-text.png + + If height and width are not explicitly set, Text will attempt to determine how + much room is needed and set it accordingly. Unless \c wrap is set, it will always + prefer width to height (all text will be placed on a single line). + + The \c elide property can alternatively be used to fit a single line of + plain text to a set width. + + Text provides read-only text. For editable text, see \l TextEdit. +*/ + +/*! + \internal + \class QmlGraphicsText + \qmlclass Text + \ingroup group_coreitems + + \brief The QmlGraphicsText class provides a formatted text item that you can add to a QmlView. + + Text was designed for read-only text; it does not allow for any text editing. + It can display both plain and rich text. For example: + + \qml + Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } + Text { text: "Hello World!" } + \endqml + + \image text.png + + If height and width are not explicitly set, Text will attempt to determine how + much room is needed and set it accordingly. Unless \c wrap is set, it will always + prefer width to height (all text will be placed on a single line). + + The \c elide property can alternatively be used to fit a line of plain text to a set width. + + A QmlGraphicsText object can be instantiated in Qml using the tag \c Text. +*/ +QmlGraphicsText::QmlGraphicsText(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsTextPrivate), parent) +{ + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsText::QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsText::~QmlGraphicsText() +{ +} + +/*! + \qmlproperty string Text::font.family + \qmlproperty bool Text::font.bold + \qmlproperty bool Text::font.italic + \qmlproperty bool Text::font.underline + \qmlproperty real Text::font.pointSize + \qmlproperty int Text::font.pixelSize + + Set the Text's font attributes. +*/ +QFont QmlGraphicsText::font() const +{ + Q_D(const QmlGraphicsText); + return d->font; +} + +void QmlGraphicsText::setFont(const QFont &font) +{ + Q_D(QmlGraphicsText); + d->font = font; + + d->imgDirty = true; + d->updateSize(); + update(); +} + +void QmlGraphicsText::setText(const QString &n) +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer st; +#endif + Q_D(QmlGraphicsText); + if (d->text == n) + return; + + d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(n)); + if (d->richText) { + if (!d->doc) + { + d->control = new QTextControl(this); + d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); + d->doc = d->control->document(); + d->doc->setDocumentMargin(0); + } + d->doc->setHtml(n); + } + + d->text = n; + d->imgDirty = true; + d->updateSize(); + emit textChanged(d->text); + update(); +} + +/*! + \qmlproperty string Text::text + + The text to display. Text supports both plain and rich text strings. + + The item will try to automatically determine whether the text should + be treated as rich text. This determination is made using Qt::mightBeRichText(). +*/ +QString QmlGraphicsText::text() const +{ + Q_D(const QmlGraphicsText); + return d->text; +} + +void QmlGraphicsText::setColor(const QColor &color) +{ + Q_D(QmlGraphicsText); + if (d->color == color) + return; + + d->imgDirty = true; + d->color = color; + update(); +} + +/*! + \qmlproperty color Text::color + + The text color. + + \qml + //green text using hexadecimal notation + Text { color: "#00FF00"; ... } + + //steelblue text using SVG color name + Text { color: "steelblue"; ... } + \endqml +*/ + +QColor QmlGraphicsText::color() const +{ + Q_D(const QmlGraphicsText); + return d->color; +} + +/*! + \qmlproperty enumeration Text::style + + Set an additional text style. + + Supported text styles are \c Normal, \c Outline, \c Raised and \c Sunken. + + \qml + Row { + Text { font.pointSize: 24; text: "Normal" } + Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" } + Text { font.pointSize: 24; text: "Outline"; style: Text.Outline; styleColor: "red" } + Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" } + } + \endqml + + \image declarative-textstyle.png +*/ +QmlGraphicsText::TextStyle QmlGraphicsText::style() const +{ + Q_D(const QmlGraphicsText); + return d->style; +} + +void QmlGraphicsText::setStyle(QmlGraphicsText::TextStyle style) +{ + Q_D(QmlGraphicsText); + if (d->style == style) + return; + + d->imgDirty = true; + d->style = style; + update(); +} + +void QmlGraphicsText::setStyleColor(const QColor &color) +{ + Q_D(QmlGraphicsText); + if (d->styleColor == color) + return; + + d->imgDirty = true; + d->styleColor = color; + update(); +} + +/*! + \qmlproperty color Text::styleColor + + Defines the secondary color used by text styles. + + \c styleColor is used as the outline color for outlined text, and as the + shadow color for raised or sunken text. If no style has been set, it is not + used at all. + */ +QColor QmlGraphicsText::styleColor() const +{ + Q_D(const QmlGraphicsText); + return d->styleColor; +} + +/*! + \qmlproperty enumeration Text::horizontalAlignment + \qmlproperty enumeration Text::verticalAlignment + + Sets the horizontal and vertical alignment of the text within the Text items + width and height. By default, the text is top-left aligned. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom + and \c AlignVCenter. +*/ +QmlGraphicsText::HAlignment QmlGraphicsText::hAlign() const +{ + Q_D(const QmlGraphicsText); + return d->hAlign; +} + +void QmlGraphicsText::setHAlign(HAlignment align) +{ + Q_D(QmlGraphicsText); + d->hAlign = align; +} + +QmlGraphicsText::VAlignment QmlGraphicsText::vAlign() const +{ + Q_D(const QmlGraphicsText); + return d->vAlign; +} + +void QmlGraphicsText::setVAlign(VAlignment align) +{ + Q_D(QmlGraphicsText); + d->vAlign = align; +} + +/*! + \qmlproperty bool Text::wrap + + Set this property to wrap the text to the Text item's width. The text will only + wrap if an explicit width has been set. + + Wrapping is done on word boundaries (i.e. it is a "word-wrap"). If the text cannot be + word-wrapped to the specified width it will be partially drawn outside of the item's bounds. + If this is undesirable then enable clipping on the item (Item::clip). + + Wrapping is off by default. +*/ +//### Future may provide choice of wrap modes, such as QTextOption::WrapAtWordBoundaryOrAnywhere +bool QmlGraphicsText::wrap() const +{ + Q_D(const QmlGraphicsText); + return d->wrap; +} + +void QmlGraphicsText::setWrap(bool w) +{ + Q_D(QmlGraphicsText); + if (w == d->wrap) + return; + + d->wrap = w; + + d->imgDirty = true; + d->updateSize(); +} + +/*! + \qmlproperty enumeration Text::textFormat + + The way the text property should be displayed. + + Supported text formats are \c AutoText, \c PlainText and \c RichText. + + The default is AutoText. If the text format is AutoText the text element + will automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). + + \table + \row + \o + \qml +Column { + TextEdit { + font.pointSize: 24 + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "RichText" + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "PlainText" + text: "Hello World!" + } +} + \endqml + \o \image declarative-textformat.png + \endtable +*/ + +QmlGraphicsText::TextFormat QmlGraphicsText::textFormat() const +{ + Q_D(const QmlGraphicsText); + return d->format; +} + +void QmlGraphicsText::setTextFormat(TextFormat format) +{ + Q_D(QmlGraphicsText); + if (format == d->format) + return; + bool wasRich = d->richText; + d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); + + if (wasRich && !d->richText) { + //### delete control? (and vice-versa below) + d->imgDirty = true; + d->updateSize(); + update(); + } else if (!wasRich && d->richText) { + if (!d->doc) + { + d->control = new QTextControl(this); + d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); + d->doc = d->control->document(); + d->doc->setDocumentMargin(0); + } + d->doc->setHtml(d->text); + d->imgDirty = true; + d->updateSize(); + update(); + } + d->format = format; +} + +/*! + \qmlproperty enumeration Text::elide + + Set this property to elide parts of the text fit to the Text item's width. + The text will only elide if an explicit width has been set. + + This property cannot be used with wrap enabled or with rich text. + + Eliding can be \c ElideNone (the default), \c ElideLeft, \c ElideMiddle, or \c ElideRight. + + If the text is a multi-length string, and the mode is not \c ElideNone, + the first string that fits will be used, otherwise the last will be elided. + + Multi-length strings are ordered from longest to shortest, separated by the + Unicode "String Terminator" character \c U009C (write this in QML with \c{"\\x9C"}). +*/ +QmlGraphicsText::TextElideMode QmlGraphicsText::elideMode() const +{ + Q_D(const QmlGraphicsText); + return d->elideMode; +} + +void QmlGraphicsText::setElideMode(QmlGraphicsText::TextElideMode mode) +{ + Q_D(QmlGraphicsText); + if (mode == d->elideMode) + return; + + d->elideMode = mode; + + d->imgDirty = true; + d->updateSize(); +} + +void QmlGraphicsText::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + Q_D(QmlGraphicsText); + if (newGeometry.width() != oldGeometry.width()) { + if (d->wrap || d->elideMode != QmlGraphicsText::ElideNone) { + d->imgDirty = true; + d->updateSize(); + } + } + QmlGraphicsItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsTextPrivate::updateSize() +{ + Q_Q(QmlGraphicsText); + if (q->isComponentComplete()) { + QFontMetrics fm(font); + if (text.isEmpty()) { + q->setImplicitHeight(fm.height()); + return; + } + + int dy = q->height(); + QString tmp; + QSize size(0, 0); + + //setup instance of QTextLayout for all cases other than richtext + if (!richText) + { + tmp = text; + tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); + singleline = !tmp.contains(QChar::LineSeparator); + if (singleline && elideMode != QmlGraphicsText::ElideNone && q->widthValid()) + tmp = fm.elidedText(tmp,(Qt::TextElideMode)elideMode,q->width()); // XXX still worth layout...? + layout.clearLayout(); + layout.setFont(font); + layout.setText(tmp); + size = setupTextLayout(&layout); + cachedLayoutSize = size; + } + if (richText) { + singleline = false; // richtext can't elide or be optimized for single-line case + doc->setDefaultFont(font); + QTextOption option((Qt::Alignment)int(hAlign | vAlign)); + if (wrap) + option.setWrapMode(QTextOption::WordWrap); + else + option.setWrapMode(QTextOption::NoWrap); + doc->setDefaultTextOption(option); + if (wrap && !q->heightValid() && q->widthValid()) + doc->setTextWidth(q->width()); + else + doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) + dy -= (int)doc->size().height(); + } else { + dy -= size.height(); + } + int yoff = 0; + + if (q->heightValid()) { + if (vAlign == QmlGraphicsText::AlignBottom) + yoff = dy; + else if (vAlign == QmlGraphicsText::AlignVCenter) + yoff = dy/2; + } + q->setBaselineOffset(fm.ascent() + yoff); + + //### need to comfirm cost of always setting these for richText + q->setImplicitWidth(richText ? (int)doc->idealWidth() : size.width()); + q->setImplicitHeight(richText ? (int)doc->size().height() : size.height()); + } else { + dirty = true; + } +} + +// ### text layout handling should be profiled and optimized as needed +// what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); + +void QmlGraphicsTextPrivate::drawOutline() +{ + QPixmap img = QPixmap(imgCache.size()); + img.fill(Qt::transparent); + + QPainter ppm(&img); + + QPoint pos(imgCache.rect().topLeft()); + pos += QPoint(-1, 0); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(2, 0); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(-1, -1); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(0, 2); + ppm.drawPixmap(pos, imgStyleCache); + + pos += QPoint(0, -1); + ppm.drawPixmap(pos, imgCache); + ppm.end(); + + imgCache = img; +} + +void QmlGraphicsTextPrivate::drawOutline(int yOffset) +{ + QPixmap img = QPixmap(imgCache.size()); + img.fill(Qt::transparent); + + QPainter ppm(&img); + + QPoint pos(imgCache.rect().topLeft()); + pos += QPoint(0, yOffset); + ppm.drawPixmap(pos, imgStyleCache); + + pos += QPoint(0, -yOffset); + ppm.drawPixmap(pos, imgCache); + ppm.end(); + + imgCache = img; +} + +QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) +{ + Q_Q(QmlGraphicsText); + layout->setCacheEnabled(true); + + QFontMetrics fm = QFontMetrics(font); + + int height = 0; + qreal widthUsed = 0; + qreal lineWidth = 0; + + //set manual width + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) + lineWidth = q->width(); + + layout->beginLayout(); + + while (1) { + QTextLine line = layout->createLine(); + if (!line.isValid()) + break; + + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) + line.setLineWidth(lineWidth); + } + layout->endLayout(); + + for (int i = 0; i < layout->lineCount(); ++i) { + QTextLine line = layout->lineAt(i); + widthUsed = qMax(widthUsed, line.naturalTextWidth()); + line.setPosition(QPointF(0, height)); + height += int(line.height()); + } + return QSize((int)widthUsed, height); +} + +QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) +{ + //do layout + QSize size = cachedLayoutSize; + + int x = 0; + for (int i = 0; i < layout.lineCount(); ++i) { + QTextLine line = layout.lineAt(i); + if (hAlign == QmlGraphicsText::AlignLeft) { + x = 0; + } else if (hAlign == QmlGraphicsText::AlignRight) { + x = size.width() - (int)line.naturalTextWidth(); + } else if (hAlign == QmlGraphicsText::AlignHCenter) { + x = (size.width() - (int)line.naturalTextWidth()) / 2; + } + line.setPosition(QPoint(x, (int)line.y())); + } + + //paint text + QPixmap img(size); + if (!size.isEmpty()) { + img.fill(Qt::transparent); + QPainter p(&img); + if (drawStyle) { + p.setPen(styleColor); + } + else + p.setPen(color); + p.setFont(font); + layout.draw(&p, QPointF(0, 0)); + } + return img; +} + +QPixmap QmlGraphicsTextPrivate::richTextImage(bool drawStyle) +{ + QSize size = doc->size().toSize(); + + //paint text + QPixmap img(size); + img.fill(Qt::transparent); + QPainter p(&img); + + if (drawStyle) { + QPalette pal = control->palette(); + pal.setColor(QPalette::Text, styleColor); + control->setPalette(pal); + QTextOption colorOption; + colorOption.setFlags(QTextOption::SuppressColors); + doc->setDefaultTextOption(colorOption); + } else { + QPalette pal = control->palette(); + pal.setColor(QPalette::Text, color); + control->setPalette(pal); + } + control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size))); + if (drawStyle) + doc->setDefaultTextOption(QTextOption()); + return img; +} + +void QmlGraphicsTextPrivate::checkImgCache() +{ + if (!imgDirty) + return; + + bool empty = text.isEmpty(); + if (empty) { + imgCache = QPixmap(); + imgStyleCache = QPixmap(); + } else if (richText) { + imgCache = richTextImage(false); + if (style != QmlGraphicsText::Normal) + imgStyleCache = richTextImage(true); //### should use styleColor + } else { + imgCache = wrappedTextImage(false); + if (style != QmlGraphicsText::Normal) + imgStyleCache = wrappedTextImage(true); //### should use styleColor + } + if (!empty) + switch (style) { + case QmlGraphicsText::Outline: + drawOutline(); + break; + case QmlGraphicsText::Sunken: + drawOutline(-1); + break; + case QmlGraphicsText::Raised: + drawOutline(1); + break; + default: + break; + } + + imgDirty = false; +} + +void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsText); + d->checkImgCache(); + if (d->imgCache.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + int w = width(); + int h = height(); + + int x = 0; + int y = 0; + + switch (d->hAlign) { + case AlignLeft: + x = 0; + break; + case AlignRight: + x = w - d->imgCache.width(); + break; + case AlignHCenter: + x = (w - d->imgCache.width()) / 2; + break; + } + + switch (d->vAlign) { + case AlignTop: + y = 0; + break; + case AlignBottom: + y = h - d->imgCache.height(); + break; + case AlignVCenter: + y = (h - d->imgCache.height()) / 2; + break; + } + + bool needClip = !clip() && (d->imgCache.width() > width() || + d->imgCache.height() > height()); + + if (needClip) { + p->save(); + p->setClipRect(boundingRect(), Qt::IntersectClip); + } + p->drawPixmap(x, y, d->imgCache); + if (needClip) + p->restore(); + + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +/*! + \qmlproperty bool Text::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsText::componentComplete() +{ + Q_D(QmlGraphicsText); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + QmlGraphicsItem::componentComplete(); + if (d->dirty) { + d->updateSize(); + d->dirty = false; + } +} + +/*! + \overload + Handles the given mouse \a event. + */ +void QmlGraphicsText::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsText); + + if (!d->richText || !d->doc || d->control->anchorAt(event->pos()).isEmpty()) { + event->setAccepted(false); + d->activeLink = QString(); + } else { + d->activeLink = d->control->anchorAt(event->pos()); + } + + // ### may malfunction if two of the same links are clicked & dragged onto each other) + + if (!event->isAccepted()) + QmlGraphicsItem::mousePressEvent(event); + +} + +/*! + \qmlsignal Text::linkActivated(link) + + This handler is called when the user clicks on a link embedded in the text. +*/ + +/*! + \overload + Handles the given mouse \a event. + */ +void QmlGraphicsText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsText); + + // ### confirm the link, and send a signal out + if (d->richText && d->doc && d->activeLink == d->control->anchorAt(event->pos())) + emit linkActivated(d->activeLink); + else + event->setAccepted(false); + + if (!event->isAccepted()) + QmlGraphicsItem::mouseReleaseEvent(event); +} +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicstext.h b/src/declarative/fx/qmlgraphicstext.h new file mode 100644 index 0000000..619de87 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstext.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXT_H +#define QMLGRAPHICSTEXT_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsTextPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(VAlignment) + Q_ENUMS(TextStyle) + Q_ENUMS(TextFormat) + Q_ENUMS(TextElideMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(TextStyle style READ style WRITE setStyle) + Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? + +public: + QmlGraphicsText(QmlGraphicsItem *parent=0); + ~QmlGraphicsText(); + + enum HAlignment { AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter }; + enum VAlignment { AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter }; + enum TextStyle { Normal, + Outline, + Raised, + Sunken }; + enum TextFormat { PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText }; + enum TextElideMode { ElideLeft = Qt::ElideLeft, + ElideRight = Qt::ElideRight, + ElideMiddle = Qt::ElideMiddle, + ElideNone = Qt::ElideNone }; + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + TextStyle style() const; + void setStyle(TextStyle style); + + QColor styleColor() const; + void setStyleColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + TextElideMode elideMode() const; + void setElideMode(TextElideMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(const QString &text); + void linkActivated(const QString &link); + +protected: + QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + +private: + Q_DISABLE_COPY(QmlGraphicsText) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsText) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicstext_p.h b/src/declarative/fx/qmlgraphicstext_p.h new file mode 100644 index 0000000..bf14c6f --- /dev/null +++ b/src/declarative/fx/qmlgraphicstext_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXT_P_H +#define QMLGRAPHICSTEXT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include + +QT_BEGIN_NAMESPACE + +class QTextLayout; +class QTextDocument; +class QTextControl; + +class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsText) +public: + QmlGraphicsTextPrivate() + : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), + hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), + dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), + format(QmlGraphicsText::AutoText) + { + } + + void updateSize(); + void checkImgCache(); + + void drawOutline(); + void drawOutline(int yOffset); + + QPixmap wrappedTextImage(bool drawStyle); + QPixmap richTextImage(bool drawStyle); + QSize setupTextLayout(QTextLayout *layout); + + QString text; + QFont font; + QColor color; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QString activeLink; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsText::HAlignment hAlign; + QmlGraphicsText::VAlignment vAlign; + QmlGraphicsText::TextElideMode elideMode; + bool dirty; + bool wrap; + bool richText; + bool singleline; + QTextControl *control; + QTextDocument *doc; + QTextLayout layout; + QSize cachedLayoutSize; + QmlGraphicsText::TextFormat format; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicstextedit.cpp b/src/declarative/fx/qmlgraphicstextedit.cpp new file mode 100644 index 0000000..24c64c1 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextedit.cpp @@ -0,0 +1,1085 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include "qmlgraphicstextedit_p.h" +#include +#include +#include "qmlgraphicsevents_p.h" +#include +#include +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QmlGraphicsTextEdit) + +/*! + \qmlclass TextEdit + \brief The TextEdit item allows you to add editable formatted text to a scene. + + It can display both plain and rich text. For example: + + \qml +TextEdit { + id: edit + text: "Hello World!" + focus: true + font.family: "Helvetica" + font.pointSize: 20 + color: "blue" + width: 240 +} + \endqml + + \image declarative-textedit.gif + + \sa Text +*/ + +/*! + \internal + \class QmlGraphicsTextEdit + \qmlclass TextEdit + \ingroup group_coreitems + + \brief The QmlGraphicsTextEdit class provides an editable formatted text item that you can add to a QmlView. + + It can display both plain and rich text. + + \image declarative-textedit.png + + A QmlGraphicsTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. +*/ + +/*! + Constructs a new QmlGraphicsTextEdit. +*/ +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsItem *parent) +: QmlGraphicsPaintedItem(*(new QmlGraphicsTextEditPrivate), parent) +{ + Q_D(QmlGraphicsTextEdit); + d->init(); +} + +/*! +\internal +*/ +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + Q_D(QmlGraphicsTextEdit); + d->init(); +} + +QString QmlGraphicsTextEdit::text() const +{ + Q_D(const QmlGraphicsTextEdit); + + if (d->richText) + return d->document->toHtml(); + else + return d->document->toPlainText(); +} + +/*! + \qmlproperty string TextEdit::font.family + \qmlproperty bool TextEdit::font.bold + \qmlproperty bool TextEdit::font.italic + \qmlproperty bool TextEdit::font.underline + \qmlproperty real TextEdit::font.pointSize + \qmlproperty int TextEdit::font.pixelSize + + Set the TextEdit's font attributes. +*/ + +/*! + \qmlproperty string TextEdit::text + + The text to display. If the text format is AutoText the text edit will + automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). +*/ +void QmlGraphicsTextEdit::setText(const QString &text) +{ + Q_D(QmlGraphicsTextEdit); + if (QmlGraphicsTextEdit::text() == text) + return; + d->text = text; + d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); + if (d->richText) { + d->control->setHtml(text); + } else { + d->control->setPlainText(text); + } + q_textChanged(); + updateSize(); +} + +/*! + \qmlproperty enumeration TextEdit::textFormat + + The way the text property should be displayed. + + Supported text formats are \c AutoText, \c PlainText and \c RichText. + + The default is AutoText. If the text format is AutoText the text edit + will automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). + + \table + \row + \o + \qml +Column { + TextEdit { + font.pointSize: 24 + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "RichText" + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "PlainText" + text: "Hello World!" + } +} + \endqml + \o \image declarative-textformat.png + \endtable +*/ +QmlGraphicsTextEdit::TextFormat QmlGraphicsTextEdit::textFormat() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->format; +} + +void QmlGraphicsTextEdit::setTextFormat(TextFormat format) +{ + Q_D(QmlGraphicsTextEdit); + if (format == d->format) + return; + bool wasRich = d->richText; + d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); + + if (wasRich && !d->richText) { + d->control->setPlainText(d->text); + updateSize(); + } else if (!wasRich && d->richText) { + d->control->setHtml(d->text); + updateSize(); + } + d->format = format; +} + +QFont QmlGraphicsTextEdit::font() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->font; +} + +void QmlGraphicsTextEdit::setFont(const QFont &font) +{ + Q_D(QmlGraphicsTextEdit); + d->font = font; + + clearCache(); + d->document->setDefaultFont(d->font); + if(d->cursor){ + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + } + updateSize(); + update(); +} + +/*! + \qmlproperty color TextEdit::color + + The text color. + + \qml +// green text using hexadecimal notation +TextEdit { color: "#00FF00"; ... } + +// steelblue text using SVG color name +TextEdit { color: "steelblue"; ... } + \endqml +*/ +QColor QmlGraphicsTextEdit::color() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->color; +} + +void QmlGraphicsTextEdit::setColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->color == color) + return; + + clearCache(); + d->color = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::Text, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty color TextEdit::selectionColor + + The text highlight color, used behind selections. +*/ +QColor QmlGraphicsTextEdit::selectionColor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->selectionColor; +} + +void QmlGraphicsTextEdit::setSelectionColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->selectionColor == color) + return; + + clearCache(); + d->selectionColor = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::Highlight, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty color TextEdit::selectedTextColor + + The selected text color, used in selections. +*/ +QColor QmlGraphicsTextEdit::selectedTextColor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->selectedTextColor; +} + +void QmlGraphicsTextEdit::setSelectedTextColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->selectedTextColor == color) + return; + + clearCache(); + d->selectedTextColor = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::HighlightedText, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty enumeration TextEdit::horizontalAlignment + \qmlproperty enumeration TextEdit::verticalAlignment + + Sets the horizontal and vertical alignment of the text within the TextEdit items + width and height. By default, the text is top-left aligned. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom + and \c AlignVCenter. +*/ +QmlGraphicsTextEdit::HAlignment QmlGraphicsTextEdit::hAlign() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->hAlign; +} + +void QmlGraphicsTextEdit::setHAlign(QmlGraphicsTextEdit::HAlignment alignment) +{ + Q_D(QmlGraphicsTextEdit); + if (alignment == d->hAlign) + return; + d->hAlign = alignment; + d->updateDefaultTextOption(); + updateSize(); +} + +QmlGraphicsTextEdit::VAlignment QmlGraphicsTextEdit::vAlign() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->vAlign; +} + +void QmlGraphicsTextEdit::setVAlign(QmlGraphicsTextEdit::VAlignment alignment) +{ + Q_D(QmlGraphicsTextEdit); + if (alignment == d->vAlign) + return; + d->vAlign = alignment; + d->updateDefaultTextOption(); + updateSize(); +} + +bool QmlGraphicsTextEdit::wrap() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->wrap; +} + +/*! + \qmlproperty bool TextEdit::wrap + + Set this property to wrap the text to the TextEdit item's width. + The text will only wrap if an explicit width has been set. + + Wrapping is done on word boundaries (i.e. it is a "word-wrap"). Wrapping is off by default. +*/ +void QmlGraphicsTextEdit::setWrap(bool w) +{ + Q_D(QmlGraphicsTextEdit); + if (w == d->wrap) + return; + d->wrap = w; + d->updateDefaultTextOption(); + updateSize(); +} + +/*! + \qmlproperty bool TextEdit::cursorVisible + If true the text edit shows a cursor. + + This property is set and unset when the text edit gets focus, but it can also + be set directly (useful, for example, if a KeyProxy might forward keys to it). +*/ +bool QmlGraphicsTextEdit::isCursorVisible() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->cursorVisible; +} + +void QmlGraphicsTextEdit::setCursorVisible(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->cursorVisible == on) + return; + d->cursorVisible = on; + QFocusEvent focusEvent(on ? QEvent::FocusIn : QEvent::FocusOut); + if (!on && !d->persistentSelection) + d->control->setCursorIsFocusIndicator(true); + d->control->processEvent(&focusEvent, QPointF(0, 0)); +} + +/*! + \qmlproperty int TextEdit::cursorPosition + The position of the cursor in the TextEdit. +*/ +int QmlGraphicsTextEdit::cursorPosition() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().position(); +} + +void QmlGraphicsTextEdit::setCursorPosition(int pos) +{ + Q_D(QmlGraphicsTextEdit); + QTextCursor cursor = d->control->textCursor(); + if (cursor.position() == pos) + return; + cursor.setPosition(pos); + d->control->setTextCursor(cursor); +} + +/*! + \qmlproperty Component TextEdit::cursorDelegate + The delegate for the cursor in the TextEdit. + + If you set a cursorDelegate for a TextEdit, this delegate will be used for + drawing the cursor instead of the standard cursor. An instance of the + delegate will be created and managed by the text edit when a cursor is + needed, and the x and y properties of delegate instance will be set so as + to be one pixel before the top left of the current character. + + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. +*/ +QmlComponent* QmlGraphicsTextEdit::cursorDelegate() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->cursorComponent; +} + +void QmlGraphicsTextEdit::setCursorDelegate(QmlComponent* c) +{ + Q_D(QmlGraphicsTextEdit); + if(d->cursorComponent){ + if(d->cursor){ + disconnect(d->control, SIGNAL(cursorPositionChanged()), + this, SLOT(moveCursorDelegate())); + d->control->setCursorWidth(-1); + dirtyCache(cursorRect()); + delete d->cursor; + d->cursor = 0; + } + } + d->cursorComponent = c; + if(c && c->isReady()){ + loadCursorDelegate(); + }else{ + if(c) + connect(c, SIGNAL(statusChanged()), + this, SLOT(loadCursorDelegate())); + } +} + +void QmlGraphicsTextEdit::loadCursorDelegate() +{ + Q_D(QmlGraphicsTextEdit); + if(d->cursorComponent->isLoading()) + return; + d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); + if(d->cursor){ + connect(d->control, SIGNAL(cursorPositionChanged()), + this, SLOT(moveCursorDelegate())); + d->control->setCursorWidth(0); + dirtyCache(cursorRect()); + d->cursor->setParentItem(this); + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + }else{ + qWarning() << QLatin1String("Error loading cursor delegate for TextEdit:") + objectName(); + } +} + +/*! + \qmlproperty int TextEdit::selectionStart + + The cursor position before the first character in the current selection. + Setting this and selectionEnd allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionStart to a value outside of + the current text, selectionStart will not be changed. + + \sa selectionEnd, cursorPosition, selectedText +*/ +int QmlGraphicsTextEdit::selectionStart() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectionStart(); +} + +void QmlGraphicsTextEdit::setSelectionStart(int s) +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionStart == s || s < 0 || s > text().length()) + return; + d->lastSelectionStart = s; + d->updateSelection();// Will emit the relevant signals +} + +/*! + \qmlproperty int TextEdit::selectionEnd + + The cursor position after the last character in the current selection. + Setting this and selectionStart allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionEnd to a value outside of + the current text, selectionEnd will not be changed. + + \sa selectionStart, cursorPosition, selectedText +*/ +int QmlGraphicsTextEdit::selectionEnd() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectionEnd(); +} + +void QmlGraphicsTextEdit::setSelectionEnd(int s) +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionEnd == s || s < 0 || s > text().length()) + return; + d->lastSelectionEnd = s; + d->updateSelection();// Will emit the relevant signals +} + +/*! + \qmlproperty string TextEdit::selectedText + + This read-only property provides the text currently selected in the + text edit. + + It is equivalent to the following snippet, but is faster and easier + to use. + \code + //myTextEdit is the id of the TextEdit + myTextEdit.text.toString().substring(myTextEdit.selectionStart, + myTextEdit.selectionEnd); + \endcode +*/ +QString QmlGraphicsTextEdit::selectedText() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectedText(); +} + +/*! + \qmlproperty bool TextEdit::focusOnPress + + Whether the TextEdit should gain focus on a mouse press. By default this is + set to false; +*/ +bool QmlGraphicsTextEdit::focusOnPress() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->focusOnPress; +} + +void QmlGraphicsTextEdit::setFocusOnPress(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->focusOnPress == on) + return; + d->focusOnPress = on; +} + +/*! + \qmlproperty bool TextEdit::persistentSelection + + Whether the TextEdit should keep the selection visible when it loses focus to another + item in the scene. By default this is set to true; +*/ +bool QmlGraphicsTextEdit::persistentSelection() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->persistentSelection; +} + +void QmlGraphicsTextEdit::setPersistentSelection(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->persistentSelection == on) + return; + d->persistentSelection = on; +} + +qreal QmlGraphicsTextEdit::textMargin() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->textMargin; +} + +void QmlGraphicsTextEdit::setTextMargin(qreal margin) +{ + Q_D(QmlGraphicsTextEdit); + if (d->textMargin == margin) + return; + d->textMargin = margin; + d->document->setDocumentMargin(d->textMargin); +} + +void QmlGraphicsTextEdit::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.width() != oldGeometry.width()) + updateSize(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +/*! + Ensures any delayed caching or data loading the class + needs to performed is complete. +*/ +void QmlGraphicsTextEdit::componentComplete() +{ + Q_D(QmlGraphicsTextEdit); + QmlGraphicsPaintedItem::componentComplete(); + if (d->dirty) { + updateSize(); + d->dirty = false; + } +} + +/*! + \qmlproperty bool TextEdit::readOnly + + Whether the user an interact with the TextEdit item. If this + property is set to true the text cannot be edited by user interaction. + + By default this property is false. +*/ +void QmlGraphicsTextEdit::setReadOnly(bool r) +{ + Q_D(QmlGraphicsTextEdit); + + Qt::TextInteractionFlags flags = Qt::NoTextInteraction; + if (r) { + flags = Qt::TextSelectableByMouse; + } else { + flags = Qt::TextEditorInteraction; + } + d->control->setTextInteractionFlags(flags); + if (!r) + d->control->moveCursor(QTextCursor::End); +} + +bool QmlGraphicsTextEdit::isReadOnly() const +{ + Q_D(const QmlGraphicsTextEdit); + return !(d->control->textInteractionFlags() & Qt::TextEditable); +} + +/*! + Sets how the text edit should interact with user input to the given + \a flags. +*/ +void QmlGraphicsTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) +{ + Q_D(QmlGraphicsTextEdit); + d->control->setTextInteractionFlags(flags); +} + +/*! + Returns the flags specifying how the text edit should interact + with user input. +*/ +Qt::TextInteractionFlags QmlGraphicsTextEdit::textInteractionFlags() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textInteractionFlags(); +} + +/*! + Returns the cursor for the point at the given \a pos on the + text edit. +*/ +QTextCursor QmlGraphicsTextEdit::cursorForPosition(const QPoint &pos) const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->cursorForPosition(pos); +} + +/*! + Returns the rectangle where the given text \a cursor is rendered + within the text edit. +*/ +QRect QmlGraphicsTextEdit::cursorRect(const QTextCursor &cursor) const +{ + Q_D(const QmlGraphicsTextEdit); + if (cursor.isNull()) + return QRect(); + + return d->control->cursorRect(cursor).toRect(); +} + +/*! + Returns the rectangle where the text cursor is rendered + within the text edit. +*/ +QRect QmlGraphicsTextEdit::cursorRect() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->cursorRect().toRect(); +} + + +/*! + Sets the text cursor for the text edit to the given \a cursor. +*/ +void QmlGraphicsTextEdit::setTextCursor(const QTextCursor &cursor) +{ + Q_D(QmlGraphicsTextEdit); + d->control->setTextCursor(cursor); +} + +/*! + Returns the text cursor for the text edit. +*/ +QTextCursor QmlGraphicsTextEdit::textCursor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor(); +} + +/*! +Moves the cursor by performing the given \a operation. + +If \a mode is QTextCursor::KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys. +*/ +void QmlGraphicsTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) +{ + Q_D(QmlGraphicsTextEdit); + d->control->moveCursor(operation, mode); +} + +/*! +\overload +Handles the given \a event. +*/ +bool QmlGraphicsTextEdit::event(QEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + if (event->type() == QEvent::ShortcutOverride) { + d->control->processEvent(event, QPointF(0, 0)); + return event->isAccepted(); + } + return QmlGraphicsPaintedItem::event(event); +} + +/*! +\overload +Handles the given key \a event. +*/ +void QmlGraphicsTextEdit::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + //### this causes non-standard cursor behavior in some cases. + // is it still needed? + /*QTextCursor c = textCursor(); + QTextCursor::MoveOperation op = QTextCursor::NoMove; + if (event == QKeySequence::MoveToNextChar) { + op = QTextCursor::Right; + } else if (event == QKeySequence::MoveToPreviousChar) { + op = QTextCursor::Left; + } else if (event == QKeySequence::MoveToNextWord) { + op = QTextCursor::WordRight; + } else if (event == QKeySequence::MoveToPreviousWord) { + op = QTextCursor::WordLeft; + } else if (event == QKeySequence::MoveToNextLine) { + op = QTextCursor::Down; + } else if (event == QKeySequence::MoveToPreviousLine) { + op = QTextCursor::Up; + } + + if (op != QTextCursor::NoMove && !c.movePosition(op)) + event->ignore(); + else*/ + d->control->processEvent(event, QPointF(0, 0)); + + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(event); +} + +/*! +\overload +Handles the given key \a event. +*/ +void QmlGraphicsTextEdit::keyReleaseEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyReleaseEvent(event); +} + +/*! + \overload + Handles changing of the focus property. Focus is applied to the control + even if the edit does not have active focus. This is because things + like KeyProxy can give the behavior of focus even when hasFocus() isn't + true. +*/ +void QmlGraphicsTextEdit::focusChanged(bool hasFocus) +{ + setCursorVisible(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); +} + +/*! + Causes all text to be selected. +*/ +void QmlGraphicsTextEdit::selectAll() +{ + Q_D(QmlGraphicsTextEdit); + d->control->selectAll(); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + if (d->focusOnPress) + setFocus(true); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mouseDoubleClickEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given input method \a event. +*/ +void QmlGraphicsTextEdit::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); +} + +/*! +\overload +Returns the value of the given \a property. +*/ +QVariant QmlGraphicsTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->inputMethodQuery(property); +} + +/*! +Draws the contents of the text edit using the given \a painter within +the given \a bounds. +*/ +void QmlGraphicsTextEdit::drawContents(QPainter *painter, const QRect &bounds) +{ + Q_D(QmlGraphicsTextEdit); + + painter->setRenderHint(QPainter::TextAntialiasing, true); + + d->control->drawContents(painter, bounds); +} + +void QmlGraphicsTextEdit::updateImgCache(const QRectF &r) +{ + dirtyCache(r.toRect()); + emit update(); +} + +/*! + \qmlproperty bool TextEdit::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsTextEditPrivate::init() +{ + Q_Q(QmlGraphicsTextEdit); + + q->setSmoothTransform(smooth); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemHasNoContents, false); + q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + + control = new QTextControl(q); + + QObject::connect(control, SIGNAL(updateRequest(QRectF)), q, SLOT(updateImgCache(QRectF))); + + QObject::connect(control, SIGNAL(textChanged()), q, SLOT(q_textChanged())); + QObject::connect(control, SIGNAL(selectionChanged()), q, SIGNAL(selectionChanged())); + QObject::connect(control, SIGNAL(selectionChanged()), q, SLOT(updateSelectionMarkers())); + QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SLOT(updateSelectionMarkers())); + QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SIGNAL(cursorPositionChanged())); + + document = control->document(); + document->setDefaultFont(font); + document->setDocumentMargin(textMargin); + document->setUndoRedoEnabled(false); // flush undo buffer. + document->setUndoRedoEnabled(true); + updateDefaultTextOption(); +} + +void QmlGraphicsTextEdit::q_textChanged() +{ + if (!widthValid()) + updateSize(); //### optimize: we get 3 calls to updateSize every time a letter is typed + emit textChanged(text()); +} + +void QmlGraphicsTextEdit::moveCursorDelegate() +{ + Q_D(QmlGraphicsTextEdit); + if(!d->cursor) + return; + QRectF cursorRect = d->control->cursorRect(); + d->cursor->setX(cursorRect.x()); + d->cursor->setY(cursorRect.y()); +} + +void QmlGraphicsTextEditPrivate::updateSelection() +{ + Q_Q(QmlGraphicsTextEdit); + QTextCursor cursor = control->textCursor(); + bool startChange = (lastSelectionStart != cursor.selectionStart()); + bool endChange = (lastSelectionEnd != cursor.selectionEnd()); + //### Is it worth calculating a more minimal set of movements? + cursor.beginEditBlock(); + cursor.setPosition(lastSelectionStart, QTextCursor::MoveAnchor); + cursor.setPosition(lastSelectionEnd, QTextCursor::KeepAnchor); + cursor.endEditBlock(); + control->setTextCursor(cursor); + if(startChange) + q->selectionStartChanged(); + if(endChange) + q->selectionEndChanged(); + startChange = (lastSelectionStart != control->textCursor().selectionStart()); + endChange = (lastSelectionEnd != control->textCursor().selectionEnd()); + if(startChange || endChange) + qWarning() << "QmlGraphicsTextEditPrivate::updateSelection() has failed you."; +} + +void QmlGraphicsTextEdit::updateSelectionMarkers() +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionStart != d->control->textCursor().selectionStart()){ + d->lastSelectionStart = d->control->textCursor().selectionStart(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->textCursor().selectionEnd()){ + d->lastSelectionEnd = d->control->textCursor().selectionEnd(); + emit selectionEndChanged(); + } +} + +//### we should perhaps be a bit smarter here -- depending on what has changed, we shouldn't +// need to do all the calculations each time +void QmlGraphicsTextEdit::updateSize() +{ + Q_D(QmlGraphicsTextEdit); + if (isComponentComplete()) { + QFontMetrics fm = QFontMetrics(d->font); + int dy = height(); + // ### assumes that if the width is set, the text will fill to edges + // ### (unless wrap is false, then clipping will occur) + if (widthValid()) + d->document->setTextWidth(width()); + dy -= (int)d->document->size().height(); + + int yoff = 0; + if (heightValid()) { + if (d->vAlign == AlignBottom) + yoff = dy; + else if (d->vAlign == AlignVCenter) + yoff = dy/2; + } + setBaselineOffset(fm.ascent() + yoff + d->textMargin); + + //### need to comfirm cost of always setting these + int newWidth = (int)d->document->idealWidth(); + d->document->setTextWidth(newWidth); // ### QTextDoc> Alignment will not work unless textWidth is set. Does Text need this line as well? + int cursorWidth = 1; + if(d->cursor) + cursorWidth = d->cursor->width(); + newWidth += cursorWidth; + if(!d->document->isEmpty()) + newWidth += 3;// ### Need a better way of accounting for space between char and cursor + // ### Setting the implicitWidth triggers another updateSize(), and unless there are bindings nothing has changed. + setImplicitWidth(newWidth); + setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); + + setContentsSize(QSize(width(), height())); + } else { + d->dirty = true; + } + emit update(); +} + +void QmlGraphicsTextEditPrivate::updateDefaultTextOption() +{ + QTextOption opt = document->defaultTextOption(); + int oldAlignment = opt.alignment(); + opt.setAlignment((Qt::Alignment)(int)(hAlign | vAlign)); + + QTextOption::WrapMode oldWrapMode = opt.wrapMode(); + + if (wrap) + opt.setWrapMode(QTextOption::WordWrap); + else + opt.setWrapMode(QTextOption::NoWrap); + + if (oldWrapMode == opt.wrapMode() && oldAlignment == opt.alignment()) + return; + document->setDefaultTextOption(opt); +} + +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicstextedit.h b/src/declarative/fx/qmlgraphicstextedit.h new file mode 100644 index 0000000..57f7449 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextedit.h @@ -0,0 +1,234 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTEDIT_H +#define QMLGRAPHICSTEXTEDIT_H + +#include +#include + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + + +class QmlGraphicsTextEditPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem +{ + Q_OBJECT + Q_ENUMS(VAlignment) + Q_ENUMS(HAlignment) + Q_ENUMS(TextFormat) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) + Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) + +public: + QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + enum VAlignment { + AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter + }; + + enum TextFormat { + PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText + }; + + QString text() const; + void setText(const QString &); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int pos); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + bool focusOnPress() const; + void setFocusOnPress(bool on); + + bool persistentSelection() const; + void setPersistentSelection(bool on); + + qreal textMargin() const; + void setTextMargin(qreal margin); + + virtual void componentComplete(); + + /* FROM EDIT */ + void setReadOnly(bool); + bool isReadOnly() const; + + void setTextInteractionFlags(Qt::TextInteractionFlags flags); + Qt::TextInteractionFlags textInteractionFlags() const; + + QTextCursor cursorForPosition(const QPoint &pos) const; + QRect cursorRect(const QTextCursor &cursor) const; + QRect cursorRect() const; + + void setTextCursor(const QTextCursor &cursor); + QTextCursor textCursor() const; + + void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); + + QVariant inputMethodQuery(Qt::InputMethodQuery property) const; + +Q_SIGNALS: + void textChanged(const QString &); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectionChanged(); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateImgCache(const QRectF &rect); + void q_textChanged(); + void updateSelectionMarkers(); + void moveCursorDelegate(); + void loadCursorDelegate(); + +private: + void updateSize(); + +protected: + QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + bool event(QEvent *); + void keyPressEvent(QKeyEvent *); + void keyReleaseEvent(QKeyEvent *); + + void focusChanged(bool); + + // mouse filter? + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + + void inputMethodEvent(QInputMethodEvent *e); + + void drawContents(QPainter *, const QRect &); +private: + Q_DISABLE_COPY(QmlGraphicsTextEdit) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsTextEdit) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicstextedit_p.h b/src/declarative/fx/qmlgraphicstextedit_p.h new file mode 100644 index 0000000..7a163f8 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextedit_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTEDIT_P_H +#define QMLGRAPHICSTEXTEDIT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicspainteditem_p.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QTextLayout; +class QTextDocument; +class QTextControl; +class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) + +public: + QmlGraphicsTextEditPrivate() + : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), + dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), + persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), + cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) + { + } + + void init(); + + void updateDefaultTextOption(); + void relayoutDocument(); + void updateSelection(); + + QString text; + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QString style; + QColor styleColor; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsTextEdit::HAlignment hAlign; + QmlGraphicsTextEdit::VAlignment vAlign; + bool dirty; + bool wrap; + bool richText; + bool cursorVisible; + bool focusOnPress; + bool persistentSelection; + qreal textMargin; + int lastSelectionStart; + int lastSelectionEnd; + QmlComponent* cursorComponent; + QmlGraphicsItem* cursor; + QmlGraphicsTextEdit::TextFormat format; + QTextDocument *document; + QTextControl *control; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicstextinput.cpp b/src/declarative/fx/qmlgraphicstextinput.cpp new file mode 100644 index 0000000..17e6f7c --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextinput.cpp @@ -0,0 +1,777 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlgraphicstextinput.h" +#include "qmlgraphicstextinput_p.h" +#include "qmlinfo.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QmlGraphicsTextInput); +QML_DEFINE_NOCREATE_TYPE(QValidator); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); + +/*! + \qmlclass TextInput + The TextInput item allows you to add an editable line of text to a scene. + + TextInput can only display a single line of text, and can only display + plain text. However it can provide addition input constraints on the text. + + Input constraints include setting a QValidator, an input mask, or a + maximum input length. +*/ +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsTextInputPrivate), parent) +{ + Q_D(QmlGraphicsTextInput); + d->init(); +} + +/* + \internal +*/ +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + Q_D(QmlGraphicsTextInput); + d->init(); +} + +QmlGraphicsTextInput::~QmlGraphicsTextInput() +{ +} + +/*! + \qmlproperty string TextInput::text + + The text in the TextInput. +*/ + +QString QmlGraphicsTextInput::text() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->text(); +} + +void QmlGraphicsTextInput::setText(const QString &s) +{ + Q_D(QmlGraphicsTextInput); + if(s == text()) + return; + d->control->setText(s); + //emit textChanged(); +} + +/*! + \qmlproperty string TextInput::font.family + \qmlproperty bool TextInput::font.bold + \qmlproperty bool TextInput::font.italic + \qmlproperty bool TextInput::font.underline + \qmlproperty real TextInput::font.pointSize + \qmlproperty int TextInput::font.pixelSize + + Set the TextInput's font attributes. +*/ +QFont QmlGraphicsTextInput::font() const +{ + Q_D(const QmlGraphicsTextInput); + return d->font; +} + +void QmlGraphicsTextInput::setFont(const QFont &font) +{ + Q_D(QmlGraphicsTextInput); + d->font = font; + + d->control->setFont(d->font); + if(d->cursorItem){ + d->cursorItem->setHeight(QFontMetrics(d->font).height()); + moveCursor(); + } + updateSize(); +} + +/*! + \qmlproperty color TextInput::color + + The text color. +*/ +QColor QmlGraphicsTextInput::color() const +{ + Q_D(const QmlGraphicsTextInput); + return d->color; +} + +void QmlGraphicsTextInput::setColor(const QColor &c) +{ + Q_D(QmlGraphicsTextInput); + d->color = c; +} + + +/*! + \qmlproperty color TextInput::selectionColor + + The text highlight color, used behind selections. +*/ +QColor QmlGraphicsTextInput::selectionColor() const +{ + Q_D(const QmlGraphicsTextInput); + return d->selectionColor; +} + +void QmlGraphicsTextInput::setSelectionColor(const QColor &color) +{ + Q_D(QmlGraphicsTextInput); + if (d->selectionColor == color) + return; + + d->selectionColor = color; + QPalette p = d->control->palette(); + p.setColor(QPalette::Highlight, d->selectionColor); + d->control->setPalette(p); +} + +/*! + \qmlproperty color TextInput::selectedTextColor + + The highlighted text color, used in selections. +*/ +QColor QmlGraphicsTextInput::selectedTextColor() const +{ + Q_D(const QmlGraphicsTextInput); + return d->selectedTextColor; +} + +void QmlGraphicsTextInput::setSelectedTextColor(const QColor &color) +{ + Q_D(QmlGraphicsTextInput); + if (d->selectedTextColor == color) + return; + + d->selectedTextColor = color; + QPalette p = d->control->palette(); + p.setColor(QPalette::HighlightedText, d->selectedTextColor); + d->control->setPalette(p); +} + +/*! + \qmlproperty enumeration TextInput::horizontalAlignment + + Sets the horizontal alignment of the text within the TextInput item's + width and height. By default, the text is left aligned. + + TextInput does not have vertical alignment, as the natural height is + exactly the height of the single line of text. If you set the height + manually to something larger, TextInput will always be top aligned + vertically. You can use anchors to align it however you want within + another item. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. +*/ +QmlGraphicsTextInput::HAlignment QmlGraphicsTextInput::hAlign() const +{ + Q_D(const QmlGraphicsTextInput); + return d->hAlign; +} + +void QmlGraphicsTextInput::setHAlign(HAlignment align) +{ + Q_D(QmlGraphicsTextInput); + d->hAlign = align; + //TODO: implement +} + +bool QmlGraphicsTextInput::isReadOnly() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->isReadOnly(); +} + +void QmlGraphicsTextInput::setReadOnly(bool ro) +{ + Q_D(QmlGraphicsTextInput); + d->control->setReadOnly(ro); +} + +int QmlGraphicsTextInput::maxLength() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->maxLength(); +} + +void QmlGraphicsTextInput::setMaxLength(int ml) +{ + Q_D(QmlGraphicsTextInput); + d->control->setMaxLength(ml); +} + +/*! + \qmlproperty bool TextInput::cursorVisible + If true the text edit shows a cursor. + + This property is set and unset when the line edit gets focus, but it can also + be set directly (useful, for example, if a KeyProxy might forward keys to it). +*/ +bool QmlGraphicsTextInput::isCursorVisible() const +{ + Q_D(const QmlGraphicsTextInput); + return d->cursorVisible; +} + +void QmlGraphicsTextInput::setCursorVisible(bool on) +{ + Q_D(QmlGraphicsTextInput); + if (d->cursorVisible == on) + return; + d->cursorVisible = on; + d->control->setCursorBlinkPeriod(on?QApplication::cursorFlashTime():0); + //d->control should emit the cursor update regions +} + +/*! + \qmlproperty int TextInput::cursorPosition + The position of the cursor in the TextInput. +*/ +int QmlGraphicsTextInput::cursorPosition() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->cursor(); +} +void QmlGraphicsTextInput::setCursorPosition(int cp) +{ + Q_D(QmlGraphicsTextInput); + d->control->moveCursor(cp); +} + +/*! + \internal + + Returns a Rect which encompasses the cursor, but which may be larger than is + required. Ignores custom cursor delegates. +*/ +QRect QmlGraphicsTextInput::cursorRect() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->cursorRect(); +} + +/*! + \qmlproperty int TextInput::selectionStart + + The cursor position before the first character in the current selection. + Setting this and selectionEnd allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionStart to a value outside of + the current text, selectionStart will not be changed. + + \sa selectionEnd, cursorPosition, selectedText +*/ +int QmlGraphicsTextInput::selectionStart() const +{ + Q_D(const QmlGraphicsTextInput); + return d->lastSelectionStart; +} + +void QmlGraphicsTextInput::setSelectionStart(int s) +{ + Q_D(QmlGraphicsTextInput); + if(d->lastSelectionStart == s || s < 0 || s > text().length()) + return; + d->lastSelectionStart = s; + d->control->setSelection(s, d->lastSelectionEnd - s); +} + +/*! + \qmlproperty int TextInput::selectionEnd + + The cursor position after the last character in the current selection. + Setting this and selectionStart allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionEnd to a value outside of + the current text, selectionEnd will not be changed. + + \sa selectionStart, cursorPosition, selectedText +*/ +int QmlGraphicsTextInput::selectionEnd() const +{ + Q_D(const QmlGraphicsTextInput); + return d->lastSelectionEnd; +} + +void QmlGraphicsTextInput::setSelectionEnd(int s) +{ + Q_D(QmlGraphicsTextInput); + if(d->lastSelectionEnd == s || s < 0 || s > text().length()) + return; + d->lastSelectionEnd = s; + d->control->setSelection(d->lastSelectionStart, s - d->lastSelectionStart); +} + +/*! + \qmlproperty string TextInput::selectedText + + This read-only property provides the text currently selected in the + text input. + + It is equivalent to the following snippet, but is faster and easier + to use. + + \qml + myTextInput.text.toString().substring(myTextInput.selectionStart, + myTextInput.selectionEnd); + \endqml +*/ +QString QmlGraphicsTextInput::selectedText() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->selectedText(); +} + +/*! + \qmlproperty bool TextInput::focusOnPress + + Whether the TextInput should gain focus on a mouse press. By default this is + set to true. +*/ +bool QmlGraphicsTextInput::focusOnPress() const +{ + Q_D(const QmlGraphicsTextInput); + return d->focusOnPress; +} + +void QmlGraphicsTextInput::setFocusOnPress(bool b) +{ + Q_D(QmlGraphicsTextInput); + d->focusOnPress = b; +} + +/*! + \qmlproperty QValidator* TextInput::validator + + Allows you to set a QValidator on the TextInput. When a validator is set + the TextInput will only accept input which leaves the text property in + an acceptable or intermediate state. The accepted signal will only be sent + if the text is in an acceptable state when enter is pressed. + + \sa acceptableInput, inputMask +*/ +QValidator* QmlGraphicsTextInput::validator() const +{ + Q_D(const QmlGraphicsTextInput); + //###const cast isn't good, but needed for property system? + return const_cast(d->control->validator()); +} + +void QmlGraphicsTextInput::setValidator(QValidator* v) +{ + Q_D(QmlGraphicsTextInput); + d->control->setValidator(v); + if(!d->control->hasAcceptableInput()){ + d->oldValidity = false; + emit acceptableInputChanged(); + } +} + +/*! + \qmlproperty string TextInput::inputMask + + Allows you to set an input mask on the TextInput, restricting the allowable + text inputs. See QLineEdit::inputMask for further details, as the exact + same mask strings are used by TextInput. + + \sa acceptableInput, validator +*/ +QString QmlGraphicsTextInput::inputMask() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->inputMask(); +} + +void QmlGraphicsTextInput::setInputMask(const QString &im) +{ + Q_D(QmlGraphicsTextInput); + d->control->setInputMask(im); +} + +/*! + \qmlproperty bool TextInput::acceptableInput + + This property is always true unless a validator or input mask has been set. + If a validator or input mask has been set, this property will only be true + if the current text is acceptable to the validator or input mask as a final + string (not as an intermediate string). +*/ +bool QmlGraphicsTextInput::hasAcceptableInput() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->hasAcceptableInput(); +} + +/*! + \qmlproperty TextInput.EchoMode TextInput::echoMode + + Specifies how the text should be displayed in the TextInput. + The default is Normal, which displays the text as it is. Other values + are Password, which displays asterixes instead of characters, NoEcho, + which displays nothing, and PasswordEchoOnEdit, which displays all but the + current character as asterixes. + +*/ +QmlGraphicsTextInput::EchoMode QmlGraphicsTextInput::echoMode() const +{ + Q_D(const QmlGraphicsTextInput); + return (QmlGraphicsTextInput::EchoMode)d->control->echoMode(); +} + +void QmlGraphicsTextInput::setEchoMode(QmlGraphicsTextInput::EchoMode echo) +{ + Q_D(QmlGraphicsTextInput); + d->control->setEchoMode((uint)echo); +} + +/*! + \qmlproperty Component TextInput::cursorDelegate + The delegate for the cursor in the TextInput. + + If you set a cursorDelegate for a TextInput, this delegate will be used for + drawing the cursor instead of the standard cursor. An instance of the + delegate will be created and managed by the TextInput when a cursor is + needed, and the x property of delegate instance will be set so as + to be one pixel before the top left of the current character. + + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. +*/ +QmlComponent* QmlGraphicsTextInput::cursorDelegate() const +{ + Q_D(const QmlGraphicsTextInput); + return d->cursorComponent; +} + +void QmlGraphicsTextInput::setCursorDelegate(QmlComponent* c) +{ + Q_D(QmlGraphicsTextInput); + d->cursorComponent = c; + if(!c){ + //note that the components are owned by something else + disconnect(d->control, SIGNAL(cursorPositionChanged(int, int)), + this, SLOT(moveCursor())); + delete d->cursorItem; + }else{ + d->startCreatingCursor(); + } +} + +void QmlGraphicsTextInputPrivate::startCreatingCursor() +{ + Q_Q(QmlGraphicsTextInput); + q->connect(control, SIGNAL(cursorPositionChanged(int, int)), + q, SLOT(moveCursor())); + if(cursorComponent->isReady()){ + q->createCursor(); + }else if(cursorComponent->isLoading()){ + q->connect(cursorComponent, SIGNAL(statusChanged(int)), + q, SLOT(createCursor())); + }else{//isError + qmlInfo(QmlGraphicsTextInput::tr("Could not load cursor delegate"), q); + qWarning() << cursorComponent->errors(); + } +} + +void QmlGraphicsTextInput::createCursor() +{ + Q_D(QmlGraphicsTextInput); + if(d->cursorComponent->isError()){ + qmlInfo(tr("Could not load cursor delegate"),this); + qWarning() << d->cursorComponent->errors(); + return; + } + + if(!d->cursorComponent->isReady()) + return; + + if(d->cursorItem) + delete d->cursorItem; + d->cursorItem = qobject_cast(d->cursorComponent->create()); + if(!d->cursorItem){ + qmlInfo(tr("Could not instantiate cursor delegate"),this); + //The failed instantiation should print its own error messages + return; + } + + d->cursorItem->setParentItem(this); + d->cursorItem->setX(d->control->cursorToX()); + d->cursorItem->setHeight(d->control->height()); +} + +void QmlGraphicsTextInput::moveCursor() +{ + Q_D(QmlGraphicsTextInput); + if(!d->cursorItem) + return; + d->cursorItem->setX(d->control->cursorToX() - d->hscroll); +} + +int QmlGraphicsTextInput::xToPos(int x) +{ + Q_D(const QmlGraphicsTextInput); + return d->control->xToPos(x - d->hscroll); +} + +void QmlGraphicsTextInput::focusChanged(bool hasFocus) +{ + Q_D(QmlGraphicsTextInput); + d->focused = hasFocus; + setCursorVisible(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); +} + +void QmlGraphicsTextInput::keyPressEvent(QKeyEvent* ev) +{ + Q_D(QmlGraphicsTextInput); + if((d->control->cursor() == 0 && ev->key() == Qt::Key_Left) + || (d->control->cursor() == d->control->text().length() + && ev->key() == Qt::Key_Right)){ + //ignore when moving off the end + ev->ignore(); + }else{ + d->control->processKeyEvent(ev); + } + if (!ev->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(ev); +} + +void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextInput); + if(d->focusOnPress){ + setFocus(true); + setCursorVisible(true); + d->focused = true; + } + d->control->processEvent(event); +} + +bool QmlGraphicsTextInput::event(QEvent* ev) +{ + Q_D(QmlGraphicsTextInput); + //Anything we don't deal with ourselves, pass to the control + bool handled = false; + switch(ev->type()){ + case QEvent::KeyPress: + case QEvent::KeyRelease://###Should the control be doing anything with release? + case QEvent::GraphicsSceneMousePress: + break; + default: + handled = d->control->processEvent(ev); + } + if(!handled) + return QmlGraphicsPaintedItem::event(ev); + return true; +} + +void QmlGraphicsTextInput::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.width() != oldGeometry.width()) + updateSize(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsTextInput::drawContents(QPainter *p, const QRect &r) +{ + Q_D(QmlGraphicsTextInput); + p->setRenderHint(QPainter::TextAntialiasing, true); + p->save(); + p->setPen(QPen(d->color)); + int flags = QLineControl::DrawText; + if(!isReadOnly() && d->cursorVisible && !d->cursorItem) + flags |= QLineControl::DrawCursor; + if (d->control->hasSelectedText()){ + flags |= QLineControl::DrawSelections; + } + + QPoint offset = QPoint(0,0); + QRect clipRect = r; + d->control->draw(p, offset, clipRect, flags); + + p->restore(); +} + +void QmlGraphicsTextInput::selectAll() +{ + Q_D(QmlGraphicsTextInput); + d->control->setSelection(0, d->control->text().length()); +} + + +/*! + \qmlproperty bool TextInput::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsTextInputPrivate::init() +{ + Q_Q(QmlGraphicsTextInput); + control->setCursorWidth(1); + control->setPasswordCharacter(QLatin1Char('*')); + control->setLayoutDirection(Qt::LeftToRight); + q->setSmoothTransform(smooth); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemHasNoContents, false); + q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + q->connect(control, SIGNAL(cursorPositionChanged(int,int)), + q, SLOT(cursorPosChanged())); + q->connect(control, SIGNAL(selectionChanged()), + q, SLOT(selectionChanged())); + q->connect(control, SIGNAL(textChanged(const QString &)), + q, SLOT(q_textChanged())); + q->connect(control, SIGNAL(accepted()), + q, SIGNAL(accepted())); + q->connect(control, SIGNAL(updateNeeded(QRect)), + q, SLOT(updateRect(QRect))); + q->connect(control, SIGNAL(cursorPositionChanged(int,int)), + q, SLOT(updateRect()));//TODO: Only update rect between pos's + q->connect(control, SIGNAL(selectionChanged()), + q, SLOT(updateRect()));//TODO: Only update rect in selection + //Note that above TODOs probably aren't that big a savings + q->updateSize(); + oldValidity = control->hasAcceptableInput(); + lastSelectionStart = 0; + lastSelectionEnd = 0; +} + +void QmlGraphicsTextInput::cursorPosChanged() +{ + Q_D(QmlGraphicsTextInput); + emit cursorPositionChanged(); + + if(!d->control->hasSelectedText()){ + if(d->lastSelectionStart != d->control->cursor()){ + d->lastSelectionStart = d->control->cursor(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->cursor()){ + d->lastSelectionEnd = d->control->cursor(); + emit selectionEndChanged(); + } + } +} + +void QmlGraphicsTextInput::selectionChanged() +{ + Q_D(QmlGraphicsTextInput); + emit selectedTextChanged(); + + if(d->lastSelectionStart != d->control->selectionStart()){ + d->lastSelectionStart = d->control->selectionStart(); + if(d->lastSelectionStart == -1) + d->lastSelectionStart = d->control->cursor(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->selectionEnd()){ + d->lastSelectionEnd = d->control->selectionEnd(); + if(d->lastSelectionEnd == -1) + d->lastSelectionEnd = d->control->cursor(); + emit selectionEndChanged(); + } +} + +void QmlGraphicsTextInput::q_textChanged() +{ + Q_D(QmlGraphicsTextInput); + updateSize(); + emit textChanged(); + if(hasAcceptableInput() != d->oldValidity){ + d->oldValidity = hasAcceptableInput(); + emit acceptableInputChanged(); + } +} + +void QmlGraphicsTextInput::updateRect(const QRect &r) +{ + if(r == QRect()) + clearCache(); + else + dirtyCache(r); + update(); +} + +void QmlGraphicsTextInput::updateSize(bool needsRedraw) +{ + Q_D(QmlGraphicsTextInput); + int w = width(); + int h = height(); + setImplicitHeight(d->control->height()); + int cursorWidth = d->control->cursorWidth(); + if(d->cursorItem) + cursorWidth = d->cursorItem->width(); + //### Is QFontMetrics too slow? + QFontMetricsF fm(d->font); + setImplicitWidth(fm.width(d->control->displayText())+cursorWidth); + setContentsSize(QSize(width(), height()));//Repaints if changed + if(w==width() && h==height() && needsRedraw){ + clearCache(); + update(); + } +} + +QT_END_NAMESPACE + diff --git a/src/declarative/fx/qmlgraphicstextinput.h b/src/declarative/fx/qmlgraphicstextinput.h new file mode 100644 index 0000000..1b143e0 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextinput.h @@ -0,0 +1,209 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTINPUT_H +#define QMLGRAPHICSTEXTINPUT_H + +#include "qmlgraphicstext.h" +#include "qmlgraphicspainteditem.h" +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsTextInputPrivate; +class QValidator; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem +{ + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(EchoMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) + + Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) + Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) + Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) + Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) + Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + +public: + QmlGraphicsTextInput(QmlGraphicsItem* parent=0); + ~QmlGraphicsTextInput(); + + enum EchoMode {//To match QLineEdit::EchoMode + Normal, + NoEcho, + Password, + PasswordEchoOnEdit + }; + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + //### Should we have this function, x based properties, + //### or copy TextEdit with x instead of QTextCursor? + Q_INVOKABLE int xToPos(int x); + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + bool isReadOnly() const; + void setReadOnly(bool); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int cp); + + QRect cursorRect() const; + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + int maxLength() const; + void setMaxLength(int ml); + + QValidator * validator() const; + void setValidator(QValidator* v); + + QString inputMask() const; + void setInputMask(const QString &im); + + EchoMode echoMode() const; + void setEchoMode(EchoMode echo); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + bool focusOnPress() const; + void setFocusOnPress(bool); + + bool hasAcceptableInput() const; + + void drawContents(QPainter *p,const QRect &r); +Q_SIGNALS: + void textChanged(); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectedTextChanged(); + void accepted(); + void acceptableInputChanged(); + +protected: + QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void keyPressEvent(QKeyEvent* ev); + bool event(QEvent *e); + + void focusChanged(bool hasFocus); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateSize(bool needsRedraw = true); + void q_textChanged(); + void selectionChanged(); + void createCursor(); + void moveCursor(); + void cursorPosChanged(); + void updateRect(const QRect &r = QRect()); + +private: + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsTextInput) +QML_DECLARE_TYPE(QValidator) +QML_DECLARE_TYPE(QIntValidator) + +QT_END_HEADER + +#endif // QMLGRAPHICSTEXTINPUT_H diff --git a/src/declarative/fx/qmlgraphicstextinput_p.h b/src/declarative/fx/qmlgraphicstextinput_p.h new file mode 100644 index 0000000..010dfe1 --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextinput_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTINPUT_P_H +#define QMLGRAPHICSTEXTINPUT_P_H + +#include "qmlgraphicstextinput.h" +#include "qml.h" +#include "qmlgraphicspainteditem_p.h" +#include "private/qlinecontrol_p.h" +#include +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +QT_BEGIN_NAMESPACE + +class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextInput) +public: + QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), + color((QRgb)0), style(QmlGraphicsText::Normal), + styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), + hscroll(0), oldScroll(0), focused(false), focusOnPress(true), + cursorVisible(false) + { + } + + ~QmlGraphicsTextInputPrivate() + { + delete control; + } + + void init(); + void startCreatingCursor(); + + QLineControl* control; + + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QmlGraphicsTextInput::HAlignment hAlign; + QPointer cursorComponent; + QPointer cursorItem; + + int lastSelectionStart; + int lastSelectionEnd; + int oldHeight; + int oldWidth; + bool oldValidity; + int hscroll; + int oldScroll; + bool focused; + bool focusOnPress; + bool cursorVisible; +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp b/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp new file mode 100644 index 0000000..b9b0237 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp @@ -0,0 +1,1032 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qlistmodelinterface.h" +#include "qmlgraphicsitem.h" +#include +#include +#include "qmlpackage.h" +#include "qhash.h" +#include "qlist.h" +#include "private/qobject_p.h" +#include "private/qmetaobjectbuilder_p.h" +#include "qmlopenmetaobject.h" +#include "qmllistaccessor.h" +#include "qmlinfo.h" +#include "qmlgraphicsvisualitemmodel.h" +#include "private/qguard_p.h" +#include + +QML_DECLARE_TYPE(QListModelInterface) + +QT_BEGIN_NAMESPACE + +class QmlGraphicsVisualItemModelAttached : public QObject +{ + Q_OBJECT + +public: + QmlGraphicsVisualItemModelAttached(QObject *parent) + : QObject(parent), m_index(0) {} + ~QmlGraphicsVisualItemModelAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(int index READ index NOTIFY indexChanged) + int index() const { return m_index; } + void setIndex(int idx) { + if (m_index != idx) { + m_index = idx; + emit indexChanged(); + } + } + + static QmlGraphicsVisualItemModelAttached *properties(QObject *obj) { + QmlGraphicsVisualItemModelAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsVisualItemModelAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + +Q_SIGNALS: + void indexChanged(); + +public: + int m_index; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsVisualItemModelAttached::attachedProperties; + + +class QmlGraphicsVisualItemModelPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsVisualItemModel) +public: + QmlGraphicsVisualItemModelPrivate() : QObjectPrivate(), children(this) {} + + struct ItemList : public QmlConcreteList + { + ItemList(QmlGraphicsVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} + + void append(QmlGraphicsItem *item); + + QmlGraphicsVisualItemModelPrivate *model; + }; + + void itemAppended() { + Q_Q(QmlGraphicsVisualItemModel); + QmlGraphicsVisualItemModelAttached *attached = QmlGraphicsVisualItemModelAttached::properties(children.last()); + attached->setIndex(children.count()-1); + emit q->itemsInserted(children.count()-1, 1); + emit q->countChanged(); + } + + void emitChildrenChanged() { + Q_Q(QmlGraphicsVisualItemModel); + emit q->childrenChanged(); + } + ItemList children; +}; + + +/*! + \qmlclass VisualItemModel QmlGraphicsVisualItemModel + \brief The VisualItemModel allows items to be provided to a view. + + The children of the VisualItemModel are provided in a model which + can be used in a view. Note that no delegate should be + provided to a view since the VisualItemModel contains the + visual delegate (items). + + An item can determine its index within the + model via the VisualItemModel.index attached property. + + The example below places three colored rectangles in a ListView. + \code + Item { + VisualItemModel { + id: itemModel + Rectangle { height: 30; width: 80; color: "red" } + Rectangle { height: 30; width: 80; color: "green" } + Rectangle { height: 30; width: 80; color: "blue" } + } + + ListView { + anchors.fill: parent + model: itemModel + } + } + \endcode +*/ +QmlGraphicsVisualItemModel::QmlGraphicsVisualItemModel() + : QmlGraphicsVisualModel(*(new QmlGraphicsVisualItemModelPrivate)) +{ +} + +QmlList *QmlGraphicsVisualItemModel::children() +{ + Q_D(QmlGraphicsVisualItemModel); + return &(d->children); +} + +/*! + \qmlproperty int VisualItemModel::count + + The number of items in the model. This property is readonly. +*/ +int QmlGraphicsVisualItemModel::count() const +{ + Q_D(const QmlGraphicsVisualItemModel); + return d->children.count(); +} + +bool QmlGraphicsVisualItemModel::isValid() const +{ + return true; +} + +QmlGraphicsItem *QmlGraphicsVisualItemModel::item(int index, bool) +{ + Q_D(QmlGraphicsVisualItemModel); + return d->children.at(index); +} + +QmlGraphicsVisualModel::ReleaseFlags QmlGraphicsVisualItemModel::release(QmlGraphicsItem *) +{ + // Nothing to do + return 0; +} + +void QmlGraphicsVisualItemModel::completeItem() +{ + // Nothing to do +} + +QVariant QmlGraphicsVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) +{ + Q_D(QmlGraphicsVisualItemModel); + QmlContext *ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + ctxt->addDefaultObject(d->children.at(index)); + QmlExpression e(ctxt, expression, objectContext); + e.setTrackChange(false); + QVariant value = e.value(); + delete ctxt; + return value; +} + +int QmlGraphicsVisualItemModel::indexOf(QmlGraphicsItem *item, QObject *) const +{ + Q_D(const QmlGraphicsVisualItemModel); + return d->children.indexOf(item); +} + +void QmlGraphicsVisualItemModelPrivate::ItemList::append(QmlGraphicsItem *item) +{ + QmlConcreteList::append(item); + item->QObject::setParent(model->q_ptr); + model->itemAppended(); + + model->emitChildrenChanged(); +} + +QmlGraphicsVisualItemModelAttached *QmlGraphicsVisualItemModel::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsVisualItemModelAttached::properties(obj); +} + + +class QmlGraphicsVisualDataModelParts; +class QmlGraphicsVisualDataModelData; +class QmlGraphicsVisualDataModelPrivate : public QObjectPrivate +{ +public: + QmlGraphicsVisualDataModelPrivate(QmlContext *); + + static QmlGraphicsVisualDataModelPrivate *get(QmlGraphicsVisualDataModel *m) { + return static_cast(QObjectPrivate::get(m)); + } + + QGuard m_listModelInterface; + QGuard m_abstractItemModel; + QGuard m_visualItemModel; + QString m_part; + + QmlComponent *m_delegate; + QmlContext *m_context; + QList m_roles; + QHash m_roleNames; + void ensureRoles() { + if (m_roleNames.isEmpty()) { + if (m_listModelInterface) { + m_roles = m_listModelInterface->roles(); + for (int ii = 0; ii < m_roles.count(); ++ii) + m_roleNames.insert(m_listModelInterface->toString(m_roles.at(ii)), m_roles.at(ii)); + if (m_roles.count() == 1) + m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); + } else if (m_abstractItemModel) { + for (QHash::const_iterator it = m_abstractItemModel->roleNames().begin(); + it != m_abstractItemModel->roleNames().end(); ++it) { + m_roles.append(it.key()); + m_roleNames.insert(QString::fromUtf8(*it), it.key()); + } + if (m_roles.count() == 1) + m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); + } else if (m_listAccessor) { + m_roleNames.insert(QLatin1String("modelData"), 0); + if (m_listAccessor->type() == QmlListAccessor::Instance) { + if (QObject *object = m_listAccessor->at(0).value()) { + int count = object->metaObject()->propertyCount(); + for (int ii = 1; ii < count; ++ii) { + const QMetaProperty &prop = object->metaObject()->property(ii); + m_roleNames.insert(QString::fromUtf8(prop.name()), 0); + } + } + } + } + } + } + + struct ObjectRef { + ObjectRef(QObject *object=0) : obj(object), ref(1) {} + QObject *obj; + int ref; + }; + class Cache : public QHash { + public: + QObject *getItem(int index) { + QObject *item = 0; + QHash::iterator it = find(index); + if (it != end()) { + (*it).ref++; + item = (*it).obj; + } + return item; + } + QObject *item(int index) { + QObject *item = 0; + QHash::const_iterator it = find(index); + if (it != end()) + item = (*it).obj; + return item; + } + void insertItem(int index, QObject *obj) { + insert(index, ObjectRef(obj)); + } + bool releaseItem(QObject *obj) { + QHash::iterator it = begin(); + for (; it != end(); ++it) { + ObjectRef &objRef = *it; + if (objRef.obj == obj) { + if (--objRef.ref == 0) { + erase(it); + return true; + } + break; + } + } + return false; + } + }; + + Cache m_cache; + QHash m_packaged; + + QmlGraphicsVisualDataModelParts *m_parts; + friend class QmlGraphicsVisualItemParts; + + QmlGraphicsVisualDataModelData *data(QObject *item); + + QVariant m_modelVariant; + QmlListAccessor *m_listAccessor; + + int modelCount() const { + if (m_visualItemModel) + return m_visualItemModel->count(); + if (m_listModelInterface) + return m_listModelInterface->count(); + if (m_abstractItemModel) + return m_abstractItemModel->rowCount(); + if (m_listAccessor) + return m_listAccessor->count(); + return 0; + } +}; + +class QmlGraphicsVisualDataModelDataMetaObject : public QmlOpenMetaObject +{ +public: + QmlGraphicsVisualDataModelDataMetaObject(QObject *parent) + : QmlOpenMetaObject(parent) {} + + virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); + virtual int createProperty(const char *, const char *); + +private: + friend class QmlGraphicsVisualDataModelData; + QList roles; +}; + +class QmlGraphicsVisualDataModelData : public QObject +{ +Q_OBJECT +public: + QmlGraphicsVisualDataModelData(int index, QmlGraphicsVisualDataModel *model); + ~QmlGraphicsVisualDataModelData(); + + Q_PROPERTY(int index READ index NOTIFY indexChanged) + int index() const; + void setIndex(int index); + + int count() const; + int role(int) const; + void setValue(int, const QVariant &); + +Q_SIGNALS: + void indexChanged(); + +private: + friend class QmlGraphicsVisualDataModelDataMetaObject; + int m_index; + QGuard m_model; + QmlGraphicsVisualDataModelDataMetaObject *m_meta; +}; + +int QmlGraphicsVisualDataModelData::count() const +{ + return m_meta->count(); +} + +int QmlGraphicsVisualDataModelData::role(int id) const +{ + Q_ASSERT(id >= 0 && id < count()); + return m_meta->roles.at(id); +} + +void QmlGraphicsVisualDataModelData::setValue(int id, const QVariant &val) +{ + m_meta->setValue(id, val); +} + +int QmlGraphicsVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) +{ + QmlGraphicsVisualDataModelData *data = + static_cast(object()); + + if (!data->m_model) + return -1; + + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); + + if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { + model->ensureRoles(); + if (model->m_roleNames.contains(QString::fromUtf8(name))) { + return QmlOpenMetaObject::createProperty(name, type); + } else if (model->m_listAccessor->type() == QmlListAccessor::QmlList) { + QObject *object = model->m_listAccessor->at(data->m_index).value(); + if (object && object->property(name).isValid()) + return QmlOpenMetaObject::createProperty(name, type); + } + } else { + model->ensureRoles(); + QString sname = QString::fromUtf8(name); + if (model->m_roleNames.contains(sname)) + return QmlOpenMetaObject::createProperty(name, type); + } + return -1; +} + +QVariant +QmlGraphicsVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +{ + prop.setWritable(false); + + QmlGraphicsVisualDataModelData *data = + static_cast(object()); + + Q_ASSERT(data->m_model); + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); + + QString name = QString::fromUtf8(prop.name()); + if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { + if (name == QLatin1String("modelData")) { + if (model->m_listAccessor->type() == QmlListAccessor::Instance) { + QObject *object = model->m_listAccessor->at(0).value(); + return object->metaObject()->property(1).read(object); // the first property after objectName + } + return model->m_listAccessor->at(data->m_index); + } else { + // return any property of a single object instance. + QObject *object = model->m_listAccessor->at(data->m_index).value(); + return object->property(prop.name()); + } + } else if (model->m_listModelInterface) { + model->ensureRoles(); + QHash::const_iterator it = model->m_roleNames.find(name); + if (it != model->m_roleNames.end()) { + roles.append(*it); + QHash values = model->m_listModelInterface->data(data->m_index, QList() << *it); + if (values.isEmpty()) + return QVariant(); + else + return values.value(*it); + } else if (model->m_roles.count() == 1 && name == QLatin1String("modelData")) { + //for compatability with other lists, assign modelData if there is only a single role + QHash values = model->m_listModelInterface->data(data->m_index, QList() << model->m_roles.first()); + if (values.isEmpty()) + return QVariant(); + else + return *values.begin(); + } + } else if (model->m_abstractItemModel) { + model->ensureRoles(); + QHash::const_iterator it = model->m_roleNames.find(name); + if (it != model->m_roleNames.end()) { + roles.append(*it); + QModelIndex index = model->m_abstractItemModel->index(data->m_index, 0); + return model->m_abstractItemModel->data(index, *it); + } + } + Q_ASSERT(!"Can never be reached"); + return QVariant(); +} + +QmlGraphicsVisualDataModelData::QmlGraphicsVisualDataModelData(int index, + QmlGraphicsVisualDataModel *model) +: m_index(index), m_model(model), + m_meta(new QmlGraphicsVisualDataModelDataMetaObject(this)) +{ +} + +QmlGraphicsVisualDataModelData::~QmlGraphicsVisualDataModelData() +{ +} + +int QmlGraphicsVisualDataModelData::index() const +{ + return m_index; +} + +// This is internal only - it should not be set from qml +void QmlGraphicsVisualDataModelData::setIndex(int index) +{ + m_index = index; + emit indexChanged(); +} + +class QmlGraphicsVisualDataModelPartsMetaObject : public QmlOpenMetaObject +{ +public: + QmlGraphicsVisualDataModelPartsMetaObject(QObject *parent) + : QmlOpenMetaObject(parent) {} + + virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); +}; + +class QmlGraphicsVisualDataModelParts : public QObject +{ +Q_OBJECT +public: + QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent); + +private: + friend class QmlGraphicsVisualDataModelPartsMetaObject; + QmlGraphicsVisualDataModel *model; +}; + +QVariant +QmlGraphicsVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +{ + prop.setWritable(false); + + QmlGraphicsVisualDataModel *m = new QmlGraphicsVisualDataModel; + m->setParent(object()); + m->setPart(QString::fromUtf8(prop.name())); + m->setModel(QVariant::fromValue(static_cast(object())->model)); + + QVariant var = QVariant::fromValue((QObject *)m); + return var; +} + +QmlGraphicsVisualDataModelParts::QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent) +: QObject(parent), model(parent) +{ + new QmlGraphicsVisualDataModelPartsMetaObject(this); +} + +QmlGraphicsVisualDataModelPrivate::QmlGraphicsVisualDataModelPrivate(QmlContext *ctxt) +: m_listModelInterface(0), m_abstractItemModel(0), m_visualItemModel(0), m_delegate(0) +, m_context(ctxt), m_parts(0), m_listAccessor(0) +{ +} + +QmlGraphicsVisualDataModelData *QmlGraphicsVisualDataModelPrivate::data(QObject *item) +{ + QmlGraphicsVisualDataModelData *dataItem = + item->findChild(); + Q_ASSERT(dataItem); + return dataItem; +} + +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel() +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(0))) +{ +} + +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel(QmlContext *ctxt) +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(ctxt))) +{ +} + +QmlGraphicsVisualDataModel::~QmlGraphicsVisualDataModel() +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_listAccessor) + delete d->m_listAccessor; +} + +QVariant QmlGraphicsVisualDataModel::model() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->m_modelVariant; +} + +void QmlGraphicsVisualDataModel::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsVisualDataModel); + delete d->m_listAccessor; + d->m_listAccessor = 0; + d->m_modelVariant = model; + if (d->m_listModelInterface) { + // Assume caller has released all items. + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), + this, SLOT(_q_itemsChanged(int,int,QList))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), + this, SLOT(_q_itemsInserted(int,int))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), + this, SLOT(_q_itemsRemoved(int,int))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), + this, SLOT(_q_itemsMoved(int,int,int))); + d->m_listModelInterface = 0; + } else if (d->m_abstractItemModel) { + QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), + this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); + QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), + this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); + QObject::disconnect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), + this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); + } else if (d->m_visualItemModel) { + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), + this, SIGNAL(itemsInserted(int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), + this, SIGNAL(itemsRemoved(int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), + this, SIGNAL(itemsMoved(int,int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), + this, SLOT(_q_createdPackage(int,QmlPackage*))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), + this, SLOT(_q_destroyingPackage(QmlPackage*))); + d->m_visualItemModel = 0; + } + + d->m_roles.clear(); + d->m_roleNames.clear(); + + QObject *object = qvariant_cast(model); + if (object && (d->m_listModelInterface = qobject_cast(object))) { + QObject::connect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), + this, SLOT(_q_itemsChanged(int,int,QList))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), + this, SLOT(_q_itemsInserted(int,int))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), + this, SLOT(_q_itemsRemoved(int,int))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), + this, SLOT(_q_itemsMoved(int,int,int))); + if (d->m_delegate && d->m_listModelInterface->count()) + emit itemsInserted(0, d->m_listModelInterface->count()); + return; + } else if (object && (d->m_abstractItemModel = qobject_cast(object))) { + QObject::connect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), + this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); + QObject::connect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), + this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); + QObject::connect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), + this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); + return; + } + if ((d->m_visualItemModel = qvariant_cast(model))) { + QObject::connect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), + this, SIGNAL(itemsInserted(int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), + this, SIGNAL(itemsRemoved(int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), + this, SIGNAL(itemsMoved(int,int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), + this, SLOT(_q_createdPackage(int,QmlPackage*))); + QObject::connect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), + this, SLOT(_q_destroyingPackage(QmlPackage*))); + return; + } + d->m_listAccessor = new QmlListAccessor; + d->m_listAccessor->setList(model, d->m_context?d->m_context->engine():qmlEngine(this)); + if (d->m_delegate && d->modelCount()) { + emit itemsInserted(0, d->modelCount()); + emit countChanged(); + } +} + +QmlComponent *QmlGraphicsVisualDataModel::delegate() const +{ + Q_D(const QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->delegate(); + return d->m_delegate; +} + +void QmlGraphicsVisualDataModel::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsVisualDataModel); + d->m_delegate = delegate; + if (d->modelCount()) { + emit itemsInserted(0, d->modelCount()); + emit countChanged(); + } +} + +QString QmlGraphicsVisualDataModel::part() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->m_part; +} + +void QmlGraphicsVisualDataModel::setPart(const QString &part) +{ + Q_D(QmlGraphicsVisualDataModel); + d->m_part = part; +} + +int QmlGraphicsVisualDataModel::count() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->modelCount(); +} + +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, bool complete) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->item(index, d->m_part.toUtf8(), complete); + return item(index, QByteArray(), complete); +} + +/* + Returns ReleaseStatus flags. +*/ +QmlGraphicsVisualDataModel::ReleaseFlags QmlGraphicsVisualDataModel::release(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->release(item); + + ReleaseFlags stat = 0; + QObject *obj = item; + bool inPackage = false; + + QHash::iterator it = d->m_packaged.find(item); + if (it != d->m_packaged.end()) { + QmlPackage *package = *it; + d->m_packaged.erase(it); + if (d->m_packaged.contains(item)) + stat |= Referenced; + inPackage = true; + obj = package; // fall through and delete + } + + if (d->m_cache.releaseItem(obj)) { + if (inPackage) + emit destroyingPackage(qobject_cast(obj)); + stat |= Destroyed; + obj->setParent(0); + obj->deleteLater(); + } else if (!inPackage) { + stat |= Referenced; + } + + return stat; +} + +QObject *QmlGraphicsVisualDataModel::parts() +{ + Q_D(QmlGraphicsVisualDataModel); + if (!d->m_parts) + d->m_parts = new QmlGraphicsVisualDataModelParts(this); + return d->m_parts; +} + +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, const QByteArray &viewId, bool complete) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->item(index, viewId, complete); + + if (d->modelCount() <= 0 || !d->m_delegate) + return 0; + + QObject *nobj = d->m_cache.getItem(index); + if (!nobj) { + QmlContext *ccontext = d->m_context; + if (!ccontext) ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); + ctxt->setContextProperty(QLatin1String("model"), data); + ctxt->addDefaultObject(data); + nobj = d->m_delegate->beginCreate(ctxt); + if (complete) + d->m_delegate->completeCreate(); + if (nobj) { + ctxt->setParent(nobj); + data->setParent(nobj); + d->m_cache.insertItem(index, nobj); + if (QmlPackage *package = qobject_cast(nobj)) + emit createdPackage(index, package); + } else { + delete data; + delete ctxt; + qWarning() << d->m_delegate->errors(); + } + } + QmlGraphicsItem *item = qobject_cast(nobj); + if (!item) { + QmlPackage *package = qobject_cast(nobj); + if (package) { + QObject *o = package->part(QString::fromUtf8(viewId)); + item = qobject_cast(o); + if (item) + d->m_packaged.insertMulti(item, package); + } + } + if (!item) { + d->m_cache.releaseItem(nobj); + qmlInfo(QmlGraphicsVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); + } + + return item; +} + +void QmlGraphicsVisualDataModel::completeItem() +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) { + d->m_visualItemModel->completeItem(); + return; + } + + d->m_delegate->completeCreate(); +} + +QVariant QmlGraphicsVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->evaluate(index, expression, objectContext); + + if ((!d->m_listModelInterface && !d->m_abstractItemModel) || !d->m_delegate) + return QVariant(); + + QVariant value; + QObject *nobj = d->m_cache.item(index); + if (nobj) { + QmlGraphicsItem *item = qobject_cast(nobj); + if (item) { + QmlExpression e(qmlContext(item), expression, objectContext); + e.setTrackChange(false); + value = e.value(); + } + } else { + QmlContext *ccontext = d->m_context; + if (!ccontext) ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); + ctxt->addDefaultObject(data); + QmlExpression e(ctxt, expression, objectContext); + e.setTrackChange(false); + value = e.value(); + delete data; + delete ctxt; + } + + return value; +} + +int QmlGraphicsVisualDataModel::indexOf(QmlGraphicsItem *item, QObject *objectContext) const +{ + QmlExpression e(qmlContext(item), QLatin1String("index"), objectContext); + e.setTrackChange(false); + QVariant value = e.value(); + if (value.isValid()) + return value.toInt(); + return -1; +} + +void QmlGraphicsVisualDataModel::_q_itemsChanged(int index, int count, + const QList &roles) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + for (int ii = index; ii < index + count; ++ii) { + + if (QObject *item = d->m_cache.item(ii)) { + QmlGraphicsVisualDataModelData *data = d->data(item); + + for (int prop = 0; prop < data->count(); ++prop) { + + int role = data->role(prop); + if (roles.contains(role)) { + if (d->m_listModelInterface) { + data->setValue(prop, d->m_listModelInterface->data(ii, QList() << role).value(role)); + } else if (d->m_abstractItemModel) { + QModelIndex index = d->m_abstractItemModel->index(ii, 0); + data->setValue(prop, d->m_abstractItemModel->data(index, role)); + } + } + } + } + + } +} + +void QmlGraphicsVisualDataModel::_q_itemsInserted(int index, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= index) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() + count; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + d->m_cache.unite(items); + + emit itemsInserted(index, count); + emit countChanged(); +} + +void QmlGraphicsVisualDataModel::_q_itemsRemoved(int index, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + if (iter.key() >= index && iter.key() < index + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + iter = d->m_cache.erase(iter); + items.insertMulti(-1, objRef); //XXX perhaps better to maintain separately + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(-1); + } else if (iter.key() >= index + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() - count; + iter = d->m_cache.erase(iter); + items.insert(index, objRef); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + + d->m_cache.unite(items); + emit itemsRemoved(index, count); + emit countChanged(); +} + +void QmlGraphicsVisualDataModel::_q_itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= from && iter.key() < from + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() - from + to; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= qMin(from,to) && iter.key() < qMax(from+count,to+count)) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() + from - to; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + d->m_cache.unite(items); + + emit itemsMoved(from, to, count); +} + +void QmlGraphicsVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) +{ + _q_itemsInserted(begin, end - begin + 1); +} + +void QmlGraphicsVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) +{ + _q_itemsRemoved(begin, end - begin + 1); +} + +void QmlGraphicsVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) +{ + Q_D(QmlGraphicsVisualDataModel); + _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles); +} + +void QmlGraphicsVisualDataModel::_q_createdPackage(int index, QmlPackage *package) +{ + Q_D(QmlGraphicsVisualDataModel); + emit createdItem(index, qobject_cast(package->part(d->m_part))); +} + +void QmlGraphicsVisualDataModel::_q_destroyingPackage(QmlPackage *package) +{ + Q_D(QmlGraphicsVisualDataModel); + emit destroyingItem(qobject_cast(package->part(d->m_part))); +} + +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsVisualModel); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisualItemModel) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) + +QT_END_NAMESPACE +#include "qfxvisualitemmodel.moc" diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel.h b/src/declarative/fx/qmlgraphicsvisualitemmodel.h new file mode 100644 index 0000000..fb36531 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsvisualitemmodel.h @@ -0,0 +1,203 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSVISUALDATAMODEL_H +#define QMLGRAPHICSVISUALDATAMODEL_H + +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +/***************************************************************************** + ***************************************************************************** + XXX Experimental + ***************************************************************************** +*****************************************************************************/ + +class QmlGraphicsItem; +class QmlComponent; +class QmlPackage; +class QmlGraphicsVisualDataModelPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int count READ count NOTIFY countChanged) + +public: + QmlGraphicsVisualModel() {} + virtual ~QmlGraphicsVisualModel() {} + + enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; + Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) + + virtual int count() const = 0; + virtual bool isValid() const = 0; + virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; + virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; + virtual void completeItem() = 0; + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; + +Q_SIGNALS: + void countChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) + : QObject(dd, parent) {} + +private: + Q_DISABLE_COPY(QmlGraphicsVisualModel) +}; + +class QmlGraphicsVisualItemModelAttached; +class QmlGraphicsVisualItemModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) + + Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "children") + +public: + QmlGraphicsVisualItemModel(); + virtual ~QmlGraphicsVisualItemModel() {} + + virtual int count() const; + virtual bool isValid() const; + virtual QmlGraphicsItem *item(int index, bool complete=true); + virtual ReleaseFlags release(QmlGraphicsItem *item); + virtual void completeItem(); + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QmlList *children(); + + static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); + +signals: + void childrenChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualItemModel) +}; + + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(QString part READ part WRITE setPart) + Q_PROPERTY(QObject *parts READ parts CONSTANT) + Q_CLASSINFO("DefaultProperty", "delegate") +public: + QmlGraphicsVisualDataModel(); + QmlGraphicsVisualDataModel(QmlContext *); + virtual ~QmlGraphicsVisualDataModel(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + QString part() const; + void setPart(const QString &); + + int count() const; + bool isValid() const { return delegate() != 0; } + QmlGraphicsItem *item(int index, bool complete=true); + QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); + ReleaseFlags release(QmlGraphicsItem *item); + void completeItem(); + QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QObject *parts(); + +Q_SIGNALS: + void createdPackage(int index, QmlPackage *package); + void destroyingPackage(QmlPackage *package); + +private Q_SLOTS: + void _q_itemsChanged(int, int, const QList &); + void _q_itemsInserted(int index, int count); + void _q_itemsRemoved(int index, int count); + void _q_itemsMoved(int from, int to, int count); + void _q_rowsInserted(const QModelIndex &,int,int); + void _q_rowsRemoved(const QModelIndex &,int,int); + void _q_dataChanged(const QModelIndex&,const QModelIndex&); + void _q_createdPackage(int index, QmlPackage *package); + void _q_destroyingPackage(QmlPackage *package); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualDataModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsVisualModel) +QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) +QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) + +QT_END_HEADER + +#endif // QMLGRAPHICSVISUALDATAMODEL_H diff --git a/src/declarative/fx/qmlgraphicswebview.cpp b/src/declarative/fx/qmlgraphicswebview.cpp new file mode 100644 index 0000000..d9044cf --- /dev/null +++ b/src/declarative/fx/qmlgraphicswebview.cpp @@ -0,0 +1,1388 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "qml.h" +#include "qmlengine.h" +#include "qmlstate.h" +#include "qlistmodelinterface.h" + +#include "qmlgraphicswebview.h" +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) +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 +{ + Q_DECLARE_PUBLIC(QmlGraphicsWebView) + +public: + QmlGraphicsWebViewPrivate() + : QmlGraphicsPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), + progress(1.0), status(QmlGraphicsWebView::Null), pending(PendingNone), + newWindowComponent(0), newWindowParent(0), + windowObjects(this), + rendering(true) + { + } + + QUrl url; // page url might be different if it has not loaded yet + QWebPage *page; + + int preferredwidth; + int pagewidth; + qreal progress; + QmlGraphicsWebView::Status status; + QString statusText; + enum { PendingNone, PendingUrl, PendingHtml, PendingContent } pending; + QUrl pending_url; + QString pending_string; + QByteArray pending_data; + mutable QmlGraphicsWebSettings settings; + QmlComponent *newWindowComponent; + QmlGraphicsItem *newWindowParent; + + void updateWindowObjects(); + class WindowObjectList : public QmlConcreteList + { + public: + WindowObjectList(QmlGraphicsWebViewPrivate *p) + : priv(p) {} + virtual void append(QObject *v) { + QmlConcreteList::append(v); + priv->updateWindowObjects(); + } + private: + QmlGraphicsWebViewPrivate *priv; + } windowObjects; + + bool rendering; +}; + +/*! + \qmlclass WebView + \brief The WebView item allows you to add web content to a canvas. + \inherits Item + + A WebView renders web content based on a URL. + + If the width and height of the item is not set, they will + dynamically adjust to a size appropriate for the content. + This width may be large for typical online web pages. + + If the preferredWidth is set, the width will be this amount or larger, + usually laying out the web content to fit the preferredWidth. + + \qml + WebView { + url: "http://www.nokia.com" + width: 490 + height: 400 + scale: 0.5 + smooth: true + } + \endqml + + \image webview.png + + The item includes no scrolling, scaling, + toolbars, etc., those must be implemented around WebView. See the WebBrowser example + for a demonstration of this. +*/ + +/*! + \internal + \class QmlGraphicsWebView + \brief The QmlGraphicsWebView class allows you to add web content to a QmlView. + + A WebView renders web content base on a URL. + + \image webview.png + + The item includes no scrolling, scaling, + toolbars, etc., those must be implemented around WebView. See the WebBrowser example + for a demonstration of this. + + A QmlGraphicsWebView object can be instantiated in Qml using the tag \l WebView. +*/ + +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsWebViewPrivate), parent) +{ + init(); +} + +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + init(); +} + +QmlGraphicsWebView::~QmlGraphicsWebView() +{ + Q_D(QmlGraphicsWebView); + delete d->page; +} + +void QmlGraphicsWebView::init() +{ + Q_D(QmlGraphicsWebView); + + setAcceptHoverEvents(true); + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); + + d->page = 0; +} + +void QmlGraphicsWebView::componentComplete() +{ + QmlGraphicsPaintedItem::componentComplete(); + Q_D(QmlGraphicsWebView); + switch (d->pending) { + case QmlGraphicsWebViewPrivate::PendingUrl: + setUrl(d->pending_url); + break; + case QmlGraphicsWebViewPrivate::PendingHtml: + setHtml(d->pending_string, d->pending_url); + break; + case QmlGraphicsWebViewPrivate::PendingContent: + setContent(d->pending_data, d->pending_string, d->pending_url); + break; + default: + break; + } + d->pending = QmlGraphicsWebViewPrivate::PendingNone; + d->updateWindowObjects(); +} + +QmlGraphicsWebView::Status QmlGraphicsWebView::status() const +{ + Q_D(const QmlGraphicsWebView); + return d->status; +} + + +/*! + \qmlproperty real WebView::progress + This property holds the progress of loading the current URL, from 0 to 1. + + \sa onLoadFinished() onLoadFailed() +*/ +qreal QmlGraphicsWebView::progress() const +{ + Q_D(const QmlGraphicsWebView); + return d->progress; +} + +void QmlGraphicsWebView::doLoadStarted() +{ + Q_D(QmlGraphicsWebView); + + if (!d->url.isEmpty()) { + d->status = Loading; + emit statusChanged(d->status); + } + emit loadStarted(); +} + +void QmlGraphicsWebView::doLoadProgress(int p) +{ + Q_D(QmlGraphicsWebView); + if (d->progress == p/100.0) + return; + d->progress = p/100.0; + emit progressChanged(); +} + +void QmlGraphicsWebView::pageUrlChanged() +{ + Q_D(QmlGraphicsWebView); + + // Reset zooming to full + qreal zf = 1.0; + if (d->preferredwidth) { + if (d->pagewidth) + zf = qreal(d->preferredwidth)/d->pagewidth; + page()->mainFrame()->setZoomFactor(zf); + page()->setViewportSize(QSize(d->preferredwidth,-1)); + } else { + page()->mainFrame()->setZoomFactor(zf); + page()->setViewportSize(QSize(-1,-1)); + } + emit zooming(zf,0,0); + expandToWebPage(); + + if ((d->url.isEmpty() && page()->mainFrame()->url() != QUrl(QLatin1String("about:blank"))) + || d->url != page()->mainFrame()->url()) + { + d->url = page()->mainFrame()->url(); + if (d->url == QUrl(QLatin1String("about:blank"))) + d->url = QUrl(); + emit urlChanged(); + } +} + +void QmlGraphicsWebView::doLoadFinished(bool ok) +{ + Q_D(QmlGraphicsWebView); + + if (title().isEmpty()) + pageUrlChanged(); // XXX bug 232556 - pages with no title never get urlChanged() + + if (ok) { + d->status = d->url.isEmpty() ? Null : Ready; + emit loadFinished(); + } else { + d->status = Error; + emit loadFailed(); + } + emit statusChanged(d->status); +} + +/*! + \qmlproperty url WebView::url + This property holds the URL to the page displayed in this item. It can be set, + but also can change spontaneously (eg. because of network redirection). + + If the url is empty, the page is blank. + + The url is always absolute (QML will resolve relative URL strings in the context + of the containing QML document). +*/ +QUrl QmlGraphicsWebView::url() const +{ + Q_D(const QmlGraphicsWebView); + return d->url; +} + +void QmlGraphicsWebView::setUrl(const QUrl &url) +{ + Q_D(QmlGraphicsWebView); + if (url == d->url) + return; + + if (isComponentComplete()) { + d->url = url; + qreal zf = 1.0; + if (d->preferredwidth) { + if (d->pagewidth) + zf = qreal(d->preferredwidth)/d->pagewidth; + page()->setViewportSize(QSize(d->preferredwidth,-1)); + } else { + page()->setViewportSize(QSize(-1,-1)); + } + page()->mainFrame()->setZoomFactor(zf); + QUrl seturl = url; + if (seturl.isEmpty()) + seturl = QUrl(QLatin1String("about:blank")); + + Q_ASSERT(!seturl.isRelative()); + + page()->mainFrame()->load(seturl); + + emit urlChanged(); + } else { + d->pending = d->PendingUrl; + d->pending_url = url; + } +} + +/*! + \qmlproperty int WebView::preferredWidth + This property holds the ideal width for displaying the current URL. +*/ +int QmlGraphicsWebView::preferredWidth() const +{ + Q_D(const QmlGraphicsWebView); + return d->preferredwidth; +} + +void QmlGraphicsWebView::setPreferredWidth(int iw) +{ + Q_D(QmlGraphicsWebView); + if (d->preferredwidth == iw) return; + if (d->pagewidth) { + if (d->preferredwidth) { + setZoomFactor(zoomFactor()*iw/d->preferredwidth); + } else { + setZoomFactor(qreal(iw)/d->pagewidth); + } + } + d->preferredwidth = iw; + expandToWebPage(); + emit preferredWidthChanged(); +} + +/*! + \qmlproperty int WebView::webPageWidth + This property holds the page width suggested to the web engine. +*/ +int QmlGraphicsWebView::webPageWidth() const +{ + Q_D(const QmlGraphicsWebView); + return d->pagewidth; +} + +void QmlGraphicsWebView::setWebPageWidth(int pw) +{ + Q_D(QmlGraphicsWebView); + if (d->pagewidth == pw) return; + d->pagewidth = pw; + expandToWebPage(); +} + +/*! + Evaluates the \a scriptSource JavaScript inside the main frame + context and returns the result of the last executed statement. +*/ +QVariant QmlGraphicsWebView::evaluateJavaScript(const QString &scriptSource) +{ + return this->page()->mainFrame()->evaluateJavaScript(scriptSource); +} + +void QmlGraphicsWebView::focusChanged(bool hasFocus) +{ + QFocusEvent e(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); + page()->event(&e); + QmlGraphicsItem::focusChanged(hasFocus); +} + +void QmlGraphicsWebView::contentsSizeChanged(const QSize&) +{ + expandToWebPage(); +} + +void QmlGraphicsWebView::expandToWebPage() +{ + Q_D(QmlGraphicsWebView); + QSize cs = page()->mainFrame()->contentsSize(); + qreal zoom = zoomFactor(); + if (cs.width() < d->preferredwidth*zoom) + cs.setWidth(d->preferredwidth*zoom); + if (widthValid()) + cs.setWidth(width()); + if (heightValid()) + cs.setHeight(height()); + if (cs != page()->viewportSize()) { + page()->setViewportSize(cs); + clearCache(); + setImplicitWidth(cs.width()); + setImplicitHeight(cs.height()); + } +} + +void QmlGraphicsWebView::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.size() != oldGeometry.size()) + expandToWebPage(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsWebView::paintPage(const QRect& r) +{ + Q_D(QmlGraphicsWebView); + if (d->page->mainFrame()->contentsSize() != contentsSize()) + setContentsSize(d->page->mainFrame()->contentsSize()); + dirtyCache(r); + update(); +} + +/*! + \qmlproperty int WebView::pixelCacheSize + + This property holds the maximum number of pixels of image cache to + allow. The default is 0.1 megapixels. The cache will not be larger + than the (unscaled) size of the WebView. +*/ +int QmlGraphicsWebView::pixelCacheSize() const +{ + Q_D(const QmlGraphicsWebView); + return d->max_imagecache_size; +} + +void QmlGraphicsWebView::setPixelCacheSize(int pixels) +{ + Q_D(QmlGraphicsWebView); + if (pixels < d->max_imagecache_size) { + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + cachesize += area.width()*area.height(); + } + while (d->imagecache.count() && cachesize > pixels) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + d->imagecache.removeAt(oldest); + } + } + d->max_imagecache_size = pixels; +} + +/*! + \qmlproperty list WebView::javaScriptWindowObjects + + This property is a list of object that are available from within + the webview's JavaScript context. + + The \a object will be inserted as a child of the frame's window + object, under the name given by the attached property \c WebView.windowObjectName. + + \qml + WebView { + javaScriptWindowObjects: Object { + WebView.windowObjectName: "coordinates" + } + } + \endqml + + Properties of the object will be exposed as JavaScript properties and slots as + JavaScript methods. + + If Javascript is not enabled for this page, then this property does nothing. +*/ +QmlList *QmlGraphicsWebView::javaScriptWindowObjects() +{ + Q_D(QmlGraphicsWebView); + return &d->windowObjects; +} + +class QmlGraphicsWebViewAttached : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString windowObjectName READ windowObjectName WRITE setWindowObjectName) +public: + QmlGraphicsWebViewAttached(QObject *parent) + : QObject(parent) + { + } + + QString windowObjectName() const + { + return m_windowObjectName; + } + + void setWindowObjectName(const QString &n) + { + m_windowObjectName = n; + } + +private: + QString m_windowObjectName; +}; + +QmlGraphicsWebViewAttached *QmlGraphicsWebView::qmlAttachedProperties(QObject *o) +{ + return new QmlGraphicsWebViewAttached(o); +} + +void QmlGraphicsWebViewPrivate::updateWindowObjects() +{ + Q_Q(QmlGraphicsWebView); + if (!q->isComponentComplete() || !page) + return; + + for (int ii = 0; ii < windowObjects.count(); ++ii) { + QObject *object = windowObjects.at(ii); + QmlGraphicsWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); + if (attached && !attached->windowObjectName().isEmpty()) { + page->mainFrame()->addToJavaScriptWindowObject(attached->windowObjectName(), object); + } + } +} + +bool QmlGraphicsWebView::renderingEnabled() const +{ + Q_D(const QmlGraphicsWebView); + return d->rendering; +} + +void QmlGraphicsWebView::setRenderingEnabled(bool enabled) +{ + Q_D(QmlGraphicsWebView); + if (d->rendering == enabled) + return; + d->rendering = enabled; + setCacheFrozen(!enabled); + if (enabled) + clearCache(); +} + + +void QmlGraphicsWebView::drawContents(QPainter *p, const QRect &r) +{ + Q_D(QmlGraphicsWebView); + if (d->rendering) + page()->mainFrame()->render(p,r); +} + +static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) +{ + QEvent::Type t; + switch(e->type()) { + default: + case QEvent::GraphicsSceneMousePress: + t = QEvent::MouseButtonPress; + break; + case QEvent::GraphicsSceneMouseRelease: + t = QEvent::MouseButtonRelease; + break; + case QEvent::GraphicsSceneMouseMove: + t = QEvent::MouseMove; + break; + case QGraphicsSceneEvent::GraphicsSceneMouseDoubleClick: + t = QEvent::MouseButtonDblClick; + break; + } + + QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), e->button(), e->buttons(), 0); + return me; +} + +static QMouseEvent *sceneHoverMoveEventToMouseEvent(QGraphicsSceneHoverEvent *e) +{ + QEvent::Type t = QEvent::MouseMove; + + QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), Qt::NoButton, Qt::NoButton, 0); + + return me; +} + + +/*! + \qmlsignal WebView::onDoubleClick(clickx,clicky) + + The WebView does not pass double-click events to the web engine, but rather + emits this signals. +*/ + +void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + emit doubleClick(me->x(),me->y()); + delete me; +} + +void QmlGraphicsWebView::heuristicZoom(int clickX, int clickY) +{ + Q_D(QmlGraphicsWebView); + qreal ozf = zoomFactor(); + QRect showarea = elementAreaAt(clickX, clickY, 1, 1); + qreal z = qreal(preferredWidth())*ozf/showarea.width()*.95; + if ((z/ozf > 0.99 && z/ozf <1.01) || z < qreal(d->preferredwidth)/d->pagewidth) { + // zoom out + z = qreal(d->preferredwidth)/d->pagewidth; + } + QRectF r(showarea.left()/ozf*z, showarea.top()/ozf*z, showarea.width()/ozf*z, showarea.height()/ozf*z); + emit zooming(z,r.x()+r.width()/2, r.y()+r.height()/2); +} + +void QmlGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + setFocus (true); + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit + Might be a bug in WebKit, though + */ +#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) { + QmlGraphicsPaintedItem::mousePressEvent(event); + } +} + +void QmlGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send all the events to WebKit + */ +#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) { + QmlGraphicsPaintedItem::mouseReleaseEvent(event); + } +} + +void QmlGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit + Might be a bug in WebKit, though + */ +#if 1 // QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mouseMoveEvent(event); + +} +void QmlGraphicsWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) +{ + QMouseEvent *me = sceneHoverMoveEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +#if QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) + QmlGraphicsPaintedItem::hoverMoveEvent(event); +} + +void QmlGraphicsWebView::keyPressEvent(QKeyEvent* event) +{ + page()->event(event); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(event); +} + +void QmlGraphicsWebView::keyReleaseEvent(QKeyEvent* event) +{ + page()->event(event); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyReleaseEvent(event); +} + +bool QmlGraphicsWebView::sceneEvent(QEvent *event) +{ + if (event->type() == QEvent::KeyPress) { + QKeyEvent *k = static_cast(event); + if (k->key() == Qt::Key_Tab || k->key() == Qt::Key_Backtab) { + if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? + page()->event(event); + if (event->isAccepted()) + return true; + } + } + } + return QmlGraphicsPaintedItem::sceneEvent(event); +} + + + +/*! + \qmlproperty action WebView::back + This property holds the action for causing the previous URL in the history to be displayed. +*/ +QAction *QmlGraphicsWebView::backAction() const +{ + return page()->action(QWebPage::Back); +} + +/*! + \qmlproperty action WebView::forward + This property holds the action for causing the next URL in the history to be displayed. +*/ +QAction *QmlGraphicsWebView::forwardAction() const +{ + return page()->action(QWebPage::Forward); +} + +/*! + \qmlproperty action WebView::reload + This property holds the action for reloading with the current URL +*/ +QAction *QmlGraphicsWebView::reloadAction() const +{ + return page()->action(QWebPage::Reload); +} + +/*! + \qmlproperty action WebView::stop + This property holds the action for stopping loading with the current URL +*/ +QAction *QmlGraphicsWebView::stopAction() const +{ + return page()->action(QWebPage::Stop); +} + +/*! + \qmlproperty real WebView::title + This property holds the title of the web page currently viewed + + By default, this property contains an empty string. +*/ +QString QmlGraphicsWebView::title() const +{ + return page()->mainFrame()->title(); +} + + + +/*! + \qmlproperty pixmap WebView::icon + This property holds the icon associated with the web page currently viewed +*/ +QPixmap QmlGraphicsWebView::icon() const +{ + return page()->mainFrame()->icon().pixmap(QSize(256,256)); +} + + +/*! + \qmlproperty real WebView::textSizeMultiplier + This property holds the multiplier used to scale the text in a Web page +*/ +void QmlGraphicsWebView::setTextSizeMultiplier(qreal factor) +{ + page()->mainFrame()->setTextSizeMultiplier(factor); +} + +qreal QmlGraphicsWebView::textSizeMultiplier() const +{ + return page()->mainFrame()->textSizeMultiplier(); +} + +/*! + \qmlproperty real WebView::zoomFactor + This property holds the multiplier used to scale the contents of a Web page. +*/ +void QmlGraphicsWebView::setZoomFactor(qreal factor) +{ + Q_D(QmlGraphicsWebView); + if (factor == page()->mainFrame()->zoomFactor()) + return; + + page()->mainFrame()->setZoomFactor(factor); + page()->setViewportSize(QSize(d->pagewidth*factor,-1)); + expandToWebPage(); + + emit zoomFactorChanged(); +} + +qreal QmlGraphicsWebView::zoomFactor() const +{ + return page()->mainFrame()->zoomFactor(); +} + +/*! + \qmlproperty string WebView::statusText + + This property is the current status suggested by the current web page. In a web browser, + such status is often shown in some kind of status bar. +*/ +void QmlGraphicsWebView::setStatusText(const QString& s) +{ + Q_D(QmlGraphicsWebView); + d->statusText = s; + emit statusTextChanged(); +} + +void QmlGraphicsWebView::windowObjectCleared() +{ + Q_D(QmlGraphicsWebView); + d->updateWindowObjects(); +} + +QString QmlGraphicsWebView::statusText() const +{ + Q_D(const QmlGraphicsWebView); + return d->statusText; +} + +QWebPage *QmlGraphicsWebView::page() const +{ + Q_D(const QmlGraphicsWebView); + + if (!d->page) { + QmlGraphicsWebView *self = const_cast(this); + QWebPage *wp = new QmlGraphicsWebPage(self); + + // QML items don't default to having a background, + // even though most we pages will set one anyway. + QPalette pal = QApplication::palette(); + pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0)); + wp->setPalette(pal); + + wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager()); + + self->setPage(wp); + + return wp; + } + + return d->page; +} + + +// The QObject interface to settings(). +/*! + \qmlproperty string WebView::settings.standardFontFamily + \qmlproperty string WebView::settings.fixedFontFamily + \qmlproperty string WebView::settings.serifFontFamily + \qmlproperty string WebView::settings.sansSerifFontFamily + \qmlproperty string WebView::settings.cursiveFontFamily + \qmlproperty string WebView::settings.fantasyFontFamily + + \qmlproperty int WebView::settings.minimumFontSize + \qmlproperty int WebView::settings.minimumLogicalFontSize + \qmlproperty int WebView::settings.defaultFontSize + \qmlproperty int WebView::settings.defaultFixedFontSize + + \qmlproperty bool WebView::settings.autoLoadImages + \qmlproperty bool WebView::settings.javascriptEnabled + \qmlproperty bool WebView::settings.javaEnabled + \qmlproperty bool WebView::settings.pluginsEnabled + \qmlproperty bool WebView::settings.privateBrowsingEnabled + \qmlproperty bool WebView::settings.javascriptCanOpenWindows + \qmlproperty bool WebView::settings.javascriptCanAccessClipboard + \qmlproperty bool WebView::settings.developerExtrasEnabled + \qmlproperty bool WebView::settings.linksIncludedInFocusChain + \qmlproperty bool WebView::settings.zoomTextOnly + \qmlproperty bool WebView::settings.printElementBackgrounds + \qmlproperty bool WebView::settings.offlineStorageDatabaseEnabled + \qmlproperty bool WebView::settings.offlineWebApplicationCacheEnabled + \qmlproperty bool WebView::settings.localStorageDatabaseEnabled + \qmlproperty bool WebView::settings.localContentCanAccessRemoteUrls + + These properties give access to the settings controlling the web view. + + See QWebSettings for details of these properties. + + \qml + WebView { + settings.pluginsEnabled: true + settings.standardFontFamily: "Arial" + ... + } + \endqml +*/ +QmlGraphicsWebSettings *QmlGraphicsWebView::settingsObject() const +{ + Q_D(const QmlGraphicsWebView); + d->settings.s = page()->settings(); + return &d->settings; +} + +void QmlGraphicsWebView::setPage(QWebPage *page) +{ + Q_D(QmlGraphicsWebView); + if (d->page == page) + return; + if (d->page) { + if (d->page->parent() == this) { + delete d->page; + } else { + d->page->disconnect(this); + } + } + d->page = page; + d->page->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : -1, -1)); + d->page->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); + d->page->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); + connect(d->page,SIGNAL(repaintRequested(QRect)),this,SLOT(paintPage(QRect))); + connect(d->page->mainFrame(),SIGNAL(urlChanged(QUrl)),this,SLOT(pageUrlChanged())); + connect(d->page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString))); + connect(d->page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged())); + connect(d->page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SLOT(contentsSizeChanged(QSize))); + + connect(d->page,SIGNAL(loadStarted()),this,SLOT(doLoadStarted())); + connect(d->page,SIGNAL(loadProgress(int)),this,SLOT(doLoadProgress(int))); + connect(d->page,SIGNAL(loadFinished(bool)),this,SLOT(doLoadFinished(bool))); + connect(d->page,SIGNAL(statusBarMessage(QString)),this,SLOT(setStatusText(QString))); + + connect(d->page->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT(windowObjectCleared())); +} + +/*! + \qmlsignal WebView::onLoadStarted() + + This handler is called when the web engine begins loading + a page. + + \sa progress onLoadFinished() onLoadFailed() +*/ + +/*! + \qmlsignal WebView::onLoadFinished() + + This handler is called when the web engine finishes loading + a page, including any component content. + + \sa progress onLoadFailed() +*/ + +/*! + \qmlsignal WebView::onLoadFailed() + + This handler is called when the web engine fails loading + a page or any component content. + + \sa progress onLoadFinished() +*/ + +void QmlGraphicsWebView::load(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation, + const QByteArray &body) +{ + page()->mainFrame()->load(request, operation, body); +} + +QString QmlGraphicsWebView::html() const +{ + return page()->mainFrame()->toHtml(); +} + +/*! + \qmlproperty string WebView::html + This property holds HTML text set directly + + The html property can be set as a string. + + \qml + WebView { + html: "

This is HTML." + } + \endqml +*/ +void QmlGraphicsWebView::setHtml(const QString &html, const QUrl &baseUrl) +{ + Q_D(QmlGraphicsWebView); + page()->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : width(), height())); + if (isComponentComplete()) + page()->mainFrame()->setHtml(html, baseUrl); + else { + d->pending = d->PendingHtml; + d->pending_url = baseUrl; + d->pending_string = html; + } +} + +void QmlGraphicsWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) +{ + Q_D(QmlGraphicsWebView); + page()->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : width(), height())); + + if (isComponentComplete()) + page()->mainFrame()->setContent(data,mimeType,qmlContext(this)->resolvedUrl(baseUrl)); + else { + d->pending = d->PendingContent; + d->pending_url = baseUrl; + d->pending_string = mimeType; + d->pending_data = data; + } +} + +QWebHistory *QmlGraphicsWebView::history() const +{ + return page()->history(); +} + +QWebSettings *QmlGraphicsWebView::settings() const +{ + return page()->settings(); +} + +QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType type) +{ + Q_D(QmlGraphicsWebView); + switch (type) { + case QWebPage::WebBrowserWindow: { + if (!d->newWindowComponent && d->newWindowParent) + qWarning("WebView::newWindowComponent not set - WebView::newWindowParent ignored"); + else if (d->newWindowComponent && !d->newWindowParent) + qWarning("WebView::newWindowParent not set - WebView::newWindowComponent ignored"); + else if (d->newWindowComponent && d->newWindowParent) { + QmlGraphicsWebView *webview = 0; + QmlContext *windowContext = new QmlContext(qmlContext(this)); + + QObject *nobj = d->newWindowComponent->create(windowContext); + if (nobj) { + windowContext->setParent(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); + if (!item) { + delete nobj; + } else { + webview = item->findChild(); + if (!webview) { + delete item; + } else { + item->setParent(d->newWindowParent); + } + } + } else { + delete windowContext; + } + + return webview; + } + } + break; + case QWebPage::WebModalDialog: { + // Not supported + } + } + return 0; +} + +/*! + \qmlproperty component WebView::newWindowComponent + + This property holds the component to use for new windows. + The component must have a WebView somewhere in its structure. + + When the web engine requests a new window, it will be an instance of + this component. + + The parent of the new window is set by newWindowParent. It must be set. +*/ +QmlComponent *QmlGraphicsWebView::newWindowComponent() const +{ + Q_D(const QmlGraphicsWebView); + return d->newWindowComponent; +} + +void QmlGraphicsWebView::setNewWindowComponent(QmlComponent *newWindow) +{ + Q_D(QmlGraphicsWebView); + delete d->newWindowComponent; + d->newWindowComponent = newWindow; +} + + +/*! + \qmlproperty item WebView::newWindowParent + + The parent item for new windows. + + \sa newWindowComponent +*/ +QmlGraphicsItem *QmlGraphicsWebView::newWindowParent() const +{ + Q_D(const QmlGraphicsWebView); + return d->newWindowParent; +} + +void QmlGraphicsWebView::setNewWindowParent(QmlGraphicsItem *parent) +{ + Q_D(QmlGraphicsWebView); + delete d->newWindowParent; + d->newWindowParent = parent; +} + +/*! + Returns the area of the largest element at position (\a x,\a y) that is no larger + than \a maxwidth by \a maxheight pixels. + + May return an area larger in the case when no smaller element is at the position. +*/ +QRect QmlGraphicsWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const +{ + QWebHitTestResult hit = page()->mainFrame()->hitTestContent(QPoint(x,y)); + QWebElement element = hit.enclosingBlockElement(); + QWebElement parent = element.parent(); + if (maxwidth<=0) maxwidth = INT_MAX; + if (maxheight<=0) maxheight = INT_MAX; + while (!parent.isNull() && parent.geometry().width() <= maxwidth && parent.geometry().height() <= maxheight) { + element = parent; + parent = element.parent(); + } + return element.geometry(); +} + +/*! + \internal + \class QmlGraphicsWebPage + \brief The QmlGraphicsWebPage class is a QWebPage that can create QML plugins. + + \sa QmlGraphicsWebView +*/ +QmlGraphicsWebPage::QmlGraphicsWebPage(QmlGraphicsWebView *parent) : + QWebPage(parent) +{ +} + +QmlGraphicsWebPage::~QmlGraphicsWebPage() +{ +} + +/* + Qt WebKit does not understand non-QWidget plugins, so dummy widgets + are created, parented to a single dummy tool window. + + The requirements for QML object plugins are input to the Qt WebKit + non-QWidget plugin support, which will obsolete this kludge. +*/ +class QWidget_Dummy_Plugin : public QWidget +{ + Q_OBJECT +public: + static QWidget *dummy_shared_parent() + { + static QWidget *dsp = 0; + if (!dsp) { + dsp = new QWidget(0,Qt::Tool); + dsp->setGeometry(-10000,-10000,0,0); + dsp->show(); + } + return dsp; + } + QWidget_Dummy_Plugin(const QUrl& url, QmlGraphicsWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : + QWidget(dummy_shared_parent()), + propertyNames(paramNames), + propertyValues(paramValues), + webview(view) + { + QmlEngine *engine = qmlEngine(webview); + component = new QmlComponent(engine, url, this); + item = 0; + if (component->isLoading()) + connect(component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(qmlLoaded())); + else + qmlLoaded(); + } + +public Q_SLOTS: + void qmlLoaded() + { + if (component->isError()) { + // ### Could instead give these errors to the WebView to handle. + qWarning() << component->errors(); + return; + } + item = qobject_cast(component->create(qmlContext(webview))); + item->setParent(webview); + QString jsObjName; + for (int i=0; isetProperty(propertyNames[i].toUtf8(),propertyValues[i]); + if (propertyNames[i] == QLatin1String("objectname")) + jsObjName = propertyValues[i]; + } + } + if (!jsObjName.isNull()) { + QWebFrame *f = webview->page()->mainFrame(); + f->addToJavaScriptWindowObject(jsObjName, item); + } + resizeEvent(0); + delete component; + component = 0; + } + void resizeEvent(QResizeEvent*) + { + if (item) { + item->setX(x()); + item->setY(y()); + item->setWidth(width()); + item->setHeight(height()); + } + } + +private: + QmlComponent *component; + QmlGraphicsItem *item; + QStringList propertyNames, propertyValues; + QmlGraphicsWebView *webview; +}; + +QmlGraphicsWebView *QmlGraphicsWebPage::viewItem() +{ + return static_cast(parent()); +} + +QObject *QmlGraphicsWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) +{ + QUrl comp = qmlContext(viewItem())->resolvedUrl(url); + return new QWidget_Dummy_Plugin(comp,viewItem(),paramNames,paramValues); +} + +QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) +{ + QmlGraphicsWebView *newView = viewItem()->createWindow(type); + if (newView) + return newView->page(); + return 0; +} + +QT_END_NAMESPACE + +#include "qfxwebview.moc" diff --git a/src/declarative/fx/qmlgraphicswebview.h b/src/declarative/fx/qmlgraphicswebview.h new file mode 100644 index 0000000..81f7bcd --- /dev/null +++ b/src/declarative/fx/qmlgraphicswebview.h @@ -0,0 +1,251 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSWEBVIEW_H +#define QMLGRAPHICSWEBVIEW_H + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +class QWebHistory; +class QWebSettings; + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsWebViewPrivate; +class QNetworkRequest; +class QmlGraphicsWebView; + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage +{ + Q_OBJECT +public: + explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); + ~QmlGraphicsWebPage(); +protected: + QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); + QWebPage *createWindow(WebWindowType type); + +private: + QmlGraphicsWebView *viewItem(); +}; + + +class QmlGraphicsWebViewAttached; +class QmlGraphicsWebSettings; + +//### TODO: browser plugins + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem +{ + Q_OBJECT + + Q_ENUMS(Status) + + Q_PROPERTY(QString title READ title NOTIFY titleChanged) + Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) + Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) + Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) + Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) + + Q_PROPERTY(QString html READ html WRITE setHtml) + + Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) + Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) + Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) + Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + + Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) + Q_PROPERTY(QAction* back READ backAction CONSTANT) + Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) + Q_PROPERTY(QAction* stop READ stopAction CONSTANT) + + Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) + + Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) + + Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) + Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) + + Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) + +public: + QmlGraphicsWebView(QmlGraphicsItem *parent=0); + ~QmlGraphicsWebView(); + + QUrl url() const; + void setUrl(const QUrl &); + + QString title() const; + + QPixmap icon() const; + + qreal textSizeMultiplier() const; + void setTextSizeMultiplier(qreal); + + qreal zoomFactor() const; + void setZoomFactor(qreal); + + int preferredWidth() const; + void setPreferredWidth(int); + int webPageWidth() const; + void setWebPageWidth(int); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + QString statusText() const; + + QAction *reloadAction() const; + QAction *backAction() const; + QAction *forwardAction() const; + QAction *stopAction() const; + + QWebPage *page() const; + void setPage(QWebPage *page); + + void load(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, + const QByteArray &body = QByteArray()); + + QString html() const; + + void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); + void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); + + QWebHistory *history() const; + QWebSettings *settings() const; + QmlGraphicsWebSettings *settingsObject() const; + + int pixelCacheSize() const; + void setPixelCacheSize(int pixels); + + bool renderingEnabled() const; + void setRenderingEnabled(bool); + + QmlList *javaScriptWindowObjects(); + + static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); + + QmlComponent *newWindowComponent() const; + void setNewWindowComponent(QmlComponent *newWindow); + QmlGraphicsItem *newWindowParent() const; + void setNewWindowParent(QmlGraphicsItem *newWindow); + +Q_SIGNALS: + void preferredWidthChanged(); + void preferredHeightChanged(); + void urlChanged(); + void progressChanged(); + void statusChanged(Status); + void titleChanged(const QString&); + void iconChanged(); + void statusTextChanged(); + void zoomFactorChanged(); + + void loadStarted(); + void loadFinished(); + void loadFailed(); + + void doubleClick(int clickX, int clickY); + + void zooming(qreal zoom, int centerX, int centerY); + +public Q_SLOTS: + QVariant evaluateJavaScript(const QString&); + void heuristicZoom(int clickX, int clickY); + +private Q_SLOTS: + void expandToWebPage(); + void paintPage(const QRect&); + void doLoadStarted(); + void doLoadProgress(int p); + void doLoadFinished(bool ok); + void setStatusText(const QString&); + void windowObjectCleared(); + void pageUrlChanged(); + void contentsSizeChanged(const QSize&); + +protected: + QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); + + void drawContents(QPainter *, const QRect &); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void hoverMoveEvent (QGraphicsSceneHoverEvent * event); + void keyPressEvent(QKeyEvent* event); + void keyReleaseEvent(QKeyEvent* event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + 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(); + virtual void componentComplete(); + Q_DISABLE_COPY(QmlGraphicsWebView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) + friend class QmlGraphicsWebPage; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsWebView) +QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QAction) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 1bd9199..5c328cf 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -46,8 +46,8 @@ #include "qmlstateoperations.h" #include #include -#include -#include +#include +#include #include #include diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index 903998d..f2bcd49 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -43,8 +43,8 @@ #define QMLSTATEOPERATIONS_H #include -#include -#include +#include +#include #include QT_BEGIN_HEADER diff --git a/src/declarative/util/qmlview.cpp b/src/declarative/util/qmlview.cpp index ac67cb8..91d443a 100644 --- a/src/declarative/util/qmlview.cpp +++ b/src/declarative/util/qmlview.cpp @@ -52,7 +52,7 @@ #include "qbasictimer.h" #include "qml.h" -#include "qfxitem.h" +#include "qmlgraphicsitem.h" #include "private/qperformancelog_p.h" #include "private/qfxperf_p.h" diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp index fea6ef3..ec6a951 100644 --- a/tests/auto/declarative/anchors/tst_anchors.cpp +++ b/tests/auto/declarative/anchors/tst_anchors.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include class tst_anchors : public QObject diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index 46c953d..099daec 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -2,9 +2,9 @@ #include #include #include -#include -#include -#include "qfxanimatedimageitem.h" +#include +#include +#include "qmlgraphicsanimatedimageitem.h" class tst_animatedimage : public QObject { diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp index b5cc9d4..eaf4d14 100644 --- a/tests/auto/declarative/animations/tst_animations.cpp +++ b/tests/auto/declarative/animations/tst_animations.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_animations : public QObject diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp index 079e2e7..b225a7d 100644 --- a/tests/auto/declarative/behaviors/tst_behaviors.cpp +++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_behaviors : public QObject diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index 70755ff..0b9e402 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include class tst_QmlGraphicsLayouts : public QObject diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp index be65338..4e0f6cb 100644 --- a/tests/auto/declarative/listview/tst_listview.cpp +++ b/tests/auto/declarative/listview/tst_listview.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp index d5b922a..013edf5 100644 --- a/tests/auto/declarative/pathview/tst_pathview.cpp +++ b/tests/auto/declarative/pathview/tst_pathview.cpp @@ -1,9 +1,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/tests/auto/declarative/qfxloader/qfxloader.pro b/tests/auto/declarative/qfxloader/qfxloader.pro index aee52cc..8be8cdf 100644 --- a/tests/auto/declarative/qfxloader/qfxloader.pro +++ b/tests/auto/declarative/qfxloader/qfxloader.pro @@ -2,6 +2,6 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qfxloader.cpp +SOURCES += tst_qmlgraphicsloader.cpp DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp index 99fecc3..c54c151 100644 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include class tst_qfxloader : public QObject diff --git a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro b/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro index 218eeff..1df2f4e 100644 --- a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro +++ b/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro @@ -3,7 +3,7 @@ contains(QT_CONFIG,declarative): QT += declarative QT += network macx:CONFIG -= app_bundle -SOURCES += tst_qfxpixmapcache.cpp +SOURCES += tst_qmlgraphicspixmapcache.cpp # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage # LIBS += -lgcov diff --git a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp index e735066..14f3f19 100644 --- a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp +++ b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include diff --git a/tests/auto/declarative/qfxtext/qfxtext.pro b/tests/auto/declarative/qfxtext/qfxtext.pro index 1f3fe37..1d8c59f 100644 --- a/tests/auto/declarative/qfxtext/qfxtext.pro +++ b/tests/auto/declarative/qfxtext/qfxtext.pro @@ -2,4 +2,4 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qfxtext.cpp +SOURCES += tst_qmlgraphicstext.cpp diff --git a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp index 12cac68..4011851 100644 --- a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp +++ b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_qfxtext : public QObject diff --git a/tests/auto/declarative/qfxtextedit/qfxtextedit.pro b/tests/auto/declarative/qfxtextedit/qfxtextedit.pro index b5e0464..9e6a71a 100644 --- a/tests/auto/declarative/qfxtextedit/qfxtextedit.pro +++ b/tests/auto/declarative/qfxtextedit/qfxtextedit.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qfxtextedit.cpp +SOURCES += tst_qmlgraphicstextedit.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp index 0565fd4..cab8666 100644 --- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp +++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/tests/auto/declarative/qfxtextinput/qfxtextinput.pro b/tests/auto/declarative/qfxtextinput/qfxtextinput.pro index fe2e3e3..fd75fec 100644 --- a/tests/auto/declarative/qfxtextinput/qfxtextinput.pro +++ b/tests/auto/declarative/qfxtextinput/qfxtextinput.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qfxtextinput.cpp +SOURCES += tst_qmlgraphicstextinput.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxwebview/qfxwebview.pro b/tests/auto/declarative/qfxwebview/qfxwebview.pro index b75e057..cce3df2 100644 --- a/tests/auto/declarative/qfxwebview/qfxwebview.pro +++ b/tests/auto/declarative/qfxwebview/qfxwebview.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative macx:CONFIG -= app_bundle -SOURCES += tst_qfxwebview.cpp +SOURCES += tst_qmlgraphicswebview.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp index 6e3336c..eeaef89 100644 --- a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp +++ b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp @@ -2,7 +2,7 @@ #include "../../../shared/util.h" #include #include -#include +#include #include #include #include diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp index d11771c..f3e62ab 100644 --- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp +++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include class tst_QmlPropertyMap : public QObject diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp index 0622028..8354005 100644 --- a/tests/auto/declarative/repeater/tst_repeater.cpp +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include #include class tst_QmlGraphicsRepeater : public QObject diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp index e938ee4..ce73c0c 100644 --- a/tests/auto/declarative/sql/tst_sql.cpp +++ b/tests/auto/declarative/sql/tst_sql.cpp @@ -2,7 +2,7 @@ #include "../../../shared/util.h" #include #include -#include +#include #include #include #include diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp index 91b6d0b..218baf8 100644 --- a/tests/auto/declarative/states/tst_states.cpp +++ b/tests/auto/declarative/states/tst_states.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include class tst_states : public QObject { diff --git a/tools/qmldebugger/standalone/engine.cpp b/tools/qmldebugger/standalone/engine.cpp index f1eada8..92c54eb 100644 --- a/tools/qmldebugger/standalone/engine.cpp +++ b/tools/qmldebugger/standalone/engine.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "engine.h" diff --git a/tools/qmlviewer/qfxtester.cpp b/tools/qmlviewer/qfxtester.cpp index a105701..b09c736 100644 --- a/tools/qmlviewer/qfxtester.cpp +++ b/tools/qmlviewer/qfxtester.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include QT_BEGIN_NAMESPACE -- cgit v0.12 From b0c858dee261dec08dacd2c74671404f3229cb31 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 15:10:20 +1000 Subject: small fixes to parallax example --- examples/declarative/parallax/ParallaxView.qml | 12 +++++------- examples/declarative/parallax/parallax.qml | 27 +++++++------------------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/examples/declarative/parallax/ParallaxView.qml b/examples/declarative/parallax/ParallaxView.qml index 50ab72c..ac84b47 100644 --- a/examples/declarative/parallax/ParallaxView.qml +++ b/examples/declarative/parallax/ParallaxView.qml @@ -37,6 +37,11 @@ Item { ListView { id: selector + Rectangle { + color: "#60FFFFFF" + x: -10; y: -10; radius: 10; z: -1 + width: parent.width + 20; height: parent.height + 20 + } currentIndex: root.currentIndex onCurrentIndexChanged: root.currentIndex = currentIndex @@ -80,12 +85,5 @@ Item { } } model: visualModel.children - - Rectangle { - color: "#40FFFFFF" - x: -10; - y: -10; - width: parent.width + 20; height: parent.height + 10 - } } } diff --git a/examples/declarative/parallax/parallax.qml b/examples/declarative/parallax/parallax.qml index e3a7d93..b64f15f 100644 --- a/examples/declarative/parallax/parallax.qml +++ b/examples/declarative/parallax/parallax.qml @@ -4,8 +4,7 @@ import "../clocks/content" Rectangle { id: root - width: 320 - height: 480 + width: 320; height: 480 ParallaxView { id: parallax @@ -14,36 +13,24 @@ Rectangle { Item { property url icon: "pics/yast-wol.png" - width: 320 - height: 480 - + width: 320; height: 480 Clock { anchors.centerIn: parent } } Item { property url icon: "pics/home-page.svg" - - width: 320 - height: 480 - - Smiley {} + width: 320; height: 480 + Smiley { } } Item { property url icon: "pics/yast-joystick.png" - - width: 320 - height: 480 + width: 320; height: 480 Loader { - anchors.top: parent.top - anchors.topMargin: 10 - anchors.horizontalCenter: parent.horizontalCenter - + anchors { top: parent.top; topMargin: 10; horizontalCenter: parent.horizontalCenter } width: 300; height: 400 - clip: true - resizeMode: Loader.SizeItemToLoader - + clip: true; resizeMode: Loader.SizeItemToLoader source: "../../../demos/declarative/samegame/samegame.qml" } } -- cgit v0.12 From abf60e8e075ecbf2c14e84d40fecff973dd124c7 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 15:13:19 +1000 Subject: cleanup --- examples/declarative/parallax/ParallaxView.qml | 89 ---------------------- examples/declarative/parallax/Smiley.qml | 47 ------------ examples/declarative/parallax/parallax.qml | 1 + examples/declarative/parallax/qml/ParallaxView.qml | 89 ++++++++++++++++++++++ examples/declarative/parallax/qml/Smiley.qml | 47 ++++++++++++ 5 files changed, 137 insertions(+), 136 deletions(-) delete mode 100644 examples/declarative/parallax/ParallaxView.qml delete mode 100644 examples/declarative/parallax/Smiley.qml create mode 100644 examples/declarative/parallax/qml/ParallaxView.qml create mode 100644 examples/declarative/parallax/qml/Smiley.qml diff --git a/examples/declarative/parallax/ParallaxView.qml b/examples/declarative/parallax/ParallaxView.qml deleted file mode 100644 index ac84b47..0000000 --- a/examples/declarative/parallax/ParallaxView.qml +++ /dev/null @@ -1,89 +0,0 @@ -import Qt 4.6 - -Item { - id: root - - property alias background: background.source - default property alias content: visualModel.children - property int currentIndex: 0 - - Image { - id: background - fillMode: Image.TileHorizontally - x: -list.viewportX / 2 - width: Math.max(list.viewportWidth, parent.width) - } - - ListView { - id: list - - currentIndex: root.currentIndex - onCurrentIndexChanged: root.currentIndex = currentIndex - - orientation: "Horizontal" - overShoot: false - anchors.fill: parent - model: VisualItemModel { id: visualModel } - - highlight: Rectangle { height: 1; width: 1 } - highlightMoveSpeed: 2000 - preferredHighlightBegin: 0 - preferredHighlightEnd: 0 - highlightRangeMode: "StrictlyEnforceRange" - - flickDeceleration: 1000 - } - - ListView { - id: selector - - Rectangle { - color: "#60FFFFFF" - x: -10; y: -10; radius: 10; z: -1 - width: parent.width + 20; height: parent.height + 20 - } - currentIndex: root.currentIndex - onCurrentIndexChanged: root.currentIndex = currentIndex - - height: 50 - anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - width: Math.min(count * 50, parent.width - 20) - interactive: width == parent.width - 20 - orientation: "Horizontal" - - delegate: Item { - width: 50; height: 50 - id: delegateRoot - - Image { - id: image - source: modelData.icon - smooth: true - scale: 0.8 - transformOrigin: "Center" - } - - MouseRegion { - anchors.fill: parent - onClicked: { root.currentIndex = index } - } - - states: State { - name: "Selected" - when: delegateRoot.ListView.isCurrentItem == true - PropertyChanges { - target: image - scale: 1 - y: -5 - } - } - transitions: Transition { - NumberAnimation { - properties: "scale,y" - } - } - } - model: visualModel.children - } -} diff --git a/examples/declarative/parallax/Smiley.qml b/examples/declarative/parallax/Smiley.qml deleted file mode 100644 index db87412..0000000 --- a/examples/declarative/parallax/Smiley.qml +++ /dev/null @@ -1,47 +0,0 @@ -import Qt 4.6 - -Item { - id: window - width: 320; height: 480 - - // The shadow for the smiley face - Image { - anchors.horizontalCenter: parent.horizontalCenter - source: "pics/shadow.png"; y: smiley.minHeight + 58 - transformOrigin: Item.Center - - // The scale property depends on the y position of the smiley face. - scale: smiley.y * 0.5 / (smiley.minHeight - smiley.maxHeight) - } - - Image { - id: smiley - property int maxHeight: window.height / 3 - property int minHeight: 2 * window.height / 3 - - anchors.horizontalCenter: parent.horizontalCenter - source: "pics/face-smile.png"; y: minHeight - - // Animate the y property. Setting repeat to true makes the - // animation repeat indefinitely, otherwise it would only run once. - y: SequentialAnimation { - running: true; repeat: true - - // Move from minHeight to maxHeight in 300ms, using the easeOutExpo easing function - NumberAnimation { - from: smiley.minHeight; to: smiley.maxHeight - easing: "easeOutExpo"; duration: 300 - } - - // Then move back to minHeight in 1 second, using the easeOutBounce easing function - NumberAnimation { - from: smiley.maxHeight; to: smiley.minHeight - easing: "easeOutBounce"; duration: 1000 - } - - // Then pause for 500ms - PauseAnimation { duration: 500 } - } - } -} - diff --git a/examples/declarative/parallax/parallax.qml b/examples/declarative/parallax/parallax.qml index b64f15f..6193f27 100644 --- a/examples/declarative/parallax/parallax.qml +++ b/examples/declarative/parallax/parallax.qml @@ -1,5 +1,6 @@ import Qt 4.6 import "../clocks/content" +import "qml" Rectangle { id: root diff --git a/examples/declarative/parallax/qml/ParallaxView.qml b/examples/declarative/parallax/qml/ParallaxView.qml new file mode 100644 index 0000000..ac84b47 --- /dev/null +++ b/examples/declarative/parallax/qml/ParallaxView.qml @@ -0,0 +1,89 @@ +import Qt 4.6 + +Item { + id: root + + property alias background: background.source + default property alias content: visualModel.children + property int currentIndex: 0 + + Image { + id: background + fillMode: Image.TileHorizontally + x: -list.viewportX / 2 + width: Math.max(list.viewportWidth, parent.width) + } + + ListView { + id: list + + currentIndex: root.currentIndex + onCurrentIndexChanged: root.currentIndex = currentIndex + + orientation: "Horizontal" + overShoot: false + anchors.fill: parent + model: VisualItemModel { id: visualModel } + + highlight: Rectangle { height: 1; width: 1 } + highlightMoveSpeed: 2000 + preferredHighlightBegin: 0 + preferredHighlightEnd: 0 + highlightRangeMode: "StrictlyEnforceRange" + + flickDeceleration: 1000 + } + + ListView { + id: selector + + Rectangle { + color: "#60FFFFFF" + x: -10; y: -10; radius: 10; z: -1 + width: parent.width + 20; height: parent.height + 20 + } + currentIndex: root.currentIndex + onCurrentIndexChanged: root.currentIndex = currentIndex + + height: 50 + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + width: Math.min(count * 50, parent.width - 20) + interactive: width == parent.width - 20 + orientation: "Horizontal" + + delegate: Item { + width: 50; height: 50 + id: delegateRoot + + Image { + id: image + source: modelData.icon + smooth: true + scale: 0.8 + transformOrigin: "Center" + } + + MouseRegion { + anchors.fill: parent + onClicked: { root.currentIndex = index } + } + + states: State { + name: "Selected" + when: delegateRoot.ListView.isCurrentItem == true + PropertyChanges { + target: image + scale: 1 + y: -5 + } + } + transitions: Transition { + NumberAnimation { + properties: "scale,y" + } + } + } + model: visualModel.children + } +} diff --git a/examples/declarative/parallax/qml/Smiley.qml b/examples/declarative/parallax/qml/Smiley.qml new file mode 100644 index 0000000..e8917f6 --- /dev/null +++ b/examples/declarative/parallax/qml/Smiley.qml @@ -0,0 +1,47 @@ +import Qt 4.6 + +Item { + id: window + width: 320; height: 480 + + // The shadow for the smiley face + Image { + anchors.horizontalCenter: parent.horizontalCenter + source: "../pics/shadow.png"; y: smiley.minHeight + 58 + transformOrigin: Item.Center + + // The scale property depends on the y position of the smiley face. + scale: smiley.y * 0.5 / (smiley.minHeight - smiley.maxHeight) + } + + Image { + id: smiley + property int maxHeight: window.height / 3 + property int minHeight: 2 * window.height / 3 + + anchors.horizontalCenter: parent.horizontalCenter + source: "../pics/face-smile.png"; y: minHeight + + // Animate the y property. Setting repeat to true makes the + // animation repeat indefinitely, otherwise it would only run once. + y: SequentialAnimation { + running: true; repeat: true + + // Move from minHeight to maxHeight in 300ms, using the easeOutExpo easing function + NumberAnimation { + from: smiley.minHeight; to: smiley.maxHeight + easing: "easeOutExpo"; duration: 300 + } + + // Then move back to minHeight in 1 second, using the easeOutBounce easing function + NumberAnimation { + from: smiley.maxHeight; to: smiley.minHeight + easing: "easeOutBounce"; duration: 1000 + } + + // Then pause for 500ms + PauseAnimation { duration: 500 } + } + } +} + -- cgit v0.12 From cda9193904d5f19b0d53487e0fe3b2d9cd422621 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 30 Oct 2009 15:31:30 +1000 Subject: fix macros --- src/declarative/widgets/graphicswidgets.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/widgets/graphicswidgets.h b/src/declarative/widgets/graphicswidgets.h index 2b39db3..2871e5b 100644 --- a/src/declarative/widgets/graphicswidgets.h +++ b/src/declarative/widgets/graphicswidgets.h @@ -54,13 +54,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) +QT_END_NAMESPACE + QML_DECLARE_TYPE(QGraphicsView) QML_DECLARE_TYPE_HASMETATYPE(QGraphicsScene) QML_DECLARE_TYPE(QGraphicsWidget) QML_DECLARE_INTERFACE_HASMETATYPE(QGraphicsItem) -QT_END_NAMESPACE - QT_END_HEADER #endif // GRAPHICSWIDGETS_H -- cgit v0.12 From fe2d8f1e7560c441694ef3650ba41c3a5298a44f Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 15:33:39 +1000 Subject: cleanup dial example --- examples/declarative/dial/DialLibrary/Dial.qml | 37 --------------------- .../declarative/dial/DialLibrary/background.png | Bin 35876 -> 0 bytes examples/declarative/dial/DialLibrary/needle.png | Bin 342 -> 0 bytes .../declarative/dial/DialLibrary/needle_shadow.png | Bin 632 -> 0 bytes examples/declarative/dial/DialLibrary/overlay.png | Bin 3564 -> 0 bytes examples/declarative/dial/content/Dial.qml | 37 +++++++++++++++++++++ examples/declarative/dial/content/background.png | Bin 0 -> 35876 bytes examples/declarative/dial/content/needle.png | Bin 0 -> 342 bytes .../declarative/dial/content/needle_shadow.png | Bin 0 -> 632 bytes examples/declarative/dial/content/overlay.png | Bin 0 -> 3564 bytes examples/declarative/dial/dial.pro | 9 ----- examples/declarative/dial/dial.qml | 26 ++++++++------- examples/declarative/dial/dial.qrc | 10 ------ examples/declarative/dial/main.cpp | 18 ---------- 14 files changed, 51 insertions(+), 86 deletions(-) delete mode 100644 examples/declarative/dial/DialLibrary/Dial.qml delete mode 100644 examples/declarative/dial/DialLibrary/background.png delete mode 100644 examples/declarative/dial/DialLibrary/needle.png delete mode 100644 examples/declarative/dial/DialLibrary/needle_shadow.png delete mode 100644 examples/declarative/dial/DialLibrary/overlay.png create mode 100644 examples/declarative/dial/content/Dial.qml create mode 100644 examples/declarative/dial/content/background.png create mode 100644 examples/declarative/dial/content/needle.png create mode 100644 examples/declarative/dial/content/needle_shadow.png create mode 100644 examples/declarative/dial/content/overlay.png delete mode 100644 examples/declarative/dial/dial.pro delete mode 100644 examples/declarative/dial/dial.qrc delete mode 100644 examples/declarative/dial/main.cpp diff --git a/examples/declarative/dial/DialLibrary/Dial.qml b/examples/declarative/dial/DialLibrary/Dial.qml deleted file mode 100644 index c1e9770..0000000 --- a/examples/declarative/dial/DialLibrary/Dial.qml +++ /dev/null @@ -1,37 +0,0 @@ -import Qt 4.6 - -Item { - id: root - property real value : 0 - - width: 210; height: 210 - - Image { source: "background.png" } - - Image { - x: 93 - y: 35 - source: "needle_shadow.png" - transform: Rotation { - origin.x: 11; origin.y: 67 - angle: needleRotation.angle - } - } - Image { - id: needle - x: 95; y: 33 - smooth: true - source: "needle.png" - transform: Rotation { - id: needleRotation - origin.x: 7; origin.y: 65 - angle: -130 - angle: SpringFollow { - spring: 1.4 - damping: .15 - source: Math.min(Math.max(-130, root.value*2.2 - 130), 133) - } - } - } - Image { x: 21; y: 18; source: "overlay.png" } -} diff --git a/examples/declarative/dial/DialLibrary/background.png b/examples/declarative/dial/DialLibrary/background.png deleted file mode 100644 index 75d555d..0000000 Binary files a/examples/declarative/dial/DialLibrary/background.png and /dev/null differ diff --git a/examples/declarative/dial/DialLibrary/needle.png b/examples/declarative/dial/DialLibrary/needle.png deleted file mode 100644 index 2d19f75..0000000 Binary files a/examples/declarative/dial/DialLibrary/needle.png and /dev/null differ diff --git a/examples/declarative/dial/DialLibrary/needle_shadow.png b/examples/declarative/dial/DialLibrary/needle_shadow.png deleted file mode 100644 index 8d8a928..0000000 Binary files a/examples/declarative/dial/DialLibrary/needle_shadow.png and /dev/null differ diff --git a/examples/declarative/dial/DialLibrary/overlay.png b/examples/declarative/dial/DialLibrary/overlay.png deleted file mode 100644 index 3860a7b..0000000 Binary files a/examples/declarative/dial/DialLibrary/overlay.png and /dev/null differ diff --git a/examples/declarative/dial/content/Dial.qml b/examples/declarative/dial/content/Dial.qml new file mode 100644 index 0000000..6fd0f39 --- /dev/null +++ b/examples/declarative/dial/content/Dial.qml @@ -0,0 +1,37 @@ +import Qt 4.6 + +Item { + id: root + property real value : 0 + + width: 210; height: 210 + + Image { source: "background.png" } + + Image { + x: 93 + y: 35 + source: "needle_shadow.png" + transform: Rotation { + origin.x: 11; origin.y: 67 + angle: needleRotation.angle + } + } + Image { + id: needle + x: 95; y: 33 + smooth: true + source: "needle.png" + transform: Rotation { + id: needleRotation + origin.x: 7; origin.y: 65 + angle: -130 + angle: SpringFollow { + spring: 1.4 + damping: .15 + source: Math.min(Math.max(-130, root.value*2.6 - 130), 133) + } + } + } + Image { x: 21; y: 18; source: "overlay.png" } +} diff --git a/examples/declarative/dial/content/background.png b/examples/declarative/dial/content/background.png new file mode 100644 index 0000000..75d555d Binary files /dev/null and b/examples/declarative/dial/content/background.png differ diff --git a/examples/declarative/dial/content/needle.png b/examples/declarative/dial/content/needle.png new file mode 100644 index 0000000..2d19f75 Binary files /dev/null and b/examples/declarative/dial/content/needle.png differ diff --git a/examples/declarative/dial/content/needle_shadow.png b/examples/declarative/dial/content/needle_shadow.png new file mode 100644 index 0000000..8d8a928 Binary files /dev/null and b/examples/declarative/dial/content/needle_shadow.png differ diff --git a/examples/declarative/dial/content/overlay.png b/examples/declarative/dial/content/overlay.png new file mode 100644 index 0000000..3860a7b Binary files /dev/null and b/examples/declarative/dial/content/overlay.png differ diff --git a/examples/declarative/dial/dial.pro b/examples/declarative/dial/dial.pro deleted file mode 100644 index 1d1f811..0000000 --- a/examples/declarative/dial/dial.pro +++ /dev/null @@ -1,9 +0,0 @@ -SOURCES = main.cpp -RESOURCES = dial.qrc - -QT += script declarative - -target.path = $$[QT_INSTALL_EXAMPLES]/declarative/dial -sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS dial.pro -sources.path = $$[QT_INSTALL_EXAMPLES]/declarative/dial -INSTALLS += target sources diff --git a/examples/declarative/dial/dial.qml b/examples/declarative/dial/dial.qml index c7baf25..c7b7659 100644 --- a/examples/declarative/dial/dial.qml +++ b/examples/declarative/dial/dial.qml @@ -1,32 +1,34 @@ import Qt 4.6 +import "content" -import "DialLibrary" Rectangle { - color: "white" - width: 210; height: 240 + color: "#545454" + width: 300; height: 300 // Dial with a slider to adjust it - Dial { id: dial; value: slider.x-2 } + Dial { id: dial; anchors.centerIn: parent; value: slider.x *100 / (container.width - 34) } Rectangle { - anchors.top: dial.bottom - x: 20; width: 160; height: 16 + id: container + anchors.bottom: parent.bottom; anchors.bottomMargin: 10 + anchors.left: parent.left; anchors.leftMargin: 20 + anchors.right: parent.right; anchors.rightMargin: 20; height: 16 gradient: Gradient { - GradientStop { position: 0.0; color: "steelblue" } - GradientStop { position: 1.0; color: "lightsteelblue" } + GradientStop { position: 0.0; color: "gray" } + GradientStop { position: 1.0; color: "white" } } radius: 8; opacity: 0.7; smooth: true Rectangle { id: slider - x: 2; y: 2; width: 30; height: 12 + x: 1; y: 1; width: 30; height: 14 radius: 6; smooth: true gradient: Gradient { - GradientStop { position: 0.0; color: "lightgray" } - GradientStop { position: 1.0; color: "gray" } + GradientStop { position: 0.0; color: "#424242" } + GradientStop { position: 1.0; color: "black" } } MouseRegion { anchors.fill: parent - drag.target: parent; drag.axis: "XAxis"; drag.minimumX: 2; drag.maximumX: 128 + drag.target: parent; drag.axis: "XAxis"; drag.minimumX: 2; drag.maximumX: container.width - 32 } } } diff --git a/examples/declarative/dial/dial.qrc b/examples/declarative/dial/dial.qrc deleted file mode 100644 index 77354c0..0000000 --- a/examples/declarative/dial/dial.qrc +++ /dev/null @@ -1,10 +0,0 @@ - - - DialLibrary/background.png - DialLibrary/overlay.png - DialLibrary/needle_shadow.png - DialLibrary/needle.png - DialLibrary/Dial.qml - dial.qml - - diff --git a/examples/declarative/dial/main.cpp b/examples/declarative/dial/main.cpp deleted file mode 100644 index b65c9ff..0000000 --- a/examples/declarative/dial/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QmlView *canvas = new QmlView; - canvas->setUrl(QUrl("qrc:/dial.qml")); - canvas->execute(); - canvas->resize(210,240); - canvas->show(); - - return app.exec(); -} - - -- cgit v0.12 From fed23e1171d12c4b069652acacc2d718c9691c12 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 30 Oct 2009 15:35:59 +1000 Subject: fix headers --- examples/declarative/extending/adding/person.h | 40 ++++++++++++++++++++++ .../declarative/extending/attached/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/attached/person.h | 40 ++++++++++++++++++++++ .../declarative/extending/binding/birthdayparty.h | 40 ++++++++++++++++++++++ .../declarative/extending/binding/happybirthday.h | 40 ++++++++++++++++++++++ examples/declarative/extending/binding/person.h | 40 ++++++++++++++++++++++ .../declarative/extending/coercion/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/coercion/person.h | 40 ++++++++++++++++++++++ .../declarative/extending/default/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/default/person.h | 40 ++++++++++++++++++++++ examples/declarative/extending/extended/lineedit.h | 40 ++++++++++++++++++++++ .../declarative/extending/grouped/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/grouped/person.h | 40 ++++++++++++++++++++++ .../extending/properties/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/properties/person.h | 40 ++++++++++++++++++++++ .../declarative/extending/signal/birthdayparty.h | 40 ++++++++++++++++++++++ examples/declarative/extending/signal/person.h | 40 ++++++++++++++++++++++ .../extending/valuesource/birthdayparty.h | 40 ++++++++++++++++++++++ .../extending/valuesource/happybirthday.h | 40 ++++++++++++++++++++++ .../declarative/extending/valuesource/person.h | 40 ++++++++++++++++++++++ examples/declarative/loader/qmlfolderlistmodel.h | 34 +++++++++--------- src/declarative/debugger/qmldebug.cpp | 32 ++++++++--------- src/declarative/debugger/qmldebugclient.cpp | 32 ++++++++--------- src/declarative/debugger/qmldebuggerstatus.cpp | 32 ++++++++--------- src/declarative/debugger/qmldebugservice.cpp | 32 ++++++++--------- src/declarative/debugger/qpacketprotocol.cpp | 32 ++++++++--------- tests/benchmarks/declarative/binding/testtypes.cpp | 40 ++++++++++++++++++++++ tests/benchmarks/declarative/binding/testtypes.h | 40 ++++++++++++++++++++++ .../declarative/qmlcomponent/testtypes.cpp | 40 ++++++++++++++++++++++ .../declarative/qmlcomponent/testtypes.h | 40 ++++++++++++++++++++++ 30 files changed, 1057 insertions(+), 97 deletions(-) diff --git a/examples/declarative/extending/adding/person.h b/examples/declarative/extending/adding/person.h index 3bef2d4..1a01586 100644 --- a/examples/declarative/extending/adding/person.h +++ b/examples/declarative/extending/adding/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/attached/birthdayparty.h b/examples/declarative/extending/attached/birthdayparty.h index 2ea065c..ffebe5f 100644 --- a/examples/declarative/extending/attached/birthdayparty.h +++ b/examples/declarative/extending/attached/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/attached/person.h b/examples/declarative/extending/attached/person.h index 07dfe0e..c5b7727 100644 --- a/examples/declarative/extending/attached/person.h +++ b/examples/declarative/extending/attached/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/binding/birthdayparty.h b/examples/declarative/extending/binding/birthdayparty.h index 2757561..7fde54e 100644 --- a/examples/declarative/extending/binding/birthdayparty.h +++ b/examples/declarative/extending/binding/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/binding/happybirthday.h b/examples/declarative/extending/binding/happybirthday.h index fff2df0..5a492c7 100644 --- a/examples/declarative/extending/binding/happybirthday.h +++ b/examples/declarative/extending/binding/happybirthday.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 HAPPYBIRTHDAY_H #define HAPPYBIRTHDAY_H diff --git a/examples/declarative/extending/binding/person.h b/examples/declarative/extending/binding/person.h index 41513b9..ad77d69 100644 --- a/examples/declarative/extending/binding/person.h +++ b/examples/declarative/extending/binding/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/coercion/birthdayparty.h b/examples/declarative/extending/coercion/birthdayparty.h index 2557d1a..810cee3 100644 --- a/examples/declarative/extending/coercion/birthdayparty.h +++ b/examples/declarative/extending/coercion/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/coercion/person.h b/examples/declarative/extending/coercion/person.h index de14019..7cfd3d6 100644 --- a/examples/declarative/extending/coercion/person.h +++ b/examples/declarative/extending/coercion/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/default/birthdayparty.h b/examples/declarative/extending/default/birthdayparty.h index 084da10..cafe4c7 100644 --- a/examples/declarative/extending/default/birthdayparty.h +++ b/examples/declarative/extending/default/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/default/person.h b/examples/declarative/extending/default/person.h index 872186c..6fd9232 100644 --- a/examples/declarative/extending/default/person.h +++ b/examples/declarative/extending/default/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/extended/lineedit.h b/examples/declarative/extending/extended/lineedit.h index 79fe977..3f03ba1 100644 --- a/examples/declarative/extending/extended/lineedit.h +++ b/examples/declarative/extending/extended/lineedit.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 LINEEDIT_H #define LINEEDIT_H diff --git a/examples/declarative/extending/grouped/birthdayparty.h b/examples/declarative/extending/grouped/birthdayparty.h index 3d53319..ba8a68d 100644 --- a/examples/declarative/extending/grouped/birthdayparty.h +++ b/examples/declarative/extending/grouped/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/grouped/person.h b/examples/declarative/extending/grouped/person.h index b83eb5b..5cd3e8f 100644 --- a/examples/declarative/extending/grouped/person.h +++ b/examples/declarative/extending/grouped/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/properties/birthdayparty.h b/examples/declarative/extending/properties/birthdayparty.h index 1804980..7bc3c3f 100644 --- a/examples/declarative/extending/properties/birthdayparty.h +++ b/examples/declarative/extending/properties/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/properties/person.h b/examples/declarative/extending/properties/person.h index 2bc98c1..1c69f5a 100644 --- a/examples/declarative/extending/properties/person.h +++ b/examples/declarative/extending/properties/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/signal/birthdayparty.h b/examples/declarative/extending/signal/birthdayparty.h index 5dea2e8..56a809e 100644 --- a/examples/declarative/extending/signal/birthdayparty.h +++ b/examples/declarative/extending/signal/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/signal/person.h b/examples/declarative/extending/signal/person.h index 07dfe0e..c5b7727 100644 --- a/examples/declarative/extending/signal/person.h +++ b/examples/declarative/extending/signal/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/extending/valuesource/birthdayparty.h b/examples/declarative/extending/valuesource/birthdayparty.h index 75a2477..11e1fdf 100644 --- a/examples/declarative/extending/valuesource/birthdayparty.h +++ b/examples/declarative/extending/valuesource/birthdayparty.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 BIRTHDAYPARTY_H #define BIRTHDAYPARTY_H diff --git a/examples/declarative/extending/valuesource/happybirthday.h b/examples/declarative/extending/valuesource/happybirthday.h index 18ac1f4..4e8e87c 100644 --- a/examples/declarative/extending/valuesource/happybirthday.h +++ b/examples/declarative/extending/valuesource/happybirthday.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 HAPPYBIRTHDAY_H #define HAPPYBIRTHDAY_H diff --git a/examples/declarative/extending/valuesource/person.h b/examples/declarative/extending/valuesource/person.h index 07dfe0e..c5b7727 100644 --- a/examples/declarative/extending/valuesource/person.h +++ b/examples/declarative/extending/valuesource/person.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 examples 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 PERSON_H #define PERSON_H diff --git a/examples/declarative/loader/qmlfolderlistmodel.h b/examples/declarative/loader/qmlfolderlistmodel.h index 49b508d..f4fa9ed 100644 --- a/examples/declarative/loader/qmlfolderlistmodel.h +++ b/examples/declarative/loader/qmlfolderlistmodel.h @@ -1,16 +1,17 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtDeclarative module of the Qt Toolkit. +** This file is part of the examples 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index c19abe3..85a0cf8 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebugclient.cpp b/src/declarative/debugger/qmldebugclient.cpp index 3171808..3e805d6 100644 --- a/src/declarative/debugger/qmldebugclient.cpp +++ b/src/declarative/debugger/qmldebugclient.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebuggerstatus.cpp b/src/declarative/debugger/qmldebuggerstatus.cpp index d46a21d..f8ee210 100644 --- a/src/declarative/debugger/qmldebuggerstatus.cpp +++ b/src/declarative/debugger/qmldebuggerstatus.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qmldebugservice.cpp b/src/declarative/debugger/qmldebugservice.cpp index 6913def..ca9811c 100644 --- a/src/declarative/debugger/qmldebugservice.cpp +++ b/src/declarative/debugger/qmldebugservice.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/src/declarative/debugger/qpacketprotocol.cpp b/src/declarative/debugger/qpacketprotocol.cpp index 84882dd..5a85104 100644 --- a/src/declarative/debugger/qpacketprotocol.cpp +++ b/src/declarative/debugger/qpacketprotocol.cpp @@ -1,7 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** @@ -9,8 +10,8 @@ ** 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 either Technology Preview License Agreement or the -** Beta Release License Agreement. +** 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 @@ -20,21 +21,20 @@ ** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. +** 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. +** +** +** +** +** +** ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. ** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/tests/benchmarks/declarative/binding/testtypes.cpp b/tests/benchmarks/declarative/binding/testtypes.cpp index 60e69e2..9dad523 100644 --- a/tests/benchmarks/declarative/binding/testtypes.cpp +++ b/tests/benchmarks/declarative/binding/testtypes.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include "testtypes.h" QML_DEFINE_TYPE(MyQmlObject, MyQmlObject); diff --git a/tests/benchmarks/declarative/binding/testtypes.h b/tests/benchmarks/declarative/binding/testtypes.h index 20bf5f7..c0586b1 100644 --- a/tests/benchmarks/declarative/binding/testtypes.h +++ b/tests/benchmarks/declarative/binding/testtypes.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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 TESTTYPES_H #define TESTTYPES_H diff --git a/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp b/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp index 5021bf3..8350211 100644 --- a/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp +++ b/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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$ +** +****************************************************************************/ #include "testtypes.h" QML_DEFINE_TYPE(Qt/test, 4, 6, 6, MyQmlObject, MyQmlObject); diff --git a/tests/benchmarks/declarative/qmlcomponent/testtypes.h b/tests/benchmarks/declarative/qmlcomponent/testtypes.h index 20bf5f7..c0586b1 100644 --- a/tests/benchmarks/declarative/qmlcomponent/testtypes.h +++ b/tests/benchmarks/declarative/qmlcomponent/testtypes.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 test suite 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 TESTTYPES_H #define TESTTYPES_H -- cgit v0.12 From 564894627debad93433f16506ccf32afeb23d004 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 16:12:18 +1000 Subject: Make private headers _p --- src/declarative/3rdparty/3rdparty.pri | 2 +- src/declarative/3rdparty/qlistmodelinterface.cpp | 2 +- src/declarative/3rdparty/qlistmodelinterface.h | 86 ---- src/declarative/3rdparty/qlistmodelinterface_p.h | 86 ++++ src/declarative/debugger/debugger.pri | 10 +- src/declarative/debugger/qmldebug.cpp | 4 +- src/declarative/debugger/qmldebug.h | 314 ------------ src/declarative/debugger/qmldebug_p.h | 314 ++++++++++++ src/declarative/debugger/qmldebugclient.cpp | 4 +- src/declarative/debugger/qmldebugclient.h | 99 ---- src/declarative/debugger/qmldebugclient_p.h | 99 ++++ src/declarative/debugger/qmldebuggerstatus.cpp | 2 +- src/declarative/debugger/qmldebuggerstatus.h | 66 --- src/declarative/debugger/qmldebuggerstatus_p.h | 66 +++ src/declarative/debugger/qmldebugservice.cpp | 4 +- src/declarative/debugger/qmldebugservice.h | 88 ---- src/declarative/debugger/qmldebugservice_p.h | 88 ++++ src/declarative/debugger/qpacketprotocol.cpp | 2 +- src/declarative/debugger/qpacketprotocol.h | 122 ----- src/declarative/debugger/qpacketprotocol_p.h | 122 +++++ src/declarative/extra/extra.pri | 18 +- src/declarative/extra/qmlbehavior.cpp | 6 +- src/declarative/extra/qmlbehavior.h | 84 ---- src/declarative/extra/qmlbehavior_p.h | 84 ++++ src/declarative/extra/qmldatetimeformatter.cpp | 2 +- src/declarative/extra/qmldatetimeformatter.h | 116 ----- src/declarative/extra/qmldatetimeformatter_p.h | 116 +++++ src/declarative/extra/qmlfontloader.cpp | 2 +- src/declarative/extra/qmlfontloader.h | 94 ---- src/declarative/extra/qmlfontloader_p.h | 94 ++++ .../extra/qmlgraphicsanimatedimageitem.cpp | 2 +- .../extra/qmlgraphicsanimatedimageitem.h | 106 ---- .../extra/qmlgraphicsanimatedimageitem_p.h | 77 ++- .../extra/qmlgraphicsanimatedimageitem_p_p.h | 81 ++++ src/declarative/extra/qmlgraphicsintegermodel.cpp | 2 +- src/declarative/extra/qmlgraphicsintegermodel.h | 86 ---- src/declarative/extra/qmlgraphicsintegermodel_p.h | 86 ++++ src/declarative/extra/qmlgraphicsparticles.cpp | 8 +- src/declarative/extra/qmlgraphicsparticles.h | 230 --------- src/declarative/extra/qmlgraphicsparticles_p.h | 230 +++++++++ src/declarative/extra/qmlnumberformatter.cpp | 2 +- src/declarative/extra/qmlnumberformatter.h | 92 ---- src/declarative/extra/qmlnumberformatter_p.h | 92 ++++ src/declarative/extra/qmlxmllistmodel.cpp | 2 +- src/declarative/extra/qmlxmllistmodel.h | 134 ----- src/declarative/extra/qmlxmllistmodel_p.h | 134 +++++ src/declarative/extra/qnumberformat.cpp | 2 +- src/declarative/extra/qnumberformat.h | 173 ------- src/declarative/extra/qnumberformat_p.h | 173 +++++++ src/declarative/fx/fx.pri | 60 +-- src/declarative/fx/qmlgraphicsanchors.cpp | 6 +- src/declarative/fx/qmlgraphicsanchors.h | 180 ------- src/declarative/fx/qmlgraphicsanchors_p.h | 234 +++++---- src/declarative/fx/qmlgraphicsanchors_p_p.h | 160 ++++++ src/declarative/fx/qmlgraphicsborderimage.cpp | 2 +- src/declarative/fx/qmlgraphicsborderimage.h | 105 ---- src/declarative/fx/qmlgraphicsborderimage_p.h | 96 ++-- src/declarative/fx/qmlgraphicsborderimage_p_p.h | 97 ++++ src/declarative/fx/qmlgraphicsevents.cpp | 2 +- src/declarative/fx/qmlgraphicsevents_p.h | 137 ------ src/declarative/fx/qmlgraphicsevents_p_p.h | 137 ++++++ src/declarative/fx/qmlgraphicsflickable.cpp | 4 +- src/declarative/fx/qmlgraphicsflickable.h | 203 -------- src/declarative/fx/qmlgraphicsflickable_p.h | 245 ++++++---- src/declarative/fx/qmlgraphicsflickable_p_p.h | 156 ++++++ src/declarative/fx/qmlgraphicsflipable.cpp | 4 +- src/declarative/fx/qmlgraphicsflipable.h | 94 ---- src/declarative/fx/qmlgraphicsflipable_p.h | 94 ++++ src/declarative/fx/qmlgraphicsfocuspanel.cpp | 2 +- src/declarative/fx/qmlgraphicsfocuspanel.h | 77 --- src/declarative/fx/qmlgraphicsfocuspanel_p.h | 77 +++ src/declarative/fx/qmlgraphicsfocusscope.cpp | 2 +- src/declarative/fx/qmlgraphicsfocusscope.h | 68 --- src/declarative/fx/qmlgraphicsfocusscope_p.h | 68 +++ .../fx/qmlgraphicsgraphicsobjectcontainer.cpp | 6 +- .../fx/qmlgraphicsgraphicsobjectcontainer.h | 90 ---- .../fx/qmlgraphicsgraphicsobjectcontainer_p.h | 90 ++++ src/declarative/fx/qmlgraphicsgridview.cpp | 12 +- src/declarative/fx/qmlgraphicsgridview.h | 157 ------ src/declarative/fx/qmlgraphicsgridview_p.h | 157 ++++++ src/declarative/fx/qmlgraphicsimage.cpp | 2 +- src/declarative/fx/qmlgraphicsimage.h | 90 ---- src/declarative/fx/qmlgraphicsimage_p.h | 57 ++- src/declarative/fx/qmlgraphicsimage_p_p.h | 77 +++ src/declarative/fx/qmlgraphicsimagebase.cpp | 4 +- src/declarative/fx/qmlgraphicsimagebase.h | 90 ---- src/declarative/fx/qmlgraphicsimagebase_p.h | 67 +-- src/declarative/fx/qmlgraphicsimagebase_p_p.h | 83 ++++ src/declarative/fx/qmlgraphicsitem.cpp | 17 +- src/declarative/fx/qmlgraphicsitem_p.h | 6 +- src/declarative/fx/qmlgraphicslayoutitem.cpp | 2 +- src/declarative/fx/qmlgraphicslayoutitem.h | 93 ---- src/declarative/fx/qmlgraphicslayoutitem_p.h | 93 ++++ src/declarative/fx/qmlgraphicslistview.cpp | 13 +- src/declarative/fx/qmlgraphicslistview.h | 186 ------- src/declarative/fx/qmlgraphicslistview_p.h | 186 +++++++ src/declarative/fx/qmlgraphicsloader.cpp | 6 +- src/declarative/fx/qmlgraphicsloader.h | 107 ---- src/declarative/fx/qmlgraphicsloader_p.h | 83 ++-- src/declarative/fx/qmlgraphicsloader_p_p.h | 82 ++++ src/declarative/fx/qmlgraphicsmouseregion.cpp | 4 +- src/declarative/fx/qmlgraphicsmouseregion.h | 180 ------- src/declarative/fx/qmlgraphicsmouseregion_p.h | 192 +++++--- src/declarative/fx/qmlgraphicsmouseregion_p_p.h | 114 +++++ src/declarative/fx/qmlgraphicspainteditem.cpp | 2 +- src/declarative/fx/qmlgraphicspainteditem.h | 105 ---- src/declarative/fx/qmlgraphicspainteditem_p.h | 91 ++-- src/declarative/fx/qmlgraphicspainteditem_p_p.h | 88 ++++ src/declarative/fx/qmlgraphicspath.cpp | 4 +- src/declarative/fx/qmlgraphicspath.h | 259 ---------- src/declarative/fx/qmlgraphicspath_p.h | 234 +++++++-- src/declarative/fx/qmlgraphicspath_p_p.h | 79 +++ src/declarative/fx/qmlgraphicspathview.cpp | 12 +- src/declarative/fx/qmlgraphicspathview.h | 138 ------ src/declarative/fx/qmlgraphicspathview_p.h | 183 ++++--- src/declarative/fx/qmlgraphicspathview_p_p.h | 151 ++++++ src/declarative/fx/qmlgraphicspixmapcache.cpp | 4 +- src/declarative/fx/qmlgraphicspixmapcache.h | 72 --- src/declarative/fx/qmlgraphicspixmapcache_p.h | 72 +++ src/declarative/fx/qmlgraphicspositioners.cpp | 12 +- src/declarative/fx/qmlgraphicspositioners.h | 167 ------- src/declarative/fx/qmlgraphicspositioners_p.h | 168 +++++-- src/declarative/fx/qmlgraphicspositioners_p_p.h | 105 ++++ src/declarative/fx/qmlgraphicsrect.cpp | 2 +- src/declarative/fx/qmlgraphicsrect.h | 189 -------- src/declarative/fx/qmlgraphicsrect_p.h | 196 +++++--- src/declarative/fx/qmlgraphicsrect_p_p.h | 109 +++++ src/declarative/fx/qmlgraphicsrepeater.cpp | 8 +- src/declarative/fx/qmlgraphicsrepeater.h | 103 ---- src/declarative/fx/qmlgraphicsrepeater_p.h | 76 +-- src/declarative/fx/qmlgraphicsrepeater_p_p.h | 81 ++++ src/declarative/fx/qmlgraphicsscalegrid.cpp | 2 +- src/declarative/fx/qmlgraphicsscalegrid_p.h | 133 ----- src/declarative/fx/qmlgraphicsscalegrid_p_p.h | 133 +++++ src/declarative/fx/qmlgraphicstext.cpp | 4 +- src/declarative/fx/qmlgraphicstext.h | 151 ------ src/declarative/fx/qmlgraphicstext_p.h | 164 ++++--- src/declarative/fx/qmlgraphicstext_p_p.h | 113 +++++ src/declarative/fx/qmlgraphicstextedit.cpp | 6 +- src/declarative/fx/qmlgraphicstextedit.h | 234 --------- src/declarative/fx/qmlgraphicstextedit_p.h | 241 ++++++--- src/declarative/fx/qmlgraphicstextedit_p_p.h | 113 +++++ src/declarative/fx/qmlgraphicstextinput.cpp | 2 +- src/declarative/fx/qmlgraphicstextinput.h | 209 -------- src/declarative/fx/qmlgraphicstextinput_p.h | 212 +++++--- src/declarative/fx/qmlgraphicstextinput_p_p.h | 109 +++++ src/declarative/fx/qmlgraphicsvisualitemmodel.cpp | 13 +- src/declarative/fx/qmlgraphicsvisualitemmodel.h | 203 -------- src/declarative/fx/qmlgraphicsvisualitemmodel_p.h | 203 ++++++++ src/declarative/fx/qmlgraphicswebview.cpp | 10 +- src/declarative/fx/qmlgraphicswebview.h | 251 ---------- src/declarative/fx/qmlgraphicswebview_p.h | 251 ++++++++++ src/declarative/qml/qmlbasicscript.cpp | 2 +- src/declarative/qml/qmlbinding.cpp | 2 +- src/declarative/qml/qmlcompiler.cpp | 2 +- src/declarative/qml/qmlcomponent.cpp | 2 +- src/declarative/qml/qmlengine.cpp | 2 +- src/declarative/qml/qmlenginedebug_p.h | 2 +- src/declarative/qml/qmlmetaproperty.cpp | 2 +- src/declarative/qml/qmlparser.cpp | 2 +- src/declarative/qml/qmlscriptparser.cpp | 2 +- src/declarative/qml/qmlvme.cpp | 2 +- src/declarative/qml/qmlwatcher.cpp | 2 +- src/declarative/util/qfxperf.cpp | 2 +- src/declarative/util/qfxperf_p.h | 90 ---- src/declarative/util/qfxperf_p_p.h | 90 ++++ src/declarative/util/qmlanimation.cpp | 8 +- src/declarative/util/qmlanimation.h | 407 ---------------- src/declarative/util/qmlanimation_p.h | 539 +++++++++++---------- src/declarative/util/qmlanimation_p_p.h | 362 ++++++++++++++ src/declarative/util/qmlbind.cpp | 4 +- src/declarative/util/qmlbind.h | 92 ---- src/declarative/util/qmlbind_p.h | 92 ++++ src/declarative/util/qmlconnection.cpp | 2 +- src/declarative/util/qmlconnection.h | 92 ---- src/declarative/util/qmlconnection_p.h | 92 ++++ src/declarative/util/qmleasefollow.cpp | 4 +- src/declarative/util/qmleasefollow.h | 113 ----- src/declarative/util/qmleasefollow_p.h | 113 +++++ src/declarative/util/qmllistaccessor.cpp | 2 +- src/declarative/util/qmllistaccessor.h | 85 ---- src/declarative/util/qmllistaccessor_p.h | 85 ++++ src/declarative/util/qmllistmodel.cpp | 4 +- src/declarative/util/qmllistmodel.h | 103 ---- src/declarative/util/qmllistmodel_p.h | 103 ++++ src/declarative/util/qmlnullablevalue_p.h | 81 ---- src/declarative/util/qmlnullablevalue_p_p.h | 81 ++++ src/declarative/util/qmlopenmetaobject.cpp | 2 +- src/declarative/util/qmlopenmetaobject.h | 91 ---- src/declarative/util/qmlopenmetaobject_p.h | 91 ++++ src/declarative/util/qmlpackage.cpp | 2 +- src/declarative/util/qmlpackage.h | 88 ---- src/declarative/util/qmlpackage_p.h | 88 ++++ src/declarative/util/qmlpropertychanges.cpp | 4 +- src/declarative/util/qmlpropertychanges.h | 84 ---- src/declarative/util/qmlpropertychanges_p.h | 84 ++++ src/declarative/util/qmlpropertymap.cpp | 4 +- src/declarative/util/qmlpropertymap.h | 91 ---- src/declarative/util/qmlpropertymap_p.h | 91 ++++ src/declarative/util/qmlspringfollow.cpp | 4 +- src/declarative/util/qmlspringfollow.h | 113 ----- src/declarative/util/qmlspringfollow_p.h | 113 +++++ src/declarative/util/qmlstate.cpp | 12 +- src/declarative/util/qmlstate.h | 174 ------- src/declarative/util/qmlstate_p.h | 167 ++++--- src/declarative/util/qmlstate_p_p.h | 121 +++++ src/declarative/util/qmlstategroup.cpp | 4 +- src/declarative/util/qmlstategroup.h | 94 ---- src/declarative/util/qmlstategroup_p.h | 94 ++++ src/declarative/util/qmlstateoperations.cpp | 10 +- src/declarative/util/qmlstateoperations.h | 177 ------- src/declarative/util/qmlstateoperations_p.h | 177 +++++++ src/declarative/util/qmlsystempalette.cpp | 2 +- src/declarative/util/qmlsystempalette.h | 122 ----- src/declarative/util/qmlsystempalette_p.h | 122 +++++ src/declarative/util/qmltimeline.cpp | 2 +- src/declarative/util/qmltimeline_p.h | 224 --------- src/declarative/util/qmltimeline_p_p.h | 224 +++++++++ src/declarative/util/qmltimer.cpp | 2 +- src/declarative/util/qmltimer.h | 108 ----- src/declarative/util/qmltimer_p.h | 108 +++++ src/declarative/util/qmltransition.cpp | 10 +- src/declarative/util/qmltransition.h | 99 ---- src/declarative/util/qmltransition_p.h | 99 ++++ src/declarative/util/qmltransitionmanager.cpp | 4 +- src/declarative/util/qmltransitionmanager_p.h | 85 ---- src/declarative/util/qmltransitionmanager_p_p.h | 85 ++++ src/declarative/util/qmlview.cpp | 8 +- src/declarative/util/qperformancelog.cpp | 2 +- src/declarative/util/qperformancelog_p.h | 141 ------ src/declarative/util/qperformancelog_p_p.h | 141 ++++++ src/declarative/util/util.pri | 44 +- src/declarative/widgets/graphicslayouts.cpp | 2 +- src/declarative/widgets/graphicslayouts.h | 193 -------- src/declarative/widgets/graphicslayouts_p.h | 193 ++++++++ src/declarative/widgets/graphicswidgets.cpp | 2 +- src/declarative/widgets/graphicswidgets.h | 62 --- src/declarative/widgets/graphicswidgets_p.h | 62 +++ src/declarative/widgets/widgets.pri | 4 +- tests/auto/declarative/anchors/tst_anchors.cpp | 4 +- .../animatedimage/tst_animatedimage.cpp | 6 +- .../auto/declarative/animations/tst_animations.cpp | 2 +- tests/auto/declarative/behaviors/tst_behaviors.cpp | 2 +- .../datetimeformatter/tst_datetimeformatter.cpp | 2 +- tests/auto/declarative/layouts/tst_layouts.cpp | 4 +- tests/auto/declarative/listview/tst_listview.cpp | 6 +- .../numberformatter/tst_numberformatter.cpp | 4 +- tests/auto/declarative/pathview/tst_pathview.cpp | 8 +- tests/auto/declarative/qfxloader/tst_qfxloader.cpp | 2 +- .../qfxpixmapcache/tst_qfxpixmapcache.cpp | 2 +- tests/auto/declarative/qfxtext/tst_qfxtext.cpp | 2 +- .../declarative/qfxtextedit/tst_qfxtextedit.cpp | 2 +- .../auto/declarative/qfxwebview/tst_qfxwebview.cpp | 2 +- .../qmllistaccessor/tst_qmllistaccessor.cpp | 2 +- .../qmlpropertymap/tst_qmlpropertymap.cpp | 4 +- tests/auto/declarative/qmltimer/tst_qmltimer.cpp | 2 +- tests/auto/declarative/repeater/tst_repeater.cpp | 6 +- tests/auto/declarative/sql/tst_sql.cpp | 2 +- tests/auto/declarative/states/tst_states.cpp | 2 +- .../qmldebugger/creatorplugin/qmlinspectormode.cpp | 4 +- .../creatorplugin/qmlinspectorplugin.cpp | 4 +- tools/qmldebugger/standalone/canvasframerate.cpp | 2 +- tools/qmldebugger/standalone/canvasframerate.h | 2 +- tools/qmldebugger/standalone/engine.cpp | 4 +- tools/qmldebugger/standalone/engine.h | 2 +- .../qmldebugger/standalone/expressionquerywidget.h | 2 +- .../standalone/objectpropertiesview.cpp | 6 +- .../qmldebugger/standalone/objectpropertiesview.h | 2 +- tools/qmldebugger/standalone/objecttree.cpp | 6 +- tools/qmldebugger/standalone/qmldebugger.h | 2 +- tools/qmldebugger/standalone/watchtable.cpp | 2 +- tools/qmlviewer/qmlviewer.cpp | 2 +- 272 files changed, 10468 insertions(+), 10467 deletions(-) delete mode 100644 src/declarative/3rdparty/qlistmodelinterface.h create mode 100644 src/declarative/3rdparty/qlistmodelinterface_p.h delete mode 100644 src/declarative/debugger/qmldebug.h create mode 100644 src/declarative/debugger/qmldebug_p.h delete mode 100644 src/declarative/debugger/qmldebugclient.h create mode 100644 src/declarative/debugger/qmldebugclient_p.h delete mode 100644 src/declarative/debugger/qmldebuggerstatus.h create mode 100644 src/declarative/debugger/qmldebuggerstatus_p.h delete mode 100644 src/declarative/debugger/qmldebugservice.h create mode 100644 src/declarative/debugger/qmldebugservice_p.h delete mode 100644 src/declarative/debugger/qpacketprotocol.h create mode 100644 src/declarative/debugger/qpacketprotocol_p.h delete mode 100644 src/declarative/extra/qmlbehavior.h create mode 100644 src/declarative/extra/qmlbehavior_p.h delete mode 100644 src/declarative/extra/qmldatetimeformatter.h create mode 100644 src/declarative/extra/qmldatetimeformatter_p.h delete mode 100644 src/declarative/extra/qmlfontloader.h create mode 100644 src/declarative/extra/qmlfontloader_p.h delete mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem.h create mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h delete mode 100644 src/declarative/extra/qmlgraphicsintegermodel.h create mode 100644 src/declarative/extra/qmlgraphicsintegermodel_p.h delete mode 100644 src/declarative/extra/qmlgraphicsparticles.h create mode 100644 src/declarative/extra/qmlgraphicsparticles_p.h delete mode 100644 src/declarative/extra/qmlnumberformatter.h create mode 100644 src/declarative/extra/qmlnumberformatter_p.h delete mode 100644 src/declarative/extra/qmlxmllistmodel.h create mode 100644 src/declarative/extra/qmlxmllistmodel_p.h delete mode 100644 src/declarative/extra/qnumberformat.h create mode 100644 src/declarative/extra/qnumberformat_p.h delete mode 100644 src/declarative/fx/qmlgraphicsanchors.h create mode 100644 src/declarative/fx/qmlgraphicsanchors_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsborderimage.h create mode 100644 src/declarative/fx/qmlgraphicsborderimage_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsevents_p.h create mode 100644 src/declarative/fx/qmlgraphicsevents_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsflickable.h create mode 100644 src/declarative/fx/qmlgraphicsflickable_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsflipable.h create mode 100644 src/declarative/fx/qmlgraphicsflipable_p.h delete mode 100644 src/declarative/fx/qmlgraphicsfocuspanel.h create mode 100644 src/declarative/fx/qmlgraphicsfocuspanel_p.h delete mode 100644 src/declarative/fx/qmlgraphicsfocusscope.h create mode 100644 src/declarative/fx/qmlgraphicsfocusscope_p.h delete mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h create mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h delete mode 100644 src/declarative/fx/qmlgraphicsgridview.h create mode 100644 src/declarative/fx/qmlgraphicsgridview_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimage.h create mode 100644 src/declarative/fx/qmlgraphicsimage_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimagebase.h create mode 100644 src/declarative/fx/qmlgraphicsimagebase_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicslayoutitem.h create mode 100644 src/declarative/fx/qmlgraphicslayoutitem_p.h delete mode 100644 src/declarative/fx/qmlgraphicslistview.h create mode 100644 src/declarative/fx/qmlgraphicslistview_p.h delete mode 100644 src/declarative/fx/qmlgraphicsloader.h create mode 100644 src/declarative/fx/qmlgraphicsloader_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsmouseregion.h create mode 100644 src/declarative/fx/qmlgraphicsmouseregion_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspainteditem.h create mode 100644 src/declarative/fx/qmlgraphicspainteditem_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspath.h create mode 100644 src/declarative/fx/qmlgraphicspath_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspathview.h create mode 100644 src/declarative/fx/qmlgraphicspathview_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspixmapcache.h create mode 100644 src/declarative/fx/qmlgraphicspixmapcache_p.h delete mode 100644 src/declarative/fx/qmlgraphicspositioners.h create mode 100644 src/declarative/fx/qmlgraphicspositioners_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrect.h create mode 100644 src/declarative/fx/qmlgraphicsrect_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrepeater.h create mode 100644 src/declarative/fx/qmlgraphicsrepeater_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsscalegrid_p.h create mode 100644 src/declarative/fx/qmlgraphicsscalegrid_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstext.h create mode 100644 src/declarative/fx/qmlgraphicstext_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextedit.h create mode 100644 src/declarative/fx/qmlgraphicstextedit_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextinput.h create mode 100644 src/declarative/fx/qmlgraphicstextinput_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel.h create mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel_p.h delete mode 100644 src/declarative/fx/qmlgraphicswebview.h create mode 100644 src/declarative/fx/qmlgraphicswebview_p.h delete mode 100644 src/declarative/util/qfxperf_p.h create mode 100644 src/declarative/util/qfxperf_p_p.h delete mode 100644 src/declarative/util/qmlanimation.h create mode 100644 src/declarative/util/qmlanimation_p_p.h delete mode 100644 src/declarative/util/qmlbind.h create mode 100644 src/declarative/util/qmlbind_p.h delete mode 100644 src/declarative/util/qmlconnection.h create mode 100644 src/declarative/util/qmlconnection_p.h delete mode 100644 src/declarative/util/qmleasefollow.h create mode 100644 src/declarative/util/qmleasefollow_p.h delete mode 100644 src/declarative/util/qmllistaccessor.h create mode 100644 src/declarative/util/qmllistaccessor_p.h delete mode 100644 src/declarative/util/qmllistmodel.h create mode 100644 src/declarative/util/qmllistmodel_p.h delete mode 100644 src/declarative/util/qmlnullablevalue_p.h create mode 100644 src/declarative/util/qmlnullablevalue_p_p.h delete mode 100644 src/declarative/util/qmlopenmetaobject.h create mode 100644 src/declarative/util/qmlopenmetaobject_p.h delete mode 100644 src/declarative/util/qmlpackage.h create mode 100644 src/declarative/util/qmlpackage_p.h delete mode 100644 src/declarative/util/qmlpropertychanges.h create mode 100644 src/declarative/util/qmlpropertychanges_p.h delete mode 100644 src/declarative/util/qmlpropertymap.h create mode 100644 src/declarative/util/qmlpropertymap_p.h delete mode 100644 src/declarative/util/qmlspringfollow.h create mode 100644 src/declarative/util/qmlspringfollow_p.h delete mode 100644 src/declarative/util/qmlstate.h create mode 100644 src/declarative/util/qmlstate_p_p.h delete mode 100644 src/declarative/util/qmlstategroup.h create mode 100644 src/declarative/util/qmlstategroup_p.h delete mode 100644 src/declarative/util/qmlstateoperations.h create mode 100644 src/declarative/util/qmlstateoperations_p.h delete mode 100644 src/declarative/util/qmlsystempalette.h create mode 100644 src/declarative/util/qmlsystempalette_p.h delete mode 100644 src/declarative/util/qmltimeline_p.h create mode 100644 src/declarative/util/qmltimeline_p_p.h delete mode 100644 src/declarative/util/qmltimer.h create mode 100644 src/declarative/util/qmltimer_p.h delete mode 100644 src/declarative/util/qmltransition.h create mode 100644 src/declarative/util/qmltransition_p.h delete mode 100644 src/declarative/util/qmltransitionmanager_p.h create mode 100644 src/declarative/util/qmltransitionmanager_p_p.h delete mode 100644 src/declarative/util/qperformancelog_p.h create mode 100644 src/declarative/util/qperformancelog_p_p.h delete mode 100644 src/declarative/widgets/graphicslayouts.h create mode 100644 src/declarative/widgets/graphicslayouts_p.h delete mode 100644 src/declarative/widgets/graphicswidgets.h create mode 100644 src/declarative/widgets/graphicswidgets_p.h diff --git a/src/declarative/3rdparty/3rdparty.pri b/src/declarative/3rdparty/3rdparty.pri index fc78cb2..09cf0bb 100644 --- a/src/declarative/3rdparty/3rdparty.pri +++ b/src/declarative/3rdparty/3rdparty.pri @@ -1,5 +1,5 @@ HEADERS += \ - 3rdparty/qlistmodelinterface.h\ + 3rdparty/qlistmodelinterface_p.h\ SOURCES += \ 3rdparty/qlistmodelinterface.cpp \ diff --git a/src/declarative/3rdparty/qlistmodelinterface.cpp b/src/declarative/3rdparty/qlistmodelinterface.cpp index b47ed8b..cfd4cff 100644 --- a/src/declarative/3rdparty/qlistmodelinterface.cpp +++ b/src/declarative/3rdparty/qlistmodelinterface.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qlistmodelinterface.h" +#include "qlistmodelinterface_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/3rdparty/qlistmodelinterface.h b/src/declarative/3rdparty/qlistmodelinterface.h deleted file mode 100644 index 44c4a24..0000000 --- a/src/declarative/3rdparty/qlistmodelinterface.h +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QLISTMODELINTERFACE_H -#define QLISTMODELINTERFACE_H - -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QListModelInterface : public QObject -{ - Q_OBJECT - public: - QListModelInterface(QObject *parent = 0) : QObject(parent) {} - virtual ~QListModelInterface() {} - - virtual int count() const = 0; - virtual QHash data(int index, const QList& roles = QList()) const = 0; - virtual bool setData(int index, const QHash& values) - { Q_UNUSED(index); Q_UNUSED(values); return false; } - - virtual QList roles() const = 0; - virtual QString toString(int role) const = 0; - - Q_SIGNALS: - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void itemsChanged(int index, int count, const QList &roles); - - protected: - QListModelInterface(QObjectPrivate &dd, QObject *parent) - : QObject(dd, parent) {} -}; - - -QT_END_NAMESPACE - -QT_END_HEADER -#endif //QTREEMODELINTERFACE_H diff --git a/src/declarative/3rdparty/qlistmodelinterface_p.h b/src/declarative/3rdparty/qlistmodelinterface_p.h new file mode 100644 index 0000000..44c4a24 --- /dev/null +++ b/src/declarative/3rdparty/qlistmodelinterface_p.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QLISTMODELINTERFACE_H +#define QLISTMODELINTERFACE_H + +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QListModelInterface : public QObject +{ + Q_OBJECT + public: + QListModelInterface(QObject *parent = 0) : QObject(parent) {} + virtual ~QListModelInterface() {} + + virtual int count() const = 0; + virtual QHash data(int index, const QList& roles = QList()) const = 0; + virtual bool setData(int index, const QHash& values) + { Q_UNUSED(index); Q_UNUSED(values); return false; } + + virtual QList roles() const = 0; + virtual QString toString(int role) const = 0; + + Q_SIGNALS: + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void itemsChanged(int index, int count, const QList &roles); + + protected: + QListModelInterface(QObjectPrivate &dd, QObject *parent) + : QObject(dd, parent) {} +}; + + +QT_END_NAMESPACE + +QT_END_HEADER +#endif //QTREEMODELINTERFACE_H diff --git a/src/declarative/debugger/debugger.pri b/src/declarative/debugger/debugger.pri index 82746fc..6cffb28 100644 --- a/src/declarative/debugger/debugger.pri +++ b/src/declarative/debugger/debugger.pri @@ -4,8 +4,8 @@ SOURCES += debugger/qmldebuggerstatus.cpp \ debugger/qmldebugclient.cpp \ debugger/qmldebug.cpp -HEADERS += debugger/qmldebuggerstatus.h \ - debugger/qpacketprotocol.h \ - debugger/qmldebugservice.h \ - debugger/qmldebugclient.h \ - debugger/qmldebug.h +HEADERS += debugger/qmldebuggerstatus_p.h \ + debugger/qpacketprotocol_p.h \ + debugger/qmldebugservice_p.h \ + debugger/qmldebugclient_p.h \ + debugger/qmldebug_p.h diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index 5a8cda0..69a7326 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -1,5 +1,5 @@ -#include "qmldebug.h" -#include "qmldebugclient.h" +#include "qmldebug_p.h" +#include "qmldebugclient_p.h" #include #include diff --git a/src/declarative/debugger/qmldebug.h b/src/declarative/debugger/qmldebug.h deleted file mode 100644 index bd076ff..0000000 --- a/src/declarative/debugger/qmldebug.h +++ /dev/null @@ -1,314 +0,0 @@ -#ifndef QMLDEBUG_H -#define QMLDEBUG_H - -#include -#include -#include - -class QmlDebugConnection; -class QmlDebugWatch; -class QmlDebugPropertyWatch; -class QmlDebugObjectExpressionWatch; -class QmlDebugEnginesQuery; -class QmlDebugRootContextQuery; -class QmlDebugObjectQuery; -class QmlDebugExpressionQuery; -class QmlDebugPropertyReference; -class QmlDebugContextReference; -class QmlDebugObjectReference; -class QmlDebugFileReference; -class QmlDebugEngineReference; -class QmlEngineDebugPrivate; -class Q_DECLARATIVE_EXPORT QmlEngineDebug : public QObject -{ -Q_OBJECT -public: - QmlEngineDebug(QmlDebugConnection *, QObject * = 0); - - QmlDebugPropertyWatch *addWatch(const QmlDebugPropertyReference &, - QObject *parent = 0); - QmlDebugWatch *addWatch(const QmlDebugContextReference &, const QString &, - QObject *parent = 0); - QmlDebugObjectExpressionWatch *addWatch(const QmlDebugObjectReference &, const QString &, - QObject *parent = 0); - QmlDebugWatch *addWatch(const QmlDebugObjectReference &, - QObject *parent = 0); - QmlDebugWatch *addWatch(const QmlDebugFileReference &, - QObject *parent = 0); - - void removeWatch(QmlDebugWatch *watch); - - QmlDebugEnginesQuery *queryAvailableEngines(QObject *parent = 0); - QmlDebugRootContextQuery *queryRootContexts(const QmlDebugEngineReference &, - QObject *parent = 0); - QmlDebugObjectQuery *queryObject(const QmlDebugObjectReference &, - QObject *parent = 0); - QmlDebugObjectQuery *queryObjectRecursive(const QmlDebugObjectReference &, - QObject *parent = 0); - QmlDebugExpressionQuery *queryExpressionResult(int objectDebugId, - const QString &expr, - QObject *parent = 0); - -private: - Q_DECLARE_PRIVATE(QmlEngineDebug) -}; - -class Q_DECLARATIVE_EXPORT QmlDebugWatch : public QObject -{ -Q_OBJECT -public: - enum State { Waiting, Active, Inactive, Dead }; - - QmlDebugWatch(QObject *); - - int queryId() const; - int objectDebugId() const; - State state() const; - -signals: - void stateChanged(State); - //void objectChanged(int, const QmlDebugObjectReference &); - //void valueChanged(int, const QVariant &); - - // Server sends value as string if it is a user-type variant - void valueChanged(const QByteArray &name, const QVariant &value); - -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - void setState(State); - State m_state; - int m_queryId; - int m_objectDebugId; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugPropertyWatch : public QmlDebugWatch -{ - Q_OBJECT -public: - QmlDebugPropertyWatch(QObject *parent); - - QString name() const; - -private: - friend class QmlEngineDebug; - QString m_name; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugObjectExpressionWatch : public QmlDebugWatch -{ - Q_OBJECT -public: - QmlDebugObjectExpressionWatch(QObject *parent); - - QString expression() const; - -private: - friend class QmlEngineDebug; - QString m_expr; - int m_debugId; -}; - - -class Q_DECLARATIVE_EXPORT QmlDebugQuery : public QObject -{ -Q_OBJECT -public: - enum State { Waiting, Error, Completed }; - - State state() const; - bool isWaiting() const; - -// bool waitUntilCompleted(); - -signals: - void stateChanged(State); - -protected: - QmlDebugQuery(QObject *); - -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - void setState(State); - State m_state; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugFileReference -{ -public: - QmlDebugFileReference(); - QmlDebugFileReference(const QmlDebugFileReference &); - QmlDebugFileReference &operator=(const QmlDebugFileReference &); - - QUrl url() const; - void setUrl(const QUrl &); - int lineNumber() const; - void setLineNumber(int); - int columnNumber() const; - void setColumnNumber(int); - -private: - friend class QmlEngineDebugPrivate; - QUrl m_url; - int m_lineNumber; - int m_columnNumber; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugEngineReference -{ -public: - QmlDebugEngineReference(); - QmlDebugEngineReference(int); - QmlDebugEngineReference(const QmlDebugEngineReference &); - QmlDebugEngineReference &operator=(const QmlDebugEngineReference &); - - int debugId() const; - QString name() const; - -private: - friend class QmlEngineDebugPrivate; - int m_debugId; - QString m_name; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugObjectReference -{ -public: - QmlDebugObjectReference(); - QmlDebugObjectReference(int); - QmlDebugObjectReference(const QmlDebugObjectReference &); - QmlDebugObjectReference &operator=(const QmlDebugObjectReference &); - - int debugId() const; - QString className() const; - QString name() const; - - QmlDebugFileReference source() const; - int contextDebugId() const; - - QList properties() const; - QList children() const; - -private: - friend class QmlEngineDebugPrivate; - int m_debugId; - QString m_class; - QString m_name; - QmlDebugFileReference m_source; - int m_contextDebugId; - QList m_properties; - QList m_children; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugContextReference -{ -public: - QmlDebugContextReference(); - QmlDebugContextReference(const QmlDebugContextReference &); - QmlDebugContextReference &operator=(const QmlDebugContextReference &); - - int debugId() const; - QString name() const; - - QList objects() const; - QList contexts() const; - -private: - friend class QmlEngineDebugPrivate; - int m_debugId; - QString m_name; - QList m_objects; - QList m_contexts; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugPropertyReference -{ -public: - QmlDebugPropertyReference(); - QmlDebugPropertyReference(const QmlDebugPropertyReference &); - QmlDebugPropertyReference &operator=(const QmlDebugPropertyReference &); - - int objectDebugId() const; - QString name() const; - QVariant value() const; - QString valueTypeName() const; - QString binding() const; - bool hasNotifySignal() const; - -private: - friend class QmlEngineDebugPrivate; - int m_objectDebugId; - QString m_name; - QVariant m_value; - QString m_valueTypeName; - QString m_binding; - bool m_hasNotifySignal; -}; - - -class Q_DECLARATIVE_EXPORT QmlDebugEnginesQuery : public QmlDebugQuery -{ -Q_OBJECT -public: - virtual ~QmlDebugEnginesQuery(); - QList engines() const; -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - QmlDebugEnginesQuery(QObject *); - QmlEngineDebug *m_client; - int m_queryId; - QList m_engines; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugRootContextQuery : public QmlDebugQuery -{ -Q_OBJECT -public: - virtual ~QmlDebugRootContextQuery(); - QmlDebugContextReference rootContext() const; -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - QmlDebugRootContextQuery(QObject *); - QmlEngineDebug *m_client; - int m_queryId; - QmlDebugContextReference m_context; -}; - -class Q_DECLARATIVE_EXPORT QmlDebugObjectQuery : public QmlDebugQuery -{ -Q_OBJECT -public: - virtual ~QmlDebugObjectQuery(); - QmlDebugObjectReference object() const; -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - QmlDebugObjectQuery(QObject *); - QmlEngineDebug *m_client; - int m_queryId; - QmlDebugObjectReference m_object; - -}; - -class Q_DECLARATIVE_EXPORT QmlDebugExpressionQuery : public QmlDebugQuery -{ -Q_OBJECT -public: - virtual ~QmlDebugExpressionQuery(); - QString expression() const; - QVariant result() const; -private: - friend class QmlEngineDebug; - friend class QmlEngineDebugPrivate; - QmlDebugExpressionQuery(QObject *); - QmlEngineDebug *m_client; - int m_queryId; - QString m_expr; - QVariant m_result; - -}; - -#endif // QMLDEBUG_H diff --git a/src/declarative/debugger/qmldebug_p.h b/src/declarative/debugger/qmldebug_p.h new file mode 100644 index 0000000..bd076ff --- /dev/null +++ b/src/declarative/debugger/qmldebug_p.h @@ -0,0 +1,314 @@ +#ifndef QMLDEBUG_H +#define QMLDEBUG_H + +#include +#include +#include + +class QmlDebugConnection; +class QmlDebugWatch; +class QmlDebugPropertyWatch; +class QmlDebugObjectExpressionWatch; +class QmlDebugEnginesQuery; +class QmlDebugRootContextQuery; +class QmlDebugObjectQuery; +class QmlDebugExpressionQuery; +class QmlDebugPropertyReference; +class QmlDebugContextReference; +class QmlDebugObjectReference; +class QmlDebugFileReference; +class QmlDebugEngineReference; +class QmlEngineDebugPrivate; +class Q_DECLARATIVE_EXPORT QmlEngineDebug : public QObject +{ +Q_OBJECT +public: + QmlEngineDebug(QmlDebugConnection *, QObject * = 0); + + QmlDebugPropertyWatch *addWatch(const QmlDebugPropertyReference &, + QObject *parent = 0); + QmlDebugWatch *addWatch(const QmlDebugContextReference &, const QString &, + QObject *parent = 0); + QmlDebugObjectExpressionWatch *addWatch(const QmlDebugObjectReference &, const QString &, + QObject *parent = 0); + QmlDebugWatch *addWatch(const QmlDebugObjectReference &, + QObject *parent = 0); + QmlDebugWatch *addWatch(const QmlDebugFileReference &, + QObject *parent = 0); + + void removeWatch(QmlDebugWatch *watch); + + QmlDebugEnginesQuery *queryAvailableEngines(QObject *parent = 0); + QmlDebugRootContextQuery *queryRootContexts(const QmlDebugEngineReference &, + QObject *parent = 0); + QmlDebugObjectQuery *queryObject(const QmlDebugObjectReference &, + QObject *parent = 0); + QmlDebugObjectQuery *queryObjectRecursive(const QmlDebugObjectReference &, + QObject *parent = 0); + QmlDebugExpressionQuery *queryExpressionResult(int objectDebugId, + const QString &expr, + QObject *parent = 0); + +private: + Q_DECLARE_PRIVATE(QmlEngineDebug) +}; + +class Q_DECLARATIVE_EXPORT QmlDebugWatch : public QObject +{ +Q_OBJECT +public: + enum State { Waiting, Active, Inactive, Dead }; + + QmlDebugWatch(QObject *); + + int queryId() const; + int objectDebugId() const; + State state() const; + +signals: + void stateChanged(State); + //void objectChanged(int, const QmlDebugObjectReference &); + //void valueChanged(int, const QVariant &); + + // Server sends value as string if it is a user-type variant + void valueChanged(const QByteArray &name, const QVariant &value); + +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + void setState(State); + State m_state; + int m_queryId; + int m_objectDebugId; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugPropertyWatch : public QmlDebugWatch +{ + Q_OBJECT +public: + QmlDebugPropertyWatch(QObject *parent); + + QString name() const; + +private: + friend class QmlEngineDebug; + QString m_name; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugObjectExpressionWatch : public QmlDebugWatch +{ + Q_OBJECT +public: + QmlDebugObjectExpressionWatch(QObject *parent); + + QString expression() const; + +private: + friend class QmlEngineDebug; + QString m_expr; + int m_debugId; +}; + + +class Q_DECLARATIVE_EXPORT QmlDebugQuery : public QObject +{ +Q_OBJECT +public: + enum State { Waiting, Error, Completed }; + + State state() const; + bool isWaiting() const; + +// bool waitUntilCompleted(); + +signals: + void stateChanged(State); + +protected: + QmlDebugQuery(QObject *); + +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + void setState(State); + State m_state; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugFileReference +{ +public: + QmlDebugFileReference(); + QmlDebugFileReference(const QmlDebugFileReference &); + QmlDebugFileReference &operator=(const QmlDebugFileReference &); + + QUrl url() const; + void setUrl(const QUrl &); + int lineNumber() const; + void setLineNumber(int); + int columnNumber() const; + void setColumnNumber(int); + +private: + friend class QmlEngineDebugPrivate; + QUrl m_url; + int m_lineNumber; + int m_columnNumber; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugEngineReference +{ +public: + QmlDebugEngineReference(); + QmlDebugEngineReference(int); + QmlDebugEngineReference(const QmlDebugEngineReference &); + QmlDebugEngineReference &operator=(const QmlDebugEngineReference &); + + int debugId() const; + QString name() const; + +private: + friend class QmlEngineDebugPrivate; + int m_debugId; + QString m_name; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugObjectReference +{ +public: + QmlDebugObjectReference(); + QmlDebugObjectReference(int); + QmlDebugObjectReference(const QmlDebugObjectReference &); + QmlDebugObjectReference &operator=(const QmlDebugObjectReference &); + + int debugId() const; + QString className() const; + QString name() const; + + QmlDebugFileReference source() const; + int contextDebugId() const; + + QList properties() const; + QList children() const; + +private: + friend class QmlEngineDebugPrivate; + int m_debugId; + QString m_class; + QString m_name; + QmlDebugFileReference m_source; + int m_contextDebugId; + QList m_properties; + QList m_children; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugContextReference +{ +public: + QmlDebugContextReference(); + QmlDebugContextReference(const QmlDebugContextReference &); + QmlDebugContextReference &operator=(const QmlDebugContextReference &); + + int debugId() const; + QString name() const; + + QList objects() const; + QList contexts() const; + +private: + friend class QmlEngineDebugPrivate; + int m_debugId; + QString m_name; + QList m_objects; + QList m_contexts; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugPropertyReference +{ +public: + QmlDebugPropertyReference(); + QmlDebugPropertyReference(const QmlDebugPropertyReference &); + QmlDebugPropertyReference &operator=(const QmlDebugPropertyReference &); + + int objectDebugId() const; + QString name() const; + QVariant value() const; + QString valueTypeName() const; + QString binding() const; + bool hasNotifySignal() const; + +private: + friend class QmlEngineDebugPrivate; + int m_objectDebugId; + QString m_name; + QVariant m_value; + QString m_valueTypeName; + QString m_binding; + bool m_hasNotifySignal; +}; + + +class Q_DECLARATIVE_EXPORT QmlDebugEnginesQuery : public QmlDebugQuery +{ +Q_OBJECT +public: + virtual ~QmlDebugEnginesQuery(); + QList engines() const; +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + QmlDebugEnginesQuery(QObject *); + QmlEngineDebug *m_client; + int m_queryId; + QList m_engines; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugRootContextQuery : public QmlDebugQuery +{ +Q_OBJECT +public: + virtual ~QmlDebugRootContextQuery(); + QmlDebugContextReference rootContext() const; +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + QmlDebugRootContextQuery(QObject *); + QmlEngineDebug *m_client; + int m_queryId; + QmlDebugContextReference m_context; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugObjectQuery : public QmlDebugQuery +{ +Q_OBJECT +public: + virtual ~QmlDebugObjectQuery(); + QmlDebugObjectReference object() const; +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + QmlDebugObjectQuery(QObject *); + QmlEngineDebug *m_client; + int m_queryId; + QmlDebugObjectReference m_object; + +}; + +class Q_DECLARATIVE_EXPORT QmlDebugExpressionQuery : public QmlDebugQuery +{ +Q_OBJECT +public: + virtual ~QmlDebugExpressionQuery(); + QString expression() const; + QVariant result() const; +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + QmlDebugExpressionQuery(QObject *); + QmlEngineDebug *m_client; + int m_queryId; + QString m_expr; + QVariant m_result; + +}; + +#endif // QMLDEBUG_H diff --git a/src/declarative/debugger/qmldebugclient.cpp b/src/declarative/debugger/qmldebugclient.cpp index 3171808..7264e14 100644 --- a/src/declarative/debugger/qmldebugclient.cpp +++ b/src/declarative/debugger/qmldebugclient.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "qmldebugclient.h" +#include "qmldebugclient_p.h" #include -#include +#include #include #include diff --git a/src/declarative/debugger/qmldebugclient.h b/src/declarative/debugger/qmldebugclient.h deleted file mode 100644 index 6397670..0000000 --- a/src/declarative/debugger/qmldebugclient.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLDEBUGCLIENT_H -#define QMLDEBUGCLIENT_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlDebugConnectionPrivate; -class Q_DECLARATIVE_EXPORT QmlDebugConnection : public QTcpSocket -{ - Q_OBJECT - Q_DISABLE_COPY(QmlDebugConnection) -public: - QmlDebugConnection(QObject * = 0); - - bool isConnected() const; -private: - QmlDebugConnectionPrivate *d; - friend class QmlDebugClient; - friend class QmlDebugClientPrivate; -}; - -class QmlDebugClientPrivate; -class Q_DECLARATIVE_EXPORT QmlDebugClient : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlDebugClient) - Q_DISABLE_COPY(QmlDebugClient) - -public: - QmlDebugClient(const QString &, QmlDebugConnection *parent); - - QString name() const; - - bool isEnabled() const; - void setEnabled(bool); - - bool isConnected() const; - - void sendMessage(const QByteArray &); - -protected: - virtual void messageReceived(const QByteArray &); - -private: - friend class QmlDebugConnection; - friend class QmlDebugConnectionPrivate; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLDEBUGCLIENT_H diff --git a/src/declarative/debugger/qmldebugclient_p.h b/src/declarative/debugger/qmldebugclient_p.h new file mode 100644 index 0000000..6397670 --- /dev/null +++ b/src/declarative/debugger/qmldebugclient_p.h @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLDEBUGCLIENT_H +#define QMLDEBUGCLIENT_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlDebugConnectionPrivate; +class Q_DECLARATIVE_EXPORT QmlDebugConnection : public QTcpSocket +{ + Q_OBJECT + Q_DISABLE_COPY(QmlDebugConnection) +public: + QmlDebugConnection(QObject * = 0); + + bool isConnected() const; +private: + QmlDebugConnectionPrivate *d; + friend class QmlDebugClient; + friend class QmlDebugClientPrivate; +}; + +class QmlDebugClientPrivate; +class Q_DECLARATIVE_EXPORT QmlDebugClient : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlDebugClient) + Q_DISABLE_COPY(QmlDebugClient) + +public: + QmlDebugClient(const QString &, QmlDebugConnection *parent); + + QString name() const; + + bool isEnabled() const; + void setEnabled(bool); + + bool isConnected() const; + + void sendMessage(const QByteArray &); + +protected: + virtual void messageReceived(const QByteArray &); + +private: + friend class QmlDebugConnection; + friend class QmlDebugConnectionPrivate; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLDEBUGCLIENT_H diff --git a/src/declarative/debugger/qmldebuggerstatus.cpp b/src/declarative/debugger/qmldebuggerstatus.cpp index d46a21d..d4404a5 100644 --- a/src/declarative/debugger/qmldebuggerstatus.cpp +++ b/src/declarative/debugger/qmldebuggerstatus.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmldebuggerstatus.h" +#include "qmldebuggerstatus_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/debugger/qmldebuggerstatus.h b/src/declarative/debugger/qmldebuggerstatus.h deleted file mode 100644 index a8480f4..0000000 --- a/src/declarative/debugger/qmldebuggerstatus.h +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLDEBUGGERSTATUS_P_H -#define QMLDEBUGGERSTATUS_P_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlDebuggerStatus -{ -public: - virtual ~QmlDebuggerStatus(); - - virtual void setSelectedState(bool); -}; -Q_DECLARE_INTERFACE(QmlDebuggerStatus, "com.trolltech.qml.QmlDebuggerStatus") - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QLMDEBUGGERSTATUS_P_H diff --git a/src/declarative/debugger/qmldebuggerstatus_p.h b/src/declarative/debugger/qmldebuggerstatus_p.h new file mode 100644 index 0000000..a8480f4 --- /dev/null +++ b/src/declarative/debugger/qmldebuggerstatus_p.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLDEBUGGERSTATUS_P_H +#define QMLDEBUGGERSTATUS_P_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlDebuggerStatus +{ +public: + virtual ~QmlDebuggerStatus(); + + virtual void setSelectedState(bool); +}; +Q_DECLARE_INTERFACE(QmlDebuggerStatus, "com.trolltech.qml.QmlDebuggerStatus") + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QLMDEBUGGERSTATUS_P_H diff --git a/src/declarative/debugger/qmldebugservice.cpp b/src/declarative/debugger/qmldebugservice.cpp index 6913def..241eee2 100644 --- a/src/declarative/debugger/qmldebugservice.cpp +++ b/src/declarative/debugger/qmldebugservice.cpp @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#include "qmldebugservice.h" +#include "qmldebugservice_p.h" #include #include #include #include -#include +#include #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/debugger/qmldebugservice.h b/src/declarative/debugger/qmldebugservice.h deleted file mode 100644 index 5d20ba0..0000000 --- a/src/declarative/debugger/qmldebugservice.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLDEBUGSERVICE_H -#define QMLDEBUGSERVICE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -class QmlDebugServicePrivate; -class Q_DECLARATIVE_EXPORT QmlDebugService : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlDebugService) - Q_DISABLE_COPY(QmlDebugService) -public: - QmlDebugService(const QString &, QObject *parent = 0); - - QString name() const; - - bool isEnabled() const; - - void sendMessage(const QByteArray &); - - static int idForObject(QObject *); - static QObject *objectForId(int); - - - static bool isDebuggingEnabled(); - static QString objectToString(QObject *obj); - - static void waitForClients(); - -protected: - virtual void enabledChanged(bool); - virtual void messageReceived(const QByteArray &); - -private: - friend class QmlDebugServer; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLDEBUGSERVICE_H - diff --git a/src/declarative/debugger/qmldebugservice_p.h b/src/declarative/debugger/qmldebugservice_p.h new file mode 100644 index 0000000..5d20ba0 --- /dev/null +++ b/src/declarative/debugger/qmldebugservice_p.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLDEBUGSERVICE_H +#define QMLDEBUGSERVICE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QmlDebugServicePrivate; +class Q_DECLARATIVE_EXPORT QmlDebugService : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlDebugService) + Q_DISABLE_COPY(QmlDebugService) +public: + QmlDebugService(const QString &, QObject *parent = 0); + + QString name() const; + + bool isEnabled() const; + + void sendMessage(const QByteArray &); + + static int idForObject(QObject *); + static QObject *objectForId(int); + + + static bool isDebuggingEnabled(); + static QString objectToString(QObject *obj); + + static void waitForClients(); + +protected: + virtual void enabledChanged(bool); + virtual void messageReceived(const QByteArray &); + +private: + friend class QmlDebugServer; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLDEBUGSERVICE_H + diff --git a/src/declarative/debugger/qpacketprotocol.cpp b/src/declarative/debugger/qpacketprotocol.cpp index 84882dd..604c8f6 100644 --- a/src/declarative/debugger/qpacketprotocol.cpp +++ b/src/declarative/debugger/qpacketprotocol.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qpacketprotocol.h" +#include "qpacketprotocol_p.h" #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/debugger/qpacketprotocol.h b/src/declarative/debugger/qpacketprotocol.h deleted file mode 100644 index f3fb44b..0000000 --- a/src/declarative/debugger/qpacketprotocol.h +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPACKETPROTOCOL_H -#define QPACKETPROTOCOL_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QIODevice; -class QBuffer; -class QPacket; -class QPacketAutoSend; -class QPacketProtocolPrivate; - -class Q_DECLARATIVE_EXPORT QPacketProtocol : public QObject -{ -Q_OBJECT -public: - explicit QPacketProtocol(QIODevice * dev, QObject * parent = 0); - virtual ~QPacketProtocol(); - - qint32 maximumPacketSize() const; - qint32 setMaximumPacketSize(qint32); - - QPacketAutoSend send(); - void send(const QPacket &); - - qint64 packetsAvailable() const; - QPacket read(); - - void clear(); - - QIODevice * device(); - -signals: - void readyRead(); - void invalidPacket(); - void packetWritten(); - -private: - QPacketProtocolPrivate * d; -}; - - -class Q_DECLARATIVE_EXPORT QPacket : public QDataStream -{ -public: - QPacket(); - QPacket(const QPacket &); - virtual ~QPacket(); - - void clear(); - bool isEmpty() const; - -protected: - friend class QPacketProtocol; - QPacket(const QByteArray & ba); - QByteArray b; - QBuffer * buf; -}; - -class Q_DECLARATIVE_EXPORT QPacketAutoSend : public QPacket -{ -public: - virtual ~QPacketAutoSend(); - -private: - friend class QPacketProtocol; - QPacketAutoSend(QPacketProtocol *); - QPacketProtocol * p; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif diff --git a/src/declarative/debugger/qpacketprotocol_p.h b/src/declarative/debugger/qpacketprotocol_p.h new file mode 100644 index 0000000..f3fb44b --- /dev/null +++ b/src/declarative/debugger/qpacketprotocol_p.h @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPACKETPROTOCOL_H +#define QPACKETPROTOCOL_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QIODevice; +class QBuffer; +class QPacket; +class QPacketAutoSend; +class QPacketProtocolPrivate; + +class Q_DECLARATIVE_EXPORT QPacketProtocol : public QObject +{ +Q_OBJECT +public: + explicit QPacketProtocol(QIODevice * dev, QObject * parent = 0); + virtual ~QPacketProtocol(); + + qint32 maximumPacketSize() const; + qint32 setMaximumPacketSize(qint32); + + QPacketAutoSend send(); + void send(const QPacket &); + + qint64 packetsAvailable() const; + QPacket read(); + + void clear(); + + QIODevice * device(); + +signals: + void readyRead(); + void invalidPacket(); + void packetWritten(); + +private: + QPacketProtocolPrivate * d; +}; + + +class Q_DECLARATIVE_EXPORT QPacket : public QDataStream +{ +public: + QPacket(); + QPacket(const QPacket &); + virtual ~QPacket(); + + void clear(); + bool isEmpty() const; + +protected: + friend class QPacketProtocol; + QPacket(const QByteArray & ba); + QByteArray b; + QBuffer * buf; +}; + +class Q_DECLARATIVE_EXPORT QPacketAutoSend : public QPacket +{ +public: + virtual ~QPacketAutoSend(); + +private: + friend class QPacketProtocol; + QPacketAutoSend(QPacketProtocol *); + QPacketProtocol * p; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri index 47cc8f8..9d0e760 100644 --- a/src/declarative/extra/extra.pri +++ b/src/declarative/extra/extra.pri @@ -9,19 +9,19 @@ SOURCES += \ extra/qmlfontloader.cpp HEADERS += \ - extra/qnumberformat.h \ - extra/qmlnumberformatter.h \ - extra/qmldatetimeformatter.h \ - extra/qmlgraphicsintegermodel.h \ - extra/qmlgraphicsanimatedimageitem.h \ + extra/qnumberformat_p.h \ + extra/qmlnumberformatter_p.h \ + extra/qmldatetimeformatter_p.h \ + extra/qmlgraphicsintegermodel_p.h \ extra/qmlgraphicsanimatedimageitem_p.h \ - extra/qmlgraphicsparticles.h \ - extra/qmlbehavior.h \ - extra/qmlfontloader.h + extra/qmlgraphicsanimatedimageitem_p_p.h \ + extra/qmlgraphicsparticles_p.h \ + extra/qmlbehavior_p.h \ + extra/qmlfontloader_p.h contains(QT_CONFIG, xmlpatterns) { QT+=xmlpatterns SOURCES += extra/qmlxmllistmodel.cpp - HEADERS += extra/qmlxmllistmodel.h + HEADERS += extra/qmlxmllistmodel_p.h } diff --git a/src/declarative/extra/qmlbehavior.cpp b/src/declarative/extra/qmlbehavior.cpp index 654cb4e..eac4220 100644 --- a/src/declarative/extra/qmlbehavior.cpp +++ b/src/declarative/extra/qmlbehavior.cpp @@ -40,9 +40,9 @@ ****************************************************************************/ #include -#include "qmlanimation.h" -#include "qmltransition.h" -#include "qmlbehavior.h" +#include +#include +#include "qmlbehavior_p.h" #include #include #include diff --git a/src/declarative/extra/qmlbehavior.h b/src/declarative/extra/qmlbehavior.h deleted file mode 100644 index 6508455..0000000 --- a/src/declarative/extra/qmlbehavior.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBEHAVIOR_H -#define QMLBEHAVIOR_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlAbstractAnimation; -class QmlBehaviorPrivate; -class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlBehavior) - - Q_INTERFACES(QmlPropertyValueInterceptor) - Q_CLASSINFO("DefaultProperty", "animation") - Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) - -public: - QmlBehavior(QObject *parent=0); - ~QmlBehavior(); - - virtual void setTarget(const QmlMetaProperty &); - virtual void write(const QVariant &value); - - QmlAbstractAnimation *animation(); - void setAnimation(QmlAbstractAnimation *); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlBehavior) - -QT_END_HEADER - -#endif // QMLBEHAVIOR_H diff --git a/src/declarative/extra/qmlbehavior_p.h b/src/declarative/extra/qmlbehavior_p.h new file mode 100644 index 0000000..0c8fdfd --- /dev/null +++ b/src/declarative/extra/qmlbehavior_p.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLBEHAVIOR_H +#define QMLBEHAVIOR_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlAbstractAnimation; +class QmlBehaviorPrivate; +class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlBehavior) + + Q_INTERFACES(QmlPropertyValueInterceptor) + Q_CLASSINFO("DefaultProperty", "animation") + Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) + +public: + QmlBehavior(QObject *parent=0); + ~QmlBehavior(); + + virtual void setTarget(const QmlMetaProperty &); + virtual void write(const QVariant &value); + + QmlAbstractAnimation *animation(); + void setAnimation(QmlAbstractAnimation *); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlBehavior) + +QT_END_HEADER + +#endif // QMLBEHAVIOR_H diff --git a/src/declarative/extra/qmldatetimeformatter.cpp b/src/declarative/extra/qmldatetimeformatter.cpp index 9b3d37a..8d5deff 100644 --- a/src/declarative/extra/qmldatetimeformatter.cpp +++ b/src/declarative/extra/qmldatetimeformatter.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmldatetimeformatter.h" +#include "qmldatetimeformatter_p.h" #include "private/qobject_p.h" #include diff --git a/src/declarative/extra/qmldatetimeformatter.h b/src/declarative/extra/qmldatetimeformatter.h deleted file mode 100644 index be0ae02..0000000 --- a/src/declarative/extra/qmldatetimeformatter.h +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLDATETIMEFORMATTER_H -#define QMLDATETIMEFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlDateTimeFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) - Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) - Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) - Q_PROPERTY(QDate date READ date WRITE setDate) - Q_PROPERTY(QTime time READ time WRITE setTime) - Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) - Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) - Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) - Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) - Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) -public: - QmlDateTimeFormatter(QObject *parent=0); - ~QmlDateTimeFormatter(); - - QString dateTimeText() const; - QString dateText() const; - QString timeText() const; - - QDate date() const; - void setDate(const QDate &); - - QTime time() const; - void setTime(const QTime &); - - QDateTime dateTime() const; - void setDateTime(const QDateTime &); - - QString dateTimeFormat() const; - void setDateTimeFormat(const QString &); - - QString dateFormat() const; - void setDateFormat(const QString &); - - QString timeFormat() const; - void setTimeFormat(const QString &); - - bool longStyle() const; - void setLongStyle(bool); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlDateTimeFormatter) - Q_DECLARE_PRIVATE(QmlDateTimeFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlDateTimeFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmldatetimeformatter_p.h b/src/declarative/extra/qmldatetimeformatter_p.h new file mode 100644 index 0000000..be0ae02 --- /dev/null +++ b/src/declarative/extra/qmldatetimeformatter_p.h @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLDATETIMEFORMATTER_H +#define QMLDATETIMEFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlDateTimeFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) + Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) + Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) + Q_PROPERTY(QDate date READ date WRITE setDate) + Q_PROPERTY(QTime time READ time WRITE setTime) + Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) + Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) + Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) + Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) + Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) +public: + QmlDateTimeFormatter(QObject *parent=0); + ~QmlDateTimeFormatter(); + + QString dateTimeText() const; + QString dateText() const; + QString timeText() const; + + QDate date() const; + void setDate(const QDate &); + + QTime time() const; + void setTime(const QTime &); + + QDateTime dateTime() const; + void setDateTime(const QDateTime &); + + QString dateTimeFormat() const; + void setDateTimeFormat(const QString &); + + QString dateFormat() const; + void setDateFormat(const QString &); + + QString timeFormat() const; + void setTimeFormat(const QString &); + + bool longStyle() const; + void setLongStyle(bool); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlDateTimeFormatter) + Q_DECLARE_PRIVATE(QmlDateTimeFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlDateTimeFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlfontloader.cpp b/src/declarative/extra/qmlfontloader.cpp index f9857f6..dffbc3f 100644 --- a/src/declarative/extra/qmlfontloader.cpp +++ b/src/declarative/extra/qmlfontloader.cpp @@ -40,7 +40,7 @@ ****************************************************************************/ #include "private/qobject_p.h" -#include "qmlfontloader.h" +#include "qmlfontloader_p.h" #include #include #include diff --git a/src/declarative/extra/qmlfontloader.h b/src/declarative/extra/qmlfontloader.h deleted file mode 100644 index c2c7a16..0000000 --- a/src/declarative/extra/qmlfontloader.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLFONTLOADER_H -#define QMLFONTLOADER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlFontLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlFontLoader) - Q_ENUMS(Status) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - -public: - enum Status { Null = 0, Ready, Loading, Error }; - - QmlFontLoader(QObject *parent = 0); - ~QmlFontLoader(); - - QUrl source() const; - void setSource(const QUrl &url); - - QString name() const; - void setName(const QString &name); - - Status status() const; - -private Q_SLOTS: - void replyFinished(); - -Q_SIGNALS: - void nameChanged(); - void statusChanged(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlFontLoader) - -QT_END_HEADER - -#endif // QMLFONTLOADER_H - diff --git a/src/declarative/extra/qmlfontloader_p.h b/src/declarative/extra/qmlfontloader_p.h new file mode 100644 index 0000000..c2c7a16 --- /dev/null +++ b/src/declarative/extra/qmlfontloader_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLFONTLOADER_H +#define QMLFONTLOADER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlFontLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlFontLoader) + Q_ENUMS(Status) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + +public: + enum Status { Null = 0, Ready, Loading, Error }; + + QmlFontLoader(QObject *parent = 0); + ~QmlFontLoader(); + + QUrl source() const; + void setSource(const QUrl &url); + + QString name() const; + void setName(const QString &name); + + Status status() const; + +private Q_SLOTS: + void replyFinished(); + +Q_SIGNALS: + void nameChanged(); + void statusChanged(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlFontLoader) + +QT_END_HEADER + +#endif // QMLFONTLOADER_H + diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp index c22e56d..b781e75 100644 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp @@ -42,8 +42,8 @@ #include #include #include -#include "qmlgraphicsanimatedimageitem.h" #include "qmlgraphicsanimatedimageitem_p.h" +#include "qmlgraphicsanimatedimageitem_p_p.h" #include #include diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.h b/src/declarative/extra/qmlgraphicsanimatedimageitem.h deleted file mode 100644 index c62a98e..0000000 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem.h +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSANIMATEDIMAGEITEM_H -#define QMLGRAPHICSANIMATEDIMAGEITEM_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QMovie; -class QmlGraphicsAnimatedImageItemPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage -{ - Q_OBJECT - - Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) - Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) - Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) - Q_PROPERTY(int frameCount READ frameCount) -public: - QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsAnimatedImageItem(); - - bool isPlaying() const; - void setPlaying(bool play); - - bool isPaused() const; - void setPaused(bool pause); - - int currentFrame() const; - void setCurrentFrame(int frame); - - int frameCount() const; - - // Extends QmlGraphicsImage's src property*/ - virtual void setSource(const QUrl&); - -Q_SIGNALS: - void playingChanged(); - void pausedChanged(); - void frameChanged(); - -private Q_SLOTS: - void movieUpdate(); - void movieRequestFinished(); - void playingStatusChanged(); - -protected: - QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h index 04f1b6e..b0b6f14 100644 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h @@ -39,43 +39,68 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSANIMATEDIMAGE_P_H -#define QMLGRAPHICSANIMATEDIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// +#ifndef QMLGRAPHICSANIMATEDIMAGEITEM_H +#define QMLGRAPHICSANIMATEDIMAGEITEM_H #include +QT_BEGIN_HEADER + QT_BEGIN_NAMESPACE +QT_MODULE(Declarative) + class QMovie; -class QNetworkReply; +class QmlGraphicsAnimatedImageItemPrivate; -class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate +class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage { - Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) + Q_OBJECT + Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) + Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) + Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) + Q_PROPERTY(int frameCount READ frameCount) public: - QmlGraphicsAnimatedImageItemPrivate() - : playing(true), paused(false), _movie(0), reply(0) - { - } - - bool playing; - bool paused; - QMovie *_movie; - QNetworkReply *reply; + QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsAnimatedImageItem(); + + bool isPlaying() const; + void setPlaying(bool play); + + bool isPaused() const; + void setPaused(bool pause); + + int currentFrame() const; + void setCurrentFrame(int frame); + + int frameCount() const; + + // Extends QmlGraphicsImage's src property*/ + virtual void setSource(const QUrl&); + +Q_SIGNALS: + void playingChanged(); + void pausedChanged(); + void frameChanged(); + +private Q_SLOTS: + void movieUpdate(); + void movieRequestFinished(); + void playingStatusChanged(); + +protected: + QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) }; QT_END_NAMESPACE -#endif // QMLGRAPHICSANIMATEDIMAGE_P_H +QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h new file mode 100644 index 0000000..b43175f --- /dev/null +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANIMATEDIMAGE_P_H +#define QMLGRAPHICSANIMATEDIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QMovie; +class QNetworkReply; + +class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) + +public: + QmlGraphicsAnimatedImageItemPrivate() + : playing(true), paused(false), _movie(0), reply(0) + { + } + + bool playing; + bool paused; + QMovie *_movie; + QNetworkReply *reply; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSANIMATEDIMAGE_P_H diff --git a/src/declarative/extra/qmlgraphicsintegermodel.cpp b/src/declarative/extra/qmlgraphicsintegermodel.cpp index e83b9c9..2bbb19d 100644 --- a/src/declarative/extra/qmlgraphicsintegermodel.cpp +++ b/src/declarative/extra/qmlgraphicsintegermodel.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsintegermodel.h" +#include "qmlgraphicsintegermodel_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/extra/qmlgraphicsintegermodel.h b/src/declarative/extra/qmlgraphicsintegermodel.h deleted file mode 100644 index 3cad05e..0000000 --- a/src/declarative/extra/qmlgraphicsintegermodel.h +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSINTMODEL_H -#define QMLGRAPHICSINTMODEL_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsIntegerModelPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsIntegerModel : public QListModelInterface -{ - Q_OBJECT -public: - QmlGraphicsIntegerModel(QObject *parent=0); - ~QmlGraphicsIntegerModel(); - - Q_PROPERTY(int minimum READ minimum WRITE setMinimum) - int minimum() const; - void setMinimum(int); - - Q_PROPERTY(int maximum READ maximum WRITE setMaximum) - int maximum() const; - void setMaximum(int); - - int count() const; - QHash data(int index, const QList &roles) const; - QList roles() const; - QString toString(int role) const; - -private: - QmlGraphicsIntegerModelPrivate *d; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsIntegerModel) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlgraphicsintegermodel_p.h b/src/declarative/extra/qmlgraphicsintegermodel_p.h new file mode 100644 index 0000000..706e478 --- /dev/null +++ b/src/declarative/extra/qmlgraphicsintegermodel_p.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSINTMODEL_H +#define QMLGRAPHICSINTMODEL_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsIntegerModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsIntegerModel : public QListModelInterface +{ + Q_OBJECT +public: + QmlGraphicsIntegerModel(QObject *parent=0); + ~QmlGraphicsIntegerModel(); + + Q_PROPERTY(int minimum READ minimum WRITE setMinimum) + int minimum() const; + void setMinimum(int); + + Q_PROPERTY(int maximum READ maximum WRITE setMaximum) + int maximum() const; + void setMaximum(int); + + int count() const; + QHash data(int index, const QList &roles) const; + QList roles() const; + QString toString(int role) const; + +private: + QmlGraphicsIntegerModelPrivate *d; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsIntegerModel) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlgraphicsparticles.cpp b/src/declarative/extra/qmlgraphicsparticles.cpp index dba3ac4..5a23126 100644 --- a/src/declarative/extra/qmlgraphicsparticles.cpp +++ b/src/declarative/extra/qmlgraphicsparticles.cpp @@ -50,12 +50,12 @@ #ifndef INT_MAX #define INT_MAX 2147483647 #endif -#include -#include -#include +#include +#include +#include #include -#include "qmlgraphicsparticles.h" +#include "qmlgraphicsparticles_p.h" #include #include #include diff --git a/src/declarative/extra/qmlgraphicsparticles.h b/src/declarative/extra/qmlgraphicsparticles.h deleted file mode 100644 index eed0d62..0000000 --- a/src/declarative/extra/qmlgraphicsparticles.h +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSPARTICLES_H -#define QMLGRAPHICSPARTICLES_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsParticle; -class QmlGraphicsParticles; -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotion : public QObject -{ - Q_OBJECT -public: - QmlGraphicsParticleMotion(QObject *parent=0); - - virtual void advance(QmlGraphicsParticle &, int interval); - virtual void created(QmlGraphicsParticle &); - virtual void destroy(QmlGraphicsParticle &); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionLinear : public QmlGraphicsParticleMotion -{ - Q_OBJECT -public: - QmlGraphicsParticleMotionLinear(QObject *parent=0) - : QmlGraphicsParticleMotion(parent) {} - - virtual void advance(QmlGraphicsParticle &, int interval); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionGravity : public QmlGraphicsParticleMotion -{ - Q_OBJECT - - Q_PROPERTY(int xattractor READ xAttractor WRITE setXAttractor) - Q_PROPERTY(int yattractor READ yAttractor WRITE setYAttractor) - Q_PROPERTY(int acceleration READ acceleration WRITE setAcceleration) -public: - QmlGraphicsParticleMotionGravity(QObject *parent=0) - : QmlGraphicsParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} - - int xAttractor() const { return _xAttr; } - void setXAttractor(int x) { _xAttr = x; } - - int yAttractor() const { return _yAttr; } - void setYAttractor(int y) { _yAttr = y; } - - int acceleration() const { return int(_accel * 1000000); } - void setAcceleration(int accel) { _accel = qreal(accel)/1000000.0; } - - virtual void advance(QmlGraphicsParticle &, int interval); - -private: - int _xAttr; - int _yAttr; - qreal _accel; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionWander : public QmlGraphicsParticleMotion -{ - Q_OBJECT -public: - QmlGraphicsParticleMotionWander() - : QmlGraphicsParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} - - virtual void advance(QmlGraphicsParticle &, int interval); - virtual void created(QmlGraphicsParticle &); - virtual void destroy(QmlGraphicsParticle &); - - struct Data { - qreal x_targetV; - qreal y_targetV; - qreal x_peak; - qreal y_peak; - qreal x_var; - qreal y_var; - }; - - Q_PROPERTY(int xvariance READ xVariance WRITE setXVariance) - int xVariance() const { return int(_xvariance * 1000); } - void setXVariance(int var) { _xvariance = var / 1000.0; } - - Q_PROPERTY(int yvariance READ yVariance WRITE setYVariance) - int yVariance() const { return int(_yvariance * 1000); } - void setYVariance(int var) { _yvariance = var / 1000.0; } - - Q_PROPERTY(int pace READ pace WRITE setPace) - int pace() const { return int(_pace * 1000); } - void setPace(int pace) { _pace = pace / 1000.0; } - -private: - QmlGraphicsParticles *particles; - qreal _xvariance; - qreal _yvariance; - qreal _pace; -}; - -class QmlGraphicsParticlesPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsParticles : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QUrl source READ source WRITE setSource) - Q_PROPERTY(int count READ count WRITE setCount) - Q_PROPERTY(int lifeSpan READ lifeSpan WRITE setLifeSpan) - Q_PROPERTY(int lifeSpanDeviation READ lifeSpanDeviation WRITE setLifeSpanDeviation) - Q_PROPERTY(int fadeInDuration READ fadeInDuration WRITE setFadeInDuration) - Q_PROPERTY(int fadeOutDuration READ fadeOutDuration WRITE setFadeOutDuration) - Q_PROPERTY(qreal angle READ angle WRITE setAngle) - Q_PROPERTY(qreal angleDeviation READ angleDeviation WRITE setAngleDeviation) - Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) - Q_PROPERTY(qreal velocityDeviation READ velocityDeviation WRITE setVelocityDeviation) - Q_PROPERTY(bool streamIn READ streamIn WRITE setStreamIn) - Q_PROPERTY(bool emitting READ emitting WRITE setEmitting) - Q_PROPERTY(QmlGraphicsParticleMotion *motion READ motion WRITE setMotion) - Q_CLASSINFO("DefaultProperty", "motion") - -public: - QmlGraphicsParticles(QmlGraphicsItem *parent=0); - ~QmlGraphicsParticles(); - - QUrl source() const; - void setSource(const QUrl &); - - int count() const; - void setCount(int cnt); - - int lifeSpan() const; - void setLifeSpan(int); - - int lifeSpanDeviation() const; - void setLifeSpanDeviation(int); - - int fadeInDuration() const; - void setFadeInDuration(int); - - int fadeOutDuration() const; - void setFadeOutDuration(int); - - qreal angle() const; - void setAngle(qreal); - - qreal angleDeviation() const; - void setAngleDeviation(qreal); - - qreal velocity() const; - void setVelocity(qreal); - - qreal velocityDeviation() const; - void setVelocityDeviation(qreal); - - bool streamIn() const; - void setStreamIn(bool); - - bool emitting() const; - void setEmitting(bool); - - QmlGraphicsParticleMotion *motion() const; - void setMotion(QmlGraphicsParticleMotion *); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -protected: - virtual void componentComplete(); - QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - void imageLoaded(); - -private: - Q_DISABLE_COPY(QmlGraphicsParticles) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsParticles) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsParticleMotion) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionLinear) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionGravity) -QML_DECLARE_TYPE(QmlGraphicsParticleMotionWander) -QML_DECLARE_TYPE(QmlGraphicsParticles) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlgraphicsparticles_p.h b/src/declarative/extra/qmlgraphicsparticles_p.h new file mode 100644 index 0000000..eed0d62 --- /dev/null +++ b/src/declarative/extra/qmlgraphicsparticles_p.h @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPARTICLES_H +#define QMLGRAPHICSPARTICLES_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsParticle; +class QmlGraphicsParticles; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotion : public QObject +{ + Q_OBJECT +public: + QmlGraphicsParticleMotion(QObject *parent=0); + + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionLinear : public QmlGraphicsParticleMotion +{ + Q_OBJECT +public: + QmlGraphicsParticleMotionLinear(QObject *parent=0) + : QmlGraphicsParticleMotion(parent) {} + + virtual void advance(QmlGraphicsParticle &, int interval); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionGravity : public QmlGraphicsParticleMotion +{ + Q_OBJECT + + Q_PROPERTY(int xattractor READ xAttractor WRITE setXAttractor) + Q_PROPERTY(int yattractor READ yAttractor WRITE setYAttractor) + Q_PROPERTY(int acceleration READ acceleration WRITE setAcceleration) +public: + QmlGraphicsParticleMotionGravity(QObject *parent=0) + : QmlGraphicsParticleMotion(parent), _xAttr(0), _yAttr(0), _accel(0.00005) {} + + int xAttractor() const { return _xAttr; } + void setXAttractor(int x) { _xAttr = x; } + + int yAttractor() const { return _yAttr; } + void setYAttractor(int y) { _yAttr = y; } + + int acceleration() const { return int(_accel * 1000000); } + void setAcceleration(int accel) { _accel = qreal(accel)/1000000.0; } + + virtual void advance(QmlGraphicsParticle &, int interval); + +private: + int _xAttr; + int _yAttr; + qreal _accel; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsParticleMotionWander : public QmlGraphicsParticleMotion +{ + Q_OBJECT +public: + QmlGraphicsParticleMotionWander() + : QmlGraphicsParticleMotion(), particles(0), _xvariance(0), _yvariance(0) {} + + virtual void advance(QmlGraphicsParticle &, int interval); + virtual void created(QmlGraphicsParticle &); + virtual void destroy(QmlGraphicsParticle &); + + struct Data { + qreal x_targetV; + qreal y_targetV; + qreal x_peak; + qreal y_peak; + qreal x_var; + qreal y_var; + }; + + Q_PROPERTY(int xvariance READ xVariance WRITE setXVariance) + int xVariance() const { return int(_xvariance * 1000); } + void setXVariance(int var) { _xvariance = var / 1000.0; } + + Q_PROPERTY(int yvariance READ yVariance WRITE setYVariance) + int yVariance() const { return int(_yvariance * 1000); } + void setYVariance(int var) { _yvariance = var / 1000.0; } + + Q_PROPERTY(int pace READ pace WRITE setPace) + int pace() const { return int(_pace * 1000); } + void setPace(int pace) { _pace = pace / 1000.0; } + +private: + QmlGraphicsParticles *particles; + qreal _xvariance; + qreal _yvariance; + qreal _pace; +}; + +class QmlGraphicsParticlesPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsParticles : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QUrl source READ source WRITE setSource) + Q_PROPERTY(int count READ count WRITE setCount) + Q_PROPERTY(int lifeSpan READ lifeSpan WRITE setLifeSpan) + Q_PROPERTY(int lifeSpanDeviation READ lifeSpanDeviation WRITE setLifeSpanDeviation) + Q_PROPERTY(int fadeInDuration READ fadeInDuration WRITE setFadeInDuration) + Q_PROPERTY(int fadeOutDuration READ fadeOutDuration WRITE setFadeOutDuration) + Q_PROPERTY(qreal angle READ angle WRITE setAngle) + Q_PROPERTY(qreal angleDeviation READ angleDeviation WRITE setAngleDeviation) + Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) + Q_PROPERTY(qreal velocityDeviation READ velocityDeviation WRITE setVelocityDeviation) + Q_PROPERTY(bool streamIn READ streamIn WRITE setStreamIn) + Q_PROPERTY(bool emitting READ emitting WRITE setEmitting) + Q_PROPERTY(QmlGraphicsParticleMotion *motion READ motion WRITE setMotion) + Q_CLASSINFO("DefaultProperty", "motion") + +public: + QmlGraphicsParticles(QmlGraphicsItem *parent=0); + ~QmlGraphicsParticles(); + + QUrl source() const; + void setSource(const QUrl &); + + int count() const; + void setCount(int cnt); + + int lifeSpan() const; + void setLifeSpan(int); + + int lifeSpanDeviation() const; + void setLifeSpanDeviation(int); + + int fadeInDuration() const; + void setFadeInDuration(int); + + int fadeOutDuration() const; + void setFadeOutDuration(int); + + qreal angle() const; + void setAngle(qreal); + + qreal angleDeviation() const; + void setAngleDeviation(qreal); + + qreal velocity() const; + void setVelocity(qreal); + + qreal velocityDeviation() const; + void setVelocityDeviation(qreal); + + bool streamIn() const; + void setStreamIn(bool); + + bool emitting() const; + void setEmitting(bool); + + QmlGraphicsParticleMotion *motion() const; + void setMotion(QmlGraphicsParticleMotion *); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +protected: + virtual void componentComplete(); + QmlGraphicsParticles(QmlGraphicsParticlesPrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + void imageLoaded(); + +private: + Q_DISABLE_COPY(QmlGraphicsParticles) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsParticles) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsParticleMotion) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionLinear) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionGravity) +QML_DECLARE_TYPE(QmlGraphicsParticleMotionWander) +QML_DECLARE_TYPE(QmlGraphicsParticles) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp index 5b76e45..8b477bb 100644 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ b/src/declarative/extra/qmlnumberformatter.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlnumberformatter.h" +#include "qmlnumberformatter_p.h" #include "private/qobject_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/extra/qmlnumberformatter.h b/src/declarative/extra/qmlnumberformatter.h deleted file mode 100644 index d9abee7..0000000 --- a/src/declarative/extra/qmlnumberformatter.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLNUMBERFORMATTER_H -#define QMLNUMBERFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlNumberFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString text READ text NOTIFY textChanged) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(qreal number READ number WRITE setNumber) -public: - QmlNumberFormatter(QObject *parent=0); - ~QmlNumberFormatter(); - - QString text() const; - - qreal number() const; - void setNumber(const qreal &); - - QString format() const; - void setFormat(const QString &); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlNumberFormatter) - Q_DECLARE_PRIVATE(QmlNumberFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlNumberFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlnumberformatter_p.h b/src/declarative/extra/qmlnumberformatter_p.h new file mode 100644 index 0000000..515f71a --- /dev/null +++ b/src/declarative/extra/qmlnumberformatter_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLNUMBERFORMATTER_H +#define QMLNUMBERFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlNumberFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString text READ text NOTIFY textChanged) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(qreal number READ number WRITE setNumber) +public: + QmlNumberFormatter(QObject *parent=0); + ~QmlNumberFormatter(); + + QString text() const; + + qreal number() const; + void setNumber(const qreal &); + + QString format() const; + void setFormat(const QString &); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlNumberFormatter) + Q_DECLARE_PRIVATE(QmlNumberFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlNumberFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index a3c96fd..98d836b 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlxmllistmodel.h" +#include "qmlxmllistmodel_p.h" #include "private/qobject_p.h" #include diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h deleted file mode 100644 index 1bcc008..0000000 --- a/src/declarative/extra/qmlxmllistmodel.h +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLXMLLISTMODEL_H -#define QMLXMLLISTMODEL_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlContext; - -class QmlXmlListModelRole; - -class QmlXmlListModelPrivate; -class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource) - Q_PROPERTY(QString xml READ xml WRITE setXml) - Q_PROPERTY(QString query READ query WRITE setQuery) - Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) - Q_PROPERTY(QmlList *roles READ roleObjects) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "roles") - -public: - QmlXmlListModel(QObject *parent = 0); - ~QmlXmlListModel(); - - virtual QHash data(int index, const QList &roles = (QList())) const; - virtual int count() const; - virtual QList roles() const; - virtual QString toString(int role) const; - - QmlList *roleObjects(); - - QUrl source() const; - void setSource(const QUrl&); - - QString xml() const; - void setXml(const QString&); - - QString query() const; - void setQuery(const QString&); - - QString namespaceDeclarations() const; - void setNamespaceDeclarations(const QString&); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - virtual void classBegin(); - virtual void componentComplete(); - -signals: - void statusChanged(Status); - void progressChanged(qreal progress); - void countChanged(); - -public Q_SLOTS: - // ### need to use/expose Expiry to guess when to call this? - // ### property to auto-call this on reasonable Expiry? - // ### LastModified/Age also useful to guess. - // ### Probably also applies to other network-requesting types. - void reload(); - -private Q_SLOTS: - void requestFinished(); - void requestProgress(qint64,qint64); - void queryCompleted(int,int); - -private: - Q_DECLARE_PRIVATE(QmlXmlListModel) - Q_DISABLE_COPY(QmlXmlListModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlXmlListModel) - -QT_END_HEADER - -#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/extra/qmlxmllistmodel_p.h b/src/declarative/extra/qmlxmllistmodel_p.h new file mode 100644 index 0000000..1bcc008 --- /dev/null +++ b/src/declarative/extra/qmlxmllistmodel_p.h @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLXMLLISTMODEL_H +#define QMLXMLLISTMODEL_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlContext; + +class QmlXmlListModelRole; + +class QmlXmlListModelPrivate; +class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource) + Q_PROPERTY(QString xml READ xml WRITE setXml) + Q_PROPERTY(QString query READ query WRITE setQuery) + Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) + Q_PROPERTY(QmlList *roles READ roleObjects) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "roles") + +public: + QmlXmlListModel(QObject *parent = 0); + ~QmlXmlListModel(); + + virtual QHash data(int index, const QList &roles = (QList())) const; + virtual int count() const; + virtual QList roles() const; + virtual QString toString(int role) const; + + QmlList *roleObjects(); + + QUrl source() const; + void setSource(const QUrl&); + + QString xml() const; + void setXml(const QString&); + + QString query() const; + void setQuery(const QString&); + + QString namespaceDeclarations() const; + void setNamespaceDeclarations(const QString&); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + virtual void classBegin(); + virtual void componentComplete(); + +signals: + void statusChanged(Status); + void progressChanged(qreal progress); + void countChanged(); + +public Q_SLOTS: + // ### need to use/expose Expiry to guess when to call this? + // ### property to auto-call this on reasonable Expiry? + // ### LastModified/Age also useful to guess. + // ### Probably also applies to other network-requesting types. + void reload(); + +private Q_SLOTS: + void requestFinished(); + void requestProgress(qint64,qint64); + void queryCompleted(int,int); + +private: + Q_DECLARE_PRIVATE(QmlXmlListModel) + Q_DISABLE_COPY(QmlXmlListModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlXmlListModel) + +QT_END_HEADER + +#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/extra/qnumberformat.cpp b/src/declarative/extra/qnumberformat.cpp index cde2fb0..7e28491 100644 --- a/src/declarative/extra/qnumberformat.cpp +++ b/src/declarative/extra/qnumberformat.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qnumberformat.h" +#include "qnumberformat_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/extra/qnumberformat.h b/src/declarative/extra/qnumberformat.h deleted file mode 100644 index 830cf79..0000000 --- a/src/declarative/extra/qnumberformat.h +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef NUMBERFORMAT_H -#define NUMBERFORMAT_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -// TODO -// be able to set Locale, instead of default system for dynamic formatting -// add currency support -// add additional syntax, extend to format scientific, percentiles, significant digits etc - - -class QNumberFormat : public QObject -{ - Q_OBJECT - Q_ENUMS(NumberType) -public: - QNumberFormat(QObject *parent=0); - ~QNumberFormat(); - - enum NumberType { - Percent, - Scientific, - Currency, - Decimal - }; - - //external property, only visible - Q_PROPERTY(QString text READ text NOTIFY textChanged) - - //mutatable properties to modify the output (text) - Q_PROPERTY(qreal number READ number WRITE setNumber) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(QLocale locale READ locale WRITE setLocale) - - //Format specific settings - Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) - Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) - Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) - Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) - - - QString text() const { return _text; } - - qreal number() const { return _number; } - void setNumber(qreal n) { - if (_number == n) - return; - _number = n; - updateText(); - } - - QString format() const { return _format; } - void setFormat(const QString &format) { - if (format.isEmpty()) - _format = QString::null; - else if (_format == format) - return; - - _format = format; - updateText(); - } - - QLocale locale() const { return _locale; } - void setLocale(const QLocale &locale) { _locale = locale; updateText(); } - - //Do we deal with unicode standard? or create our own - // ### since this is the backend for the number conversions, we will use the unicode - // the front-end will handle the QChar/QString -> short int - - unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } - void setGroupingSeparator(unsigned short unicodeSymbol) - { - _groupingSeparator = QChar(unicodeSymbol); - } - - unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } - void setDecimalSeparator(unsigned short unicodeSymbol) - { - _decimalSeparator = QChar(unicodeSymbol); - } - - unsigned short currencySymbol() { return _currencySymbol.unicode(); } - void setCurrencySymbol(unsigned short unicodeSymbol) - { - _currencySymbol = QChar(unicodeSymbol); - } - - unsigned int groupingSize() { return _groupingSize; } - void setGroupingSize(unsigned int size) - { - _groupingSize = size; - } - -Q_SIGNALS: - void textChanged(); - -private: - void updateText(); - void handleFormat(); - QString formatInteger(const QString &formatInt, const QString &integer); - QString formatDecimal(const QString &formatDec, const QString &decimal); - - qreal _number; - NumberType _type; - QChar _groupingSeparator; - QChar _decimalSeparator; - QChar _currencySymbol; - unsigned int _groupingSize; - - QLocale _locale; - QString _format; - - // only hooked member at the moment - QString _text; - -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QNumberFormat) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qnumberformat_p.h b/src/declarative/extra/qnumberformat_p.h new file mode 100644 index 0000000..830cf79 --- /dev/null +++ b/src/declarative/extra/qnumberformat_p.h @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef NUMBERFORMAT_H +#define NUMBERFORMAT_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +// TODO +// be able to set Locale, instead of default system for dynamic formatting +// add currency support +// add additional syntax, extend to format scientific, percentiles, significant digits etc + + +class QNumberFormat : public QObject +{ + Q_OBJECT + Q_ENUMS(NumberType) +public: + QNumberFormat(QObject *parent=0); + ~QNumberFormat(); + + enum NumberType { + Percent, + Scientific, + Currency, + Decimal + }; + + //external property, only visible + Q_PROPERTY(QString text READ text NOTIFY textChanged) + + //mutatable properties to modify the output (text) + Q_PROPERTY(qreal number READ number WRITE setNumber) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(QLocale locale READ locale WRITE setLocale) + + //Format specific settings + Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) + Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) + Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) + Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) + + + QString text() const { return _text; } + + qreal number() const { return _number; } + void setNumber(qreal n) { + if (_number == n) + return; + _number = n; + updateText(); + } + + QString format() const { return _format; } + void setFormat(const QString &format) { + if (format.isEmpty()) + _format = QString::null; + else if (_format == format) + return; + + _format = format; + updateText(); + } + + QLocale locale() const { return _locale; } + void setLocale(const QLocale &locale) { _locale = locale; updateText(); } + + //Do we deal with unicode standard? or create our own + // ### since this is the backend for the number conversions, we will use the unicode + // the front-end will handle the QChar/QString -> short int + + unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } + void setGroupingSeparator(unsigned short unicodeSymbol) + { + _groupingSeparator = QChar(unicodeSymbol); + } + + unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } + void setDecimalSeparator(unsigned short unicodeSymbol) + { + _decimalSeparator = QChar(unicodeSymbol); + } + + unsigned short currencySymbol() { return _currencySymbol.unicode(); } + void setCurrencySymbol(unsigned short unicodeSymbol) + { + _currencySymbol = QChar(unicodeSymbol); + } + + unsigned int groupingSize() { return _groupingSize; } + void setGroupingSize(unsigned int size) + { + _groupingSize = size; + } + +Q_SIGNALS: + void textChanged(); + +private: + void updateText(); + void handleFormat(); + QString formatInteger(const QString &formatInt, const QString &integer); + QString formatDecimal(const QString &formatDec, const QString &decimal); + + qreal _number; + NumberType _type; + QChar _groupingSeparator; + QChar _decimalSeparator; + QChar _currencySymbol; + unsigned int _groupingSize; + + QLocale _locale; + QString _format; + + // only hooked member at the moment + QString _text; + +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QNumberFormat) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/fx.pri b/src/declarative/fx/fx.pri index 7759ab1..20e1503 100644 --- a/src/declarative/fx/fx.pri +++ b/src/declarative/fx/fx.pri @@ -1,49 +1,49 @@ HEADERS += \ - fx/qmlgraphicsanchors.h \ fx/qmlgraphicsanchors_p.h \ - fx/qmlgraphicsevents_p.h \ - fx/qmlgraphicsflickable.h \ + fx/qmlgraphicsanchors_p_p.h \ + fx/qmlgraphicsevents_p_p.h \ fx/qmlgraphicsflickable_p.h \ - fx/qmlgraphicsflipable.h \ - fx/qmlgraphicsgridview.h \ - fx/qmlgraphicsimage.h \ - fx/qmlgraphicsimagebase.h \ - fx/qmlgraphicsborderimage.h \ - fx/qmlgraphicspainteditem.h \ - fx/qmlgraphicspainteditem_p.h \ + fx/qmlgraphicsflickable_p_p.h \ + fx/qmlgraphicsflipable_p.h \ + fx/qmlgraphicsgridview_p.h \ fx/qmlgraphicsimage_p.h \ - fx/qmlgraphicsborderimage_p.h \ fx/qmlgraphicsimagebase_p.h \ + fx/qmlgraphicsborderimage_p.h \ + fx/qmlgraphicspainteditem_p.h \ + fx/qmlgraphicspainteditem_p_p.h \ + fx/qmlgraphicsimage_p_p.h \ + fx/qmlgraphicsborderimage_p_p.h \ + fx/qmlgraphicsimagebase_p_p.h \ fx/qmlgraphicsitem.h \ fx/qmlgraphicsitem_p.h \ - fx/qmlgraphicsfocuspanel.h \ - fx/qmlgraphicsfocusscope.h \ - fx/qmlgraphicspositioners.h \ + fx/qmlgraphicsfocuspanel_p.h \ + fx/qmlgraphicsfocusscope_p.h \ fx/qmlgraphicspositioners_p.h \ - fx/qmlgraphicsloader.h \ + fx/qmlgraphicspositioners_p_p.h \ fx/qmlgraphicsloader_p.h \ - fx/qmlgraphicsmouseregion.h \ + fx/qmlgraphicsloader_p_p.h \ fx/qmlgraphicsmouseregion_p.h \ - fx/qmlgraphicspath.h \ + fx/qmlgraphicsmouseregion_p_p.h \ fx/qmlgraphicspath_p.h \ - fx/qmlgraphicspathview.h \ + fx/qmlgraphicspath_p_p.h \ fx/qmlgraphicspathview_p.h \ - fx/qmlgraphicsrect.h \ + fx/qmlgraphicspathview_p_p.h \ fx/qmlgraphicsrect_p.h \ - fx/qmlgraphicsrepeater.h \ + fx/qmlgraphicsrect_p_p.h \ fx/qmlgraphicsrepeater_p.h \ - fx/qmlgraphicsscalegrid_p.h \ - fx/qmlgraphicstextinput.h \ + fx/qmlgraphicsrepeater_p_p.h \ + fx/qmlgraphicsscalegrid_p_p.h \ fx/qmlgraphicstextinput_p.h \ - fx/qmlgraphicstextedit.h \ + fx/qmlgraphicstextinput_p_p.h \ fx/qmlgraphicstextedit_p.h \ - fx/qmlgraphicstext.h \ + fx/qmlgraphicstextedit_p_p.h \ fx/qmlgraphicstext_p.h \ - fx/qmlgraphicspixmapcache.h \ - fx/qmlgraphicsvisualitemmodel.h \ - fx/qmlgraphicslistview.h \ - fx/qmlgraphicsgraphicsobjectcontainer.h \ - fx/qmlgraphicslayoutitem.h \ + fx/qmlgraphicstext_p_p.h \ + fx/qmlgraphicspixmapcache_p.h \ + fx/qmlgraphicsvisualitemmodel_p.h \ + fx/qmlgraphicslistview_p.h \ + fx/qmlgraphicsgraphicsobjectcontainer_p.h \ + fx/qmlgraphicslayoutitem_p.h \ fx/qmlgraphicseffects.cpp SOURCES += \ @@ -79,6 +79,6 @@ SOURCES += \ contains(QT_CONFIG, webkit) { QT+=webkit SOURCES += fx/qmlgraphicswebview.cpp - HEADERS += fx/qmlgraphicswebview.h + HEADERS += fx/qmlgraphicswebview_p.h } diff --git a/src/declarative/fx/qmlgraphicsanchors.cpp b/src/declarative/fx/qmlgraphicsanchors.cpp index d0e26d8..fc1a1c6 100644 --- a/src/declarative/fx/qmlgraphicsanchors.cpp +++ b/src/declarative/fx/qmlgraphicsanchors.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsanchors_p.h" +#include "qmlgraphicsanchors_p_p.h" #include "qmlgraphicsitem.h" #include "qmlgraphicsitem_p.h" #include @@ -956,7 +956,7 @@ bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) return true; } -QT_END_NAMESPACE +#include "moc_qmlgraphicsanchors_p.cpp" -#include "moc_qmlgraphicsanchors.cpp" +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsanchors.h b/src/declarative/fx/qmlgraphicsanchors.h deleted file mode 100644 index de7214d..0000000 --- a/src/declarative/fx/qmlgraphicsanchors.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSANCHORS_H -#define QMLGRAPHICSANCHORS_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsAnchorsPrivate; -class QmlGraphicsAnchorLine; -class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) - Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) - Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) - Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) - Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) - Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) - Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) - Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) - Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) - Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) - -public: - QmlGraphicsAnchors(QObject *parent=0); - virtual ~QmlGraphicsAnchors(); - - enum UsedAnchor { - HasLeftAnchor = 0x01, - HasRightAnchor = 0x02, - HasTopAnchor = 0x04, - HasBottomAnchor = 0x08, - HasHCenterAnchor = 0x10, - HasVCenterAnchor = 0x20, - HasBaselineAnchor = 0x40, - Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, - Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor - }; - Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) - - QmlGraphicsAnchorLine left() const; - void setLeft(const QmlGraphicsAnchorLine &edge); - void resetLeft(); - - QmlGraphicsAnchorLine right() const; - void setRight(const QmlGraphicsAnchorLine &edge); - void resetRight(); - - QmlGraphicsAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); - void resetHorizontalCenter(); - - QmlGraphicsAnchorLine top() const; - void setTop(const QmlGraphicsAnchorLine &edge); - void resetTop(); - - QmlGraphicsAnchorLine bottom() const; - void setBottom(const QmlGraphicsAnchorLine &edge); - void resetBottom(); - - QmlGraphicsAnchorLine verticalCenter() const; - void setVerticalCenter(const QmlGraphicsAnchorLine &edge); - void resetVerticalCenter(); - - QmlGraphicsAnchorLine baseline() const; - void setBaseline(const QmlGraphicsAnchorLine &edge); - void resetBaseline(); - - qreal leftMargin() const; - void setLeftMargin(qreal); - - qreal rightMargin() const; - void setRightMargin(qreal); - - qreal horizontalCenterOffset() const; - void setHorizontalCenterOffset(qreal); - - qreal topMargin() const; - void setTopMargin(qreal); - - qreal bottomMargin() const; - void setBottomMargin(qreal); - - qreal verticalCenterOffset() const; - void setVerticalCenterOffset(qreal); - - qreal baselineOffset() const; - void setBaselineOffset(qreal); - - QmlGraphicsItem *fill() const; - void setFill(QmlGraphicsItem *); - - QmlGraphicsItem *centerIn() const; - void setCenterIn(QmlGraphicsItem *); - - UsedAnchors usedAnchors() const; - - void setItem(QmlGraphicsItem *item); - - void classBegin(); - void componentComplete(); - -Q_SIGNALS: - void leftMarginChanged(); - void rightMarginChanged(); - void topMarginChanged(); - void bottomMarginChanged(); - void verticalCenterOffsetChanged(); - void horizontalCenterOffsetChanged(); - void baselineOffsetChanged(); - -private: - friend class QmlGraphicsItem; - Q_DISABLE_COPY(QmlGraphicsAnchors) - Q_DECLARE_PRIVATE(QmlGraphicsAnchors) -}; -Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnchors) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsanchors_p.h b/src/declarative/fx/qmlgraphicsanchors_p.h index 3986cd6..de7214d 100644 --- a/src/declarative/fx/qmlgraphicsanchors_p.h +++ b/src/declarative/fx/qmlgraphicsanchors_p.h @@ -39,122 +39,142 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSANCHORS_P_H -#define QMLGRAPHICSANCHORS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsanchors.h" -#include "private/qobject_p.h" +#ifndef QMLGRAPHICSANCHORS_H +#define QMLGRAPHICSANCHORS_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsAnchorLine +QT_MODULE(Declarative) + +class QmlGraphicsAnchorsPrivate; +class QmlGraphicsAnchorLine; +class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject { + Q_OBJECT + + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) + Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) + Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) + Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) + Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) + Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) + Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) + Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) + Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) + Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) + public: - QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) - { - } - - enum AnchorLine { - Invalid = 0x0, - Left = 0x01, - Right = 0x02, - Top = 0x04, - Bottom = 0x08, - HCenter = 0x10, - VCenter = 0x20, - Baseline = 0x40, - Horizontal_Mask = Left | Right | HCenter, - Vertical_Mask = Top | Bottom | VCenter | Baseline + QmlGraphicsAnchors(QObject *parent=0); + virtual ~QmlGraphicsAnchors(); + + enum UsedAnchor { + HasLeftAnchor = 0x01, + HasRightAnchor = 0x02, + HasTopAnchor = 0x04, + HasBottomAnchor = 0x08, + HasHCenterAnchor = 0x10, + HasVCenterAnchor = 0x20, + HasBaselineAnchor = 0x40, + Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, + Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor }; + Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) - QmlGraphicsItem *item; - AnchorLine anchorLine; -}; -Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); + void resetLeft(); -class QmlGraphicsAnchorsPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsAnchors) -public: - QmlGraphicsAnchorsPrivate() - : updatingMe(false), updatingHorizontalAnchor(0), - updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), - centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), - bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), - componentComplete(true) - { - } - - void init() - { - } - - void clearItem(QmlGraphicsItem *); - - void addDepend(QmlGraphicsItem *); - void remDepend(QmlGraphicsItem *); - bool isItemComplete() const; - - bool updatingMe; - int updatingHorizontalAnchor; - int updatingVerticalAnchor; - - void setItemHeight(qreal); - void setItemWidth(qreal); - void setItemX(qreal); - void setItemY(qreal); - void setItemPos(const QPointF &); - - void updateOnComplete(); - void updateMe(); - void update(QmlGraphicsItem *, const QRectF &, const QRectF &); - - bool checkHValid() const; - bool checkVValid() const; - bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); - - void updateHorizontalAnchors(); - void updateVerticalAnchors(); - void fillChanged(); - void centerInChanged(); - - QmlGraphicsItem *item; - QmlGraphicsAnchors::UsedAnchors usedAnchors; - - QmlGraphicsItem *fill; - QmlGraphicsItem *centerIn; - - QmlGraphicsAnchorLine left; - QmlGraphicsAnchorLine right; - QmlGraphicsAnchorLine top; - QmlGraphicsAnchorLine bottom; - QmlGraphicsAnchorLine vCenter; - QmlGraphicsAnchorLine hCenter; - QmlGraphicsAnchorLine baseline; - - qreal leftMargin; - qreal rightMargin; - qreal topMargin; - qreal bottomMargin; - qreal vCenterOffset; - qreal hCenterOffset; - qreal baselineOffset; - - bool componentComplete; + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); + void resetRight(); + + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); + void resetHorizontalCenter(); + + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); + void resetTop(); + + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); + void resetBottom(); + + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); + void resetVerticalCenter(); + + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); + void resetBaseline(); + + qreal leftMargin() const; + void setLeftMargin(qreal); + + qreal rightMargin() const; + void setRightMargin(qreal); + + qreal horizontalCenterOffset() const; + void setHorizontalCenterOffset(qreal); + + qreal topMargin() const; + void setTopMargin(qreal); + + qreal bottomMargin() const; + void setBottomMargin(qreal); + + qreal verticalCenterOffset() const; + void setVerticalCenterOffset(qreal); + + qreal baselineOffset() const; + void setBaselineOffset(qreal); + + QmlGraphicsItem *fill() const; + void setFill(QmlGraphicsItem *); + + QmlGraphicsItem *centerIn() const; + void setCenterIn(QmlGraphicsItem *); + + UsedAnchors usedAnchors() const; + + void setItem(QmlGraphicsItem *item); + + void classBegin(); + void componentComplete(); + +Q_SIGNALS: + void leftMarginChanged(); + void rightMarginChanged(); + void topMarginChanged(); + void bottomMarginChanged(); + void verticalCenterOffsetChanged(); + void horizontalCenterOffsetChanged(); + void baselineOffsetChanged(); + +private: + friend class QmlGraphicsItem; + Q_DISABLE_COPY(QmlGraphicsAnchors) + Q_DECLARE_PRIVATE(QmlGraphicsAnchors) }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsAnchors) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicsanchors_p_p.h b/src/declarative/fx/qmlgraphicsanchors_p_p.h new file mode 100644 index 0000000..7a3a9d2 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsanchors_p_p.h @@ -0,0 +1,160 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANCHORS_P_H +#define QMLGRAPHICSANCHORS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsanchors_p.h" +#include "private/qobject_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsAnchorLine +{ +public: + QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) + { + } + + enum AnchorLine { + Invalid = 0x0, + Left = 0x01, + Right = 0x02, + Top = 0x04, + Bottom = 0x08, + HCenter = 0x10, + VCenter = 0x20, + Baseline = 0x40, + Horizontal_Mask = Left | Right | HCenter, + Vertical_Mask = Top | Bottom | VCenter | Baseline + }; + + QmlGraphicsItem *item; + AnchorLine anchorLine; +}; +Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) + +class QmlGraphicsAnchorsPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnchors) +public: + QmlGraphicsAnchorsPrivate() + : updatingMe(false), updatingHorizontalAnchor(0), + updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), + centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), + bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), + componentComplete(true) + { + } + + void init() + { + } + + void clearItem(QmlGraphicsItem *); + + void addDepend(QmlGraphicsItem *); + void remDepend(QmlGraphicsItem *); + bool isItemComplete() const; + + bool updatingMe; + int updatingHorizontalAnchor; + int updatingVerticalAnchor; + + void setItemHeight(qreal); + void setItemWidth(qreal); + void setItemX(qreal); + void setItemY(qreal); + void setItemPos(const QPointF &); + + void updateOnComplete(); + void updateMe(); + void update(QmlGraphicsItem *, const QRectF &, const QRectF &); + + bool checkHValid() const; + bool checkVValid() const; + bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); + + void updateHorizontalAnchors(); + void updateVerticalAnchors(); + void fillChanged(); + void centerInChanged(); + + QmlGraphicsItem *item; + QmlGraphicsAnchors::UsedAnchors usedAnchors; + + QmlGraphicsItem *fill; + QmlGraphicsItem *centerIn; + + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine baseline; + + qreal leftMargin; + qreal rightMargin; + qreal topMargin; + qreal bottomMargin; + qreal vCenterOffset; + qreal hCenterOffset; + qreal baselineOffset; + + bool componentComplete; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicsborderimage.cpp b/src/declarative/fx/qmlgraphicsborderimage.cpp index c346366..daa8085 100644 --- a/src/declarative/fx/qmlgraphicsborderimage.cpp +++ b/src/declarative/fx/qmlgraphicsborderimage.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicsborderimage.h" #include "qmlgraphicsborderimage_p.h" +#include "qmlgraphicsborderimage_p_p.h" #include #include #include diff --git a/src/declarative/fx/qmlgraphicsborderimage.h b/src/declarative/fx/qmlgraphicsborderimage.h deleted file mode 100644 index e3c50bb..0000000 --- a/src/declarative/fx/qmlgraphicsborderimage.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSBORDERIMAGE_H -#define QMLGRAPHICSBORDERIMAGE_H - -#include -#include "qmlgraphicsimagebase.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsScaleGrid; -class QmlGraphicsGridScaledImage; -class QmlGraphicsBorderImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(TileMode) - - Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) - Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) - Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) - -public: - QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsBorderImage(); - - QmlGraphicsScaleGrid *border(); - - enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; - - TileMode horizontalTileMode() const; - void setHorizontalTileMode(TileMode); - - TileMode verticalTileMode() const; - void setVerticalTileMode(TileMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - void setSource(const QUrl &url); - -Q_SIGNALS: - void horizontalTileModeChanged(); - void verticalTileModeChanged(); - -protected: - QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); - -private: - void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); - -private Q_SLOTS: - void requestFinished(); - void sciRequestFinished(); - -private: - Q_DISABLE_COPY(QmlGraphicsBorderImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsBorderImage) -QT_END_HEADER - -#endif // QMLGRAPHICSBORDERIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsborderimage_p.h b/src/declarative/fx/qmlgraphicsborderimage_p.h index fb905cd..da43a23 100644 --- a/src/declarative/fx/qmlgraphicsborderimage_p.h +++ b/src/declarative/fx/qmlgraphicsborderimage_p.h @@ -39,59 +39,67 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSBORDERIMAGE_P_H -#define QMLGRAPHICSBORDERIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// +#ifndef QMLGRAPHICSBORDERIMAGE_H +#define QMLGRAPHICSBORDERIMAGE_H +#include #include "qmlgraphicsimagebase_p.h" -#include "qmlgraphicsscalegrid_p.h" +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QNetworkReply; -class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate +QT_MODULE(Declarative) + +class QmlGraphicsScaleGrid; +class QmlGraphicsGridScaledImage; +class QmlGraphicsBorderImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase { - Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) + Q_OBJECT + Q_ENUMS(TileMode) + + Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) + Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) + Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) public: - QmlGraphicsBorderImagePrivate() - : border(0), sciReply(0), - sciPendingPixmapCache(false), - horizontalTileMode(QmlGraphicsBorderImage::Stretch), - verticalTileMode(QmlGraphicsBorderImage::Stretch) - { - } - - ~QmlGraphicsBorderImagePrivate() - { - } - - QmlGraphicsScaleGrid *getScaleGrid() - { - Q_Q(QmlGraphicsBorderImage); - if (!border) - border = new QmlGraphicsScaleGrid(q); - return border; - } - - QmlGraphicsScaleGrid *border; - QUrl sciurl; - QNetworkReply *sciReply; - bool sciPendingPixmapCache; - QmlGraphicsBorderImage::TileMode horizontalTileMode; - QmlGraphicsBorderImage::TileMode verticalTileMode; + QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsBorderImage(); + + QmlGraphicsScaleGrid *border(); + + enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; + + TileMode horizontalTileMode() const; + void setHorizontalTileMode(TileMode); + + TileMode verticalTileMode() const; + void setVerticalTileMode(TileMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + void setSource(const QUrl &url); + +Q_SIGNALS: + void horizontalTileModeChanged(); + void verticalTileModeChanged(); + +protected: + QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); + +private: + void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); + +private Q_SLOTS: + void requestFinished(); + void sciRequestFinished(); + +private: + Q_DISABLE_COPY(QmlGraphicsBorderImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) }; QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsBorderImage) +QT_END_HEADER -#endif // QMLGRAPHICSBORDERIMAGE_P_H +#endif // QMLGRAPHICSBORDERIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsborderimage_p_p.h b/src/declarative/fx/qmlgraphicsborderimage_p_p.h new file mode 100644 index 0000000..06ac38b --- /dev/null +++ b/src/declarative/fx/qmlgraphicsborderimage_p_p.h @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSBORDERIMAGE_P_H +#define QMLGRAPHICSBORDERIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsimagebase_p_p.h" +#include "qmlgraphicsscalegrid_p_p.h" + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) + +public: + QmlGraphicsBorderImagePrivate() + : border(0), sciReply(0), + sciPendingPixmapCache(false), + horizontalTileMode(QmlGraphicsBorderImage::Stretch), + verticalTileMode(QmlGraphicsBorderImage::Stretch) + { + } + + ~QmlGraphicsBorderImagePrivate() + { + } + + QmlGraphicsScaleGrid *getScaleGrid() + { + Q_Q(QmlGraphicsBorderImage); + if (!border) + border = new QmlGraphicsScaleGrid(q); + return border; + } + + QmlGraphicsScaleGrid *border; + QUrl sciurl; + QNetworkReply *sciReply; + bool sciPendingPixmapCache; + QmlGraphicsBorderImage::TileMode horizontalTileMode; + QmlGraphicsBorderImage::TileMode verticalTileMode; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSBORDERIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicsevents.cpp b/src/declarative/fx/qmlgraphicsevents.cpp index 468b223..a4d243f 100644 --- a/src/declarative/fx/qmlgraphicsevents.cpp +++ b/src/declarative/fx/qmlgraphicsevents.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsevents_p.h" +#include "qmlgraphicsevents_p_p.h" QT_BEGIN_NAMESPACE /*! diff --git a/src/declarative/fx/qmlgraphicsevents_p.h b/src/declarative/fx/qmlgraphicsevents_p.h deleted file mode 100644 index f093932..0000000 --- a/src/declarative/fx/qmlgraphicsevents_p.h +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSEVENTS_P_H -#define QMLGRAPHICSEVENTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsKeyEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int key READ key) - Q_PROPERTY(QString text READ text) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) - Q_PROPERTY(int count READ count) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) - : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } - QmlGraphicsKeyEvent(const QKeyEvent &ke) - : event(ke) { event.setAccepted(false); } - - int key() const { return event.key(); } - QString text() const { return event.text(); } - int modifiers() const { return event.modifiers(); } - bool isAutoRepeat() const { return event.isAutoRepeat(); } - int count() const { return event.count(); } - - bool isAccepted() { return event.isAccepted(); } - void setAccepted(bool accepted) { event.setAccepted(accepted); } - -private: - QKeyEvent event; -}; - -class QmlGraphicsMouseEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int x READ x) - Q_PROPERTY(int y READ y) - Q_PROPERTY(int button READ button) - Q_PROPERTY(int buttons READ buttons) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool wasHeld READ wasHeld) - Q_PROPERTY(bool isClick READ isClick) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers - , bool isClick=false, bool wasHeld=false) - : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) - , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} - - int x() const { return _x; } - int y() const { return _y; } - int button() const { return _button; } - int buttons() const { return _buttons; } - int modifiers() const { return _modifiers; } - bool wasHeld() const { return _wasHeld; } - bool isClick() const { return _isClick; } - - bool isAccepted() { return _accepted; } - void setAccepted(bool accepted) { _accepted = accepted; } - -private: - int _x; - int _y; - Qt::MouseButton _button; - Qt::MouseButtons _buttons; - Qt::KeyboardModifiers _modifiers; - bool _wasHeld; - bool _isClick; - bool _accepted; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsKeyEvent) -QML_DECLARE_TYPE(QmlGraphicsMouseEvent) - -#endif // QMLGRAPHICSEVENTS_P_H diff --git a/src/declarative/fx/qmlgraphicsevents_p_p.h b/src/declarative/fx/qmlgraphicsevents_p_p.h new file mode 100644 index 0000000..f093932 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsevents_p_p.h @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSEVENTS_P_H +#define QMLGRAPHICSEVENTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsKeyEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int key READ key) + Q_PROPERTY(QString text READ text) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) + Q_PROPERTY(int count READ count) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) + : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } + QmlGraphicsKeyEvent(const QKeyEvent &ke) + : event(ke) { event.setAccepted(false); } + + int key() const { return event.key(); } + QString text() const { return event.text(); } + int modifiers() const { return event.modifiers(); } + bool isAutoRepeat() const { return event.isAutoRepeat(); } + int count() const { return event.count(); } + + bool isAccepted() { return event.isAccepted(); } + void setAccepted(bool accepted) { event.setAccepted(accepted); } + +private: + QKeyEvent event; +}; + +class QmlGraphicsMouseEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int x READ x) + Q_PROPERTY(int y READ y) + Q_PROPERTY(int button READ button) + Q_PROPERTY(int buttons READ buttons) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool wasHeld READ wasHeld) + Q_PROPERTY(bool isClick READ isClick) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers + , bool isClick=false, bool wasHeld=false) + : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) + , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} + + int x() const { return _x; } + int y() const { return _y; } + int button() const { return _button; } + int buttons() const { return _buttons; } + int modifiers() const { return _modifiers; } + bool wasHeld() const { return _wasHeld; } + bool isClick() const { return _isClick; } + + bool isAccepted() { return _accepted; } + void setAccepted(bool accepted) { _accepted = accepted; } + +private: + int _x; + int _y; + Qt::MouseButton _button; + Qt::MouseButtons _buttons; + Qt::KeyboardModifiers _modifiers; + bool _wasHeld; + bool _isClick; + bool _accepted; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsKeyEvent) +QML_DECLARE_TYPE(QmlGraphicsMouseEvent) + +#endif // QMLGRAPHICSEVENTS_P_H diff --git a/src/declarative/fx/qmlgraphicsflickable.cpp b/src/declarative/fx/qmlgraphicsflickable.cpp index ed964aa..3f317d1 100644 --- a/src/declarative/fx/qmlgraphicsflickable.cpp +++ b/src/declarative/fx/qmlgraphicsflickable.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicsflickable.h" #include "qmlgraphicsflickable_p.h" +#include "qmlgraphicsflickable_p_p.h" #include #include @@ -1280,4 +1280,4 @@ QT_END_NAMESPACE QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) -#include "qfxflickable.moc" +#include "qmlgraphicsflickable.moc" diff --git a/src/declarative/fx/qmlgraphicsflickable.h b/src/declarative/fx/qmlgraphicsflickable.h deleted file mode 100644 index f7ef0088..0000000 --- a/src/declarative/fx/qmlgraphicsflickable.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSFLICKABLE_H -#define QMLGRAPHICSFLICKABLE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlickablePrivate; -class QmlGraphicsFlickableVisibleArea; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) - Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) - Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) - Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) - - Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) - Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) - Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) - - Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) - Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) - Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) - Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) - Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) - - Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) - Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) - - Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) - - Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) - - Q_PROPERTY(QmlList* flickableData READ flickableData) - Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) - Q_CLASSINFO("DefaultProperty", "flickableData") - -public: - QmlGraphicsFlickable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlickable(); - - QmlList *flickableData(); - QmlList *flickableChildren(); - - bool overShoot() const; - void setOverShoot(bool); - - qreal viewportWidth() const; - void setViewportWidth(qreal); - - qreal viewportHeight() const; - void setViewportHeight(qreal); - - qreal viewportX() const; - void setViewportX(qreal pos); - - qreal viewportY() const; - void setViewportY(qreal pos); - - bool isMoving() const; - bool isFlicking() const; - - int pressDelay() const; - void setPressDelay(int delay); - - qreal reportedVelocitySmoothing() const; - void setReportedVelocitySmoothing(qreal); - - qreal maximumFlickVelocity() const; - void setMaximumFlickVelocity(qreal); - - qreal flickDeceleration() const; - void setFlickDeceleration(qreal); - - bool isInteractive() const; - void setInteractive(bool); - - qreal horizontalVelocity() const; - qreal verticalVelocity() const; - - bool isAtXEnd() const; - bool isAtXBeginning() const; - bool isAtYEnd() const; - bool isAtYBeginning() const; - - QmlGraphicsItem *viewport(); - -Q_SIGNALS: - void viewportWidthChanged(); - void viewportHeightChanged(); - void positionXChanged(); - void positionYChanged(); - void movingChanged(); - void flickingChanged(); - void movementStarted(); - void movementEnded(); - void flickStarted(); - void flickEnded(); - void reportedVelocitySmoothingChanged(int); - void horizontalVelocityChanged(); - void verticalVelocityChanged(); - void isAtBoundaryChanged(); - void pageChanged(); - -protected: - virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void timerEvent(QTimerEvent *event); - - qreal visibleX() const; - qreal visibleY() const; - - QmlGraphicsFlickableVisibleArea *visibleArea(); - -protected Q_SLOTS: - virtual void ticked(); - void movementStarting(); - void movementEnding(); - void heightChange(); - void widthChange(); - -protected: - virtual qreal minXExtent() const; - virtual qreal minYExtent() const; - virtual qreal maxXExtent() const; - virtual qreal maxYExtent() const; - qreal vWidth() const; - qreal vHeight() const; - virtual void viewportMoved(); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - - bool xflick() const; - bool yflick() const; - void cancelFlick(); - -protected: - QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsFlickable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) - friend class QmlGraphicsFlickableVisibleArea; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlickable) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsflickable_p.h b/src/declarative/fx/qmlgraphicsflickable_p.h index d9f917d..f7ef0088 100644 --- a/src/declarative/fx/qmlgraphicsflickable_p.h +++ b/src/declarative/fx/qmlgraphicsflickable_p.h @@ -39,118 +39,165 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSFLICKABLE_P_H -#define QMLGRAPHICSFLICKABLE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qmlgraphicsflickable.h" -#include "qmlgraphicsitem_p.h" -#include "qml.h" -#include "private/qmltimeline_p.h" -#include "private/qmlanimation_p.h" +#ifndef QMLGRAPHICSFLICKABLE_H +#define QMLGRAPHICSFLICKABLE_H + +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +QT_MODULE(Declarative) + +class QmlGraphicsFlickablePrivate; class QmlGraphicsFlickableVisibleArea; -class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate +class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsFlickable) + Q_OBJECT -public: - QmlGraphicsFlickablePrivate(); - void init(); - virtual void flickX(qreal velocity); - virtual void flickY(qreal velocity); - virtual void fixupX(); - virtual void fixupY(); - void updateBeginningEnd(); + Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) + Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) + Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) + Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) + + Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) + Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) + Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) + + Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) + Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) + Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) + Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) + Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) + + Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) + Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) + + Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) + + Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) - void captureDelayedPress(QGraphicsSceneMouseEvent *event); - void clearDelayedPress(); + Q_PROPERTY(QmlList* flickableData READ flickableData) + Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) + Q_CLASSINFO("DefaultProperty", "flickableData") public: - QmlGraphicsItem *viewport; - QmlTimeLineValueProxy _moveX; - QmlTimeLineValueProxy _moveY; - QmlTimeLine timeline; - qreal vWidth; - qreal vHeight; - bool overShoot : 1; - bool flicked : 1; - bool moving : 1; - bool stealMouse : 1; - bool pressed : 1; - bool atXEnd : 1; - bool atXBeginning : 1; - bool atYEnd : 1; - bool atYBeginning : 1; - bool interactive : 1; - QTime lastPosTime; - QPointF lastPos; - QPointF pressPos; - qreal pressX; - qreal pressY; - qreal velocityX; - qreal velocityY; - QTime pressTime; - QmlTimeLineEvent fixupXEvent; - QmlTimeLineEvent fixupYEvent; - qreal deceleration; - qreal maxVelocity; - QTime velocityTime; - QPointF lastFlickablePosition; - qreal reportedVelocitySmoothing; - int flickTargetX; - int flickTargetY; - QGraphicsSceneMouseEvent *delayedPressEvent; - QGraphicsItem *delayedPressTarget; - QBasicTimer delayedPressTimer; - int pressDelay; - - void updateVelocity(); - struct Velocity : public QmlTimeLineValue - { - Velocity(QmlGraphicsFlickablePrivate *p) - : parent(p) {} - virtual void setValue(qreal v) { - QmlTimeLineValue::setValue(v); - parent->updateVelocity(); - } - QmlGraphicsFlickablePrivate *parent; - }; - Velocity horizontalVelocity; - Velocity verticalVelocity; - int vTime; - QmlTimeLine velocityTimeline; - QmlGraphicsFlickableVisibleArea *visibleArea; - - void handleMousePressEvent(QGraphicsSceneMouseEvent *); - void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); - void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); - - // flickableData property - void data_removeAt(int); - int data_count() const; - void data_append(QObject *); - void data_insert(int, QObject *); - QObject *data_at(int) const; - void data_clear(); + QmlGraphicsFlickable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlickable(); + + QmlList *flickableData(); + QmlList *flickableChildren(); + + bool overShoot() const; + void setOverShoot(bool); + + qreal viewportWidth() const; + void setViewportWidth(qreal); + + qreal viewportHeight() const; + void setViewportHeight(qreal); + + qreal viewportX() const; + void setViewportX(qreal pos); + + qreal viewportY() const; + void setViewportY(qreal pos); + + bool isMoving() const; + bool isFlicking() const; + + int pressDelay() const; + void setPressDelay(int delay); + qreal reportedVelocitySmoothing() const; + void setReportedVelocitySmoothing(qreal); + + qreal maximumFlickVelocity() const; + void setMaximumFlickVelocity(qreal); + + qreal flickDeceleration() const; + void setFlickDeceleration(qreal); + + bool isInteractive() const; + void setInteractive(bool); + + qreal horizontalVelocity() const; + qreal verticalVelocity() const; + + bool isAtXEnd() const; + bool isAtXBeginning() const; + bool isAtYEnd() const; + bool isAtYBeginning() const; + + QmlGraphicsItem *viewport(); + +Q_SIGNALS: + void viewportWidthChanged(); + void viewportHeightChanged(); + void positionXChanged(); + void positionYChanged(); + void movingChanged(); + void flickingChanged(); + void movementStarted(); + void movementEnded(); + void flickStarted(); + void flickEnded(); + void reportedVelocitySmoothingChanged(int); + void horizontalVelocityChanged(); + void verticalVelocityChanged(); + void isAtBoundaryChanged(); + void pageChanged(); + +protected: + virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void timerEvent(QTimerEvent *event); + + qreal visibleX() const; + qreal visibleY() const; + + QmlGraphicsFlickableVisibleArea *visibleArea(); + +protected Q_SLOTS: + virtual void ticked(); + void movementStarting(); + void movementEnding(); + void heightChange(); + void widthChange(); + +protected: + virtual qreal minXExtent() const; + virtual qreal minYExtent() const; + virtual qreal maxXExtent() const; + virtual qreal maxYExtent() const; + qreal vWidth() const; + qreal vHeight() const; + virtual void viewportMoved(); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + + bool xflick() const; + bool yflick() const; + void cancelFlick(); + +protected: + QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsFlickable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) friend class QmlGraphicsFlickableVisibleArea; - QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) }; QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsFlickable) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicsflickable_p_p.h b/src/declarative/fx/qmlgraphicsflickable_p_p.h new file mode 100644 index 0000000..6b8bf9f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflickable_p_p.h @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFLICKABLE_P_H +#define QMLGRAPHICSFLICKABLE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicsflickable_p.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include "private/qmltimeline_p_p.h" +#include "private/qmlanimation_p_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsFlickableVisibleArea; +class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsFlickable) + +public: + QmlGraphicsFlickablePrivate(); + void init(); + virtual void flickX(qreal velocity); + virtual void flickY(qreal velocity); + virtual void fixupX(); + virtual void fixupY(); + void updateBeginningEnd(); + + void captureDelayedPress(QGraphicsSceneMouseEvent *event); + void clearDelayedPress(); + +public: + QmlGraphicsItem *viewport; + QmlTimeLineValueProxy _moveX; + QmlTimeLineValueProxy _moveY; + QmlTimeLine timeline; + qreal vWidth; + qreal vHeight; + bool overShoot : 1; + bool flicked : 1; + bool moving : 1; + bool stealMouse : 1; + bool pressed : 1; + bool atXEnd : 1; + bool atXBeginning : 1; + bool atYEnd : 1; + bool atYBeginning : 1; + bool interactive : 1; + QTime lastPosTime; + QPointF lastPos; + QPointF pressPos; + qreal pressX; + qreal pressY; + qreal velocityX; + qreal velocityY; + QTime pressTime; + QmlTimeLineEvent fixupXEvent; + QmlTimeLineEvent fixupYEvent; + qreal deceleration; + qreal maxVelocity; + QTime velocityTime; + QPointF lastFlickablePosition; + qreal reportedVelocitySmoothing; + int flickTargetX; + int flickTargetY; + QGraphicsSceneMouseEvent *delayedPressEvent; + QGraphicsItem *delayedPressTarget; + QBasicTimer delayedPressTimer; + int pressDelay; + + void updateVelocity(); + struct Velocity : public QmlTimeLineValue + { + Velocity(QmlGraphicsFlickablePrivate *p) + : parent(p) {} + virtual void setValue(qreal v) { + QmlTimeLineValue::setValue(v); + parent->updateVelocity(); + } + QmlGraphicsFlickablePrivate *parent; + }; + Velocity horizontalVelocity; + Velocity verticalVelocity; + int vTime; + QmlTimeLine velocityTimeline; + QmlGraphicsFlickableVisibleArea *visibleArea; + + void handleMousePressEvent(QGraphicsSceneMouseEvent *); + void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); + void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); + + // flickableData property + void data_removeAt(int); + int data_count() const; + void data_append(QObject *); + void data_insert(int, QObject *); + QObject *data_at(int) const; + void data_clear(); + + friend class QmlGraphicsFlickableVisibleArea; + QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicsflipable.cpp b/src/declarative/fx/qmlgraphicsflipable.cpp index 4df35f1..bec39ac 100644 --- a/src/declarative/fx/qmlgraphicsflipable.cpp +++ b/src/declarative/fx/qmlgraphicsflipable.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsflipable.h" +#include "qmlgraphicsflipable_p.h" #include "private/qmlgraphicsitem_p.h" #include "QtGui/qgraphicstransform.h" #include @@ -232,5 +232,3 @@ void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() } QT_END_NAMESPACE - -#include "moc_qmlgraphicsflipable.cpp" diff --git a/src/declarative/fx/qmlgraphicsflipable.h b/src/declarative/fx/qmlgraphicsflipable.h deleted file mode 100644 index 7f92d65..0000000 --- a/src/declarative/fx/qmlgraphicsflipable.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSFLIPABLE_H -#define QMLGRAPHICSFLIPABLE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlipablePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_ENUMS(Side) - Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) - Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) - Q_PROPERTY(Side side READ side NOTIFY sideChanged) - //### flipAxis - //### flipRotation -public: - QmlGraphicsFlipable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlipable(); - - QmlGraphicsItem *front(); - void setFront(QmlGraphicsItem *); - - QmlGraphicsItem *back(); - void setBack(QmlGraphicsItem *); - - enum Side { Front, Back }; - Side side() const; - -Q_SIGNALS: - void sideChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsFlipable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlipable) - -QT_END_HEADER - -#endif // QMLGRAPHICSFLIPABLE_H diff --git a/src/declarative/fx/qmlgraphicsflipable_p.h b/src/declarative/fx/qmlgraphicsflipable_p.h new file mode 100644 index 0000000..7f92d65 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsflipable_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFLIPABLE_H +#define QMLGRAPHICSFLIPABLE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsFlipablePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem +{ + Q_OBJECT + + Q_ENUMS(Side) + Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) + Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) + Q_PROPERTY(Side side READ side NOTIFY sideChanged) + //### flipAxis + //### flipRotation +public: + QmlGraphicsFlipable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlipable(); + + QmlGraphicsItem *front(); + void setFront(QmlGraphicsItem *); + + QmlGraphicsItem *back(); + void setBack(QmlGraphicsItem *); + + enum Side { Front, Back }; + Side side() const; + +Q_SIGNALS: + void sideChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsFlipable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlipable) + +QT_END_HEADER + +#endif // QMLGRAPHICSFLIPABLE_H diff --git a/src/declarative/fx/qmlgraphicsfocuspanel.cpp b/src/declarative/fx/qmlgraphicsfocuspanel.cpp index db8fcdb..8de8832 100644 --- a/src/declarative/fx/qmlgraphicsfocuspanel.cpp +++ b/src/declarative/fx/qmlgraphicsfocuspanel.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsfocuspanel.h" +#include "qmlgraphicsfocuspanel_p.h" #include #include diff --git a/src/declarative/fx/qmlgraphicsfocuspanel.h b/src/declarative/fx/qmlgraphicsfocuspanel.h deleted file mode 100644 index 2c4f792..0000000 --- a/src/declarative/fx/qmlgraphicsfocuspanel.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSFOCUSPANEL_H -#define QMLGRAPHICSFOCUSPANEL_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem -{ - Q_OBJECT - Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) -public: - QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusPanel(); - -Q_SIGNALS: - void activeChanged(); - -protected: - bool sceneEvent(QEvent *event); - -private: - Q_DISABLE_COPY(QmlGraphicsFocusPanel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusPanel) - -QT_END_HEADER - -#endif // QMLGRAPHICSFOCUSPANEL_H diff --git a/src/declarative/fx/qmlgraphicsfocuspanel_p.h b/src/declarative/fx/qmlgraphicsfocuspanel_p.h new file mode 100644 index 0000000..2c4f792 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocuspanel_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFOCUSPANEL_H +#define QMLGRAPHICSFOCUSPANEL_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem +{ + Q_OBJECT + Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) +public: + QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusPanel(); + +Q_SIGNALS: + void activeChanged(); + +protected: + bool sceneEvent(QEvent *event); + +private: + Q_DISABLE_COPY(QmlGraphicsFocusPanel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusPanel) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSPANEL_H diff --git a/src/declarative/fx/qmlgraphicsfocusscope.cpp b/src/declarative/fx/qmlgraphicsfocusscope.cpp index e957085..e7b01b0 100644 --- a/src/declarative/fx/qmlgraphicsfocusscope.cpp +++ b/src/declarative/fx/qmlgraphicsfocusscope.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsfocusscope.h" +#include "qmlgraphicsfocusscope_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsfocusscope.h b/src/declarative/fx/qmlgraphicsfocusscope.h deleted file mode 100644 index 28d1f4f..0000000 --- a/src/declarative/fx/qmlgraphicsfocusscope.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSFOCUSSCOPE_H -#define QMLGRAPHICSFOCUSSCOPE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -//### set component root as focusscope -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem -{ - Q_OBJECT -public: - QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusScope(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusScope) - -QT_END_HEADER - -#endif // QMLGRAPHICSFOCUSSCOPE_H diff --git a/src/declarative/fx/qmlgraphicsfocusscope_p.h b/src/declarative/fx/qmlgraphicsfocusscope_p.h new file mode 100644 index 0000000..28d1f4f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsfocusscope_p.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSFOCUSSCOPE_H +#define QMLGRAPHICSFOCUSSCOPE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +//### set component root as focusscope +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem +{ + Q_OBJECT +public: + QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusScope(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusScope) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSSCOPE_H diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp index 87193cd..e1f16d5 100644 --- a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp +++ b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsgraphicsobjectcontainer.h" +#include "qmlgraphicsgraphicsobjectcontainer_p.h" #include #include #include @@ -225,6 +225,6 @@ void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() }*/ } -QT_END_NAMESPACE +#include "moc_qmlgraphicsgraphicsobjectcontainer_p.cpp" -#include "moc_qmlgraphicsgraphicsobjectcontainer.cpp" +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h deleted file mode 100644 index 0189e2f..0000000 --- a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H -#define QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QGraphicsObject; -class QmlGraphicsGraphicsObjectContainerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem -{ - Q_OBJECT - - Q_CLASSINFO("DefaultProperty", "graphicsObject") - Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) - Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) - -public: - QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); - ~QmlGraphicsGraphicsObjectContainer(); - - QGraphicsObject *graphicsObject() const; - void setGraphicsObject(QGraphicsObject *); - - bool synchronizedResizing() const; - void setSynchronizedResizing(bool on); - -protected: - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - bool eventFilter(QObject *watched, QEvent *e); - -private: - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QGraphicsObject) -QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) - -QT_END_HEADER - -#endif // QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h new file mode 100644 index 0000000..0189e2f --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H +#define QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QGraphicsObject; +class QmlGraphicsGraphicsObjectContainerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem +{ + Q_OBJECT + + Q_CLASSINFO("DefaultProperty", "graphicsObject") + Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) + Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) + +public: + QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); + ~QmlGraphicsGraphicsObjectContainer(); + + QGraphicsObject *graphicsObject() const; + void setGraphicsObject(QGraphicsObject *); + + bool synchronizedResizing() const; + void setSynchronizedResizing(bool on); + +protected: + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + bool eventFilter(QObject *watched, QEvent *e); + +private: + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QGraphicsObject) +QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) + +QT_END_HEADER + +#endif // QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/fx/qmlgraphicsgridview.cpp b/src/declarative/fx/qmlgraphicsgridview.cpp index d512b8c..c191a84 100644 --- a/src/declarative/fx/qmlgraphicsgridview.cpp +++ b/src/declarative/fx/qmlgraphicsgridview.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "qmlgraphicsvisualitemmodel.h" -#include "qlistmodelinterface.h" -#include "qmleasefollow.h" -#include "private/qmlgraphicsflickable_p.h" -#include "qmlgraphicsgridview.h" +#include "qmlgraphicsgridview_p.h" +#include +#include +#include +#include #include @@ -1582,4 +1582,4 @@ QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView QT_END_NAMESPACE -#include "qfxgridview.moc" +#include "qmlgraphicsgridview.moc" diff --git a/src/declarative/fx/qmlgraphicsgridview.h b/src/declarative/fx/qmlgraphicsgridview.h deleted file mode 100644 index 1582529..0000000 --- a/src/declarative/fx/qmlgraphicsgridview.h +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSGRIDVIEW_H -#define QMLGRAPHICSGRIDVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsVisualModel; -class QmlGraphicsGridViewAttached; -class QmlGraphicsGridViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - Q_PROPERTY(Flow flow READ flow WRITE setFlow) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) - Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsGridView(QmlGraphicsItem *parent=0); - ~QmlGraphicsGridView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - Q_ENUMS(Flow) - enum Flow { LeftToRight, TopToBottom }; - Flow flow() const; - void setFlow(Flow); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - int cellWidth() const; - void setCellWidth(int); - - int cellHeight() const; - void setCellHeight(int); - - static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void moveCurrentIndexUp(); - void moveCurrentIndexDown(); - void moveCurrentIndexLeft(); - void moveCurrentIndexRight(); - -Q_SIGNALS: - void countChanged(); - void currentIndexChanged(); - void cellWidthChanged(); - void cellHeightChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void trackedPositionChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - void sizeChange(); - -private: - void refill(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsGridView) -QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsgridview_p.h b/src/declarative/fx/qmlgraphicsgridview_p.h new file mode 100644 index 0000000..d1aebf5 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsgridview_p.h @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRIDVIEW_H +#define QMLGRAPHICSGRIDVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsVisualModel; +class QmlGraphicsGridViewAttached; +class QmlGraphicsGridViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + Q_PROPERTY(Flow flow READ flow WRITE setFlow) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) + Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsGridView(QmlGraphicsItem *parent=0); + ~QmlGraphicsGridView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + Q_ENUMS(Flow) + enum Flow { LeftToRight, TopToBottom }; + Flow flow() const; + void setFlow(Flow); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + int cellWidth() const; + void setCellWidth(int); + + int cellHeight() const; + void setCellHeight(int); + + static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void moveCurrentIndexUp(); + void moveCurrentIndexDown(); + void moveCurrentIndexLeft(); + void moveCurrentIndexRight(); + +Q_SIGNALS: + void countChanged(); + void currentIndexChanged(); + void cellWidthChanged(); + void cellHeightChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void trackedPositionChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + void sizeChange(); + +private: + void refill(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsGridView) +QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsimage.cpp b/src/declarative/fx/qmlgraphicsimage.cpp index a6156ce..bc0db30 100644 --- a/src/declarative/fx/qmlgraphicsimage.cpp +++ b/src/declarative/fx/qmlgraphicsimage.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicsimage.h" #include "qmlgraphicsimage_p.h" +#include "qmlgraphicsimage_p_p.h" #include #include diff --git a/src/declarative/fx/qmlgraphicsimage.h b/src/declarative/fx/qmlgraphicsimage.h deleted file mode 100644 index 167ecd4..0000000 --- a/src/declarative/fx/qmlgraphicsimage.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSIMAGE_H -#define QMLGRAPHICSIMAGE_H - -#include -#include "qmlgraphicsimagebase.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(FillMode) - - Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) - Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) - -public: - QmlGraphicsImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsImage(); - - enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; - FillMode fillMode() const; - void setFillMode(FillMode); - - QPixmap pixmap() const; - void setPixmap(const QPixmap &); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void fillModeChanged(); - -protected: - QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsImage) -QT_END_HEADER - -#endif // QMLGRAPHICSIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsimage_p.h b/src/declarative/fx/qmlgraphicsimage_p.h index c5bcf8e..0a00e99 100644 --- a/src/declarative/fx/qmlgraphicsimage_p.h +++ b/src/declarative/fx/qmlgraphicsimage_p.h @@ -39,39 +39,52 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSIMAGE_P_H -#define QMLGRAPHICSIMAGE_P_H +#ifndef QMLGRAPHICSIMAGE_H +#define QMLGRAPHICSIMAGE_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" +#include #include "qmlgraphicsimagebase_p.h" +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate +QT_MODULE(Declarative) + +class QmlGraphicsImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase { - Q_DECLARE_PUBLIC(QmlGraphicsImage) + Q_OBJECT + Q_ENUMS(FillMode) + + Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) + Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) public: - QmlGraphicsImagePrivate() - : fillMode(QmlGraphicsImage::Stretch) - { - } + QmlGraphicsImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsImage(); + + enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; + FillMode fillMode() const; + void setFillMode(FillMode); + + QPixmap pixmap() const; + void setPixmap(const QPixmap &); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void fillModeChanged(); - QmlGraphicsImage::FillMode fillMode; +protected: + QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); +private: + Q_DISABLE_COPY(QmlGraphicsImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) }; QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsImage) +QT_END_HEADER -#endif // QMLGRAPHICSIMAGE_P_H +#endif // QMLGRAPHICSIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsimage_p_p.h b/src/declarative/fx/qmlgraphicsimage_p_p.h new file mode 100644 index 0000000..51c6096 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimage_p_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGE_P_H +#define QMLGRAPHICSIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsimagebase_p_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImage) + +public: + QmlGraphicsImagePrivate() + : fillMode(QmlGraphicsImage::Stretch) + { + } + + QmlGraphicsImage::FillMode fillMode; + +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicsimagebase.cpp b/src/declarative/fx/qmlgraphicsimagebase.cpp index d71438d..ccc5045 100644 --- a/src/declarative/fx/qmlgraphicsimagebase.cpp +++ b/src/declarative/fx/qmlgraphicsimagebase.cpp @@ -39,13 +39,13 @@ ** ****************************************************************************/ -#include "qmlgraphicsimagebase.h" #include "qmlgraphicsimagebase_p.h" +#include "qmlgraphicsimagebase_p_p.h" #include #include #include #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsimagebase.h b/src/declarative/fx/qmlgraphicsimagebase.h deleted file mode 100644 index 3ad0e4b..0000000 --- a/src/declarative/fx/qmlgraphicsimagebase.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSIMAGEBASE_H -#define QMLGRAPHICSIMAGEBASE_H - -#include - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class QmlGraphicsImageBasePrivate; -class QmlGraphicsImageBase : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - -public: - QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); - ~QmlGraphicsImageBase(); - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - QUrl source() const; - virtual void setSource(const QUrl &url); - -Q_SIGNALS: - void sourceChanged(const QUrl &); - void statusChanged(Status); - void progressChanged(qreal progress); - -protected: - QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - virtual void requestFinished(); - void requestProgress(qint64,qint64); - -private: - Q_DISABLE_COPY(QmlGraphicsImageBase) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) -}; - -QT_END_NAMESPACE -QT_END_HEADER - -#endif // QMLGRAPHICSIMAGEBASE_H diff --git a/src/declarative/fx/qmlgraphicsimagebase_p.h b/src/declarative/fx/qmlgraphicsimagebase_p.h index 5fd5f11..3ad0e4b 100644 --- a/src/declarative/fx/qmlgraphicsimagebase_p.h +++ b/src/declarative/fx/qmlgraphicsimagebase_p.h @@ -39,45 +39,52 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSIMAGEBASE_P_H -#define QMLGRAPHICSIMAGEBASE_P_H +#ifndef QMLGRAPHICSIMAGEBASE_H +#define QMLGRAPHICSIMAGEBASE_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include +#include +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QNetworkReply; -class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate +class QmlGraphicsImageBasePrivate; +class QmlGraphicsImageBase : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsImageBase) + Q_OBJECT + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) public: - QmlGraphicsImageBasePrivate() - : status(QmlGraphicsImageBase::Null), - progress(0.0), - pendingPixmapCache(false) - { - } + QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); + ~QmlGraphicsImageBase(); + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + QUrl source() const; + virtual void setSource(const QUrl &url); + +Q_SIGNALS: + void sourceChanged(const QUrl &); + void statusChanged(Status); + void progressChanged(qreal progress); + +protected: + QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + virtual void requestFinished(); + void requestProgress(qint64,qint64); - QPixmap pix; - QmlGraphicsImageBase::Status status; - QUrl url; - qreal progress; - bool pendingPixmapCache; +private: + Q_DISABLE_COPY(QmlGraphicsImageBase) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) }; QT_END_NAMESPACE +QT_END_HEADER -#endif +#endif // QMLGRAPHICSIMAGEBASE_H diff --git a/src/declarative/fx/qmlgraphicsimagebase_p_p.h b/src/declarative/fx/qmlgraphicsimagebase_p_p.h new file mode 100644 index 0000000..5fd5f11 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsimagebase_p_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEBASE_P_H +#define QMLGRAPHICSIMAGEBASE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImageBase) + +public: + QmlGraphicsImageBasePrivate() + : status(QmlGraphicsImageBase::Null), + progress(0.0), + pendingPixmapCache(false) + { + } + + QPixmap pix; + QmlGraphicsImageBase::Status status; + QUrl url; + qreal progress; + bool pendingPixmapCache; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicsitem.cpp b/src/declarative/fx/qmlgraphicsitem.cpp index d5b31d0..b689c41 100644 --- a/src/declarative/fx/qmlgraphicsitem.cpp +++ b/src/declarative/fx/qmlgraphicsitem.cpp @@ -47,21 +47,21 @@ #include #include #include -#include +#include #include #include #include -#include -#include "qmlstate.h" -#include "qlistmodelinterface.h" +#include +#include +#include #include "qmlview.h" -#include "qmlstategroup.h" +#include #include "qmlgraphicsitem_p.h" #include "qmlgraphicsitem.h" -#include "qmlgraphicsevents_p.h" +#include #include QT_BEGIN_NAMESPACE @@ -2909,6 +2909,9 @@ int QmlGraphicsItemPrivate::restart(QTime &t) return n; } +#include "qmlgraphicsitem.moc" +#include "moc_qmlgraphicsitem.cpp" + QT_END_NAMESPACE QML_DECLARE_TYPE(QmlGraphicsKeysAttached) @@ -2917,5 +2920,3 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) -#include "moc_qmlgraphicsitem.cpp" -#include "qfxitem.moc" diff --git a/src/declarative/fx/qmlgraphicsitem_p.h b/src/declarative/fx/qmlgraphicsitem_p.h index 799374a..83d87a7 100644 --- a/src/declarative/fx/qmlgraphicsitem_p.h +++ b/src/declarative/fx/qmlgraphicsitem_p.h @@ -54,10 +54,10 @@ // #include -#include -#include -#include +#include #include +#include +#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicslayoutitem.cpp b/src/declarative/fx/qmlgraphicslayoutitem.cpp index b75f787..940b4bd 100644 --- a/src/declarative/fx/qmlgraphicslayoutitem.cpp +++ b/src/declarative/fx/qmlgraphicslayoutitem.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicslayoutitem.h" +#include "qmlgraphicslayoutitem_p.h" #include #include diff --git a/src/declarative/fx/qmlgraphicslayoutitem.h b/src/declarative/fx/qmlgraphicslayoutitem.h deleted file mode 100644 index 184001a..0000000 --- a/src/declarative/fx/qmlgraphicslayoutitem.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSGRAPHICSLAYOUTITEM_H -#define QMLGRAPHICSGRAPHICSLAYOUTITEM_H -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayoutItem) - Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) - Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) - Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) -public: - QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); - - QSizeF maximumSize() const { return m_maximumSize; } - void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } - - QSizeF minimumSize() const { return m_minimumSize; } - void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } - - QSizeF preferredSize() const { return m_preferredSize; } - void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } - - virtual void setGeometry(const QRectF & rect); -protected: - virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; - -Q_SIGNALS: - void maximumSizeChanged(); - void minimumSizeChanged(); - void preferredSizeChanged(); - -private: - QSizeF m_maximumSize; - QSizeF m_minimumSize; - QSizeF m_preferredSize; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLayoutItem) - -QT_END_HEADER -#endif diff --git a/src/declarative/fx/qmlgraphicslayoutitem_p.h b/src/declarative/fx/qmlgraphicslayoutitem_p.h new file mode 100644 index 0000000..184001a --- /dev/null +++ b/src/declarative/fx/qmlgraphicslayoutitem_p.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#define QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayoutItem) + Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) + Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) + Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) +public: + QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); + + QSizeF maximumSize() const { return m_maximumSize; } + void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } + + QSizeF minimumSize() const { return m_minimumSize; } + void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } + + QSizeF preferredSize() const { return m_preferredSize; } + void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } + + virtual void setGeometry(const QRectF & rect); +protected: + virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; + +Q_SIGNALS: + void maximumSizeChanged(); + void minimumSizeChanged(); + void preferredSizeChanged(); + +private: + QSizeF m_maximumSize; + QSizeF m_minimumSize; + QSizeF m_preferredSize; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsLayoutItem) + +QT_END_HEADER +#endif diff --git a/src/declarative/fx/qmlgraphicslistview.cpp b/src/declarative/fx/qmlgraphicslistview.cpp index 62ca23d..f92b755 100644 --- a/src/declarative/fx/qmlgraphicslistview.cpp +++ b/src/declarative/fx/qmlgraphicslistview.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "private/qmlgraphicsflickable_p.h" -#include "qmleasefollow.h" -#include "qlistmodelinterface.h" -#include "qmlgraphicsvisualitemmodel.h" -#include "qmlgraphicslistview.h" +#include "private/qmlgraphicsflickable_p_p.h" +#include +#include +#include "qmlgraphicsvisualitemmodel_p.h" +#include "qmlgraphicslistview_p.h" #include #include @@ -2032,4 +2032,5 @@ QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) QT_END_NAMESPACE -#include "qfxlistview.moc" + +#include "qmlgraphicslistview.moc" diff --git a/src/declarative/fx/qmlgraphicslistview.h b/src/declarative/fx/qmlgraphicslistview.h deleted file mode 100644 index 1c19c38..0000000 --- a/src/declarative/fx/qmlgraphicslistview.h +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSLISTVIEW_H -#define QMLGRAPHICSLISTVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsVisualModel; -class QmlGraphicsListViewAttached; -class QmlGraphicsListViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - - Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) - Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) - Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) - - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) - Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) - - Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) - Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) - Q_ENUMS(HighlightRangeMode) - Q_ENUMS(Orientation) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsListView(QmlGraphicsItem *parent=0); - ~QmlGraphicsListView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; - HighlightRangeMode highlightRangeMode() const; - void setHighlightRangeMode(HighlightRangeMode mode); - - qreal preferredHighlightBegin() const; - void setPreferredHighlightBegin(qreal); - - qreal preferredHighlightEnd() const; - void setPreferredHighlightEnd(qreal); - - qreal spacing() const; - void setSpacing(qreal spacing); - - enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; - Orientation orientation() const; - void setOrientation(Orientation); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - QString sectionExpression() const; - void setSectionExpression(const QString &); - QString currentSection() const; - - qreal highlightMoveSpeed() const; - void setHighlightMoveSpeed(qreal); - - qreal highlightResizeSpeed() const; - void setHighlightResizeSpeed(qreal); - - static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void incrementCurrentIndex(); - void decrementCurrentIndex(); - -Q_SIGNALS: - void countChanged(); - void spacingChanged(); - void orientationChanged(); - void currentIndexChanged(); - void currentSectionChanged(); - void sectionExpressionChanged(); - void highlightMoveSpeedChanged(); - void highlightResizeSpeedChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void refill(); - void trackedPositionChanged(); - void itemResized(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsListView) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicslistview_p.h b/src/declarative/fx/qmlgraphicslistview_p.h new file mode 100644 index 0000000..212d4f4 --- /dev/null +++ b/src/declarative/fx/qmlgraphicslistview_p.h @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLISTVIEW_H +#define QMLGRAPHICSLISTVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + + +class QmlGraphicsVisualModel; +class QmlGraphicsListViewAttached; +class QmlGraphicsListViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + + Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) + Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) + Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) + + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) + Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) + + Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) + Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) + Q_ENUMS(HighlightRangeMode) + Q_ENUMS(Orientation) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsListView(QmlGraphicsItem *parent=0); + ~QmlGraphicsListView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; + HighlightRangeMode highlightRangeMode() const; + void setHighlightRangeMode(HighlightRangeMode mode); + + qreal preferredHighlightBegin() const; + void setPreferredHighlightBegin(qreal); + + qreal preferredHighlightEnd() const; + void setPreferredHighlightEnd(qreal); + + qreal spacing() const; + void setSpacing(qreal spacing); + + enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; + Orientation orientation() const; + void setOrientation(Orientation); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + QString sectionExpression() const; + void setSectionExpression(const QString &); + QString currentSection() const; + + qreal highlightMoveSpeed() const; + void setHighlightMoveSpeed(qreal); + + qreal highlightResizeSpeed() const; + void setHighlightResizeSpeed(qreal); + + static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void incrementCurrentIndex(); + void decrementCurrentIndex(); + +Q_SIGNALS: + void countChanged(); + void spacingChanged(); + void orientationChanged(); + void currentIndexChanged(); + void currentSectionChanged(); + void sectionExpressionChanged(); + void highlightMoveSpeedChanged(); + void highlightResizeSpeedChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void refill(); + void trackedPositionChanged(); + void itemResized(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsListView) + +QT_END_HEADER + +#endif diff --git a/src/declarative/fx/qmlgraphicsloader.cpp b/src/declarative/fx/qmlgraphicsloader.cpp index b2a9c4f..70839e1 100644 --- a/src/declarative/fx/qmlgraphicsloader.cpp +++ b/src/declarative/fx/qmlgraphicsloader.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlgraphicsloader_p.h" +#include "qmlgraphicsloader_p_p.h" #include QT_BEGIN_NAMESPACE @@ -385,6 +385,6 @@ QmlGraphicsItem *QmlGraphicsLoader::item() const return d->item; } -QT_END_NAMESPACE +#include "moc_qmlgraphicsloader_p.cpp" -#include "moc_qmlgraphicsloader.cpp" +QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsloader.h b/src/declarative/fx/qmlgraphicsloader.h deleted file mode 100644 index 98f764f..0000000 --- a/src/declarative/fx/qmlgraphicsloader.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSLOADER_H -#define QMLGRAPHICSLOADER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - Q_ENUMS(ResizeMode) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) - Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) - Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - //### sourceItem - -public: - QmlGraphicsLoader(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsLoader(); - - QUrl source() const; - void setSource(const QUrl &); - - QmlComponent *sourceComponent() const; - void setSourceComponent(QmlComponent *); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; - ResizeMode resizeMode() const; - void setResizeMode(ResizeMode mode); - - QmlGraphicsItem *item() const; - -Q_SIGNALS: - void itemChanged(); - void sourceChanged(); - void statusChanged(); - void progressChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsLoader) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) - Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLoader) - -QT_END_HEADER - -#endif // QMLGRAPHICSLOADER_H diff --git a/src/declarative/fx/qmlgraphicsloader_p.h b/src/declarative/fx/qmlgraphicsloader_p.h index ea55334..98f764f 100644 --- a/src/declarative/fx/qmlgraphicsloader_p.h +++ b/src/declarative/fx/qmlgraphicsloader_p.h @@ -39,44 +39,69 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSLOADER_P_H -#define QMLGRAPHICSLOADER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsloader.h" +#ifndef QMLGRAPHICSLOADER_H +#define QMLGRAPHICSLOADER_H + +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlContext; -class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) + +class QmlGraphicsLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsLoader) + Q_OBJECT + Q_ENUMS(Status) + Q_ENUMS(ResizeMode) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) + Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) + Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + //### sourceItem public: - QmlGraphicsLoaderPrivate(); - ~QmlGraphicsLoaderPrivate(); + QmlGraphicsLoader(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsLoader(); + + QUrl source() const; + void setSource(const QUrl &); + + QmlComponent *sourceComponent() const; + void setSourceComponent(QmlComponent *); - QUrl source; - QmlGraphicsItem *item; - QmlComponent *component; - bool ownComponent; - QmlGraphicsLoader::ResizeMode resizeMode; + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; - void _q_sourceLoaded(); - void _q_updateSize(); + enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; + ResizeMode resizeMode() const; + void setResizeMode(ResizeMode mode); + + QmlGraphicsItem *item() const; + +Q_SIGNALS: + void itemChanged(); + void sourceChanged(); + void statusChanged(); + void progressChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsLoader) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) + Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) }; QT_END_NAMESPACE -#endif // QMLGRAPHICSLOADER_P_H +QML_DECLARE_TYPE(QmlGraphicsLoader) + +QT_END_HEADER + +#endif // QMLGRAPHICSLOADER_H diff --git a/src/declarative/fx/qmlgraphicsloader_p_p.h b/src/declarative/fx/qmlgraphicsloader_p_p.h new file mode 100644 index 0000000..8761d5c --- /dev/null +++ b/src/declarative/fx/qmlgraphicsloader_p_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLOADER_P_H +#define QMLGRAPHICSLOADER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsloader_p.h" + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsLoader) + +public: + QmlGraphicsLoaderPrivate(); + ~QmlGraphicsLoaderPrivate(); + + QUrl source; + QmlGraphicsItem *item; + QmlComponent *component; + bool ownComponent; + QmlGraphicsLoader::ResizeMode resizeMode; + + void _q_sourceLoaded(); + void _q_updateSize(); +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSLOADER_P_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion.cpp b/src/declarative/fx/qmlgraphicsmouseregion.cpp index 7ad1ac2..5bdb5f0 100644 --- a/src/declarative/fx/qmlgraphicsmouseregion.cpp +++ b/src/declarative/fx/qmlgraphicsmouseregion.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "qmlgraphicsmouseregion.h" #include "qmlgraphicsmouseregion_p.h" -#include "qmlgraphicsevents_p.h" +#include "qmlgraphicsmouseregion_p_p.h" +#include "qmlgraphicsevents_p_p.h" #include diff --git a/src/declarative/fx/qmlgraphicsmouseregion.h b/src/declarative/fx/qmlgraphicsmouseregion.h deleted file mode 100644 index 9874fbf..0000000 --- a/src/declarative/fx/qmlgraphicsmouseregion.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSMOUSEREGION_H -#define QMLGRAPHICSMOUSEREGION_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject -{ - Q_OBJECT - - Q_ENUMS(Axis) - Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) - Q_PROPERTY(Axis axis READ axis WRITE setAxis) - Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) - Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) - Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) - Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) - //### consider drag and drop - -public: - QmlGraphicsDrag(QObject *parent=0); - ~QmlGraphicsDrag(); - - QmlGraphicsItem *target() const; - void setTarget(QmlGraphicsItem *); - - enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; - Axis axis() const; - void setAxis(Axis); - - qreal xmin() const; - void setXmin(qreal); - qreal xmax() const; - void setXmax(qreal); - qreal ymin() const; - void setYmin(qreal); - qreal ymax() const; - void setYmax(qreal); - -private: - QmlGraphicsItem *_target; - Axis _axis; - qreal _xmin; - qreal _xmax; - qreal _ymin; - qreal _ymax; - Q_DISABLE_COPY(QmlGraphicsDrag) -}; - -class QmlGraphicsMouseEvent; -class QmlGraphicsMouseRegionPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) - Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) - Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) - Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) - Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) - Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) - Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) - Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? - -public: - QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); - ~QmlGraphicsMouseRegion(); - - qreal mouseX() const; - qreal mouseY() const; - - bool isEnabled() const; - void setEnabled(bool); - - bool hovered() const; - bool pressed() const; - - Qt::MouseButtons pressedButtons() const; - - Qt::MouseButtons acceptedButtons() const; - void setAcceptedButtons(Qt::MouseButtons buttons); - - QmlGraphicsDrag *drag(); - -Q_SIGNALS: - void hoveredChanged(); - void pressedChanged(); - void enabledChanged(); - void acceptedButtonsChanged(); - void positionChanged(QmlGraphicsMouseEvent *mouse); - - void pressed(QmlGraphicsMouseEvent *mouse); - void pressAndHold(QmlGraphicsMouseEvent *mouse); - void released(QmlGraphicsMouseEvent *mouse); - void clicked(QmlGraphicsMouseEvent *mouse); - void doubleClicked(QmlGraphicsMouseEvent *mouse); - void entered(); - void exited(); - -protected: - void setHovered(bool); - bool setPressed(bool); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void hoverEnterEvent(QGraphicsSceneHoverEvent *event); - void hoverMoveEvent(QGraphicsSceneHoverEvent *event); - void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); - bool sceneEvent(QEvent *); - void timerEvent(QTimerEvent *event); - -private: - void handlePress(); - void handleRelease(); - -protected: - QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsMouseRegion) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsDrag) -QML_DECLARE_TYPE(QmlGraphicsMouseRegion) - -QT_END_HEADER - -#endif // QMLGRAPHICSMOUSEREGION_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion_p.h b/src/declarative/fx/qmlgraphicsmouseregion_p.h index 71b31b4..9874fbf 100644 --- a/src/declarative/fx/qmlgraphicsmouseregion_p.h +++ b/src/declarative/fx/qmlgraphicsmouseregion_p.h @@ -39,76 +39,142 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSMOUSEREGION_P_H -#define QMLGRAPHICSMOUSEREGION_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qbasictimer.h" -#include "qgraphicssceneevent.h" -#include "qmlgraphicsitem_p.h" +#ifndef QMLGRAPHICSMOUSEREGION_H +#define QMLGRAPHICSMOUSEREGION_H + +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject { - Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) + Q_OBJECT + + Q_ENUMS(Axis) + Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) + Q_PROPERTY(Axis axis READ axis WRITE setAxis) + Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) + Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) + Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) + Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) + //### consider drag and drop public: - QmlGraphicsMouseRegionPrivate() - : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) - { - } - - void init() - { - Q_Q(QmlGraphicsMouseRegion); - q->setAcceptedMouseButtons(Qt::LeftButton); - } - - void saveEvent(QGraphicsSceneMouseEvent *event) { - lastPos = event->pos(); - lastButton = event->button(); - lastButtons = event->buttons(); - lastModifiers = event->modifiers(); - } - - bool isConnected(const char *signal) { - Q_Q(QmlGraphicsMouseRegion); - int idx = QObjectPrivate::get(q)->signalIndex(signal); - return QObjectPrivate::get(q)->isSignalConnected(idx); - } - - bool absorb : 1; - bool hovered : 1; - bool pressed : 1; - bool longPress : 1; - bool moved : 1; - bool dragX : 1; - bool dragY : 1; - bool dragged : 1; - QmlGraphicsDrag drag; - QPointF start; - QPointF startScene; - qreal startX; - qreal startY; - QPointF lastPos; - Qt::MouseButton lastButton; - Qt::MouseButtons lastButtons; - Qt::KeyboardModifiers lastModifiers; - QBasicTimer pressAndHoldTimer; + QmlGraphicsDrag(QObject *parent=0); + ~QmlGraphicsDrag(); + + QmlGraphicsItem *target() const; + void setTarget(QmlGraphicsItem *); + + enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; + Axis axis() const; + void setAxis(Axis); + + qreal xmin() const; + void setXmin(qreal); + qreal xmax() const; + void setXmax(qreal); + qreal ymin() const; + void setYmin(qreal); + qreal ymax() const; + void setYmax(qreal); + +private: + QmlGraphicsItem *_target; + Axis _axis; + qreal _xmin; + qreal _xmax; + qreal _ymin; + qreal _ymax; + Q_DISABLE_COPY(QmlGraphicsDrag) +}; + +class QmlGraphicsMouseEvent; +class QmlGraphicsMouseRegionPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) + Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) + Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) + Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) + Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) + Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) + Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) + Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? + +public: + QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); + ~QmlGraphicsMouseRegion(); + + qreal mouseX() const; + qreal mouseY() const; + + bool isEnabled() const; + void setEnabled(bool); + + bool hovered() const; + bool pressed() const; + + Qt::MouseButtons pressedButtons() const; + + Qt::MouseButtons acceptedButtons() const; + void setAcceptedButtons(Qt::MouseButtons buttons); + + QmlGraphicsDrag *drag(); + +Q_SIGNALS: + void hoveredChanged(); + void pressedChanged(); + void enabledChanged(); + void acceptedButtonsChanged(); + void positionChanged(QmlGraphicsMouseEvent *mouse); + + void pressed(QmlGraphicsMouseEvent *mouse); + void pressAndHold(QmlGraphicsMouseEvent *mouse); + void released(QmlGraphicsMouseEvent *mouse); + void clicked(QmlGraphicsMouseEvent *mouse); + void doubleClicked(QmlGraphicsMouseEvent *mouse); + void entered(); + void exited(); + +protected: + void setHovered(bool); + bool setPressed(bool); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + bool sceneEvent(QEvent *); + void timerEvent(QTimerEvent *event); + +private: + void handlePress(); + void handleRelease(); + +protected: + QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsMouseRegion) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) }; QT_END_NAMESPACE -#endif // QMLGRAPHICSMOUSEREGION_P_H +QML_DECLARE_TYPE(QmlGraphicsDrag) +QML_DECLARE_TYPE(QmlGraphicsMouseRegion) + +QT_END_HEADER + +#endif // QMLGRAPHICSMOUSEREGION_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion_p_p.h b/src/declarative/fx/qmlgraphicsmouseregion_p_p.h new file mode 100644 index 0000000..71b31b4 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsmouseregion_p_p.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSMOUSEREGION_P_H +#define QMLGRAPHICSMOUSEREGION_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qbasictimer.h" +#include "qgraphicssceneevent.h" +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) + +public: + QmlGraphicsMouseRegionPrivate() + : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) + { + } + + void init() + { + Q_Q(QmlGraphicsMouseRegion); + q->setAcceptedMouseButtons(Qt::LeftButton); + } + + void saveEvent(QGraphicsSceneMouseEvent *event) { + lastPos = event->pos(); + lastButton = event->button(); + lastButtons = event->buttons(); + lastModifiers = event->modifiers(); + } + + bool isConnected(const char *signal) { + Q_Q(QmlGraphicsMouseRegion); + int idx = QObjectPrivate::get(q)->signalIndex(signal); + return QObjectPrivate::get(q)->isSignalConnected(idx); + } + + bool absorb : 1; + bool hovered : 1; + bool pressed : 1; + bool longPress : 1; + bool moved : 1; + bool dragX : 1; + bool dragY : 1; + bool dragged : 1; + QmlGraphicsDrag drag; + QPointF start; + QPointF startScene; + qreal startX; + qreal startY; + QPointF lastPos; + Qt::MouseButton lastButton; + Qt::MouseButtons lastButtons; + Qt::KeyboardModifiers lastModifiers; + QBasicTimer pressAndHoldTimer; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSMOUSEREGION_P_H diff --git a/src/declarative/fx/qmlgraphicspainteditem.cpp b/src/declarative/fx/qmlgraphicspainteditem.cpp index 43d0318..5a8e711 100644 --- a/src/declarative/fx/qmlgraphicspainteditem.cpp +++ b/src/declarative/fx/qmlgraphicspainteditem.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicspainteditem.h" #include "qmlgraphicspainteditem_p.h" +#include "qmlgraphicspainteditem_p_p.h" #include #include diff --git a/src/declarative/fx/qmlgraphicspainteditem.h b/src/declarative/fx/qmlgraphicspainteditem.h deleted file mode 100644 index 7ff55a5..0000000 --- a/src/declarative/fx/qmlgraphicspainteditem.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSIMAGEITEM_H -#define QMLGRAPHICSIMAGEITEM_H - -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsPaintedItemPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) - Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) - Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) - -public: - QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsPaintedItem(); - - QSize contentsSize() const; - void setContentsSize(const QSize &); - - int cacheSize() const; - void setCacheSize(int pixels); - - QColor fillColor() const; - void setFillColor(const QColor&); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -protected: - QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); - - virtual void drawContents(QPainter *p, const QRect &) = 0; - - void setCacheFrozen(bool); - -Q_SIGNALS: - void fillColorChanged(); - -protected Q_SLOTS: - void dirtyCache(const QRect &); - void clearCache(); - -private: - void init(); - Q_DISABLE_COPY(QmlGraphicsPaintedItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPaintedItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicspainteditem_p.h b/src/declarative/fx/qmlgraphicspainteditem_p.h index d5cd673..7ff55a5 100644 --- a/src/declarative/fx/qmlgraphicspainteditem_p.h +++ b/src/declarative/fx/qmlgraphicspainteditem_p.h @@ -39,50 +39,67 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSIMAGEITEM_P_H -#define QMLGRAPHICSIMAGEITEM_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include +#ifndef QMLGRAPHICSIMAGEITEM_H +#define QMLGRAPHICSIMAGEITEM_H + +#include +#include + + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) + +class QmlGraphicsPaintedItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) + Q_OBJECT + + Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) + Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) + Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) public: - QmlGraphicsPaintedItemPrivate() - : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) - { - } - - struct ImageCacheItem { - ImageCacheItem() : age(0) {} - ~ImageCacheItem() { } - int age; - QRect area; - QRect dirty; // one dirty area (allows optimization of common cases) - QPixmap image; - }; - - QList imagecache; - - int max_imagecache_size; - QSize contentsSize; - QColor fillColor; - bool cachefrozen; + QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsPaintedItem(); + + QSize contentsSize() const; + void setContentsSize(const QSize &); + + int cacheSize() const; + void setCacheSize(int pixels); + + QColor fillColor() const; + void setFillColor(const QColor&); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +protected: + QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); + + virtual void drawContents(QPainter *p, const QRect &) = 0; + + void setCacheFrozen(bool); + +Q_SIGNALS: + void fillColorChanged(); + +protected Q_SLOTS: + void dirtyCache(const QRect &); + void clearCache(); + +private: + void init(); + Q_DISABLE_COPY(QmlGraphicsPaintedItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) }; QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPaintedItem) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicspainteditem_p_p.h b/src/declarative/fx/qmlgraphicspainteditem_p_p.h new file mode 100644 index 0000000..d5cd673 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspainteditem_p_p.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSIMAGEITEM_P_H +#define QMLGRAPHICSIMAGEITEM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) + +public: + QmlGraphicsPaintedItemPrivate() + : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) + { + } + + struct ImageCacheItem { + ImageCacheItem() : age(0) {} + ~ImageCacheItem() { } + int age; + QRect area; + QRect dirty; // one dirty area (allows optimization of common cases) + QPixmap image; + }; + + QList imagecache; + + int max_imagecache_size; + QSize contentsSize; + QColor fillColor; + bool cachefrozen; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicspath.cpp b/src/declarative/fx/qmlgraphicspath.cpp index 15dbfef..193a2c6 100644 --- a/src/declarative/fx/qmlgraphicspath.cpp +++ b/src/declarative/fx/qmlgraphicspath.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "qmlgraphicspath.h" #include "qmlgraphicspath_p.h" -#include +#include "qmlgraphicspath_p_p.h" +#include #include #include diff --git a/src/declarative/fx/qmlgraphicspath.h b/src/declarative/fx/qmlgraphicspath.h deleted file mode 100644 index db6c84f..0000000 --- a/src/declarative/fx/qmlgraphicspath.h +++ /dev/null @@ -1,259 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSPATH_H -#define QMLGRAPHICSPATH_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject -{ - Q_OBJECT -public: - QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} -Q_SIGNALS: - void changed(); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) -public: - QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} - - - QString name() const; - void setName(const QString &name); - - qreal value() const; - void setValue(qreal value); - -private: - QString _name; - qreal _value; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) - Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) -public: - QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} - - qreal x() const; - void setX(qreal x); - - qreal y() const; - void setY(qreal y); - - virtual void addToPath(QPainterPath &) {} - -private: - qreal _x; - qreal _y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve -{ - Q_OBJECT -public: - QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} - - void addToPath(QPainterPath &path); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) - Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) -public: - QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} - - qreal controlX() const; - void setControlX(qreal x); - - qreal controlY() const; - void setControlY(qreal y); - - void addToPath(QPainterPath &path); - -private: - qreal _controlX; - qreal _controlY; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) - Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) - Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) - Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) -public: - QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} - - qreal control1X() const; - void setControl1X(qreal x); - - qreal control1Y() const; - void setControl1Y(qreal y); - - qreal control2X() const; - void setControl2X(qreal x); - - qreal control2Y() const; - void setControl2Y(qreal y); - - void addToPath(QPainterPath &path); - -private: - int _control1X; - int _control1Y; - int _control2X; - int _control2Y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement -{ - Q_OBJECT - Q_PROPERTY(qreal value READ value WRITE setValue) -public: - QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} - - qreal value() const; - void setValue(qreal value); - -private: - qreal _value; -}; - -class QmlGraphicsPathPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus -{ - Q_OBJECT - - Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QList* pathElements READ pathElements) - Q_PROPERTY(qreal startX READ startX WRITE setStartX) - Q_PROPERTY(qreal startY READ startY WRITE setStartY) - Q_CLASSINFO("DefaultProperty", "pathElements") - Q_INTERFACES(QmlParserStatus) -public: - QmlGraphicsPath(QObject *parent=0); - ~QmlGraphicsPath(); - - QList* pathElements(); - - qreal startX() const; - void setStartX(qreal x); - - qreal startY() const; - void setStartY(qreal y); - - QPainterPath path() const; - QStringList attributes() const; - qreal attributeAt(const QString &, qreal) const; - QPointF pointAt(qreal) const; - -Q_SIGNALS: - void changed(); - -protected: - virtual void componentComplete(); - QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); - -private Q_SLOTS: - void processPath(); - -private: - struct AttributePoint { - AttributePoint() : percent(0), scale(1), origpercent(0) {} - AttributePoint(const AttributePoint &other) - : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} - AttributePoint &operator=(const AttributePoint &other) { - percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; - } - qreal percent; //massaged percent along the painter path - qreal scale; - qreal origpercent; //'real' percent along the painter path - QHash values; - }; - - void interpolate(int idx, const QString &name, qreal value); - void endpoint(const QString &name); - void createPointCache() const; - -private: - Q_DISABLE_COPY(QmlGraphicsPath) - Q_DECLARE_PRIVATE(QmlGraphicsPath) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathElement) -QML_DECLARE_TYPE(QmlGraphicsPathAttribute) -QML_DECLARE_TYPE(QmlGraphicsCurve) -QML_DECLARE_TYPE(QmlGraphicsPathLine) -QML_DECLARE_TYPE(QmlGraphicsPathQuad) -QML_DECLARE_TYPE(QmlGraphicsPathCubic) -QML_DECLARE_TYPE(QmlGraphicsPathPercent) -QML_DECLARE_TYPE(QmlGraphicsPath) - -QT_END_HEADER - -#endif // QMLGRAPHICSPATH_H diff --git a/src/declarative/fx/qmlgraphicspath_p.h b/src/declarative/fx/qmlgraphicspath_p.h index 7c0e1ea..db6c84f 100644 --- a/src/declarative/fx/qmlgraphicspath_p.h +++ b/src/declarative/fx/qmlgraphicspath_p.h @@ -39,41 +39,221 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSPATH_P_H -#define QMLGRAPHICSPATH_P_H +#ifndef QMLGRAPHICSPATH_H +#define QMLGRAPHICSPATH_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// +#include +#include +#include +#include -#include "private/qobject_p.h" -#include "qmlgraphicspath.h" -#include "qml.h" +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsPathPrivate : public QObjectPrivate + +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject +{ + Q_OBJECT +public: + QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} +Q_SIGNALS: + void changed(); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) +public: + QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} + + + QString name() const; + void setName(const QString &name); + + qreal value() const; + void setValue(qreal value); + +private: + QString _name; + qreal _value; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) + Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) +public: + QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} + + qreal x() const; + void setX(qreal x); + + qreal y() const; + void setY(qreal y); + + virtual void addToPath(QPainterPath &) {} + +private: + qreal _x; + qreal _y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve { - Q_DECLARE_PUBLIC(QmlGraphicsPath) + Q_OBJECT +public: + QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} + + void addToPath(QPainterPath &path); +}; +class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) + Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) public: - QmlGraphicsPathPrivate() : startX(0), startY(0) { } - - QPainterPath _path; - QList _pathElements; - mutable QVector _pointCache; - QList _attributePoints; - QStringList _attributes; - int startX; - int startY; + QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} + + qreal controlX() const; + void setControlX(qreal x); + + qreal controlY() const; + void setControlY(qreal y); + + void addToPath(QPainterPath &path); + +private: + qreal _controlX; + qreal _controlY; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) + Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) + Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) + Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) +public: + QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} + + qreal control1X() const; + void setControl1X(qreal x); + + qreal control1Y() const; + void setControl1Y(qreal y); + + qreal control2X() const; + void setControl2X(qreal x); + + qreal control2Y() const; + void setControl2Y(qreal y); + + void addToPath(QPainterPath &path); + +private: + int _control1X; + int _control1Y; + int _control2X; + int _control2Y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement +{ + Q_OBJECT + Q_PROPERTY(qreal value READ value WRITE setValue) +public: + QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} + + qreal value() const; + void setValue(qreal value); + +private: + qreal _value; +}; + +class QmlGraphicsPathPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus +{ + Q_OBJECT + + Q_INTERFACES(QmlParserStatus) + Q_PROPERTY(QList* pathElements READ pathElements) + Q_PROPERTY(qreal startX READ startX WRITE setStartX) + Q_PROPERTY(qreal startY READ startY WRITE setStartY) + Q_CLASSINFO("DefaultProperty", "pathElements") + Q_INTERFACES(QmlParserStatus) +public: + QmlGraphicsPath(QObject *parent=0); + ~QmlGraphicsPath(); + + QList* pathElements(); + + qreal startX() const; + void setStartX(qreal x); + + qreal startY() const; + void setStartY(qreal y); + + QPainterPath path() const; + QStringList attributes() const; + qreal attributeAt(const QString &, qreal) const; + QPointF pointAt(qreal) const; + +Q_SIGNALS: + void changed(); + +protected: + virtual void componentComplete(); + QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); + +private Q_SLOTS: + void processPath(); + +private: + struct AttributePoint { + AttributePoint() : percent(0), scale(1), origpercent(0) {} + AttributePoint(const AttributePoint &other) + : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} + AttributePoint &operator=(const AttributePoint &other) { + percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; + } + qreal percent; //massaged percent along the painter path + qreal scale; + qreal origpercent; //'real' percent along the painter path + QHash values; + }; + + void interpolate(int idx, const QString &name, qreal value); + void endpoint(const QString &name); + void createPointCache() const; + +private: + Q_DISABLE_COPY(QmlGraphicsPath) + Q_DECLARE_PRIVATE(QmlGraphicsPath) }; QT_END_NAMESPACE -#endif + +QML_DECLARE_TYPE(QmlGraphicsPathElement) +QML_DECLARE_TYPE(QmlGraphicsPathAttribute) +QML_DECLARE_TYPE(QmlGraphicsCurve) +QML_DECLARE_TYPE(QmlGraphicsPathLine) +QML_DECLARE_TYPE(QmlGraphicsPathQuad) +QML_DECLARE_TYPE(QmlGraphicsPathCubic) +QML_DECLARE_TYPE(QmlGraphicsPathPercent) +QML_DECLARE_TYPE(QmlGraphicsPath) + +QT_END_HEADER + +#endif // QMLGRAPHICSPATH_H diff --git a/src/declarative/fx/qmlgraphicspath_p_p.h b/src/declarative/fx/qmlgraphicspath_p_p.h new file mode 100644 index 0000000..c974318 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspath_p_p.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATH_P_H +#define QMLGRAPHICSPATH_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "private/qobject_p.h" +#include "qmlgraphicspath_p.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QmlGraphicsPathPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPath) + +public: + QmlGraphicsPathPrivate() : startX(0), startY(0) { } + + QPainterPath _path; + QList _pathElements; + mutable QVector _pointCache; + QList _attributePoints; + QStringList _attributes; + int startX; + int startY; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicspathview.cpp b/src/declarative/fx/qmlgraphicspathview.cpp index 48d9fc8..74b8a97 100644 --- a/src/declarative/fx/qmlgraphicspathview.cpp +++ b/src/declarative/fx/qmlgraphicspathview.cpp @@ -42,12 +42,12 @@ #include #include #include -#include "qmlstate.h" -#include "qlistmodelinterface.h" -#include "qmlopenmetaobject.h" +#include +#include +#include -#include "qmlgraphicspathview.h" -#include "qmlgraphicspathview_p.h" +#include +#include #include static const int FlickThreshold = 5; @@ -910,4 +910,4 @@ QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) QT_END_NAMESPACE -#include "qfxpathview.moc" +#include "qmlgraphicspathview.moc" diff --git a/src/declarative/fx/qmlgraphicspathview.h b/src/declarative/fx/qmlgraphicspathview.h deleted file mode 100644 index 3bb5d1f..0000000 --- a/src/declarative/fx/qmlgraphicspathview.h +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSPATHVIEW_H -#define QMLGRAPHICSPATHVIEW_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QListModelInterface; -class QmlGraphicsPathViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) - Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) - Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) - Q_PROPERTY(int count READ count) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) - -public: - QmlGraphicsPathView(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsPathView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlGraphicsPath *path() const; - void setPath(QmlGraphicsPath *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - qreal offset() const; - void setOffset(qreal offset); - - qreal snapPosition() const; - void setSnapPosition(qreal pos); - - qreal dragMargin() const; - void setDragMargin(qreal margin); - - int count() const; - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int pathItemCount() const; - void setPathItemCount(int); - - static QObject *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void currentIndexChanged(); - void offsetChanged(); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - bool sceneEventFilter(QGraphicsItem *, QEvent *); - void componentComplete(); - -private Q_SLOTS: - void refill(); - void ticked(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); - -private: - friend class QmlGraphicsPathViewAttached; - static QHash attachedProperties; - Q_DISABLE_COPY(QmlGraphicsPathView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathView) -QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) -QT_END_HEADER - -#endif // QMLGRAPHICSPATHVIEW_H diff --git a/src/declarative/fx/qmlgraphicspathview_p.h b/src/declarative/fx/qmlgraphicspathview_p.h index 22ee075..e2edcc9 100644 --- a/src/declarative/fx/qmlgraphicspathview_p.h +++ b/src/declarative/fx/qmlgraphicspathview_p.h @@ -39,113 +39,100 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSPATHVIEW_P_H -#define QMLGRAPHICSPATHVIEW_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qmlgraphicspathview.h" -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsvisualitemmodel.h" -#include "qml.h" -#include "private/qmlanimation_p.h" +#ifndef QMLGRAPHICSPATHVIEW_H +#define QMLGRAPHICSPATHVIEW_H + +#include +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -typedef struct PathViewItem{ - int index; - QmlGraphicsItem* item; -}PathViewItem; +QT_MODULE(Declarative) -class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate +class QListModelInterface; +class QmlGraphicsPathViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsPathView) + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) + Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) + Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) + Q_PROPERTY(int count READ count) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) public: - QmlGraphicsPathViewPrivate() - : path(0), currentIndex(0), startPc(0), lastDist(0) - , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) - , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) - , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) - , moveReason(Other) - { - fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); - } - - void init() - { - Q_Q(QmlGraphicsPathView); - _offset = 0; - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - q->setFiltersChildEvents(true); - q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); - } - - QmlGraphicsItem *getItem(int modelIndex) { - Q_Q(QmlGraphicsPathView); - requestedIndex = modelIndex; - QmlGraphicsItem *item = model->item(modelIndex); - if (item) - item->setParentItem(q); - requestedIndex = -1; - return item; - } - void releaseItem(QmlGraphicsItem *item) { - model->release(item); - } - - bool isValid() const { - return model && model->count() > 0 && model->isValid() && path; - } - - int calcCurrentIndex(); - void updateCurrent(); - void fixOffset(); + QmlGraphicsPathView(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsPathView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlGraphicsPath *path() const; + void setPath(QmlGraphicsPath *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + qreal offset() const; void setOffset(qreal offset); - void regenerate(); - void updateItem(QmlGraphicsItem *, qreal); - void snapToCurrent(); - QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; - - QmlGraphicsPath *path; - int currentIndex; - qreal startPc; - QPointF startPoint; - qreal lastDist; - int lastElapsed; - qreal _offset; - bool stealMouse : 1; - bool ownModel : 1; - QTime lastPosTime; - QPointF lastPos; - QmlGraphicsItem *activeItem; - qreal snapPos; - qreal dragMargin; - QmlTimeLine tl; - QmlTimeLineValueProxy moveOffset; - QmlTimeLineEvent fixupOffsetEvent; - int firstIndex; - int pathItems; - int pathOffset; - int requestedIndex; - QList items; - QmlGraphicsVisualModel *model; - QVariant modelVariant; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; + + qreal snapPosition() const; + void setSnapPosition(qreal pos); + + qreal dragMargin() const; + void setDragMargin(qreal margin); + + int count() const; + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int pathItemCount() const; + void setPathItemCount(int); + + static QObject *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void currentIndexChanged(); + void offsetChanged(); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + bool sceneEventFilter(QGraphicsItem *, QEvent *); + void componentComplete(); + +private Q_SLOTS: + void refill(); + void ticked(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); + +private: + friend class QmlGraphicsPathViewAttached; + static QHash attachedProperties; + Q_DISABLE_COPY(QmlGraphicsPathView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) }; QT_END_NAMESPACE -#endif +QML_DECLARE_TYPE(QmlGraphicsPathView) +QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) +QT_END_HEADER + +#endif // QMLGRAPHICSPATHVIEW_H diff --git a/src/declarative/fx/qmlgraphicspathview_p_p.h b/src/declarative/fx/qmlgraphicspathview_p_p.h new file mode 100644 index 0000000..87a5090 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspathview_p_p.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPATHVIEW_P_H +#define QMLGRAPHICSPATHVIEW_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicspathview_p.h" +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsvisualitemmodel_p.h" +#include "qml.h" +#include "private/qmlanimation_p_p.h" + +QT_BEGIN_NAMESPACE + +typedef struct PathViewItem{ + int index; + QmlGraphicsItem* item; +}PathViewItem; + +class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPathView) + +public: + QmlGraphicsPathViewPrivate() + : path(0), currentIndex(0), startPc(0), lastDist(0) + , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) + , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) + , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) + , moveReason(Other) + { + fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); + } + + void init() + { + Q_Q(QmlGraphicsPathView); + _offset = 0; + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + q->setFiltersChildEvents(true); + q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); + } + + QmlGraphicsItem *getItem(int modelIndex) { + Q_Q(QmlGraphicsPathView); + requestedIndex = modelIndex; + QmlGraphicsItem *item = model->item(modelIndex); + if (item) + item->setParentItem(q); + requestedIndex = -1; + return item; + } + void releaseItem(QmlGraphicsItem *item) { + model->release(item); + } + + bool isValid() const { + return model && model->count() > 0 && model->isValid() && path; + } + + int calcCurrentIndex(); + void updateCurrent(); + void fixOffset(); + void setOffset(qreal offset); + void regenerate(); + void updateItem(QmlGraphicsItem *, qreal); + void snapToCurrent(); + QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; + + QmlGraphicsPath *path; + int currentIndex; + qreal startPc; + QPointF startPoint; + qreal lastDist; + int lastElapsed; + qreal _offset; + bool stealMouse : 1; + bool ownModel : 1; + QTime lastPosTime; + QPointF lastPos; + QmlGraphicsItem *activeItem; + qreal snapPos; + qreal dragMargin; + QmlTimeLine tl; + QmlTimeLineValueProxy moveOffset; + QmlTimeLineEvent fixupOffsetEvent; + int firstIndex; + int pathItems; + int pathOffset; + int requestedIndex; + QList items; + QmlGraphicsVisualModel *model; + QVariant modelVariant; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/fx/qmlgraphicspixmapcache.cpp b/src/declarative/fx/qmlgraphicspixmapcache.cpp index e347a8b..37a1e20 100644 --- a/src/declarative/fx/qmlgraphicspixmapcache.cpp +++ b/src/declarative/fx/qmlgraphicspixmapcache.cpp @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#include "qmlgraphicspixmapcache.h" +#include "qmlgraphicspixmapcache_p.h" #include #include #include #include -#include +#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicspixmapcache.h b/src/declarative/fx/qmlgraphicspixmapcache.h deleted file mode 100644 index 5094665..0000000 --- a/src/declarative/fx/qmlgraphicspixmapcache.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSPIXMAPCACHE_H -#define QMLGRAPHICSPIXMAPCACHE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlEngine; -class QNetworkReply; -class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache -{ -public: - static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); - static void cancelGet(const QUrl& url, QObject* obj); - - static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. - - static int pendingRequests(); // mainly for test verification -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLGRAPHICSPIXMAPCACHE_H diff --git a/src/declarative/fx/qmlgraphicspixmapcache_p.h b/src/declarative/fx/qmlgraphicspixmapcache_p.h new file mode 100644 index 0000000..5094665 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspixmapcache_p.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSPIXMAPCACHE_H +#define QMLGRAPHICSPIXMAPCACHE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlEngine; +class QNetworkReply; +class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache +{ +public: + static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); + static void cancelGet(const QUrl& url, QObject* obj); + + static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. + + static int pendingRequests(); // mainly for test verification +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLGRAPHICSPIXMAPCACHE_H diff --git a/src/declarative/fx/qmlgraphicspositioners.cpp b/src/declarative/fx/qmlgraphicspositioners.cpp index 31950e6..3f8a915 100644 --- a/src/declarative/fx/qmlgraphicspositioners.cpp +++ b/src/declarative/fx/qmlgraphicspositioners.cpp @@ -42,12 +42,12 @@ #include #include #include "qml.h" -#include "qmlstate.h" -#include "qmlstategroup.h" -#include "qmlstateoperations.h" -#include "private/qfxperf_p.h" -#include "qmlgraphicspositioners.h" -#include "qmlgraphicspositioners_p.h" +#include +#include +#include +#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspositioners.h b/src/declarative/fx/qmlgraphicspositioners.h deleted file mode 100644 index e252ed8..0000000 --- a/src/declarative/fx/qmlgraphicspositioners.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSLAYOUTS_H -#define QMLGRAPHICSLAYOUTS_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsBasePositionerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(QmlTransition *move READ move WRITE setMove) - Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) - Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) -public: - enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; - QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); - - int spacing() const; - void setSpacing(int); - - QmlTransition *move() const; - void setMove(QmlTransition *); - - QmlTransition *add() const; - void setAdd(QmlTransition *); - - QmlTransition *remove() const; - void setRemove(QmlTransition *); - -protected: - virtual void componentComplete(); - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); - virtual bool event(QEvent *); - QSet* newItems(); - QSet* leavingItems(); - QSet* items(); - void applyAdd(const QList >& changes, QmlGraphicsItem* target); - void applyMove(const QList >& changes, QmlGraphicsItem* target); - void applyRemove(const QList >& changes, QmlGraphicsItem* target); - void finishApplyTransitions(); - -Q_SIGNALS: - void layoutItemChanged(); - void spacingChanged(); - -protected Q_SLOTS: - virtual void doPositioning()=0; - -private Q_SLOTS: - void prePositioning(); - -protected: - QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); - void setMovingItem(QmlGraphicsItem *); - -private: - void applyTransition(const QList >& changes, QmlGraphicsItem* target, - QmlStateOperation::ActionList &actions); - Q_DISABLE_COPY(QmlGraphicsBasePositioner) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsColumn(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsColumn) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsRow(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsRow) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner -{ - Q_OBJECT - Q_PROPERTY(int rows READ rows WRITE setRows) - Q_PROPERTY(int columns READ columns WRITE setcolumns) -public: - QmlGraphicsGrid(QmlGraphicsItem *parent=0); - - int rows() const {return _rows;} - void setRows(const int rows){_rows = rows;} - - int columns() const {return _columns;} - void setcolumns(const int columns){_columns = columns;} -protected Q_SLOTS: - virtual void doPositioning(); - -private: - int _rows; - int _columns; - Q_DISABLE_COPY(QmlGraphicsGrid) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsColumn) -QML_DECLARE_TYPE(QmlGraphicsRow) -QML_DECLARE_TYPE(QmlGraphicsGrid) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicspositioners_p.h b/src/declarative/fx/qmlgraphicspositioners_p.h index f8ca6fd..3304e76 100644 --- a/src/declarative/fx/qmlgraphicspositioners_p.h +++ b/src/declarative/fx/qmlgraphicspositioners_p.h @@ -39,67 +39,129 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSLAYOUTS_P_H -#define QMLGRAPHICSLAYOUTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include +#ifndef QMLGRAPHICSLAYOUTS_H +#define QMLGRAPHICSLAYOUTS_H + #include #include -#include -#include -#include -#include +#include +#include + + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate + +QT_MODULE(Declarative) +class QmlGraphicsBasePositionerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) + Q_OBJECT + Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(QmlTransition *move READ move WRITE setMove) + Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) + Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) public: - QmlGraphicsBasePositionerPrivate() - : _ep(false), _componentComplete(false), _spacing(0), - aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), - removeTransition(0), _movingItem(0) - { - } - - void init(QmlGraphicsBasePositioner::AutoUpdateType at) - { - aut = at; - } - - bool _ep; - bool _componentComplete; - int _spacing; - QmlGraphicsBasePositioner::AutoUpdateType aut; - QmlTransition *moveTransition; - QmlTransition *addTransition; - QmlTransition *removeTransition; - QSet _items; - QSet _leavingItems; - QSet _stableItems; - QSet _newItems; - QSet _animated; - QmlStateOperation::ActionList addActions; - QmlStateOperation::ActionList moveActions; - QmlStateOperation::ActionList removeActions; - QmlTransitionManager addTransitionManager; - QmlTransitionManager moveTransitionManager; - QmlTransitionManager removeTransitionManager; -// QmlStateGroup *stateGroup; - QmlGraphicsItem *_movingItem; + enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; + QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); + + int spacing() const; + void setSpacing(int); + + QmlTransition *move() const; + void setMove(QmlTransition *); + + QmlTransition *add() const; + void setAdd(QmlTransition *); + + QmlTransition *remove() const; + void setRemove(QmlTransition *); + +protected: + virtual void componentComplete(); + virtual QVariant itemChange(GraphicsItemChange, const QVariant &); + virtual bool event(QEvent *); + QSet* newItems(); + QSet* leavingItems(); + QSet* items(); + void applyAdd(const QList >& changes, QmlGraphicsItem* target); + void applyMove(const QList >& changes, QmlGraphicsItem* target); + void applyRemove(const QList >& changes, QmlGraphicsItem* target); + void finishApplyTransitions(); + +Q_SIGNALS: + void layoutItemChanged(); + void spacingChanged(); + +protected Q_SLOTS: + virtual void doPositioning()=0; + +private Q_SLOTS: + void prePositioning(); + +protected: + QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); + void setMovingItem(QmlGraphicsItem *); + +private: + void applyTransition(const QList >& changes, QmlGraphicsItem* target, + QmlStateOperation::ActionList &actions); + Q_DISABLE_COPY(QmlGraphicsBasePositioner) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsColumn(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsColumn) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsRow(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsRow) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner +{ + Q_OBJECT + Q_PROPERTY(int rows READ rows WRITE setRows) + Q_PROPERTY(int columns READ columns WRITE setcolumns) +public: + QmlGraphicsGrid(QmlGraphicsItem *parent=0); + + int rows() const {return _rows;} + void setRows(const int rows){_rows = rows;} + + int columns() const {return _columns;} + void setcolumns(const int columns){_columns = columns;} +protected Q_SLOTS: + virtual void doPositioning(); + +private: + int _rows; + int _columns; + Q_DISABLE_COPY(QmlGraphicsGrid) }; QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsColumn) +QML_DECLARE_TYPE(QmlGraphicsRow) +QML_DECLARE_TYPE(QmlGraphicsGrid) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicspositioners_p_p.h b/src/declarative/fx/qmlgraphicspositioners_p_p.h new file mode 100644 index 0000000..571b815 --- /dev/null +++ b/src/declarative/fx/qmlgraphicspositioners_p_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSLAYOUTS_P_H +#define QMLGRAPHICSLAYOUTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) + +public: + QmlGraphicsBasePositionerPrivate() + : _ep(false), _componentComplete(false), _spacing(0), + aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), + removeTransition(0), _movingItem(0) + { + } + + void init(QmlGraphicsBasePositioner::AutoUpdateType at) + { + aut = at; + } + + bool _ep; + bool _componentComplete; + int _spacing; + QmlGraphicsBasePositioner::AutoUpdateType aut; + QmlTransition *moveTransition; + QmlTransition *addTransition; + QmlTransition *removeTransition; + QSet _items; + QSet _leavingItems; + QSet _stableItems; + QSet _newItems; + QSet _animated; + QmlStateOperation::ActionList addActions; + QmlStateOperation::ActionList moveActions; + QmlStateOperation::ActionList removeActions; + QmlTransitionManager addTransitionManager; + QmlTransitionManager moveTransitionManager; + QmlTransitionManager removeTransitionManager; +// QmlStateGroup *stateGroup; + QmlGraphicsItem *_movingItem; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicsrect.cpp b/src/declarative/fx/qmlgraphicsrect.cpp index 1784ae1..e5c226c 100644 --- a/src/declarative/fx/qmlgraphicsrect.cpp +++ b/src/declarative/fx/qmlgraphicsrect.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicsrect.h" #include "qmlgraphicsrect_p.h" +#include "qmlgraphicsrect_p_p.h" #include #include diff --git a/src/declarative/fx/qmlgraphicsrect.h b/src/declarative/fx/qmlgraphicsrect.h deleted file mode 100644 index 454b2f1..0000000 --- a/src/declarative/fx/qmlgraphicsrect.h +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSRECT_H -#define QMLGRAPHICSRECT_H - -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) -public: - QmlGraphicsPen(QObject *parent=0) - : QObject(parent), _width(1), _color("#000000"), _valid(false) - {} - - int width() const { return _width; } - void setWidth(int w); - - QColor color() const { return _color; } - void setColor(const QColor &c); - - bool isValid() { return _valid; }; - -Q_SIGNALS: - void penChanged(); - -private: - int _width; - QColor _color; - bool _valid; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject -{ - Q_OBJECT - - Q_PROPERTY(qreal position READ position WRITE setPosition) - Q_PROPERTY(QColor color READ color WRITE setColor) - -public: - QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} - - qreal position() const { return m_position; } - void setPosition(qreal position) { m_position = position; updateGradient(); } - - QColor color() const { return m_color; } - void setColor(const QColor &color) { m_color = color; updateGradient(); } - -private: - void updateGradient(); - -private: - qreal m_position; - QColor m_color; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QList *stops READ stops) - Q_CLASSINFO("DefaultProperty", "stops") - -public: - QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} - ~QmlGraphicsGradient() { delete m_gradient; } - - QList *stops() { return &m_stops; } - - const QGradient *gradient() const; - -Q_SIGNALS: - void updated(); - -private: - void doUpdate(); - -private: - QList m_stops; - mutable QGradient *m_gradient; - friend class QmlGraphicsGradientStop; -}; - -class QmlGraphicsRectPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) - Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) - Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) -public: - QmlGraphicsRect(QmlGraphicsItem *parent=0); - - QColor color() const; - void setColor(const QColor &); - - QmlGraphicsPen *border(); - - QmlGraphicsGradient *gradient() const; - void setGradient(QmlGraphicsGradient *gradient); - - qreal radius() const; - void setRadius(qreal radius); - - QRectF boundingRect() const; - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void colorChanged(); - void radiusChanged(); - -private Q_SLOTS: - void doUpdate(); - -private: - void generateRoundedRect(); - void generateBorderedRect(); - void drawRect(QPainter &painter); - -protected: - QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsRect) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPen) -QML_DECLARE_TYPE(QmlGraphicsGradientStop) -QML_DECLARE_TYPE(QmlGraphicsGradient) -QML_DECLARE_TYPE(QmlGraphicsRect) - -QT_END_HEADER - -#endif // QMLGRAPHICSRECT_H diff --git a/src/declarative/fx/qmlgraphicsrect_p.h b/src/declarative/fx/qmlgraphicsrect_p.h index f44e8de..454b2f1 100644 --- a/src/declarative/fx/qmlgraphicsrect_p.h +++ b/src/declarative/fx/qmlgraphicsrect_p.h @@ -39,71 +39,151 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSRECT_P_H -#define QMLGRAPHICSRECT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" +#ifndef QMLGRAPHICSRECT_H +#define QMLGRAPHICSRECT_H + +#include +#include + + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsGradient; -class QmlGraphicsRect; -class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) +public: + QmlGraphicsPen(QObject *parent=0) + : QObject(parent), _width(1), _color("#000000"), _valid(false) + {} + + int width() const { return _width; } + void setWidth(int w); + + QColor color() const { return _color; } + void setColor(const QColor &c); + + bool isValid() { return _valid; }; + +Q_SIGNALS: + void penChanged(); + +private: + int _width; + QColor _color; + bool _valid; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject { - Q_DECLARE_PUBLIC(QmlGraphicsRect) + Q_OBJECT + + Q_PROPERTY(qreal position READ position WRITE setPosition) + Q_PROPERTY(QColor color READ color WRITE setColor) public: - QmlGraphicsRectPrivate() : - color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) - { - } - - ~QmlGraphicsRectPrivate() - { - delete pen; - } - - void init() - { - } - - QColor getColor(); - QColor color; - QmlGraphicsGradient *gradient; - QmlGraphicsPen *getPen() { - if (!pen) { - Q_Q(QmlGraphicsRect); - pen = new QmlGraphicsPen; - QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); - } - return pen; - } - QmlGraphicsPen *pen; - qreal radius; - qreal paintmargin; - QPixmap rectImage; - - void setPaintMargin(qreal margin) - { - Q_Q(QmlGraphicsRect); - if (margin == paintmargin) - return; - q->prepareGeometryChange(); - paintmargin = margin; - } + QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} + + qreal position() const { return m_position; } + void setPosition(qreal position) { m_position = position; updateGradient(); } + + QColor color() const { return m_color; } + void setColor(const QColor &color) { m_color = color; updateGradient(); } + +private: + void updateGradient(); + +private: + qreal m_position; + QColor m_color; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QList *stops READ stops) + Q_CLASSINFO("DefaultProperty", "stops") + +public: + QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} + ~QmlGraphicsGradient() { delete m_gradient; } + + QList *stops() { return &m_stops; } + + const QGradient *gradient() const; + +Q_SIGNALS: + void updated(); + +private: + void doUpdate(); + +private: + QList m_stops; + mutable QGradient *m_gradient; + friend class QmlGraphicsGradientStop; +}; + +class QmlGraphicsRectPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) + Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) + Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) +public: + QmlGraphicsRect(QmlGraphicsItem *parent=0); + + QColor color() const; + void setColor(const QColor &); + + QmlGraphicsPen *border(); + + QmlGraphicsGradient *gradient() const; + void setGradient(QmlGraphicsGradient *gradient); + + qreal radius() const; + void setRadius(qreal radius); + + QRectF boundingRect() const; + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void colorChanged(); + void radiusChanged(); + +private Q_SLOTS: + void doUpdate(); + +private: + void generateRoundedRect(); + void generateBorderedRect(); + void drawRect(QPainter &painter); + +protected: + QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsRect) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) }; QT_END_NAMESPACE -#endif // QMLGRAPHICSRECT_P_H +QML_DECLARE_TYPE(QmlGraphicsPen) +QML_DECLARE_TYPE(QmlGraphicsGradientStop) +QML_DECLARE_TYPE(QmlGraphicsGradient) +QML_DECLARE_TYPE(QmlGraphicsRect) + +QT_END_HEADER + +#endif // QMLGRAPHICSRECT_H diff --git a/src/declarative/fx/qmlgraphicsrect_p_p.h b/src/declarative/fx/qmlgraphicsrect_p_p.h new file mode 100644 index 0000000..f44e8de --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrect_p_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSRECT_P_H +#define QMLGRAPHICSRECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGradient; +class QmlGraphicsRect; +class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRect) + +public: + QmlGraphicsRectPrivate() : + color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) + { + } + + ~QmlGraphicsRectPrivate() + { + delete pen; + } + + void init() + { + } + + QColor getColor(); + QColor color; + QmlGraphicsGradient *gradient; + QmlGraphicsPen *getPen() { + if (!pen) { + Q_Q(QmlGraphicsRect); + pen = new QmlGraphicsPen; + QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); + } + return pen; + } + QmlGraphicsPen *pen; + qreal radius; + qreal paintmargin; + QPixmap rectImage; + + void setPaintMargin(qreal margin) + { + Q_Q(QmlGraphicsRect); + if (margin == paintmargin) + return; + q->prepareGeometryChange(); + paintmargin = margin; + } +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSRECT_P_H diff --git a/src/declarative/fx/qmlgraphicsrepeater.cpp b/src/declarative/fx/qmlgraphicsrepeater.cpp index 608f948..c50c220 100644 --- a/src/declarative/fx/qmlgraphicsrepeater.cpp +++ b/src/declarative/fx/qmlgraphicsrepeater.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "qmlgraphicsrepeater.h" #include "qmlgraphicsrepeater_p.h" -#include "qmllistaccessor.h" -#include "qmlgraphicsvisualitemmodel.h" -#include +#include "qmlgraphicsrepeater_p_p.h" +#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsrepeater.h b/src/declarative/fx/qmlgraphicsrepeater.h deleted file mode 100644 index 9cb7d45..0000000 --- a/src/declarative/fx/qmlgraphicsrepeater.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSREPEATER_H -#define QMLGRAPHICSREPEATER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsRepeaterPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "delegate") - -public: - QmlGraphicsRepeater(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsRepeater(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int count() const; - -Q_SIGNALS: - void countChanged(); - -private: - void clear(); - void regenerate(); - -protected: - virtual void componentComplete(); - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - void itemsInserted(int,int); - void itemsRemoved(int,int); - void itemsMoved(int,int,int); - -private: - Q_DISABLE_COPY(QmlGraphicsRepeater) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsRepeater) - -QT_END_HEADER - -#endif // QMLGRAPHICSREPEATER_H diff --git a/src/declarative/fx/qmlgraphicsrepeater_p.h b/src/declarative/fx/qmlgraphicsrepeater_p.h index 7c111da..9cb7d45 100644 --- a/src/declarative/fx/qmlgraphicsrepeater_p.h +++ b/src/declarative/fx/qmlgraphicsrepeater_p.h @@ -39,43 +39,65 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSREPEATER_P_H -#define QMLGRAPHICSREPEATER_P_H +#ifndef QMLGRAPHICSREPEATER_H +#define QMLGRAPHICSREPEATER_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsrepeater.h" -#include +#include +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlContext; -class QmlGraphicsVisualModel; -class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) + +class QmlGraphicsRepeaterPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsRepeater) + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "delegate") public: - QmlGraphicsRepeaterPrivate(); - ~QmlGraphicsRepeaterPrivate(); + QmlGraphicsRepeater(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsRepeater(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int count() const; - QmlGraphicsVisualModel *model; - QVariant dataSource; - bool ownModel; +Q_SIGNALS: + void countChanged(); - QList > deletables; +private: + void clear(); + void regenerate(); + +protected: + virtual void componentComplete(); + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + void itemsInserted(int,int); + void itemsRemoved(int,int); + void itemsMoved(int,int,int); + +private: + Q_DISABLE_COPY(QmlGraphicsRepeater) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) }; QT_END_NAMESPACE -#endif // QMLGRAPHICSREPEATER_P_H + +QML_DECLARE_TYPE(QmlGraphicsRepeater) + +QT_END_HEADER + +#endif // QMLGRAPHICSREPEATER_H diff --git a/src/declarative/fx/qmlgraphicsrepeater_p_p.h b/src/declarative/fx/qmlgraphicsrepeater_p_p.h new file mode 100644 index 0000000..d8b83be --- /dev/null +++ b/src/declarative/fx/qmlgraphicsrepeater_p_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSREPEATER_P_H +#define QMLGRAPHICSREPEATER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsrepeater_p.h" +#include + + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsVisualModel; +class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRepeater) + +public: + QmlGraphicsRepeaterPrivate(); + ~QmlGraphicsRepeaterPrivate(); + + QmlGraphicsVisualModel *model; + QVariant dataSource; + bool ownModel; + + QList > deletables; +}; + +QT_END_NAMESPACE +#endif // QMLGRAPHICSREPEATER_P_H diff --git a/src/declarative/fx/qmlgraphicsscalegrid.cpp b/src/declarative/fx/qmlgraphicsscalegrid.cpp index fdf44cf..251f823 100644 --- a/src/declarative/fx/qmlgraphicsscalegrid.cpp +++ b/src/declarative/fx/qmlgraphicsscalegrid.cpp @@ -42,7 +42,7 @@ #include #include #include -#include "qmlgraphicsscalegrid_p.h" +#include "qmlgraphicsscalegrid_p_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsscalegrid_p.h b/src/declarative/fx/qmlgraphicsscalegrid_p.h deleted file mode 100644 index 040db4c..0000000 --- a/src/declarative/fx/qmlgraphicsscalegrid_p.h +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSSCALEGRID_H -#define QMLGRAPHICSSCALEGRID_H - -#include -#include -#include -#include -#include -#include "qmlgraphicsborderimage.h" - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject -{ - Q_OBJECT - Q_ENUMS(TileRule) - - Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) - Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) - Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) - Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) - -public: - QmlGraphicsScaleGrid(QObject *parent=0); - ~QmlGraphicsScaleGrid(); - - bool isNull() const; - - int left() const { return _left; } - void setLeft(int); - - int top() const { return _top; } - void setTop(int); - - int right() const { return _right; } - void setRight(int); - - int bottom() const { return _bottom; } - void setBottom(int); - -Q_SIGNALS: - void borderChanged(); - -private: - int _left; - int _top; - int _right; - int _bottom; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage -{ -public: - QmlGraphicsGridScaledImage(); - QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); - QmlGraphicsGridScaledImage(QIODevice*); - QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); - bool isValid() const; - int gridLeft() const; - int gridRight() const; - int gridTop() const; - int gridBottom() const; - QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } - QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } - - QString pixmapUrl() const; - -private: - static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); - -private: - int _l; - int _r; - int _t; - int _b; - QmlGraphicsBorderImage::TileMode _h; - QmlGraphicsBorderImage::TileMode _v; - QString _pix; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsScaleGrid) - -QT_END_HEADER - -#endif // QMLGRAPHICSSCALEGRID_H diff --git a/src/declarative/fx/qmlgraphicsscalegrid_p_p.h b/src/declarative/fx/qmlgraphicsscalegrid_p_p.h new file mode 100644 index 0000000..d5acca2 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsscalegrid_p_p.h @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSSCALEGRID_H +#define QMLGRAPHICSSCALEGRID_H + +#include +#include +#include +#include +#include +#include "qmlgraphicsborderimage_p.h" + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject +{ + Q_OBJECT + Q_ENUMS(TileRule) + + Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) + Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) + Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) + Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) + +public: + QmlGraphicsScaleGrid(QObject *parent=0); + ~QmlGraphicsScaleGrid(); + + bool isNull() const; + + int left() const { return _left; } + void setLeft(int); + + int top() const { return _top; } + void setTop(int); + + int right() const { return _right; } + void setRight(int); + + int bottom() const { return _bottom; } + void setBottom(int); + +Q_SIGNALS: + void borderChanged(); + +private: + int _left; + int _top; + int _right; + int _bottom; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage +{ +public: + QmlGraphicsGridScaledImage(); + QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); + QmlGraphicsGridScaledImage(QIODevice*); + QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); + bool isValid() const; + int gridLeft() const; + int gridRight() const; + int gridTop() const; + int gridBottom() const; + QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } + QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } + + QString pixmapUrl() const; + +private: + static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); + +private: + int _l; + int _r; + int _t; + int _b; + QmlGraphicsBorderImage::TileMode _h; + QmlGraphicsBorderImage::TileMode _v; + QString _pix; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsScaleGrid) + +QT_END_HEADER + +#endif // QMLGRAPHICSSCALEGRID_H diff --git a/src/declarative/fx/qmlgraphicstext.cpp b/src/declarative/fx/qmlgraphicstext.cpp index f5ea55f..0b88cc5 100644 --- a/src/declarative/fx/qmlgraphicstext.cpp +++ b/src/declarative/fx/qmlgraphicstext.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "qmlgraphicstext.h" #include "qmlgraphicstext_p.h" +#include "qmlgraphicstext_p_p.h" #include -#include +#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicstext.h b/src/declarative/fx/qmlgraphicstext.h deleted file mode 100644 index 619de87..0000000 --- a/src/declarative/fx/qmlgraphicstext.h +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSTEXT_H -#define QMLGRAPHICSTEXT_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsTextPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(VAlignment) - Q_ENUMS(TextStyle) - Q_ENUMS(TextFormat) - Q_ENUMS(TextElideMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(TextStyle style READ style WRITE setStyle) - Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? - -public: - QmlGraphicsText(QmlGraphicsItem *parent=0); - ~QmlGraphicsText(); - - enum HAlignment { AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter }; - enum VAlignment { AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter }; - enum TextStyle { Normal, - Outline, - Raised, - Sunken }; - enum TextFormat { PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText }; - enum TextElideMode { ElideLeft = Qt::ElideLeft, - ElideRight = Qt::ElideRight, - ElideMiddle = Qt::ElideMiddle, - ElideNone = Qt::ElideNone }; - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - TextStyle style() const; - void setStyle(TextStyle style); - - QColor styleColor() const; - void setStyleColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - TextElideMode elideMode() const; - void setElideMode(TextElideMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(const QString &text); - void linkActivated(const QString &link); - -protected: - QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - -private: - Q_DISABLE_COPY(QmlGraphicsText) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsText) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicstext_p.h b/src/declarative/fx/qmlgraphicstext_p.h index bf14c6f..619de87 100644 --- a/src/declarative/fx/qmlgraphicstext_p.h +++ b/src/declarative/fx/qmlgraphicstext_p.h @@ -39,75 +39,113 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSTEXT_P_H -#define QMLGRAPHICSTEXT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem.h" -#include "qmlgraphicsitem_p.h" -#include "qml.h" -#include +#ifndef QMLGRAPHICSTEXT_H +#define QMLGRAPHICSTEXT_H -QT_BEGIN_NAMESPACE +#include + +QT_BEGIN_HEADER -class QTextLayout; -class QTextDocument; -class QTextControl; +QT_BEGIN_NAMESPACE -class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate +QT_MODULE(Declarative) +class QmlGraphicsTextPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem { - Q_DECLARE_PUBLIC(QmlGraphicsText) + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(VAlignment) + Q_ENUMS(TextStyle) + Q_ENUMS(TextFormat) + Q_ENUMS(TextElideMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(TextStyle style READ style WRITE setStyle) + Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? + public: - QmlGraphicsTextPrivate() - : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), - hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), - dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), - format(QmlGraphicsText::AutoText) - { - } - - void updateSize(); - void checkImgCache(); - - void drawOutline(); - void drawOutline(int yOffset); - - QPixmap wrappedTextImage(bool drawStyle); - QPixmap richTextImage(bool drawStyle); - QSize setupTextLayout(QTextLayout *layout); - - QString text; - QFont font; - QColor color; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QString activeLink; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsText::HAlignment hAlign; - QmlGraphicsText::VAlignment vAlign; - QmlGraphicsText::TextElideMode elideMode; - bool dirty; - bool wrap; - bool richText; - bool singleline; - QTextControl *control; - QTextDocument *doc; - QTextLayout layout; - QSize cachedLayoutSize; - QmlGraphicsText::TextFormat format; + QmlGraphicsText(QmlGraphicsItem *parent=0); + ~QmlGraphicsText(); + + enum HAlignment { AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter }; + enum VAlignment { AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter }; + enum TextStyle { Normal, + Outline, + Raised, + Sunken }; + enum TextFormat { PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText }; + enum TextElideMode { ElideLeft = Qt::ElideLeft, + ElideRight = Qt::ElideRight, + ElideMiddle = Qt::ElideMiddle, + ElideNone = Qt::ElideNone }; + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + TextStyle style() const; + void setStyle(TextStyle style); + + QColor styleColor() const; + void setStyleColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + TextElideMode elideMode() const; + void setElideMode(TextElideMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(const QString &text); + void linkActivated(const QString &link); + +protected: + QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + +private: + Q_DISABLE_COPY(QmlGraphicsText) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) }; QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsText) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicstext_p_p.h b/src/declarative/fx/qmlgraphicstext_p_p.h new file mode 100644 index 0000000..bf14c6f --- /dev/null +++ b/src/declarative/fx/qmlgraphicstext_p_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXT_P_H +#define QMLGRAPHICSTEXT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include + +QT_BEGIN_NAMESPACE + +class QTextLayout; +class QTextDocument; +class QTextControl; + +class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsText) +public: + QmlGraphicsTextPrivate() + : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), + hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), + dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), + format(QmlGraphicsText::AutoText) + { + } + + void updateSize(); + void checkImgCache(); + + void drawOutline(); + void drawOutline(int yOffset); + + QPixmap wrappedTextImage(bool drawStyle); + QPixmap richTextImage(bool drawStyle); + QSize setupTextLayout(QTextLayout *layout); + + QString text; + QFont font; + QColor color; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QString activeLink; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsText::HAlignment hAlign; + QmlGraphicsText::VAlignment vAlign; + QmlGraphicsText::TextElideMode elideMode; + bool dirty; + bool wrap; + bool richText; + bool singleline; + QTextControl *control; + QTextDocument *doc; + QTextLayout layout; + QSize cachedLayoutSize; + QmlGraphicsText::TextFormat format; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicstextedit.cpp b/src/declarative/fx/qmlgraphicstextedit.cpp index 24c64c1..a42ccdd 100644 --- a/src/declarative/fx/qmlgraphicstextedit.cpp +++ b/src/declarative/fx/qmlgraphicstextedit.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include #include "qmlgraphicstextedit_p.h" +#include "qmlgraphicstextedit_p_p.h" #include -#include -#include "qmlgraphicsevents_p.h" +#include +#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicstextedit.h b/src/declarative/fx/qmlgraphicstextedit.h deleted file mode 100644 index 57f7449..0000000 --- a/src/declarative/fx/qmlgraphicstextedit.h +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSTEXTEDIT_H -#define QMLGRAPHICSTEXTEDIT_H - -#include -#include - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsTextEditPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(VAlignment) - Q_ENUMS(HAlignment) - Q_ENUMS(TextFormat) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) - Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) - -public: - QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - enum VAlignment { - AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter - }; - - enum TextFormat { - PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText - }; - - QString text() const; - void setText(const QString &); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int pos); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - bool focusOnPress() const; - void setFocusOnPress(bool on); - - bool persistentSelection() const; - void setPersistentSelection(bool on); - - qreal textMargin() const; - void setTextMargin(qreal margin); - - virtual void componentComplete(); - - /* FROM EDIT */ - void setReadOnly(bool); - bool isReadOnly() const; - - void setTextInteractionFlags(Qt::TextInteractionFlags flags); - Qt::TextInteractionFlags textInteractionFlags() const; - - QTextCursor cursorForPosition(const QPoint &pos) const; - QRect cursorRect(const QTextCursor &cursor) const; - QRect cursorRect() const; - - void setTextCursor(const QTextCursor &cursor); - QTextCursor textCursor() const; - - void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); - - QVariant inputMethodQuery(Qt::InputMethodQuery property) const; - -Q_SIGNALS: - void textChanged(const QString &); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectionChanged(); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateImgCache(const QRectF &rect); - void q_textChanged(); - void updateSelectionMarkers(); - void moveCursorDelegate(); - void loadCursorDelegate(); - -private: - void updateSize(); - -protected: - QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - bool event(QEvent *); - void keyPressEvent(QKeyEvent *); - void keyReleaseEvent(QKeyEvent *); - - void focusChanged(bool); - - // mouse filter? - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - - void inputMethodEvent(QInputMethodEvent *e); - - void drawContents(QPainter *, const QRect &); -private: - Q_DISABLE_COPY(QmlGraphicsTextEdit) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextEdit) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicstextedit_p.h b/src/declarative/fx/qmlgraphicstextedit_p.h index 7a163f8..57a9327 100644 --- a/src/declarative/fx/qmlgraphicstextedit_p.h +++ b/src/declarative/fx/qmlgraphicstextedit_p.h @@ -39,75 +39,196 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSTEXTEDIT_P_H -#define QMLGRAPHICSTEXTEDIT_P_H +#ifndef QMLGRAPHICSTEXTEDIT_H +#define QMLGRAPHICSTEXTEDIT_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// +#include +#include -#include "qmlgraphicsitem.h" -#include "qmlgraphicspainteditem_p.h" -#include "qml.h" +#include +#include +#include +#include +QT_BEGIN_HEADER + QT_BEGIN_NAMESPACE -class QTextLayout; -class QTextDocument; -class QTextControl; -class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate + +QT_MODULE(Declarative) + + +class QmlGraphicsTextEditPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem { - Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) + Q_OBJECT + Q_ENUMS(VAlignment) + Q_ENUMS(HAlignment) + Q_ENUMS(TextFormat) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) + Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) public: - QmlGraphicsTextEditPrivate() - : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), - dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), - persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), - cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) - { - } - - void init(); - - void updateDefaultTextOption(); - void relayoutDocument(); - void updateSelection(); - - QString text; - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QString style; - QColor styleColor; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsTextEdit::HAlignment hAlign; - QmlGraphicsTextEdit::VAlignment vAlign; - bool dirty; - bool wrap; - bool richText; - bool cursorVisible; - bool focusOnPress; - bool persistentSelection; - qreal textMargin; - int lastSelectionStart; - int lastSelectionEnd; - QmlComponent* cursorComponent; - QmlGraphicsItem* cursor; - QmlGraphicsTextEdit::TextFormat format; - QTextDocument *document; - QTextControl *control; + QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + enum VAlignment { + AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter + }; + + enum TextFormat { + PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText + }; + + QString text() const; + void setText(const QString &); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int pos); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + bool focusOnPress() const; + void setFocusOnPress(bool on); + + bool persistentSelection() const; + void setPersistentSelection(bool on); + + qreal textMargin() const; + void setTextMargin(qreal margin); + + virtual void componentComplete(); + + /* FROM EDIT */ + void setReadOnly(bool); + bool isReadOnly() const; + + void setTextInteractionFlags(Qt::TextInteractionFlags flags); + Qt::TextInteractionFlags textInteractionFlags() const; + + QTextCursor cursorForPosition(const QPoint &pos) const; + QRect cursorRect(const QTextCursor &cursor) const; + QRect cursorRect() const; + + void setTextCursor(const QTextCursor &cursor); + QTextCursor textCursor() const; + + void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); + + QVariant inputMethodQuery(Qt::InputMethodQuery property) const; + +Q_SIGNALS: + void textChanged(const QString &); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectionChanged(); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateImgCache(const QRectF &rect); + void q_textChanged(); + void updateSelectionMarkers(); + void moveCursorDelegate(); + void loadCursorDelegate(); + +private: + void updateSize(); + +protected: + QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + bool event(QEvent *); + void keyPressEvent(QKeyEvent *); + void keyReleaseEvent(QKeyEvent *); + + void focusChanged(bool); + + // mouse filter? + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + + void inputMethodEvent(QInputMethodEvent *e); + + void drawContents(QPainter *, const QRect &); +private: + Q_DISABLE_COPY(QmlGraphicsTextEdit) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) }; QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsTextEdit) + +QT_END_HEADER + #endif diff --git a/src/declarative/fx/qmlgraphicstextedit_p_p.h b/src/declarative/fx/qmlgraphicstextedit_p_p.h new file mode 100644 index 0000000..9cba17e --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextedit_p_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTEDIT_P_H +#define QMLGRAPHICSTEXTEDIT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicspainteditem_p_p.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QTextLayout; +class QTextDocument; +class QTextControl; +class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) + +public: + QmlGraphicsTextEditPrivate() + : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), + dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), + persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), + cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) + { + } + + void init(); + + void updateDefaultTextOption(); + void relayoutDocument(); + void updateSelection(); + + QString text; + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QString style; + QColor styleColor; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsTextEdit::HAlignment hAlign; + QmlGraphicsTextEdit::VAlignment vAlign; + bool dirty; + bool wrap; + bool richText; + bool cursorVisible; + bool focusOnPress; + bool persistentSelection; + qreal textMargin; + int lastSelectionStart; + int lastSelectionEnd; + QmlComponent* cursorComponent; + QmlGraphicsItem* cursor; + QmlGraphicsTextEdit::TextFormat format; + QTextDocument *document; + QTextControl *control; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/fx/qmlgraphicstextinput.cpp b/src/declarative/fx/qmlgraphicstextinput.cpp index 17e6f7c..5df2484 100644 --- a/src/declarative/fx/qmlgraphicstextinput.cpp +++ b/src/declarative/fx/qmlgraphicstextinput.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlgraphicstextinput.h" #include "qmlgraphicstextinput_p.h" +#include "qmlgraphicstextinput_p_p.h" #include "qmlinfo.h" #include #include diff --git a/src/declarative/fx/qmlgraphicstextinput.h b/src/declarative/fx/qmlgraphicstextinput.h deleted file mode 100644 index 1b143e0..0000000 --- a/src/declarative/fx/qmlgraphicstextinput.h +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSTEXTINPUT_H -#define QMLGRAPHICSTEXTINPUT_H - -#include "qmlgraphicstext.h" -#include "qmlgraphicspainteditem.h" -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsTextInputPrivate; -class QValidator; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(EchoMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) - - Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) - Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) - Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) - Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) - Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - -public: - QmlGraphicsTextInput(QmlGraphicsItem* parent=0); - ~QmlGraphicsTextInput(); - - enum EchoMode {//To match QLineEdit::EchoMode - Normal, - NoEcho, - Password, - PasswordEchoOnEdit - }; - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - //### Should we have this function, x based properties, - //### or copy TextEdit with x instead of QTextCursor? - Q_INVOKABLE int xToPos(int x); - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - bool isReadOnly() const; - void setReadOnly(bool); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int cp); - - QRect cursorRect() const; - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - int maxLength() const; - void setMaxLength(int ml); - - QValidator * validator() const; - void setValidator(QValidator* v); - - QString inputMask() const; - void setInputMask(const QString &im); - - EchoMode echoMode() const; - void setEchoMode(EchoMode echo); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - bool focusOnPress() const; - void setFocusOnPress(bool); - - bool hasAcceptableInput() const; - - void drawContents(QPainter *p,const QRect &r); -Q_SIGNALS: - void textChanged(); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectedTextChanged(); - void accepted(); - void acceptableInputChanged(); - -protected: - QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void keyPressEvent(QKeyEvent* ev); - bool event(QEvent *e); - - void focusChanged(bool hasFocus); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateSize(bool needsRedraw = true); - void q_textChanged(); - void selectionChanged(); - void createCursor(); - void moveCursor(); - void cursorPosChanged(); - void updateRect(const QRect &r = QRect()); - -private: - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextInput) -QML_DECLARE_TYPE(QValidator) -QML_DECLARE_TYPE(QIntValidator) - -QT_END_HEADER - -#endif // QMLGRAPHICSTEXTINPUT_H diff --git a/src/declarative/fx/qmlgraphicstextinput_p.h b/src/declarative/fx/qmlgraphicstextinput_p.h index 010dfe1..10939a8 100644 --- a/src/declarative/fx/qmlgraphicstextinput_p.h +++ b/src/declarative/fx/qmlgraphicstextinput_p.h @@ -39,71 +39,171 @@ ** ****************************************************************************/ -#ifndef QMLGRAPHICSTEXTINPUT_P_H -#define QMLGRAPHICSTEXTINPUT_P_H +#ifndef QMLGRAPHICSTEXTINPUT_H +#define QMLGRAPHICSTEXTINPUT_H -#include "qmlgraphicstextinput.h" -#include "qml.h" +#include "qmlgraphicstext_p.h" #include "qmlgraphicspainteditem_p.h" -#include "private/qlinecontrol_p.h" -#include -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. +#include +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate +QT_MODULE(Declarative) + +class QmlGraphicsTextInputPrivate; +class QValidator; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem { - Q_DECLARE_PUBLIC(QmlGraphicsTextInput) + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(EchoMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) + + Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) + Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) + Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) + Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) + Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + public: - QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), - color((QRgb)0), style(QmlGraphicsText::Normal), - styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), - hscroll(0), oldScroll(0), focused(false), focusOnPress(true), - cursorVisible(false) - { - } - - ~QmlGraphicsTextInputPrivate() - { - delete control; - } - - void init(); - void startCreatingCursor(); - - QLineControl* control; - - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QmlGraphicsTextInput::HAlignment hAlign; - QPointer cursorComponent; - QPointer cursorItem; - - int lastSelectionStart; - int lastSelectionEnd; - int oldHeight; - int oldWidth; - bool oldValidity; - int hscroll; - int oldScroll; - bool focused; - bool focusOnPress; - bool cursorVisible; + QmlGraphicsTextInput(QmlGraphicsItem* parent=0); + ~QmlGraphicsTextInput(); + + enum EchoMode {//To match QLineEdit::EchoMode + Normal, + NoEcho, + Password, + PasswordEchoOnEdit + }; + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + //### Should we have this function, x based properties, + //### or copy TextEdit with x instead of QTextCursor? + Q_INVOKABLE int xToPos(int x); + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + bool isReadOnly() const; + void setReadOnly(bool); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int cp); + + QRect cursorRect() const; + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + int maxLength() const; + void setMaxLength(int ml); + + QValidator * validator() const; + void setValidator(QValidator* v); + + QString inputMask() const; + void setInputMask(const QString &im); + + EchoMode echoMode() const; + void setEchoMode(EchoMode echo); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + bool focusOnPress() const; + void setFocusOnPress(bool); + + bool hasAcceptableInput() const; + + void drawContents(QPainter *p,const QRect &r); +Q_SIGNALS: + void textChanged(); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectedTextChanged(); + void accepted(); + void acceptableInputChanged(); + +protected: + QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void keyPressEvent(QKeyEvent* ev); + bool event(QEvent *e); + + void focusChanged(bool hasFocus); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateSize(bool needsRedraw = true); + void q_textChanged(); + void selectionChanged(); + void createCursor(); + void moveCursor(); + void cursorPosChanged(); + void updateRect(const QRect &r = QRect()); + +private: + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) }; QT_END_NAMESPACE -#endif +QML_DECLARE_TYPE(QmlGraphicsTextInput) +QML_DECLARE_TYPE(QValidator) +QML_DECLARE_TYPE(QIntValidator) + +QT_END_HEADER +#endif // QMLGRAPHICSTEXTINPUT_H diff --git a/src/declarative/fx/qmlgraphicstextinput_p_p.h b/src/declarative/fx/qmlgraphicstextinput_p_p.h new file mode 100644 index 0000000..d17707f --- /dev/null +++ b/src/declarative/fx/qmlgraphicstextinput_p_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSTEXTINPUT_P_H +#define QMLGRAPHICSTEXTINPUT_P_H + +#include "qmlgraphicstextinput_p.h" +#include "qml.h" +#include "qmlgraphicspainteditem_p_p.h" +#include "private/qlinecontrol_p.h" +#include +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +QT_BEGIN_NAMESPACE + +class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextInput) +public: + QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), + color((QRgb)0), style(QmlGraphicsText::Normal), + styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), + hscroll(0), oldScroll(0), focused(false), focusOnPress(true), + cursorVisible(false) + { + } + + ~QmlGraphicsTextInputPrivate() + { + delete control; + } + + void init(); + void startCreatingCursor(); + + QLineControl* control; + + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QmlGraphicsTextInput::HAlignment hAlign; + QPointer cursorComponent; + QPointer cursorItem; + + int lastSelectionStart; + int lastSelectionEnd; + int oldHeight; + int oldWidth; + bool oldValidity; + int hscroll; + int oldScroll; + bool focused; + bool focusOnPress; + bool cursorVisible; +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp b/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp index b9b0237..3e8dfb4 100644 --- a/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp +++ b/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp @@ -39,19 +39,19 @@ ** ****************************************************************************/ -#include "qlistmodelinterface.h" +#include #include "qmlgraphicsitem.h" #include #include -#include "qmlpackage.h" +#include #include "qhash.h" #include "qlist.h" #include "private/qobject_p.h" #include "private/qmetaobjectbuilder_p.h" -#include "qmlopenmetaobject.h" -#include "qmllistaccessor.h" +#include +#include #include "qmlinfo.h" -#include "qmlgraphicsvisualitemmodel.h" +#include "qmlgraphicsvisualitemmodel_p.h" #include "private/qguard_p.h" #include @@ -1029,4 +1029,5 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisua QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) QT_END_NAMESPACE -#include "qfxvisualitemmodel.moc" + +#include "qmlgraphicsvisualitemmodel.moc" diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel.h b/src/declarative/fx/qmlgraphicsvisualitemmodel.h deleted file mode 100644 index fb36531..0000000 --- a/src/declarative/fx/qmlgraphicsvisualitemmodel.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSVISUALDATAMODEL_H -#define QMLGRAPHICSVISUALDATAMODEL_H - -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -/***************************************************************************** - ***************************************************************************** - XXX Experimental - ***************************************************************************** -*****************************************************************************/ - -class QmlGraphicsItem; -class QmlComponent; -class QmlPackage; -class QmlGraphicsVisualDataModelPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int count READ count NOTIFY countChanged) - -public: - QmlGraphicsVisualModel() {} - virtual ~QmlGraphicsVisualModel() {} - - enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; - Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) - - virtual int count() const = 0; - virtual bool isValid() const = 0; - virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; - virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; - virtual void completeItem() = 0; - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; - -Q_SIGNALS: - void countChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) - : QObject(dd, parent) {} - -private: - Q_DISABLE_COPY(QmlGraphicsVisualModel) -}; - -class QmlGraphicsVisualItemModelAttached; -class QmlGraphicsVisualItemModelPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) - - Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) - Q_CLASSINFO("DefaultProperty", "children") - -public: - QmlGraphicsVisualItemModel(); - virtual ~QmlGraphicsVisualItemModel() {} - - virtual int count() const; - virtual bool isValid() const; - virtual QmlGraphicsItem *item(int index, bool complete=true); - virtual ReleaseFlags release(QmlGraphicsItem *item); - virtual void completeItem(); - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QmlList *children(); - - static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); - -signals: - void childrenChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualItemModel) -}; - - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(QString part READ part WRITE setPart) - Q_PROPERTY(QObject *parts READ parts CONSTANT) - Q_CLASSINFO("DefaultProperty", "delegate") -public: - QmlGraphicsVisualDataModel(); - QmlGraphicsVisualDataModel(QmlContext *); - virtual ~QmlGraphicsVisualDataModel(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - QString part() const; - void setPart(const QString &); - - int count() const; - bool isValid() const { return delegate() != 0; } - QmlGraphicsItem *item(int index, bool complete=true); - QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); - ReleaseFlags release(QmlGraphicsItem *item); - void completeItem(); - QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QObject *parts(); - -Q_SIGNALS: - void createdPackage(int index, QmlPackage *package); - void destroyingPackage(QmlPackage *package); - -private Q_SLOTS: - void _q_itemsChanged(int, int, const QList &); - void _q_itemsInserted(int index, int count); - void _q_itemsRemoved(int index, int count); - void _q_itemsMoved(int from, int to, int count); - void _q_rowsInserted(const QModelIndex &,int,int); - void _q_rowsRemoved(const QModelIndex &,int,int); - void _q_dataChanged(const QModelIndex&,const QModelIndex&); - void _q_createdPackage(int index, QmlPackage *package); - void _q_destroyingPackage(QmlPackage *package); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualDataModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsVisualModel) -QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) -QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) - -QT_END_HEADER - -#endif // QMLGRAPHICSVISUALDATAMODEL_H diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h b/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h new file mode 100644 index 0000000..fb36531 --- /dev/null +++ b/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h @@ -0,0 +1,203 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSVISUALDATAMODEL_H +#define QMLGRAPHICSVISUALDATAMODEL_H + +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +/***************************************************************************** + ***************************************************************************** + XXX Experimental + ***************************************************************************** +*****************************************************************************/ + +class QmlGraphicsItem; +class QmlComponent; +class QmlPackage; +class QmlGraphicsVisualDataModelPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int count READ count NOTIFY countChanged) + +public: + QmlGraphicsVisualModel() {} + virtual ~QmlGraphicsVisualModel() {} + + enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; + Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) + + virtual int count() const = 0; + virtual bool isValid() const = 0; + virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; + virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; + virtual void completeItem() = 0; + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; + +Q_SIGNALS: + void countChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) + : QObject(dd, parent) {} + +private: + Q_DISABLE_COPY(QmlGraphicsVisualModel) +}; + +class QmlGraphicsVisualItemModelAttached; +class QmlGraphicsVisualItemModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) + + Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "children") + +public: + QmlGraphicsVisualItemModel(); + virtual ~QmlGraphicsVisualItemModel() {} + + virtual int count() const; + virtual bool isValid() const; + virtual QmlGraphicsItem *item(int index, bool complete=true); + virtual ReleaseFlags release(QmlGraphicsItem *item); + virtual void completeItem(); + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QmlList *children(); + + static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); + +signals: + void childrenChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualItemModel) +}; + + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(QString part READ part WRITE setPart) + Q_PROPERTY(QObject *parts READ parts CONSTANT) + Q_CLASSINFO("DefaultProperty", "delegate") +public: + QmlGraphicsVisualDataModel(); + QmlGraphicsVisualDataModel(QmlContext *); + virtual ~QmlGraphicsVisualDataModel(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + QString part() const; + void setPart(const QString &); + + int count() const; + bool isValid() const { return delegate() != 0; } + QmlGraphicsItem *item(int index, bool complete=true); + QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); + ReleaseFlags release(QmlGraphicsItem *item); + void completeItem(); + QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QObject *parts(); + +Q_SIGNALS: + void createdPackage(int index, QmlPackage *package); + void destroyingPackage(QmlPackage *package); + +private Q_SLOTS: + void _q_itemsChanged(int, int, const QList &); + void _q_itemsInserted(int index, int count); + void _q_itemsRemoved(int index, int count); + void _q_itemsMoved(int from, int to, int count); + void _q_rowsInserted(const QModelIndex &,int,int); + void _q_rowsRemoved(const QModelIndex &,int,int); + void _q_dataChanged(const QModelIndex&,const QModelIndex&); + void _q_createdPackage(int index, QmlPackage *package); + void _q_destroyingPackage(QmlPackage *package); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualDataModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsVisualModel) +QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) +QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) + +QT_END_HEADER + +#endif // QMLGRAPHICSVISUALDATAMODEL_H diff --git a/src/declarative/fx/qmlgraphicswebview.cpp b/src/declarative/fx/qmlgraphicswebview.cpp index d9044cf..a307bc2 100644 --- a/src/declarative/fx/qmlgraphicswebview.cpp +++ b/src/declarative/fx/qmlgraphicswebview.cpp @@ -55,11 +55,11 @@ #include "qml.h" #include "qmlengine.h" -#include "qmlstate.h" -#include "qlistmodelinterface.h" +#include "qmlstate_p.h" +#include "qlistmodelinterface_p.h" -#include "qmlgraphicswebview.h" -#include +#include "qmlgraphicswebview_p.h" +#include QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) @@ -1385,4 +1385,4 @@ QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) QT_END_NAMESPACE -#include "qfxwebview.moc" +#include "qmlgraphicswebview.moc" diff --git a/src/declarative/fx/qmlgraphicswebview.h b/src/declarative/fx/qmlgraphicswebview.h deleted file mode 100644 index 81f7bcd..0000000 --- a/src/declarative/fx/qmlgraphicswebview.h +++ /dev/null @@ -1,251 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSWEBVIEW_H -#define QMLGRAPHICSWEBVIEW_H - -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -class QWebHistory; -class QWebSettings; - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsWebViewPrivate; -class QNetworkRequest; -class QmlGraphicsWebView; - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage -{ - Q_OBJECT -public: - explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); - ~QmlGraphicsWebPage(); -protected: - QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); - QWebPage *createWindow(WebWindowType type); - -private: - QmlGraphicsWebView *viewItem(); -}; - - -class QmlGraphicsWebViewAttached; -class QmlGraphicsWebSettings; - -//### TODO: browser plugins - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem -{ - Q_OBJECT - - Q_ENUMS(Status) - - Q_PROPERTY(QString title READ title NOTIFY titleChanged) - Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) - Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) - Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) - Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) - - Q_PROPERTY(QString html READ html WRITE setHtml) - - Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) - Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) - Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) - Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - - Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) - Q_PROPERTY(QAction* back READ backAction CONSTANT) - Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) - Q_PROPERTY(QAction* stop READ stopAction CONSTANT) - - Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) - - Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) - - Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) - Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) - - Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) - -public: - QmlGraphicsWebView(QmlGraphicsItem *parent=0); - ~QmlGraphicsWebView(); - - QUrl url() const; - void setUrl(const QUrl &); - - QString title() const; - - QPixmap icon() const; - - qreal textSizeMultiplier() const; - void setTextSizeMultiplier(qreal); - - qreal zoomFactor() const; - void setZoomFactor(qreal); - - int preferredWidth() const; - void setPreferredWidth(int); - int webPageWidth() const; - void setWebPageWidth(int); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - QString statusText() const; - - QAction *reloadAction() const; - QAction *backAction() const; - QAction *forwardAction() const; - QAction *stopAction() const; - - QWebPage *page() const; - void setPage(QWebPage *page); - - void load(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, - const QByteArray &body = QByteArray()); - - QString html() const; - - void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); - void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); - - QWebHistory *history() const; - QWebSettings *settings() const; - QmlGraphicsWebSettings *settingsObject() const; - - int pixelCacheSize() const; - void setPixelCacheSize(int pixels); - - bool renderingEnabled() const; - void setRenderingEnabled(bool); - - QmlList *javaScriptWindowObjects(); - - static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); - - QmlComponent *newWindowComponent() const; - void setNewWindowComponent(QmlComponent *newWindow); - QmlGraphicsItem *newWindowParent() const; - void setNewWindowParent(QmlGraphicsItem *newWindow); - -Q_SIGNALS: - void preferredWidthChanged(); - void preferredHeightChanged(); - void urlChanged(); - void progressChanged(); - void statusChanged(Status); - void titleChanged(const QString&); - void iconChanged(); - void statusTextChanged(); - void zoomFactorChanged(); - - void loadStarted(); - void loadFinished(); - void loadFailed(); - - void doubleClick(int clickX, int clickY); - - void zooming(qreal zoom, int centerX, int centerY); - -public Q_SLOTS: - QVariant evaluateJavaScript(const QString&); - void heuristicZoom(int clickX, int clickY); - -private Q_SLOTS: - void expandToWebPage(); - void paintPage(const QRect&); - void doLoadStarted(); - void doLoadProgress(int p); - void doLoadFinished(bool ok); - void setStatusText(const QString&); - void windowObjectCleared(); - void pageUrlChanged(); - void contentsSizeChanged(const QSize&); - -protected: - QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); - - void drawContents(QPainter *, const QRect &); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void hoverMoveEvent (QGraphicsSceneHoverEvent * event); - void keyPressEvent(QKeyEvent* event); - void keyReleaseEvent(QKeyEvent* event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - 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(); - virtual void componentComplete(); - Q_DISABLE_COPY(QmlGraphicsWebView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) - friend class QmlGraphicsWebPage; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsWebView) -QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QAction) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicswebview_p.h b/src/declarative/fx/qmlgraphicswebview_p.h new file mode 100644 index 0000000..0398b0d --- /dev/null +++ b/src/declarative/fx/qmlgraphicswebview_p.h @@ -0,0 +1,251 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSWEBVIEW_H +#define QMLGRAPHICSWEBVIEW_H + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +class QWebHistory; +class QWebSettings; + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsWebViewPrivate; +class QNetworkRequest; +class QmlGraphicsWebView; + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage +{ + Q_OBJECT +public: + explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); + ~QmlGraphicsWebPage(); +protected: + QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); + QWebPage *createWindow(WebWindowType type); + +private: + QmlGraphicsWebView *viewItem(); +}; + + +class QmlGraphicsWebViewAttached; +class QmlGraphicsWebSettings; + +//### TODO: browser plugins + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem +{ + Q_OBJECT + + Q_ENUMS(Status) + + Q_PROPERTY(QString title READ title NOTIFY titleChanged) + Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) + Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) + Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) + Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) + + Q_PROPERTY(QString html READ html WRITE setHtml) + + Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) + Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) + Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) + Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + + Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) + Q_PROPERTY(QAction* back READ backAction CONSTANT) + Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) + Q_PROPERTY(QAction* stop READ stopAction CONSTANT) + + Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) + + Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) + + Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) + Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) + + Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) + +public: + QmlGraphicsWebView(QmlGraphicsItem *parent=0); + ~QmlGraphicsWebView(); + + QUrl url() const; + void setUrl(const QUrl &); + + QString title() const; + + QPixmap icon() const; + + qreal textSizeMultiplier() const; + void setTextSizeMultiplier(qreal); + + qreal zoomFactor() const; + void setZoomFactor(qreal); + + int preferredWidth() const; + void setPreferredWidth(int); + int webPageWidth() const; + void setWebPageWidth(int); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + QString statusText() const; + + QAction *reloadAction() const; + QAction *backAction() const; + QAction *forwardAction() const; + QAction *stopAction() const; + + QWebPage *page() const; + void setPage(QWebPage *page); + + void load(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, + const QByteArray &body = QByteArray()); + + QString html() const; + + void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); + void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); + + QWebHistory *history() const; + QWebSettings *settings() const; + QmlGraphicsWebSettings *settingsObject() const; + + int pixelCacheSize() const; + void setPixelCacheSize(int pixels); + + bool renderingEnabled() const; + void setRenderingEnabled(bool); + + QmlList *javaScriptWindowObjects(); + + static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); + + QmlComponent *newWindowComponent() const; + void setNewWindowComponent(QmlComponent *newWindow); + QmlGraphicsItem *newWindowParent() const; + void setNewWindowParent(QmlGraphicsItem *newWindow); + +Q_SIGNALS: + void preferredWidthChanged(); + void preferredHeightChanged(); + void urlChanged(); + void progressChanged(); + void statusChanged(Status); + void titleChanged(const QString&); + void iconChanged(); + void statusTextChanged(); + void zoomFactorChanged(); + + void loadStarted(); + void loadFinished(); + void loadFailed(); + + void doubleClick(int clickX, int clickY); + + void zooming(qreal zoom, int centerX, int centerY); + +public Q_SLOTS: + QVariant evaluateJavaScript(const QString&); + void heuristicZoom(int clickX, int clickY); + +private Q_SLOTS: + void expandToWebPage(); + void paintPage(const QRect&); + void doLoadStarted(); + void doLoadProgress(int p); + void doLoadFinished(bool ok); + void setStatusText(const QString&); + void windowObjectCleared(); + void pageUrlChanged(); + void contentsSizeChanged(const QSize&); + +protected: + QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); + + void drawContents(QPainter *, const QRect &); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void hoverMoveEvent (QGraphicsSceneHoverEvent * event); + void keyPressEvent(QKeyEvent* event); + void keyReleaseEvent(QKeyEvent* event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + 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(); + virtual void componentComplete(); + Q_DISABLE_COPY(QmlGraphicsWebView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) + friend class QmlGraphicsWebPage; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsWebView) +QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QAction) + +QT_END_HEADER + +#endif diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index eba4307..0eb897b 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -45,7 +45,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index fa971a3..045b45a 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -45,7 +45,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 5d2bd12..f7bd027 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -41,7 +41,7 @@ #include "private/qmlcompiler_p.h" #include "private/qmlcompositetypedata_p.h" -#include +#include #include "qmlparser_p.h" #include "private/qmlscriptparser_p.h" #include diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index c856680..f2268a7 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -48,7 +48,7 @@ #include "qmlvme_p.h" #include "qml.h" #include -#include +#include #include #include #include diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 463bd93..6f60b4f 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -62,7 +62,7 @@ #include #include #include "qml.h" -#include +#include #include #include "private/qmlbasicscript_p.h" #include "qmlengine.h" diff --git a/src/declarative/qml/qmlenginedebug_p.h b/src/declarative/qml/qmlenginedebug_p.h index a8572eb..c381033 100644 --- a/src/declarative/qml/qmlenginedebug_p.h +++ b/src/declarative/qml/qmlenginedebug_p.h @@ -53,7 +53,7 @@ // We mean it. // -#include +#include #include #include diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp index edec988..a76c36b 100644 --- a/src/declarative/qml/qmlmetaproperty.cpp +++ b/src/declarative/qml/qmlmetaproperty.cpp @@ -43,7 +43,7 @@ #include "qmlmetaproperty_p.h" #include "qmlcompositetypedata_p.h" #include -#include +#include #include #include "qmlbinding.h" #include diff --git a/src/declarative/qml/qmlparser.cpp b/src/declarative/qml/qmlparser.cpp index f9e3c50..dfedae5 100644 --- a/src/declarative/qml/qmlparser.cpp +++ b/src/declarative/qml/qmlparser.cpp @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include "private/qmlcomponent_p.h" #include diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index 95dfe5b..2dfda37 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -55,7 +55,7 @@ #include #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index b986b60..e112f25 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -41,7 +41,7 @@ #include "qmlvme_p.h" #include "qmlcompiler_p.h" -#include +#include #include #include #include "private/qmetaobjectbuilder_p.h" diff --git a/src/declarative/qml/qmlwatcher.cpp b/src/declarative/qml/qmlwatcher.cpp index 8cd51e0..a9d3dad 100644 --- a/src/declarative/qml/qmlwatcher.cpp +++ b/src/declarative/qml/qmlwatcher.cpp @@ -42,7 +42,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/declarative/util/qfxperf.cpp b/src/declarative/util/qfxperf.cpp index 97f195b..a21f2ed 100644 --- a/src/declarative/util/qfxperf.cpp +++ b/src/declarative/util/qfxperf.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "private/qfxperf_p.h" +#include "private/qfxperf_p_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qfxperf_p.h b/src/declarative/util/qfxperf_p.h deleted file mode 100644 index 37bfc32..0000000 --- a/src/declarative/util/qfxperf_p.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef QFXPERF_H -#define QFXPERF_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "private/qperformancelog_p.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -Q_DECLARE_PERFORMANCE_LOG(QmlPerf) { - Q_DECLARE_PERFORMANCE_METRIC(QmlParsing) - - Q_DECLARE_PERFORMANCE_METRIC(Compilation) - Q_DECLARE_PERFORMANCE_METRIC(VMEExecution) - - Q_DECLARE_PERFORMANCE_METRIC(BindInit) - Q_DECLARE_PERFORMANCE_METRIC(BindValue) - Q_DECLARE_PERFORMANCE_METRIC(BindValueSSE) - Q_DECLARE_PERFORMANCE_METRIC(BindValueQt) - Q_DECLARE_PERFORMANCE_METRIC(BindableValueUpdate) - Q_DECLARE_PERFORMANCE_METRIC(PixmapLoad) - Q_DECLARE_PERFORMANCE_METRIC(FontDatabase) - Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsPathViewPathCache) - Q_DECLARE_PERFORMANCE_METRIC(CreateParticle) - Q_DECLARE_PERFORMANCE_METRIC(ItemComponentComplete) - Q_DECLARE_PERFORMANCE_METRIC(ImageComponentComplete) - Q_DECLARE_PERFORMANCE_METRIC(BaseLayoutComponentComplete) - Q_DECLARE_PERFORMANCE_METRIC(TextComponentComplete) - Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsText_setText) - Q_DECLARE_PERFORMANCE_METRIC(AddScript) -} - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QFXPERF_H diff --git a/src/declarative/util/qfxperf_p_p.h b/src/declarative/util/qfxperf_p_p.h new file mode 100644 index 0000000..e4424b0 --- /dev/null +++ b/src/declarative/util/qfxperf_p_p.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QFXPERF_H +#define QFXPERF_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "private/qperformancelog_p_p.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +Q_DECLARE_PERFORMANCE_LOG(QmlPerf) { + Q_DECLARE_PERFORMANCE_METRIC(QmlParsing) + + Q_DECLARE_PERFORMANCE_METRIC(Compilation) + Q_DECLARE_PERFORMANCE_METRIC(VMEExecution) + + Q_DECLARE_PERFORMANCE_METRIC(BindInit) + Q_DECLARE_PERFORMANCE_METRIC(BindValue) + Q_DECLARE_PERFORMANCE_METRIC(BindValueSSE) + Q_DECLARE_PERFORMANCE_METRIC(BindValueQt) + Q_DECLARE_PERFORMANCE_METRIC(BindableValueUpdate) + Q_DECLARE_PERFORMANCE_METRIC(PixmapLoad) + Q_DECLARE_PERFORMANCE_METRIC(FontDatabase) + Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsPathViewPathCache) + Q_DECLARE_PERFORMANCE_METRIC(CreateParticle) + Q_DECLARE_PERFORMANCE_METRIC(ItemComponentComplete) + Q_DECLARE_PERFORMANCE_METRIC(ImageComponentComplete) + Q_DECLARE_PERFORMANCE_METRIC(BaseLayoutComponentComplete) + Q_DECLARE_PERFORMANCE_METRIC(TextComponentComplete) + Q_DECLARE_PERFORMANCE_METRIC(QmlGraphicsText_setText) + Q_DECLARE_PERFORMANCE_METRIC(AddScript) +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QFXPERF_H diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index e00a1c8..cc46a9c 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -39,15 +39,15 @@ ** ****************************************************************************/ -#include "qmlanimation.h" +#include "qmlanimation_p.h" #include "qvariant.h" #include "qcolor.h" #include "qfile.h" #include "qmlpropertyvaluesource.h" #include "qml.h" #include "qmlinfo.h" -#include "qmlanimation_p.h" -#include "qmlbehavior.h" +#include "qmlanimation_p_p.h" +#include #include #include #include @@ -55,7 +55,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/declarative/util/qmlanimation.h b/src/declarative/util/qmlanimation.h deleted file mode 100644 index 4e94aa0..0000000 --- a/src/declarative/util/qmlanimation.h +++ /dev/null @@ -1,407 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLANIMATION_H -#define QMLANIMATION_H - -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlAbstractAnimationPrivate; -class QmlAnimationGroup; -class Q_AUTOTEST_EXPORT QmlAbstractAnimation : public QObject, public QmlPropertyValueSource, public QmlParserStatus -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlAbstractAnimation) - - Q_INTERFACES(QmlParserStatus) - Q_INTERFACES(QmlPropertyValueSource) - Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) - Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) - Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged()) - Q_PROPERTY(bool repeat READ repeat WRITE setRepeat NOTIFY repeatChanged) - Q_CLASSINFO("DefaultMethod", "start()") - Q_INTERFACES(QmlParserStatus) - -public: - QmlAbstractAnimation(QObject *parent=0); - virtual ~QmlAbstractAnimation(); - - bool isRunning() const; - void setRunning(bool); - bool isPaused() const; - void setPaused(bool); - bool alwaysRunToEnd() const; - void setAlwaysRunToEnd(bool); - bool repeat() const; - void setRepeat(bool); - - int currentTime(); - void setCurrentTime(int); - - QmlAnimationGroup *group() const; - void setGroup(QmlAnimationGroup *); - - //### these belong at a lower level in the hierarchy - QObject *target() const; - void setTarget(QObject *); - QString property() const; - void setProperty(const QString &); - - virtual void setTarget(const QmlMetaProperty &); - - void classBegin(); - void componentComplete(); - -Q_SIGNALS: - void started(); - void completed(); - void runningChanged(bool); - void pausedChanged(bool); - void repeatChanged(bool); - void targetChanged(QObject *, const QString &); - void alwaysRunToEndChanged(bool); - -public Q_SLOTS: - void restart(); - void start(); - void pause(); - void resume(); - void stop(); - void complete(); - -protected: - QmlAbstractAnimation(QmlAbstractAnimationPrivate &dd, QObject *parent); - -public: - enum TransitionDirection { Forward, Backward }; - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual void prepare(QmlMetaProperty &); - virtual QAbstractAnimation *qtAnimation() = 0; - -private Q_SLOTS: - void timelineComplete(); -}; - -class QmlPauseAnimationPrivate; -class QmlPauseAnimation : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPauseAnimation) - - Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged) - -public: - QmlPauseAnimation(QObject *parent=0); - virtual ~QmlPauseAnimation(); - - int duration() const; - void setDuration(int); - -Q_SIGNALS: - void durationChanged(int); - -protected: - virtual QAbstractAnimation *qtAnimation(); -}; - -class QmlScriptActionPrivate; -class QmlScriptAction : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlScriptAction) - - Q_PROPERTY(QmlScriptString script READ script WRITE setScript) - Q_PROPERTY(QString stateChangeScriptName READ stateChangeScriptName WRITE setStateChangeScriptName) - -public: - QmlScriptAction(QObject *parent=0); - virtual ~QmlScriptAction(); - - QmlScriptString script() const; - void setScript(const QmlScriptString &); - - QString stateChangeScriptName() const; - void setStateChangeScriptName(const QString &); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); -}; - -class QmlPropertyActionPrivate; -class QmlPropertyAction : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPropertyAction) - - Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged) - Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged) - Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged) - Q_PROPERTY(QList* targets READ targets) - Q_PROPERTY(QList* exclude READ exclude) - Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged) - -public: - QmlPropertyAction(QObject *parent=0); - virtual ~QmlPropertyAction(); - - QString properties() const; - void setProperties(const QString &); - - QList *targets(); - QList *exclude(); - - QVariant value() const; - void setValue(const QVariant &); - -Q_SIGNALS: - void valueChanged(const QVariant &); - void propertiesChanged(const QString &); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); - virtual void prepare(QmlMetaProperty &); -}; - -class QmlGraphicsItem; -class QmlParentActionPrivate; -class QmlParentAction : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlParentAction) - - Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) - Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) - -public: - QmlParentAction(QObject *parent=0); - virtual ~QmlParentAction(); - - QmlGraphicsItem *object() const; - void setObject(QmlGraphicsItem *); - - QmlGraphicsItem *parent() const; - void setParent(QmlGraphicsItem *); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); -}; - -class QmlPropertyAnimationPrivate; -class Q_AUTOTEST_EXPORT QmlPropertyAnimation : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPropertyAnimation) - - Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged) - Q_PROPERTY(QVariant from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(QVariant to READ to WRITE setTo NOTIFY toChanged) - Q_PROPERTY(QString easing READ easing WRITE setEasing NOTIFY easingChanged) - Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged) - Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged) - Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged) - Q_PROPERTY(QList* targets READ targets) - Q_PROPERTY(QList* exclude READ exclude) - -public: - QmlPropertyAnimation(QObject *parent=0); - virtual ~QmlPropertyAnimation(); - - int duration() const; - void setDuration(int); - - QVariant from() const; - void setFrom(const QVariant &); - - QVariant to() const; - void setTo(const QVariant &); - - QString easing() const; - void setEasing(const QString &); - - QString properties() const; - void setProperties(const QString &); - - QList *targets(); - QList *exclude(); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); - virtual void prepare(QmlMetaProperty &); - -Q_SIGNALS: - void durationChanged(int); - void fromChanged(QVariant); - void toChanged(QVariant); - void easingChanged(const QString &); - void propertiesChanged(const QString &); -}; - -class Q_AUTOTEST_EXPORT QmlColorAnimation : public QmlPropertyAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPropertyAnimation) - Q_PROPERTY(QColor from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(QColor to READ to WRITE setTo NOTIFY toChanged) - -public: - QmlColorAnimation(QObject *parent=0); - virtual ~QmlColorAnimation(); - - QColor from() const; - void setFrom(const QColor &); - - QColor to() const; - void setTo(const QColor &); -}; - -class Q_AUTOTEST_EXPORT QmlNumberAnimation : public QmlPropertyAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPropertyAnimation) - - Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged) - -public: - QmlNumberAnimation(QObject *parent=0); - virtual ~QmlNumberAnimation(); - - qreal from() const; - void setFrom(qreal); - - qreal to() const; - void setTo(qreal); -}; - -class QmlAnimationGroupPrivate; -class QmlAnimationGroup : public QmlAbstractAnimation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlAnimationGroup) - - Q_CLASSINFO("DefaultProperty", "animations") - Q_PROPERTY(QmlList *animations READ animations) - -public: - QmlAnimationGroup(QObject *parent); - virtual ~QmlAnimationGroup(); - - QmlList* animations(); - friend class QmlAbstractAnimation; -}; - -class QmlSequentialAnimation : public QmlAnimationGroup -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlAnimationGroup) - -public: - QmlSequentialAnimation(QObject *parent=0); - virtual ~QmlSequentialAnimation(); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); - virtual void prepare(QmlMetaProperty &); -}; - -class QmlParallelAnimation : public QmlAnimationGroup -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlAnimationGroup) - -public: - QmlParallelAnimation(QObject *parent=0); - virtual ~QmlParallelAnimation(); - -protected: - virtual void transition(QmlStateActions &actions, - QmlMetaProperties &modified, - TransitionDirection direction); - virtual QAbstractAnimation *qtAnimation(); - virtual void prepare(QmlMetaProperty &); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlAbstractAnimation) -QML_DECLARE_TYPE(QmlPauseAnimation) -QML_DECLARE_TYPE(QmlScriptAction) -QML_DECLARE_TYPE(QmlPropertyAction) -QML_DECLARE_TYPE(QmlParentAction) -QML_DECLARE_TYPE(QmlPropertyAnimation) -QML_DECLARE_TYPE(QmlColorAnimation) -QML_DECLARE_TYPE(QmlNumberAnimation) -QML_DECLARE_TYPE(QmlSequentialAnimation) -QML_DECLARE_TYPE(QmlParallelAnimation) - -QT_END_HEADER - -#endif // QMLANIMATION_H diff --git a/src/declarative/util/qmlanimation_p.h b/src/declarative/util/qmlanimation_p.h index 38b92ae..5f9f907 100644 --- a/src/declarative/util/qmlanimation_p.h +++ b/src/declarative/util/qmlanimation_p.h @@ -39,324 +39,369 @@ ** ****************************************************************************/ -#ifndef QMLANIMATION_P_H -#define QMLANIMATION_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef QMLANIMATION_H +#define QMLANIMATION_H + +#include +#include +#include +#include +#include +#include #include -#include -#include +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -//interface for classes that provide animation actions for QActionAnimation -class QAbstractAnimationAction -{ -public: - virtual ~QAbstractAnimationAction() {} - virtual void doAction() = 0; -}; +QT_MODULE(Declarative) -//templated animation action -//allows us to specify an action that calls a function of a class. -//(so that class doesn't have to inherit QmlAbstractAnimationAction) -template -class QAnimationActionProxy : public QAbstractAnimationAction +class QmlAbstractAnimationPrivate; +class QmlAnimationGroup; +class Q_AUTOTEST_EXPORT QmlAbstractAnimation : public QObject, public QmlPropertyValueSource, public QmlParserStatus { + Q_OBJECT + Q_DECLARE_PRIVATE(QmlAbstractAnimation) + + Q_INTERFACES(QmlParserStatus) + Q_INTERFACES(QmlPropertyValueSource) + Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) + Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) + Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged()) + Q_PROPERTY(bool repeat READ repeat WRITE setRepeat NOTIFY repeatChanged) + Q_CLASSINFO("DefaultMethod", "start()") + Q_INTERFACES(QmlParserStatus) + public: - QAnimationActionProxy(T *p) : m_p(p) {} - virtual void doAction() { (m_p->*method)(); } + QmlAbstractAnimation(QObject *parent=0); + virtual ~QmlAbstractAnimation(); + + bool isRunning() const; + void setRunning(bool); + bool isPaused() const; + void setPaused(bool); + bool alwaysRunToEnd() const; + void setAlwaysRunToEnd(bool); + bool repeat() const; + void setRepeat(bool); + + int currentTime(); + void setCurrentTime(int); + + QmlAnimationGroup *group() const; + void setGroup(QmlAnimationGroup *); + + //### these belong at a lower level in the hierarchy + QObject *target() const; + void setTarget(QObject *); + QString property() const; + void setProperty(const QString &); + + virtual void setTarget(const QmlMetaProperty &); + + void classBegin(); + void componentComplete(); + +Q_SIGNALS: + void started(); + void completed(); + void runningChanged(bool); + void pausedChanged(bool); + void repeatChanged(bool); + void targetChanged(QObject *, const QString &); + void alwaysRunToEndChanged(bool); + +public Q_SLOTS: + void restart(); + void start(); + void pause(); + void resume(); + void stop(); + void complete(); + +protected: + QmlAbstractAnimation(QmlAbstractAnimationPrivate &dd, QObject *parent); -private: - T *m_p; +public: + enum TransitionDirection { Forward, Backward }; + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual void prepare(QmlMetaProperty &); + virtual QAbstractAnimation *qtAnimation() = 0; + +private Q_SLOTS: + void timelineComplete(); }; -//performs an action of type QAbstractAnimationAction -class QActionAnimation : public QAbstractAnimation +class QmlPauseAnimationPrivate; +class QmlPauseAnimation : public QmlAbstractAnimation { Q_OBJECT + Q_DECLARE_PRIVATE(QmlPauseAnimation) + + Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged) + public: - QActionAnimation(QObject *parent = 0) : QAbstractAnimation(parent), animAction(0), policy(KeepWhenStopped) {} - QActionAnimation(QAbstractAnimationAction *action, QObject *parent = 0) - : QAbstractAnimation(parent), animAction(action), policy(KeepWhenStopped) {} - virtual int duration() const { return 0; } - void setAnimAction(QAbstractAnimationAction *action, DeletionPolicy p) - { - if (state() == Running) - stop(); - animAction = action; - policy = p; - } + QmlPauseAnimation(QObject *parent=0); + virtual ~QmlPauseAnimation(); + + int duration() const; + void setDuration(int); + +Q_SIGNALS: + void durationChanged(int); + protected: - virtual void updateCurrentTime(int) {} - - virtual void updateState(State /*oldState*/, State newState) - { - if (newState == Running) { - if (animAction) - animAction->doAction(); - } else if (newState == Stopped && policy == DeleteWhenStopped) { - delete animAction; - animAction = 0; - } - } - -private: - QAbstractAnimationAction *animAction; - DeletionPolicy policy; + virtual QAbstractAnimation *qtAnimation(); }; -//animates QmlTimeLineValue (assumes start and end values will be reals or compatible) -class QmlTimeLineValueAnimator : public QVariantAnimation +class QmlScriptActionPrivate; +class QmlScriptAction : public QmlAbstractAnimation { Q_OBJECT + Q_DECLARE_PRIVATE(QmlScriptAction) + + Q_PROPERTY(QmlScriptString script READ script WRITE setScript) + Q_PROPERTY(QString stateChangeScriptName READ stateChangeScriptName WRITE setStateChangeScriptName) + public: - QmlTimeLineValueAnimator(QObject *parent = 0) : QVariantAnimation(parent), animValue(0), fromSourced(0), policy(KeepWhenStopped) {} - void setAnimValue(QmlTimeLineValue *value, DeletionPolicy p) - { - if (state() == Running) - stop(); - animValue = value; - policy = p; - } - void setFromSourcedValue(bool *value) - { - fromSourced = value; - } + QmlScriptAction(QObject *parent=0); + virtual ~QmlScriptAction(); + + QmlScriptString script() const; + void setScript(const QmlScriptString &); + + QString stateChangeScriptName() const; + void setStateChangeScriptName(const QString &); + protected: - virtual void updateCurrentValue(const QVariant &value) - { - if (animValue) - animValue->setValue(value.toDouble()); - } - virtual void updateState(State oldState, State newState) - { - QVariantAnimation::updateState(oldState, newState); - if (newState == Running) { - //check for new from every loop - if (fromSourced) - *fromSourced = false; - } else if (newState == Stopped && policy == DeleteWhenStopped) { - delete animValue; - animValue = 0; - } - } - -private: - QmlTimeLineValue *animValue; - bool *fromSourced; - DeletionPolicy policy; + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); }; -//an animation that just gives a tick -template -class QTickAnimationProxy : public QAbstractAnimation +class QmlPropertyActionPrivate; +class QmlPropertyAction : public QmlAbstractAnimation { - //Q_OBJECT //doesn't work with templating -public: - QTickAnimationProxy(T *p, QObject *parent = 0) : QAbstractAnimation(parent), m_p(p) {} - virtual int duration() const { return -1; } -protected: - virtual void updateCurrentTime(int msec) { (m_p->*method)(msec); } + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPropertyAction) -private: - T *m_p; -}; + Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged) + Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged) + Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged) + Q_PROPERTY(QList* targets READ targets) + Q_PROPERTY(QList* exclude READ exclude) + Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged) -class QmlAbstractAnimationPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlAbstractAnimation) public: - QmlAbstractAnimationPrivate() - : running(false), paused(false), alwaysRunToEnd(false), repeat(false), - connectedTimeLine(false), componentComplete(true), startOnCompletion(false), - target(0), group(0) {} - - bool running; - bool paused; - bool alwaysRunToEnd; - bool repeat; - bool connectedTimeLine; + QmlPropertyAction(QObject *parent=0); + virtual ~QmlPropertyAction(); - bool componentComplete; - bool startOnCompletion; + QString properties() const; + void setProperties(const QString &); - void commence(); + QList *targets(); + QList *exclude(); - QmlNullableValue userProperty; - QObject *target; - QString propertyName; + QVariant value() const; + void setValue(const QVariant &); - QmlMetaProperty property; - QmlAnimationGroup *group; +Q_SIGNALS: + void valueChanged(const QVariant &); + void propertiesChanged(const QString &); - QmlMetaProperty createProperty(QObject *obj, const QString &str); +protected: + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); + virtual void prepare(QmlMetaProperty &); }; -class QmlPauseAnimationPrivate : public QmlAbstractAnimationPrivate +class QmlGraphicsItem; +class QmlParentActionPrivate; +class QmlParentAction : public QmlAbstractAnimation { - Q_DECLARE_PUBLIC(QmlPauseAnimation) -public: - QmlPauseAnimationPrivate() - : QmlAbstractAnimationPrivate(), pa(0) {} - - void init(); + Q_OBJECT + Q_DECLARE_PRIVATE(QmlParentAction) - QPauseAnimation *pa; -}; + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) + Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) -class QmlScriptActionPrivate : public QmlAbstractAnimationPrivate -{ - Q_DECLARE_PUBLIC(QmlScriptAction) public: - QmlScriptActionPrivate() - : QmlAbstractAnimationPrivate(), hasRunScriptScript(false), proxy(this), rsa(0) {} + QmlParentAction(QObject *parent=0); + virtual ~QmlParentAction(); - void init(); + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); - QmlScriptString script; - QString name; - QmlScriptString runScriptScript; - bool hasRunScriptScript; + QmlGraphicsItem *parent() const; + void setParent(QmlGraphicsItem *); - void execute(); - - QAnimationActionProxy proxy; - QActionAnimation *rsa; +protected: + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); }; -class QmlPropertyActionPrivate : public QmlAbstractAnimationPrivate +class QmlPropertyAnimationPrivate; +class Q_AUTOTEST_EXPORT QmlPropertyAnimation : public QmlAbstractAnimation { - Q_DECLARE_PUBLIC(QmlPropertyAction) + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPropertyAnimation) + + Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged) + Q_PROPERTY(QVariant from READ from WRITE setFrom NOTIFY fromChanged) + Q_PROPERTY(QVariant to READ to WRITE setTo NOTIFY toChanged) + Q_PROPERTY(QString easing READ easing WRITE setEasing NOTIFY easingChanged) + Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged) + Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged) + Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged) + Q_PROPERTY(QList* targets READ targets) + Q_PROPERTY(QList* exclude READ exclude) + public: - QmlPropertyActionPrivate() - : QmlAbstractAnimationPrivate(), proxy(this), spa(0) {} + QmlPropertyAnimation(QObject *parent=0); + virtual ~QmlPropertyAnimation(); - void init(); + int duration() const; + void setDuration(int); - QString properties; - QList targets; - QList exclude; + QVariant from() const; + void setFrom(const QVariant &); - QmlNullableValue value; + QVariant to() const; + void setTo(const QVariant &); - void doAction(); + QString easing() const; + void setEasing(const QString &); - QAnimationActionProxy proxy; - QActionAnimation *spa; + QString properties() const; + void setProperties(const QString &); + + QList *targets(); + QList *exclude(); + +protected: + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); + virtual void prepare(QmlMetaProperty &); + +Q_SIGNALS: + void durationChanged(int); + void fromChanged(QVariant); + void toChanged(QVariant); + void easingChanged(const QString &); + void propertiesChanged(const QString &); }; -class QmlParentActionPrivate : public QmlAbstractAnimationPrivate +class Q_AUTOTEST_EXPORT QmlColorAnimation : public QmlPropertyAnimation { - Q_DECLARE_PUBLIC(QmlParentAction) -public: - QmlParentActionPrivate() - : QmlAbstractAnimationPrivate(), pcTarget(0), pcParent(0) {} + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPropertyAnimation) + Q_PROPERTY(QColor from READ from WRITE setFrom NOTIFY fromChanged) + Q_PROPERTY(QColor to READ to WRITE setTo NOTIFY toChanged) - void init(); +public: + QmlColorAnimation(QObject *parent=0); + virtual ~QmlColorAnimation(); - QmlGraphicsItem *pcTarget; - QmlGraphicsItem *pcParent; + QColor from() const; + void setFrom(const QColor &); - void doAction(); - QActionAnimation *cpa; + QColor to() const; + void setTo(const QColor &); }; -class QmlAnimationGroupPrivate : public QmlAbstractAnimationPrivate +class Q_AUTOTEST_EXPORT QmlNumberAnimation : public QmlPropertyAnimation { - Q_DECLARE_PUBLIC(QmlAnimationGroup) + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPropertyAnimation) + + Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged) + Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged) + public: - QmlAnimationGroupPrivate() - : QmlAbstractAnimationPrivate(), animations(this), ag(0) {} - - struct AnimationList : public QmlConcreteList - { - AnimationList(QmlAnimationGroupPrivate *p) - : anim(p) {} - virtual void append(QmlAbstractAnimation *a) { - QmlConcreteList::append(a); - a->setGroup(anim->q_func()); - } - virtual void clear() - { - for (int i = 0; i < count(); ++i) - at(i)->setGroup(0); - QmlConcreteList::clear(); - } - virtual void removeAt(int i) - { - at(i)->setGroup(0); - QmlConcreteList::removeAt(i); - } - virtual void insert(int i, QmlAbstractAnimation *a) - { - QmlConcreteList::insert(i, a); - a->setGroup(anim->q_func()); - } - - QmlAnimationGroupPrivate *anim; - }; - - AnimationList animations; - QAnimationGroup *ag; + QmlNumberAnimation(QObject *parent=0); + virtual ~QmlNumberAnimation(); + + qreal from() const; + void setFrom(qreal); + + qreal to() const; + void setTo(qreal); }; -class QmlPropertyAnimationPrivate : public QmlAbstractAnimationPrivate +class QmlAnimationGroupPrivate; +class QmlAnimationGroup : public QmlAbstractAnimation { - Q_DECLARE_PUBLIC(QmlPropertyAnimation) -public: - QmlPropertyAnimationPrivate() - : QmlAbstractAnimationPrivate(), fromSourced(false), fromIsDefined(false), toIsDefined(false), - defaultToInterpolatorType(0), interpolatorType(0), interpolator(0), va(0), - value(this, &QmlPropertyAnimationPrivate::valueChanged) {} + Q_OBJECT + Q_DECLARE_PRIVATE(QmlAnimationGroup) - void init(); + Q_CLASSINFO("DefaultProperty", "animations") + Q_PROPERTY(QmlList *animations READ animations) - QVariant from; - QVariant to; +public: + QmlAnimationGroup(QObject *parent); + virtual ~QmlAnimationGroup(); - QString easing; + QmlList* animations(); + friend class QmlAbstractAnimation; +}; - QString properties; - QList targets; - QList exclude; +class QmlSequentialAnimation : public QmlAnimationGroup +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlAnimationGroup) - bool fromSourced; - bool fromIsDefined; - bool toIsDefined; - bool defaultToInterpolatorType; - int interpolatorType; - QVariantAnimation::Interpolator interpolator; +public: + QmlSequentialAnimation(QObject *parent=0); + virtual ~QmlSequentialAnimation(); - QmlTimeLineValueAnimator *va; - virtual void valueChanged(qreal); +protected: + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); + virtual void prepare(QmlMetaProperty &); +}; - QmlTimeLineValueProxy value; +class QmlParallelAnimation : public QmlAnimationGroup +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlAnimationGroup) + +public: + QmlParallelAnimation(QObject *parent=0); + virtual ~QmlParallelAnimation(); - static QVariant interpolateVariant(const QVariant &from, const QVariant &to, qreal progress); - static void convertVariant(QVariant &variant, int type); +protected: + virtual void transition(QmlStateActions &actions, + QmlMetaProperties &modified, + TransitionDirection direction); + virtual QAbstractAnimation *qtAnimation(); + virtual void prepare(QmlMetaProperty &); }; QT_END_NAMESPACE -#endif // QMLANIMATION_P_H +QML_DECLARE_TYPE(QmlAbstractAnimation) +QML_DECLARE_TYPE(QmlPauseAnimation) +QML_DECLARE_TYPE(QmlScriptAction) +QML_DECLARE_TYPE(QmlPropertyAction) +QML_DECLARE_TYPE(QmlParentAction) +QML_DECLARE_TYPE(QmlPropertyAnimation) +QML_DECLARE_TYPE(QmlColorAnimation) +QML_DECLARE_TYPE(QmlNumberAnimation) +QML_DECLARE_TYPE(QmlSequentialAnimation) +QML_DECLARE_TYPE(QmlParallelAnimation) + +QT_END_HEADER + +#endif // QMLANIMATION_H diff --git a/src/declarative/util/qmlanimation_p_p.h b/src/declarative/util/qmlanimation_p_p.h new file mode 100644 index 0000000..1372343 --- /dev/null +++ b/src/declarative/util/qmlanimation_p_p.h @@ -0,0 +1,362 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLANIMATION_P_H +#define QMLANIMATION_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +//interface for classes that provide animation actions for QActionAnimation +class QAbstractAnimationAction +{ +public: + virtual ~QAbstractAnimationAction() {} + virtual void doAction() = 0; +}; + +//templated animation action +//allows us to specify an action that calls a function of a class. +//(so that class doesn't have to inherit QmlAbstractAnimationAction) +template +class QAnimationActionProxy : public QAbstractAnimationAction +{ +public: + QAnimationActionProxy(T *p) : m_p(p) {} + virtual void doAction() { (m_p->*method)(); } + +private: + T *m_p; +}; + +//performs an action of type QAbstractAnimationAction +class QActionAnimation : public QAbstractAnimation +{ + Q_OBJECT +public: + QActionAnimation(QObject *parent = 0) : QAbstractAnimation(parent), animAction(0), policy(KeepWhenStopped) {} + QActionAnimation(QAbstractAnimationAction *action, QObject *parent = 0) + : QAbstractAnimation(parent), animAction(action), policy(KeepWhenStopped) {} + virtual int duration() const { return 0; } + void setAnimAction(QAbstractAnimationAction *action, DeletionPolicy p) + { + if (state() == Running) + stop(); + animAction = action; + policy = p; + } +protected: + virtual void updateCurrentTime(int) {} + + virtual void updateState(State /*oldState*/, State newState) + { + if (newState == Running) { + if (animAction) + animAction->doAction(); + } else if (newState == Stopped && policy == DeleteWhenStopped) { + delete animAction; + animAction = 0; + } + } + +private: + QAbstractAnimationAction *animAction; + DeletionPolicy policy; +}; + +//animates QmlTimeLineValue (assumes start and end values will be reals or compatible) +class QmlTimeLineValueAnimator : public QVariantAnimation +{ + Q_OBJECT +public: + QmlTimeLineValueAnimator(QObject *parent = 0) : QVariantAnimation(parent), animValue(0), fromSourced(0), policy(KeepWhenStopped) {} + void setAnimValue(QmlTimeLineValue *value, DeletionPolicy p) + { + if (state() == Running) + stop(); + animValue = value; + policy = p; + } + void setFromSourcedValue(bool *value) + { + fromSourced = value; + } +protected: + virtual void updateCurrentValue(const QVariant &value) + { + if (animValue) + animValue->setValue(value.toDouble()); + } + virtual void updateState(State oldState, State newState) + { + QVariantAnimation::updateState(oldState, newState); + if (newState == Running) { + //check for new from every loop + if (fromSourced) + *fromSourced = false; + } else if (newState == Stopped && policy == DeleteWhenStopped) { + delete animValue; + animValue = 0; + } + } + +private: + QmlTimeLineValue *animValue; + bool *fromSourced; + DeletionPolicy policy; +}; + +//an animation that just gives a tick +template +class QTickAnimationProxy : public QAbstractAnimation +{ + //Q_OBJECT //doesn't work with templating +public: + QTickAnimationProxy(T *p, QObject *parent = 0) : QAbstractAnimation(parent), m_p(p) {} + virtual int duration() const { return -1; } +protected: + virtual void updateCurrentTime(int msec) { (m_p->*method)(msec); } + +private: + T *m_p; +}; + +class QmlAbstractAnimationPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlAbstractAnimation) +public: + QmlAbstractAnimationPrivate() + : running(false), paused(false), alwaysRunToEnd(false), repeat(false), + connectedTimeLine(false), componentComplete(true), startOnCompletion(false), + target(0), group(0) {} + + bool running; + bool paused; + bool alwaysRunToEnd; + bool repeat; + bool connectedTimeLine; + + bool componentComplete; + bool startOnCompletion; + + void commence(); + + QmlNullableValue userProperty; + QObject *target; + QString propertyName; + + QmlMetaProperty property; + QmlAnimationGroup *group; + + QmlMetaProperty createProperty(QObject *obj, const QString &str); +}; + +class QmlPauseAnimationPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlPauseAnimation) +public: + QmlPauseAnimationPrivate() + : QmlAbstractAnimationPrivate(), pa(0) {} + + void init(); + + QPauseAnimation *pa; +}; + +class QmlScriptActionPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlScriptAction) +public: + QmlScriptActionPrivate() + : QmlAbstractAnimationPrivate(), hasRunScriptScript(false), proxy(this), rsa(0) {} + + void init(); + + QmlScriptString script; + QString name; + QmlScriptString runScriptScript; + bool hasRunScriptScript; + + void execute(); + + QAnimationActionProxy proxy; + QActionAnimation *rsa; +}; + +class QmlPropertyActionPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlPropertyAction) +public: + QmlPropertyActionPrivate() + : QmlAbstractAnimationPrivate(), proxy(this), spa(0) {} + + void init(); + + QString properties; + QList targets; + QList exclude; + + QmlNullableValue value; + + void doAction(); + + QAnimationActionProxy proxy; + QActionAnimation *spa; +}; + +class QmlParentActionPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlParentAction) +public: + QmlParentActionPrivate() + : QmlAbstractAnimationPrivate(), pcTarget(0), pcParent(0) {} + + void init(); + + QmlGraphicsItem *pcTarget; + QmlGraphicsItem *pcParent; + + void doAction(); + QActionAnimation *cpa; +}; + +class QmlAnimationGroupPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlAnimationGroup) +public: + QmlAnimationGroupPrivate() + : QmlAbstractAnimationPrivate(), animations(this), ag(0) {} + + struct AnimationList : public QmlConcreteList + { + AnimationList(QmlAnimationGroupPrivate *p) + : anim(p) {} + virtual void append(QmlAbstractAnimation *a) { + QmlConcreteList::append(a); + a->setGroup(anim->q_func()); + } + virtual void clear() + { + for (int i = 0; i < count(); ++i) + at(i)->setGroup(0); + QmlConcreteList::clear(); + } + virtual void removeAt(int i) + { + at(i)->setGroup(0); + QmlConcreteList::removeAt(i); + } + virtual void insert(int i, QmlAbstractAnimation *a) + { + QmlConcreteList::insert(i, a); + a->setGroup(anim->q_func()); + } + + QmlAnimationGroupPrivate *anim; + }; + + AnimationList animations; + QAnimationGroup *ag; +}; + +class QmlPropertyAnimationPrivate : public QmlAbstractAnimationPrivate +{ + Q_DECLARE_PUBLIC(QmlPropertyAnimation) +public: + QmlPropertyAnimationPrivate() + : QmlAbstractAnimationPrivate(), fromSourced(false), fromIsDefined(false), toIsDefined(false), + defaultToInterpolatorType(0), interpolatorType(0), interpolator(0), va(0), + value(this, &QmlPropertyAnimationPrivate::valueChanged) {} + + void init(); + + QVariant from; + QVariant to; + + QString easing; + + QString properties; + QList targets; + QList exclude; + + bool fromSourced; + bool fromIsDefined; + bool toIsDefined; + bool defaultToInterpolatorType; + int interpolatorType; + QVariantAnimation::Interpolator interpolator; + + QmlTimeLineValueAnimator *va; + virtual void valueChanged(qreal); + + QmlTimeLineValueProxy value; + + static QVariant interpolateVariant(const QVariant &from, const QVariant &to, qreal progress); + static void convertVariant(QVariant &variant, int type); +}; + +QT_END_NAMESPACE + +#endif // QMLANIMATION_P_H diff --git a/src/declarative/util/qmlbind.cpp b/src/declarative/util/qmlbind.cpp index d18ef47..98ec7cf 100644 --- a/src/declarative/util/qmlbind.cpp +++ b/src/declarative/util/qmlbind.cpp @@ -47,8 +47,8 @@ #include #include #include -#include -#include "qmlbind.h" +#include +#include "qmlbind_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlbind.h b/src/declarative/util/qmlbind.h deleted file mode 100644 index 731cdf8..0000000 --- a/src/declarative/util/qmlbind.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBIND_H -#define QMLBIND_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlBindPrivate; -class Q_DECLARATIVE_EXPORT QmlBind : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlBind) - - Q_PROPERTY(QObject *target READ object WRITE setObject) - Q_PROPERTY(QString property READ property WRITE setProperty) - Q_PROPERTY(QVariant value READ value WRITE setValue) - Q_PROPERTY(bool when READ when WRITE setWhen) - -public: - QmlBind(QObject *parent=0); - ~QmlBind(); - - bool when() const; - void setWhen(bool); - - QObject *object(); - void setObject(QObject *); - - QString property() const; - void setProperty(const QString &); - - QVariant value() const; - void setValue(const QVariant &); - -private: - void eval(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlBind) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmlbind_p.h b/src/declarative/util/qmlbind_p.h new file mode 100644 index 0000000..731cdf8 --- /dev/null +++ b/src/declarative/util/qmlbind_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLBIND_H +#define QMLBIND_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlBindPrivate; +class Q_DECLARATIVE_EXPORT QmlBind : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlBind) + + Q_PROPERTY(QObject *target READ object WRITE setObject) + Q_PROPERTY(QString property READ property WRITE setProperty) + Q_PROPERTY(QVariant value READ value WRITE setValue) + Q_PROPERTY(bool when READ when WRITE setWhen) + +public: + QmlBind(QObject *parent=0); + ~QmlBind(); + + bool when() const; + void setWhen(bool); + + QObject *object(); + void setObject(QObject *); + + QString property() const; + void setProperty(const QString &); + + QVariant value() const; + void setValue(const QVariant &); + +private: + void eval(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlBind) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlconnection.cpp b/src/declarative/util/qmlconnection.cpp index 5475fb2..c52732f 100644 --- a/src/declarative/util/qmlconnection.cpp +++ b/src/declarative/util/qmlconnection.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlconnection.h" +#include "qmlconnection_p.h" #include #include "private/qmlboundsignal_p.h" #include "private/qobject_p.h" diff --git a/src/declarative/util/qmlconnection.h b/src/declarative/util/qmlconnection.h deleted file mode 100644 index 3d69c6f..0000000 --- a/src/declarative/util/qmlconnection.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLCONNECTION_H -#define QMLCONNECTION_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlBoundSignal; -class QmlContext; -class QmlConnectionPrivate; -class Q_DECLARATIVE_EXPORT QmlConnection : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlConnection) - - Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QObject *sender READ signalSender WRITE setSignalSender) - Q_PROPERTY(QmlScriptString script READ script WRITE setScript) - Q_PROPERTY(QString signal READ signal WRITE setSignal) - -public: - QmlConnection(QObject *parent=0); - ~QmlConnection(); - - QObject *signalSender() const; - void setSignalSender(QObject *); - QmlScriptString script() const; - void setScript(const QmlScriptString&); - QString signal() const; - void setSignal(const QString&); - -private: - void disconnectIfValid(); - void connectIfValid(); - void componentComplete(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlConnection) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmlconnection_p.h b/src/declarative/util/qmlconnection_p.h new file mode 100644 index 0000000..3d69c6f --- /dev/null +++ b/src/declarative/util/qmlconnection_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLCONNECTION_H +#define QMLCONNECTION_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlBoundSignal; +class QmlContext; +class QmlConnectionPrivate; +class Q_DECLARATIVE_EXPORT QmlConnection : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlConnection) + + Q_INTERFACES(QmlParserStatus) + Q_PROPERTY(QObject *sender READ signalSender WRITE setSignalSender) + Q_PROPERTY(QmlScriptString script READ script WRITE setScript) + Q_PROPERTY(QString signal READ signal WRITE setSignal) + +public: + QmlConnection(QObject *parent=0); + ~QmlConnection(); + + QObject *signalSender() const; + void setSignalSender(QObject *); + QmlScriptString script() const; + void setScript(const QmlScriptString&); + QString signal() const; + void setSignal(const QString&); + +private: + void disconnectIfValid(); + void connectIfValid(); + void componentComplete(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlConnection) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmleasefollow.cpp b/src/declarative/util/qmleasefollow.cpp index 9d17d25..96654c6 100644 --- a/src/declarative/util/qmleasefollow.cpp +++ b/src/declarative/util/qmleasefollow.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "qmleasefollow.h" +#include "qmleasefollow_p.h" #include #include #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmleasefollow.h b/src/declarative/util/qmleasefollow.h deleted file mode 100644 index a653ea6..0000000 --- a/src/declarative/util/qmleasefollow.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLEASEFOLLOW_H -#define QMLEASEFOLLOW_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlMetaProperty; -class QmlEaseFollowPrivate; -class Q_DECLARATIVE_EXPORT QmlEaseFollow : public QObject, - public QmlPropertyValueSource -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlEaseFollow) - Q_INTERFACES(QmlPropertyValueSource) - Q_ENUMS(ReversingMode) - - Q_PROPERTY(qreal source READ sourceValue WRITE setSourceValue NOTIFY sourceChanged) - Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity NOTIFY velocityChanged) - Q_PROPERTY(qreal duration READ duration WRITE setDuration NOTIFY durationChanged) - Q_PROPERTY(ReversingMode reversingMode READ reversingMode WRITE setReversingMode NOTIFY reversingModeChanged) - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(qreal maximumEasingTime READ maximumEasingTime WRITE setMaximumEasingTime NOTIFY maximumEasingTimeChanged) - -public: - enum ReversingMode { Eased, Immediate, Sync }; - - QmlEaseFollow(QObject *parent = 0); - ~QmlEaseFollow(); - - ReversingMode reversingMode() const; - void setReversingMode(ReversingMode); - - qreal sourceValue() const; - void setSourceValue(qreal); - - qreal velocity() const; - void setVelocity(qreal); - - qreal duration() const; - void setDuration(qreal); - - bool enabled() const; - void setEnabled(bool enabled); - - qreal maximumEasingTime() const; - void setMaximumEasingTime(qreal); - - virtual void setTarget(const QmlMetaProperty &); - -signals: - void sourceChanged(); - void velocityChanged(); - void durationChanged(); - void reversingModeChanged(); - void enabledChanged(); - void maximumEasingTimeChanged(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlEaseFollow); - -QT_END_HEADER - -#endif // QMLEASEFOLLOW_H diff --git a/src/declarative/util/qmleasefollow_p.h b/src/declarative/util/qmleasefollow_p.h new file mode 100644 index 0000000..a653ea6 --- /dev/null +++ b/src/declarative/util/qmleasefollow_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLEASEFOLLOW_H +#define QMLEASEFOLLOW_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlMetaProperty; +class QmlEaseFollowPrivate; +class Q_DECLARATIVE_EXPORT QmlEaseFollow : public QObject, + public QmlPropertyValueSource +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlEaseFollow) + Q_INTERFACES(QmlPropertyValueSource) + Q_ENUMS(ReversingMode) + + Q_PROPERTY(qreal source READ sourceValue WRITE setSourceValue NOTIFY sourceChanged) + Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity NOTIFY velocityChanged) + Q_PROPERTY(qreal duration READ duration WRITE setDuration NOTIFY durationChanged) + Q_PROPERTY(ReversingMode reversingMode READ reversingMode WRITE setReversingMode NOTIFY reversingModeChanged) + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(qreal maximumEasingTime READ maximumEasingTime WRITE setMaximumEasingTime NOTIFY maximumEasingTimeChanged) + +public: + enum ReversingMode { Eased, Immediate, Sync }; + + QmlEaseFollow(QObject *parent = 0); + ~QmlEaseFollow(); + + ReversingMode reversingMode() const; + void setReversingMode(ReversingMode); + + qreal sourceValue() const; + void setSourceValue(qreal); + + qreal velocity() const; + void setVelocity(qreal); + + qreal duration() const; + void setDuration(qreal); + + bool enabled() const; + void setEnabled(bool enabled); + + qreal maximumEasingTime() const; + void setMaximumEasingTime(qreal); + + virtual void setTarget(const QmlMetaProperty &); + +signals: + void sourceChanged(); + void velocityChanged(); + void durationChanged(); + void reversingModeChanged(); + void enabledChanged(); + void maximumEasingTimeChanged(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlEaseFollow); + +QT_END_HEADER + +#endif // QMLEASEFOLLOW_H diff --git a/src/declarative/util/qmllistaccessor.cpp b/src/declarative/util/qmllistaccessor.cpp index 3e4cb64..80709f1 100644 --- a/src/declarative/util/qmllistaccessor.cpp +++ b/src/declarative/util/qmllistaccessor.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmllistaccessor.h" +#include "qmllistaccessor_p.h" #include #include #include diff --git a/src/declarative/util/qmllistaccessor.h b/src/declarative/util/qmllistaccessor.h deleted file mode 100644 index c3ff632..0000000 --- a/src/declarative/util/qmllistaccessor.h +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLLISTACCESSOR_H -#define QMLLISTACCESSOR_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlEngine; -class Q_DECLARATIVE_EXPORT QmlListAccessor -{ -public: - QmlListAccessor(); - virtual ~QmlListAccessor(); - - QVariant list() const; - void setList(const QVariant &, QmlEngine * = 0); - - bool isValid() const; - - int count() const; - QVariant at(int) const; - - virtual void append(const QVariant &); - virtual void insert(int, const QVariant &); - virtual void removeAt(int); - virtual void clear(); - - enum Type { Invalid, StringList, VariantList, QmlList, QList, Instance, Integer }; - Type type() const { return m_type; } - -private: - Type m_type; - QVariant d; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLLISTACCESSOR_H diff --git a/src/declarative/util/qmllistaccessor_p.h b/src/declarative/util/qmllistaccessor_p.h new file mode 100644 index 0000000..c3ff632 --- /dev/null +++ b/src/declarative/util/qmllistaccessor_p.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLLISTACCESSOR_H +#define QMLLISTACCESSOR_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlEngine; +class Q_DECLARATIVE_EXPORT QmlListAccessor +{ +public: + QmlListAccessor(); + virtual ~QmlListAccessor(); + + QVariant list() const; + void setList(const QVariant &, QmlEngine * = 0); + + bool isValid() const; + + int count() const; + QVariant at(int) const; + + virtual void append(const QVariant &); + virtual void insert(int, const QVariant &); + virtual void removeAt(int); + virtual void clear(); + + enum Type { Invalid, StringList, VariantList, QmlList, QList, Instance, Integer }; + Type type() const { return m_type; } + +private: + Type m_type; + QVariant d; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLLISTACCESSOR_H diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp index 9c9fa6a..d5202c5 100644 --- a/src/declarative/util/qmllistmodel.cpp +++ b/src/declarative/util/qmllistmodel.cpp @@ -44,9 +44,9 @@ #include #include #include -#include "qmlopenmetaobject.h" +#include "qmlopenmetaobject_p.h" #include -#include "qmllistmodel.h" +#include "qmllistmodel_p.h" #include Q_DECLARE_METATYPE(QListModelInterface *) diff --git a/src/declarative/util/qmllistmodel.h b/src/declarative/util/qmllistmodel.h deleted file mode 100644 index 7bb94cf..0000000 --- a/src/declarative/util/qmllistmodel.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLLISTMODEL_H -#define QMLLISTMODEL_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -struct ModelNode; -class QmlListModel : public QListModelInterface -{ - Q_OBJECT - Q_PROPERTY(int count READ count) - -public: - QmlListModel(QObject *parent=0); - ~QmlListModel(); - - virtual QList roles() const; - virtual QString toString(int role) const; - virtual int count() const; - virtual QHash data(int index, const QList &roles = (QList())) const; - - Q_INVOKABLE void clear(); - Q_INVOKABLE void remove(int index); - Q_INVOKABLE void append(const QScriptValue&); - Q_INVOKABLE void insert(int index, const QScriptValue&); - Q_INVOKABLE void set(int index, const QScriptValue&); - Q_INVOKABLE void set(int index, const QString& property, const QVariant& value); - Q_INVOKABLE void move(int from, int to, int count); - -private: - QVariant valueForNode(ModelNode *) const; - mutable QStringList roleStrings; - friend class QmlListModelParser; - friend struct ModelNode; - - void checkRoles() const; - void addRole(const QString &) const; - mutable bool _rolesOk; - ModelNode *_root; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlListModel) - -QT_END_HEADER - -#endif // QMLLISTMODEL_H diff --git a/src/declarative/util/qmllistmodel_p.h b/src/declarative/util/qmllistmodel_p.h new file mode 100644 index 0000000..b376e59 --- /dev/null +++ b/src/declarative/util/qmllistmodel_p.h @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLLISTMODEL_H +#define QMLLISTMODEL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +struct ModelNode; +class QmlListModel : public QListModelInterface +{ + Q_OBJECT + Q_PROPERTY(int count READ count) + +public: + QmlListModel(QObject *parent=0); + ~QmlListModel(); + + virtual QList roles() const; + virtual QString toString(int role) const; + virtual int count() const; + virtual QHash data(int index, const QList &roles = (QList())) const; + + Q_INVOKABLE void clear(); + Q_INVOKABLE void remove(int index); + Q_INVOKABLE void append(const QScriptValue&); + Q_INVOKABLE void insert(int index, const QScriptValue&); + Q_INVOKABLE void set(int index, const QScriptValue&); + Q_INVOKABLE void set(int index, const QString& property, const QVariant& value); + Q_INVOKABLE void move(int from, int to, int count); + +private: + QVariant valueForNode(ModelNode *) const; + mutable QStringList roleStrings; + friend class QmlListModelParser; + friend struct ModelNode; + + void checkRoles() const; + void addRole(const QString &) const; + mutable bool _rolesOk; + ModelNode *_root; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlListModel) + +QT_END_HEADER + +#endif // QMLLISTMODEL_H diff --git a/src/declarative/util/qmlnullablevalue_p.h b/src/declarative/util/qmlnullablevalue_p.h deleted file mode 100644 index 6455642..0000000 --- a/src/declarative/util/qmlnullablevalue_p.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLNULLABLEVALUE_P_H -#define QMLNULLABLEVALUE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -QT_BEGIN_NAMESPACE - -template -struct QmlNullableValue -{ - QmlNullableValue() - : isNull(true), value(T()) {} - QmlNullableValue(const QmlNullableValue &o) - : isNull(o.isNull), value(o.value) {} - QmlNullableValue(const T &t) - : isNull(false), value(t) {} - QmlNullableValue &operator=(const T &t) - { isNull = false; value = t; return *this; } - QmlNullableValue &operator=(const QmlNullableValue &o) - { isNull = o.isNull; value = o.value; return *this; } - operator T() const { return value; } - - void invalidate() { isNull = true; } - bool isValid() const { return !isNull; } - bool isNull; - T value; -}; - -QT_END_NAMESPACE - -#endif // QMLNULLABLEVALUE_P_H diff --git a/src/declarative/util/qmlnullablevalue_p_p.h b/src/declarative/util/qmlnullablevalue_p_p.h new file mode 100644 index 0000000..6455642 --- /dev/null +++ b/src/declarative/util/qmlnullablevalue_p_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLNULLABLEVALUE_P_H +#define QMLNULLABLEVALUE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +template +struct QmlNullableValue +{ + QmlNullableValue() + : isNull(true), value(T()) {} + QmlNullableValue(const QmlNullableValue &o) + : isNull(o.isNull), value(o.value) {} + QmlNullableValue(const T &t) + : isNull(false), value(t) {} + QmlNullableValue &operator=(const T &t) + { isNull = false; value = t; return *this; } + QmlNullableValue &operator=(const QmlNullableValue &o) + { isNull = o.isNull; value = o.value; return *this; } + operator T() const { return value; } + + void invalidate() { isNull = true; } + bool isValid() const { return !isNull; } + bool isNull; + T value; +}; + +QT_END_NAMESPACE + +#endif // QMLNULLABLEVALUE_P_H diff --git a/src/declarative/util/qmlopenmetaobject.cpp b/src/declarative/util/qmlopenmetaobject.cpp index 11648f6..c348ced 100644 --- a/src/declarative/util/qmlopenmetaobject.cpp +++ b/src/declarative/util/qmlopenmetaobject.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmlopenmetaobject.h" +#include "qmlopenmetaobject_p.h" #include "private/qmetaobjectbuilder_p.h" #include diff --git a/src/declarative/util/qmlopenmetaobject.h b/src/declarative/util/qmlopenmetaobject.h deleted file mode 100644 index be0490d..0000000 --- a/src/declarative/util/qmlopenmetaobject.h +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLOPENMETAOBJECT_H -#define QMLOPENMETAOBJECT_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlOpenMetaObjectPrivate; -class QMetaPropertyBuilder; -class Q_DECLARATIVE_EXPORT QmlOpenMetaObject : public QAbstractDynamicMetaObject -{ -public: - QmlOpenMetaObject(QObject *, bool = true); - ~QmlOpenMetaObject(); - - QVariant value(const QByteArray &) const; - void setValue(const QByteArray &, const QVariant &); - QVariant value(int) const; - void setValue(int, const QVariant &); - QVariant &operator[](const QByteArray &); - - int count() const; - QByteArray name(int) const; - - QObject *object() const; -protected: - virtual int metaCall(QMetaObject::Call _c, int _id, void **_a); - virtual int createProperty(const char *, const char *); - - virtual void propertyRead(int); - virtual void propertyWrite(int); - virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); - -private: - int doCreateProperty(const char *); - - QmlOpenMetaObjectPrivate *d; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLOPENMETAOBJECT_H diff --git a/src/declarative/util/qmlopenmetaobject_p.h b/src/declarative/util/qmlopenmetaobject_p.h new file mode 100644 index 0000000..be0490d --- /dev/null +++ b/src/declarative/util/qmlopenmetaobject_p.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLOPENMETAOBJECT_H +#define QMLOPENMETAOBJECT_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlOpenMetaObjectPrivate; +class QMetaPropertyBuilder; +class Q_DECLARATIVE_EXPORT QmlOpenMetaObject : public QAbstractDynamicMetaObject +{ +public: + QmlOpenMetaObject(QObject *, bool = true); + ~QmlOpenMetaObject(); + + QVariant value(const QByteArray &) const; + void setValue(const QByteArray &, const QVariant &); + QVariant value(int) const; + void setValue(int, const QVariant &); + QVariant &operator[](const QByteArray &); + + int count() const; + QByteArray name(int) const; + + QObject *object() const; +protected: + virtual int metaCall(QMetaObject::Call _c, int _id, void **_a); + virtual int createProperty(const char *, const char *); + + virtual void propertyRead(int); + virtual void propertyWrite(int); + virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); + +private: + int doCreateProperty(const char *); + + QmlOpenMetaObjectPrivate *d; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLOPENMETAOBJECT_H diff --git a/src/declarative/util/qmlpackage.cpp b/src/declarative/util/qmlpackage.cpp index 7df8453..05b6cbc 100644 --- a/src/declarative/util/qmlpackage.cpp +++ b/src/declarative/util/qmlpackage.cpp @@ -40,7 +40,7 @@ ****************************************************************************/ #include "private/qobject_p.h" -#include "qmlpackage.h" +#include "qmlpackage_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlpackage.h b/src/declarative/util/qmlpackage.h deleted file mode 100644 index 7cceaa7..0000000 --- a/src/declarative/util/qmlpackage.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLPACKAGE_H -#define QMLPACKAGE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -/***************************************************************************** - ***************************************************************************** - XXX Experimental - ***************************************************************************** -*****************************************************************************/ - -class QmlPackagePrivate; -class QmlPackageAttached; -class QmlPackage : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPackage) - - Q_CLASSINFO("DefaultProperty", "data") - Q_PROPERTY(QmlList *data READ data SCRIPTABLE false) - -public: - QmlPackage(QObject *parent=0); - virtual ~QmlPackage(); - - QmlList *data(); - - QObject *part(const QString & = QString()); - bool hasPart(const QString &); - - static QmlPackageAttached *qmlAttachedProperties(QObject *); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlPackage) -QML_DECLARE_TYPEINFO(QmlPackage, QML_HAS_ATTACHED_PROPERTIES) - -QT_END_HEADER - -#endif // QMLPACKAGE_H diff --git a/src/declarative/util/qmlpackage_p.h b/src/declarative/util/qmlpackage_p.h new file mode 100644 index 0000000..7cceaa7 --- /dev/null +++ b/src/declarative/util/qmlpackage_p.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLPACKAGE_H +#define QMLPACKAGE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +/***************************************************************************** + ***************************************************************************** + XXX Experimental + ***************************************************************************** +*****************************************************************************/ + +class QmlPackagePrivate; +class QmlPackageAttached; +class QmlPackage : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPackage) + + Q_CLASSINFO("DefaultProperty", "data") + Q_PROPERTY(QmlList *data READ data SCRIPTABLE false) + +public: + QmlPackage(QObject *parent=0); + virtual ~QmlPackage(); + + QmlList *data(); + + QObject *part(const QString & = QString()); + bool hasPart(const QString &); + + static QmlPackageAttached *qmlAttachedProperties(QObject *); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlPackage) +QML_DECLARE_TYPEINFO(QmlPackage, QML_HAS_ATTACHED_PROPERTIES) + +QT_END_HEADER + +#endif // QMLPACKAGE_H diff --git a/src/declarative/util/qmlpropertychanges.cpp b/src/declarative/util/qmlpropertychanges.cpp index 0ac168b..57db897 100644 --- a/src/declarative/util/qmlpropertychanges.cpp +++ b/src/declarative/util/qmlpropertychanges.cpp @@ -40,8 +40,8 @@ ****************************************************************************/ #include "private/qobject_p.h" -#include "qmlopenmetaobject.h" -#include "qmlpropertychanges.h" +#include "qmlopenmetaobject_p.h" +#include "qmlpropertychanges_p.h" #include #include #include diff --git a/src/declarative/util/qmlpropertychanges.h b/src/declarative/util/qmlpropertychanges.h deleted file mode 100644 index 2931cdb..0000000 --- a/src/declarative/util/qmlpropertychanges.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLPROPERTYCHANGES_H -#define QMLPROPERTYCHANGES_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlPropertyChangesPrivate; -class Q_DECLARATIVE_EXPORT QmlPropertyChanges : public QmlStateOperation -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlPropertyChanges) - - Q_PROPERTY(QObject *target READ object WRITE setObject) - Q_PROPERTY(bool restoreEntryValues READ restoreEntryValues WRITE setRestoreEntryValues) - Q_PROPERTY(bool explicit READ isExplicit WRITE setIsExplicit) -public: - QmlPropertyChanges(); - ~QmlPropertyChanges(); - - QObject *object() const; - void setObject(QObject *); - - bool restoreEntryValues() const; - void setRestoreEntryValues(bool); - - bool isExplicit() const; - void setIsExplicit(bool); - - virtual ActionList actions(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlPropertyChanges) - -QT_END_HEADER - -#endif // QMLPROPERTYCHANGES_H diff --git a/src/declarative/util/qmlpropertychanges_p.h b/src/declarative/util/qmlpropertychanges_p.h new file mode 100644 index 0000000..cb93eb3 --- /dev/null +++ b/src/declarative/util/qmlpropertychanges_p.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLPROPERTYCHANGES_H +#define QMLPROPERTYCHANGES_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlPropertyChangesPrivate; +class Q_DECLARATIVE_EXPORT QmlPropertyChanges : public QmlStateOperation +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlPropertyChanges) + + Q_PROPERTY(QObject *target READ object WRITE setObject) + Q_PROPERTY(bool restoreEntryValues READ restoreEntryValues WRITE setRestoreEntryValues) + Q_PROPERTY(bool explicit READ isExplicit WRITE setIsExplicit) +public: + QmlPropertyChanges(); + ~QmlPropertyChanges(); + + QObject *object() const; + void setObject(QObject *); + + bool restoreEntryValues() const; + void setRestoreEntryValues(bool); + + bool isExplicit() const; + void setIsExplicit(bool); + + virtual ActionList actions(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlPropertyChanges) + +QT_END_HEADER + +#endif // QMLPROPERTYCHANGES_H diff --git a/src/declarative/util/qmlpropertymap.cpp b/src/declarative/util/qmlpropertymap.cpp index a587af3..c54135c 100644 --- a/src/declarative/util/qmlpropertymap.cpp +++ b/src/declarative/util/qmlpropertymap.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qmlpropertymap.h" -#include +#include "qmlpropertymap_p.h" +#include #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlpropertymap.h b/src/declarative/util/qmlpropertymap.h deleted file mode 100644 index 24b4395..0000000 --- a/src/declarative/util/qmlpropertymap.h +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLPROPERTYMAP_H -#define QMLPROPERTYMAP_H - -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlPropertyMapPrivate; -class Q_DECLARATIVE_EXPORT QmlPropertyMap : public QObject -{ - Q_OBJECT -public: - QmlPropertyMap(QObject *parent = 0); - virtual ~QmlPropertyMap(); - - QVariant value(const QString &key) const; - void insert(const QString &key, const QVariant &value); - void clear(const QString &key); - - Q_INVOKABLE QStringList keys() const; - - int count() const; - int size() const; - bool isEmpty() const; - bool contains(const QString &key) const; - - QVariant &operator[](const QString &key); - const QVariant operator[](const QString &key) const; - -Q_SIGNALS: - void valueChanged(const QString &key); - -private: - Q_DECLARE_PRIVATE(QmlPropertyMap) - Q_DISABLE_COPY(QmlPropertyMap) -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmlpropertymap_p.h b/src/declarative/util/qmlpropertymap_p.h new file mode 100644 index 0000000..24b4395 --- /dev/null +++ b/src/declarative/util/qmlpropertymap_p.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLPROPERTYMAP_H +#define QMLPROPERTYMAP_H + +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlPropertyMapPrivate; +class Q_DECLARATIVE_EXPORT QmlPropertyMap : public QObject +{ + Q_OBJECT +public: + QmlPropertyMap(QObject *parent = 0); + virtual ~QmlPropertyMap(); + + QVariant value(const QString &key) const; + void insert(const QString &key, const QVariant &value); + void clear(const QString &key); + + Q_INVOKABLE QStringList keys() const; + + int count() const; + int size() const; + bool isEmpty() const; + bool contains(const QString &key) const; + + QVariant &operator[](const QString &key); + const QVariant operator[](const QString &key) const; + +Q_SIGNALS: + void valueChanged(const QString &key); + +private: + Q_DECLARE_PRIVATE(QmlPropertyMap) + Q_DISABLE_COPY(QmlPropertyMap) +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlspringfollow.cpp b/src/declarative/util/qmlspringfollow.cpp index 3b2526b..354110e 100644 --- a/src/declarative/util/qmlspringfollow.cpp +++ b/src/declarative/util/qmlspringfollow.cpp @@ -43,8 +43,8 @@ #include #include #include "private/qobject_p.h" -#include "qmlspringfollow.h" -#include "private/qmlanimation_p.h" +#include "qmlspringfollow_p.h" +#include "private/qmlanimation_p_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlspringfollow.h b/src/declarative/util/qmlspringfollow.h deleted file mode 100644 index 1b77861..0000000 --- a/src/declarative/util/qmlspringfollow.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLFOLLOW_H -#define QMLFOLLOW_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlSpringFollowPrivate; -class Q_DECLARATIVE_EXPORT QmlSpringFollow : public QObject, - public QmlPropertyValueSource -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlSpringFollow) - Q_INTERFACES(QmlPropertyValueSource) - - Q_PROPERTY(qreal source READ sourceValue WRITE setSourceValue) - Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) - Q_PROPERTY(qreal spring READ spring WRITE setSpring) - Q_PROPERTY(qreal damping READ damping WRITE setDamping) - Q_PROPERTY(qreal epsilon READ epsilon WRITE setEpsilon) - Q_PROPERTY(qreal modulus READ modulus WRITE setModulus) - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled) - Q_PROPERTY(qreal value READ value NOTIFY valueChanged) - Q_PROPERTY(qreal modulus READ modulus WRITE setModulus NOTIFY modulusChanged) - Q_PROPERTY(qreal mass READ mass WRITE setMass NOTIFY massChanged) - Q_PROPERTY(bool inSync READ inSync NOTIFY syncChanged) - -public: - QmlSpringFollow(QObject *parent=0); - ~QmlSpringFollow(); - - virtual void setTarget(const QmlMetaProperty &); - - qreal sourceValue() const; - void setSourceValue(qreal value); - qreal velocity() const; - void setVelocity(qreal velocity); - qreal spring() const; - void setSpring(qreal spring); - qreal damping() const; - void setDamping(qreal damping); - qreal epsilon() const; - void setEpsilon(qreal epsilon); - qreal mass() const; - void setMass(qreal modulus); - qreal modulus() const; - void setModulus(qreal modulus); - bool enabled() const; - void setEnabled(bool enabled); - bool inSync() const; - - qreal value() const; - -Q_SIGNALS: - void valueChanged(qreal); - void modulusChanged(); - void massChanged(); - void syncChanged(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlSpringFollow) - -QT_END_HEADER - -#endif // QFXFOLLOW_H diff --git a/src/declarative/util/qmlspringfollow_p.h b/src/declarative/util/qmlspringfollow_p.h new file mode 100644 index 0000000..1b77861 --- /dev/null +++ b/src/declarative/util/qmlspringfollow_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLFOLLOW_H +#define QMLFOLLOW_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlSpringFollowPrivate; +class Q_DECLARATIVE_EXPORT QmlSpringFollow : public QObject, + public QmlPropertyValueSource +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlSpringFollow) + Q_INTERFACES(QmlPropertyValueSource) + + Q_PROPERTY(qreal source READ sourceValue WRITE setSourceValue) + Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity) + Q_PROPERTY(qreal spring READ spring WRITE setSpring) + Q_PROPERTY(qreal damping READ damping WRITE setDamping) + Q_PROPERTY(qreal epsilon READ epsilon WRITE setEpsilon) + Q_PROPERTY(qreal modulus READ modulus WRITE setModulus) + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled) + Q_PROPERTY(qreal value READ value NOTIFY valueChanged) + Q_PROPERTY(qreal modulus READ modulus WRITE setModulus NOTIFY modulusChanged) + Q_PROPERTY(qreal mass READ mass WRITE setMass NOTIFY massChanged) + Q_PROPERTY(bool inSync READ inSync NOTIFY syncChanged) + +public: + QmlSpringFollow(QObject *parent=0); + ~QmlSpringFollow(); + + virtual void setTarget(const QmlMetaProperty &); + + qreal sourceValue() const; + void setSourceValue(qreal value); + qreal velocity() const; + void setVelocity(qreal velocity); + qreal spring() const; + void setSpring(qreal spring); + qreal damping() const; + void setDamping(qreal damping); + qreal epsilon() const; + void setEpsilon(qreal epsilon); + qreal mass() const; + void setMass(qreal modulus); + qreal modulus() const; + void setModulus(qreal modulus); + bool enabled() const; + void setEnabled(bool enabled); + bool inSync() const; + + qreal value() const; + +Q_SIGNALS: + void valueChanged(qreal); + void modulusChanged(); + void massChanged(); + void syncChanged(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlSpringFollow) + +QT_END_HEADER + +#endif // QFXFOLLOW_H diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 425480c..6908175 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -39,14 +39,14 @@ ** ****************************************************************************/ -#include "qmltransition.h" -#include "qmlstategroup.h" -#include "qmlstate_p.h" +#include "qmltransition_p.h" +#include "qmlstategroup_p.h" +#include "qmlstate_p_p.h" #include "qmlbinding.h" -#include "qmlstateoperations.h" -#include "qmlanimation.h" +#include "qmlstateoperations_p.h" #include "qmlanimation_p.h" -#include "qmlstate.h" +#include "qmlanimation_p_p.h" +#include "qmlstate_p.h" #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlstate.h b/src/declarative/util/qmlstate.h deleted file mode 100644 index 50128c0..0000000 --- a/src/declarative/util/qmlstate.h +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSTATE_H -#define QMLSTATE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class ActionEvent; -class QmlBinding; -class Action -{ -public: - Action(); - Action(QObject *, const QString &, const QVariant &); - - bool restore:1; - bool actionDone:1; - bool reverseEvent:1; - bool deletableToBinding:1; - - QmlMetaProperty property; - QVariant fromValue; - QVariant toValue; - - QmlAbstractBinding *fromBinding; - QmlAbstractBinding *toBinding; - ActionEvent *event; - - //strictly for matching - QObject *specifiedObject; - QString specifiedProperty; - - void deleteFromBinding(); -}; - -class ActionEvent -{ -public: - virtual ~ActionEvent(); - virtual QString typeName() const; - - virtual void execute(); - virtual bool isReversable(); - virtual void reverse(); - virtual void saveOriginals() {} - - //virtual bool hasExtraActions(); - virtual QList extraActions(); - - virtual bool changesBindings(); - virtual void clearForwardBindings(); - virtual void clearReverseBindings(); - virtual bool override(ActionEvent*other); -}; - -//### rename to QmlStateChange? -class QmlStateGroup; -class Q_DECLARATIVE_EXPORT QmlStateOperation : public QObject -{ - Q_OBJECT -public: - QmlStateOperation(QObject *parent = 0) - : QObject(parent) {} - typedef QList ActionList; - - virtual ActionList actions(); - -protected: - QmlStateOperation(QObjectPrivate &dd, QObject *parent = 0); -}; - -typedef QmlStateOperation::ActionList QmlStateActions; - -class QmlTransition; -class QmlStatePrivate; -class Q_DECLARATIVE_EXPORT QmlState : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QmlBinding *when READ when WRITE setWhen) - Q_PROPERTY(QString extend READ extends WRITE setExtends) - Q_PROPERTY(QmlList* changes READ changes) - Q_CLASSINFO("DefaultProperty", "changes") - -public: - QmlState(QObject *parent=0); - virtual ~QmlState(); - - QString name() const; - void setName(const QString &); - - /*'when' is a QmlBinding to limit state changes oscillation - due to the unpredictable order of evaluation of bound expressions*/ - bool isWhenKnown() const; - QmlBinding *when() const; - void setWhen(QmlBinding *); - - QString extends() const; - void setExtends(const QString &); - - QmlList *changes(); - QmlState &operator<<(QmlStateOperation *); - - void apply(QmlStateGroup *, QmlTransition *, QmlState *revert); - void cancel(); - - QmlStateGroup *stateGroup() const; - void setStateGroup(QmlStateGroup *); - -Q_SIGNALS: - void completed(); - -private: - Q_DECLARE_PRIVATE(QmlState) - Q_DISABLE_COPY(QmlState) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlStateOperation) -QML_DECLARE_TYPE(QmlState) - -QT_END_HEADER - -#endif // QMLSTATE_H diff --git a/src/declarative/util/qmlstate_p.h b/src/declarative/util/qmlstate_p.h index 63fc6da..50128c0 100644 --- a/src/declarative/util/qmlstate_p.h +++ b/src/declarative/util/qmlstate_p.h @@ -39,83 +39,136 @@ ** ****************************************************************************/ -#ifndef QMLSTATE_P_H -#define QMLSTATE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include +#ifndef QMLSTATE_H +#define QMLSTATE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class SimpleAction +QT_MODULE(Declarative) + +class ActionEvent; +class QmlBinding; +class Action { public: - enum State { StartState, EndState }; - SimpleAction(const Action &a, State state = StartState) - { - property = a.property; - specifiedObject = a.specifiedObject; - specifiedProperty = a.specifiedProperty; - event = a.event; - if (state == StartState) { - value = a.fromValue; - binding = property.binding(); - reverseEvent = true; - } else { - value = a.toValue; - binding = a.toBinding; - reverseEvent = false; - } - } + Action(); + Action(QObject *, const QString &, const QVariant &); + + bool restore:1; + bool actionDone:1; + bool reverseEvent:1; + bool deletableToBinding:1; QmlMetaProperty property; - QVariant value; - QmlAbstractBinding *binding; + QVariant fromValue; + QVariant toValue; + + QmlAbstractBinding *fromBinding; + QmlAbstractBinding *toBinding; + ActionEvent *event; + + //strictly for matching QObject *specifiedObject; QString specifiedProperty; - ActionEvent *event; - bool reverseEvent; + + void deleteFromBinding(); }; -class QmlStatePrivate : public QObjectPrivate +class ActionEvent { - Q_DECLARE_PUBLIC(QmlState) +public: + virtual ~ActionEvent(); + virtual QString typeName() const; + + virtual void execute(); + virtual bool isReversable(); + virtual void reverse(); + virtual void saveOriginals() {} + + //virtual bool hasExtraActions(); + virtual QList extraActions(); + virtual bool changesBindings(); + virtual void clearForwardBindings(); + virtual void clearReverseBindings(); + virtual bool override(ActionEvent*other); +}; + +//### rename to QmlStateChange? +class QmlStateGroup; +class Q_DECLARATIVE_EXPORT QmlStateOperation : public QObject +{ + Q_OBJECT public: - QmlStatePrivate() - : when(0), inState(false), group(0) {} + QmlStateOperation(QObject *parent = 0) + : QObject(parent) {} + typedef QList ActionList; - typedef QList SimpleActionList; + virtual ActionList actions(); - QString name; - QmlBinding *when; - QmlConcreteList operations; +protected: + QmlStateOperation(QObjectPrivate &dd, QObject *parent = 0); +}; + +typedef QmlStateOperation::ActionList QmlStateActions; + +class QmlTransition; +class QmlStatePrivate; +class Q_DECLARATIVE_EXPORT QmlState : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QmlBinding *when READ when WRITE setWhen) + Q_PROPERTY(QString extend READ extends WRITE setExtends) + Q_PROPERTY(QmlList* changes READ changes) + Q_CLASSINFO("DefaultProperty", "changes") + +public: + QmlState(QObject *parent=0); + virtual ~QmlState(); - QmlTransitionManager transitionManager; + QString name() const; + void setName(const QString &); - SimpleActionList revertList; - QList reverting; - QString extends; - mutable bool inState; - QmlStateGroup *group; + /*'when' is a QmlBinding to limit state changes oscillation + due to the unpredictable order of evaluation of bound expressions*/ + bool isWhenKnown() const; + QmlBinding *when() const; + void setWhen(QmlBinding *); - QmlStateOperation::ActionList generateActionList(QmlStateGroup *) const; - void complete(); + QString extends() const; + void setExtends(const QString &); + + QmlList *changes(); + QmlState &operator<<(QmlStateOperation *); + + void apply(QmlStateGroup *, QmlTransition *, QmlState *revert); + void cancel(); + + QmlStateGroup *stateGroup() const; + void setStateGroup(QmlStateGroup *); + +Q_SIGNALS: + void completed(); + +private: + Q_DECLARE_PRIVATE(QmlState) + Q_DISABLE_COPY(QmlState) }; QT_END_NAMESPACE -#endif // QMLSTATE_P_H +QML_DECLARE_TYPE(QmlStateOperation) +QML_DECLARE_TYPE(QmlState) + +QT_END_HEADER + +#endif // QMLSTATE_H diff --git a/src/declarative/util/qmlstate_p_p.h b/src/declarative/util/qmlstate_p_p.h new file mode 100644 index 0000000..2b62213 --- /dev/null +++ b/src/declarative/util/qmlstate_p_p.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLSTATE_P_H +#define QMLSTATE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class SimpleAction +{ +public: + enum State { StartState, EndState }; + SimpleAction(const Action &a, State state = StartState) + { + property = a.property; + specifiedObject = a.specifiedObject; + specifiedProperty = a.specifiedProperty; + event = a.event; + if (state == StartState) { + value = a.fromValue; + binding = property.binding(); + reverseEvent = true; + } else { + value = a.toValue; + binding = a.toBinding; + reverseEvent = false; + } + } + + QmlMetaProperty property; + QVariant value; + QmlAbstractBinding *binding; + QObject *specifiedObject; + QString specifiedProperty; + ActionEvent *event; + bool reverseEvent; +}; + +class QmlStatePrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlState) + +public: + QmlStatePrivate() + : when(0), inState(false), group(0) {} + + typedef QList SimpleActionList; + + QString name; + QmlBinding *when; + QmlConcreteList operations; + + QmlTransitionManager transitionManager; + + SimpleActionList revertList; + QList reverting; + QString extends; + mutable bool inState; + QmlStateGroup *group; + + QmlStateOperation::ActionList generateActionList(QmlStateGroup *) const; + void complete(); +}; + +QT_END_NAMESPACE + +#endif // QMLSTATE_P_H diff --git a/src/declarative/util/qmlstategroup.cpp b/src/declarative/util/qmlstategroup.cpp index b07def1..6ef8dce 100644 --- a/src/declarative/util/qmlstategroup.cpp +++ b/src/declarative/util/qmlstategroup.cpp @@ -40,8 +40,8 @@ ****************************************************************************/ #include "private/qobject_p.h" -#include "qmlstategroup.h" -#include "qmltransition.h" +#include "qmlstategroup_p.h" +#include "qmltransition_p.h" #include #include diff --git a/src/declarative/util/qmlstategroup.h b/src/declarative/util/qmlstategroup.h deleted file mode 100644 index cf79eb4..0000000 --- a/src/declarative/util/qmlstategroup.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSTATEGROUP_H -#define QMLSTATEGROUP_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlStateGroupPrivate; -class Q_DECLARATIVE_EXPORT QmlStateGroup : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - Q_DECLARE_PRIVATE(QmlStateGroup) - - Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) - Q_PROPERTY(QmlList* states READ statesProperty DESIGNABLE false) - Q_PROPERTY(QmlList* transitions READ transitionsProperty DESIGNABLE false) - -public: - QmlStateGroup(QObject * = 0); - virtual ~QmlStateGroup(); - - QString state() const; - void setState(const QString &); - - QmlList* statesProperty(); - QList states() const; - - QmlList* transitionsProperty(); - - QmlState *findState(const QString &name) const; - - virtual void classBegin(); - virtual void componentComplete(); -Q_SIGNALS: - void stateChanged(const QString &); - -private: - friend class QmlState; - void updateAutoState(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlStateGroup) - -QT_END_HEADER - -#endif // QMLSTATEGROUP_H diff --git a/src/declarative/util/qmlstategroup_p.h b/src/declarative/util/qmlstategroup_p.h new file mode 100644 index 0000000..3136b1e --- /dev/null +++ b/src/declarative/util/qmlstategroup_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLSTATEGROUP_H +#define QMLSTATEGROUP_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlStateGroupPrivate; +class Q_DECLARATIVE_EXPORT QmlStateGroup : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + Q_DECLARE_PRIVATE(QmlStateGroup) + + Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) + Q_PROPERTY(QmlList* states READ statesProperty DESIGNABLE false) + Q_PROPERTY(QmlList* transitions READ transitionsProperty DESIGNABLE false) + +public: + QmlStateGroup(QObject * = 0); + virtual ~QmlStateGroup(); + + QString state() const; + void setState(const QString &); + + QmlList* statesProperty(); + QList states() const; + + QmlList* transitionsProperty(); + + QmlState *findState(const QString &name) const; + + virtual void classBegin(); + virtual void componentComplete(); +Q_SIGNALS: + void stateChanged(const QString &); + +private: + friend class QmlState; + void updateAutoState(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlStateGroup) + +QT_END_HEADER + +#endif // QMLSTATEGROUP_H diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 5c328cf..af8ba63 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -43,10 +43,10 @@ #include #include #include -#include "qmlstateoperations.h" +#include "qmlstateoperations_p.h" #include #include -#include +#include #include #include #include @@ -730,8 +730,8 @@ bool QmlAnchorChanges::override(ActionEvent*other) return false; } -QT_END_NAMESPACE - #include "qmlstateoperations.moc" -#include "moc_qmlstateoperations.cpp" +#include "moc_qmlstateoperations_p.cpp" + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h deleted file mode 100644 index f2bcd49..0000000 --- a/src/declarative/util/qmlstateoperations.h +++ /dev/null @@ -1,177 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSTATEOPERATIONS_H -#define QMLSTATEOPERATIONS_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlParentChangePrivate; -class Q_DECLARATIVE_EXPORT QmlParentChange : public QmlStateOperation, public ActionEvent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlParentChange) - - Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) - Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) -public: - QmlParentChange(QObject *parent=0); - ~QmlParentChange(); - - QmlGraphicsItem *object() const; - void setObject(QmlGraphicsItem *); - - QmlGraphicsItem *parent() const; - void setParent(QmlGraphicsItem *); - - virtual ActionList actions(); - - virtual void saveOriginals(); - virtual void execute(); - virtual bool isReversable(); - virtual void reverse(); - virtual QString typeName() const; - virtual bool override(ActionEvent*other); -}; - -class QmlStateChangeScriptPrivate; -class Q_DECLARATIVE_EXPORT QmlStateChangeScript : public QmlStateOperation, public ActionEvent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlStateChangeScript) - - Q_PROPERTY(QmlScriptString script READ script WRITE setScript) - Q_PROPERTY(QString name READ name WRITE setName) - -public: - QmlStateChangeScript(QObject *parent=0); - ~QmlStateChangeScript(); - - virtual ActionList actions(); - - QmlScriptString script() const; - void setScript(const QmlScriptString &); - - QString name() const; - void setName(const QString &); - - virtual void execute(); -}; - -class QmlAnchorChangesPrivate; -class Q_DECLARATIVE_EXPORT QmlAnchorChanges : public QmlStateOperation, public ActionEvent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlAnchorChanges) - - Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) - Q_PROPERTY(QString reset READ reset WRITE setReset) - Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline) - -public: - QmlAnchorChanges(QObject *parent=0); - ~QmlAnchorChanges(); - - virtual ActionList actions(); - - QmlGraphicsItem *object() const; - void setObject(QmlGraphicsItem *); - - QString reset() const; - void setReset(const QString &); - - QmlGraphicsAnchorLine left() const; - void setLeft(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine right() const; - void setRight(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine top() const; - void setTop(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine bottom() const; - void setBottom(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine verticalCenter() const; - void setVerticalCenter(const QmlGraphicsAnchorLine &edge); - - QmlGraphicsAnchorLine baseline() const; - void setBaseline(const QmlGraphicsAnchorLine &edge); - - virtual void execute(); - virtual bool isReversable(); - virtual void reverse(); - virtual QString typeName() const; - virtual bool override(ActionEvent*other); - virtual QList extraActions(); - virtual bool changesBindings(); - virtual void saveOriginals(); - virtual void clearForwardBindings(); - virtual void clearReverseBindings(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlParentChange) -QML_DECLARE_TYPE(QmlStateChangeScript) -QML_DECLARE_TYPE(QmlAnchorChanges) - -QT_END_HEADER - -#endif // QMLSTATEOPERATIONS_H diff --git a/src/declarative/util/qmlstateoperations_p.h b/src/declarative/util/qmlstateoperations_p.h new file mode 100644 index 0000000..04ea781 --- /dev/null +++ b/src/declarative/util/qmlstateoperations_p.h @@ -0,0 +1,177 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLSTATEOPERATIONS_H +#define QMLSTATEOPERATIONS_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlParentChangePrivate; +class Q_DECLARATIVE_EXPORT QmlParentChange : public QmlStateOperation, public ActionEvent +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlParentChange) + + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) + Q_PROPERTY(QmlGraphicsItem *parent READ parent WRITE setParent) +public: + QmlParentChange(QObject *parent=0); + ~QmlParentChange(); + + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); + + QmlGraphicsItem *parent() const; + void setParent(QmlGraphicsItem *); + + virtual ActionList actions(); + + virtual void saveOriginals(); + virtual void execute(); + virtual bool isReversable(); + virtual void reverse(); + virtual QString typeName() const; + virtual bool override(ActionEvent*other); +}; + +class QmlStateChangeScriptPrivate; +class Q_DECLARATIVE_EXPORT QmlStateChangeScript : public QmlStateOperation, public ActionEvent +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlStateChangeScript) + + Q_PROPERTY(QmlScriptString script READ script WRITE setScript) + Q_PROPERTY(QString name READ name WRITE setName) + +public: + QmlStateChangeScript(QObject *parent=0); + ~QmlStateChangeScript(); + + virtual ActionList actions(); + + QmlScriptString script() const; + void setScript(const QmlScriptString &); + + QString name() const; + void setName(const QString &); + + virtual void execute(); +}; + +class QmlAnchorChangesPrivate; +class Q_DECLARATIVE_EXPORT QmlAnchorChanges : public QmlStateOperation, public ActionEvent +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlAnchorChanges) + + Q_PROPERTY(QmlGraphicsItem *target READ object WRITE setObject) + Q_PROPERTY(QString reset READ reset WRITE setReset) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline) + +public: + QmlAnchorChanges(QObject *parent=0); + ~QmlAnchorChanges(); + + virtual ActionList actions(); + + QmlGraphicsItem *object() const; + void setObject(QmlGraphicsItem *); + + QString reset() const; + void setReset(const QString &); + + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); + + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); + + virtual void execute(); + virtual bool isReversable(); + virtual void reverse(); + virtual QString typeName() const; + virtual bool override(ActionEvent*other); + virtual QList extraActions(); + virtual bool changesBindings(); + virtual void saveOriginals(); + virtual void clearForwardBindings(); + virtual void clearReverseBindings(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlParentChange) +QML_DECLARE_TYPE(QmlStateChangeScript) +QML_DECLARE_TYPE(QmlAnchorChanges) + +QT_END_HEADER + +#endif // QMLSTATEOPERATIONS_H diff --git a/src/declarative/util/qmlsystempalette.cpp b/src/declarative/util/qmlsystempalette.cpp index 014eca8..c5a0986 100644 --- a/src/declarative/util/qmlsystempalette.cpp +++ b/src/declarative/util/qmlsystempalette.cpp @@ -40,7 +40,7 @@ ****************************************************************************/ #include "private/qobject_p.h" -#include "qmlsystempalette.h" +#include "qmlsystempalette_p.h" #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlsystempalette.h b/src/declarative/util/qmlsystempalette.h deleted file mode 100644 index 6558c7e..0000000 --- a/src/declarative/util/qmlsystempalette.h +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLSYSTEMPALETTE_H -#define QMLSYSTEMPALETTE_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlSystemPalettePrivate; -class Q_DECLARATIVE_EXPORT QmlSystemPalette : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlSystemPalette) - - Q_PROPERTY(QPalette::ColorGroup colorGroup READ colorGroup WRITE setColorGroup NOTIFY paletteChanged) - Q_PROPERTY(QColor window READ window NOTIFY paletteChanged) - Q_PROPERTY(QColor windowText READ windowText NOTIFY paletteChanged) - Q_PROPERTY(QColor base READ base NOTIFY paletteChanged) - Q_PROPERTY(QColor text READ text NOTIFY paletteChanged) - Q_PROPERTY(QColor alternateBase READ alternateBase NOTIFY paletteChanged) - Q_PROPERTY(QColor button READ button NOTIFY paletteChanged) - Q_PROPERTY(QColor buttonText READ buttonText NOTIFY paletteChanged) - Q_PROPERTY(QColor light READ light NOTIFY paletteChanged) - Q_PROPERTY(QColor midlight READ midlight NOTIFY paletteChanged) - Q_PROPERTY(QColor dark READ dark NOTIFY paletteChanged) - Q_PROPERTY(QColor mid READ mid NOTIFY paletteChanged) - Q_PROPERTY(QColor shadow READ shadow NOTIFY paletteChanged) - Q_PROPERTY(QColor highlight READ highlight NOTIFY paletteChanged) - Q_PROPERTY(QColor highlightedText READ highlightedText NOTIFY paletteChanged) - -public: - QmlSystemPalette(QObject *parent=0); - ~QmlSystemPalette(); - - QColor window() const; - QColor windowText() const; - - QColor base() const; - QColor text() const; - QColor alternateBase() const; - - QColor button() const; - QColor buttonText() const; - - QColor light() const; - QColor midlight() const; - QColor dark() const; - QColor mid() const; - QColor shadow() const; - - QColor highlight() const; - QColor highlightedText() const; - - QPalette::ColorGroup colorGroup() const; - void setColorGroup(QPalette::ColorGroup); - - // FIXME: Move to utility class? - Q_INVOKABLE QColor lighter(const QColor&) const; - Q_INVOKABLE QColor darker(const QColor&) const; - -Q_SIGNALS: - void paletteChanged(); - -private: - bool eventFilter(QObject *watched, QEvent *event); - bool event(QEvent *event); - -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlSystemPalette) - -QT_END_HEADER - -#endif // QMLSYSTEMPALETTE_H diff --git a/src/declarative/util/qmlsystempalette_p.h b/src/declarative/util/qmlsystempalette_p.h new file mode 100644 index 0000000..6558c7e --- /dev/null +++ b/src/declarative/util/qmlsystempalette_p.h @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLSYSTEMPALETTE_H +#define QMLSYSTEMPALETTE_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlSystemPalettePrivate; +class Q_DECLARATIVE_EXPORT QmlSystemPalette : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlSystemPalette) + + Q_PROPERTY(QPalette::ColorGroup colorGroup READ colorGroup WRITE setColorGroup NOTIFY paletteChanged) + Q_PROPERTY(QColor window READ window NOTIFY paletteChanged) + Q_PROPERTY(QColor windowText READ windowText NOTIFY paletteChanged) + Q_PROPERTY(QColor base READ base NOTIFY paletteChanged) + Q_PROPERTY(QColor text READ text NOTIFY paletteChanged) + Q_PROPERTY(QColor alternateBase READ alternateBase NOTIFY paletteChanged) + Q_PROPERTY(QColor button READ button NOTIFY paletteChanged) + Q_PROPERTY(QColor buttonText READ buttonText NOTIFY paletteChanged) + Q_PROPERTY(QColor light READ light NOTIFY paletteChanged) + Q_PROPERTY(QColor midlight READ midlight NOTIFY paletteChanged) + Q_PROPERTY(QColor dark READ dark NOTIFY paletteChanged) + Q_PROPERTY(QColor mid READ mid NOTIFY paletteChanged) + Q_PROPERTY(QColor shadow READ shadow NOTIFY paletteChanged) + Q_PROPERTY(QColor highlight READ highlight NOTIFY paletteChanged) + Q_PROPERTY(QColor highlightedText READ highlightedText NOTIFY paletteChanged) + +public: + QmlSystemPalette(QObject *parent=0); + ~QmlSystemPalette(); + + QColor window() const; + QColor windowText() const; + + QColor base() const; + QColor text() const; + QColor alternateBase() const; + + QColor button() const; + QColor buttonText() const; + + QColor light() const; + QColor midlight() const; + QColor dark() const; + QColor mid() const; + QColor shadow() const; + + QColor highlight() const; + QColor highlightedText() const; + + QPalette::ColorGroup colorGroup() const; + void setColorGroup(QPalette::ColorGroup); + + // FIXME: Move to utility class? + Q_INVOKABLE QColor lighter(const QColor&) const; + Q_INVOKABLE QColor darker(const QColor&) const; + +Q_SIGNALS: + void paletteChanged(); + +private: + bool eventFilter(QObject *watched, QEvent *event); + bool event(QEvent *event); + +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlSystemPalette) + +QT_END_HEADER + +#endif // QMLSYSTEMPALETTE_H diff --git a/src/declarative/util/qmltimeline.cpp b/src/declarative/util/qmltimeline.cpp index 5ba310d..55d9490 100644 --- a/src/declarative/util/qmltimeline.cpp +++ b/src/declarative/util/qmltimeline.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qmltimeline_p.h" +#include "qmltimeline_p_p.h" #include #include #include diff --git a/src/declarative/util/qmltimeline_p.h b/src/declarative/util/qmltimeline_p.h deleted file mode 100644 index abed80a..0000000 --- a/src/declarative/util/qmltimeline_p.h +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLTIMELINE_H -#define QMLTIMELINE_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QEasingCurve; -class QmlTimeLineValue; -class QmlTimeLineEvent; -struct QmlTimeLinePrivate; -class QmlTimeLineObject; -class Q_DECLARATIVE_EXPORT QmlTimeLine : public QAbstractAnimation -{ -Q_OBJECT -public: - QmlTimeLine(QObject *parent = 0); - ~QmlTimeLine(); - - enum SyncMode { LocalSync, GlobalSync }; - SyncMode syncMode() const; - void setSyncMode(SyncMode); - - void pause(QmlTimeLineObject &, int); - void execute(const QmlTimeLineEvent &); - void set(QmlTimeLineValue &, qreal); - - int accel(QmlTimeLineValue &, qreal velocity, qreal accel); - int accel(QmlTimeLineValue &, qreal velocity, qreal accel, qreal maxDistance); - int accelDistance(QmlTimeLineValue &, qreal velocity, qreal distance); - - void move(QmlTimeLineValue &, qreal destination, int time = 500); - void move(QmlTimeLineValue &, qreal destination, const QEasingCurve &, int time = 500); - void moveBy(QmlTimeLineValue &, qreal change, int time = 500); - void moveBy(QmlTimeLineValue &, qreal change, const QEasingCurve &, int time = 500); - - void sync(); - void setSyncPoint(int); - int syncPoint() const; - - void sync(QmlTimeLineValue &); - void sync(QmlTimeLineValue &, QmlTimeLineValue &); - - void reset(QmlTimeLineValue &); - - void complete(); - void clear(); - bool isActive() const; - - int time() const; - - virtual int duration() const; -Q_SIGNALS: - void updated(); - void completed(); - -protected: - virtual void updateCurrentTime(int); - -private: - void remove(QmlTimeLineObject *); - friend class QmlTimeLineObject; - friend struct QmlTimeLinePrivate; - QmlTimeLinePrivate *d; -}; - -class Q_DECLARATIVE_EXPORT QmlTimeLineObject -{ -public: - QmlTimeLineObject(); - virtual ~QmlTimeLineObject(); - -protected: - friend class QmlTimeLine; - friend struct QmlTimeLinePrivate; - QmlTimeLine *_t; -}; - -class Q_DECLARATIVE_EXPORT QmlTimeLineValue : public QmlTimeLineObject -{ -public: - QmlTimeLineValue(qreal v = 0.) : _v(v) {} - - virtual qreal value() const { return _v; } - virtual void setValue(qreal v) { _v = v; } - - QmlTimeLine *timeLine() const { return _t; } - - operator qreal() const { return _v; } - QmlTimeLineValue &operator=(qreal v) { setValue(v); return *this; } -private: - friend class QmlTimeLine; - friend struct QmlTimeLinePrivate; - qreal _v; -}; - -class Q_DECLARATIVE_EXPORT QmlTimeLineEvent -{ -public: - QmlTimeLineEvent(); - QmlTimeLineEvent(const QmlTimeLineEvent &o); - - template - QmlTimeLineEvent(QmlTimeLineObject *b, T *c) - { - d0 = &callFunc; - d1 = (void *)c; - d2 = b; - } - - template - static QmlTimeLineEvent timeLineEvent(QmlTimeLineObject *b, T *c) - { - QmlTimeLineEvent rv; - rv.d0 = &callFunc; - rv.d1 = (void *)c; - rv.d2 = b; - return rv; - } - - QmlTimeLineEvent &operator=(const QmlTimeLineEvent &o); - void execute() const; - QmlTimeLineObject *eventObject() const; - -private: - typedef void (*CallFunc)(void *c); - - template - static void callFunc(void *c) - { - T *cls = (T *)c; - (cls->*method)(); - } - CallFunc d0; - void *d1; - QmlTimeLineObject *d2; -}; - -template -class QmlTimeLineValueProxy : public QmlTimeLineValue -{ -public: - QmlTimeLineValueProxy(T *cls, void (T::*func)(qreal), qreal v = 0.) - : QmlTimeLineValue(v), _class(cls), _setFunctionReal(func), _setFunctionInt(0) - { - Q_ASSERT(_class); - } - - QmlTimeLineValueProxy(T *cls, void (T::*func)(int), qreal v = 0.) - : QmlTimeLineValue(v), _class(cls), _setFunctionReal(0), _setFunctionInt(func) - { - Q_ASSERT(_class); - } - - virtual void setValue(qreal v) - { - QmlTimeLineValue::setValue(v); - if (_setFunctionReal) (_class->*_setFunctionReal)(v); - else if (_setFunctionInt) (_class->*_setFunctionInt)((int)v); - } - -private: - T *_class; - void (T::*_setFunctionReal)(qreal); - void (T::*_setFunctionInt)(int); -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/util/qmltimeline_p_p.h b/src/declarative/util/qmltimeline_p_p.h new file mode 100644 index 0000000..abed80a --- /dev/null +++ b/src/declarative/util/qmltimeline_p_p.h @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLTIMELINE_H +#define QMLTIMELINE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QEasingCurve; +class QmlTimeLineValue; +class QmlTimeLineEvent; +struct QmlTimeLinePrivate; +class QmlTimeLineObject; +class Q_DECLARATIVE_EXPORT QmlTimeLine : public QAbstractAnimation +{ +Q_OBJECT +public: + QmlTimeLine(QObject *parent = 0); + ~QmlTimeLine(); + + enum SyncMode { LocalSync, GlobalSync }; + SyncMode syncMode() const; + void setSyncMode(SyncMode); + + void pause(QmlTimeLineObject &, int); + void execute(const QmlTimeLineEvent &); + void set(QmlTimeLineValue &, qreal); + + int accel(QmlTimeLineValue &, qreal velocity, qreal accel); + int accel(QmlTimeLineValue &, qreal velocity, qreal accel, qreal maxDistance); + int accelDistance(QmlTimeLineValue &, qreal velocity, qreal distance); + + void move(QmlTimeLineValue &, qreal destination, int time = 500); + void move(QmlTimeLineValue &, qreal destination, const QEasingCurve &, int time = 500); + void moveBy(QmlTimeLineValue &, qreal change, int time = 500); + void moveBy(QmlTimeLineValue &, qreal change, const QEasingCurve &, int time = 500); + + void sync(); + void setSyncPoint(int); + int syncPoint() const; + + void sync(QmlTimeLineValue &); + void sync(QmlTimeLineValue &, QmlTimeLineValue &); + + void reset(QmlTimeLineValue &); + + void complete(); + void clear(); + bool isActive() const; + + int time() const; + + virtual int duration() const; +Q_SIGNALS: + void updated(); + void completed(); + +protected: + virtual void updateCurrentTime(int); + +private: + void remove(QmlTimeLineObject *); + friend class QmlTimeLineObject; + friend struct QmlTimeLinePrivate; + QmlTimeLinePrivate *d; +}; + +class Q_DECLARATIVE_EXPORT QmlTimeLineObject +{ +public: + QmlTimeLineObject(); + virtual ~QmlTimeLineObject(); + +protected: + friend class QmlTimeLine; + friend struct QmlTimeLinePrivate; + QmlTimeLine *_t; +}; + +class Q_DECLARATIVE_EXPORT QmlTimeLineValue : public QmlTimeLineObject +{ +public: + QmlTimeLineValue(qreal v = 0.) : _v(v) {} + + virtual qreal value() const { return _v; } + virtual void setValue(qreal v) { _v = v; } + + QmlTimeLine *timeLine() const { return _t; } + + operator qreal() const { return _v; } + QmlTimeLineValue &operator=(qreal v) { setValue(v); return *this; } +private: + friend class QmlTimeLine; + friend struct QmlTimeLinePrivate; + qreal _v; +}; + +class Q_DECLARATIVE_EXPORT QmlTimeLineEvent +{ +public: + QmlTimeLineEvent(); + QmlTimeLineEvent(const QmlTimeLineEvent &o); + + template + QmlTimeLineEvent(QmlTimeLineObject *b, T *c) + { + d0 = &callFunc; + d1 = (void *)c; + d2 = b; + } + + template + static QmlTimeLineEvent timeLineEvent(QmlTimeLineObject *b, T *c) + { + QmlTimeLineEvent rv; + rv.d0 = &callFunc; + rv.d1 = (void *)c; + rv.d2 = b; + return rv; + } + + QmlTimeLineEvent &operator=(const QmlTimeLineEvent &o); + void execute() const; + QmlTimeLineObject *eventObject() const; + +private: + typedef void (*CallFunc)(void *c); + + template + static void callFunc(void *c) + { + T *cls = (T *)c; + (cls->*method)(); + } + CallFunc d0; + void *d1; + QmlTimeLineObject *d2; +}; + +template +class QmlTimeLineValueProxy : public QmlTimeLineValue +{ +public: + QmlTimeLineValueProxy(T *cls, void (T::*func)(qreal), qreal v = 0.) + : QmlTimeLineValue(v), _class(cls), _setFunctionReal(func), _setFunctionInt(0) + { + Q_ASSERT(_class); + } + + QmlTimeLineValueProxy(T *cls, void (T::*func)(int), qreal v = 0.) + : QmlTimeLineValue(v), _class(cls), _setFunctionReal(0), _setFunctionInt(func) + { + Q_ASSERT(_class); + } + + virtual void setValue(qreal v) + { + QmlTimeLineValue::setValue(v); + if (_setFunctionReal) (_class->*_setFunctionReal)(v); + else if (_setFunctionInt) (_class->*_setFunctionInt)((int)v); + } + +private: + T *_class; + void (T::*_setFunctionReal)(qreal); + void (T::*_setFunctionInt)(int); +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp index 1d90051..ff4c912 100644 --- a/src/declarative/util/qmltimer.cpp +++ b/src/declarative/util/qmltimer.cpp @@ -42,7 +42,7 @@ #include "QtCore/qcoreapplication.h" #include "QtCore/qpauseanimation.h" #include "private/qobject_p.h" -#include "qmltimer.h" +#include "qmltimer_p.h" #include "qdebug.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmltimer.h b/src/declarative/util/qmltimer.h deleted file mode 100644 index 22478cb..0000000 --- a/src/declarative/util/qmltimer.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLTIMER_H -#define QMLTIMER_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlTimerPrivate; -class Q_DECLARATIVE_EXPORT QmlTimer : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlTimer) - Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(int interval READ interval WRITE setInterval) - Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) - Q_PROPERTY(bool repeat READ isRepeating WRITE setRepeating) - Q_PROPERTY(bool triggeredOnStart READ triggeredOnStart WRITE setTriggeredOnStart) - -public: - QmlTimer(QObject *parent=0); - - void setInterval(int interval); - int interval() const; - - bool isRunning() const; - void setRunning(bool running); - - bool isRepeating() const; - void setRepeating(bool repeating); - - bool triggeredOnStart() const; - void setTriggeredOnStart(bool triggeredOnStart); - -protected: - void classBegin(); - void componentComplete(); - -public Q_SLOTS: - void start(); - void stop(); - -Q_SIGNALS: - void triggered(); - void runningChanged(); - -private: - void update(); - -private Q_SLOTS: - void ticked(); - void stateChanged(QAbstractAnimation::State,QAbstractAnimation::State); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlTimer) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmltimer_p.h b/src/declarative/util/qmltimer_p.h new file mode 100644 index 0000000..22478cb --- /dev/null +++ b/src/declarative/util/qmltimer_p.h @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLTIMER_H +#define QMLTIMER_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlTimerPrivate; +class Q_DECLARATIVE_EXPORT QmlTimer : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlTimer) + Q_INTERFACES(QmlParserStatus) + Q_PROPERTY(int interval READ interval WRITE setInterval) + Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) + Q_PROPERTY(bool repeat READ isRepeating WRITE setRepeating) + Q_PROPERTY(bool triggeredOnStart READ triggeredOnStart WRITE setTriggeredOnStart) + +public: + QmlTimer(QObject *parent=0); + + void setInterval(int interval); + int interval() const; + + bool isRunning() const; + void setRunning(bool running); + + bool isRepeating() const; + void setRepeating(bool repeating); + + bool triggeredOnStart() const; + void setTriggeredOnStart(bool triggeredOnStart); + +protected: + void classBegin(); + void componentComplete(); + +public Q_SLOTS: + void start(); + void stop(); + +Q_SIGNALS: + void triggered(); + void runningChanged(); + +private: + void update(); + +private Q_SLOTS: + void ticked(); + void stateChanged(QAbstractAnimation::State,QAbstractAnimation::State); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlTimer) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmltransition.cpp b/src/declarative/util/qmltransition.cpp index 97a3b74..d752d1b 100644 --- a/src/declarative/util/qmltransition.cpp +++ b/src/declarative/util/qmltransition.cpp @@ -39,13 +39,13 @@ ** ****************************************************************************/ -#include "qmlstate.h" -#include "qmlstategroup.h" #include "qmlstate_p.h" -#include "qmlstateoperations.h" -#include "qmlanimation.h" +#include "qmlstategroup_p.h" +#include "qmlstate_p_p.h" +#include "qmlstateoperations_p.h" #include "qmlanimation_p.h" -#include "qmltransitionmanager_p.h" +#include "qmlanimation_p_p.h" +#include "qmltransitionmanager_p_p.h" #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmltransition.h b/src/declarative/util/qmltransition.h deleted file mode 100644 index b09341d..0000000 --- a/src/declarative/util/qmltransition.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLTRANSITION_H -#define QMLTRANSITION_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlAbstractAnimation; -class QmlTransitionPrivate; -class QmlTransitionManager; -class Q_DECLARATIVE_EXPORT QmlTransition : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlTransition) - - Q_PROPERTY(QString from READ fromState WRITE setFromState) - Q_PROPERTY(QString to READ toState WRITE setToState) - Q_PROPERTY(bool reversible READ reversible WRITE setReversible) - Q_PROPERTY(QmlList* animations READ animations) - Q_CLASSINFO("DefaultProperty", "animations") - -public: - QmlTransition(QObject *parent=0); - ~QmlTransition(); - - QString fromState() const; - void setFromState(const QString &); - - QString toState() const; - void setToState(const QString &); - - bool reversible() const; - void setReversible(bool); - - QmlList* animations(); - - void prepare(QmlStateOperation::ActionList &actions, - QList &after, - QmlTransitionManager *end); - - void setReversed(bool r); - void stop(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlTransition) - -QT_END_HEADER - -#endif // QMLTRANSITION_H diff --git a/src/declarative/util/qmltransition_p.h b/src/declarative/util/qmltransition_p.h new file mode 100644 index 0000000..092cde9 --- /dev/null +++ b/src/declarative/util/qmltransition_p.h @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLTRANSITION_H +#define QMLTRANSITION_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlAbstractAnimation; +class QmlTransitionPrivate; +class QmlTransitionManager; +class Q_DECLARATIVE_EXPORT QmlTransition : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlTransition) + + Q_PROPERTY(QString from READ fromState WRITE setFromState) + Q_PROPERTY(QString to READ toState WRITE setToState) + Q_PROPERTY(bool reversible READ reversible WRITE setReversible) + Q_PROPERTY(QmlList* animations READ animations) + Q_CLASSINFO("DefaultProperty", "animations") + +public: + QmlTransition(QObject *parent=0); + ~QmlTransition(); + + QString fromState() const; + void setFromState(const QString &); + + QString toState() const; + void setToState(const QString &); + + bool reversible() const; + void setReversible(bool); + + QmlList* animations(); + + void prepare(QmlStateOperation::ActionList &actions, + QList &after, + QmlTransitionManager *end); + + void setReversed(bool r); + void stop(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlTransition) + +QT_END_HEADER + +#endif // QMLTRANSITION_H diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp index 7eaccac..b33cae3 100644 --- a/src/declarative/util/qmltransitionmanager.cpp +++ b/src/declarative/util/qmltransitionmanager.cpp @@ -40,8 +40,8 @@ ****************************************************************************/ #include -#include -#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmltransitionmanager_p.h b/src/declarative/util/qmltransitionmanager_p.h deleted file mode 100644 index 74a3950..0000000 --- a/src/declarative/util/qmltransitionmanager_p.h +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLTRANSITIONMANAGER_P_H -#define QMLTRANSITIONMANAGER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -QT_BEGIN_NAMESPACE - -class QmlStatePrivate; -class QmlTransitionManagerPrivate; -class QmlTransitionManager -{ -public: - QmlTransitionManager(); - ~QmlTransitionManager(); - - void transition(const QList &, QmlTransition *transition); - - void cancel(); - -private: - Q_DISABLE_COPY(QmlTransitionManager); - QmlTransitionManagerPrivate *d; - - void complete(); - void setState(QmlState *); - - friend class QmlState; - friend class QmlTransitionPrivate; -}; - -QT_END_NAMESPACE - -#endif // QMLTRANSITIONMANAGER_P_H diff --git a/src/declarative/util/qmltransitionmanager_p_p.h b/src/declarative/util/qmltransitionmanager_p_p.h new file mode 100644 index 0000000..ab435aa --- /dev/null +++ b/src/declarative/util/qmltransitionmanager_p_p.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLTRANSITIONMANAGER_P_H +#define QMLTRANSITIONMANAGER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QmlStatePrivate; +class QmlTransitionManagerPrivate; +class QmlTransitionManager +{ +public: + QmlTransitionManager(); + ~QmlTransitionManager(); + + void transition(const QList &, QmlTransition *transition); + + void cancel(); + +private: + Q_DISABLE_COPY(QmlTransitionManager); + QmlTransitionManagerPrivate *d; + + void complete(); + void setState(QmlState *); + + friend class QmlState; + friend class QmlTransitionPrivate; +}; + +QT_END_NAMESPACE + +#endif // QMLTRANSITIONMANAGER_P_H diff --git a/src/declarative/util/qmlview.cpp b/src/declarative/util/qmlview.cpp index 91d443a..f19ac98 100644 --- a/src/declarative/util/qmlview.cpp +++ b/src/declarative/util/qmlview.cpp @@ -53,14 +53,14 @@ #include "qml.h" #include "qmlgraphicsitem.h" -#include "private/qperformancelog_p.h" -#include "private/qfxperf_p.h" +#include "private/qperformancelog_p_p.h" +#include "private/qfxperf_p_p.h" #include "qmlview.h" #include #include -#include -#include +#include +#include #include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qperformancelog.cpp b/src/declarative/util/qperformancelog.cpp index 8e11997..1a9be90 100644 --- a/src/declarative/util/qperformancelog.cpp +++ b/src/declarative/util/qperformancelog.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qperformancelog_p.h" +#include "qperformancelog_p_p.h" #include #include diff --git a/src/declarative/util/qperformancelog_p.h b/src/declarative/util/qperformancelog_p.h deleted file mode 100644 index 6655a8d..0000000 --- a/src/declarative/util/qperformancelog_p.h +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPERFORMANCELOG_H -#define QPERFORMANCELOG_H - -#include - -QT_BEGIN_NAMESPACE - -namespace QPerformanceLog -{ - Q_DECLARATIVE_EXPORT void displayData(); - Q_DECLARATIVE_EXPORT void clear(); - -#ifdef Q_ENABLE_PERFORMANCE_LOG - struct LogData { - LogData(const char *); - QTime timer; - int sumTime; - unsigned int *data; - }; - - struct LogMetric { - LogMetric(LogData *, int, const char *); - }; - - // Internal - void displayData(LogData *); - void clear(LogData *); -#endif -} - -#ifdef Q_ENABLE_PERFORMANCE_LOG - -#define Q_DECLARE_PERFORMANCE_METRIC(name) \ - enum { name = ValueChoice<0, ValueTracker<0, __LINE__>::value, __LINE__>::value }; \ - template \ - struct ValueTracker \ - { \ - enum { value = name }; \ - }; \ - extern QPerformanceLog::LogMetric metric ## name; - -#define Q_DECLARE_PERFORMANCE_LOG(name) \ - namespace name { \ - extern QPerformanceLog::LogData log; \ - inline void displayData() { QPerformanceLog::displayData(&log); } \ - inline void clear() { QPerformanceLog::clear(&log); } \ - } \ - template \ - class name ## Timer { \ - public: \ - name ## Timer() { \ - lastSum = name::log.sumTime + name::log.timer.restart(); \ - name::log.sumTime = 0; \ - } \ - ~ name ## Timer() { \ - name::log.data[2 * N] += name::log.sumTime + name::log.timer.restart(); \ - ++name::log.data[2 * N + 1]; \ - name::log.sumTime = lastSum; \ - } \ - private: \ - int lastSum; \ - }; \ - namespace name { \ - template \ - struct ValueTracker \ - { \ - enum { value = -1 }; \ - }; \ - template \ - struct ValueChoice \ - { \ - enum { value = ValueChoice::value, L>::value }; \ - }; \ - template \ - struct ValueChoice \ - { \ - enum { value = DefNextValue }; \ - }; \ - } \ - namespace name - -#define Q_DEFINE_PERFORMANCE_LOG(name, desc) \ - QPerformanceLog::LogData name::log(desc); \ - namespace name - -#define Q_DEFINE_PERFORMANCE_METRIC(name, desc) \ - QPerformanceLog::LogMetric metrix ## name(&log, name, desc); - -#else // Q_ENABLE_PERFORMANCE_LOG - -#define Q_DECLARE_PERFORMANCE_METRIC(name) -#define Q_DECLARE_PERFORMANCE_LOG(name) namespace name -#define Q_DEFINE_PERFORMANCE_LOG(name, desc) namespace name -#define Q_DEFINE_PERFORMANCE_METRIC(name, desc) - -#endif // Q_ENABLE_PERFORMANCE_LOG - -QT_END_NAMESPACE - -#endif // QPERFORMANCELOG_H diff --git a/src/declarative/util/qperformancelog_p_p.h b/src/declarative/util/qperformancelog_p_p.h new file mode 100644 index 0000000..6655a8d --- /dev/null +++ b/src/declarative/util/qperformancelog_p_p.h @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPERFORMANCELOG_H +#define QPERFORMANCELOG_H + +#include + +QT_BEGIN_NAMESPACE + +namespace QPerformanceLog +{ + Q_DECLARATIVE_EXPORT void displayData(); + Q_DECLARATIVE_EXPORT void clear(); + +#ifdef Q_ENABLE_PERFORMANCE_LOG + struct LogData { + LogData(const char *); + QTime timer; + int sumTime; + unsigned int *data; + }; + + struct LogMetric { + LogMetric(LogData *, int, const char *); + }; + + // Internal + void displayData(LogData *); + void clear(LogData *); +#endif +} + +#ifdef Q_ENABLE_PERFORMANCE_LOG + +#define Q_DECLARE_PERFORMANCE_METRIC(name) \ + enum { name = ValueChoice<0, ValueTracker<0, __LINE__>::value, __LINE__>::value }; \ + template \ + struct ValueTracker \ + { \ + enum { value = name }; \ + }; \ + extern QPerformanceLog::LogMetric metric ## name; + +#define Q_DECLARE_PERFORMANCE_LOG(name) \ + namespace name { \ + extern QPerformanceLog::LogData log; \ + inline void displayData() { QPerformanceLog::displayData(&log); } \ + inline void clear() { QPerformanceLog::clear(&log); } \ + } \ + template \ + class name ## Timer { \ + public: \ + name ## Timer() { \ + lastSum = name::log.sumTime + name::log.timer.restart(); \ + name::log.sumTime = 0; \ + } \ + ~ name ## Timer() { \ + name::log.data[2 * N] += name::log.sumTime + name::log.timer.restart(); \ + ++name::log.data[2 * N + 1]; \ + name::log.sumTime = lastSum; \ + } \ + private: \ + int lastSum; \ + }; \ + namespace name { \ + template \ + struct ValueTracker \ + { \ + enum { value = -1 }; \ + }; \ + template \ + struct ValueChoice \ + { \ + enum { value = ValueChoice::value, L>::value }; \ + }; \ + template \ + struct ValueChoice \ + { \ + enum { value = DefNextValue }; \ + }; \ + } \ + namespace name + +#define Q_DEFINE_PERFORMANCE_LOG(name, desc) \ + QPerformanceLog::LogData name::log(desc); \ + namespace name + +#define Q_DEFINE_PERFORMANCE_METRIC(name, desc) \ + QPerformanceLog::LogMetric metrix ## name(&log, name, desc); + +#else // Q_ENABLE_PERFORMANCE_LOG + +#define Q_DECLARE_PERFORMANCE_METRIC(name) +#define Q_DECLARE_PERFORMANCE_LOG(name) namespace name +#define Q_DEFINE_PERFORMANCE_LOG(name, desc) namespace name +#define Q_DEFINE_PERFORMANCE_METRIC(name, desc) + +#endif // Q_ENABLE_PERFORMANCE_LOG + +QT_END_NAMESPACE + +#endif // QPERFORMANCELOG_H diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri index 01ad898..a60613e 100644 --- a/src/declarative/util/util.pri +++ b/src/declarative/util/util.pri @@ -24,28 +24,28 @@ SOURCES += \ HEADERS += \ util/qmlview.h \ - util/qfxperf_p.h \ + util/qfxperf_p_p.h \ util/qfxglobal.h \ - util/qperformancelog_p.h \ - util/qmlconnection.h \ - util/qmlpackage.h \ - util/qmlanimation.h \ + util/qperformancelog_p_p.h \ + util/qmlconnection_p.h \ + util/qmlpackage_p.h \ util/qmlanimation_p.h \ - util/qmlsystempalette.h \ - util/qmlspringfollow.h \ - util/qmleasefollow.h \ - util/qmlstate.h\ - util/qmlstateoperations.h \ - util/qmlpropertychanges.h \ + util/qmlanimation_p_p.h \ + util/qmlsystempalette_p.h \ + util/qmlspringfollow_p.h \ + util/qmleasefollow_p.h \ util/qmlstate_p.h\ - util/qmltransitionmanager_p.h \ - util/qmlstategroup.h \ - util/qmltransition.h \ - util/qmllistmodel.h\ - util/qmllistaccessor.h \ - util/qmlopenmetaobject.h \ - util/qmlnullablevalue_p.h \ - util/qmltimeline_p.h \ - util/qmltimer.h \ - util/qmlbind.h \ - util/qmlpropertymap.h + util/qmlstateoperations_p.h \ + util/qmlpropertychanges_p.h \ + util/qmlstate_p_p.h\ + util/qmltransitionmanager_p_p.h \ + util/qmlstategroup_p.h \ + util/qmltransition_p.h \ + util/qmllistmodel_p.h\ + util/qmllistaccessor_p.h \ + util/qmlopenmetaobject_p.h \ + util/qmlnullablevalue_p_p.h \ + util/qmltimeline_p_p.h \ + util/qmltimer_p.h \ + util/qmlbind_p.h \ + util/qmlpropertymap_p.h diff --git a/src/declarative/widgets/graphicslayouts.cpp b/src/declarative/widgets/graphicslayouts.cpp index 8707b94..e2f5370 100644 --- a/src/declarative/widgets/graphicslayouts.cpp +++ b/src/declarative/widgets/graphicslayouts.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "graphicslayouts.h" +#include "graphicslayouts_p.h" #include #include diff --git a/src/declarative/widgets/graphicslayouts.h b/src/declarative/widgets/graphicslayouts.h deleted file mode 100644 index 45f1439..0000000 --- a/src/declarative/widgets/graphicslayouts.h +++ /dev/null @@ -1,193 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GRAPHICSLAYOUTS_H -#define GRAPHICSLAYOUTS_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QGraphicsLinearLayoutStretchItemObject : public QObject, public QGraphicsLayoutItem -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayoutItem) -public: - QGraphicsLinearLayoutStretchItemObject(QObject *parent = 0); - - virtual QSizeF sizeHint(Qt::SizeHint, const QSizeF &) const; -}; - -//TODO: -// -content margins -// -per-item spacing (does this need to be exposed?) -// -per-item alignment -class LinearLayoutAttached; -class QGraphicsLinearLayoutObject : public QObject, public QGraphicsLinearLayout -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayout QGraphicsLayoutItem) - - Q_PROPERTY(QmlList *children READ children) - Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing) - Q_CLASSINFO("DefaultProperty", "children") -public: - QGraphicsLinearLayoutObject(QObject * = 0); - ~QGraphicsLinearLayoutObject(); - - QmlList *children() { return &_children; } - - static LinearLayoutAttached *qmlAttachedProperties(QObject *); - -private Q_SLOTS: - void updateStretch(QGraphicsLayoutItem*,int); - void updateAlignment(QGraphicsLayoutItem*,Qt::Alignment); - -private: - friend class LinearLayoutAttached; - void clearChildren(); - void insertLayoutItem(int, QGraphicsLayoutItem *); - static QHash attachedProperties; - - class ChildList : public QmlList - { - public: - ChildList(QGraphicsLinearLayoutObject *o) - : obj(o) {} - - virtual void append(QGraphicsLayoutItem *item) - { - insert(-1, item); - } - virtual void clear() { obj->clearChildren(); } - virtual int count() const { return obj->count(); } - virtual void removeAt(int i) { obj->removeAt(i); } - virtual QGraphicsLayoutItem *at(int i) const { return obj->itemAt(i); } - virtual void insert(int i, QGraphicsLayoutItem *item) { obj->insertLayoutItem(i, item); } - - private: - QGraphicsLinearLayoutObject *obj; - }; - - ChildList _children; -}; - -//TODO: -// -content margins -// -column and row specific settings: -// -alignment -// -fixed/min/max/preferred width -// -spacing -// -stretch -class GridLayoutAttached; -class QGraphicsGridLayoutObject : public QObject, public QGraphicsGridLayout -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayout QGraphicsLayoutItem) - - Q_PROPERTY(QmlList *children READ children) - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing) - Q_PROPERTY(qreal verticalSpacing READ verticalSpacing WRITE setVerticalSpacing) - Q_PROPERTY(qreal horizontalSpacing READ horizontalSpacing WRITE setHorizontalSpacing) - Q_CLASSINFO("DefaultProperty", "children") -public: - QGraphicsGridLayoutObject(QObject * = 0); - ~QGraphicsGridLayoutObject(); - - QmlList *children() { return &_children; } - - qreal spacing() const; - - static GridLayoutAttached *qmlAttachedProperties(QObject *); - -private: - friend class GraphicsLayoutAttached; - void addWidget(QGraphicsWidget *); - void clearChildren(); - void addLayoutItem(QGraphicsLayoutItem *); - static QHash attachedProperties; - - class ChildList : public QmlList - { - public: - ChildList(QGraphicsGridLayoutObject *o) - : obj(o) {} - - virtual void append(QGraphicsLayoutItem *o) - { - obj->addLayoutItem(o); - } - virtual void clear() { obj->clearChildren(); } - virtual int count() const { return obj->count(); } - virtual void removeAt(int i) { obj->removeAt(i); } - virtual QGraphicsLayoutItem *at(int i) const { return obj->itemAt(i); } - //XXX GridLayout doesn't have an insert, so for now we treat it as an append. - // this is obviously potenitally dangerous -- perhaps should be a concrete - // list with no relation to layout index, etc at all. - virtual void insert(int, QGraphicsLayoutItem *item) { append(item); } - - private: - QGraphicsGridLayoutObject *obj; - }; - - ChildList _children; -}; - -QT_END_NAMESPACE - -QML_DECLARE_INTERFACE(QGraphicsLayoutItem) -QML_DECLARE_INTERFACE(QGraphicsLayout) -QML_DECLARE_TYPE(QGraphicsLinearLayoutStretchItemObject) -QML_DECLARE_TYPE(QGraphicsLinearLayoutObject) -QML_DECLARE_TYPEINFO(QGraphicsLinearLayoutObject, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QGraphicsGridLayoutObject) -QML_DECLARE_TYPEINFO(QGraphicsGridLayoutObject, QML_HAS_ATTACHED_PROPERTIES) - -QT_END_HEADER - -#endif // GRAPHICSLAYOUTS_H diff --git a/src/declarative/widgets/graphicslayouts_p.h b/src/declarative/widgets/graphicslayouts_p.h new file mode 100644 index 0000000..9eeac24 --- /dev/null +++ b/src/declarative/widgets/graphicslayouts_p.h @@ -0,0 +1,193 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef GRAPHICSLAYOUTS_H +#define GRAPHICSLAYOUTS_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QGraphicsLinearLayoutStretchItemObject : public QObject, public QGraphicsLayoutItem +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayoutItem) +public: + QGraphicsLinearLayoutStretchItemObject(QObject *parent = 0); + + virtual QSizeF sizeHint(Qt::SizeHint, const QSizeF &) const; +}; + +//TODO: +// -content margins +// -per-item spacing (does this need to be exposed?) +// -per-item alignment +class LinearLayoutAttached; +class QGraphicsLinearLayoutObject : public QObject, public QGraphicsLinearLayout +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayout QGraphicsLayoutItem) + + Q_PROPERTY(QmlList *children READ children) + Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing) + Q_CLASSINFO("DefaultProperty", "children") +public: + QGraphicsLinearLayoutObject(QObject * = 0); + ~QGraphicsLinearLayoutObject(); + + QmlList *children() { return &_children; } + + static LinearLayoutAttached *qmlAttachedProperties(QObject *); + +private Q_SLOTS: + void updateStretch(QGraphicsLayoutItem*,int); + void updateAlignment(QGraphicsLayoutItem*,Qt::Alignment); + +private: + friend class LinearLayoutAttached; + void clearChildren(); + void insertLayoutItem(int, QGraphicsLayoutItem *); + static QHash attachedProperties; + + class ChildList : public QmlList + { + public: + ChildList(QGraphicsLinearLayoutObject *o) + : obj(o) {} + + virtual void append(QGraphicsLayoutItem *item) + { + insert(-1, item); + } + virtual void clear() { obj->clearChildren(); } + virtual int count() const { return obj->count(); } + virtual void removeAt(int i) { obj->removeAt(i); } + virtual QGraphicsLayoutItem *at(int i) const { return obj->itemAt(i); } + virtual void insert(int i, QGraphicsLayoutItem *item) { obj->insertLayoutItem(i, item); } + + private: + QGraphicsLinearLayoutObject *obj; + }; + + ChildList _children; +}; + +//TODO: +// -content margins +// -column and row specific settings: +// -alignment +// -fixed/min/max/preferred width +// -spacing +// -stretch +class GridLayoutAttached; +class QGraphicsGridLayoutObject : public QObject, public QGraphicsGridLayout +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayout QGraphicsLayoutItem) + + Q_PROPERTY(QmlList *children READ children) + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing) + Q_PROPERTY(qreal verticalSpacing READ verticalSpacing WRITE setVerticalSpacing) + Q_PROPERTY(qreal horizontalSpacing READ horizontalSpacing WRITE setHorizontalSpacing) + Q_CLASSINFO("DefaultProperty", "children") +public: + QGraphicsGridLayoutObject(QObject * = 0); + ~QGraphicsGridLayoutObject(); + + QmlList *children() { return &_children; } + + qreal spacing() const; + + static GridLayoutAttached *qmlAttachedProperties(QObject *); + +private: + friend class GraphicsLayoutAttached; + void addWidget(QGraphicsWidget *); + void clearChildren(); + void addLayoutItem(QGraphicsLayoutItem *); + static QHash attachedProperties; + + class ChildList : public QmlList + { + public: + ChildList(QGraphicsGridLayoutObject *o) + : obj(o) {} + + virtual void append(QGraphicsLayoutItem *o) + { + obj->addLayoutItem(o); + } + virtual void clear() { obj->clearChildren(); } + virtual int count() const { return obj->count(); } + virtual void removeAt(int i) { obj->removeAt(i); } + virtual QGraphicsLayoutItem *at(int i) const { return obj->itemAt(i); } + //XXX GridLayout doesn't have an insert, so for now we treat it as an append. + // this is obviously potenitally dangerous -- perhaps should be a concrete + // list with no relation to layout index, etc at all. + virtual void insert(int, QGraphicsLayoutItem *item) { append(item); } + + private: + QGraphicsGridLayoutObject *obj; + }; + + ChildList _children; +}; + +QT_END_NAMESPACE + +QML_DECLARE_INTERFACE(QGraphicsLayoutItem) +QML_DECLARE_INTERFACE(QGraphicsLayout) +QML_DECLARE_TYPE(QGraphicsLinearLayoutStretchItemObject) +QML_DECLARE_TYPE(QGraphicsLinearLayoutObject) +QML_DECLARE_TYPEINFO(QGraphicsLinearLayoutObject, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QGraphicsGridLayoutObject) +QML_DECLARE_TYPEINFO(QGraphicsGridLayoutObject, QML_HAS_ATTACHED_PROPERTIES) + +QT_END_HEADER + +#endif // GRAPHICSLAYOUTS_H diff --git a/src/declarative/widgets/graphicswidgets.cpp b/src/declarative/widgets/graphicswidgets.cpp index cfcc87b..b631884 100644 --- a/src/declarative/widgets/graphicswidgets.cpp +++ b/src/declarative/widgets/graphicswidgets.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "graphicswidgets.h" +#include "graphicswidgets_p.h" QT_BEGIN_NAMESPACE diff --git a/src/declarative/widgets/graphicswidgets.h b/src/declarative/widgets/graphicswidgets.h deleted file mode 100644 index 8147400..0000000 --- a/src/declarative/widgets/graphicswidgets.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GRAPHICSWIDGETS_H -#define GRAPHICSWIDGETS_H - -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_MODULE(Declarative) - -QML_DECLARE_TYPE(QGraphicsView) -QML_DECLARE_TYPE_HASMETATYPE(QGraphicsScene) -QML_DECLARE_TYPE(QGraphicsWidget) -QML_DECLARE_INTERFACE_HASMETATYPE(QGraphicsItem) - -QT_END_HEADER - -#endif // GRAPHICSWIDGETS_H diff --git a/src/declarative/widgets/graphicswidgets_p.h b/src/declarative/widgets/graphicswidgets_p.h new file mode 100644 index 0000000..8147400 --- /dev/null +++ b/src/declarative/widgets/graphicswidgets_p.h @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef GRAPHICSWIDGETS_H +#define GRAPHICSWIDGETS_H + +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_MODULE(Declarative) + +QML_DECLARE_TYPE(QGraphicsView) +QML_DECLARE_TYPE_HASMETATYPE(QGraphicsScene) +QML_DECLARE_TYPE(QGraphicsWidget) +QML_DECLARE_INTERFACE_HASMETATYPE(QGraphicsItem) + +QT_END_HEADER + +#endif // GRAPHICSWIDGETS_H diff --git a/src/declarative/widgets/widgets.pri b/src/declarative/widgets/widgets.pri index 41c50d8..4a8bc93 100644 --- a/src/declarative/widgets/widgets.pri +++ b/src/declarative/widgets/widgets.pri @@ -3,8 +3,8 @@ SOURCES += \ widgets/graphicslayouts.cpp \ HEADERS += \ - widgets/graphicswidgets.h \ - widgets/graphicslayouts.h \ + widgets/graphicswidgets_p.h \ + widgets/graphicslayouts_p.h \ diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp index ec6a951..ed4c61e 100644 --- a/tests/auto/declarative/anchors/tst_anchors.cpp +++ b/tests/auto/declarative/anchors/tst_anchors.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include class tst_anchors : public QObject diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index 099daec..bedf97c 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -2,9 +2,9 @@ #include #include #include -#include -#include -#include "qmlgraphicsanimatedimageitem.h" +#include +#include +#include "qmlgraphicsanimatedimageitem_p.h" class tst_animatedimage : public QObject { diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp index eaf4d14..cb535d4 100644 --- a/tests/auto/declarative/animations/tst_animations.cpp +++ b/tests/auto/declarative/animations/tst_animations.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_animations : public QObject diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp index b225a7d..ef2ce76 100644 --- a/tests/auto/declarative/behaviors/tst_behaviors.cpp +++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_behaviors : public QObject diff --git a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp index 556912e..8cc14d1 100644 --- a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp +++ b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include class tst_datetimeformatter : public QObject diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index 0b9e402..0a97768 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -1,7 +1,7 @@ #include -#include +#include #include -#include +#include #include class tst_QmlGraphicsLayouts : public QObject diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp index 4e0f6cb..f38e721 100644 --- a/tests/auto/declarative/listview/tst_listview.cpp +++ b/tests/auto/declarative/listview/tst_listview.cpp @@ -1,8 +1,8 @@ #include -#include +#include #include -#include -#include +#include +#include #include #include diff --git a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp index 412557f..ce6ec0a 100644 --- a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp +++ b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include class tst_numberformat : public QObject { diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp index 013edf5..aa42832 100644 --- a/tests/auto/declarative/pathview/tst_pathview.cpp +++ b/tests/auto/declarative/pathview/tst_pathview.cpp @@ -1,9 +1,9 @@ #include -#include +#include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp index c54c151..4f8b5a0 100644 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include class tst_qfxloader : public QObject diff --git a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp index 14f3f19..e9f9a6f 100644 --- a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp +++ b/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include diff --git a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp index 4011851..0014d8d 100644 --- a/tests/auto/declarative/qfxtext/tst_qfxtext.cpp +++ b/tests/auto/declarative/qfxtext/tst_qfxtext.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include class tst_qfxtext : public QObject diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp index cab8666..94d1f85 100644 --- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp +++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp index eeaef89..a03bd15 100644 --- a/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp +++ b/tests/auto/declarative/qfxwebview/tst_qfxwebview.cpp @@ -2,7 +2,7 @@ #include "../../../shared/util.h" #include #include -#include +#include #include #include #include diff --git a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp index f5b57ea..7bcd96d 100644 --- a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp +++ b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include class tst_QmlListAccessor : public QObject { diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp index f3e62ab..0976e84 100644 --- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp +++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp @@ -1,9 +1,9 @@ #include #include #include -#include +#include #include -#include +#include #include class tst_QmlPropertyMap : public QObject diff --git a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp index 15b558f..3602fc7 100644 --- a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp +++ b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include class tst_qmltimer : public QObject { diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp index 8354005..ca056fa 100644 --- a/tests/auto/declarative/repeater/tst_repeater.cpp +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -1,8 +1,8 @@ #include -#include +#include #include -#include -#include +#include +#include #include class tst_QmlGraphicsRepeater : public QObject diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp index ce73c0c..d398dc1 100644 --- a/tests/auto/declarative/sql/tst_sql.cpp +++ b/tests/auto/declarative/sql/tst_sql.cpp @@ -2,7 +2,7 @@ #include "../../../shared/util.h" #include #include -#include +#include #include #include #include diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp index 218baf8..7855889 100644 --- a/tests/auto/declarative/states/tst_states.cpp +++ b/tests/auto/declarative/states/tst_states.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include class tst_states : public QObject { diff --git a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp index 5881cd1..0d404ab 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp +++ b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp @@ -33,8 +33,8 @@ #include #include -#include -#include +#include +#include #include "../standalone/objectpropertiesview.h" #include "../standalone/objecttree.h" diff --git a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp index 5108c35..0520125 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp +++ b/tools/qmldebugger/creatorplugin/qmlinspectorplugin.cpp @@ -14,8 +14,8 @@ #include -#include -#include +#include +#include #include "runcontrol.h" #include "qmlinspector.h" diff --git a/tools/qmldebugger/standalone/canvasframerate.cpp b/tools/qmldebugger/standalone/canvasframerate.cpp index 10c3dbf..f16dedd 100644 --- a/tools/qmldebugger/standalone/canvasframerate.cpp +++ b/tools/qmldebugger/standalone/canvasframerate.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/tools/qmldebugger/standalone/canvasframerate.h b/tools/qmldebugger/standalone/canvasframerate.h index 6c1ff9f..4711055 100644 --- a/tools/qmldebugger/standalone/canvasframerate.h +++ b/tools/qmldebugger/standalone/canvasframerate.h @@ -4,7 +4,7 @@ #include #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/tools/qmldebugger/standalone/engine.cpp b/tools/qmldebugger/standalone/engine.cpp index 92c54eb..61a53eb 100644 --- a/tools/qmldebugger/standalone/engine.cpp +++ b/tools/qmldebugger/standalone/engine.cpp @@ -5,10 +5,10 @@ #include #include -#include +#include #include #include -#include +#include #include "engine.h" #include "objectpropertiesview.h" diff --git a/tools/qmldebugger/standalone/engine.h b/tools/qmldebugger/standalone/engine.h index a3ebe46..d2ea7d8 100644 --- a/tools/qmldebugger/standalone/engine.h +++ b/tools/qmldebugger/standalone/engine.h @@ -6,7 +6,7 @@ #include #include #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/tools/qmldebugger/standalone/expressionquerywidget.h b/tools/qmldebugger/standalone/expressionquerywidget.h index 3fe0295..15096e2 100644 --- a/tools/qmldebugger/standalone/expressionquerywidget.h +++ b/tools/qmldebugger/standalone/expressionquerywidget.h @@ -3,7 +3,7 @@ #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/tools/qmldebugger/standalone/objectpropertiesview.cpp b/tools/qmldebugger/standalone/objectpropertiesview.cpp index d6fefa0..1fa6f85 100644 --- a/tools/qmldebugger/standalone/objectpropertiesview.cpp +++ b/tools/qmldebugger/standalone/objectpropertiesview.cpp @@ -4,9 +4,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "objectpropertiesview.h" diff --git a/tools/qmldebugger/standalone/objectpropertiesview.h b/tools/qmldebugger/standalone/objectpropertiesview.h index 306e5b9..fb64837 100644 --- a/tools/qmldebugger/standalone/objectpropertiesview.h +++ b/tools/qmldebugger/standalone/objectpropertiesview.h @@ -1,7 +1,7 @@ #ifndef PROPERTIESTABLEMODEL_H #define PROPERTIESTABLEMODEL_H -#include +#include #include diff --git a/tools/qmldebugger/standalone/objecttree.cpp b/tools/qmldebugger/standalone/objecttree.cpp index 6c132b6..65860c8 100644 --- a/tools/qmldebugger/standalone/objecttree.cpp +++ b/tools/qmldebugger/standalone/objecttree.cpp @@ -4,9 +4,9 @@ #include -#include -#include -#include +#include +#include +#include #include "objecttree.h" diff --git a/tools/qmldebugger/standalone/qmldebugger.h b/tools/qmldebugger/standalone/qmldebugger.h index 9203e33..1c20087 100644 --- a/tools/qmldebugger/standalone/qmldebugger.h +++ b/tools/qmldebugger/standalone/qmldebugger.h @@ -1,7 +1,7 @@ #ifndef QMLDEBUGGER_H #define QMLDEBUGGER_H -#include +#include #include #include diff --git a/tools/qmldebugger/standalone/watchtable.cpp b/tools/qmldebugger/standalone/watchtable.cpp index 19f034e..00d5a69 100644 --- a/tools/qmldebugger/standalone/watchtable.cpp +++ b/tools/qmldebugger/standalone/watchtable.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include QT_BEGIN_NAMESPACE diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp index 93470eb..e32c899 100644 --- a/tools/qmlviewer/qmlviewer.cpp +++ b/tools/qmlviewer/qmlviewer.cpp @@ -18,7 +18,7 @@ #include #include #include "qml.h" -#include +#include #include #include #include "deviceskin.h" -- cgit v0.12 From cc1b25a807e190b1b9fa10653e42e86f19d4bd0f Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 16:20:45 +1000 Subject: make twitter not depend on flickr example --- demos/declarative/twitter/content/AuthView.qml | 10 ++- demos/declarative/twitter/content/Button.qml | 38 +++++++++++ demos/declarative/twitter/content/FatDelegate.qml | 1 - demos/declarative/twitter/content/HomeTitleBar.qml | 6 +- demos/declarative/twitter/content/Loading.qml | 8 +++ .../declarative/twitter/content/MultiTitleBar.qml | 1 - demos/declarative/twitter/content/TitleBar.qml | 76 +++++++++++++++++++++ demos/declarative/twitter/content/ToolBar.qml | 24 +++++++ demos/declarative/twitter/content/images/gloss.png | Bin 0 -> 1236 bytes .../twitter/content/images/lineedit.png | Bin 0 -> 1415 bytes .../twitter/content/images/lineedit.sci | 5 ++ .../declarative/twitter/content/images/loading.png | Bin 0 -> 813 bytes .../declarative/twitter/content/images/stripes.png | Bin 0 -> 257 bytes .../twitter/content/images/titlebar.png | Bin 0 -> 1436 bytes .../twitter/content/images/titlebar.sci | 5 ++ .../twitter/content/images/toolbutton.png | Bin 0 -> 2550 bytes .../twitter/content/images/toolbutton.sci | 5 ++ demos/declarative/twitter/twitter.qml | 13 ++-- 18 files changed, 172 insertions(+), 20 deletions(-) create mode 100644 demos/declarative/twitter/content/Button.qml create mode 100644 demos/declarative/twitter/content/Loading.qml create mode 100644 demos/declarative/twitter/content/TitleBar.qml create mode 100644 demos/declarative/twitter/content/ToolBar.qml create mode 100644 demos/declarative/twitter/content/images/gloss.png create mode 100644 demos/declarative/twitter/content/images/lineedit.png create mode 100644 demos/declarative/twitter/content/images/lineedit.sci create mode 100644 demos/declarative/twitter/content/images/loading.png create mode 100644 demos/declarative/twitter/content/images/stripes.png create mode 100644 demos/declarative/twitter/content/images/titlebar.png create mode 100644 demos/declarative/twitter/content/images/titlebar.sci create mode 100644 demos/declarative/twitter/content/images/toolbutton.png create mode 100644 demos/declarative/twitter/content/images/toolbutton.sci diff --git a/demos/declarative/twitter/content/AuthView.qml b/demos/declarative/twitter/content/AuthView.qml index 320eef6..c924649 100644 --- a/demos/declarative/twitter/content/AuthView.qml +++ b/demos/declarative/twitter/content/AuthView.qml @@ -1,6 +1,4 @@ import Qt 4.6 -import "../../flickr/common" -import "../../flickr/mobile" Item { id: wrapper @@ -12,14 +10,14 @@ Item { Text { width: 100 text: "Screen name:" - font.pointSize: 10; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" + font.pointSize: 14; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" anchors.verticalCenter: parent.verticalCenter horizontalAlignment: Qt.AlignRight } Item { width: 160 height: 28 - BorderImage { source: "../../flickr/mobile/images/lineedit.sci"; anchors.fill: parent } + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } TextInput{ id: nameIn width: parent.width - 8 @@ -42,14 +40,14 @@ Item { Text { width: 100 text: "Password:" - font.pointSize: 10; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" + font.pointSize: 14; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" anchors.verticalCenter: parent.verticalCenter horizontalAlignment: Qt.AlignRight } Item { width: 160 height: 28 - BorderImage { source: "../../flickr/mobile/images/lineedit.sci"; anchors.fill: parent } + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } TextInput{ id: passIn width: parent.width - 8 diff --git a/demos/declarative/twitter/content/Button.qml b/demos/declarative/twitter/content/Button.qml new file mode 100644 index 0000000..770330c --- /dev/null +++ b/demos/declarative/twitter/content/Button.qml @@ -0,0 +1,38 @@ +import Qt 4.6 + +Item { + id: container + + signal clicked + + property string text + + BorderImage { + id: buttonImage + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + BorderImage { + id: pressed + opacity: 0 + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + MouseRegion { + id: mouseRegion + anchors.fill: buttonImage + onClicked: { container.clicked(); } + } + Text { + color: "white" + anchors.centerIn: buttonImage; font.bold: true + text: container.text; style: Text.Raised; styleColor: "black" + } + states: [ + State { + name: "Pressed" + when: mouseRegion.pressed == true + PropertyChanges { target: pressed; opacity: 1 } + } + ] +} diff --git a/demos/declarative/twitter/content/FatDelegate.qml b/demos/declarative/twitter/content/FatDelegate.qml index 4df251f..7125746 100644 --- a/demos/declarative/twitter/content/FatDelegate.qml +++ b/demos/declarative/twitter/content/FatDelegate.qml @@ -1,5 +1,4 @@ import Qt 4.6 -import "../../flickr/common" Component { id: ListDelegate diff --git a/demos/declarative/twitter/content/HomeTitleBar.qml b/demos/declarative/twitter/content/HomeTitleBar.qml index b0995f3..f0d6d75 100644 --- a/demos/declarative/twitter/content/HomeTitleBar.qml +++ b/demos/declarative/twitter/content/HomeTitleBar.qml @@ -1,6 +1,4 @@ import Qt 4.6 -import "../../flickr/mobile" -import "../../flickr/common" Item { id: titleBar @@ -8,7 +6,7 @@ Item { signal update() onYChanged: state="" //When switching titlebars - BorderImage { source: "../../flickr/mobile/images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } Item { id: container width: (parent.width * 2) - 55 ; height: parent.height @@ -73,7 +71,7 @@ Item { id: txtEdit; anchors.left: tagButton.right; anchors.leftMargin: 5; y: 4 anchors.right: parent.right; anchors.rightMargin: 40; height: parent.height - 9 - BorderImage { source: "../../flickr/mobile/images/lineedit.sci"; anchors.fill: parent } + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } Binding {//TODO: Can this be a function, which also resets the cursor? And flashes? when: editor.text.length > 140 diff --git a/demos/declarative/twitter/content/Loading.qml b/demos/declarative/twitter/content/Loading.qml new file mode 100644 index 0000000..8b22e70 --- /dev/null +++ b/demos/declarative/twitter/content/Loading.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +Image { + id: loading; source: "images/loading.png"; transformOrigin: "Center" + rotation: NumberAnimation { + id: "RotationAnimation"; from: 0; to: 360; running: loading.visible == true; repeat: true; duration: 900 + } +} diff --git a/demos/declarative/twitter/content/MultiTitleBar.qml b/demos/declarative/twitter/content/MultiTitleBar.qml index da0794d..ef7de65 100644 --- a/demos/declarative/twitter/content/MultiTitleBar.qml +++ b/demos/declarative/twitter/content/MultiTitleBar.qml @@ -1,5 +1,4 @@ import Qt 4.6 -import "../../flickr/mobile" Item { height: homeBar.height diff --git a/demos/declarative/twitter/content/TitleBar.qml b/demos/declarative/twitter/content/TitleBar.qml new file mode 100644 index 0000000..07b9762 --- /dev/null +++ b/demos/declarative/twitter/content/TitleBar.qml @@ -0,0 +1,76 @@ +import Qt 4.6 + +Item { + id: titleBar + property string untaggedString: "Uploads from everyone" + property string taggedString: "Recent uploads tagged " + + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + + Item { + id: container + width: (parent.width * 2) - 55 ; height: parent.height + + Script { + function accept() { + titleBar.state = "" + background.state = "" + rssModel.tags = editor.text + } + } + + Text { + id: categoryText + anchors { + left: parent.left; right: tagButton.left; leftMargin: 10; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + elide: Text.ElideLeft + text: (rssModel.tags=="" ? untaggedString : taggedString + rssModel.tags) + font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black" + } + + Button { + id: tagButton; x: titleBar.width - 50; width: 45; height: 32; text: "..." + onClicked: if (titleBar.state == "Tags") accept(); else titleBar.state = "Tags" + anchors.verticalCenter: parent.verticalCenter + } + + Item { + id: lineEdit + y: 4; height: parent.height - 9 + anchors { left: tagButton.right; leftMargin: 5; right: parent.right; rightMargin: 5 } + + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } + + TextInput { + id: editor + anchors { + left: parent.left; right: parent.right; leftMargin: 10; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + cursorVisible: true; font.bold: true + color: "#151515"; selectionColor: "Green" + } + + Keys.forwardTo: [ (returnKey), (editor)] + + Item { + id: returnKey + Keys.onReturnPressed: accept() + Keys.onEscapePressed: titleBar.state = "" + } + } + } + + states: State { + name: "Tags" + PropertyChanges { target: container; x: -tagButton.x + 5 } + PropertyChanges { target: tagButton; text: "OK" } + PropertyChanges { target: lineEdit; focus: true } + } + + transitions: Transition { + NumberAnimation { properties: "x"; easing: "easeInOutQuad" } + } +} diff --git a/demos/declarative/twitter/content/ToolBar.qml b/demos/declarative/twitter/content/ToolBar.qml new file mode 100644 index 0000000..f96c767 --- /dev/null +++ b/demos/declarative/twitter/content/ToolBar.qml @@ -0,0 +1,24 @@ +import Qt 4.6 + +Item { + id: toolbar + + property alias button1Label: button1.text + property alias button2Label: button2.text + signal button1Clicked + signal button2Clicked + + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + + Button { + id: button1 + anchors.left: parent.left; anchors.leftMargin: 5; y: 3; width: 140; height: 32 + onClicked: toolbar.button1Clicked() + } + + Button { + id: button2 + anchors.right: parent.right; anchors.rightMargin: 5; y: 3; width: 140; height: 32 + onClicked: toolbar.button2Clicked() + } +} diff --git a/demos/declarative/twitter/content/images/gloss.png b/demos/declarative/twitter/content/images/gloss.png new file mode 100644 index 0000000..5d370cd Binary files /dev/null and b/demos/declarative/twitter/content/images/gloss.png differ diff --git a/demos/declarative/twitter/content/images/lineedit.png b/demos/declarative/twitter/content/images/lineedit.png new file mode 100644 index 0000000..2cc38dc Binary files /dev/null and b/demos/declarative/twitter/content/images/lineedit.png differ diff --git a/demos/declarative/twitter/content/images/lineedit.sci b/demos/declarative/twitter/content/images/lineedit.sci new file mode 100644 index 0000000..054bff7 --- /dev/null +++ b/demos/declarative/twitter/content/images/lineedit.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 10 +border.bottom: 10 +border.right: 10 +source: lineedit.png diff --git a/demos/declarative/twitter/content/images/loading.png b/demos/declarative/twitter/content/images/loading.png new file mode 100644 index 0000000..47a1589 Binary files /dev/null and b/demos/declarative/twitter/content/images/loading.png differ diff --git a/demos/declarative/twitter/content/images/stripes.png b/demos/declarative/twitter/content/images/stripes.png new file mode 100644 index 0000000..9f36727 Binary files /dev/null and b/demos/declarative/twitter/content/images/stripes.png differ diff --git a/demos/declarative/twitter/content/images/titlebar.png b/demos/declarative/twitter/content/images/titlebar.png new file mode 100644 index 0000000..51c9008 Binary files /dev/null and b/demos/declarative/twitter/content/images/titlebar.png differ diff --git a/demos/declarative/twitter/content/images/titlebar.sci b/demos/declarative/twitter/content/images/titlebar.sci new file mode 100644 index 0000000..0418d94 --- /dev/null +++ b/demos/declarative/twitter/content/images/titlebar.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 12 +border.bottom: 12 +border.right: 10 +source: titlebar.png diff --git a/demos/declarative/twitter/content/images/toolbutton.png b/demos/declarative/twitter/content/images/toolbutton.png new file mode 100644 index 0000000..1131001 Binary files /dev/null and b/demos/declarative/twitter/content/images/toolbutton.png differ diff --git a/demos/declarative/twitter/content/images/toolbutton.sci b/demos/declarative/twitter/content/images/toolbutton.sci new file mode 100644 index 0000000..9e4f965 --- /dev/null +++ b/demos/declarative/twitter/content/images/toolbutton.sci @@ -0,0 +1,5 @@ +border.left: 15 +border.top: 4 +border.bottom: 4 +border.right: 15 +source: toolbutton.png diff --git a/demos/declarative/twitter/twitter.qml b/demos/declarative/twitter/twitter.qml index 23ca774..6cc67a1 100644 --- a/demos/declarative/twitter/twitter.qml +++ b/demos/declarative/twitter/twitter.qml @@ -1,7 +1,5 @@ import Qt 4.6 import "content" as Twitter -import "../flickr/common" as Common -import "../flickr/mobile" as Mobile Item { id: screen; width: 320; height: 480 @@ -20,7 +18,6 @@ Item { //Workaround for bug 260266 Timer{ interval: 1; running: false; repeat: false; onTriggered: reallySetUser(); id:hack } Script { -// var tmpStr; function setUser(str){hack.running = true; tmpStr = str} function reallySetUser(){rssModel.tags = tmpStr;} } @@ -29,10 +26,10 @@ Item { id: background anchors.fill: parent; color: "#343434"; - Image { source: "../flickr/mobile/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } + Image { source: "content/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } Twitter.RssModel { id: rssModel } - Common.Loading { anchors.centerIn: parent; visible: rssModel.status==XmlListModel.Loading && state!='unauthed'} + Twitter.Loading { anchors.centerIn: parent; visible: rssModel.status==XmlListModel.Loading && state!='unauthed'} Text { width: 180 text: "Could not access twitter using this screen name and password pair."; @@ -61,10 +58,10 @@ Item { } Twitter.MultiTitleBar { id: titleBar; width: parent.width } - Mobile.ToolBar { id: toolBar; height: 40; + Twitter.ToolBar { id: toolBar; height: 40; //anchors.bottom: parent.bottom; //TODO: Use anchor changes instead of hard coding - y: 440 + y: screen.height - 40 width: parent.width; opacity: 0.9 button1Label: "Update" button2Label: "View others" @@ -86,7 +83,7 @@ Item { PropertyChanges { target: authView; x: 0 } PropertyChanges { target: mainView; x: -(parent.width * 1.5) } PropertyChanges { target: titleBar; y: -80 } - PropertyChanges { target: toolBar; y: screen.height + 80 } + PropertyChanges { target: toolBar; y: screen.height } } ] transitions: [ -- cgit v0.12 From 9c8774e4aff4e21eb7dc4b98ce525e0b1a8285f6 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 16:21:58 +1000 Subject: Fixup mistakes following renaming files --- tests/auto/declarative/animatedimage/tst_animatedimage.cpp | 2 +- tests/auto/declarative/animations/tst_animations.cpp | 2 +- tests/auto/declarative/behaviors/tst_behaviors.cpp | 2 +- tests/auto/declarative/layouts/tst_layouts.cpp | 4 ++-- tests/auto/declarative/listview/tst_listview.cpp | 6 +++--- tests/auto/declarative/pathview/tst_pathview.cpp | 8 ++++---- tests/auto/declarative/qfxloader/qfxloader.pro | 2 +- tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro | 2 +- tests/auto/declarative/qfxtext/qfxtext.pro | 2 +- tests/auto/declarative/qfxtextedit/qfxtextedit.pro | 2 +- tests/auto/declarative/qfxtextinput/qfxtextinput.pro | 2 +- tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp | 2 +- tests/auto/declarative/repeater/tst_repeater.cpp | 6 +++--- tools/qmlviewer/qmlviewer.h | 2 +- 14 files changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index bedf97c..e2b96d0 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -4,7 +4,7 @@ #include #include #include -#include "qmlgraphicsanimatedimageitem_p.h" +#include class tst_animatedimage : public QObject { diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp index cb535d4..8e3e522 100644 --- a/tests/auto/declarative/animations/tst_animations.cpp +++ b/tests/auto/declarative/animations/tst_animations.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include class tst_animations : public QObject { diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp index ef2ce76..25540a2 100644 --- a/tests/auto/declarative/behaviors/tst_behaviors.cpp +++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include class tst_behaviors : public QObject { diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index 0a97768..2d9f7e8 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -1,7 +1,7 @@ #include -#include +#include #include -#include +#include #include class tst_QmlGraphicsLayouts : public QObject diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp index f38e721..f1077f2 100644 --- a/tests/auto/declarative/listview/tst_listview.cpp +++ b/tests/auto/declarative/listview/tst_listview.cpp @@ -1,8 +1,8 @@ #include -#include +#include #include -#include -#include +#include +#include #include #include diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp index aa42832..385a42e 100644 --- a/tests/auto/declarative/pathview/tst_pathview.cpp +++ b/tests/auto/declarative/pathview/tst_pathview.cpp @@ -1,9 +1,9 @@ #include -#include +#include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/tests/auto/declarative/qfxloader/qfxloader.pro b/tests/auto/declarative/qfxloader/qfxloader.pro index 8be8cdf..aee52cc 100644 --- a/tests/auto/declarative/qfxloader/qfxloader.pro +++ b/tests/auto/declarative/qfxloader/qfxloader.pro @@ -2,6 +2,6 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicsloader.cpp +SOURCES += tst_qfxloader.cpp DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro b/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro index 1df2f4e..218eeff 100644 --- a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro +++ b/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro @@ -3,7 +3,7 @@ contains(QT_CONFIG,declarative): QT += declarative QT += network macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicspixmapcache.cpp +SOURCES += tst_qfxpixmapcache.cpp # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage # LIBS += -lgcov diff --git a/tests/auto/declarative/qfxtext/qfxtext.pro b/tests/auto/declarative/qfxtext/qfxtext.pro index 1d8c59f..1f3fe37 100644 --- a/tests/auto/declarative/qfxtext/qfxtext.pro +++ b/tests/auto/declarative/qfxtext/qfxtext.pro @@ -2,4 +2,4 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicstext.cpp +SOURCES += tst_qfxtext.cpp diff --git a/tests/auto/declarative/qfxtextedit/qfxtextedit.pro b/tests/auto/declarative/qfxtextedit/qfxtextedit.pro index 9e6a71a..b5e0464 100644 --- a/tests/auto/declarative/qfxtextedit/qfxtextedit.pro +++ b/tests/auto/declarative/qfxtextedit/qfxtextedit.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicstextedit.cpp +SOURCES += tst_qfxtextedit.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxtextinput/qfxtextinput.pro b/tests/auto/declarative/qfxtextinput/qfxtextinput.pro index fd75fec..fe2e3e3 100644 --- a/tests/auto/declarative/qfxtextinput/qfxtextinput.pro +++ b/tests/auto/declarative/qfxtextinput/qfxtextinput.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicstextinput.cpp +SOURCES += tst_qfxtextinput.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp index e4930f6..79868ce 100644 --- a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp +++ b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include class tst_qfxtextinput : public QObject diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp index ca056fa..f39c3a3 100644 --- a/tests/auto/declarative/repeater/tst_repeater.cpp +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -1,8 +1,8 @@ #include -#include +#include #include -#include -#include +#include +#include #include class tst_QmlGraphicsRepeater : public QObject diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h index bc8fe11..b6c0ad7 100644 --- a/tools/qmlviewer/qmlviewer.h +++ b/tools/qmlviewer/qmlviewer.h @@ -15,7 +15,7 @@ #define QMLVIEWER_H #include -#include +#include #include #include -- cgit v0.12 From 560b617b9a1e7a5bdc837d30886061c15c16deca Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 16:33:42 +1000 Subject: cleanup --- examples/declarative/animation/color-animation.qml | 73 -------------- examples/declarative/animation/easing.qml | 99 ------------------- .../declarative/animation/images/face-smile.png | Bin 15408 -> 0 bytes examples/declarative/animation/images/moon.png | Bin 2433 -> 0 bytes examples/declarative/animation/images/shadow.png | Bin 425 -> 0 bytes examples/declarative/animation/images/star.png | Bin 349 -> 0 bytes examples/declarative/animation/images/sun.png | Bin 8153 -> 0 bytes .../declarative/animation/property-animation.qml | 64 ------------ .../declarative/animations/color-animation.qml | 73 ++++++++++++++ examples/declarative/animations/easing.qml | 99 +++++++++++++++++++ .../declarative/animations/images/face-smile.png | Bin 0 -> 15408 bytes examples/declarative/animations/images/moon.png | Bin 0 -> 2433 bytes examples/declarative/animations/images/shadow.png | Bin 0 -> 425 bytes examples/declarative/animations/images/star.png | Bin 0 -> 349 bytes examples/declarative/animations/images/sun.png | Bin 0 -> 8153 bytes .../declarative/animations/property-animation.qml | 64 ++++++++++++ examples/declarative/effects/effects.qml | 110 +++++++++++++++++++++ examples/declarative/effects/pic.jpg | Bin 7016 -> 0 bytes examples/declarative/effects/test.qml | 110 --------------------- 19 files changed, 346 insertions(+), 346 deletions(-) delete mode 100644 examples/declarative/animation/color-animation.qml delete mode 100644 examples/declarative/animation/easing.qml delete mode 100644 examples/declarative/animation/images/face-smile.png delete mode 100644 examples/declarative/animation/images/moon.png delete mode 100644 examples/declarative/animation/images/shadow.png delete mode 100644 examples/declarative/animation/images/star.png delete mode 100644 examples/declarative/animation/images/sun.png delete mode 100644 examples/declarative/animation/property-animation.qml create mode 100644 examples/declarative/animations/color-animation.qml create mode 100644 examples/declarative/animations/easing.qml create mode 100644 examples/declarative/animations/images/face-smile.png create mode 100644 examples/declarative/animations/images/moon.png create mode 100644 examples/declarative/animations/images/shadow.png create mode 100644 examples/declarative/animations/images/star.png create mode 100644 examples/declarative/animations/images/sun.png create mode 100644 examples/declarative/animations/property-animation.qml create mode 100644 examples/declarative/effects/effects.qml delete mode 100644 examples/declarative/effects/pic.jpg delete mode 100644 examples/declarative/effects/test.qml diff --git a/examples/declarative/animation/color-animation.qml b/examples/declarative/animation/color-animation.qml deleted file mode 100644 index edb0659..0000000 --- a/examples/declarative/animation/color-animation.qml +++ /dev/null @@ -1,73 +0,0 @@ -import Qt 4.6 - -Item { - id: window - width: 640; height: 480 - - // Let's draw the sky... - Rectangle { - anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.verticalCenter } - gradient: Gradient { - GradientStop { - position: 0.0 - color: SequentialAnimation { - running: true; repeat: true - ColorAnimation { from: "DeepSkyBlue"; to: "#0E1533"; duration: 5000 } - ColorAnimation { from: "#0E1533"; to: "DeepSkyBlue"; duration: 5000 } - } - } - GradientStop { - position: 1.0 - color: SequentialAnimation { - running: true; repeat: true - ColorAnimation { from: "SkyBlue"; to: "#437284"; duration: 5000 } - ColorAnimation { from: "#437284"; to: "SkyBlue"; duration: 5000 } - } - } - } - } - - // the sun, moon, and stars - Item { - width: parent.width; height: 2 * parent.height - transformOrigin: Item.Center - rotation: SequentialAnimation { - running: true; repeat: true - NumberAnimation { from: 0; to: 360; duration: 10000 } - } - Image { - source: "images/sun.png"; y: 10; anchors.horizontalCenter: parent.horizontalCenter - transformOrigin: Item.Center; rotation: -3 * parent.rotation - } - Image { - source: "images/moon.png"; y: parent.height - 74; anchors.horizontalCenter: parent.horizontalCenter - transformOrigin: Item.Center; rotation: -parent.rotation - } - Particles { - x: 0; y: parent.height/2; width: parent.width; height: parent.height/2 - source: "images/star.png"; angleDeviation: 360; velocity: 0 - velocityDeviation: 0; count: parent.width / 10; fadeInDuration: 2800 - opacity: SequentialAnimation { - running: true; repeat: true - NumberAnimation { from: 0; to: 1; duration: 5000 } - NumberAnimation { from: 1; to: 0; duration: 5000 } - } - } - } - - // ...and the ground. - Rectangle { - anchors { left: parent.left; top: parent.verticalCenter; right: parent.right; bottom: parent.bottom } - gradient: Gradient { - GradientStop { - position: 0.0 - color: SequentialAnimation { - running: true; repeat: true - ColorAnimation { from: "ForestGreen"; to: "#001600"; duration: 5000 } - ColorAnimation { from: "#001600"; to: "ForestGreen"; duration: 5000 } - } - } - GradientStop { position: 1.0; color: "DarkGreen" } - } - } -} diff --git a/examples/declarative/animation/easing.qml b/examples/declarative/animation/easing.qml deleted file mode 100644 index 59e9b17..0000000 --- a/examples/declarative/animation/easing.qml +++ /dev/null @@ -1,99 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: window - width: 600; height: 460; color: "#232323" - - ListModel { - id: easingTypes - ListElement { type: "easeLinear"; ballColor: "DarkRed" } - ListElement { type: "easeInQuad"; ballColor: "IndianRed" } - ListElement { type: "easeOutQuad"; ballColor: "Salmon" } - ListElement { type: "easeInOutQuad"; ballColor: "Tomato" } - ListElement { type: "easeOutInQuad"; ballColor: "DarkOrange" } - ListElement { type: "easeInCubic"; ballColor: "Gold" } - ListElement { type: "easeOutCubic"; ballColor: "Yellow" } - ListElement { type: "easeInOutCubic"; ballColor: "PeachPuff" } - ListElement { type: "easeOutInCubic"; ballColor: "Thistle" } - ListElement { type: "easeInQuart"; ballColor: "Orchid" } - ListElement { type: "easeOutQuart"; ballColor: "Purple" } - ListElement { type: "easeInOutQuart"; ballColor: "SlateBlue" } - ListElement { type: "easeOutInQuart"; ballColor: "Chartreuse" } - ListElement { type: "easeInQuint"; ballColor: "LimeGreen" } - ListElement { type: "easeOutQuint"; ballColor: "SeaGreen" } - ListElement { type: "easeInOutQuint"; ballColor: "DarkGreen" } - ListElement { type: "easeOutInQuint"; ballColor: "Olive" } - ListElement { type: "easeInSine"; ballColor: "DarkSeaGreen" } - ListElement { type: "easeOutSine"; ballColor: "Teal" } - ListElement { type: "easeInOutSine"; ballColor: "Turquoise" } - ListElement { type: "easeOutInSine"; ballColor: "SteelBlue" } - ListElement { type: "easeInExpo"; ballColor: "SkyBlue" } - ListElement { type: "easeOutExpo"; ballColor: "RoyalBlue" } - ListElement { type: "easeInOutExpo"; ballColor: "MediumBlue" } - ListElement { type: "easeOutInExpo"; ballColor: "MidnightBlue" } - ListElement { type: "easeInCirc"; ballColor: "CornSilk" } - ListElement { type: "easeOutCirc"; ballColor: "Bisque" } - ListElement { type: "easeInOutCirc"; ballColor: "RosyBrown" } - ListElement { type: "easeOutInCirc"; ballColor: "SandyBrown" } - ListElement { type: "easeInElastic"; ballColor: "DarkGoldenRod" } - ListElement { type: "easeOutElastic"; ballColor: "Chocolate" } - ListElement { type: "easeInOutElastic"; ballColor: "SaddleBrown" } - ListElement { type: "easeOutInElastic"; ballColor: "Brown" } - ListElement { type: "easeInBack"; ballColor: "Maroon" } - ListElement { type: "easeOutBack"; ballColor: "LavenderBlush" } - ListElement { type: "easeInOutBack"; ballColor: "MistyRose" } - ListElement { type: "easeOutInBack"; ballColor: "Gainsboro" } - ListElement { type: "easeOutBounce"; ballColor: "Silver" } - ListElement { type: "easeInBounce"; ballColor: "DimGray" } - ListElement { type: "easeInOutBounce"; ballColor: "SlateGray" } - ListElement { type: "easeOutInBounce"; ballColor: "DarkSlateGray" } - } - - Component { - id: delegate - - Item { - height: 42; width: window.width - Text { text: type; anchors.centerIn: parent; color: "White" } - Rectangle { - id: slot1; color: "#121212"; x: 30; height: 32; width: 32 - border.color: "#343434"; border.width: 1; radius: 8; anchors.verticalCenter: parent.verticalCenter - } - Rectangle { - id: slot2; color: "#121212"; x: window.width - 62; height: 32; width: 32 - border.color: "#343434"; border.width: 1; radius: 8; anchors.verticalCenter: parent.verticalCenter - } - Rectangle { - id: rect; x: 30; color: "#454545" - border.color: "White"; border.width: 2 - height: 32; width: 32; radius: 8; anchors.verticalCenter: parent.verticalCenter - - MouseRegion { - onClicked: if (rect.state == '') rect.state = "right"; else rect.state = '' - anchors.fill: parent - } - - states : State { - name: "right" - PropertyChanges { target: rect; x: window.width - 62; color: ballColor } - } - - transitions: Transition { - ParallelAnimation { - NumberAnimation { properties: "x"; easing: type; duration: 1000 } - ColorAnimation { properties: "color"; easing: type; duration: 1000 } - } - } - } - } - } - - Flickable { - anchors.fill: parent; viewportHeight: layout.height - Column { - id: layout - anchors.left: parent.left; anchors.right: parent.right - Repeater { model: easingTypes; delegate: delegate } - } - } -} diff --git a/examples/declarative/animation/images/face-smile.png b/examples/declarative/animation/images/face-smile.png deleted file mode 100644 index 3d66d72..0000000 Binary files a/examples/declarative/animation/images/face-smile.png and /dev/null differ diff --git a/examples/declarative/animation/images/moon.png b/examples/declarative/animation/images/moon.png deleted file mode 100644 index 9407b2b..0000000 Binary files a/examples/declarative/animation/images/moon.png and /dev/null differ diff --git a/examples/declarative/animation/images/shadow.png b/examples/declarative/animation/images/shadow.png deleted file mode 100644 index 8270565..0000000 Binary files a/examples/declarative/animation/images/shadow.png and /dev/null differ diff --git a/examples/declarative/animation/images/star.png b/examples/declarative/animation/images/star.png deleted file mode 100644 index 27ef924..0000000 Binary files a/examples/declarative/animation/images/star.png and /dev/null differ diff --git a/examples/declarative/animation/images/sun.png b/examples/declarative/animation/images/sun.png deleted file mode 100644 index 7713ca5..0000000 Binary files a/examples/declarative/animation/images/sun.png and /dev/null differ diff --git a/examples/declarative/animation/property-animation.qml b/examples/declarative/animation/property-animation.qml deleted file mode 100644 index 0256137..0000000 --- a/examples/declarative/animation/property-animation.qml +++ /dev/null @@ -1,64 +0,0 @@ -import Qt 4.6 - -Item { - id: window - width: 320; height: 480 - - // Let's draw the sky... - Rectangle { - anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.verticalCenter } - gradient: Gradient { - GradientStop { position: 0.0; color: "DeepSkyBlue" } - GradientStop { position: 1.0; color: "LightSkyBlue" } - } - } - - // ...and the ground. - Rectangle { - anchors { left: parent.left; top: parent.verticalCenter; right: parent.right; bottom: parent.bottom } - gradient: Gradient { - GradientStop { position: 0.0; color: "ForestGreen" } - GradientStop { position: 1.0; color: "DarkGreen" } - } - } - - // The shadow for the smiley face - Image { - anchors.horizontalCenter: parent.horizontalCenter - source: "images/shadow.png"; y: smiley.minHeight + 58 - transformOrigin: Item.Center - - // The scale property depends on the y position of the smiley face. - scale: smiley.y * 0.5 / (smiley.minHeight - smiley.maxHeight) - } - - Image { - id: smiley - property int maxHeight: window.height / 3 - property int minHeight: 2 * window.height / 3 - - anchors.horizontalCenter: parent.horizontalCenter - source: "images/face-smile.png"; y: minHeight - - // Animate the y property. Setting repeat to true makes the - // animation repeat indefinitely, otherwise it would only run once. - y: SequentialAnimation { - running: true; repeat: true - - // Move from minHeight to maxHeight in 300ms, using the easeOutExpo easing function - NumberAnimation { - from: smiley.minHeight; to: smiley.maxHeight - easing: "easeOutExpo"; duration: 300 - } - - // Then move back to minHeight in 1 second, using the easeOutBounce easing function - NumberAnimation { - from: smiley.maxHeight; to: smiley.minHeight - easing: "easeOutBounce"; duration: 1000 - } - - // Then pause for 500ms - PauseAnimation { duration: 500 } - } - } -} diff --git a/examples/declarative/animations/color-animation.qml b/examples/declarative/animations/color-animation.qml new file mode 100644 index 0000000..edb0659 --- /dev/null +++ b/examples/declarative/animations/color-animation.qml @@ -0,0 +1,73 @@ +import Qt 4.6 + +Item { + id: window + width: 640; height: 480 + + // Let's draw the sky... + Rectangle { + anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.verticalCenter } + gradient: Gradient { + GradientStop { + position: 0.0 + color: SequentialAnimation { + running: true; repeat: true + ColorAnimation { from: "DeepSkyBlue"; to: "#0E1533"; duration: 5000 } + ColorAnimation { from: "#0E1533"; to: "DeepSkyBlue"; duration: 5000 } + } + } + GradientStop { + position: 1.0 + color: SequentialAnimation { + running: true; repeat: true + ColorAnimation { from: "SkyBlue"; to: "#437284"; duration: 5000 } + ColorAnimation { from: "#437284"; to: "SkyBlue"; duration: 5000 } + } + } + } + } + + // the sun, moon, and stars + Item { + width: parent.width; height: 2 * parent.height + transformOrigin: Item.Center + rotation: SequentialAnimation { + running: true; repeat: true + NumberAnimation { from: 0; to: 360; duration: 10000 } + } + Image { + source: "images/sun.png"; y: 10; anchors.horizontalCenter: parent.horizontalCenter + transformOrigin: Item.Center; rotation: -3 * parent.rotation + } + Image { + source: "images/moon.png"; y: parent.height - 74; anchors.horizontalCenter: parent.horizontalCenter + transformOrigin: Item.Center; rotation: -parent.rotation + } + Particles { + x: 0; y: parent.height/2; width: parent.width; height: parent.height/2 + source: "images/star.png"; angleDeviation: 360; velocity: 0 + velocityDeviation: 0; count: parent.width / 10; fadeInDuration: 2800 + opacity: SequentialAnimation { + running: true; repeat: true + NumberAnimation { from: 0; to: 1; duration: 5000 } + NumberAnimation { from: 1; to: 0; duration: 5000 } + } + } + } + + // ...and the ground. + Rectangle { + anchors { left: parent.left; top: parent.verticalCenter; right: parent.right; bottom: parent.bottom } + gradient: Gradient { + GradientStop { + position: 0.0 + color: SequentialAnimation { + running: true; repeat: true + ColorAnimation { from: "ForestGreen"; to: "#001600"; duration: 5000 } + ColorAnimation { from: "#001600"; to: "ForestGreen"; duration: 5000 } + } + } + GradientStop { position: 1.0; color: "DarkGreen" } + } + } +} diff --git a/examples/declarative/animations/easing.qml b/examples/declarative/animations/easing.qml new file mode 100644 index 0000000..59e9b17 --- /dev/null +++ b/examples/declarative/animations/easing.qml @@ -0,0 +1,99 @@ +import Qt 4.6 + +Rectangle { + id: window + width: 600; height: 460; color: "#232323" + + ListModel { + id: easingTypes + ListElement { type: "easeLinear"; ballColor: "DarkRed" } + ListElement { type: "easeInQuad"; ballColor: "IndianRed" } + ListElement { type: "easeOutQuad"; ballColor: "Salmon" } + ListElement { type: "easeInOutQuad"; ballColor: "Tomato" } + ListElement { type: "easeOutInQuad"; ballColor: "DarkOrange" } + ListElement { type: "easeInCubic"; ballColor: "Gold" } + ListElement { type: "easeOutCubic"; ballColor: "Yellow" } + ListElement { type: "easeInOutCubic"; ballColor: "PeachPuff" } + ListElement { type: "easeOutInCubic"; ballColor: "Thistle" } + ListElement { type: "easeInQuart"; ballColor: "Orchid" } + ListElement { type: "easeOutQuart"; ballColor: "Purple" } + ListElement { type: "easeInOutQuart"; ballColor: "SlateBlue" } + ListElement { type: "easeOutInQuart"; ballColor: "Chartreuse" } + ListElement { type: "easeInQuint"; ballColor: "LimeGreen" } + ListElement { type: "easeOutQuint"; ballColor: "SeaGreen" } + ListElement { type: "easeInOutQuint"; ballColor: "DarkGreen" } + ListElement { type: "easeOutInQuint"; ballColor: "Olive" } + ListElement { type: "easeInSine"; ballColor: "DarkSeaGreen" } + ListElement { type: "easeOutSine"; ballColor: "Teal" } + ListElement { type: "easeInOutSine"; ballColor: "Turquoise" } + ListElement { type: "easeOutInSine"; ballColor: "SteelBlue" } + ListElement { type: "easeInExpo"; ballColor: "SkyBlue" } + ListElement { type: "easeOutExpo"; ballColor: "RoyalBlue" } + ListElement { type: "easeInOutExpo"; ballColor: "MediumBlue" } + ListElement { type: "easeOutInExpo"; ballColor: "MidnightBlue" } + ListElement { type: "easeInCirc"; ballColor: "CornSilk" } + ListElement { type: "easeOutCirc"; ballColor: "Bisque" } + ListElement { type: "easeInOutCirc"; ballColor: "RosyBrown" } + ListElement { type: "easeOutInCirc"; ballColor: "SandyBrown" } + ListElement { type: "easeInElastic"; ballColor: "DarkGoldenRod" } + ListElement { type: "easeOutElastic"; ballColor: "Chocolate" } + ListElement { type: "easeInOutElastic"; ballColor: "SaddleBrown" } + ListElement { type: "easeOutInElastic"; ballColor: "Brown" } + ListElement { type: "easeInBack"; ballColor: "Maroon" } + ListElement { type: "easeOutBack"; ballColor: "LavenderBlush" } + ListElement { type: "easeInOutBack"; ballColor: "MistyRose" } + ListElement { type: "easeOutInBack"; ballColor: "Gainsboro" } + ListElement { type: "easeOutBounce"; ballColor: "Silver" } + ListElement { type: "easeInBounce"; ballColor: "DimGray" } + ListElement { type: "easeInOutBounce"; ballColor: "SlateGray" } + ListElement { type: "easeOutInBounce"; ballColor: "DarkSlateGray" } + } + + Component { + id: delegate + + Item { + height: 42; width: window.width + Text { text: type; anchors.centerIn: parent; color: "White" } + Rectangle { + id: slot1; color: "#121212"; x: 30; height: 32; width: 32 + border.color: "#343434"; border.width: 1; radius: 8; anchors.verticalCenter: parent.verticalCenter + } + Rectangle { + id: slot2; color: "#121212"; x: window.width - 62; height: 32; width: 32 + border.color: "#343434"; border.width: 1; radius: 8; anchors.verticalCenter: parent.verticalCenter + } + Rectangle { + id: rect; x: 30; color: "#454545" + border.color: "White"; border.width: 2 + height: 32; width: 32; radius: 8; anchors.verticalCenter: parent.verticalCenter + + MouseRegion { + onClicked: if (rect.state == '') rect.state = "right"; else rect.state = '' + anchors.fill: parent + } + + states : State { + name: "right" + PropertyChanges { target: rect; x: window.width - 62; color: ballColor } + } + + transitions: Transition { + ParallelAnimation { + NumberAnimation { properties: "x"; easing: type; duration: 1000 } + ColorAnimation { properties: "color"; easing: type; duration: 1000 } + } + } + } + } + } + + Flickable { + anchors.fill: parent; viewportHeight: layout.height + Column { + id: layout + anchors.left: parent.left; anchors.right: parent.right + Repeater { model: easingTypes; delegate: delegate } + } + } +} diff --git a/examples/declarative/animations/images/face-smile.png b/examples/declarative/animations/images/face-smile.png new file mode 100644 index 0000000..3d66d72 Binary files /dev/null and b/examples/declarative/animations/images/face-smile.png differ diff --git a/examples/declarative/animations/images/moon.png b/examples/declarative/animations/images/moon.png new file mode 100644 index 0000000..9407b2b Binary files /dev/null and b/examples/declarative/animations/images/moon.png differ diff --git a/examples/declarative/animations/images/shadow.png b/examples/declarative/animations/images/shadow.png new file mode 100644 index 0000000..8270565 Binary files /dev/null and b/examples/declarative/animations/images/shadow.png differ diff --git a/examples/declarative/animations/images/star.png b/examples/declarative/animations/images/star.png new file mode 100644 index 0000000..27ef924 Binary files /dev/null and b/examples/declarative/animations/images/star.png differ diff --git a/examples/declarative/animations/images/sun.png b/examples/declarative/animations/images/sun.png new file mode 100644 index 0000000..7713ca5 Binary files /dev/null and b/examples/declarative/animations/images/sun.png differ diff --git a/examples/declarative/animations/property-animation.qml b/examples/declarative/animations/property-animation.qml new file mode 100644 index 0000000..0256137 --- /dev/null +++ b/examples/declarative/animations/property-animation.qml @@ -0,0 +1,64 @@ +import Qt 4.6 + +Item { + id: window + width: 320; height: 480 + + // Let's draw the sky... + Rectangle { + anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.verticalCenter } + gradient: Gradient { + GradientStop { position: 0.0; color: "DeepSkyBlue" } + GradientStop { position: 1.0; color: "LightSkyBlue" } + } + } + + // ...and the ground. + Rectangle { + anchors { left: parent.left; top: parent.verticalCenter; right: parent.right; bottom: parent.bottom } + gradient: Gradient { + GradientStop { position: 0.0; color: "ForestGreen" } + GradientStop { position: 1.0; color: "DarkGreen" } + } + } + + // The shadow for the smiley face + Image { + anchors.horizontalCenter: parent.horizontalCenter + source: "images/shadow.png"; y: smiley.minHeight + 58 + transformOrigin: Item.Center + + // The scale property depends on the y position of the smiley face. + scale: smiley.y * 0.5 / (smiley.minHeight - smiley.maxHeight) + } + + Image { + id: smiley + property int maxHeight: window.height / 3 + property int minHeight: 2 * window.height / 3 + + anchors.horizontalCenter: parent.horizontalCenter + source: "images/face-smile.png"; y: minHeight + + // Animate the y property. Setting repeat to true makes the + // animation repeat indefinitely, otherwise it would only run once. + y: SequentialAnimation { + running: true; repeat: true + + // Move from minHeight to maxHeight in 300ms, using the easeOutExpo easing function + NumberAnimation { + from: smiley.minHeight; to: smiley.maxHeight + easing: "easeOutExpo"; duration: 300 + } + + // Then move back to minHeight in 1 second, using the easeOutBounce easing function + NumberAnimation { + from: smiley.maxHeight; to: smiley.minHeight + easing: "easeOutBounce"; duration: 1000 + } + + // Then pause for 500ms + PauseAnimation { duration: 500 } + } + } +} diff --git a/examples/declarative/effects/effects.qml b/examples/declarative/effects/effects.qml new file mode 100644 index 0000000..851b2fe --- /dev/null +++ b/examples/declarative/effects/effects.qml @@ -0,0 +1,110 @@ +import Qt 4.6 + +Rectangle { + color: "white" + width: 600 + height: 600 + + Image { + id: blur + source: "pic.png" + + effect: Blur { + blurRadius: NumberAnimation { + id: blurEffect + from: 0; to: 10 + duration: 1000 + repeat: true + } + } + + MouseRegion { anchors.fill: parent; onClicked: blurEffect.running = !blurEffect.running } + } + + Text { text: "Blur"; anchors.top: blur.bottom; anchors.horizontalCenter: blur.horizontalCenter } + + Image { + id: grayscale + source: "pic.png" + x: 200 + + effect: Grayscale {} + } + + Text { text: "Grayscale"; anchors.top: grayscale.bottom; anchors.horizontalCenter: grayscale.horizontalCenter } + + Image { + id: colorize + source: "pic.png" + x: 400 + + effect: Colorize { color: "blue" } + } + + Text { text: "Colorize"; anchors.top: colorize.bottom; anchors.horizontalCenter: colorize.horizontalCenter } + + Image { + id: pixelize + source: "pic.png" + y: 300 + + effect: Pixelize { + pixelSize: NumberAnimation { + id: pixelizeEffect + from: 0; to: 10 + duration: 1000 + repeat: true + } + } + + MouseRegion { anchors.fill: parent; onClicked: pixelizeEffect.running = !pixelizeEffect.running } + } + + Text { text: "Pixelize"; anchors.top: pixelize.bottom; anchors.horizontalCenter: pixelize.horizontalCenter } + + Image { + id: dropShadow + source: "pic.png" + x: 200 + y: 300 + + effect: DropShadow { + blurRadius: 3 + offset.x: 3 + offset.y: NumberAnimation { id: dropShadowEffect; from: 0; to: 10; duration: 1000; repeat: true; } + } + + MouseRegion { anchors.fill: parent; onClicked: dropShadowEffect.running = !dropShadowEffect.running } + } + + Text { text: "Drop Shadow"; anchors.top: dropShadow.bottom; anchors.horizontalCenter: dropShadow.horizontalCenter } + + Image { + id: bloom + source: "pic.png" + x: 400 + y: 300 + + effect: Bloom { + blurRadius: 3 + brightness: 128 + strength: NumberAnimation { + id: bloomEffect + from: 0; to: 1 + duration: 1000 + repeat: true + } + } + + MouseRegion { anchors.fill: parent; onClicked: bloomEffect.running = !bloomEffect.running } + } + + Text { text: "Bloom"; anchors.top: bloom.bottom; anchors.horizontalCenter: bloom.horizontalCenter } + + Text { + x: 100; y: 250 + text: "Clicking Blur, Pixelize, Drop Shadow or Bloom will \ntoggle animation." + color: "black" + } + +} diff --git a/examples/declarative/effects/pic.jpg b/examples/declarative/effects/pic.jpg deleted file mode 100644 index 5775518..0000000 Binary files a/examples/declarative/effects/pic.jpg and /dev/null differ diff --git a/examples/declarative/effects/test.qml b/examples/declarative/effects/test.qml deleted file mode 100644 index 73c6839..0000000 --- a/examples/declarative/effects/test.qml +++ /dev/null @@ -1,110 +0,0 @@ -import Qt 4.6 - -Rectangle { - color: "white" - width: 600 - height: 600 - - Image { - id: blur - source: "pic.jpg" - - effect: Blur { - blurRadius: NumberAnimation { - id: blurEffect - from: 0; to: 10 - duration: 200 - repeat: true - } - } - - MouseRegion { anchors.fill: parent; onClicked: blurEffect.running = !blurEffect.running } - } - - Text { text: "Blur"; anchors.top: blur.bottom; anchors.horizontalCenter: blur.horizontalCenter } - - Image { - id: grayscale - source: "pic.jpg" - x: 200 - - effect: Grayscale {} - } - - Text { text: "Grayscale"; anchors.top: grayscale.bottom; anchors.horizontalCenter: grayscale.horizontalCenter } - - Image { - id: colorize - source: "pic.jpg" - x: 400 - - effect: Colorize { color: "blue" } - } - - Text { text: "Colorize"; anchors.top: colorize.bottom; anchors.horizontalCenter: colorize.horizontalCenter } - - Image { - id: pixelize - source: "pic.jpg" - y: 300 - - effect: Pixelize { - pixelSize: NumberAnimation { - id: pixelizeEffect - from: 0; to: 10 - duration: 200 - repeat: true - } - } - - MouseRegion { anchors.fill: parent; onClicked: pixelizeEffect.running = !pixelizeEffect.running } - } - - Text { text: "Pixelize"; anchors.top: pixelize.bottom; anchors.horizontalCenter: pixelize.horizontalCenter } - - Image { - id: dropShadow - source: "pic.jpg" - x: 200 - y: 300 - - effect: DropShadow { - blurRadius: 3 - offset.x: 3 - offset.y: NumberAnimation { id: dropShadowEffect; from: 0; to: 10; duration: 200; repeat: true; } - } - - MouseRegion { anchors.fill: parent; onClicked: dropShadowEffect.running = !dropShadowEffect.running } - } - - Text { text: "Drop Shadow"; anchors.top: dropShadow.bottom; anchors.horizontalCenter: dropShadow.horizontalCenter } - - Image { - id: bloom - source: "pic.jpg" - x: 400 - y: 300 - - effect: Bloom { - blurRadius: 3 - brightness: 128 - strength: NumberAnimation { - id: bloomEffect - from: 0; to: 1 - duration: 200 - repeat: true - } - } - - MouseRegion { anchors.fill: parent; onClicked: bloomEffect.running = !bloomEffect.running } - } - - Text { text: "Bloom"; anchors.top: bloom.bottom; anchors.horizontalCenter: bloom.horizontalCenter } - - Text { - x: 100; y: 250 - text: "Clicking Blur, Pixelize, Drop Shadow or Bloom will \ntoggle animation." - color: "black" - } - -} -- cgit v0.12 From b9d05682eea31f4a0320feaa950f4f1f85a7935a Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 16:35:33 +1000 Subject: add missing image --- examples/declarative/effects/pic.png | Bin 0 -> 12933 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/declarative/effects/pic.png diff --git a/examples/declarative/effects/pic.png b/examples/declarative/effects/pic.png new file mode 100644 index 0000000..051e738 Binary files /dev/null and b/examples/declarative/effects/pic.png differ -- cgit v0.12 From 0bfdbc3c60d7966a8cdf20fe952aa195a1dab121 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 30 Oct 2009 16:55:29 +1000 Subject: enable smooth scaling for dynamic example --- examples/declarative/dynamic/qml/PerspectiveItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/declarative/dynamic/qml/PerspectiveItem.qml b/examples/declarative/dynamic/qml/PerspectiveItem.qml index 9e09dd2..55a70d5 100644 --- a/examples/declarative/dynamic/qml/PerspectiveItem.qml +++ b/examples/declarative/dynamic/qml/PerspectiveItem.qml @@ -7,6 +7,6 @@ Image { onCreatedChanged: if (created && y+height<=window.height/2) { tree.destroy() } scale: y+height > window.height/2 ? (y+height-250)*0.01 : 1 transformOrigin: "Center" - source: image; + source: image; smooth: true z: y } -- cgit v0.12 From c2d149073d21d3b78367cce18c4173ac804942f2 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 30 Oct 2009 17:06:16 +1000 Subject: compile --- src/declarative/extra/qmlxmllistmodel_p.h | 2 +- src/declarative/fx/qmlgraphicswebview.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/declarative/extra/qmlxmllistmodel_p.h b/src/declarative/extra/qmlxmllistmodel_p.h index 7857629..18bf9d2 100644 --- a/src/declarative/extra/qmlxmllistmodel_p.h +++ b/src/declarative/extra/qmlxmllistmodel_p.h @@ -43,7 +43,7 @@ #define QMLXMLLISTMODEL_H #include -#include +#include #include QT_BEGIN_HEADER diff --git a/src/declarative/fx/qmlgraphicswebview.cpp b/src/declarative/fx/qmlgraphicswebview.cpp index a035fe2..c6ab4c7 100644 --- a/src/declarative/fx/qmlgraphicswebview.cpp +++ b/src/declarative/fx/qmlgraphicswebview.cpp @@ -55,8 +55,8 @@ #include "qml.h" #include "qmlengine.h" -#include "qmlstate_p.h" -#include "qlistmodelinterface_p.h" +#include +#include #include "qmlgraphicswebview_p.h" #include -- cgit v0.12 From 3a20331b59434141935a78b768a628656c0452a7 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 17:25:38 +1000 Subject: Compile --- tests/auto/declarative/qfxwebview/qfxwebview.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qfxwebview/qfxwebview.pro b/tests/auto/declarative/qfxwebview/qfxwebview.pro index cce3df2..b75e057 100644 --- a/tests/auto/declarative/qfxwebview/qfxwebview.pro +++ b/tests/auto/declarative/qfxwebview/qfxwebview.pro @@ -2,7 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative macx:CONFIG -= app_bundle -SOURCES += tst_qmlgraphicswebview.cpp +SOURCES += tst_qfxwebview.cpp # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" -- cgit v0.12 From 9170d122291036d930aa5afb79280922ed1d586f Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 18:30:27 +1000 Subject: Cleanup --- src/declarative/3rdparty/qlistmodelinterface_p.h | 1 - src/declarative/fx/qmlgraphicsanchors_p.h | 1 - src/declarative/fx/qmlgraphicseffects.cpp | 1 - src/declarative/fx/qmlgraphicsevents_p_p.h | 1 - src/declarative/fx/qmlgraphicsitem.h | 1 - src/declarative/fx/qmlgraphicspainteditem_p.h | 1 - src/declarative/fx/qmlgraphicspixmapcache_p.h | 1 - src/declarative/fx/qmlgraphicsscalegrid_p_p.h | 1 - src/declarative/fx/qmlgraphicswebview_p.h | 1 - src/declarative/qml/qml.h | 1 - src/declarative/qml/qml.pri | 1 + src/declarative/qml/qmlbasicscript.cpp | 1 + src/declarative/qml/qmlbinding.h | 1 - src/declarative/qml/qmlboundsignal.cpp | 4 +- src/declarative/qml/qmlcompiler.cpp | 1 + src/declarative/qml/qmlcomponent.cpp | 1 + src/declarative/qml/qmlcomponent.h | 1 - src/declarative/qml/qmlcustomparser_p.h | 1 - src/declarative/qml/qmldom.cpp | 1 + src/declarative/qml/qmlengine.cpp | 1 + src/declarative/qml/qmlinstruction_p.h | 2 +- src/declarative/qml/qmlmetaproperty.h | 3 +- src/declarative/qml/qmlrewrite.cpp | 2 +- src/declarative/util/qfxglobal.h | 94 ------------------------ src/declarative/util/qmlanimation.cpp | 1 + src/declarative/util/qmlbind_p.h | 1 - src/declarative/util/qmllistmodel_p.h | 1 - src/declarative/util/qmlpropertymap_p.h | 1 - src/declarative/util/qmlspringfollow_p.h | 6 +- src/declarative/util/qmlstate.cpp | 1 + src/declarative/util/qmlstate_p.h | 1 - src/declarative/util/qmlstategroup.cpp | 1 + src/declarative/util/qmltimeline_p_p.h | 1 - src/declarative/util/qmltimer_p.h | 1 - src/declarative/util/qmltransition_p.h | 1 - src/declarative/util/qmlview.cpp | 1 + src/declarative/util/qmlview.h | 1 - src/declarative/util/util.pri | 1 - 38 files changed, 18 insertions(+), 125 deletions(-) delete mode 100644 src/declarative/util/qfxglobal.h diff --git a/src/declarative/3rdparty/qlistmodelinterface_p.h b/src/declarative/3rdparty/qlistmodelinterface_p.h index 44c4a24..738378e 100644 --- a/src/declarative/3rdparty/qlistmodelinterface_p.h +++ b/src/declarative/3rdparty/qlistmodelinterface_p.h @@ -44,7 +44,6 @@ #include #include -#include QT_BEGIN_HEADER diff --git a/src/declarative/fx/qmlgraphicsanchors_p.h b/src/declarative/fx/qmlgraphicsanchors_p.h index 6c76cd3..f6e9e1a 100644 --- a/src/declarative/fx/qmlgraphicsanchors_p.h +++ b/src/declarative/fx/qmlgraphicsanchors_p.h @@ -43,7 +43,6 @@ #define QMLGRAPHICSANCHORS_H #include -#include #include #include diff --git a/src/declarative/fx/qmlgraphicseffects.cpp b/src/declarative/fx/qmlgraphicseffects.cpp index 8467dd7..c611eea 100644 --- a/src/declarative/fx/qmlgraphicseffects.cpp +++ b/src/declarative/fx/qmlgraphicseffects.cpp @@ -39,7 +39,6 @@ ** ****************************************************************************/ #include -#include #include QML_DECLARE_TYPE(QGraphicsEffect) diff --git a/src/declarative/fx/qmlgraphicsevents_p_p.h b/src/declarative/fx/qmlgraphicsevents_p_p.h index e38446f..9cab18e 100644 --- a/src/declarative/fx/qmlgraphicsevents_p_p.h +++ b/src/declarative/fx/qmlgraphicsevents_p_p.h @@ -53,7 +53,6 @@ // We mean it. // -#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicsitem.h b/src/declarative/fx/qmlgraphicsitem.h index 5f14751..bdfc245 100644 --- a/src/declarative/fx/qmlgraphicsitem.h +++ b/src/declarative/fx/qmlgraphicsitem.h @@ -44,7 +44,6 @@ #include #include -#include #include #include #include diff --git a/src/declarative/fx/qmlgraphicspainteditem_p.h b/src/declarative/fx/qmlgraphicspainteditem_p.h index 10b80a4..99873a7 100644 --- a/src/declarative/fx/qmlgraphicspainteditem_p.h +++ b/src/declarative/fx/qmlgraphicspainteditem_p.h @@ -42,7 +42,6 @@ #ifndef QMLGRAPHICSIMAGEITEM_H #define QMLGRAPHICSIMAGEITEM_H -#include #include diff --git a/src/declarative/fx/qmlgraphicspixmapcache_p.h b/src/declarative/fx/qmlgraphicspixmapcache_p.h index 261d3a1..29de98d 100644 --- a/src/declarative/fx/qmlgraphicspixmapcache_p.h +++ b/src/declarative/fx/qmlgraphicspixmapcache_p.h @@ -44,7 +44,6 @@ #include #include -#include #include QT_BEGIN_HEADER diff --git a/src/declarative/fx/qmlgraphicsscalegrid_p_p.h b/src/declarative/fx/qmlgraphicsscalegrid_p_p.h index b4167c5..b66a5a5 100644 --- a/src/declarative/fx/qmlgraphicsscalegrid_p_p.h +++ b/src/declarative/fx/qmlgraphicsscalegrid_p_p.h @@ -44,7 +44,6 @@ #include #include -#include #include #include #include "qmlgraphicsborderimage_p.h" diff --git a/src/declarative/fx/qmlgraphicswebview_p.h b/src/declarative/fx/qmlgraphicswebview_p.h index 8b8e4ec..6852bb0 100644 --- a/src/declarative/fx/qmlgraphicswebview_p.h +++ b/src/declarative/fx/qmlgraphicswebview_p.h @@ -44,7 +44,6 @@ #include #include -#include #include #include #include diff --git a/src/declarative/qml/qml.h b/src/declarative/qml/qml.h index 43351b3..f6a6371 100644 --- a/src/declarative/qml/qml.h +++ b/src/declarative/qml/qml.h @@ -46,7 +46,6 @@ #include #include #include -#include #include #include #include diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 4c02f95..ee13437 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -49,6 +49,7 @@ SOURCES += qml/qmlparser.cpp \ qml/qmllistscriptclass.cpp HEADERS += qml/qmlparser_p.h \ + qml/qmlglobal_p.h \ qml/qmlinstruction_p.h \ qml/qmlvmemetaobject_p.h \ qml/qml.h \ diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index 28e328b..b3bcf42 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -49,6 +49,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/qmlbinding.h b/src/declarative/qml/qmlbinding.h index 7af276b..8814e77 100644 --- a/src/declarative/qml/qmlbinding.h +++ b/src/declarative/qml/qmlbinding.h @@ -43,7 +43,6 @@ #define QMLBINDING_H #include -#include #include #include #include diff --git a/src/declarative/qml/qmlboundsignal.cpp b/src/declarative/qml/qmlboundsignal.cpp index bbce366..def11c3 100644 --- a/src/declarative/qml/qmlboundsignal.cpp +++ b/src/declarative/qml/qmlboundsignal.cpp @@ -44,11 +44,11 @@ #include "private/qmlengine_p.h" #include "private/qmlexpression_p.h" #include "private/qmlcontext_p.h" -#include #include #include #include -#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 473009d..b93a9b3 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -70,6 +70,7 @@ #include "qmlmetaproperty_p.h" #include "qmlrewrite_p.h" #include +#include #include "qmlscriptparser_p.h" diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index 116fd4b..03f07b3 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -56,6 +56,7 @@ #include #include #include +#include #include "qmlscriptparser_p.h" diff --git a/src/declarative/qml/qmlcomponent.h b/src/declarative/qml/qmlcomponent.h index bd72f20..bfb4d53 100644 --- a/src/declarative/qml/qmlcomponent.h +++ b/src/declarative/qml/qmlcomponent.h @@ -45,7 +45,6 @@ #include #include #include -#include #include #include diff --git a/src/declarative/qml/qmlcustomparser_p.h b/src/declarative/qml/qmlcustomparser_p.h index a3697a7..89d3be2 100644 --- a/src/declarative/qml/qmlcustomparser_p.h +++ b/src/declarative/qml/qmlcustomparser_p.h @@ -55,7 +55,6 @@ #include #include -#include #include #include #include diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 46a7a5a..b6e794b 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -48,6 +48,7 @@ #include #include #include "qmlscriptparser_p.h" +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 0f8b98a..07296d9 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -87,6 +87,7 @@ #include #include #include +#include #ifdef Q_OS_WIN // for %APPDATA% #include "qt_windows.h" diff --git a/src/declarative/qml/qmlinstruction_p.h b/src/declarative/qml/qmlinstruction_p.h index f8954d5..15e4fdf 100644 --- a/src/declarative/qml/qmlinstruction_p.h +++ b/src/declarative/qml/qmlinstruction_p.h @@ -53,7 +53,7 @@ // We mean it. // -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/qmlmetaproperty.h b/src/declarative/qml/qmlmetaproperty.h index ba44ce18..ce4ac1e 100644 --- a/src/declarative/qml/qmlmetaproperty.h +++ b/src/declarative/qml/qmlmetaproperty.h @@ -42,8 +42,7 @@ #ifndef QMLMETAPROPERTY_H #define QMLMETAPROPERTY_H -#include -#include +#include QT_BEGIN_HEADER diff --git a/src/declarative/qml/qmlrewrite.cpp b/src/declarative/qml/qmlrewrite.cpp index 1f011c2..b86f2f2 100644 --- a/src/declarative/qml/qmlrewrite.cpp +++ b/src/declarative/qml/qmlrewrite.cpp @@ -40,8 +40,8 @@ ****************************************************************************/ #include "qmlrewrite_p.h" -#include #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qfxglobal.h b/src/declarative/util/qfxglobal.h deleted file mode 100644 index eb57963..0000000 --- a/src/declarative/util/qfxglobal.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** 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 QFXGLOBAL_H -#define QFXGLOBAL_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -#define QFX_CONFIGURATION_SOFTWARE -#define QFX_RENDER_QPAINTER - -#define DEFINE_BOOL_CONFIG_OPTION(name, var) \ - static bool name() \ - { \ - static enum { Yes, No, Unknown } status = Unknown; \ - if (status == Unknown) { \ - QByteArray v = qgetenv(#var); \ - bool value = !v.isEmpty() && v != "0" && v != "false"; \ - if (value) status = Yes; \ - else status = No; \ - } \ - return status == Yes; \ - } - -struct QmlGraphics_DerivedObject : public QObject -{ - void setParent_noEvent(QObject *parent) { - bool sce = d_ptr->sendChildEvents; - d_ptr->sendChildEvents = false; - setParent(parent); - d_ptr->sendChildEvents = sce; - } -}; - -/*! - Makes the \a object a child of \a parent. Note that when using this method, - neither \a parent nor the object's previous parent (if it had one) will - receive ChildRemoved or ChildAdded events. -*/ -inline void QmlGraphics_setParent_noEvent(QObject *object, QObject *parent) -{ - static_cast(object)->setParent_noEvent(parent); -} - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QFXGLOBAL_H diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index 47d7146..180864c 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -58,6 +58,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlbind_p.h b/src/declarative/util/qmlbind_p.h index a4ba81d..c3118a3 100644 --- a/src/declarative/util/qmlbind_p.h +++ b/src/declarative/util/qmlbind_p.h @@ -42,7 +42,6 @@ #ifndef QMLBIND_H #define QMLBIND_H -#include #include #include diff --git a/src/declarative/util/qmllistmodel_p.h b/src/declarative/util/qmllistmodel_p.h index ff6521c..8676024 100644 --- a/src/declarative/util/qmllistmodel_p.h +++ b/src/declarative/util/qmllistmodel_p.h @@ -47,7 +47,6 @@ #include #include #include -#include #include #include #include diff --git a/src/declarative/util/qmlpropertymap_p.h b/src/declarative/util/qmlpropertymap_p.h index 0f641b2..bb397fe 100644 --- a/src/declarative/util/qmlpropertymap_p.h +++ b/src/declarative/util/qmlpropertymap_p.h @@ -42,7 +42,6 @@ #ifndef QMLPROPERTYMAP_H #define QMLPROPERTYMAP_H -#include #include #include #include diff --git a/src/declarative/util/qmlspringfollow_p.h b/src/declarative/util/qmlspringfollow_p.h index cadb344..b81539a 100644 --- a/src/declarative/util/qmlspringfollow_p.h +++ b/src/declarative/util/qmlspringfollow_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QMLFOLLOW_H -#define QMLFOLLOW_H +#ifndef QMLSMOOTHFOLLOW_H +#define QMLSMOOTHFOLLOW_H #include #include @@ -110,4 +110,4 @@ QML_DECLARE_TYPE(QmlSpringFollow) QT_END_HEADER -#endif // QFXFOLLOW_H +#endif // QMLSMOOTHFOLLOW_H diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index a5978a5..ce4b540 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -48,6 +48,7 @@ #include "qmlanimation_p_p.h" #include "qmlstate_p.h" #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlstate_p.h b/src/declarative/util/qmlstate_p.h index 9d18390..92aef8c 100644 --- a/src/declarative/util/qmlstate_p.h +++ b/src/declarative/util/qmlstate_p.h @@ -44,7 +44,6 @@ #include #include -#include #include QT_BEGIN_HEADER diff --git a/src/declarative/util/qmlstategroup.cpp b/src/declarative/util/qmlstategroup.cpp index cff25c3..f518ea5 100644 --- a/src/declarative/util/qmlstategroup.cpp +++ b/src/declarative/util/qmlstategroup.cpp @@ -44,6 +44,7 @@ #include "qmltransition_p.h" #include #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmltimeline_p_p.h b/src/declarative/util/qmltimeline_p_p.h index f1e716c..09d46ba 100644 --- a/src/declarative/util/qmltimeline_p_p.h +++ b/src/declarative/util/qmltimeline_p_p.h @@ -55,7 +55,6 @@ #include #include -#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmltimer_p.h b/src/declarative/util/qmltimer_p.h index 7d40d5a..f3037e0 100644 --- a/src/declarative/util/qmltimer_p.h +++ b/src/declarative/util/qmltimer_p.h @@ -42,7 +42,6 @@ #ifndef QMLTIMER_H #define QMLTIMER_H -#include #include #include #include diff --git a/src/declarative/util/qmltransition_p.h b/src/declarative/util/qmltransition_p.h index de1d3e8..a7c709f 100644 --- a/src/declarative/util/qmltransition_p.h +++ b/src/declarative/util/qmltransition_p.h @@ -43,7 +43,6 @@ #define QMLTRANSITION_H #include -#include #include #include diff --git a/src/declarative/util/qmlview.cpp b/src/declarative/util/qmlview.cpp index 27a4bba..0a2cc75 100644 --- a/src/declarative/util/qmlview.cpp +++ b/src/declarative/util/qmlview.cpp @@ -62,6 +62,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE diff --git a/src/declarative/util/qmlview.h b/src/declarative/util/qmlview.h index 08c036d..08d69bc 100644 --- a/src/declarative/util/qmlview.h +++ b/src/declarative/util/qmlview.h @@ -46,7 +46,6 @@ #include #include #include -#include QT_BEGIN_HEADER diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri index a60613e..87ccb58 100644 --- a/src/declarative/util/util.pri +++ b/src/declarative/util/util.pri @@ -25,7 +25,6 @@ SOURCES += \ HEADERS += \ util/qmlview.h \ util/qfxperf_p_p.h \ - util/qfxglobal.h \ util/qperformancelog_p_p.h \ util/qmlconnection_p.h \ util/qmlpackage_p.h \ -- cgit v0.12 From 831faecce3a6a090046ac218dfa3ae93f47263c6 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 18:51:34 +1000 Subject: Rename fx -> graphicsitems --- src/declarative/declarative.pro | 2 +- src/declarative/fx/fx.pri | 84 - src/declarative/fx/qmlgraphicsanchors.cpp | 962 ------- src/declarative/fx/qmlgraphicsanchors_p.h | 179 -- src/declarative/fx/qmlgraphicsanchors_p_p.h | 160 -- src/declarative/fx/qmlgraphicsborderimage.cpp | 411 --- src/declarative/fx/qmlgraphicsborderimage_p.h | 105 - src/declarative/fx/qmlgraphicsborderimage_p_p.h | 97 - src/declarative/fx/qmlgraphicseffects.cpp | 277 -- src/declarative/fx/qmlgraphicsevents.cpp | 195 -- src/declarative/fx/qmlgraphicsevents_p_p.h | 136 - src/declarative/fx/qmlgraphicsflickable.cpp | 1283 --------- src/declarative/fx/qmlgraphicsflickable_p.h | 203 -- src/declarative/fx/qmlgraphicsflickable_p_p.h | 156 -- src/declarative/fx/qmlgraphicsflipable.cpp | 234 -- src/declarative/fx/qmlgraphicsflipable_p.h | 94 - src/declarative/fx/qmlgraphicsfocuspanel.cpp | 89 - src/declarative/fx/qmlgraphicsfocuspanel_p.h | 77 - src/declarative/fx/qmlgraphicsfocusscope.cpp | 72 - src/declarative/fx/qmlgraphicsfocusscope_p.h | 68 - .../fx/qmlgraphicsgraphicsobjectcontainer.cpp | 230 -- .../fx/qmlgraphicsgraphicsobjectcontainer_p.h | 90 - src/declarative/fx/qmlgraphicsgridview.cpp | 1585 ----------- src/declarative/fx/qmlgraphicsgridview_p.h | 157 -- src/declarative/fx/qmlgraphicsimage.cpp | 301 -- src/declarative/fx/qmlgraphicsimage_p.h | 90 - src/declarative/fx/qmlgraphicsimage_p_p.h | 77 - src/declarative/fx/qmlgraphicsimagebase.cpp | 174 -- src/declarative/fx/qmlgraphicsimagebase_p.h | 92 - src/declarative/fx/qmlgraphicsimagebase_p_p.h | 83 - src/declarative/fx/qmlgraphicsitem.cpp | 2922 -------------------- src/declarative/fx/qmlgraphicsitem.h | 237 -- src/declarative/fx/qmlgraphicsitem_p.h | 245 -- src/declarative/fx/qmlgraphicslayoutitem.cpp | 106 - src/declarative/fx/qmlgraphicslayoutitem_p.h | 93 - src/declarative/fx/qmlgraphicslistview.cpp | 2036 -------------- src/declarative/fx/qmlgraphicslistview_p.h | 186 -- src/declarative/fx/qmlgraphicsloader.cpp | 390 --- src/declarative/fx/qmlgraphicsloader_p.h | 107 - src/declarative/fx/qmlgraphicsloader_p_p.h | 82 - src/declarative/fx/qmlgraphicsmouseregion.cpp | 649 ----- src/declarative/fx/qmlgraphicsmouseregion_p.h | 180 -- src/declarative/fx/qmlgraphicsmouseregion_p_p.h | 114 - src/declarative/fx/qmlgraphicspainteditem.cpp | 387 --- src/declarative/fx/qmlgraphicspainteditem_p.h | 104 - src/declarative/fx/qmlgraphicspainteditem_p_p.h | 88 - src/declarative/fx/qmlgraphicspath.cpp | 839 ------ src/declarative/fx/qmlgraphicspath_p.h | 259 -- src/declarative/fx/qmlgraphicspath_p_p.h | 79 - src/declarative/fx/qmlgraphicspathview.cpp | 913 ------ src/declarative/fx/qmlgraphicspathview_p.h | 138 - src/declarative/fx/qmlgraphicspathview_p_p.h | 151 - src/declarative/fx/qmlgraphicspixmapcache.cpp | 282 -- src/declarative/fx/qmlgraphicspixmapcache_p.h | 71 - src/declarative/fx/qmlgraphicspositioners.cpp | 921 ------ src/declarative/fx/qmlgraphicspositioners_p.h | 167 -- src/declarative/fx/qmlgraphicspositioners_p_p.h | 105 - src/declarative/fx/qmlgraphicsrect.cpp | 475 ---- src/declarative/fx/qmlgraphicsrect_p.h | 189 -- src/declarative/fx/qmlgraphicsrect_p_p.h | 109 - src/declarative/fx/qmlgraphicsrepeater.cpp | 320 --- src/declarative/fx/qmlgraphicsrepeater_p.h | 103 - src/declarative/fx/qmlgraphicsrepeater_p_p.h | 81 - src/declarative/fx/qmlgraphicsscalegrid.cpp | 212 -- src/declarative/fx/qmlgraphicsscalegrid_p_p.h | 132 - src/declarative/fx/qmlgraphicstext.cpp | 840 ------ src/declarative/fx/qmlgraphicstext_p.h | 151 - src/declarative/fx/qmlgraphicstext_p_p.h | 113 - src/declarative/fx/qmlgraphicstextedit.cpp | 1085 -------- src/declarative/fx/qmlgraphicstextedit_p.h | 234 -- src/declarative/fx/qmlgraphicstextedit_p_p.h | 113 - src/declarative/fx/qmlgraphicstextinput.cpp | 777 ------ src/declarative/fx/qmlgraphicstextinput_p.h | 209 -- src/declarative/fx/qmlgraphicstextinput_p_p.h | 109 - src/declarative/fx/qmlgraphicsvisualitemmodel.cpp | 1033 ------- src/declarative/fx/qmlgraphicsvisualitemmodel_p.h | 203 -- src/declarative/fx/qmlgraphicswebview.cpp | 1388 ---------- src/declarative/fx/qmlgraphicswebview_p.h | 250 -- src/declarative/graphicsitems/graphicsitems.pri | 84 + .../graphicsitems/qmlgraphicsanchors.cpp | 962 +++++++ .../graphicsitems/qmlgraphicsanchors_p.h | 179 ++ .../graphicsitems/qmlgraphicsanchors_p_p.h | 160 ++ .../graphicsitems/qmlgraphicsborderimage.cpp | 411 +++ .../graphicsitems/qmlgraphicsborderimage_p.h | 105 + .../graphicsitems/qmlgraphicsborderimage_p_p.h | 97 + .../graphicsitems/qmlgraphicseffects.cpp | 277 ++ .../graphicsitems/qmlgraphicsevents.cpp | 195 ++ .../graphicsitems/qmlgraphicsevents_p_p.h | 136 + .../graphicsitems/qmlgraphicsflickable.cpp | 1283 +++++++++ .../graphicsitems/qmlgraphicsflickable_p.h | 203 ++ .../graphicsitems/qmlgraphicsflickable_p_p.h | 156 ++ .../graphicsitems/qmlgraphicsflipable.cpp | 234 ++ .../graphicsitems/qmlgraphicsflipable_p.h | 94 + .../graphicsitems/qmlgraphicsfocuspanel.cpp | 89 + .../graphicsitems/qmlgraphicsfocuspanel_p.h | 77 + .../graphicsitems/qmlgraphicsfocusscope.cpp | 72 + .../graphicsitems/qmlgraphicsfocusscope_p.h | 68 + .../qmlgraphicsgraphicsobjectcontainer.cpp | 230 ++ .../qmlgraphicsgraphicsobjectcontainer_p.h | 90 + .../graphicsitems/qmlgraphicsgridview.cpp | 1585 +++++++++++ .../graphicsitems/qmlgraphicsgridview_p.h | 157 ++ src/declarative/graphicsitems/qmlgraphicsimage.cpp | 301 ++ src/declarative/graphicsitems/qmlgraphicsimage_p.h | 90 + .../graphicsitems/qmlgraphicsimage_p_p.h | 77 + .../graphicsitems/qmlgraphicsimagebase.cpp | 174 ++ .../graphicsitems/qmlgraphicsimagebase_p.h | 92 + .../graphicsitems/qmlgraphicsimagebase_p_p.h | 83 + src/declarative/graphicsitems/qmlgraphicsitem.cpp | 2922 ++++++++++++++++++++ src/declarative/graphicsitems/qmlgraphicsitem.h | 237 ++ src/declarative/graphicsitems/qmlgraphicsitem_p.h | 245 ++ .../graphicsitems/qmlgraphicslayoutitem.cpp | 106 + .../graphicsitems/qmlgraphicslayoutitem_p.h | 93 + .../graphicsitems/qmlgraphicslistview.cpp | 2036 ++++++++++++++ .../graphicsitems/qmlgraphicslistview_p.h | 186 ++ .../graphicsitems/qmlgraphicsloader.cpp | 390 +++ .../graphicsitems/qmlgraphicsloader_p.h | 107 + .../graphicsitems/qmlgraphicsloader_p_p.h | 82 + .../graphicsitems/qmlgraphicsmouseregion.cpp | 649 +++++ .../graphicsitems/qmlgraphicsmouseregion_p.h | 180 ++ .../graphicsitems/qmlgraphicsmouseregion_p_p.h | 114 + .../graphicsitems/qmlgraphicspainteditem.cpp | 387 +++ .../graphicsitems/qmlgraphicspainteditem_p.h | 104 + .../graphicsitems/qmlgraphicspainteditem_p_p.h | 88 + src/declarative/graphicsitems/qmlgraphicspath.cpp | 839 ++++++ src/declarative/graphicsitems/qmlgraphicspath_p.h | 259 ++ .../graphicsitems/qmlgraphicspath_p_p.h | 79 + .../graphicsitems/qmlgraphicspathview.cpp | 913 ++++++ .../graphicsitems/qmlgraphicspathview_p.h | 138 + .../graphicsitems/qmlgraphicspathview_p_p.h | 151 + .../graphicsitems/qmlgraphicspixmapcache.cpp | 282 ++ .../graphicsitems/qmlgraphicspixmapcache_p.h | 71 + .../graphicsitems/qmlgraphicspositioners.cpp | 921 ++++++ .../graphicsitems/qmlgraphicspositioners_p.h | 167 ++ .../graphicsitems/qmlgraphicspositioners_p_p.h | 105 + src/declarative/graphicsitems/qmlgraphicsrect.cpp | 475 ++++ src/declarative/graphicsitems/qmlgraphicsrect_p.h | 189 ++ .../graphicsitems/qmlgraphicsrect_p_p.h | 109 + .../graphicsitems/qmlgraphicsrepeater.cpp | 320 +++ .../graphicsitems/qmlgraphicsrepeater_p.h | 103 + .../graphicsitems/qmlgraphicsrepeater_p_p.h | 81 + .../graphicsitems/qmlgraphicsscalegrid.cpp | 212 ++ .../graphicsitems/qmlgraphicsscalegrid_p_p.h | 132 + src/declarative/graphicsitems/qmlgraphicstext.cpp | 840 ++++++ src/declarative/graphicsitems/qmlgraphicstext_p.h | 151 + .../graphicsitems/qmlgraphicstext_p_p.h | 113 + .../graphicsitems/qmlgraphicstextedit.cpp | 1085 ++++++++ .../graphicsitems/qmlgraphicstextedit_p.h | 234 ++ .../graphicsitems/qmlgraphicstextedit_p_p.h | 113 + .../graphicsitems/qmlgraphicstextinput.cpp | 777 ++++++ .../graphicsitems/qmlgraphicstextinput_p.h | 209 ++ .../graphicsitems/qmlgraphicstextinput_p_p.h | 109 + .../graphicsitems/qmlgraphicsvisualitemmodel.cpp | 1033 +++++++ .../graphicsitems/qmlgraphicsvisualitemmodel_p.h | 203 ++ .../graphicsitems/qmlgraphicswebview.cpp | 1388 ++++++++++ .../graphicsitems/qmlgraphicswebview_p.h | 250 ++ 155 files changed, 27739 insertions(+), 27739 deletions(-) delete mode 100644 src/declarative/fx/fx.pri delete mode 100644 src/declarative/fx/qmlgraphicsanchors.cpp delete mode 100644 src/declarative/fx/qmlgraphicsanchors_p.h delete mode 100644 src/declarative/fx/qmlgraphicsanchors_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsborderimage.cpp delete mode 100644 src/declarative/fx/qmlgraphicsborderimage_p.h delete mode 100644 src/declarative/fx/qmlgraphicsborderimage_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicseffects.cpp delete mode 100644 src/declarative/fx/qmlgraphicsevents.cpp delete mode 100644 src/declarative/fx/qmlgraphicsevents_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsflickable.cpp delete mode 100644 src/declarative/fx/qmlgraphicsflickable_p.h delete mode 100644 src/declarative/fx/qmlgraphicsflickable_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsflipable.cpp delete mode 100644 src/declarative/fx/qmlgraphicsflipable_p.h delete mode 100644 src/declarative/fx/qmlgraphicsfocuspanel.cpp delete mode 100644 src/declarative/fx/qmlgraphicsfocuspanel_p.h delete mode 100644 src/declarative/fx/qmlgraphicsfocusscope.cpp delete mode 100644 src/declarative/fx/qmlgraphicsfocusscope_p.h delete mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp delete mode 100644 src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h delete mode 100644 src/declarative/fx/qmlgraphicsgridview.cpp delete mode 100644 src/declarative/fx/qmlgraphicsgridview_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimage.cpp delete mode 100644 src/declarative/fx/qmlgraphicsimage_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimage_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimagebase.cpp delete mode 100644 src/declarative/fx/qmlgraphicsimagebase_p.h delete mode 100644 src/declarative/fx/qmlgraphicsimagebase_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsitem.cpp delete mode 100644 src/declarative/fx/qmlgraphicsitem.h delete mode 100644 src/declarative/fx/qmlgraphicsitem_p.h delete mode 100644 src/declarative/fx/qmlgraphicslayoutitem.cpp delete mode 100644 src/declarative/fx/qmlgraphicslayoutitem_p.h delete mode 100644 src/declarative/fx/qmlgraphicslistview.cpp delete mode 100644 src/declarative/fx/qmlgraphicslistview_p.h delete mode 100644 src/declarative/fx/qmlgraphicsloader.cpp delete mode 100644 src/declarative/fx/qmlgraphicsloader_p.h delete mode 100644 src/declarative/fx/qmlgraphicsloader_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsmouseregion.cpp delete mode 100644 src/declarative/fx/qmlgraphicsmouseregion_p.h delete mode 100644 src/declarative/fx/qmlgraphicsmouseregion_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspainteditem.cpp delete mode 100644 src/declarative/fx/qmlgraphicspainteditem_p.h delete mode 100644 src/declarative/fx/qmlgraphicspainteditem_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspath.cpp delete mode 100644 src/declarative/fx/qmlgraphicspath_p.h delete mode 100644 src/declarative/fx/qmlgraphicspath_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspathview.cpp delete mode 100644 src/declarative/fx/qmlgraphicspathview_p.h delete mode 100644 src/declarative/fx/qmlgraphicspathview_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicspixmapcache.cpp delete mode 100644 src/declarative/fx/qmlgraphicspixmapcache_p.h delete mode 100644 src/declarative/fx/qmlgraphicspositioners.cpp delete mode 100644 src/declarative/fx/qmlgraphicspositioners_p.h delete mode 100644 src/declarative/fx/qmlgraphicspositioners_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrect.cpp delete mode 100644 src/declarative/fx/qmlgraphicsrect_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrect_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrepeater.cpp delete mode 100644 src/declarative/fx/qmlgraphicsrepeater_p.h delete mode 100644 src/declarative/fx/qmlgraphicsrepeater_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsscalegrid.cpp delete mode 100644 src/declarative/fx/qmlgraphicsscalegrid_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstext.cpp delete mode 100644 src/declarative/fx/qmlgraphicstext_p.h delete mode 100644 src/declarative/fx/qmlgraphicstext_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextedit.cpp delete mode 100644 src/declarative/fx/qmlgraphicstextedit_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextedit_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextinput.cpp delete mode 100644 src/declarative/fx/qmlgraphicstextinput_p.h delete mode 100644 src/declarative/fx/qmlgraphicstextinput_p_p.h delete mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel.cpp delete mode 100644 src/declarative/fx/qmlgraphicsvisualitemmodel_p.h delete mode 100644 src/declarative/fx/qmlgraphicswebview.cpp delete mode 100644 src/declarative/fx/qmlgraphicswebview_p.h create mode 100644 src/declarative/graphicsitems/graphicsitems.pri create mode 100644 src/declarative/graphicsitems/qmlgraphicsanchors.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsanchors_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsborderimage.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsborderimage_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsborderimage_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicseffects.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsevents.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsevents_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsflickable.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsflickable_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsflickable_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsflipable.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsflipable_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsfocuspanel.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsfocuspanel_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsfocusscope.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsfocusscope_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsgridview.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsgridview_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsimage.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsimage_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsimage_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsimagebase.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsimagebase_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsimagebase_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsitem.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsitem.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsitem_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicslayoutitem.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicslayoutitem_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicslistview.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicslistview_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsloader.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsloader_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsloader_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsmouseregion.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsmouseregion_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsmouseregion_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspainteditem.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicspainteditem_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspainteditem_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspath.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicspath_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspath_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspathview.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicspathview_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspathview_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspixmapcache.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicspixmapcache_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspositioners.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicspositioners_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicspositioners_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsrect.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsrect_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsrect_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsrepeater.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsrepeater_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsrepeater_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsscalegrid.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsscalegrid_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstext.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicstext_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstext_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstextedit.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicstextedit_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstextedit_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstextinput.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicstextinput_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicstextinput_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsvisualitemmodel.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsvisualitemmodel_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicswebview.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicswebview_p.h diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 942b74e..41fee96 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -17,7 +17,7 @@ include(../qbase.pri) #modules include(3rdparty/3rdparty.pri) include(util/util.pri) -include(fx/fx.pri) +include(graphicsitems/graphicsitems.pri) include(qml/qml.pri) include(extra/extra.pri) include(widgets/widgets.pri) diff --git a/src/declarative/fx/fx.pri b/src/declarative/fx/fx.pri deleted file mode 100644 index 20e1503..0000000 --- a/src/declarative/fx/fx.pri +++ /dev/null @@ -1,84 +0,0 @@ -HEADERS += \ - fx/qmlgraphicsanchors_p.h \ - fx/qmlgraphicsanchors_p_p.h \ - fx/qmlgraphicsevents_p_p.h \ - fx/qmlgraphicsflickable_p.h \ - fx/qmlgraphicsflickable_p_p.h \ - fx/qmlgraphicsflipable_p.h \ - fx/qmlgraphicsgridview_p.h \ - fx/qmlgraphicsimage_p.h \ - fx/qmlgraphicsimagebase_p.h \ - fx/qmlgraphicsborderimage_p.h \ - fx/qmlgraphicspainteditem_p.h \ - fx/qmlgraphicspainteditem_p_p.h \ - fx/qmlgraphicsimage_p_p.h \ - fx/qmlgraphicsborderimage_p_p.h \ - fx/qmlgraphicsimagebase_p_p.h \ - fx/qmlgraphicsitem.h \ - fx/qmlgraphicsitem_p.h \ - fx/qmlgraphicsfocuspanel_p.h \ - fx/qmlgraphicsfocusscope_p.h \ - fx/qmlgraphicspositioners_p.h \ - fx/qmlgraphicspositioners_p_p.h \ - fx/qmlgraphicsloader_p.h \ - fx/qmlgraphicsloader_p_p.h \ - fx/qmlgraphicsmouseregion_p.h \ - fx/qmlgraphicsmouseregion_p_p.h \ - fx/qmlgraphicspath_p.h \ - fx/qmlgraphicspath_p_p.h \ - fx/qmlgraphicspathview_p.h \ - fx/qmlgraphicspathview_p_p.h \ - fx/qmlgraphicsrect_p.h \ - fx/qmlgraphicsrect_p_p.h \ - fx/qmlgraphicsrepeater_p.h \ - fx/qmlgraphicsrepeater_p_p.h \ - fx/qmlgraphicsscalegrid_p_p.h \ - fx/qmlgraphicstextinput_p.h \ - fx/qmlgraphicstextinput_p_p.h \ - fx/qmlgraphicstextedit_p.h \ - fx/qmlgraphicstextedit_p_p.h \ - fx/qmlgraphicstext_p.h \ - fx/qmlgraphicstext_p_p.h \ - fx/qmlgraphicspixmapcache_p.h \ - fx/qmlgraphicsvisualitemmodel_p.h \ - fx/qmlgraphicslistview_p.h \ - fx/qmlgraphicsgraphicsobjectcontainer_p.h \ - fx/qmlgraphicslayoutitem_p.h \ - fx/qmlgraphicseffects.cpp - -SOURCES += \ - fx/qmlgraphicsanchors.cpp \ - fx/qmlgraphicsevents.cpp \ - fx/qmlgraphicsflickable.cpp \ - fx/qmlgraphicsflipable.cpp \ - fx/qmlgraphicsgridview.cpp \ - fx/qmlgraphicsimage.cpp \ - fx/qmlgraphicsborderimage.cpp \ - fx/qmlgraphicsimagebase.cpp \ - fx/qmlgraphicspainteditem.cpp \ - fx/qmlgraphicsitem.cpp \ - fx/qmlgraphicsfocuspanel.cpp \ - fx/qmlgraphicsfocusscope.cpp \ - fx/qmlgraphicspositioners.cpp \ - fx/qmlgraphicsloader.cpp \ - fx/qmlgraphicsmouseregion.cpp \ - fx/qmlgraphicspath.cpp \ - fx/qmlgraphicspathview.cpp \ - fx/qmlgraphicsrect.cpp \ - fx/qmlgraphicsrepeater.cpp \ - fx/qmlgraphicsscalegrid.cpp \ - fx/qmlgraphicstextinput.cpp \ - fx/qmlgraphicstext.cpp \ - fx/qmlgraphicstextedit.cpp \ - fx/qmlgraphicspixmapcache.cpp \ - fx/qmlgraphicsvisualitemmodel.cpp \ - fx/qmlgraphicslistview.cpp \ - fx/qmlgraphicsgraphicsobjectcontainer.cpp \ - fx/qmlgraphicslayoutitem.cpp \ - -contains(QT_CONFIG, webkit) { - QT+=webkit - SOURCES += fx/qmlgraphicswebview.cpp - HEADERS += fx/qmlgraphicswebview_p.h -} - diff --git a/src/declarative/fx/qmlgraphicsanchors.cpp b/src/declarative/fx/qmlgraphicsanchors.cpp deleted file mode 100644 index e1d2f43..0000000 --- a/src/declarative/fx/qmlgraphicsanchors.cpp +++ /dev/null @@ -1,962 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsanchors_p_p.h" -#include "qmlgraphicsitem.h" -#include "qmlgraphicsitem_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QmlGraphicsAnchors) - -//TODO: should we cache relationships, so we don't have to check each time (parent-child or sibling)? -//TODO: support non-parent, non-sibling (need to find lowest common ancestor) - -//### const item? -//local position -static qreal position(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) -{ - qreal ret = 0.0; - switch(anchorLine) { - case QmlGraphicsAnchorLine::Left: - ret = item->x(); - break; - case QmlGraphicsAnchorLine::Right: - ret = item->x() + item->width(); - break; - case QmlGraphicsAnchorLine::Top: - ret = item->y(); - break; - case QmlGraphicsAnchorLine::Bottom: - ret = item->y() + item->height(); - break; - case QmlGraphicsAnchorLine::HCenter: - ret = item->x() + item->width()/2; - break; - case QmlGraphicsAnchorLine::VCenter: - ret = item->y() + item->height()/2; - break; - case QmlGraphicsAnchorLine::Baseline: - ret = item->y() + item->baselineOffset(); - break; - default: - break; - } - - return ret; -} - -//position when origin is 0,0 -static qreal adjustedPosition(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) -{ - int ret = 0; - switch(anchorLine) { - case QmlGraphicsAnchorLine::Left: - ret = 0; - break; - case QmlGraphicsAnchorLine::Right: - ret = item->width(); - break; - case QmlGraphicsAnchorLine::Top: - ret = 0; - break; - case QmlGraphicsAnchorLine::Bottom: - ret = item->height(); - break; - case QmlGraphicsAnchorLine::HCenter: - ret = item->width()/2; - break; - case QmlGraphicsAnchorLine::VCenter: - ret = item->height()/2; - break; - case QmlGraphicsAnchorLine::Baseline: - ret = item->baselineOffset(); - break; - default: - break; - } - - return ret; -} - -/*! - \internal - \class QmlGraphicsAnchors - \ingroup group_layouts - \brief The QmlGraphicsAnchors class provides a way to lay out items relative to other items. - - \warning Currently, only anchoring to siblings or parent is supported. -*/ - -QmlGraphicsAnchors::QmlGraphicsAnchors(QObject *parent) - : QObject(*new QmlGraphicsAnchorsPrivate(), parent) -{ -} - -QmlGraphicsAnchors::~QmlGraphicsAnchors() -{ - Q_D(QmlGraphicsAnchors); - d->remDepend(d->fill); - d->remDepend(d->centerIn); - d->remDepend(d->left.item); - d->remDepend(d->right.item); - d->remDepend(d->top.item); - d->remDepend(d->bottom.item); - d->remDepend(d->vCenter.item); - d->remDepend(d->hCenter.item); - d->remDepend(d->baseline.item); -} - -void QmlGraphicsAnchorsPrivate::fillChanged() -{ - if (!fill || !isItemComplete()) - return; - - if (fill == item->parentItem()) { //child-parent - setItemPos(QPointF(leftMargin, topMargin)); - } else if (fill->parentItem() == item->parentItem()) { //siblings - setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin)); - } - setItemWidth(fill->width()-leftMargin-rightMargin); - setItemHeight(fill->height()-topMargin-bottomMargin); -} - -void QmlGraphicsAnchorsPrivate::centerInChanged() -{ - if (!centerIn || fill || !isItemComplete()) - return; - - if (centerIn == item->parentItem()) { - QPointF p((item->parentItem()->width() - item->width()) / 2., - (item->parentItem()->height() - item->height()) / 2.); - setItemPos(p); - - } else if (centerIn->parentItem() == item->parentItem()) { - - QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2., - centerIn->y() + (centerIn->height() - item->height()) / 2.); - setItemPos(p); - } -} - -void QmlGraphicsAnchorsPrivate::clearItem(QmlGraphicsItem *item) -{ - if (!item) - return; - if (fill == item) - fill = 0; - if (centerIn == item) - centerIn = 0; - if (left.item == item) { - left.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasLeftAnchor; - } - if (right.item == item) { - right.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasRightAnchor; - } - if (top.item == item) { - top.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasTopAnchor; - } - if (bottom.item == item) { - bottom.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasBottomAnchor; - } - if (vCenter.item == item) { - vCenter.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasVCenterAnchor; - } - if (hCenter.item == item) { - hCenter.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasHCenterAnchor; - } - if (baseline.item == item) { - baseline.item = 0; - usedAnchors &= ~QmlGraphicsAnchors::HasBaselineAnchor; - } -} - -void QmlGraphicsAnchorsPrivate::addDepend(QmlGraphicsItem *item) -{ - Q_Q(QmlGraphicsAnchors); - if (!item) - return; - QmlGraphicsItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); - p->dependantAnchors.append(q); -} - -void QmlGraphicsAnchorsPrivate::remDepend(QmlGraphicsItem *item) -{ - Q_Q(QmlGraphicsAnchors); - if (!item) - return; - QmlGraphicsItemPrivate *p = - static_cast(QGraphicsItemPrivate::get(item)); - p->dependantAnchors.removeOne(q); -} - -bool QmlGraphicsAnchorsPrivate::isItemComplete() const -{ - return componentComplete; -} - -void QmlGraphicsAnchors::classBegin() -{ - Q_D(QmlGraphicsAnchors); - d->componentComplete = false; -} - -void QmlGraphicsAnchors::componentComplete() -{ - Q_D(QmlGraphicsAnchors); - d->componentComplete = true; -} - -void QmlGraphicsAnchorsPrivate::setItemHeight(qreal v) -{ - updatingMe = true; - item->setHeight(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemWidth(qreal v) -{ - updatingMe = true; - item->setWidth(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemX(qreal v) -{ - updatingMe = true; - item->setX(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemY(qreal v) -{ - updatingMe = true; - item->setY(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::setItemPos(const QPointF &v) -{ - updatingMe = true; - item->setPos(v); - updatingMe = false; -} - -void QmlGraphicsAnchorsPrivate::updateMe() -{ - if (updatingMe) { - updatingMe = false; - return; - } - - fillChanged(); - centerInChanged(); - updateHorizontalAnchors(); - updateVerticalAnchors(); -} - -void QmlGraphicsAnchorsPrivate::updateOnComplete() -{ - fillChanged(); - centerInChanged(); - updateHorizontalAnchors(); - updateVerticalAnchors(); -} - -void QmlGraphicsAnchorsPrivate::update(QmlGraphicsItem *, const QRectF &newG, const QRectF &oldG) -{ - fillChanged(); - centerInChanged(); - - if (newG.x() != oldG.x() || newG.width() != oldG.width()) - updateHorizontalAnchors(); - if (newG.y() != oldG.y() || newG.height() != oldG.height()) - updateVerticalAnchors(); -} - -QmlGraphicsItem *QmlGraphicsAnchors::fill() const -{ - Q_D(const QmlGraphicsAnchors); - return d->fill; -} - -void QmlGraphicsAnchors::setFill(QmlGraphicsItem *f) -{ - Q_D(QmlGraphicsAnchors); - if (!f) { - d->remDepend(d->fill); - d->fill = f; - return; - } - if (f != d->item->parentItem() && f->parentItem() != d->item->parentItem()){ - qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); - return; - } - d->remDepend(d->fill); - d->fill = f; - d->addDepend(d->fill); - - d->fillChanged(); -} - -QmlGraphicsItem *QmlGraphicsAnchors::centerIn() const -{ - Q_D(const QmlGraphicsAnchors); - return d->centerIn; -} - -void QmlGraphicsAnchors::setCenterIn(QmlGraphicsItem* c) -{ - Q_D(QmlGraphicsAnchors); - if (!c) { - d->remDepend(d->centerIn); - d->centerIn = c; - return; - } - if (c != d->item->parentItem() && c->parentItem() != d->item->parentItem()){ - qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); - return; - } - - d->remDepend(d->centerIn); - d->centerIn = c; - d->addDepend(d->centerIn); - - d->centerInChanged(); -} - -bool QmlGraphicsAnchorsPrivate::calcStretch(const QmlGraphicsAnchorLine &edge1, - const QmlGraphicsAnchorLine &edge2, - int offset1, - int offset2, - QmlGraphicsAnchorLine::AnchorLine line, - int &stretch) -{ - bool edge1IsParent = (edge1.item == item->parentItem()); - bool edge2IsParent = (edge2.item == item->parentItem()); - bool edge1IsSibling = (edge1.item->parentItem() == item->parentItem()); - bool edge2IsSibling = (edge2.item->parentItem() == item->parentItem()); - - bool invalid = false; - if ((edge2IsParent && edge1IsParent) || (edge2IsSibling && edge1IsSibling)) { - stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(edge1.item, edge1.anchorLine) + offset1); - } else if (edge2IsParent && edge1IsSibling) { - stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(item->parentItem(), line) - + (int)position(edge1.item, edge1.anchorLine) + offset1); - } else if (edge2IsSibling && edge1IsParent) { - stretch = ((int)position(item->parentItem(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(edge1.item, edge1.anchorLine) + offset1); - } else - invalid = true; - - return invalid; -} - -void QmlGraphicsAnchorsPrivate::updateVerticalAnchors() -{ - if (fill || centerIn || !isItemComplete()) - return; - - if (updatingVerticalAnchor < 2) { - ++updatingVerticalAnchor; - if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor) { - //Handle stretching - bool invalid = true; - int height = 0; - if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { - invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QmlGraphicsAnchorLine::Top, height); - } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QmlGraphicsAnchorLine::Top, height); - height *= 2; - } - if (!invalid) - setItemHeight(height); - - //Handle top - if (top.item == item->parentItem()) { - setItemY(adjustedPosition(top.item, top.anchorLine) + topMargin); - } else if (top.item->parentItem() == item->parentItem()) { - setItemY(position(top.item, top.anchorLine) + topMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { - //Handle stretching (top + bottom case is handled above) - if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - int height = 0; - bool invalid = calcStretch(vCenter, bottom, vCenterOffset, -bottomMargin, - QmlGraphicsAnchorLine::Top, height); - if (!invalid) - setItemHeight(height*2); - } - - //Handle bottom - if (bottom.item == item->parentItem()) { - setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); - } else if (bottom.item->parentItem() == item->parentItem()) { - setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - //(stetching handled above) - - //Handle vCenter - if (vCenter.item == item->parentItem()) { - setItemY(adjustedPosition(vCenter.item, vCenter.anchorLine) - - item->height()/2 + vCenterOffset); - } else if (vCenter.item->parentItem() == item->parentItem()) { - setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor) { - //Handle baseline - if (baseline.item->parentItem() == item->parentItem()) { - setItemY(position(baseline.item, baseline.anchorLine) - item->baselineOffset() + baselineOffset); - } - } - --updatingVerticalAnchor; - } else { - // ### Make this certain :) - qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on vertical anchor."), item); - } -} - -void QmlGraphicsAnchorsPrivate::updateHorizontalAnchors() -{ - if (fill || centerIn || !isItemComplete()) - return; - - if (updatingHorizontalAnchor < 2) { - ++updatingHorizontalAnchor; - - if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor) { - //Handle stretching - bool invalid = true; - int width = 0; - if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { - invalid = calcStretch(left, right, leftMargin, -rightMargin, QmlGraphicsAnchorLine::Left, width); - } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QmlGraphicsAnchorLine::Left, width); - width *= 2; - } - if (!invalid) - setItemWidth(width); - - //Handle left - if (left.item == item->parentItem()) { - setItemX(adjustedPosition(left.item, left.anchorLine) + leftMargin); - } else if (left.item->parentItem() == item->parentItem()) { - setItemX(position(left.item, left.anchorLine) + leftMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { - //Handle stretching (left + right case is handled in updateLeftAnchor) - if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - int width = 0; - bool invalid = calcStretch(hCenter, right, hCenterOffset, -rightMargin, - QmlGraphicsAnchorLine::Left, width); - if (!invalid) - setItemWidth(width*2); - } - - //Handle right - if (right.item == item->parentItem()) { - setItemX(adjustedPosition(right.item, right.anchorLine) - item->width() - rightMargin); - } else if (right.item->parentItem() == item->parentItem()) { - setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); - } - } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - //Handle hCenter - if (hCenter.item == item->parentItem()) { - setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); - } else if (hCenter.item->parentItem() == item->parentItem()) { - setItemX(position(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); - } - } - - --updatingHorizontalAnchor; - } else { - // ### Make this certain :) - qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); - } -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::top() const -{ - Q_D(const QmlGraphicsAnchors); - return d->top; -} - -void QmlGraphicsAnchors::setTop(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasTopAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasTopAnchor; - return; - } - - d->remDepend(d->top.item); - d->top = edge; - d->addDepend(d->top.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetTop() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasTopAnchor; - d->remDepend(d->top.item); - d->top = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::bottom() const -{ - Q_D(const QmlGraphicsAnchors); - return d->bottom; -} - -void QmlGraphicsAnchors::setBottom(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasBottomAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasBottomAnchor; - return; - } - - d->remDepend(d->bottom.item); - d->bottom = edge; - d->addDepend(d->bottom.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetBottom() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasBottomAnchor; - d->remDepend(d->bottom.item); - d->bottom = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::verticalCenter() const -{ - Q_D(const QmlGraphicsAnchors); - return d->vCenter; -} - -void QmlGraphicsAnchors::setVerticalCenter(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasVCenterAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasVCenterAnchor; - return; - } - - d->remDepend(d->vCenter.item); - d->vCenter = edge; - d->addDepend(d->vCenter.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetVerticalCenter() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasVCenterAnchor; - d->remDepend(d->vCenter.item); - d->vCenter = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::baseline() const -{ - Q_D(const QmlGraphicsAnchors); - return d->baseline; -} - -void QmlGraphicsAnchors::setBaseline(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkVAnchorValid(edge)) - return; - - d->usedAnchors |= HasBaselineAnchor; - - if (!d->checkVValid()) { - d->usedAnchors &= ~HasBaselineAnchor; - return; - } - - d->remDepend(d->baseline.item); - d->baseline = edge; - d->addDepend(d->baseline.item); - d->updateVerticalAnchors(); -} - -void QmlGraphicsAnchors::resetBaseline() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasBaselineAnchor; - d->remDepend(d->baseline.item); - d->baseline = QmlGraphicsAnchorLine(); - d->updateVerticalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::left() const -{ - Q_D(const QmlGraphicsAnchors); - return d->left; -} - -void QmlGraphicsAnchors::setLeft(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasLeftAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasLeftAnchor; - return; - } - - d->remDepend(d->left.item); - d->left = edge; - d->addDepend(d->left.item); - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetLeft() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasLeftAnchor; - d->remDepend(d->left.item); - d->left = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::right() const -{ - Q_D(const QmlGraphicsAnchors); - return d->right; -} - -void QmlGraphicsAnchors::setRight(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasRightAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasRightAnchor; - return; - } - - d->remDepend(d->right.item); - d->right = edge; - d->addDepend(d->right.item); - - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetRight() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasRightAnchor; - d->remDepend(d->right.item); - d->right = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -QmlGraphicsAnchorLine QmlGraphicsAnchors::horizontalCenter() const -{ - Q_D(const QmlGraphicsAnchors); - return d->hCenter; -} - -void QmlGraphicsAnchors::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) -{ - Q_D(QmlGraphicsAnchors); - if (!d->checkHAnchorValid(edge)) - return; - - d->usedAnchors |= HasHCenterAnchor; - - if (!d->checkHValid()) { - d->usedAnchors &= ~HasHCenterAnchor; - return; - } - - d->remDepend(d->hCenter.item); - d->hCenter = edge; - d->addDepend(d->hCenter.item); - d->updateHorizontalAnchors(); -} - -void QmlGraphicsAnchors::resetHorizontalCenter() -{ - Q_D(QmlGraphicsAnchors); - d->usedAnchors &= ~HasHCenterAnchor; - d->remDepend(d->hCenter.item); - d->hCenter = QmlGraphicsAnchorLine(); - d->updateHorizontalAnchors(); -} - -qreal QmlGraphicsAnchors::leftMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->leftMargin; -} - -void QmlGraphicsAnchors::setLeftMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->leftMargin == offset) - return; - d->leftMargin = offset; - d->updateHorizontalAnchors(); - emit leftMarginChanged(); -} - -qreal QmlGraphicsAnchors::rightMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->rightMargin; -} - -void QmlGraphicsAnchors::setRightMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->rightMargin == offset) - return; - d->rightMargin = offset; - d->updateHorizontalAnchors(); - emit rightMarginChanged(); -} - -qreal QmlGraphicsAnchors::horizontalCenterOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->hCenterOffset; -} - -void QmlGraphicsAnchors::setHorizontalCenterOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->hCenterOffset == offset) - return; - d->hCenterOffset = offset; - d->updateHorizontalAnchors(); - emit horizontalCenterOffsetChanged(); -} - -qreal QmlGraphicsAnchors::topMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->topMargin; -} - -void QmlGraphicsAnchors::setTopMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->topMargin == offset) - return; - d->topMargin = offset; - d->updateVerticalAnchors(); - emit topMarginChanged(); -} - -qreal QmlGraphicsAnchors::bottomMargin() const -{ - Q_D(const QmlGraphicsAnchors); - return d->bottomMargin; -} - -void QmlGraphicsAnchors::setBottomMargin(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->bottomMargin == offset) - return; - d->bottomMargin = offset; - d->updateVerticalAnchors(); - emit bottomMarginChanged(); -} - -qreal QmlGraphicsAnchors::verticalCenterOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->vCenterOffset; -} - -void QmlGraphicsAnchors::setVerticalCenterOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->vCenterOffset == offset) - return; - d->vCenterOffset = offset; - d->updateVerticalAnchors(); - emit verticalCenterOffsetChanged(); -} - -qreal QmlGraphicsAnchors::baselineOffset() const -{ - Q_D(const QmlGraphicsAnchors); - return d->baselineOffset; -} - -void QmlGraphicsAnchors::setBaselineOffset(qreal offset) -{ - Q_D(QmlGraphicsAnchors); - if (d->baselineOffset == offset) - return; - d->baselineOffset = offset; - d->updateVerticalAnchors(); - emit baselineOffsetChanged(); -} - -QmlGraphicsAnchors::UsedAnchors QmlGraphicsAnchors::usedAnchors() const -{ - Q_D(const QmlGraphicsAnchors); - return d->usedAnchors; -} - -void QmlGraphicsAnchors::setItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsAnchors); - d->item = item; -} - -bool QmlGraphicsAnchorsPrivate::checkHValid() const -{ - if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor && - usedAnchors & QmlGraphicsAnchors::HasRightAnchor && - usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { - qmlInfo(QmlGraphicsAnchors::tr("Can't specify left, right, and hcenter anchors."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkHAnchorValid(QmlGraphicsAnchorLine anchor) const -{ - if (!anchor.item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); - return false; - } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Vertical_Mask) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); - return false; - } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); - return false; - } else if (anchor.item == item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkVValid() const -{ - if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor && - usedAnchors & QmlGraphicsAnchors::HasBottomAnchor && - usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { - qmlInfo(QmlGraphicsAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); - return false; - } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor && - (usedAnchors & QmlGraphicsAnchors::HasTopAnchor || - usedAnchors & QmlGraphicsAnchors::HasBottomAnchor || - usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor)) { - qmlInfo(QmlGraphicsAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); - return false; - } - - return true; -} - -bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) const -{ - if (!anchor.item) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); - return false; - } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Horizontal_Mask) { - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); - return false; - } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); - return false; - } else if (anchor.item == item){ - qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); - return false; - } - - return true; -} - -#include "moc_qmlgraphicsanchors_p.cpp" - -QT_END_NAMESPACE - diff --git a/src/declarative/fx/qmlgraphicsanchors_p.h b/src/declarative/fx/qmlgraphicsanchors_p.h deleted file mode 100644 index f6e9e1a..0000000 --- a/src/declarative/fx/qmlgraphicsanchors_p.h +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSANCHORS_H -#define QMLGRAPHICSANCHORS_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsAnchorsPrivate; -class QmlGraphicsAnchorLine; -class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) - Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) - Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) - Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) - Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) - Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) - Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) - Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) - Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) - Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) - -public: - QmlGraphicsAnchors(QObject *parent=0); - virtual ~QmlGraphicsAnchors(); - - enum UsedAnchor { - HasLeftAnchor = 0x01, - HasRightAnchor = 0x02, - HasTopAnchor = 0x04, - HasBottomAnchor = 0x08, - HasHCenterAnchor = 0x10, - HasVCenterAnchor = 0x20, - HasBaselineAnchor = 0x40, - Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, - Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor - }; - Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) - - QmlGraphicsAnchorLine left() const; - void setLeft(const QmlGraphicsAnchorLine &edge); - void resetLeft(); - - QmlGraphicsAnchorLine right() const; - void setRight(const QmlGraphicsAnchorLine &edge); - void resetRight(); - - QmlGraphicsAnchorLine horizontalCenter() const; - void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); - void resetHorizontalCenter(); - - QmlGraphicsAnchorLine top() const; - void setTop(const QmlGraphicsAnchorLine &edge); - void resetTop(); - - QmlGraphicsAnchorLine bottom() const; - void setBottom(const QmlGraphicsAnchorLine &edge); - void resetBottom(); - - QmlGraphicsAnchorLine verticalCenter() const; - void setVerticalCenter(const QmlGraphicsAnchorLine &edge); - void resetVerticalCenter(); - - QmlGraphicsAnchorLine baseline() const; - void setBaseline(const QmlGraphicsAnchorLine &edge); - void resetBaseline(); - - qreal leftMargin() const; - void setLeftMargin(qreal); - - qreal rightMargin() const; - void setRightMargin(qreal); - - qreal horizontalCenterOffset() const; - void setHorizontalCenterOffset(qreal); - - qreal topMargin() const; - void setTopMargin(qreal); - - qreal bottomMargin() const; - void setBottomMargin(qreal); - - qreal verticalCenterOffset() const; - void setVerticalCenterOffset(qreal); - - qreal baselineOffset() const; - void setBaselineOffset(qreal); - - QmlGraphicsItem *fill() const; - void setFill(QmlGraphicsItem *); - - QmlGraphicsItem *centerIn() const; - void setCenterIn(QmlGraphicsItem *); - - UsedAnchors usedAnchors() const; - - void setItem(QmlGraphicsItem *item); - - void classBegin(); - void componentComplete(); - -Q_SIGNALS: - void leftMarginChanged(); - void rightMarginChanged(); - void topMarginChanged(); - void bottomMarginChanged(); - void verticalCenterOffsetChanged(); - void horizontalCenterOffsetChanged(); - void baselineOffsetChanged(); - -private: - friend class QmlGraphicsItem; - Q_DISABLE_COPY(QmlGraphicsAnchors) - Q_DECLARE_PRIVATE(QmlGraphicsAnchors) -}; -Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnchors) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsanchors_p_p.h b/src/declarative/fx/qmlgraphicsanchors_p_p.h deleted file mode 100644 index 5f8b2c1..0000000 --- a/src/declarative/fx/qmlgraphicsanchors_p_p.h +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSANCHORS_P_H -#define QMLGRAPHICSANCHORS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsanchors_p.h" -#include "private/qobject_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsAnchorLine -{ -public: - QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) - { - } - - enum AnchorLine { - Invalid = 0x0, - Left = 0x01, - Right = 0x02, - Top = 0x04, - Bottom = 0x08, - HCenter = 0x10, - VCenter = 0x20, - Baseline = 0x40, - Horizontal_Mask = Left | Right | HCenter, - Vertical_Mask = Top | Bottom | VCenter | Baseline - }; - - QmlGraphicsItem *item; - AnchorLine anchorLine; -}; -Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) - -class QmlGraphicsAnchorsPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsAnchors) -public: - QmlGraphicsAnchorsPrivate() - : updatingMe(false), updatingHorizontalAnchor(0), - updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), - centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), - bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), - componentComplete(true) - { - } - - void init() - { - } - - void clearItem(QmlGraphicsItem *); - - void addDepend(QmlGraphicsItem *); - void remDepend(QmlGraphicsItem *); - bool isItemComplete() const; - - bool updatingMe; - int updatingHorizontalAnchor; - int updatingVerticalAnchor; - - void setItemHeight(qreal); - void setItemWidth(qreal); - void setItemX(qreal); - void setItemY(qreal); - void setItemPos(const QPointF &); - - void updateOnComplete(); - void updateMe(); - void update(QmlGraphicsItem *, const QRectF &, const QRectF &); - - bool checkHValid() const; - bool checkVValid() const; - bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; - bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); - - void updateHorizontalAnchors(); - void updateVerticalAnchors(); - void fillChanged(); - void centerInChanged(); - - QmlGraphicsItem *item; - QmlGraphicsAnchors::UsedAnchors usedAnchors; - - QmlGraphicsItem *fill; - QmlGraphicsItem *centerIn; - - QmlGraphicsAnchorLine left; - QmlGraphicsAnchorLine right; - QmlGraphicsAnchorLine top; - QmlGraphicsAnchorLine bottom; - QmlGraphicsAnchorLine vCenter; - QmlGraphicsAnchorLine hCenter; - QmlGraphicsAnchorLine baseline; - - qreal leftMargin; - qreal rightMargin; - qreal topMargin; - qreal bottomMargin; - qreal vCenterOffset; - qreal hCenterOffset; - qreal baselineOffset; - - bool componentComplete; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicsborderimage.cpp b/src/declarative/fx/qmlgraphicsborderimage.cpp deleted file mode 100644 index ed39a2b..0000000 --- a/src/declarative/fx/qmlgraphicsborderimage.cpp +++ /dev/null @@ -1,411 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsborderimage_p.h" -#include "qmlgraphicsborderimage_p_p.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QmlGraphicsBorderImage) - -/*! - \qmlclass BorderImage QmlGraphicsBorderImage - \brief The BorderImage element provides an image that can be used as a border. - \inherits Item - - \snippet examples/declarative/border-image/example.qml 0 - - \image BorderImage.png - - \sa examples/declarative/border-image - */ - -/*! - \internal - \class QmlGraphicsBorderImage BorderImage - \brief The QmlGraphicsBorderImage class provides an image item that you can add to a QmlView. -*/ - -QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsItem *parent) - : QmlGraphicsImageBase(*(new QmlGraphicsBorderImagePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsBorderImage::~QmlGraphicsBorderImage() -{ - Q_D(QmlGraphicsBorderImage); - if (d->sciReply) - d->sciReply->deleteLater(); - if (d->sciPendingPixmapCache) - QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); -} -/*! - \qmlproperty enum BorderImage::status - - This property holds the status of image loading. It can be one of: - \list - \o Null - no image has been set - \o Ready - the image has been loaded - \o Loading - the image is currently being loaded - \o Error - an error occurred while loading the image - \endlist - - \sa progress -*/ - -/*! - \qmlproperty real BorderImage::progress - - This property holds the progress of image loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ - -/*! - \qmlproperty bool BorderImage::smooth - - Set this property if you want the image to be smoothly filtered when scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the image is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the image is stationary on - the screen. A common pattern when animating an image is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -/*! - \qmlproperty url BorderImage::source - - BorderImage can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. - - It can also handle .sci files, which are a Qml-specific format. A .sci file uses a simple text-based format that specifies - the borders, the image file and the tile rules. - - The following .sci file sets the borders to 10 on each side for the image \c picture.png: - \qml - border.left: 10 - border.top: 10 - border.bottom: 10 - border.right: 10 - source: picture.png - \endqml - - The URL may be absolute, or relative to the URL of the component. -*/ - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - - -void QmlGraphicsBorderImage::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsBorderImage); - //equality is fairly expensive, so we bypass for simple, common case - if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) - return; - - if (d->sciReply) { - d->sciReply->deleteLater(); - d->sciReply = 0; - } - - if (d->pendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->url, this); - d->pendingPixmapCache = false; - } - if (d->sciPendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); - d->sciPendingPixmapCache = false; - } - - d->url = url; - d->sciurl = QUrl(); - if (d->progress != 0.0) { - d->progress = 0.0; - emit progressChanged(d->progress); - } - - if (url.isEmpty()) { - d->pix = QPixmap(); - d->status = Null; - d->progress = 1.0; - setImplicitWidth(0); - setImplicitHeight(0); - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } else { - d->status = Loading; - if (d->url.path().endsWith(QLatin1String(".sci"))) { -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(d->url); - if (!lf.isEmpty()) { - QFile file(lf); - file.open(QIODevice::ReadOnly); - setGridScaledImage(QmlGraphicsGridScaledImage(&file)); - } else -#endif - { - QNetworkRequest req(d->url); - d->sciReply = qmlEngine(this)->networkAccessManager()->get(req); - QObject::connect(d->sciReply, SIGNAL(finished()), - this, SLOT(sciRequestFinished())); - } - } else { - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); - if (reply) { - d->pendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } - } - - emit statusChanged(d->status); -} - -/*! - \qmlproperty int BorderImage::border.left - \qmlproperty int BorderImage::border.right - \qmlproperty int BorderImage::border.top - \qmlproperty int BorderImage::border.bottom - - \target ImagexmlpropertiesscaleGrid - - The 4 border lines (2 horizontal and 2 vertical) break an image into 9 sections, as shown below: - - \image declarative-scalegrid.png - - When the image is scaled: - \list - \i the corners (sections 1, 3, 7, and 9) are not scaled at all - \i the middle (section 5) is scaled according to BorderImage::horizontalTileMode and BorderImage::verticalTileMode - \i sections 2 and 8 are scaled according to BorderImage::horizontalTileMode - \i sections 4 and 6 are scaled according to BorderImage::verticalTileMode - \endlist - - Each border line (left, right, top, and bottom) specifies an offset from the respective side. For example, \c{border.bottom: 10} sets the bottom line 10 pixels up from the bottom of the image. - - The border lines can also be specified using a - \l {BorderImage::source}{.sci file}. -*/ - -QmlGraphicsScaleGrid *QmlGraphicsBorderImage::border() -{ - Q_D(QmlGraphicsBorderImage); - return d->getScaleGrid(); -} - -/*! - \qmlproperty TileMode BorderImage::horizontalTileMode - \qmlproperty TileMode BorderImage::verticalTileMode - - This property describes how to repeat or stretch the middle parts of the border image. - - \list - \o Stretch - Scale the image to fit to the available area. - \o Repeat - Tile the image until there is no more space. May crop the last image. - \o Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. - \endlist -*/ -QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::horizontalTileMode() const -{ - Q_D(const QmlGraphicsBorderImage); - return d->horizontalTileMode; -} - -void QmlGraphicsBorderImage::setHorizontalTileMode(TileMode t) -{ - Q_D(QmlGraphicsBorderImage); - if (t != d->horizontalTileMode) { - d->horizontalTileMode = t; - emit horizontalTileModeChanged(); - update(); - } -} - -QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::verticalTileMode() const -{ - Q_D(const QmlGraphicsBorderImage); - return d->verticalTileMode; -} - -void QmlGraphicsBorderImage::setVerticalTileMode(TileMode t) -{ - Q_D(QmlGraphicsBorderImage); - if (t != d->verticalTileMode) { - d->verticalTileMode = t; - emit verticalTileModeChanged(); - update(); - } -} - -void QmlGraphicsBorderImage::setGridScaledImage(const QmlGraphicsGridScaledImage& sci) -{ - Q_D(QmlGraphicsBorderImage); - if (!sci.isValid()) { - d->status = Error; - emit statusChanged(d->status); - } else { - QmlGraphicsScaleGrid *sg = border(); - sg->setTop(sci.gridTop()); - sg->setBottom(sci.gridBottom()); - sg->setLeft(sci.gridLeft()); - sg->setRight(sci.gridRight()); - d->horizontalTileMode = sci.horizontalTileRule(); - d->verticalTileMode = sci.verticalTileRule(); - - d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl())); - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); - if (reply) { - d->sciPendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } -} - -void QmlGraphicsBorderImage::requestFinished() -{ - Q_D(QmlGraphicsBorderImage); - - if (d->url.path().endsWith(QLatin1String(".sci"))) { - d->sciPendingPixmapCache = false; - QmlGraphicsPixmapCache::find(d->sciurl, &d->pix); - } else { - d->pendingPixmapCache = false; - if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) - d->status = Error; - } - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); -} - -void QmlGraphicsBorderImage::sciRequestFinished() -{ - Q_D(QmlGraphicsBorderImage); - if (d->sciReply->error() != QNetworkReply::NoError) { - d->status = Error; - d->sciReply->deleteLater(); - d->sciReply = 0; - emit statusChanged(d->status); - } else { - QmlGraphicsGridScaledImage sci(d->sciReply); - d->sciReply->deleteLater(); - d->sciReply = 0; - setGridScaledImage(sci); - } -} - -void QmlGraphicsBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsBorderImage); - if (d->pix.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - QMargins margins(border()->top(), border()->left(), border()->bottom(), border()->right()); - QTileRules rules((Qt::TileRule)d->horizontalTileMode, (Qt::TileRule)d->verticalTileMode); - qDrawBorderPixmap(p, QRect(0, 0, (int)d->width, (int)d->height), margins, d->pix, d->pix.rect(), margins, rules); - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImageBase(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsborderimage_p.h b/src/declarative/fx/qmlgraphicsborderimage_p.h deleted file mode 100644 index 04850e6..0000000 --- a/src/declarative/fx/qmlgraphicsborderimage_p.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSBORDERIMAGE_H -#define QMLGRAPHICSBORDERIMAGE_H - -#include -#include "qmlgraphicsimagebase_p.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsScaleGrid; -class QmlGraphicsGridScaledImage; -class QmlGraphicsBorderImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(TileMode) - - Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) - Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) - Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) - -public: - QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsBorderImage(); - - QmlGraphicsScaleGrid *border(); - - enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; - - TileMode horizontalTileMode() const; - void setHorizontalTileMode(TileMode); - - TileMode verticalTileMode() const; - void setVerticalTileMode(TileMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - void setSource(const QUrl &url); - -Q_SIGNALS: - void horizontalTileModeChanged(); - void verticalTileModeChanged(); - -protected: - QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); - -private: - void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); - -private Q_SLOTS: - void requestFinished(); - void sciRequestFinished(); - -private: - Q_DISABLE_COPY(QmlGraphicsBorderImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsBorderImage) -QT_END_HEADER - -#endif // QMLGRAPHICSBORDERIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsborderimage_p_p.h b/src/declarative/fx/qmlgraphicsborderimage_p_p.h deleted file mode 100644 index 51ebb02..0000000 --- a/src/declarative/fx/qmlgraphicsborderimage_p_p.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSBORDERIMAGE_P_H -#define QMLGRAPHICSBORDERIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsimagebase_p_p.h" -#include "qmlgraphicsscalegrid_p_p.h" - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) - -public: - QmlGraphicsBorderImagePrivate() - : border(0), sciReply(0), - sciPendingPixmapCache(false), - horizontalTileMode(QmlGraphicsBorderImage::Stretch), - verticalTileMode(QmlGraphicsBorderImage::Stretch) - { - } - - ~QmlGraphicsBorderImagePrivate() - { - } - - QmlGraphicsScaleGrid *getScaleGrid() - { - Q_Q(QmlGraphicsBorderImage); - if (!border) - border = new QmlGraphicsScaleGrid(q); - return border; - } - - QmlGraphicsScaleGrid *border; - QUrl sciurl; - QNetworkReply *sciReply; - bool sciPendingPixmapCache; - QmlGraphicsBorderImage::TileMode horizontalTileMode; - QmlGraphicsBorderImage::TileMode verticalTileMode; -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSBORDERIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicseffects.cpp b/src/declarative/fx/qmlgraphicseffects.cpp deleted file mode 100644 index c611eea..0000000 --- a/src/declarative/fx/qmlgraphicseffects.cpp +++ /dev/null @@ -1,277 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ -#include -#include - -QML_DECLARE_TYPE(QGraphicsEffect) -QML_DEFINE_NOCREATE_TYPE(QGraphicsEffect) - -QML_DECLARE_TYPE(QGraphicsBlurEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Blur,QGraphicsBlurEffect) - -/*! - \qmlclass Blur QGraphicsBlurEffect - \brief The Blur object provides a blur effect. - - A blur effect blurs the source item. This effect is useful for reducing details, - such as when the source loses focus and you want to draw attention to other - elements. The level of detail can be modified using the blurRadius property. - Use blurHint to choose the quality or performance blur hints. - - By default, the blur radius is 5 pixels. - - \img graphicseffect-blur.png -*/ - -/*! - \qmlproperty real Blur::blurRadius - - blurRadius controls how blurry an item will appear. - Using a smaller radius results in a sharper appearance, whereas a bigger - radius results in a more blurred appearance. - - By default, the blur radius is 5 pixels. -*/ -/*! - \qmlproperty enumeration Blur::blurHint - - Use the Qt.PerformanceHint hint to say that you want a faster blur, - and the Qt.QualityHint hint to say that you prefer a higher quality blur. - - When animating the blur radius it's recommended to use Qt.PerformanceHint. - - By default, the blur hint is Qt.PerformanceHint. -*/ - -QML_DECLARE_TYPE(QGraphicsGrayscaleEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grayscale,QGraphicsGrayscaleEffect) - -/*! - \qmlclass Grayscale QGraphicsGrayscaleEffect - \brief The Grayscale object provides a grayscale effect. - - A grayscale effect renders the source item in shades of gray. - - \img graphicseffect-grayscale.png -*/ - -/*! - \qmlproperty real Grayscale::strength - - To what extent the source item is "grayed". A strength of 0.0 is equal to no effect, - while 1.0 means full grayscale. By default, the strength is 1.0. -*/ - -QML_DECLARE_TYPE(QGraphicsColorizeEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Colorize,QGraphicsColorizeEffect) - -/*! - \qmlclass Colorize QGraphicsColorizeEffect - \brief The Colorize object provides a colorize effect. - - A colorize effect renders the source item with a tint of its color. - - By default, the color is light blue. - - \img graphicseffect-colorize.png -*/ - -/*! - \qmlproperty color Colorize::color - The color of the effect. - - By default, the color is light blue. -*/ - -/*! - \qmlproperty real Colorize::strength - - To what extent the source item is "colored". A strength of 0.0 is equal to no effect, - while 1.0 means full colorization. By default, the strength is 1.0. -*/ - -QML_DECLARE_TYPE(QGraphicsPixelizeEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pixelize,QGraphicsPixelizeEffect) - -/*! - \qmlclass Pixelize QGraphicsPixelizeEffect - \brief The Pixelize object provides a pixelize effect. - - A pixelize effect renders the source item in lower resolution. The resolution - can be modified using the pixelSize property. - - By default, the pixel size is 3. - - \img graphicseffect-pixelize.png -*/ - -/*! - \qmlproperty int Pixelize::pixelSize - The size of a pixel in the effect. - - Setting the pixel size to 2 means two pixels in the source item will be used to - represent one pixel in the output. Using a bigger size results in lower resolution. - - By default, the pixel size is 3. -*/ - - -QML_DECLARE_TYPE(QGraphicsDropShadowEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,DropShadow,QGraphicsDropShadowEffect) - -/*! - \qmlclass DropShadow QGraphicsDropShadowEffect - \brief The DropShadow object provides a drop shadow effect. - - A drop shadow effect renders the source item with a drop shadow. The color of - the drop shadow can be modified using the color property. The drop - shadow offset can be modified using the xOffset and yOffset properties and the blur - radius of the drop shadow can be changed with the blurRadius property. - - By default, the drop shadow is a semi-transparent dark gray shadow, - blurred with a radius of 1 at an offset of 8 pixels towards the lower right. - - \img graphicseffect-drop-shadow.png -*/ - -/*! - \qmlproperty real DropShadow::xOffset - \qmlproperty real DropShadow::yOffset - The shadow offset in pixels. - - By default, xOffset and yOffset are 8 pixels. -*/ - -/*! - \qmlproperty real DropShadow::blurRadius - The blur radius in pixels of the drop shadow. - - Using a smaller radius results in a sharper shadow, whereas using a bigger - radius results in a more blurred shadow. - - By default, the blur radius is 1 pixel. -*/ - -/*! - \qmlproperty color DropShadow::color - The color of the drop shadow. - - By default, the drop color is a semi-transparent dark gray. -*/ - -QML_DECLARE_TYPE(QGraphicsOpacityEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Opacity,QGraphicsOpacityEffect) - -/*! - \qmlclass Opacity QGraphicsOpacityEffect - \brief The Opacity object provides an opacity effect. - - An opacity effect renders the source with an opacity. This effect is useful - for making the source semi-transparent, similar to a fade-in/fade-out - sequence. The opacity can be modified using the opacity property. - - By default, the opacity is 0.7. - - \img graphicseffect-opacity.png -*/ - -/*! - \qmlproperty real Opacity::opacity - This property specifies how opaque an item should appear. - - The value should be in the range of 0.0 to 1.0, where 0.0 is - fully transparent and 1.0 is fully opaque. - - By default, the opacity is 0.7. -*/ - -QML_DECLARE_TYPE(QGraphicsBloomEffect) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Bloom,QGraphicsBloomEffect) - -/*! - \qmlclass Bloom QGraphicsBloomEffect - \brief The Bloom object provides a bloom/glow effect. - - A bloom/glow effect adds fringes of light around bright areas in the source item. - - \img graphicseffect-bloom.png -*/ - -/*! - \qmlproperty real Bloom::blurRadius - The blur radius in pixels of the effect. - - Using a smaller radius results in a sharper appearance, whereas a bigger - radius results in a more blurred appearance. - - By default, the blur radius is 5 pixels. -*/ - -/*! - \qmlproperty enumeration Bloom::blurHint - - Use the Qt.PerformanceHint hint to say that you want a faster blur, - and the Qt.QualityHint hint to say that you prefer a higher quality blur. - - When animating the blur radius it's recommended to use Qt.PerformanceHint. - - By default, the blur hint is Qt.PerformanceHint. -*/ - -/*! - \qmlproperty int Bloom::brightness - This property specifies how bright the glow should appear. - - The value should be in the range of 0 to 255, where 0 is dark - and 255 is bright. - - By default, the brightness is 70. -*/ - -/*! - \qmlproperty real Bloom::strength - The strength of the glow. - - A strength of 0.0 is equal to no effect, while 1.0 means maximum glow. - - By default, the strength is 0.7. -*/ - diff --git a/src/declarative/fx/qmlgraphicsevents.cpp b/src/declarative/fx/qmlgraphicsevents.cpp deleted file mode 100644 index 9958dea..0000000 --- a/src/declarative/fx/qmlgraphicsevents.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsevents_p_p.h" - -QT_BEGIN_NAMESPACE -/*! - \qmlclass KeyEvent QmlGraphicsKeyEvent - \brief The KeyEvent object provides information about a key event. - - For example, the following changes the Item's state property when the Enter - key is pressed: - \qml -Item { - focus: true - Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; } -} - \endqml -*/ - -/*! - \internal - \class QmlGraphicsKeyEvent -*/ - -/*! - \qmlproperty int KeyEvent::key - - This property holds the code of the key that was pressed or released. - - See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. These codes are - independent of the underlying window system. Note that this - function does not distinguish between capital and non-capital - letters, use the text() function (returning the Unicode text the - key generated) for this purpose. - - A value of either 0 or \l {Qt::Key_unknown}{Qt.Key_Unknown} means that the event is not - the result of a known key; for example, it may be the result of - a compose sequence, a keyboard macro, or due to key event - compression. -*/ - -/*! - \qmlproperty string KeyEvent::text - - This property holds the Unicode text that the key generated. - The text returned can be an empty string in cases where modifier keys, - such as Shift, Control, Alt, and Meta, are being pressed or released. - In such cases \c key will contain a valid value -*/ - -/*! - \qmlproperty bool KeyEvent::isAutoRepeat - - This property holds whether this event comes from an auto-repeating key. -*/ - -/*! - \qmlproperty int KeyEvent::count - - This property holds the number of keys involved in this event. If \l KeyEvent::text - is not empty, this is simply the length of the string. -*/ - -/*! - \qmlproperty bool KeyEvent::accepted - - Setting \a accepted to true prevents the key event from being - propagated to the item's parent. - - Generally, if the item acts on the key event then it should be accepted - so that ancestor items do not also respond to the same event. -*/ - - -/*! - \qmlclass MouseEvent QmlGraphicsMouseEvent - \brief The MouseEvent object provides information about a mouse event. - - The position of the mouse can be found via the x and y properties. - The button that caused the event is available via the button property. -*/ - -/*! - \internal - \class QmlGraphicsMouseEvent -*/ - -/*! - \qmlproperty int MouseEvent::x - \qmlproperty int MouseEvent::y - - These properties hold the position of the mouse event. -*/ - -/*! - \qmlproperty enum MouseEvent::button - - This property holds the button that caused the event. It can be one of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist -*/ - -/*! - \qmlproperty bool MouseEvent::wasHeld - - This property is true if the mouse button has been held pressed longer the - threshold (800ms). -*/ - -/*! - \qmlproperty int MouseEvent::buttons - - This property holds the mouse buttons pressed when the event was generated. - For mouse move events, this is all buttons that are pressed down. For mouse - press and double click events this includes the button that caused the event. - For mouse release events this excludes the button that caused the event. - - It contains a bitwise combination of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist -*/ - -/*! - \qmlproperty int MouseEvent::modifiers - - This property holds the keyboard modifier flags that existed immediately - before the event occurred. - - It contains a bitwise combination of: - \list - \o Qt.NoModifier - No modifier key is pressed. - \o Qt.ShiftModifier - A Shift key on the keyboard is pressed. - \o Qt.ControlModifier - A Ctrl key on the keyboard is pressed. - \o Qt.AltModifier - An Alt key on the keyboard is pressed. - \o Qt.MetaModifier - A Meta key on the keyboard is pressed. - \o Qt.KeypadModifier - A keypad button is pressed. - \endlist - - For example, to react to a Shift key + Left mouse button click: - \qml -MouseRegion { - onClicked: { if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething(); } -} - \endqml -*/ - -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsKeyEvent) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsMouseEvent) - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsevents_p_p.h b/src/declarative/fx/qmlgraphicsevents_p_p.h deleted file mode 100644 index 9cab18e..0000000 --- a/src/declarative/fx/qmlgraphicsevents_p_p.h +++ /dev/null @@ -1,136 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSEVENTS_P_H -#define QMLGRAPHICSEVENTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsKeyEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int key READ key) - Q_PROPERTY(QString text READ text) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) - Q_PROPERTY(int count READ count) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) - : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } - QmlGraphicsKeyEvent(const QKeyEvent &ke) - : event(ke) { event.setAccepted(false); } - - int key() const { return event.key(); } - QString text() const { return event.text(); } - int modifiers() const { return event.modifiers(); } - bool isAutoRepeat() const { return event.isAutoRepeat(); } - int count() const { return event.count(); } - - bool isAccepted() { return event.isAccepted(); } - void setAccepted(bool accepted) { event.setAccepted(accepted); } - -private: - QKeyEvent event; -}; - -class QmlGraphicsMouseEvent : public QObject -{ - Q_OBJECT - Q_PROPERTY(int x READ x) - Q_PROPERTY(int y READ y) - Q_PROPERTY(int button READ button) - Q_PROPERTY(int buttons READ buttons) - Q_PROPERTY(int modifiers READ modifiers) - Q_PROPERTY(bool wasHeld READ wasHeld) - Q_PROPERTY(bool isClick READ isClick) - Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) - -public: - QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers - , bool isClick=false, bool wasHeld=false) - : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) - , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} - - int x() const { return _x; } - int y() const { return _y; } - int button() const { return _button; } - int buttons() const { return _buttons; } - int modifiers() const { return _modifiers; } - bool wasHeld() const { return _wasHeld; } - bool isClick() const { return _isClick; } - - bool isAccepted() { return _accepted; } - void setAccepted(bool accepted) { _accepted = accepted; } - -private: - int _x; - int _y; - Qt::MouseButton _button; - Qt::MouseButtons _buttons; - Qt::KeyboardModifiers _modifiers; - bool _wasHeld; - bool _isClick; - bool _accepted; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsKeyEvent) -QML_DECLARE_TYPE(QmlGraphicsMouseEvent) - -#endif // QMLGRAPHICSEVENTS_P_H diff --git a/src/declarative/fx/qmlgraphicsflickable.cpp b/src/declarative/fx/qmlgraphicsflickable.cpp deleted file mode 100644 index 8895977..0000000 --- a/src/declarative/fx/qmlgraphicsflickable.cpp +++ /dev/null @@ -1,1283 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsflickable_p.h" -#include "qmlgraphicsflickable_p_p.h" - -#include -#include -#include - -QT_BEGIN_NAMESPACE - - -// These are highly device dependant. -// DragThreshold determines how far the "mouse" must move before -// we begin a drag. -// FlickThreshold determines how far the "mouse" must have moved -// before we perform a flick. -static const int DragThreshold = 8; -static const int FlickThreshold = 20; - -// Really slow flicks can be annoying. -static const int minimumFlickVelocity = 200; - -class QmlGraphicsFlickableVisibleArea : public QObject -{ - Q_OBJECT - - Q_PROPERTY(qreal xPosition READ xPosition NOTIFY pageChanged) - Q_PROPERTY(qreal yPosition READ yPosition NOTIFY pageChanged) - Q_PROPERTY(qreal widthRatio READ widthRatio NOTIFY pageChanged) - Q_PROPERTY(qreal heightRatio READ heightRatio NOTIFY pageChanged) - -public: - QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent=0); - - qreal xPosition() const; - qreal widthRatio() const; - qreal yPosition() const; - qreal heightRatio() const; - - void updateVisible(); - -signals: - void pageChanged(); - -private: - QmlGraphicsFlickable *flickable; - qreal m_xPosition; - qreal m_widthRatio; - qreal m_yPosition; - qreal m_heightRatio; -}; - -QmlGraphicsFlickableVisibleArea::QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent) - : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) - , m_yPosition(0.), m_heightRatio(0.) -{ -} - -qreal QmlGraphicsFlickableVisibleArea::widthRatio() const -{ - return m_widthRatio; -} - -qreal QmlGraphicsFlickableVisibleArea::xPosition() const -{ - return m_xPosition; -} - -qreal QmlGraphicsFlickableVisibleArea::heightRatio() const -{ - return m_heightRatio; -} - -qreal QmlGraphicsFlickableVisibleArea::yPosition() const -{ - return m_yPosition; -} - -void QmlGraphicsFlickableVisibleArea::updateVisible() -{ - QmlGraphicsFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); - bool pageChange = false; - - // Vertical - const qreal viewheight = flickable->height(); - const qreal maxyextent = -flickable->maxYExtent(); - qreal pagePos = -p->_moveY.value() / (maxyextent + viewheight); - qreal pageSize = viewheight / (maxyextent + viewheight); - - if (pageSize != m_heightRatio) { - m_heightRatio = pageSize; - pageChange = true; - } - if (pagePos != m_yPosition) { - m_yPosition = pagePos; - pageChange = true; - } - - // Horizontal - const qreal viewwidth = flickable->width(); - const qreal maxxextent = -flickable->maxXExtent(); - pagePos = -p->_moveX.value() / (maxxextent + viewwidth); - pageSize = viewwidth / (maxxextent + viewwidth); - - if (pageSize != m_widthRatio) { - m_widthRatio = pageSize; - pageChange = true; - } - if (pagePos != m_xPosition) { - m_xPosition = pagePos; - pageChange = true; - } - if (pageChange) - emit pageChanged(); -} - - -QmlGraphicsFlickablePrivate::QmlGraphicsFlickablePrivate() - : viewport(new QmlGraphicsItem), _moveX(viewport, &QmlGraphicsItem::setX), _moveY(viewport, &QmlGraphicsItem::setY) - , vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false) - , pressed(false), atXEnd(false), atXBeginning(true), atYEnd(false), atYBeginning(true) - , interactive(true), deceleration(500), maxVelocity(5000), reportedVelocitySmoothing(100) - , delayedPressEvent(0), delayedPressTarget(0), pressDelay(0) - , horizontalVelocity(this), verticalVelocity(this), vTime(0), visibleArea(0) -{ - fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); - fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); -} - -void QmlGraphicsFlickablePrivate::init() -{ - Q_Q(QmlGraphicsFlickable); - viewport->setParent(q); - QObject::connect(&timeline, SIGNAL(updated()), q, SLOT(ticked())); - QObject::connect(&timeline, SIGNAL(completed()), q, SLOT(movementEnding())); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFiltersChildEvents(true); - QObject::connect(viewport, SIGNAL(xChanged()), q, SIGNAL(positionXChanged())); - QObject::connect(viewport, SIGNAL(yChanged()), q, SIGNAL(positionYChanged())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(heightChange())); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(widthChange())); -} - -void QmlGraphicsFlickablePrivate::flickX(qreal velocity) -{ - Q_Q(QmlGraphicsFlickable); - qreal maxDistance = -1; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveX.value() < q->minXExtent()) - maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); - flickTargetX = q->minXExtent(); - } else { - if (_moveX.value() > q->maxXExtent()) - maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); - flickTargetX = q->maxXExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - timeline.reset(_moveX); - timeline.accel(_moveX, v, deceleration, maxDistance); - timeline.execute(fixupXEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveX); - fixupX(); - } -} - -void QmlGraphicsFlickablePrivate::flickY(qreal velocity) -{ - Q_Q(QmlGraphicsFlickable); - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveY.value() < q->minYExtent()) - maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); - flickTargetY = q->minYExtent(); - } else { - if (_moveY.value() > q->maxYExtent()) - maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); - flickTargetY = q->maxYExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - timeline.reset(_moveY); - timeline.accel(_moveY, v, deceleration, maxDistance); - timeline.execute(fixupYEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveY); - fixupY(); - } -} - -void QmlGraphicsFlickablePrivate::fixupX() -{ - Q_Q(QmlGraphicsFlickable); - if (!q->xflick() || _moveX.timeLine()) - return; - - vTime = timeline.time(); - - if (_moveX.value() > q->minXExtent() || (q->maxXExtent() > q->minXExtent())) { - timeline.reset(_moveX); - if (_moveX.value() != q->minXExtent()) - timeline.move(_moveX, q->minXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else if (_moveX.value() < q->maxXExtent()) { - timeline.reset(_moveX); - timeline.move(_moveX, q->maxXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else { - flicked = false; - } -} - -void QmlGraphicsFlickablePrivate::fixupY() -{ - Q_Q(QmlGraphicsFlickable); - if (!q->yflick() || _moveY.timeLine()) - return; - - vTime = timeline.time(); - - if (_moveY.value() > q->minYExtent() || (q->maxYExtent() > q->minYExtent())) { - timeline.reset(_moveY); - if (_moveY.value() != q->minYExtent()) - timeline.move(_moveY, q->minYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else if (_moveY.value() < q->maxYExtent()) { - timeline.reset(_moveY); - timeline.move(_moveY, q->maxYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); - //emit flickingChanged(); - } else { - flicked = false; - } -} - -void QmlGraphicsFlickablePrivate::updateBeginningEnd() -{ - Q_Q(QmlGraphicsFlickable); - bool atBoundaryChange = false; - - // Vertical - const int maxyextent = int(-q->maxYExtent()); - const qreal ypos = -_moveY.value(); - bool atBeginning = (ypos <= 0.0); - bool atEnd = (maxyextent <= ypos); - - if (atBeginning != atYBeginning) { - atYBeginning = atBeginning; - atBoundaryChange = true; - } - if (atEnd != atYEnd) { - atYEnd = atEnd; - atBoundaryChange = true; - } - - // Horizontal - const int maxxextent = int(-q->maxXExtent()); - const qreal xpos = -_moveX.value(); - atBeginning = (xpos <= 0.0); - atEnd = (maxxextent <= xpos); - - if (atBeginning != atXBeginning) { - atXBeginning = atBeginning; - atBoundaryChange = true; - } - if (atEnd != atXEnd) { - atXEnd = atEnd; - atBoundaryChange = true; - } - - if (atBoundaryChange) - emit q->isAtBoundaryChanged(); - - if (visibleArea) - visibleArea->updateVisible(); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QmlGraphicsFlickable) - -/*! - \qmlclass Flickable QFxFlickable - \brief The Flickable item provides a surface that can be "flicked". - \inherits Item - - Flickable places its children on a surface that can be dragged and flicked. - - \code - Flickable { - width: 200; height: 200; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } - } - \endcode - - \image flickable.gif - - \note Flickable does not automatically clip its contents. If - it is not full-screen it is likely that \c clip should be set - to true. - - \note Due to an implementation detail items placed inside a flickable cannot anchor to it by - id, use 'parent' instead. -*/ - -/*! - \internal - \class QmlGraphicsFlickable - \brief The QmlGraphicsFlickable class provides a view that can be "flicked". - - \ingroup group_widgets - - QmlGraphicsFlickable allows its children to be dragged and flicked. - -\code -Flickable { - width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } -} -\endcode - - Note that QmlGraphicsFlickable does not automatically clip its contents. If - it is not full-screen it is likely that QmlGraphicsItem::clip should be set - to true. - -*/ - -/*! - \qmlproperty real Flickable::visibleArea.xPosition - \qmlproperty real Flickable::visibleArea.widthRatio - \qmlproperty real Flickable::visibleArea.yPosition - \qmlproperty real Flickable::visibleArea.heightRatio - - These properties describe the position and size of the currently viewed area. - The size is defined as the percentage of the full view currently visible, - scaled to 0.0 - 1.0. The page position is in the range 0.0 (beginning) to - size ratio (end), i.e. yPosition is in the range 0.0 - heightRatio. - - These properties are typically used to draw a scrollbar, for example: - \code - Rectangle { - opacity: 0.5; anchors.right: MyListView.right-2; width: 6 - y: MyListView.visibleArea.yPosition * MyListView.height - height: MyListView.visibleArea.heightRatio * MyListView.height - } - \endcode -*/ - -QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsFlickablePrivate), parent) -{ - Q_D(QmlGraphicsFlickable); - d->init(); -} - -QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsFlickable); - d->init(); -} - -QmlGraphicsFlickable::~QmlGraphicsFlickable() -{ -} - -/*! - \qmlproperty int Flickable::viewportX - \qmlproperty int Flickable::viewportY - - These properties hold the surface coordinate currently at the top-left - corner of the Flickable. For example, if you flick an image up 100 pixels, - \c yPosition will be 100. -*/ -qreal QmlGraphicsFlickable::viewportX() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveX.value(); -} - -void QmlGraphicsFlickable::setViewportX(qreal pos) -{ - Q_D(QmlGraphicsFlickable); - pos = qRound(pos); - d->timeline.reset(d->_moveX); - if (-pos != d->_moveX.value()) { - d->_moveX.setValue(-pos); - viewportMoved(); - } -} - -qreal QmlGraphicsFlickable::viewportY() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveY.value(); -} - -void QmlGraphicsFlickable::setViewportY(qreal pos) -{ - Q_D(QmlGraphicsFlickable); - pos = qRound(pos); - d->timeline.reset(d->_moveY); - if (-pos != d->_moveY.value()) { - d->_moveY.setValue(-pos); - viewportMoved(); - } -} - -/*! - \qmlproperty bool Flickable::interactive - - A user cannot drag or flick a Flickable that is not interactive. - - This property is useful for temporarily disabling flicking. This allows - special interaction with Flickable's children: for example, you might want to - freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable. -*/ -bool QmlGraphicsFlickable::isInteractive() const -{ - Q_D(const QmlGraphicsFlickable); - return d->interactive; -} - -void QmlGraphicsFlickable::setInteractive(bool interactive) -{ - Q_D(QmlGraphicsFlickable); - d->interactive = interactive; - if (!interactive && d->flicked) { - d->timeline.clear(); - d->flicked = false; - emit flickingChanged(); - emit flickEnded(); - } -} - -/*! - \qmlproperty real Flickable::horizontalVelocity - \qmlproperty real Flickable::verticalVelocity - \qmlproperty real Flickable::reportedVelocitySmoothing - - The instantaneous velocity of movement along the x and y axes, in pixels/sec. - - The reported velocity is smoothed to avoid erratic output. - reportedVelocitySmoothing determines how much smoothing is applied. -*/ -qreal QmlGraphicsFlickable::horizontalVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->horizontalVelocity.value(); -} - -qreal QmlGraphicsFlickable::verticalVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->verticalVelocity.value(); -} - -/*! - \qmlproperty bool Flickable::atXBeginning - \qmlproperty bool Flickable::atXEnd - \qmlproperty bool Flickable::atYBeginning - \qmlproperty bool Flickable::atYEnd - - These properties are true if the flickable view is positioned at the beginning, - or end respecively. -*/ -bool QmlGraphicsFlickable::isAtXEnd() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atXEnd; -} - -bool QmlGraphicsFlickable::isAtXBeginning() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atXBeginning; -} - -bool QmlGraphicsFlickable::isAtYEnd() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atYEnd; -} - -bool QmlGraphicsFlickable::isAtYBeginning() const -{ - Q_D(const QmlGraphicsFlickable); - return d->atYBeginning; -} - -void QmlGraphicsFlickable::ticked() -{ - viewportMoved(); -} - -QmlGraphicsItem *QmlGraphicsFlickable::viewport() -{ - Q_D(QmlGraphicsFlickable); - return d->viewport; -} - -qreal QmlGraphicsFlickable::visibleX() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveX.value(); -} - -qreal QmlGraphicsFlickable::visibleY() const -{ - Q_D(const QmlGraphicsFlickable); - return -d->_moveY.value(); -} - -QmlGraphicsFlickableVisibleArea *QmlGraphicsFlickable::visibleArea() -{ - Q_D(QmlGraphicsFlickable); - if (!d->visibleArea) - d->visibleArea = new QmlGraphicsFlickableVisibleArea(this); - return d->visibleArea; -} - -void QmlGraphicsFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) -{ - if (interactive && timeline.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10)) - stealMouse = true; // If we've been flicked then steal the click. - else - stealMouse = false; - pressed = true; - timeline.clear(); - velocityX = 0; - velocityY = 0; - lastPos = QPoint(); - QmlGraphicsItemPrivate::start(lastPosTime); - pressPos = event->pos(); - pressX = _moveX.value(); - pressY = _moveY.value(); - flicked = false; - QmlGraphicsItemPrivate::start(pressTime); - QmlGraphicsItemPrivate::start(velocityTime); -} - -void QmlGraphicsFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - if (!interactive || lastPosTime.isNull()) - return; - bool rejectY = false; - bool rejectX = false; - bool moved = false; - - if (q->yflick()) { - int dy = int(event->pos().y() - pressPos.y()); - if (qAbs(dy) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { - qreal newY = dy + pressY; - const qreal minY = q->minYExtent(); - const qreal maxY = q->maxYExtent(); - if (newY > minY) - newY = minY + (newY - minY) / 2; - if (newY < maxY && maxY - minY < 0) - newY = maxY + (newY - maxY) / 2; - if (!q->overShoot() && (newY > minY || newY < maxY)) { - if (newY > minY) - newY = minY; - else if (newY < maxY) - newY = maxY; - else - rejectY = true; - } - if (!rejectY) { - _moveY.setValue(newY); - moved = true; - } - if (qAbs(dy) > DragThreshold) - stealMouse = true; - } - } - - if (q->xflick()) { - int dx = int(event->pos().x() - pressPos.x()); - if (qAbs(dx) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { - qreal newX = dx + pressX; - const qreal minX = q->minXExtent(); - const qreal maxX = q->maxXExtent(); - if (newX > minX) - newX = minX + (newX - minX) / 2; - if (newX < maxX && maxX - minX < 0) - newX = maxX + (newX - maxX) / 2; - if (!q->overShoot() && (newX > minX || newX < maxX)) { - if (newX > minX) - newX = minX; - else if (newX < maxX) - newX = maxX; - else - rejectX = true; - } - if (!rejectX) { - _moveX.setValue(newX); - moved = true; - } - - if (qAbs(dx) > DragThreshold) - stealMouse = true; - } - } - - if (!lastPos.isNull()) { - qreal elapsed = qreal(QmlGraphicsItemPrivate::restart(lastPosTime)) / 1000.; - if (elapsed <= 0) - elapsed = 1; - if (q->yflick()) { - qreal diff = event->pos().y() - lastPos.y(); - // average to reduce the effect of spurious moves - velocityY += diff / elapsed; - velocityY /= 2; - } - - if (q->xflick()) { - qreal diff = event->pos().x() - lastPos.x(); - // average to reduce the effect of spurious moves - velocityX += diff / elapsed; - velocityX /= 2; - } - } - - if (rejectY) velocityY = 0; - if (rejectX) velocityX = 0; - - if (moved) { - q->movementStarting(); - q->viewportMoved(); - } - - lastPos = event->pos(); -} - -void QmlGraphicsFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - pressed = false; - if (lastPosTime.isNull()) - return; - - if (QmlGraphicsItemPrivate::elapsed(lastPosTime) > 100) { - // if we drag then pause before release we should not cause a flick. - velocityX = 0.0; - velocityY = 0.0; - } - - vTime = timeline.time(); - if (qAbs(velocityY) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) { - qreal velocity = velocityY; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - flickY(velocity); - } else { - fixupY(); - } - - if (qAbs(velocityX) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) { - qreal velocity = velocityX; - if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. - velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; - flickX(velocity); - } else { - fixupX(); - } - - stealMouse = false; - lastPosTime = QTime(); - - if (!timeline.isActive()) - q->movementEnding(); -} - -void QmlGraphicsFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->handleMousePressEvent(event); - event->accept(); -} - -void QmlGraphicsFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->handleMouseMoveEvent(event); - event->accept(); -} - -void QmlGraphicsFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - d->clearDelayedPress(); - d->handleMouseReleaseEvent(event); - event->accept(); - ungrabMouse(); -} - -void QmlGraphicsFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) -{ - Q_Q(QmlGraphicsFlickable); - if (!q->scene() || pressDelay <= 0) - return; - delayedPressTarget = q->scene()->mouseGrabberItem(); - delayedPressEvent = new QGraphicsSceneMouseEvent(event->type()); - delayedPressEvent->setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - delayedPressEvent->setButtonDownPos(button, event->buttonDownPos(button)); - delayedPressEvent->setButtonDownScenePos(button, event->buttonDownScenePos(button)); - delayedPressEvent->setButtonDownScreenPos(button, event->buttonDownScreenPos(button)); - } - } - delayedPressEvent->setButtons(event->buttons()); - delayedPressEvent->setButton(event->button()); - delayedPressEvent->setPos(event->pos()); - delayedPressEvent->setScenePos(event->scenePos()); - delayedPressEvent->setScreenPos(event->screenPos()); - delayedPressEvent->setLastPos(event->lastPos()); - delayedPressEvent->setLastScenePos(event->lastScenePos()); - delayedPressEvent->setLastScreenPos(event->lastScreenPos()); - delayedPressEvent->setModifiers(event->modifiers()); - delayedPressTimer.start(pressDelay, q); -} - -void QmlGraphicsFlickablePrivate::clearDelayedPress() -{ - if (delayedPressEvent) { - delayedPressTimer.stop(); - delete delayedPressEvent; - delayedPressEvent = 0; - } -} - -void QmlGraphicsFlickable::timerEvent(QTimerEvent *event) -{ - Q_D(QmlGraphicsFlickable); - if (event->timerId() == d->delayedPressTimer.timerId()) { - d->delayedPressTimer.stop(); - if (d->delayedPressEvent) { - QmlGraphicsItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; - if (!grabber || grabber != this) - scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); - delete d->delayedPressEvent; - d->delayedPressEvent = 0; - } - } -} - -qreal QmlGraphicsFlickable::minYExtent() const -{ - return 0.0; -} - -qreal QmlGraphicsFlickable::minXExtent() const -{ - return 0.0; -} - -/* returns -ve */ -qreal QmlGraphicsFlickable::maxXExtent() const -{ - return width() - vWidth(); -} -/* returns -ve */ -qreal QmlGraphicsFlickable::maxYExtent() const -{ - return height() - vHeight(); -} - -void QmlGraphicsFlickable::viewportMoved() -{ - Q_D(QmlGraphicsFlickable); - - int elapsed = QmlGraphicsItemPrivate::elapsed(d->velocityTime); - - if (elapsed) { - qreal prevY = d->lastFlickablePosition.x(); - qreal prevX = d->lastFlickablePosition.y(); - d->velocityTimeline.clear(); - if (d->pressed) { - qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / elapsed; - qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / elapsed; - d->velocityTimeline.move(d->horizontalVelocity, horizontalVelocity, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->horizontalVelocity, 0, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->verticalVelocity, verticalVelocity, d->reportedVelocitySmoothing); - d->velocityTimeline.move(d->verticalVelocity, 0, d->reportedVelocitySmoothing); - } else { - if (d->timeline.time() != d->vTime) { - qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / (d->timeline.time() - d->vTime); - qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / (d->timeline.time() - d->vTime); - d->horizontalVelocity.setValue(horizontalVelocity); - d->verticalVelocity.setValue(verticalVelocity); - } - d->vTime = d->timeline.time(); - } - } - - d->lastFlickablePosition = QPointF(d->_moveY.value(), d->_moveX.value()); - QmlGraphicsItemPrivate::restart(d->velocityTime); - d->updateBeginningEnd(); - - if (d->flicked) { - // Near an end and it seems that the extent has changed? - // Recalculate the flick so that we don't end up in an odd position. - if (d->velocityY > 0) { - const qreal minY = minYExtent(); - if (minY - d->_moveY.value() < height()/3 && minY != d->flickTargetY) - d->flickY(-d->verticalVelocity.value()); - } else { - const qreal maxY = maxYExtent(); - if (d->_moveY.value() - maxY < height()/3 && maxY != d->flickTargetY) - d->flickY(-d->verticalVelocity.value()); - } - - if (d->velocityX > 0) { - const qreal minX = minXExtent(); - if (minX - d->_moveX.value() < height()/3 && minX != d->flickTargetX) - d->flickX(-d->horizontalVelocity.value()); - } else { - const qreal maxX = maxXExtent(); - if (d->_moveX.value() - maxX < height()/3 && maxX != d->flickTargetX) - d->flickX(-d->horizontalVelocity.value()); - } - } -} - -void QmlGraphicsFlickable::cancelFlick() -{ - Q_D(QmlGraphicsFlickable); - d->timeline.reset(d->_moveX); - d->timeline.reset(d->_moveY); - movementEnding(); -} - -void QmlGraphicsFlickablePrivate::data_removeAt(int) -{ - // ### -} - -int QmlGraphicsFlickablePrivate::data_count() const -{ - // ### - return 0; -} - -void QmlGraphicsFlickablePrivate::data_append(QObject *o) -{ - Q_Q(QmlGraphicsFlickable); - QmlGraphicsItem *i = qobject_cast(o); - if (i) - viewport->fxChildren()->append(i); - else - o->setParent(q); -} - -void QmlGraphicsFlickablePrivate::data_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsFlickablePrivate::data_at(int) const -{ - // ### - return 0; -} - -void QmlGraphicsFlickablePrivate::data_clear() -{ - // ### -} - - -QmlList *QmlGraphicsFlickable::flickableData() -{ - Q_D(QmlGraphicsFlickable); - return &d->data; -} - -QmlList *QmlGraphicsFlickable::flickableChildren() -{ - Q_D(QmlGraphicsFlickable); - return d->viewport->fxChildren(); -} - -/*! - \qmlproperty bool Flickable::overShoot - This property holds the number of pixels the surface may overshoot the - Flickable's boundaries when flicked. - - If overShoot is non-zero the contents can be flicked beyond the boundary - of the Flickable before being moved back to the boundary. This provides - the feeling that the edges of the view are soft, rather than a hard - physical boundary. -*/ -bool QmlGraphicsFlickable::overShoot() const -{ - Q_D(const QmlGraphicsFlickable); - return d->overShoot; -} - -void QmlGraphicsFlickable::setOverShoot(bool o) -{ - Q_D(QmlGraphicsFlickable); - d->overShoot = o; -} - -/*! - \qmlproperty int Flickable::viewportWidth - \qmlproperty int Flickable::viewportHeight - - The dimensions of the viewport (the surface controlled by Flickable). Typically this - should be set to the combined size of the items placed in the Flickable. - - \code - Flickable { - width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height - Image { id: image; source: "bigimage.png" } - } - \endcode -*/ -qreal QmlGraphicsFlickable::viewportWidth() const -{ - Q_D(const QmlGraphicsFlickable); - return d->vWidth; -} - -void QmlGraphicsFlickable::setViewportWidth(qreal w) -{ - Q_D(QmlGraphicsFlickable); - if (d->vWidth == w) - return; - d->vWidth = w; - if (w < 0) - d->viewport->setWidth(width()); - else - d->viewport->setWidth(w); - // Make sure that we're entirely in view. - if (!d->pressed) - d->fixupX(); - emit viewportWidthChanged(); - d->updateBeginningEnd(); -} - -void QmlGraphicsFlickable::widthChange() -{ - Q_D(QmlGraphicsFlickable); - if (d->vWidth < 0) { - d->viewport->setWidth(width()); - emit viewportWidthChanged(); - } - d->updateBeginningEnd(); -} - -void QmlGraphicsFlickable::heightChange() -{ - Q_D(QmlGraphicsFlickable); - if (d->vHeight < 0) { - d->viewport->setHeight(height()); - emit viewportHeightChanged(); - } - d->updateBeginningEnd(); -} - -qreal QmlGraphicsFlickable::viewportHeight() const -{ - Q_D(const QmlGraphicsFlickable); - return d->vHeight; -} - -void QmlGraphicsFlickable::setViewportHeight(qreal h) -{ - Q_D(QmlGraphicsFlickable); - if (d->vHeight == h) - return; - d->vHeight = h; - if (h < 0) - d->viewport->setHeight(height()); - else - d->viewport->setHeight(h); - // Make sure that we're entirely in view. - if (!d->pressed) - d->fixupY(); - emit viewportHeightChanged(); - d->updateBeginningEnd(); -} - -qreal QmlGraphicsFlickable::vWidth() const -{ - Q_D(const QmlGraphicsFlickable); - if (d->vWidth < 0) - return width(); - else - return d->vWidth; -} - -qreal QmlGraphicsFlickable::vHeight() const -{ - Q_D(const QmlGraphicsFlickable); - if (d->vHeight < 0) - return height(); - else - return d->vHeight; -} - -bool QmlGraphicsFlickable::xflick() const -{ - return vWidth() != width(); -} - -bool QmlGraphicsFlickable::yflick() const -{ - return vHeight() != height(); -} - -bool QmlGraphicsFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsFlickable); - QGraphicsSceneMouseEvent mouseEvent(event->type()); - QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); - - QGraphicsScene *s = scene(); - QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; - if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { - mouseEvent.setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); - } - } - mouseEvent.setScenePos(event->scenePos()); - mouseEvent.setLastScenePos(event->lastScenePos()); - mouseEvent.setPos(mapFromScene(event->scenePos())); - mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); - - switch(mouseEvent.type()) { - case QEvent::GraphicsSceneMouseMove: - d->handleMouseMoveEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMousePress: - if (d->delayedPressEvent) - return false; - - d->handleMousePressEvent(&mouseEvent); - d->captureDelayedPress(event); - break; - case QEvent::GraphicsSceneMouseRelease: - if (d->delayedPressEvent) { - scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); - d->clearDelayedPress(); - } - d->handleMouseReleaseEvent(&mouseEvent); - break; - default: - break; - } - grabber = qobject_cast(s->mouseGrabberItem()); - if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) { - d->clearDelayedPress(); - grabMouse(); - } - - return d->stealMouse || d->delayedPressEvent; - } else if (!d->lastPosTime.isNull()) { - d->lastPosTime = QTime(); - } - if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) - d->clearDelayedPress(); - return false; -} - -bool QmlGraphicsFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) -{ - if (!isVisible()) - return QmlGraphicsItem::sceneEventFilter(i, e); - switch (e->type()) { - case QEvent::GraphicsSceneMousePress: - case QEvent::GraphicsSceneMouseMove: - case QEvent::GraphicsSceneMouseRelease: - return sendMouseEvent(static_cast(e)); - default: - break; - } - - return QmlGraphicsItem::sceneEventFilter(i, e); -} - -/*! - \qmlproperty real Flickable::maximumFlickVelocity - This property holds the maximum velocity that the user can flick the view in pixels/second. - - The default is 5000 pixels/s -*/ -qreal QmlGraphicsFlickable::maximumFlickVelocity() const -{ - Q_D(const QmlGraphicsFlickable); - return d->maxVelocity; -} - -void QmlGraphicsFlickable::setMaximumFlickVelocity(qreal v) -{ - Q_D(QmlGraphicsFlickable); - if (v == d->maxVelocity) - return; - d->maxVelocity = v; -} - -/*! - \qmlproperty real Flickable::maximumFlickVelocity - This property holds the rate at which a flick will decelerate. - - The default is 500. -*/ -qreal QmlGraphicsFlickable::flickDeceleration() const -{ - Q_D(const QmlGraphicsFlickable); - return d->deceleration; -} - -void QmlGraphicsFlickable::setFlickDeceleration(qreal deceleration) -{ - Q_D(QmlGraphicsFlickable); - d->deceleration = deceleration; -} - -bool QmlGraphicsFlickable::isFlicking() const -{ - Q_D(const QmlGraphicsFlickable); - return d->flicked; -} - -/*! - \qmlproperty int Flickable::pressDelay - - This property holds the time to delay (ms) delivering a press to - children of the Flickable. This can be useful where reacting - to a press before a flicking action has undesireable effects. - - If the flickable is dragged/flicked before the delay times out - the press event will not be delivered. If the button is released - within the timeout, both the press and release will be delivered. -*/ -int QmlGraphicsFlickable::pressDelay() const -{ - Q_D(const QmlGraphicsFlickable); - return d->pressDelay; -} - -void QmlGraphicsFlickable::setPressDelay(int delay) -{ - Q_D(QmlGraphicsFlickable); - if (d->pressDelay == delay) - return; - d->pressDelay = delay; -} - -qreal QmlGraphicsFlickable::reportedVelocitySmoothing() const -{ - Q_D(const QmlGraphicsFlickable); - return d->reportedVelocitySmoothing; -} - -void QmlGraphicsFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) -{ - Q_D(QmlGraphicsFlickable); - Q_ASSERT(reportedVelocitySmoothing >= 0); - if (reportedVelocitySmoothing == d->reportedVelocitySmoothing) - return; - d->reportedVelocitySmoothing = reportedVelocitySmoothing; - emit reportedVelocitySmoothingChanged(reportedVelocitySmoothing); -} - -bool QmlGraphicsFlickable::isMoving() const -{ - Q_D(const QmlGraphicsFlickable); - return d->moving; -} - -void QmlGraphicsFlickable::movementStarting() -{ - Q_D(QmlGraphicsFlickable); - if (!d->moving) { - d->moving = true; - emit movingChanged(); - emit movementStarted(); - } -} - -void QmlGraphicsFlickable::movementEnding() -{ - Q_D(QmlGraphicsFlickable); - if (d->moving) { - d->moving = false; - emit movingChanged(); - emit movementEnded(); - } - if (d->flicked) { - d->flicked = false; - emit flickingChanged(); - emit flickEnded(); - } - d->horizontalVelocity.setValue(0); - d->verticalVelocity.setValue(0); -} - -void QmlGraphicsFlickablePrivate::updateVelocity() -{ - Q_Q(QmlGraphicsFlickable); - emit q->horizontalVelocityChanged(); - emit q->verticalVelocityChanged(); -} - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) - -#include "qmlgraphicsflickable.moc" diff --git a/src/declarative/fx/qmlgraphicsflickable_p.h b/src/declarative/fx/qmlgraphicsflickable_p.h deleted file mode 100644 index 08b0fd8..0000000 --- a/src/declarative/fx/qmlgraphicsflickable_p.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSFLICKABLE_H -#define QMLGRAPHICSFLICKABLE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlickablePrivate; -class QmlGraphicsFlickableVisibleArea; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) - Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) - Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) - Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) - - Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) - Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) - Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) - - Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) - Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) - Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) - Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) - Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) - - Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) - Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) - - Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) - Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) - - Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) - - Q_PROPERTY(QmlList* flickableData READ flickableData) - Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) - Q_CLASSINFO("DefaultProperty", "flickableData") - -public: - QmlGraphicsFlickable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlickable(); - - QmlList *flickableData(); - QmlList *flickableChildren(); - - bool overShoot() const; - void setOverShoot(bool); - - qreal viewportWidth() const; - void setViewportWidth(qreal); - - qreal viewportHeight() const; - void setViewportHeight(qreal); - - qreal viewportX() const; - void setViewportX(qreal pos); - - qreal viewportY() const; - void setViewportY(qreal pos); - - bool isMoving() const; - bool isFlicking() const; - - int pressDelay() const; - void setPressDelay(int delay); - - qreal reportedVelocitySmoothing() const; - void setReportedVelocitySmoothing(qreal); - - qreal maximumFlickVelocity() const; - void setMaximumFlickVelocity(qreal); - - qreal flickDeceleration() const; - void setFlickDeceleration(qreal); - - bool isInteractive() const; - void setInteractive(bool); - - qreal horizontalVelocity() const; - qreal verticalVelocity() const; - - bool isAtXEnd() const; - bool isAtXBeginning() const; - bool isAtYEnd() const; - bool isAtYBeginning() const; - - QmlGraphicsItem *viewport(); - -Q_SIGNALS: - void viewportWidthChanged(); - void viewportHeightChanged(); - void positionXChanged(); - void positionYChanged(); - void movingChanged(); - void flickingChanged(); - void movementStarted(); - void movementEnded(); - void flickStarted(); - void flickEnded(); - void reportedVelocitySmoothingChanged(int); - void horizontalVelocityChanged(); - void verticalVelocityChanged(); - void isAtBoundaryChanged(); - void pageChanged(); - -protected: - virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void timerEvent(QTimerEvent *event); - - qreal visibleX() const; - qreal visibleY() const; - - QmlGraphicsFlickableVisibleArea *visibleArea(); - -protected Q_SLOTS: - virtual void ticked(); - void movementStarting(); - void movementEnding(); - void heightChange(); - void widthChange(); - -protected: - virtual qreal minXExtent() const; - virtual qreal minYExtent() const; - virtual qreal maxXExtent() const; - virtual qreal maxYExtent() const; - qreal vWidth() const; - qreal vHeight() const; - virtual void viewportMoved(); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - - bool xflick() const; - bool yflick() const; - void cancelFlick(); - -protected: - QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsFlickable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) - friend class QmlGraphicsFlickableVisibleArea; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlickable) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsflickable_p_p.h b/src/declarative/fx/qmlgraphicsflickable_p_p.h deleted file mode 100644 index 2850e35..0000000 --- a/src/declarative/fx/qmlgraphicsflickable_p_p.h +++ /dev/null @@ -1,156 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSFLICKABLE_P_H -#define QMLGRAPHICSFLICKABLE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qmlgraphicsflickable_p.h" -#include "qmlgraphicsitem_p.h" -#include "qml.h" -#include "private/qmltimeline_p_p.h" -#include "private/qmlanimation_p_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsFlickableVisibleArea; -class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsFlickable) - -public: - QmlGraphicsFlickablePrivate(); - void init(); - virtual void flickX(qreal velocity); - virtual void flickY(qreal velocity); - virtual void fixupX(); - virtual void fixupY(); - void updateBeginningEnd(); - - void captureDelayedPress(QGraphicsSceneMouseEvent *event); - void clearDelayedPress(); - -public: - QmlGraphicsItem *viewport; - QmlTimeLineValueProxy _moveX; - QmlTimeLineValueProxy _moveY; - QmlTimeLine timeline; - qreal vWidth; - qreal vHeight; - bool overShoot : 1; - bool flicked : 1; - bool moving : 1; - bool stealMouse : 1; - bool pressed : 1; - bool atXEnd : 1; - bool atXBeginning : 1; - bool atYEnd : 1; - bool atYBeginning : 1; - bool interactive : 1; - QTime lastPosTime; - QPointF lastPos; - QPointF pressPos; - qreal pressX; - qreal pressY; - qreal velocityX; - qreal velocityY; - QTime pressTime; - QmlTimeLineEvent fixupXEvent; - QmlTimeLineEvent fixupYEvent; - qreal deceleration; - qreal maxVelocity; - QTime velocityTime; - QPointF lastFlickablePosition; - qreal reportedVelocitySmoothing; - int flickTargetX; - int flickTargetY; - QGraphicsSceneMouseEvent *delayedPressEvent; - QGraphicsItem *delayedPressTarget; - QBasicTimer delayedPressTimer; - int pressDelay; - - void updateVelocity(); - struct Velocity : public QmlTimeLineValue - { - Velocity(QmlGraphicsFlickablePrivate *p) - : parent(p) {} - virtual void setValue(qreal v) { - QmlTimeLineValue::setValue(v); - parent->updateVelocity(); - } - QmlGraphicsFlickablePrivate *parent; - }; - Velocity horizontalVelocity; - Velocity verticalVelocity; - int vTime; - QmlTimeLine velocityTimeline; - QmlGraphicsFlickableVisibleArea *visibleArea; - - void handleMousePressEvent(QGraphicsSceneMouseEvent *); - void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); - void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); - - // flickableData property - void data_removeAt(int); - int data_count() const; - void data_append(QObject *); - void data_insert(int, QObject *); - QObject *data_at(int) const; - void data_clear(); - - friend class QmlGraphicsFlickableVisibleArea; - QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qmlgraphicsflipable.cpp b/src/declarative/fx/qmlgraphicsflipable.cpp deleted file mode 100644 index 05cc214..0000000 --- a/src/declarative/fx/qmlgraphicsflipable.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsflipable_p.h" -#include "private/qmlgraphicsitem_p.h" -#include "QtGui/qgraphicstransform.h" -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QmlGraphicsFlipable) - -class QmlGraphicsFlipablePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsFlipable) -public: - QmlGraphicsFlipablePrivate() : current(QmlGraphicsFlipable::Front), front(0), back(0) {} - - void updateSceneTransformFromParent(); - - QmlGraphicsFlipable::Side current; - QmlGraphicsItem *front; - QmlGraphicsItem *back; -}; - -/*! - \qmlclass Flipable QmlGraphicsFlipable - \brief The Flipable item provides a surface that can be flipped. - \inherits Item - - Flipable allows you to specify a front and a back and then flip between those sides. - - \qml - Flipable { - id: flipable - width: 40 - height: 40 - axis: Axis { - startX: 20 - startY: 0 - endX: 20 - endY: 40 - } - front: Image { source: "front.png" } - back: Image { source: "back.png" } - states: [ - State { - name: "back" - SetProperty { - target: flipable - property: "rotation" - value: 180 - } - } - ] - transitions: [ - Transition { - NumberAnimation { - easing: "easeInOutQuad" - properties: "rotation" - } - } - ] -} - \endqml - - \image flipable.gif -*/ - -/*! - \internal - \class QmlGraphicsFlipable - \brief The QmlGraphicsFlipable class provides a flipable surface. - - \ingroup group_widgets - - QmlGraphicsFlipable allows you to specify a front and a back, as well as an - axis for the flip. -*/ - -QmlGraphicsFlipable::QmlGraphicsFlipable(QmlGraphicsItem *parent) -: QmlGraphicsItem(*(new QmlGraphicsFlipablePrivate), parent) -{ -} - -QmlGraphicsFlipable::~QmlGraphicsFlipable() -{ -} - -/*! - \qmlproperty Item Flipable::front - \qmlproperty Item Flipable::back - - The front and back sides of the flipable. -*/ - -QmlGraphicsItem *QmlGraphicsFlipable::front() -{ - Q_D(const QmlGraphicsFlipable); - return d->front; -} - -void QmlGraphicsFlipable::setFront(QmlGraphicsItem *front) -{ - Q_D(QmlGraphicsFlipable); - if (d->front) { - qmlInfo(tr("front is a write-once property"),this); - return; - } - d->front = front; - fxChildren()->append(d->front); - if (Back == d->current) - d->front->setOpacity(0.); -} - -QmlGraphicsItem *QmlGraphicsFlipable::back() -{ - Q_D(const QmlGraphicsFlipable); - return d->back; -} - -void QmlGraphicsFlipable::setBack(QmlGraphicsItem *back) -{ - Q_D(QmlGraphicsFlipable); - if (d->back) { - qmlInfo(tr("back is a write-once property"),this); - return; - } - d->back = back; - fxChildren()->append(d->back); - if (Front == d->current) - d->back->setOpacity(0.); -} - -/*! - \qmlproperty enumeration Flipable::side - - The side of the Flippable currently visible. Possible values are \c - Front and \c Back. -*/ -QmlGraphicsFlipable::Side QmlGraphicsFlipable::side() const -{ - Q_D(const QmlGraphicsFlipable); - if (d->dirtySceneTransform) - const_cast(d)->updateSceneTransformFromParent(); - - return d->current; -} - -// determination on the currently visible side of the flipable -// has to be done on the complete scene transform to give -// correct results. -void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() -{ - Q_Q(QmlGraphicsFlipable); - - QmlGraphicsItemPrivate::updateSceneTransformFromParent(); - QPointF p1(0, 0); - QPointF p2(1, 0); - QPointF p3(1, 1); - - p1 = sceneTransform.map(p1); - p2 = sceneTransform.map(p2); - p3 = sceneTransform.map(p3); - - qreal cross = (p1.x() - p2.x()) * (p3.y() - p2.y()) - - (p1.y() - p2.y()) * (p3.x() - p2.x()); - - QmlGraphicsFlipable::Side newSide; - if (cross > 0) { - newSide = QmlGraphicsFlipable::Back; - } else { - newSide = QmlGraphicsFlipable::Front; - } - - if (newSide != current) { - current = newSide; - if (current == QmlGraphicsFlipable::Back) { - QTransform mat; - mat.translate(back->width()/2,back->height()/2); - if (back->width() && p1.x() >= p2.x()) - mat.rotate(180, Qt::YAxis); - if (back->height() && p2.y() >= p3.y()) - mat.rotate(180, Qt::XAxis); - mat.translate(-back->width()/2,-back->height()/2); - back->setTransform(mat); - } - if (front) - front->setOpacity((current==QmlGraphicsFlipable::Front)?1.:0.); - if (back) - back->setOpacity((current==QmlGraphicsFlipable::Back)?1.:0.); - emit q->sideChanged(); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsflipable_p.h b/src/declarative/fx/qmlgraphicsflipable_p.h deleted file mode 100644 index 23b6c76..0000000 --- a/src/declarative/fx/qmlgraphicsflipable_p.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSFLIPABLE_H -#define QMLGRAPHICSFLIPABLE_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsFlipablePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem -{ - Q_OBJECT - - Q_ENUMS(Side) - Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) - Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) - Q_PROPERTY(Side side READ side NOTIFY sideChanged) - //### flipAxis - //### flipRotation -public: - QmlGraphicsFlipable(QmlGraphicsItem *parent=0); - ~QmlGraphicsFlipable(); - - QmlGraphicsItem *front(); - void setFront(QmlGraphicsItem *); - - QmlGraphicsItem *back(); - void setBack(QmlGraphicsItem *); - - enum Side { Front, Back }; - Side side() const; - -Q_SIGNALS: - void sideChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsFlipable) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFlipable) - -QT_END_HEADER - -#endif // QMLGRAPHICSFLIPABLE_H diff --git a/src/declarative/fx/qmlgraphicsfocuspanel.cpp b/src/declarative/fx/qmlgraphicsfocuspanel.cpp deleted file mode 100644 index d3ee184..0000000 --- a/src/declarative/fx/qmlgraphicsfocuspanel.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsfocuspanel_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QmlGraphicsFocusPanel) - -/*! - \qmlclass FocusPanel QFxFocusPanel - \brief The FocusPanel item explicitly creates a focus panel. - \inherits Item - - Focus panels assist in keyboard focus handling when building QML - applications. All the details are covered in the - \l {qmlfocus}{keyboard focus documentation}. -*/ - -/*! - \internal - \class QmlGraphicsFocusPanel -*/ - -QmlGraphicsFocusPanel::QmlGraphicsFocusPanel(QmlGraphicsItem *parent) : - QmlGraphicsItem(parent) -{ - setFlag(ItemIsPanel); -} - -QmlGraphicsFocusPanel::~QmlGraphicsFocusPanel() -{ -} - -/*! - \qmlproperty bool FocusPanel::active - - Sets whether the item is the active focus panel. -*/ - -bool QmlGraphicsFocusPanel::sceneEvent(QEvent *event) -{ - if (event->type() == QEvent::WindowActivate || - event->type() == QEvent::WindowDeactivate) - emit activeChanged(); - return QmlGraphicsItem::sceneEvent(event); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsfocuspanel_p.h b/src/declarative/fx/qmlgraphicsfocuspanel_p.h deleted file mode 100644 index d014da2..0000000 --- a/src/declarative/fx/qmlgraphicsfocuspanel_p.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSFOCUSPANEL_H -#define QMLGRAPHICSFOCUSPANEL_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem -{ - Q_OBJECT - Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) -public: - QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusPanel(); - -Q_SIGNALS: - void activeChanged(); - -protected: - bool sceneEvent(QEvent *event); - -private: - Q_DISABLE_COPY(QmlGraphicsFocusPanel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusPanel) - -QT_END_HEADER - -#endif // QMLGRAPHICSFOCUSPANEL_H diff --git a/src/declarative/fx/qmlgraphicsfocusscope.cpp b/src/declarative/fx/qmlgraphicsfocusscope.cpp deleted file mode 100644 index cd30b2b..0000000 --- a/src/declarative/fx/qmlgraphicsfocusscope.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsfocusscope_p.h" - - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QmlGraphicsFocusScope) - -/*! - \qmlclass FocusScope QFxFocusScope - \brief The FocusScope object explicitly creates a focus scope. - \inherits Item - - Focus scopes assist in keyboard focus handling when building reusable QML - components. All the details are covered in the - \l {qmlfocus}{keyboard focus documentation}. -*/ - -/*! - \internal - \class QmlGraphicsFocusScope -*/ - -QmlGraphicsFocusScope::QmlGraphicsFocusScope(QmlGraphicsItem *parent) : - QmlGraphicsItem(parent) -{ - setFlag(QGraphicsItem::ItemIsFocusScope); -} - -QmlGraphicsFocusScope::~QmlGraphicsFocusScope() -{ -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsfocusscope_p.h b/src/declarative/fx/qmlgraphicsfocusscope_p.h deleted file mode 100644 index 813a999..0000000 --- a/src/declarative/fx/qmlgraphicsfocusscope_p.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSFOCUSSCOPE_H -#define QMLGRAPHICSFOCUSSCOPE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -//### set component root as focusscope -class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem -{ - Q_OBJECT -public: - QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsFocusScope(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsFocusScope) - -QT_END_HEADER - -#endif // QMLGRAPHICSFOCUSSCOPE_H diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp deleted file mode 100644 index 2a0d6a6..0000000 --- a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsgraphicsobjectcontainer_p.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGraphicsObjectContainerPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsGraphicsObjectContainer) - -public: - QmlGraphicsGraphicsObjectContainerPrivate() : QmlGraphicsItemPrivate(), graphicsObject(0), syncedResize(false) - { } - - void _q_updateSize(); - - void setFiltering(bool on) - { - Q_Q(QmlGraphicsGraphicsObjectContainer); - if (graphicsObject && graphicsObject->isWidget()) { - if (!on) { - graphicsObject->removeEventFilter(q); - QObject::disconnect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::disconnect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } else { - graphicsObject->installEventFilter(q); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } - } - } - - - QGraphicsObject *graphicsObject; - bool syncedResize; -}; - - -/*! - \qmlclass GraphicsObjectContainer QmlGraphicsGraphicsObjectContainer - \brief The GraphicsObjectContainer element allows you to add QGraphicsObjects into Fluid UI elements. -*/ - -/*! - \internal - \class QmlGraphicsGraphicsObjectContainer - \brief The QmlGraphicsGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. -*/ - -QML_DEFINE_NOCREATE_TYPE(QGraphicsObject) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QmlGraphicsGraphicsObjectContainer) - -QmlGraphicsGraphicsObjectContainer::QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent) -: QmlGraphicsItem(*new QmlGraphicsGraphicsObjectContainerPrivate, parent) -{ -} - -QmlGraphicsGraphicsObjectContainer::~QmlGraphicsGraphicsObjectContainer() -{ -} - -QGraphicsObject *QmlGraphicsGraphicsObjectContainer::graphicsObject() const -{ - Q_D(const QmlGraphicsGraphicsObjectContainer); - return d->graphicsObject; -} - -/*! - \qmlproperty QGraphicsObject GraphicsObjectContainer::graphicsObject - The QGraphicsObject associated with this element. -*/ -void QmlGraphicsGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (object == d->graphicsObject) - return; - - //### remove previously set item? - - d->setFiltering(false); - - d->graphicsObject = object; - - if (d->graphicsObject) { - d->graphicsObject->setParentItem(this); - - if (d->syncedResize && d->graphicsObject->isWidget()) { - QGraphicsWidget *gw = static_cast(d->graphicsObject); - QSizeF gwSize = gw->size(); //### should we use sizeHint? - QSizeF newSize = gwSize; - if (heightValid()) - newSize.setHeight(height()); - if (widthValid()) - newSize.setWidth(width()); - if (gwSize != newSize) - gw->resize(newSize); - - gwSize = gw->size(); - setImplicitWidth(gwSize.width()); - setImplicitHeight(gwSize.height()); - - d->setFiltering(true); - } - } -} - -QVariant QmlGraphicsGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (change == ItemSceneHasChanged) { - QGraphicsObject *o = d->graphicsObject; - d->graphicsObject = 0; - setGraphicsObject(o); - } - return QmlGraphicsItem::itemChange(change, value); -} - -bool QmlGraphicsGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (watched == d->graphicsObject && e->type() == QEvent::GraphicsSceneResize) { - if (d->graphicsObject && d->graphicsObject->isWidget() && d->syncedResize) { - QSizeF newSize = static_cast(d->graphicsObject)->size(); - setImplicitWidth(newSize.width()); - setImplicitHeight(newSize.height()); - } - } - return QmlGraphicsItem::eventFilter(watched, e); -} - -/*! - \qmlproperty bool GraphicsObjectContainer::synchronizedResizing - - This property determines whether or not the container and graphics object will synchronize their - sizes. - - \note This property only applies when wrapping a QGraphicsWidget. - - If synchronizedResizing is enabled, the container and widget will - synchronize their sizes as follows. - \list - \o If a size has been set on the container, the widget will be resized to the container. - Any changes in the container's size will be reflected in the widget. - - \o \e Otherwise, the container will initially be sized to the preferred size of the widget. - Any changes to the container's size will be reflected in the widget, and any changes to the - widget's size will be reflected in the container. - \endlist -*/ -bool QmlGraphicsGraphicsObjectContainer::synchronizedResizing() const -{ - Q_D(const QmlGraphicsGraphicsObjectContainer); - return d->syncedResize; -} - -void QmlGraphicsGraphicsObjectContainer::setSynchronizedResizing(bool on) -{ - Q_D(QmlGraphicsGraphicsObjectContainer); - if (on == d->syncedResize) - return; - - d->syncedResize = on; - d->setFiltering(on); -} - -void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() -{ - if (!graphicsObject || !graphicsObject->isWidget() || !syncedResize) - return; - - QGraphicsWidget *gw = static_cast(graphicsObject); - const QSizeF newSize(width, height); - gw->resize(newSize); - - //### will respecting the widgets min/max ever get us in trouble? (all other items always - // size to exactly what you tell them) - /*QSizeF constrainedSize = newSize.expandedTo(gw->minimumSize()).boundedTo(gw->maximumSize()); - gw->resize(constrainedSize); - if (constrainedSize != newSize) { - setImplicitWidth(constrainedSize.width()); - setImplicitHeight(constrainedSize.height()); - }*/ -} - -#include "moc_qmlgraphicsgraphicsobjectcontainer_p.cpp" - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h b/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h deleted file mode 100644 index 10f08bd..0000000 --- a/src/declarative/fx/qmlgraphicsgraphicsobjectcontainer_p.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H -#define QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QGraphicsObject; -class QmlGraphicsGraphicsObjectContainerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem -{ - Q_OBJECT - - Q_CLASSINFO("DefaultProperty", "graphicsObject") - Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) - Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) - -public: - QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); - ~QmlGraphicsGraphicsObjectContainer(); - - QGraphicsObject *graphicsObject() const; - void setGraphicsObject(QGraphicsObject *); - - bool synchronizedResizing() const; - void setSynchronizedResizing(bool on); - -protected: - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - bool eventFilter(QObject *watched, QEvent *e); - -private: - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QGraphicsObject) -QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) - -QT_END_HEADER - -#endif // QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/fx/qmlgraphicsgridview.cpp b/src/declarative/fx/qmlgraphicsgridview.cpp deleted file mode 100644 index cadd650..0000000 --- a/src/declarative/fx/qmlgraphicsgridview.cpp +++ /dev/null @@ -1,1585 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsgridview_p.h" -#include -#include -#include -#include - -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGridViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsGridViewAttached(QObject *parent) - : QObject(parent), m_isCurrent(false), m_delayRemove(false) {} - ~QmlGraphicsGridViewAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(QmlGraphicsGridView *view READ view CONSTANT) - QmlGraphicsGridView *view() { return m_view; } - - Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) - bool isCurrentItem() const { return m_isCurrent; } - void setIsCurrentItem(bool c) { - if (m_isCurrent != c) { - m_isCurrent = c; - emit currentItemChanged(); - } - } - - Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) - bool delayRemove() const { return m_delayRemove; } - void setDelayRemove(bool delay) { - if (m_delayRemove != delay) { - m_delayRemove = delay; - emit delayRemoveChanged(); - } - } - - static QmlGraphicsGridViewAttached *properties(QObject *obj) { - QmlGraphicsGridViewAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsGridViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - - void emitAdd() { emit add(); } - void emitRemove() { emit remove(); } - -Q_SIGNALS: - void currentItemChanged(); - void delayRemoveChanged(); - void add(); - void remove(); - -public: - QmlGraphicsGridView *m_view; - bool m_isCurrent; - bool m_delayRemove; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsGridViewAttached::attachedProperties; - - -//---------------------------------------------------------------------------- - -class FxGridItem -{ -public: - FxGridItem(QmlGraphicsItem *i, QmlGraphicsGridView *v) : item(i), view(v) { - attached = QmlGraphicsGridViewAttached::properties(item); - attached->m_view = view; - } - ~FxGridItem() {} - - qreal rowPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() : item->x()); } - qreal colPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->x() : item->y()); } - qreal endRowPos() const { - return view->flow() == QmlGraphicsGridView::LeftToRight - ? item->y() + view->cellHeight() - 1 - : item->x() + view->cellWidth() - 1; - } - void setPosition(qreal col, qreal row) { - if (view->flow() == QmlGraphicsGridView::LeftToRight) { - item->setPos(QPointF(col, row)); - } else { - item->setPos(QPointF(row, col)); - } - } - - QmlGraphicsItem *item; - QmlGraphicsGridView *view; - QmlGraphicsGridViewAttached *attached; - int index; -}; - -//---------------------------------------------------------------------------- - -class QmlGraphicsGridViewPrivate : public QmlGraphicsFlickablePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsGridView) - -public: - QmlGraphicsGridViewPrivate() - : model(0), currentItem(0), flow(QmlGraphicsGridView::LeftToRight) - , visiblePos(0), visibleIndex(0) , currentIndex(-1) - , cellWidth(100), cellHeight(100), columns(1), requestedIndex(-1) - , highlightComponent(0), highlight(0), trackedItem(0) - , moveReason(Other), buffer(0), highlightXAnimator(0), highlightYAnimator(0) - , ownModel(false), wrap(false), autoHighlight(true) - , fixCurrentVisibility(false) {} - - void init(); - void clear(); - FxGridItem *createItem(int modelIndex); - void releaseItem(FxGridItem *item); - void refill(qreal from, qreal to); - - void updateGrid(); - void layout(bool removed=false); - void updateUnrequestedIndexes(); - void updateUnrequestedPositions(); - void updateTrackedItem(); - void createHighlight(); - void updateHighlight(); - void updateCurrent(int modelIndex); - - FxGridItem *visibleItem(int modelIndex) const { - if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { - for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { - FxGridItem *item = visibleItems.at(i); - if (item->index == modelIndex) - return item; - } - } - return 0; - } - - qreal position() const { - Q_Q(const QmlGraphicsGridView); - return flow == QmlGraphicsGridView::LeftToRight ? q->viewportY() : q->viewportX(); - } - void setPosition(qreal pos) { - Q_Q(QmlGraphicsGridView); - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportY(pos); - else - q->setViewportX(pos); - } - int size() const { - Q_Q(const QmlGraphicsGridView); - return flow == QmlGraphicsGridView::LeftToRight ? q->height() : q->width(); - } - qreal startPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) - pos = visibleItems.first()->rowPos() - visibleIndex / columns * rowSize(); - return pos; - } - - qreal endPosition() const { - qreal pos = 0; - if (model && model->count()) - pos = rowPosAt(model->count() - 1) + rowSize(); - return pos; - } - - bool isValid() const { - return model && model->count() && model->isValid(); - } - - int rowSize() const { - return flow == QmlGraphicsGridView::LeftToRight ? cellHeight : cellWidth; - } - int colSize() const { - return flow == QmlGraphicsGridView::LeftToRight ? cellWidth : cellHeight; - } - - qreal colPosAt(int modelIndex) const { - if (FxGridItem *item = visibleItem(modelIndex)) - return item->colPos(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int count = (visibleIndex - modelIndex) % columns; - int col = visibleItems.first()->colPos() / colSize(); - col = (columns - count + col) % columns; - return col * colSize(); - } else { - int count = columns - 1 - (modelIndex - visibleItems.last()->index - 1) % columns; - return visibleItems.last()->colPos() - count * colSize(); - } - } else { - return (modelIndex % columns) * colSize(); - } - return 0; - } - qreal rowPosAt(int modelIndex) const { - if (FxGridItem *item = visibleItem(modelIndex)) - return item->rowPos(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int firstCol = visibleItems.first()->colPos() / colSize(); - int col = visibleIndex - modelIndex + (columns - firstCol - 1); - int rows = col / columns; - return visibleItems.first()->rowPos() - rows * rowSize(); - } else { - int count = modelIndex - visibleItems.last()->index; - int col = visibleItems.last()->colPos() + count * colSize(); - int rows = col / (columns * colSize()); - return visibleItems.last()->rowPos() + rows * rowSize(); - } - } else { - return (modelIndex / columns) * rowSize(); - } - return 0; - } - - // Map a model index to visibleItems list index. - // These may differ if removed items are still present in the visible list, - // e.g. doing a removal animation - int mapFromModel(int modelIndex) const { - if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) - return -1; - for (int i = 0; i < visibleItems.count(); ++i) { - FxGridItem *listItem = visibleItems.at(i); - if (listItem->index == modelIndex) - return i + visibleIndex; - if (listItem->index > modelIndex) - return -1; - } - return -1; // Not in visibleList - } - - // for debugging only - void checkVisible() const { - int skip = 0; - for (int i = 0; i < visibleItems.count(); ++i) { - FxGridItem *listItem = visibleItems.at(i); - if (listItem->index == -1) { - ++skip; - } else if (listItem->index != visibleIndex + i - skip) { - for (int j = 0; j < visibleItems.count(); j++) - qDebug() << " index" << j << "item index" << visibleItems.at(j)->index; - qFatal("index %d %d %d", visibleIndex, i, listItem->index); - } - } - } - - QmlGraphicsVisualModel *model; - QVariant modelVariant; - QList visibleItems; - QHash unrequestedItems; - FxGridItem *currentItem; - QmlGraphicsGridView::Flow flow; - int visiblePos; - int visibleIndex; - int currentIndex; - int cellWidth; - int cellHeight; - int columns; - int requestedIndex; - QmlComponent *highlightComponent; - FxGridItem *highlight; - FxGridItem *trackedItem; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; - int buffer; - QmlEaseFollow *highlightXAnimator; - QmlEaseFollow *highlightYAnimator; - - int ownModel : 1; - int wrap : 1; - int autoHighlight : 1; - int fixCurrentVisibility : 1; -}; - -void QmlGraphicsGridViewPrivate::init() -{ - Q_Q(QmlGraphicsGridView); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(sizeChange())); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(sizeChange())); -} - -void QmlGraphicsGridViewPrivate::clear() -{ - for (int i = 0; i < visibleItems.count(); ++i) - releaseItem(visibleItems.at(i)); - visibleItems.clear(); - visiblePos = 0; - visibleIndex = 0; - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - createHighlight(); - trackedItem = 0; -} - -FxGridItem *QmlGraphicsGridViewPrivate::createItem(int modelIndex) -{ - Q_Q(QmlGraphicsGridView); - // create object - requestedIndex = modelIndex; - FxGridItem *listItem = 0; - if (QmlGraphicsItem *item = model->item(modelIndex, false)) { - listItem = new FxGridItem(item, q); - listItem->index = modelIndex; - // complete - model->completeItem(); - listItem->item->setZValue(modelIndex + 1); - listItem->item->setParent(q->viewport()); - } - requestedIndex = 0; - return listItem; -} - - -void QmlGraphicsGridViewPrivate::releaseItem(FxGridItem *item) -{ - Q_Q(QmlGraphicsGridView); - if (!item) - return; - if (trackedItem == item) { - QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - if (model->release(item->item) == 0) { - // item was not destroyed, and we no longer reference it. - unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - } - delete item; -} - -void QmlGraphicsGridViewPrivate::refill(qreal from, qreal to) -{ - Q_Q(QmlGraphicsGridView); - if (!isValid() || !q->isComponentComplete()) - return; - - from -= buffer; - to += buffer; - bool changed = false; - - int colPos = 0; - int rowPos = 0; - int modelIndex = 0; - if (visibleItems.count()) { - rowPos = visibleItems.last()->rowPos(); - colPos = visibleItems.last()->colPos() + colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - int i = visibleItems.count() - 1; - while (i > 0 && visibleItems.at(i)->index == -1) - --i; - modelIndex = visibleItems.at(i)->index + 1; - } - - FxGridItem *item = 0; - while (modelIndex < model->count() && rowPos <= to) { - //qDebug() << "refill: append item" << modelIndex; - if (!(item = createItem(modelIndex))) - break; - item->setPosition(colPos, rowPos); - visibleItems.append(item); - colPos += colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - ++modelIndex; - changed = true; - } - - if (visibleItems.count()) { - rowPos = visibleItems.first()->rowPos(); - colPos = visibleItems.first()->colPos() - colSize(); - if (colPos < 0) { - colPos = colSize() * (columns - 1); - rowPos -= rowSize(); - } - } - while (visibleIndex > 0 && rowPos + rowSize() - 1 >= from){ - //qDebug() << "refill: prepend item" << visibleIndex-1 << "top pos" << rowPos << colPos; - if (!(item = createItem(visibleIndex-1))) - break; - --visibleIndex; - item->setPosition(colPos, rowPos); - visibleItems.prepend(item); - colPos -= colSize(); - if (colPos < 0) { - colPos = colSize() * (columns - 1); - rowPos -= rowSize(); - } - changed = true; - } - - while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endRowPos() < from) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endRowPos(); - if (item->index != -1) - visibleIndex++; - visibleItems.removeFirst(); - releaseItem(item); - changed = true; - } - while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->rowPos() > to) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; - visibleItems.removeLast(); - releaseItem(item); - changed = true; - } - if (changed) { - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } -} - -void QmlGraphicsGridViewPrivate::updateGrid() -{ - Q_Q(QmlGraphicsGridView); - columns = (int)qMax((flow == QmlGraphicsGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); - if (isValid()) { - if (flow == QmlGraphicsGridView::LeftToRight) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } -} - -void QmlGraphicsGridViewPrivate::layout(bool removed) -{ - Q_Q(QmlGraphicsGridView); - if (visibleItems.count()) { - qreal rowPos = visibleItems.first()->rowPos(); - qreal colPos = visibleItems.first()->colPos(); - if (visibleIndex % columns != 0) { - if (removed) - rowPos -= rowSize(); - colPos = (visibleIndex % columns) * colSize(); - visibleItems.first()->setPosition(colPos, rowPos); - } else if (colPos != 0) { - colPos = 0; - visibleItems.first()->setPosition(colPos, rowPos); - } - for (int i = 1; i < visibleItems.count(); ++i) { - FxGridItem *item = visibleItems.at(i); - colPos += colSize(); - if (colPos > colSize() * (columns-1)) { - colPos = 0; - rowPos += rowSize(); - } - item->setPosition(colPos, rowPos); - } - } - q->refill(); - q->trackedPositionChanged(); - updateHighlight(); - if (flow == QmlGraphicsGridView::LeftToRight) { - q->setViewportHeight(endPosition() - startPosition()); - fixupY(); - } else { - q->setViewportWidth(endPosition() - startPosition()); - fixupX(); - } - updateUnrequestedPositions(); -} - -void QmlGraphicsGridViewPrivate::updateUnrequestedIndexes() -{ - Q_Q(QmlGraphicsGridView); - QHash::iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) - *it = model->indexOf(it.key(), q); -} - -void QmlGraphicsGridViewPrivate::updateUnrequestedPositions() -{ - QHash::const_iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { - if (flow == QmlGraphicsGridView::LeftToRight) { - it.key()->setPos(QPointF(colPosAt(*it), rowPosAt(*it))); - } else { - it.key()->setPos(QPointF(rowPosAt(*it), colPosAt(*it))); - } - } -} - -void QmlGraphicsGridViewPrivate::updateTrackedItem() -{ - Q_Q(QmlGraphicsGridView); - FxGridItem *item = currentItem; - if (highlight) - item = highlight; - - if (trackedItem && item != trackedItem) { - QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - - if (!trackedItem && item) { - trackedItem = item; - QObject::connect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); - QObject::connect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); - q->trackedPositionChanged(); - } - if (trackedItem) - q->trackedPositionChanged(); -} - -void QmlGraphicsGridViewPrivate::createHighlight() -{ - Q_Q(QmlGraphicsGridView); - if (highlight) { - if (trackedItem == highlight) - trackedItem = 0; - delete highlight->item; - delete highlight; - highlight = 0; - delete highlightXAnimator; - delete highlightYAnimator; - highlightXAnimator = 0; - highlightYAnimator = 0; - } - - if (!highlightComponent) - return; - - if (currentItem) { - QmlContext *highlightContext = new QmlContext(qmlContext(q)); - QObject *nobj = highlightComponent->create(highlightContext); - if (nobj) { - highlightContext->setParent(nobj); - QmlGraphicsItem *item = qobject_cast(nobj); - if (item) { - item->setParent(q->viewport()); - highlight = new FxGridItem(item, q); - highlightXAnimator = new QmlEaseFollow(q); - highlightXAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("x"))); - highlightXAnimator->setDuration(150); - highlightXAnimator->setEnabled(autoHighlight); - highlightYAnimator = new QmlEaseFollow(q); - highlightYAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("y"))); - highlightYAnimator->setDuration(150); - highlightYAnimator->setEnabled(autoHighlight); - } else { - delete highlightContext; - } - } - } -} - -void QmlGraphicsGridViewPrivate::updateHighlight() -{ - if ((!currentItem && highlight) || (currentItem && !highlight)) - createHighlight(); - updateTrackedItem(); - if (currentItem && autoHighlight && highlight) { - // auto-update highlight - highlightXAnimator->setSourceValue(currentItem->item->x()); - highlightYAnimator->setSourceValue(currentItem->item->y()); - highlight->item->setWidth(currentItem->item->width()); - highlight->item->setHeight(currentItem->item->height()); - } -} - -void QmlGraphicsGridViewPrivate::updateCurrent(int modelIndex) -{ - Q_Q(QmlGraphicsGridView); - if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { - if (currentItem) { - currentItem->attached->setIsCurrentItem(false); - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - updateHighlight(); - emit q->currentIndexChanged(); - } - return; - } - - if (currentItem && currentIndex == modelIndex) { - updateHighlight(); - return; - } - - FxGridItem *oldCurrentItem = currentItem; - currentIndex = modelIndex; - currentItem = createItem(modelIndex); - fixCurrentVisibility = true; - if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) - oldCurrentItem->attached->setIsCurrentItem(false); - if (currentItem) { - currentItem->setPosition(colPosAt(modelIndex), rowPosAt(modelIndex)); - currentItem->item->setFocus(true); - currentItem->attached->setIsCurrentItem(true); - } - updateHighlight(); - emit q->currentIndexChanged(); - releaseItem(oldCurrentItem); -} - -//---------------------------------------------------------------------------- - -/*! - \qmlclass GridView QFxGridView - \inherits Flickable - \brief The GridView item provides a grid view of items provided by a model. - - The model is typically provided by a QAbstractListModel "C++ model object", - but can also be created directly in QML. - - The items are laid out top to bottom (vertically) or left to right (horizontally) - and may be flicked to scroll. - - The below example creates a very simple grid, using a QML model. - - \image gridview.png - - \snippet doc/src/snippets/declarative/gridview/gridview.qml 3 - - The model is defined as a ListModel using QML: - \quotefile doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml - - In this case ListModel is a handy way for us to test our UI. In practice - the model would be implemented in C++, or perhaps via a SQL data source. -*/ -QmlGraphicsGridView::QmlGraphicsGridView(QmlGraphicsItem *parent) - : QmlGraphicsFlickable(*(new QmlGraphicsGridViewPrivate), parent) -{ - Q_D(QmlGraphicsGridView); - d->init(); -} - -QmlGraphicsGridView::~QmlGraphicsGridView() -{ - Q_D(QmlGraphicsGridView); - d->clear(); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlattachedproperty bool GridView::isCurrentItem - This attched property is true if this delegate is the current item; otherwise false. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty GridView GridView::view - This attached property holds the view that manages this delegate instance. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty bool GridView::delayRemove - This attached property holds whether the delegate may be destroyed. - - It is attached to each instance of the delegate. - - It is sometimes necessary to delay the destruction of an item - until an animation completes. - - The example below ensures that the animation completes before - the item is removed from the grid. - - \code - Component { - id: myDelegate - Item { - id: wrapper - GridView.onRemove: SequentialAnimation { - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: true } - NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: false } - } - } - } - \endcode -*/ - -/*! - \qmlattachedsignal GridView::onAdd() - This attached handler is called immediately after an item is added to the view. -*/ - -/*! - \qmlattachedsignal GridView::onRemove() - This attached handler is called immediately before an item is removed from the view. -*/ - - -/*! - \qmlproperty model GridView::model - This property holds the model providing data for the grid. - - The model provides a set of data that is used to create the items - for the view. For large or dynamic datasets the model is usually - provided by a C++ model object. The C++ model object must be a \l - {QAbstractItemModel} subclass, a VisualModel, or a simple list. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsGridView::model() const -{ - Q_D(const QmlGraphicsGridView); - return d->modelVariant; -} - -void QmlGraphicsGridView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsGridView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - } - d->clear(); - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - if (d->currentIndex >= d->model->count() || d->currentIndex < 0) - setCurrentIndex(0); - else - d->updateCurrent(d->currentIndex); - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - refill(); - emit countChanged(); - } -} - -/*! - \qmlproperty component GridView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 -*/ -QmlComponent *QmlGraphicsGridView::delegate() const -{ - Q_D(const QmlGraphicsGridView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsGridView::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsGridView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - d->updateCurrent(d->currentIndex); - refill(); - } -} - -/*! - \qmlproperty int GridView::currentIndex - \qmlproperty Item GridView::currentItem - - \c currentIndex holds the index of the current item. - \c currentItem is the current item. Note that the position of the current item - may only be approximate until it becomes visible in the view. -*/ -int QmlGraphicsGridView::currentIndex() const -{ - Q_D(const QmlGraphicsGridView); - return d->currentIndex; -} - -void QmlGraphicsGridView::setCurrentIndex(int index) -{ - Q_D(QmlGraphicsGridView); - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { - cancelFlick(); - d->updateCurrent(index); - } else { - d->currentIndex = index; - } -} - -QmlGraphicsItem *QmlGraphicsGridView::currentItem() -{ - Q_D(QmlGraphicsGridView); - if (!d->currentItem) - return 0; - return d->currentItem->item; -} - -/*! - \qmlproperty int GridView::count - This property holds the number of items in the view. -*/ -int QmlGraphicsGridView::count() const -{ - Q_D(const QmlGraphicsGridView); - if (d->model) - return d->model->count(); - return 0; -} - -/*! - \qmlproperty component GridView::highlight - This property holds the component to use as the highlight. - - An instance of the highlight component will be created for each view. - The geometry of the resultant component instance will be managed by the view - so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. - - The below example demonstrates how to make a simple highlight: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 - - \sa highlightFollowsCurrentItem -*/ -QmlComponent *QmlGraphicsGridView::highlight() const -{ - Q_D(const QmlGraphicsGridView); - return d->highlightComponent; -} - -void QmlGraphicsGridView::setHighlight(QmlComponent *highlight) -{ - Q_D(QmlGraphicsGridView); - delete d->highlightComponent; - d->highlightComponent = highlight; - d->updateCurrent(d->currentIndex); -} - -/*! - \qmlproperty bool GridView::highlightFollowsCurrentItem - This property sets whether the highlight is managed by the view. - - If highlightFollowsCurrentItem is true, the highlight will be moved smoothly - to follow the current item. If highlightFollowsCurrentItem is false, the - highlight will not be moved by the view, and must be implemented - by the highlight component, for example: - - \code - Component { - id: myHighlight - Rectangle { - id: wrapper; color: "lightsteelblue"; radius: 4; width: 320; height: 60 > - y: SpringFollow { source: Wrapper.GridView.view.currentItem.y; spring: 3; damping: 0.2 } - x: SpringFollow { source: Wrapper.GridView.view.currentItem.x; spring: 3; damping: 0.2 } - } - } - \endcode -*/ -bool QmlGraphicsGridView::highlightFollowsCurrentItem() const -{ - Q_D(const QmlGraphicsGridView); - return d->autoHighlight; -} - -void QmlGraphicsGridView::setHighlightFollowsCurrentItem(bool autoHighlight) -{ - Q_D(QmlGraphicsGridView); - d->autoHighlight = autoHighlight; - if (d->highlightXAnimator) { - d->highlightXAnimator->setEnabled(d->autoHighlight); - d->highlightYAnimator->setEnabled(d->autoHighlight); - } - d->updateHighlight(); -} - -/*! - \qmlproperty enumeration GridView::flow - This property holds the flow of the grid. - - Possible values are \c LeftToRight (default) and \c TopToBottom. - - If \a flow is \c LeftToRight, the view will scroll vertically. - If \a flow is \c TopToBottom, the view will scroll horizontally. -*/ -QmlGraphicsGridView::Flow QmlGraphicsGridView::flow() const -{ - Q_D(const QmlGraphicsGridView); - return d->flow; -} - -void QmlGraphicsGridView::setFlow(Flow flow) -{ - Q_D(QmlGraphicsGridView); - if (d->flow != flow) { - d->flow = flow; - if (d->flow == LeftToRight) - setViewportWidth(-1); - else - setViewportHeight(-1); - d->clear(); - d->updateGrid(); - refill(); - d->updateCurrent(d->currentIndex); - } -} - -/*! - \qmlproperty bool GridView::keyNavigationWraps - This property holds whether the grid wraps key navigation - - If this property is true then key presses to move off of one end of the grid will cause the - selection to jump to the other side. -*/ -bool QmlGraphicsGridView::isWrapEnabled() const -{ - Q_D(const QmlGraphicsGridView); - return d->wrap; -} - -void QmlGraphicsGridView::setWrapEnabled(bool wrap) -{ - Q_D(QmlGraphicsGridView); - d->wrap = wrap; -} - -/*! - \qmlproperty int GridView::cacheBuffer - This property holds the number of off-screen pixels to cache. - - This property determines the number of pixels above the top of the view - and below the bottom of the view to cache. Setting this value can make - scrolling the view smoother at the expense of additional memory usage. -*/ -int QmlGraphicsGridView::cacheBuffer() const -{ - Q_D(const QmlGraphicsGridView); - return d->buffer; -} - -void QmlGraphicsGridView::setCacheBuffer(int buffer) -{ - Q_D(QmlGraphicsGridView); - if (d->buffer != buffer) { - d->buffer = buffer; - if (isComponentComplete()) - refill(); - } -} - -/*! - \qmlproperty int GridView::cellWidth - \qmlproperty int GridView::cellHeight - - These properties holds the width and height of each cell in the grid - - The default sell size is 100x100. -*/ -int QmlGraphicsGridView::cellWidth() const -{ - Q_D(const QmlGraphicsGridView); - return d->cellWidth; -} - -void QmlGraphicsGridView::setCellWidth(int cellWidth) -{ - Q_D(QmlGraphicsGridView); - if (cellWidth != d->cellWidth && cellWidth > 0) { - d->cellWidth = qMax(1, cellWidth); - d->updateGrid(); - emit cellWidthChanged(); - d->layout(); - } -} - -int QmlGraphicsGridView::cellHeight() const -{ - Q_D(const QmlGraphicsGridView); - return d->cellHeight; -} - -void QmlGraphicsGridView::setCellHeight(int cellHeight) -{ - Q_D(QmlGraphicsGridView); - if (cellHeight != d->cellHeight && cellHeight > 0) { - d->cellHeight = qMax(1, cellHeight); - d->updateGrid(); - emit cellHeightChanged(); - d->layout(); - } -} - -void QmlGraphicsGridView::sizeChange() -{ - Q_D(QmlGraphicsGridView); - if (isComponentComplete()) { - d->updateGrid(); - d->layout(); - } -} - -void QmlGraphicsGridView::viewportMoved() -{ - QmlGraphicsFlickable::viewportMoved(); - refill(); -} - -qreal QmlGraphicsGridView::minYExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::TopToBottom) - return QmlGraphicsFlickable::minYExtent(); - return -d->startPosition(); -} - -qreal QmlGraphicsGridView::maxYExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::TopToBottom) - return QmlGraphicsFlickable::maxYExtent(); - return -(d->endPosition() - height()); -} - -qreal QmlGraphicsGridView::minXExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) - return QmlGraphicsFlickable::minXExtent(); - return -d->startPosition(); -} - -qreal QmlGraphicsGridView::maxXExtent() const -{ - Q_D(const QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) - return QmlGraphicsFlickable::maxXExtent(); - return -(d->endPosition() - width()); -} - -void QmlGraphicsGridView::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsGridView); - QmlGraphicsFlickable::keyPressEvent(event); - if (event->isAccepted()) - return; - - if (d->model && d->model->count() && d->interactive) { - d->moveReason = QmlGraphicsGridViewPrivate::Key; - int oldCurrent = currentIndex(); - switch (event->key()) { - case Qt::Key_Up: - moveCurrentIndexUp(); - break; - case Qt::Key_Down: - moveCurrentIndexDown(); - break; - case Qt::Key_Left: - moveCurrentIndexLeft(); - break; - case Qt::Key_Right: - moveCurrentIndexRight(); - break; - default: - break; - } - if (oldCurrent != currentIndex()) { - event->accept(); - return; - } - } - d->moveReason = QmlGraphicsGridViewPrivate::Other; - event->ignore(); -} - -/*! - \qmlmethod GridView::moveCurrentIndexUp - - Move the currentIndex up one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexUp() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() >= d->columns || d->wrap) { - int index = currentIndex() - d->columns; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } else { - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex() - 1; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexDown - - Move the currentIndex down one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexDown() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() < d->model->count() - d->columns || d->wrap) { - int index = currentIndex()+d->columns; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } else { - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex() + 1; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexLeft - - Move the currentIndex left one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexLeft() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex() - 1; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } else { - if (currentIndex() >= d->columns || d->wrap) { - int index = currentIndex() - d->columns; - setCurrentIndex(index >= 0 ? index : d->model->count()-1); - } - } -} - -/*! - \qmlmethod GridView::moveCurrentIndexRight - - Move the currentIndex right one item in the view. - The current index will wrap if keyNavigationWraps is true and it - is currently at the end. -*/ -void QmlGraphicsGridView::moveCurrentIndexRight() -{ - Q_D(QmlGraphicsGridView); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex() + 1; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } else { - if (currentIndex() < d->model->count() - d->columns || d->wrap) { - int index = currentIndex()+d->columns; - setCurrentIndex(index < d->model->count() ? index : 0); - } - } -} - -void QmlGraphicsGridView::componentComplete() -{ - Q_D(QmlGraphicsGridView); - QmlGraphicsFlickable::componentComplete(); - d->updateGrid(); - if (d->currentIndex < 0) - d->updateCurrent(0); - refill(); -} - -void QmlGraphicsGridView::trackedPositionChanged() -{ - Q_D(QmlGraphicsGridView); - if (!d->trackedItem) - return; - if (!isFlicking() && !d->pressed && d->moveReason == QmlGraphicsGridViewPrivate::Key) { - if (d->trackedItem->rowPos() < d->position()) { - d->setPosition(d->trackedItem->rowPos()); - } else if (d->trackedItem->endRowPos() > d->position() + d->size()) { - qreal pos = d->trackedItem->endRowPos() - d->size(); - if (d->rowSize() > d->size()) - pos = d->trackedItem->rowPos(); - d->setPosition(pos); - } - } -} - -void QmlGraphicsGridView::itemsInserted(int modelIndex, int count) -{ - Q_D(QmlGraphicsGridView); - if (!d->visibleItems.count() || d->model->count() <= 1) { - refill(); - d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); - emit countChanged(); - return; - } - - int index = d->mapFromModel(modelIndex); - if (index == -1) { - int i = d->visibleItems.count() - 1; - while (i > 0 && d->visibleItems.at(i)->index == -1) - --i; - if (d->visibleItems.at(i)->index + 1 == modelIndex) { - // Special case of appending an item to the model. - index = d->visibleIndex + d->visibleItems.count(); - } else { - if (modelIndex + count - 1 < d->visibleIndex) { - // Insert before visible items - d->visibleIndex += count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxGridItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index += count; - } - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) - d->currentItem->index = d->currentIndex; - } - d->layout(); - emit countChanged(); - return; - } - } - - // At least some of the added items will be visible - int insertCount = count; - if (index < d->visibleIndex) { - insertCount -= d->visibleIndex - index; - index = d->visibleIndex; - modelIndex = d->visibleIndex; - } - - index -= d->visibleIndex; - int to = d->buffer+d->position()+d->size()-1; - int colPos, rowPos; - if (index < d->visibleItems.count()) { - colPos = d->visibleItems.at(index)->colPos(); - rowPos = d->visibleItems.at(index)->rowPos(); - } else { - // appending items to visible list - colPos = d->visibleItems.at(index-1)->colPos() + d->colSize(); - rowPos = d->visibleItems.at(index-1)->rowPos(); - if (colPos > d->colSize() * (d->columns-1)) { - colPos = 0; - rowPos += d->rowSize(); - } - } - - QList added; - int i = 0; - for (; i < insertCount && rowPos + d->rowSize() - 1 <= to; ++i) { - int mod = (modelIndex+i) % d->columns; - while (mod++ < d->columns && modelIndex + i < d->model->count() && i < insertCount) { - FxGridItem *item = d->createItem(modelIndex + i); - d->visibleItems.insert(index, item); - item->setPosition(colPos, rowPos); - added.append(item); - colPos += d->colSize(); - if (colPos > d->colSize() * (d->columns-1)) { - colPos = 0; - rowPos += d->rowSize(); - } - ++index; - ++i; - } - } - - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) { - d->currentItem->index = d->currentIndex; - d->currentItem->setPosition(d->colPosAt(d->currentIndex), d->rowPosAt(d->currentIndex)); - } - } - if (i < insertCount) { - // We didn't insert all our new items, which means anything - // beyond the current index is not visible - remove it. - while (d->visibleItems.count() > index) - d->releaseItem(d->visibleItems.takeLast()); - } else { - // Update the indexes of the following visible items. - for (; index < d->visibleItems.count(); ++index) { - FxGridItem *listItem = d->visibleItems.at(index); - if (listItem->index != -1) - listItem->index += count; - } - } - // everything is in order now - emit add() signal - for (int j = 0; j < added.count(); ++j) - added.at(j)->attached->emitAdd(); - d->layout(); - emit countChanged(); -} - -void QmlGraphicsGridView::itemsRemoved(int modelIndex, int count) -{ - Q_D(QmlGraphicsGridView); - bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; - int index = d->mapFromModel(modelIndex); - if (index == -1) { - if (modelIndex + count - 1 < d->visibleIndex) { - // Items removed before our visible items. - d->visibleIndex -= count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxGridItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index -= count; - } - } - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - d->layout(true); - emit countChanged(); - return; - } - - // Remove the items from the visible list, skipping anything already marked for removal - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (item->index == -1 || item->index < modelIndex) { - // already removed, or before removed items - ++it; - } else if (item->index >= modelIndex + count) { - // after removed items - item->index -= count; - ++it; - } else { - // removed item - item->attached->emitRemove(); - if (item->attached->delayRemove()) { - item->index = -1; - connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); - ++it; - } else { - it = d->visibleItems.erase(it); - d->releaseItem(item); - } - } - } - - // fix current - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - - // update visibleIndex - for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { - if ((*it)->index != -1) { - d->visibleIndex = (*it)->index; - break; - } - } - - if (d->visibleItems.isEmpty()) { - d->visibleIndex = 0; - d->setPosition(0); - refill(); - } else { - // Correct the positioning of the items - d->layout(); - } - emit countChanged(); -} - -void QmlGraphicsGridView::destroyRemoved() -{ - Q_D(QmlGraphicsGridView); - for (QList::Iterator it = d->visibleItems.begin(); - it != d->visibleItems.end();) { - FxGridItem *listItem = *it; - if (listItem->index == -1 && listItem->attached->delayRemove() == false) { - d->releaseItem(listItem); - it = d->visibleItems.erase(it); - } else { - ++it; - } - } - - // Correct the positioning of the items - d->layout(); -} - -void QmlGraphicsGridView::itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsGridView); - QHash moved; - - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (item->index >= from && item->index < from + count) { - // take the items that are moving - item->index += (to-from); - moved.insert(item->index, item); - it = d->visibleItems.erase(it); - } else { - if (item->index > from && item->index != -1) { - // move everything after the moved items. - item->index -= count; - } - ++it; - } - } - - int remaining = count; - int endIndex = d->visibleIndex; - it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxGridItem *item = *it; - if (remaining && item->index >= to && item->index < to + count) { - // place items in the target position, reusing any existing items - FxGridItem *movedItem = moved.take(item->index); - if (!movedItem) - movedItem = d->createItem(item->index); - it = d->visibleItems.insert(it, movedItem); - ++it; - --remaining; - } else { - if (item->index != -1) { - if (item->index >= to) { - // update everything after the moved items. - item->index += count; - } - endIndex = item->index; - } - ++it; - } - } - - // If we have moved items to the end of the visible items - // then add any existing moved items that we have - while (FxGridItem *item = moved.take(endIndex+1)) { - d->visibleItems.append(item); - ++endIndex; - } - - // Whatever moved items remain are no longer visible items. - while (moved.count()) - d->releaseItem(moved.take(moved.begin().key())); - - d->layout(); -} - -void QmlGraphicsGridView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsGridView); - item->setParentItem(this); - if (d->requestedIndex != index) { - item->setParentItem(this); - d->unrequestedItems.insert(item, index); - if (d->flow == QmlGraphicsGridView::LeftToRight) { - item->setPos(QPointF(d->colPosAt(index), d->rowPosAt(index))); - } else { - item->setPos(QPointF(d->rowPosAt(index), d->colPosAt(index))); - } - } -} - -void QmlGraphicsGridView::destroyingItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsGridView); - d->unrequestedItems.remove(item); -} - - -void QmlGraphicsGridView::refill() -{ - Q_D(QmlGraphicsGridView); - d->refill(d->position(), d->position()+d->size()-1); -} - - -QmlGraphicsGridViewAttached *QmlGraphicsGridView::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsGridViewAttached::properties(obj); -} - -QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView) - -QT_END_NAMESPACE - -#include "qmlgraphicsgridview.moc" diff --git a/src/declarative/fx/qmlgraphicsgridview_p.h b/src/declarative/fx/qmlgraphicsgridview_p.h deleted file mode 100644 index 3fd36bd..0000000 --- a/src/declarative/fx/qmlgraphicsgridview_p.h +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSGRIDVIEW_H -#define QMLGRAPHICSGRIDVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsVisualModel; -class QmlGraphicsGridViewAttached; -class QmlGraphicsGridViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - Q_PROPERTY(Flow flow READ flow WRITE setFlow) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) - Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsGridView(QmlGraphicsItem *parent=0); - ~QmlGraphicsGridView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - Q_ENUMS(Flow) - enum Flow { LeftToRight, TopToBottom }; - Flow flow() const; - void setFlow(Flow); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - int cellWidth() const; - void setCellWidth(int); - - int cellHeight() const; - void setCellHeight(int); - - static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void moveCurrentIndexUp(); - void moveCurrentIndexDown(); - void moveCurrentIndexLeft(); - void moveCurrentIndexRight(); - -Q_SIGNALS: - void countChanged(); - void currentIndexChanged(); - void cellWidthChanged(); - void cellHeightChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void trackedPositionChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - void sizeChange(); - -private: - void refill(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsGridView) -QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsimage.cpp b/src/declarative/fx/qmlgraphicsimage.cpp deleted file mode 100644 index fd220a3..0000000 --- a/src/declarative/fx/qmlgraphicsimage.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsimage_p.h" -#include "qmlgraphicsimage_p_p.h" - -#include -#include - -QT_BEGIN_NAMESPACE - - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QmlGraphicsImage) - -/*! - \qmlclass Image QmlGraphicsImage - \brief The Image element allows you to add bitmaps to a scene. - \inherits Item - - The Image element supports untransformed, stretched and tiled. - - For an explanation of stretching and tiling, see the fillMode property description. - - Examples: - \table - \row - \o \image declarative-qtlogo1.png - \o Untransformed - \qml - Image { source: "pics/qtlogo.png" } - \endqml - \row - \o \image declarative-qtlogo2.png - \o fillMode: Stretch (default) - \qml - Image { - width: 160 - height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo3.png - \o fillMode: Tile - \qml - Image { - fillMode: Image.Tile - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo6.png - \o fillMode: TileVertically - \qml - Image { - fillMode: Image.TileVertically - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \row - \o \image declarative-qtlogo5.png - \o fillMode: TileHorizontally - \qml - Image { - fillMode: Image.TileHorizontally - width: 160; height: 160 - source: "pics/qtlogo.png" - } - \endqml - \endtable - */ - -/*! - \internal - \class QmlGraphicsImage Image - \brief The QmlGraphicsImage class provides an image item that you can add to a QmlView. - - \ingroup group_coreitems - - Example: - \qml - Image { source: "pics/star.png" } - \endqml - - A QmlGraphicsImage object can be instantiated in Qml using the tag \l Image. -*/ - -QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsItem *parent) - : QmlGraphicsImageBase(*(new QmlGraphicsImagePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImageBase(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsImage::~QmlGraphicsImage() -{ -} - -QPixmap QmlGraphicsImage::pixmap() const -{ - Q_D(const QmlGraphicsImage); - return d->pix; -} - -void QmlGraphicsImage::setPixmap(const QPixmap &pix) -{ - Q_D(QmlGraphicsImage); - if (!d->url.isEmpty()) - return; - d->pix = pix; - - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - update(); -} - -/*! - \qmlproperty enumeration Image::fillMode - - Set this property to define what happens when the image set for the item is smaller - than the size of the item. - - \list - \o Stretch - the image is scaled to fit - \o PreserveAspectFit - the image is scaled uniformly to fit without cropping - \o PreserveAspectCrop - the image is scaled uniformly to fill, cropping if necessary - \o Tile - the image is duplicated horizontally and vertically - \o TileVertically - the image is stretched horizontally and tiled vertically - \o TileHorizontally - the image is stretched vertically and tiled horizontally - \endlist - - \image declarative-image_fillMode.gif - \sa examples/declarative/fillmode - \sa examples/declarative/aspectratio -*/ -QmlGraphicsImage::FillMode QmlGraphicsImage::fillMode() const -{ - Q_D(const QmlGraphicsImage); - return d->fillMode; -} - -void QmlGraphicsImage::setFillMode(FillMode mode) -{ - Q_D(QmlGraphicsImage); - if (d->fillMode == mode) - return; - d->fillMode = mode; - update(); - emit fillModeChanged(); -} - -/*! - \qmlproperty enum Image::status - - This property holds the status of image loading. It can be one of: - \list - \o Null - no image has been set - \o Ready - the image has been loaded - \o Loading - the image is currently being loaded - \o Error - an error occurred while loading the image - \endlist - - \sa progress -*/ - -/*! - \qmlproperty real Image::progress - - This property holds the progress of image loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ - -/*! - \qmlproperty bool Image::smooth - - Set this property if you want the image to be smoothly filtered when scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the image is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the image is stationary on - the screen. A common pattern when animating an image is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -/*! - \qmlproperty url Image::source - - Image can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. - - The URL may be absolute, or relative to the URL of the component. -*/ - -void QmlGraphicsImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsImage); - if (d->pix.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - if (width() != d->pix.width() || height() != d->pix.height()) { - if (d->fillMode >= Tile) { - if (d->fillMode == Tile) - p->drawTiledPixmap(QRectF(0,0,width(),height()), d->pix); - else if (d->fillMode == TileVertically) - p->drawTiledPixmap(QRectF(0,0,d->pix.width(),height()), d->pix); - else - p->drawTiledPixmap(QRectF(0,0,width(),d->pix.height()), d->pix); - } else { - qreal widthScale = width() / qreal(d->pix.width()); - qreal heightScale = height() / qreal(d->pix.height()); - - QTransform scale; - - if (d->fillMode == PreserveAspectFit) { - if (widthScale < heightScale) { - heightScale = widthScale; - scale.translate(0, (height() - heightScale * d->pix.height()) / 2); - } else if(heightScale < widthScale) { - widthScale = heightScale; - scale.translate((width() - widthScale * d->pix.width()) / 2, 0); - } - } else if (d->fillMode == PreserveAspectCrop) { - if (widthScale < heightScale) { - widthScale = heightScale; - scale.translate((width() - widthScale * d->pix.width()) / 2, 0); - } else if(heightScale < widthScale) { - heightScale = widthScale; - scale.translate(0, (height() - heightScale * d->pix.height()) / 2); - } - } - - scale.scale(widthScale, heightScale); - QTransform old = p->transform(); - p->setWorldTransform(scale * old); - p->drawPixmap(0, 0, d->pix); - p->setWorldTransform(old); - } - } else { - p->drawPixmap(0, 0, d->pix); - } - - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsimage_p.h b/src/declarative/fx/qmlgraphicsimage_p.h deleted file mode 100644 index 76b8da5..0000000 --- a/src/declarative/fx/qmlgraphicsimage_p.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGE_H -#define QMLGRAPHICSIMAGE_H - -#include -#include "qmlgraphicsimagebase_p.h" - -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsImagePrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase -{ - Q_OBJECT - Q_ENUMS(FillMode) - - Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) - Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) - -public: - QmlGraphicsImage(QmlGraphicsItem *parent=0); - ~QmlGraphicsImage(); - - enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; - FillMode fillMode() const; - void setFillMode(FillMode); - - QPixmap pixmap() const; - void setPixmap(const QPixmap &); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void fillModeChanged(); - -protected: - QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsImage) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) -}; - -QT_END_NAMESPACE -QML_DECLARE_TYPE(QmlGraphicsImage) -QT_END_HEADER - -#endif // QMLGRAPHICSIMAGE_H diff --git a/src/declarative/fx/qmlgraphicsimage_p_p.h b/src/declarative/fx/qmlgraphicsimage_p_p.h deleted file mode 100644 index 62a4d1e..0000000 --- a/src/declarative/fx/qmlgraphicsimage_p_p.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGE_P_H -#define QMLGRAPHICSIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsimagebase_p_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsImage) - -public: - QmlGraphicsImagePrivate() - : fillMode(QmlGraphicsImage::Stretch) - { - } - - QmlGraphicsImage::FillMode fillMode; - -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSIMAGE_P_H diff --git a/src/declarative/fx/qmlgraphicsimagebase.cpp b/src/declarative/fx/qmlgraphicsimagebase.cpp deleted file mode 100644 index 283fb04..0000000 --- a/src/declarative/fx/qmlgraphicsimagebase.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsimagebase_p.h" -#include "qmlgraphicsimagebase_p_p.h" -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsImageBasePrivate), parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, true); -} - -QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, true); -} - -QmlGraphicsImageBase::~QmlGraphicsImageBase() -{ - Q_D(QmlGraphicsImageBase); - if (d->pendingPixmapCache) - QmlGraphicsPixmapCache::cancelGet(d->url, this); -} - -QmlGraphicsImageBase::Status QmlGraphicsImageBase::status() const -{ - Q_D(const QmlGraphicsImageBase); - return d->status; -} - - -qreal QmlGraphicsImageBase::progress() const -{ - Q_D(const QmlGraphicsImageBase); - return d->progress; -} - -QUrl QmlGraphicsImageBase::source() const -{ - Q_D(const QmlGraphicsImageBase); - return d->url; -} - -void QmlGraphicsImageBase::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsImageBase); - //equality is fairly expensive, so we bypass for simple, common case - if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) - return; - - if (d->pendingPixmapCache) { - QmlGraphicsPixmapCache::cancelGet(d->url, this); - d->pendingPixmapCache = false; - } - - d->url = url; - if (d->progress != 0.0) { - d->progress = 0.0; - emit progressChanged(d->progress); - } - - if (url.isEmpty()) { - d->pix = QPixmap(); - d->status = Null; - d->progress = 1.0; - setImplicitWidth(0); - setImplicitHeight(0); - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } else { - d->status = Loading; - QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); - if (reply) { - d->pendingPixmapCache = true; - connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); - } else { - //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); - } - } - - emit statusChanged(d->status); -} - -void QmlGraphicsImageBase::requestFinished() -{ - Q_D(QmlGraphicsImageBase); - - d->pendingPixmapCache = false; - - if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) - d->status = Error; - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(1.0); - update(); -} - -void QmlGraphicsImageBase::requestProgress(qint64 received, qint64 total) -{ - Q_D(QmlGraphicsImageBase); - if (d->status == Loading && total > 0) { - d->progress = qreal(received)/total; - emit progressChanged(d->progress); - } -} - - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsimagebase_p.h b/src/declarative/fx/qmlgraphicsimagebase_p.h deleted file mode 100644 index c8f8e85..0000000 --- a/src/declarative/fx/qmlgraphicsimagebase_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGEBASE_H -#define QMLGRAPHICSIMAGEBASE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -class QmlGraphicsImageBasePrivate; -class QmlGraphicsImageBase : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - -public: - QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); - ~QmlGraphicsImageBase(); - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - QUrl source() const; - virtual void setSource(const QUrl &url); - -Q_SIGNALS: - void sourceChanged(const QUrl &); - void statusChanged(Status); - void progressChanged(qreal progress); - -protected: - QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - virtual void requestFinished(); - void requestProgress(qint64,qint64); - -private: - Q_DISABLE_COPY(QmlGraphicsImageBase) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLGRAPHICSIMAGEBASE_H diff --git a/src/declarative/fx/qmlgraphicsimagebase_p_p.h b/src/declarative/fx/qmlgraphicsimagebase_p_p.h deleted file mode 100644 index e7f85a6..0000000 --- a/src/declarative/fx/qmlgraphicsimagebase_p_p.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGEBASE_P_H -#define QMLGRAPHICSIMAGEBASE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsImageBase) - -public: - QmlGraphicsImageBasePrivate() - : status(QmlGraphicsImageBase::Null), - progress(0.0), - pendingPixmapCache(false) - { - } - - QPixmap pix; - QmlGraphicsImageBase::Status status; - QUrl url; - qreal progress; - bool pendingPixmapCache; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qmlgraphicsitem.cpp b/src/declarative/fx/qmlgraphicsitem.cpp deleted file mode 100644 index 0e741c4..0000000 --- a/src/declarative/fx/qmlgraphicsitem.cpp +++ /dev/null @@ -1,2922 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "qmlview.h" -#include - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsitem.h" -#include -#include - -QT_BEGIN_NAMESPACE - -#ifndef FLT_MAX -#define FLT_MAX 1E+37 -#endif - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QmlGraphicsItem) - -QML_DEFINE_NOCREATE_TYPE(QGraphicsTransform); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Scale,QGraphicsScale) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) - -#include "qmlgraphicseffects.cpp" - -/*! - \qmlclass Transform QGraphicsTransform - \brief The Transform elements provide a way of building advanced transformations on Items. - - The Transform elements let you create and control advanced transformations that can be configured - independently using specialized properties. - - You can assign any number of Transform elements to an Item. Each Transform is applied in order, - one at a time, to the Item it's assigned to. - - \sa Rotation, Scale -*/ - -/*! - \qmlclass Scale QGraphicsScale - \brief The Scale object provides a way to scale an Item. - - The Scale object gives more control over scaling than using Item's scale property. Specifically, - it allows a different scale for the x and y axes, and allows the scale to be relative to an - arbitrary point. - - The following example scales the X axis of the Rectangle, relative to its interior point 25, 25: - \qml - Rectangle { - width: 100; height: 100 - color: "blue" - transform: Scale { origin.x: 25; origin.y: 25; xScale: 3} - } - \endqml -*/ - -/*! - \qmlproperty real Scale::origin.x - \qmlproperty real Scale::origin.y - - The point that the item is scaled from (i.e., the point that stays fixed relative to the parent as - the rest of the item grows). By default the origin is 0, 0. -*/ - -/*! - \qmlproperty real Scale::xScale - - The scaling factor for the X axis. -*/ - -/*! - \qmlproperty real Scale::yScale - - The scaling factor for the Y axis. -*/ - -/*! - \qmlclass Rotation QGraphicsRotation - \brief The Rotation object provides a way to rotate an Item. - - The Rotation object gives more control over rotation than using Item's rotation property. - Specifically, it allows (z axis) rotation to be relative to an arbitrary point. - - The following example rotates a Rectangle around its interior point 25, 25: - \qml - Rectangle { - width: 100; height: 100 - color: "blue" - transform: Rotation { origin.x: 25; origin.y: 25; angle: 45} - } - \endqml - - Rotation also provides a way to specify 3D-like rotations for Items. For these types of - rotations you must specify the axis to rotate around in addition to the origin point. - - The following example shows various 3D-like rotations applied to an \l Image. - \snippet doc/src/snippets/declarative/rotation.qml 0 - - \image axisrotation.png -*/ - -/*! - \qmlproperty real Rotation::origin.x - \qmlproperty real Rotation::origin.y - - The origin point of the rotation (i.e., the point that stays fixed relative to the parent as - the rest of the item rotates). By default the origin is 0, 0. -*/ - -/*! - \qmlproperty real Rotation::axis.x - \qmlproperty real Rotation::axis.y - \qmlproperty real Rotation::axis.z - - The axis to rotate around. For simple (2D) rotation around a point, you do not need to specify an axis, - as the default axis is the z axis (\c{ axis { x: 0; y: 0; z: 0 } }). - - For a typical 3D-like rotation you will usually specify both the origin and the axis. - - \image 3d-rotation-axis.png -*/ - -/*! - \qmlproperty real Rotation::angle - - The angle to rotate, in degrees clockwise. -*/ - - -/*! - \group group_animation - \title Animation -*/ - -/*! - \group group_coreitems - \title Basic Items -*/ - -/*! - \group group_effects - \title Effects -*/ - -/*! - \group group_layouts - \title Layouts -*/ - -/*! - \group group_states - \title States and Transitions -*/ - -/*! - \group group_utility - \title Utility -*/ - -/*! - \group group_views - \title Views -*/ - -/*! - \group group_widgets - \title Widgets -*/ - -/*! - \internal - \class QmlGraphicsContents - \ingroup group_utility - \brief The QmlGraphicsContents class gives access to the height and width of an item's contents. - -*/ - -QmlGraphicsContents::QmlGraphicsContents() : m_x(0), m_y(0), m_width(0), m_height(0) -{ -} - -/*! - \qmlproperty real Item::childrenRect.x - \qmlproperty real Item::childrenRect.y - \qmlproperty real Item::childrenRect.width - \qmlproperty real Item::childrenRect.height - - The childrenRect properties allow an item access to the geometry of its - children. This property is useful if you have an item that needs to be - sized to fit its children. -*/ - -QRectF QmlGraphicsContents::rectF() const -{ - return QRectF(m_x, m_y, m_width, m_height); -} - -//TODO: optimization: only check sender(), if there is one -void QmlGraphicsContents::calcHeight() -{ - qreal oldy = m_y; - qreal oldheight = m_height; - - qreal top = FLT_MAX; - qreal bottom = 0; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - qreal y = child->y(); - if (y + child->height() > bottom) - bottom = y + child->height(); - if (y < top) - top = y; - } - if (!children.isEmpty()) - m_y = top; - m_height = qMax(bottom - top, qreal(0.0)); - - if (m_height != oldheight || m_y != oldy) - emit rectChanged(); -} - -//TODO: optimization: only check sender(), if there is one -void QmlGraphicsContents::calcWidth() -{ - qreal oldx = m_x; - qreal oldwidth = m_width; - - qreal left = FLT_MAX; - qreal right = 0; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - qreal x = child->x(); - if (x + child->width() > right) - right = x + child->width(); - if (x < left) - left = x; - } - if (!children.isEmpty()) - m_x = left; - m_width = qMax(right - left, qreal(0.0)); - - if (m_width != oldwidth || m_x != oldx) - emit rectChanged(); -} - -void QmlGraphicsContents::setItem(QmlGraphicsItem *item) -{ - m_item = item; - - QList children = m_item->childItems(); - for (int i = 0; i < children.count(); ++i) { - QmlGraphicsItem *child = qobject_cast(children.at(i)); - if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? - continue; - connect(child, SIGNAL(heightChanged()), this, SLOT(calcHeight())); - connect(child, SIGNAL(yChanged()), this, SLOT(calcHeight())); - connect(child, SIGNAL(widthChanged()), this, SLOT(calcWidth())); - connect(child, SIGNAL(xChanged()), this, SLOT(calcWidth())); - connect(this, SIGNAL(rectChanged()), m_item, SIGNAL(childrenRectChanged())); - } - - calcHeight(); - calcWidth(); -} - -/* - Key filters can be installed on a QmlGraphicsItem, but not removed. Currently they - are only used by attached objects (which are only destroyed on Item - destruction), so this isn't a problem. If in future this becomes any form - of public API, they will have to support removal too. -*/ -class QmlGraphicsItemKeyFilter -{ -public: - QmlGraphicsItemKeyFilter(QmlGraphicsItem * = 0); - virtual ~QmlGraphicsItemKeyFilter(); - - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *event); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - virtual void componentComplete(); - -private: - QmlGraphicsItemKeyFilter *m_next; -}; - -QmlGraphicsItemKeyFilter::QmlGraphicsItemKeyFilter(QmlGraphicsItem *item) -: m_next(0) -{ - QmlGraphicsItemPrivate *p = - item?static_cast(QGraphicsItemPrivate::get(item)):0; - if (p) { - m_next = p->keyHandler; - p->keyHandler = this; - } -} - -QmlGraphicsItemKeyFilter::~QmlGraphicsItemKeyFilter() -{ -} - -void QmlGraphicsItemKeyFilter::keyPressed(QKeyEvent *event) -{ - if (m_next) m_next->keyPressed(event); -} - -void QmlGraphicsItemKeyFilter::keyReleased(QKeyEvent *event) -{ - if (m_next) m_next->keyReleased(event); -} - -void QmlGraphicsItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) -{ - if (m_next) m_next->inputMethodEvent(event); -} - -QVariant QmlGraphicsItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const -{ - if (m_next) return m_next->inputMethodQuery(query); - return QVariant(); -} - -void QmlGraphicsItemKeyFilter::componentComplete() -{ - if (m_next) m_next->componentComplete(); -} - -class QmlGraphicsKeyNavigationAttachedPrivate : public QObjectPrivate -{ -public: - QmlGraphicsKeyNavigationAttachedPrivate() - : QObjectPrivate(), left(0), right(0), up(0), down(0) {} - - QmlGraphicsItem *left; - QmlGraphicsItem *right; - QmlGraphicsItem *up; - QmlGraphicsItem *down; -}; - -class QmlGraphicsKeyNavigationAttached : public QObject, public QmlGraphicsItemKeyFilter -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsKeyNavigationAttached) - - Q_PROPERTY(QmlGraphicsItem *left READ left WRITE setLeft NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *right READ right WRITE setRight NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *up READ up WRITE setUp NOTIFY changed) - Q_PROPERTY(QmlGraphicsItem *down READ down WRITE setDown NOTIFY changed) -public: - QmlGraphicsKeyNavigationAttached(QObject * = 0); - - QmlGraphicsItem *left() const; - void setLeft(QmlGraphicsItem *); - QmlGraphicsItem *right() const; - void setRight(QmlGraphicsItem *); - QmlGraphicsItem *up() const; - void setUp(QmlGraphicsItem *); - QmlGraphicsItem *down() const; - void setDown(QmlGraphicsItem *); - - static QmlGraphicsKeyNavigationAttached *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void changed(); - -private: - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); -}; - -QmlGraphicsKeyNavigationAttached::QmlGraphicsKeyNavigationAttached(QObject *parent) -: QObject(*(new QmlGraphicsKeyNavigationAttachedPrivate), parent), - QmlGraphicsItemKeyFilter(qobject_cast(parent)) -{ -} - -QmlGraphicsKeyNavigationAttached * -QmlGraphicsKeyNavigationAttached::qmlAttachedProperties(QObject *obj) -{ - return new QmlGraphicsKeyNavigationAttached(obj); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::left() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->left; -} - -void QmlGraphicsKeyNavigationAttached::setLeft(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->left = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::right() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->right; -} - -void QmlGraphicsKeyNavigationAttached::setRight(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->right = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::up() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->up; -} - -void QmlGraphicsKeyNavigationAttached::setUp(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->up = i; - emit changed(); -} - -QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::down() const -{ - Q_D(const QmlGraphicsKeyNavigationAttached); - return d->down; -} - -void QmlGraphicsKeyNavigationAttached::setDown(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - d->down = i; - emit changed(); -} - -void QmlGraphicsKeyNavigationAttached::keyPressed(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - - event->ignore(); - - switch(event->key()) { - case Qt::Key_Left: - if (d->left) { - d->left->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Right: - if (d->right) { - d->right->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Up: - if (d->up) { - d->up->setFocus(true); - event->accept(); - } - break; - case Qt::Key_Down: - if (d->down) { - d->down->setFocus(true); - event->accept(); - } - break; - default: - break; - } - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); -} - -void QmlGraphicsKeyNavigationAttached::keyReleased(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeyNavigationAttached); - - event->ignore(); - - switch(event->key()) { - case Qt::Key_Left: - if (d->left) { - event->accept(); - } - break; - case Qt::Key_Right: - if (d->right) { - event->accept(); - } - break; - case Qt::Key_Up: - if (d->up) { - event->accept(); - } - break; - case Qt::Key_Down: - if (d->down) { - event->accept(); - } - break; - default: - break; - } - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); -} - -/*! - \qmlclass Keys - \brief The Keys attached property provides key handling to Items. - - All visual primitives support key handling via the \e Keys - attached property. Keys can be handled via the \e onPressed - and \e onReleased signal properties. - - The signal properties have a \l KeyEvent parameter, named - \e event which contains details of the event. If a key is - handled \e event.accepted should be set to true to prevent the - event from propagating up the item heirarchy. - - \code - Item { - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_Left) { - print("move left"); - event.accepted = true; - } - } - } - \endcode - - Some keys may alternatively be handled via specific signal properties, - for example \e onSelectPressed. These handlers automatically set - \e event.accepted to true. - - \code - Item { - focus: true - Keys.onLeftPressed: print("move left") - } - \endcode - - See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. - - \sa KeyEvent -*/ - -/*! - \qmlproperty bool Keys::enabled - - This flags enables key handling if true (default); otherwise - no key handlers will be called. -*/ - -/*! - \qmlproperty List Keys::forwardTo - - This property provides a way to forward key presses, key releases, and keyboard input - coming from input methods to other items. This can be useful when you want - one item to handle some keys (e.g. the up and down arrow keys), and another item to - handle other keys (e.g. the left and right arrow keys). Once an item that has been - forwarded keys accepts the event it is no longer forwarded to items later in the - list. - - This example forwards key events to two lists: - \qml - ListView { id: list1 ... } - ListView { id: list2 ... } - Keys.forwardTo: [list1, list2] - focus: true - \endqml -*/ - -/*! - \qmlsignal Keys::onPressed(event) - - This handler is called when a key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onReleased(event) - - This handler is called when a key has been released. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit0Pressed(event) - - This handler is called when the digit '0' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit1Pressed(event) - - This handler is called when the digit '1' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit2Pressed(event) - - This handler is called when the digit '2' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit3Pressed(event) - - This handler is called when the digit '3' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit4Pressed(event) - - This handler is called when the digit '4' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit5Pressed(event) - - This handler is called when the digit '5' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit6Pressed(event) - - This handler is called when the digit '6' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit7Pressed(event) - - This handler is called when the digit '7' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit8Pressed(event) - - This handler is called when the digit '8' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDigit9Pressed(event) - - This handler is called when the digit '9' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onLeftPressed(event) - - This handler is called when the Left arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onRightPressed(event) - - This handler is called when the Right arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onUpPressed(event) - - This handler is called when the Up arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDownPressed(event) - - This handler is called when the Down arrow has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onAsteriskPressed(event) - - This handler is called when the Asterisk '*' has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onEscapePressed(event) - - This handler is called when the Escape key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onReturnPressed(event) - - This handler is called when the Return key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onEnterPressed(event) - - This handler is called when the Enter key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onDeletePressed(event) - - This handler is called when the Delete key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onSpacePressed(event) - - This handler is called when the Space key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onBackPressed(event) - - This handler is called when the Back key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onCancelPressed(event) - - This handler is called when the Cancel key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onSelectPressed(event) - - This handler is called when the Select key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onYesPressed(event) - - This handler is called when the Yes key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onNoPressed(event) - - This handler is called when the No key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext1Pressed(event) - - This handler is called when the Context1 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext2Pressed(event) - - This handler is called when the Context2 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext3Pressed(event) - - This handler is called when the Context3 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onContext4Pressed(event) - - This handler is called when the Context4 key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onCallPressed(event) - - This handler is called when the Call key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onHangupPressed(event) - - This handler is called when the Hangup key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onFlipPressed(event) - - This handler is called when the Flip key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onMenuPressed(event) - - This handler is called when the Menu key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onVolumeUpPressed(event) - - This handler is called when the VolumeUp key has been pressed. The \a event - parameter provides information about the event. -*/ - -/*! - \qmlsignal Keys::onVolumeDownPressed(event) - - This handler is called when the VolumeDown key has been pressed. The \a event - parameter provides information about the event. -*/ - - -class QmlGraphicsKeysAttachedPrivate : public QObjectPrivate -{ -public: - QmlGraphicsKeysAttachedPrivate() - : QObjectPrivate(), inPress(false), inRelease(false) - , inIM(false), enabled(true), imeItem(0), item(0) - {} - - bool isConnected(const char *signalName); - - QGraphicsItem *finalFocusProxy(QGraphicsItem *item) const - { - QGraphicsItem *fp; - while ((fp = item->focusProxy())) - item = fp; - return item; - } - - //loop detection - bool inPress:1; - bool inRelease:1; - bool inIM:1; - - bool enabled : 1; - - QGraphicsItem *imeItem; - QList targets; - QmlGraphicsItem *item; -}; - -class QmlGraphicsKeysAttached : public QObject, public QmlGraphicsItemKeyFilter -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsKeysAttached) - - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(QList *forwardTo READ forwardTo) - -public: - QmlGraphicsKeysAttached(QObject *parent=0); - ~QmlGraphicsKeysAttached(); - - bool enabled() const { Q_D(const QmlGraphicsKeysAttached); return d->enabled; } - void setEnabled(bool enabled) { - Q_D(QmlGraphicsKeysAttached); - if (enabled != d->enabled) { - d->enabled = enabled; - emit enabledChanged(); - } - } - - QList *forwardTo() { - Q_D(QmlGraphicsKeysAttached); - return &d->targets; - } - - virtual void componentComplete(); - - static QmlGraphicsKeysAttached *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void enabledChanged(); - void pressed(QmlGraphicsKeyEvent *event); - void released(QmlGraphicsKeyEvent *event); - void digit0Pressed(QmlGraphicsKeyEvent *event); - void digit1Pressed(QmlGraphicsKeyEvent *event); - void digit2Pressed(QmlGraphicsKeyEvent *event); - void digit3Pressed(QmlGraphicsKeyEvent *event); - void digit4Pressed(QmlGraphicsKeyEvent *event); - void digit5Pressed(QmlGraphicsKeyEvent *event); - void digit6Pressed(QmlGraphicsKeyEvent *event); - void digit7Pressed(QmlGraphicsKeyEvent *event); - void digit8Pressed(QmlGraphicsKeyEvent *event); - void digit9Pressed(QmlGraphicsKeyEvent *event); - - void leftPressed(QmlGraphicsKeyEvent *event); - void rightPressed(QmlGraphicsKeyEvent *event); - void upPressed(QmlGraphicsKeyEvent *event); - void downPressed(QmlGraphicsKeyEvent *event); - - void asteriskPressed(QmlGraphicsKeyEvent *event); - void numberSignPressed(QmlGraphicsKeyEvent *event); - void escapePressed(QmlGraphicsKeyEvent *event); - void returnPressed(QmlGraphicsKeyEvent *event); - void enterPressed(QmlGraphicsKeyEvent *event); - void deletePressed(QmlGraphicsKeyEvent *event); - void spacePressed(QmlGraphicsKeyEvent *event); - void backPressed(QmlGraphicsKeyEvent *event); - void cancelPressed(QmlGraphicsKeyEvent *event); - void selectPressed(QmlGraphicsKeyEvent *event); - void yesPressed(QmlGraphicsKeyEvent *event); - void noPressed(QmlGraphicsKeyEvent *event); - void context1Pressed(QmlGraphicsKeyEvent *event); - void context2Pressed(QmlGraphicsKeyEvent *event); - void context3Pressed(QmlGraphicsKeyEvent *event); - void context4Pressed(QmlGraphicsKeyEvent *event); - void callPressed(QmlGraphicsKeyEvent *event); - void hangupPressed(QmlGraphicsKeyEvent *event); - void flipPressed(QmlGraphicsKeyEvent *event); - void menuPressed(QmlGraphicsKeyEvent *event); - void volumeUpPressed(QmlGraphicsKeyEvent *event); - void volumeDownPressed(QmlGraphicsKeyEvent *event); - -private: - virtual void keyPressed(QKeyEvent *event); - virtual void keyReleased(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - - const QByteArray keyToSignal(int key) { - QByteArray keySignal; - if (key >= Qt::Key_0 && key <= Qt::Key_9) { - keySignal = "digit0Pressed"; - keySignal[5] = '0' + (key - Qt::Key_0); - } else { - int i = 0; - while (sigMap[i].key && sigMap[i].key != key) - ++i; - keySignal = sigMap[i].sig; - } - return keySignal; - } - - struct SigMap { - int key; - const char *sig; - }; - - static const SigMap sigMap[]; -}; - -const QmlGraphicsKeysAttached::SigMap QmlGraphicsKeysAttached::sigMap[] = { - { Qt::Key_Left, "leftPressed" }, - { Qt::Key_Right, "rightPressed" }, - { Qt::Key_Up, "upPressed" }, - { Qt::Key_Down, "downPressed" }, - { Qt::Key_Asterisk, "asteriskPressed" }, - { Qt::Key_NumberSign, "numberSignPressed" }, - { Qt::Key_Escape, "escapePressed" }, - { Qt::Key_Return, "returnPressed" }, - { Qt::Key_Enter, "enterPressed" }, - { Qt::Key_Delete, "deletePressed" }, - { Qt::Key_Space, "spacePressed" }, - { Qt::Key_Back, "backPressed" }, - { Qt::Key_Cancel, "cancelPressed" }, - { Qt::Key_Select, "selectPressed" }, - { Qt::Key_Yes, "yesPressed" }, - { Qt::Key_No, "noPressed" }, - { Qt::Key_Context1, "context1Pressed" }, - { Qt::Key_Context2, "context2Pressed" }, - { Qt::Key_Context3, "context3Pressed" }, - { Qt::Key_Context4, "context4Pressed" }, - { Qt::Key_Call, "callPressed" }, - { Qt::Key_Hangup, "hangupPressed" }, - { Qt::Key_Flip, "flipPressed" }, - { Qt::Key_Menu, "menuPressed" }, - { Qt::Key_VolumeUp, "volumeUpPressed" }, - { Qt::Key_VolumeDown, "volumeDownPressed" }, - { 0, 0 } -}; - -bool QmlGraphicsKeysAttachedPrivate::isConnected(const char *signalName) -{ - return isSignalConnected(signalIndex(signalName)); -} - -QmlGraphicsKeysAttached::QmlGraphicsKeysAttached(QObject *parent) -: QObject(*(new QmlGraphicsKeysAttachedPrivate), parent), - QmlGraphicsItemKeyFilter(qobject_cast(parent)) -{ - Q_D(QmlGraphicsKeysAttached); - d->item = qobject_cast(parent); -} - -QmlGraphicsKeysAttached::~QmlGraphicsKeysAttached() -{ -} - -void QmlGraphicsKeysAttached::componentComplete() -{ - Q_D(QmlGraphicsKeysAttached); - if (d->item) { - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *targetItem = d->finalFocusProxy(d->targets.at(ii)); - if (targetItem && (targetItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { - d->item->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - break; - } - } - } -} - -void QmlGraphicsKeysAttached::keyPressed(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (!d->enabled || d->inPress) { - event->ignore(); - return; - } - - // first process forwards - if (d->item && d->item->scene()) { - d->inPress = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->inPress = false; - return; - } - } - } - d->inPress = false; - } - - QmlGraphicsKeyEvent ke(*event); - QByteArray keySignal = keyToSignal(event->key()); - if (!keySignal.isEmpty()) { - keySignal += "(QmlGraphicsKeyEvent*)"; - if (d->isConnected(keySignal)) { - // If we specifically handle a key then default to accepted - ke.setAccepted(true); - int idx = QmlGraphicsKeysAttached::staticMetaObject.indexOfSignal(keySignal); - metaObject()->method(idx).invoke(this, Q_ARG(QmlGraphicsKeysAttached, &ke)); - } - } - if (!ke.isAccepted()) - emit pressed(&ke); - event->setAccepted(ke.isAccepted()); - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); -} - -void QmlGraphicsKeysAttached::keyReleased(QKeyEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (!d->enabled || d->inRelease) { - event->ignore(); - return; - } - - if (d->item && d->item->scene()) { - d->inRelease = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->inRelease = false; - return; - } - } - } - d->inRelease = false; - } - - QmlGraphicsKeyEvent ke(*event); - emit released(&ke); - event->setAccepted(ke.isAccepted()); - - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); -} - -void QmlGraphicsKeysAttached::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsKeysAttached); - if (d->item && !d->inIM && d->item->scene()) { - d->inIM = true; - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { - d->item->scene()->sendEvent(i, event); - if (event->isAccepted()) { - d->imeItem = i; - d->inIM = false; - return; - } - } - } - d->inIM = false; - } - if (!event->isAccepted()) QmlGraphicsItemKeyFilter::inputMethodEvent(event); -} - -class QmlGraphicsItemAccessor : public QGraphicsItem -{ -public: - QVariant doInputMethodQuery(Qt::InputMethodQuery query) const { - return QGraphicsItem::inputMethodQuery(query); - } -}; - -QVariant QmlGraphicsKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const -{ - Q_D(const QmlGraphicsKeysAttached); - if (d->item) { - for (int ii = 0; ii < d->targets.count(); ++ii) { - QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); - if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod) && i == d->imeItem) { //### how robust is i == d->imeItem check? - QVariant v = static_cast(i)->doInputMethodQuery(query); - if (v.type() == QVariant::RectF) - v = d->item->mapRectFromItem(i, v.toRectF()); //### cost? - return v; - } - } - } - return QmlGraphicsItemKeyFilter::inputMethodQuery(query); -} - -QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject *obj) -{ - return new QmlGraphicsKeysAttached(obj); -} - -/*! - \class QmlGraphicsItem - \brief The QmlGraphicsItem class provides the most basic of all visual items in QML. - - All visual items in Qt Declarative inherit from QmlGraphicsItem. Although QmlGraphicsItem - has no visual appearance, it defines all the properties that are - common across visual items - such as the x and y position, the - width and height, \l {anchor-layout}{anchoring} and key handling. - - You can subclass QmlGraphicsItem to provide your own custom visual item that inherits - these features. -*/ - -/*! - \qmlclass Item QmlGraphicsItem - \brief The Item is the most basic of all visual items in QML. - - All visual items in Qt Declarative inherit from Item. Although Item - has no visual appearance, it defines all the properties that are - common across visual items - such as the x and y position, the - width and height, \l {anchor-layout}{anchoring} and key handling. - - Item is also useful for grouping items together. - - \qml - Item { - Image { - file: "tile.png" - } - Image { - x: 80 - width: 100 - height: 100 - file: "tile.png" - } - Image { - x: 190 - width: 100 - height: 100 - tile: true - file: "tile.png" - } - } - \endqml - - \section1 Key Handling - - Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} - attached property. The \e Keys attached property provides basic handlers such - as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, - as well as handlers for specific keys, such as - \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below - assigns \l {qmlfocus}{focus} to the item and handles - the Left key via the general \e onPressed handler and the Select key via the - onSelectPressed handler: - - \qml - Item { - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_Left) { - print("move left"); - event.accepted = true; - } - } - Keys.onSelectPressed: print("Selected"); - } - \endqml - - See the \l {Keys}{Keys} attached property for detailed documentation. - - \ingroup group_coreitems -*/ - -/*! - \property QmlGraphicsItem::baseline - \internal -*/ - -/*! - \property QmlGraphicsItem::effect - \internal -*/ - -/*! - \property QmlGraphicsItem::focus - \internal -*/ - -/*! - \property QmlGraphicsItem::wantsFocus - \internal -*/ - -/*! - \property QmlGraphicsItem::transformOrigin - \internal -*/ - -/*! - \fn void QmlGraphicsItem::childrenRectChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::baselineOffsetChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::widthChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::heightChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::stateChanged(const QString &state) - \internal -*/ - -/*! - \fn void QmlGraphicsItem::parentChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::focusChanged() - \internal -*/ - -/*! - \fn void QmlGraphicsItem::wantsFocusChanged() - \internal -*/ - -static inline void qfxitem_registerAnchorLine() { - static bool registered = false; - if (!registered) { - qRegisterMetaType("QmlGraphicsAnchorLine"); - registered = true; - } -} - -/*! - \fn QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem *parent) - - Constructs a QmlGraphicsItem with the given \a parent. -*/ -QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem* parent) - : QGraphicsObject(*(new QmlGraphicsItemPrivate), parent, 0) -{ - Q_D(QmlGraphicsItem); - qfxitem_registerAnchorLine(); - d->init(parent); -} - -/*! \internal -*/ -QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent) - : QGraphicsObject(dd, parent, 0) -{ - Q_D(QmlGraphicsItem); - qfxitem_registerAnchorLine(); - d->init(parent); -} - -/*! - Destroys the QmlGraphicsItem. -*/ -QmlGraphicsItem::~QmlGraphicsItem() -{ - Q_D(QmlGraphicsItem); - for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->clearItem(this); - } - if (!d->parent || (parentItem() && !parentItem()->QGraphicsItem::d_ptr->inDestructor)) - for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - if (anchor->d_func()->item && anchor->d_func()->item->parentItem() != this) //child will be deleted anyway - anchor->d_func()->updateOnComplete(); - } - d->dependantAnchors.clear(); - delete d->_anchorLines; d->_anchorLines = 0; - delete d->_anchors; d->_anchors = 0; -} - -/*! - \qmlproperty enum Item::transformOrigin - This property holds the origin point around which scale and rotation transform. - - Nine transform origins are available, as shown in the image below. - - \image declarative-transformorigin.png - - This example scales an image about its center. - \qml - Image { - source: "myimage.png" - transformOrigin: Item.Center - scale: 4 - } - \endqml - - The default transform origin is \c TopLeft. -*/ - -/*! - \qmlproperty Item Item::parent - This property holds the parent of the item. -*/ - -/*! - \property QmlGraphicsItem::parent - This property holds the parent of the item. -*/ -void QmlGraphicsItem::setParentItem(QmlGraphicsItem *parent) -{ - QmlGraphicsItem *oldParent = parentItem(); - if (parent == oldParent || !parent) return; - - QObject::setParent(parent); - QGraphicsObject::setParentItem(parent); -} - -/*! - Returns the QmlGraphicsItem parent of this item. -*/ -QmlGraphicsItem *QmlGraphicsItem::parentItem() const -{ - return qobject_cast(QGraphicsObject::parentItem()); -} - -/*! - \qmlproperty list Item::children - \qmlproperty list Item::resources - - The children property contains the list of visual children of this item. - The resources property contains non-visual resources that you want to - reference by name. - - Generally you can rely on Item's default property to handle all this for - you, but it can come in handy in some cases. - - \qml - Item { - children: [ - Text {}, - Rectangle {} - ] - resources: [ - Component { - id: myComponent - Text {} - } - ] - } - \endqml -*/ - -/*! - \property QmlGraphicsItem::children - \internal -*/ - -/*! - \property QmlGraphicsItem::resources - \internal -*/ - -/*! - Returns true if construction of the QML component is complete; otherwise - returns false. - - It is often desireable to delay some processing until the component is - completed. - - \sa componentComplete() -*/ -bool QmlGraphicsItem::isComponentComplete() const -{ - Q_D(const QmlGraphicsItem); - return d->_componentComplete; -} - -/*! - \property QmlGraphicsItem::anchors - \internal -*/ - -/*! \internal */ -QmlGraphicsAnchors *QmlGraphicsItem::anchors() -{ - Q_D(QmlGraphicsItem); - return d->anchors(); -} - -void QmlGraphicsItemPrivate::data_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::data_count() const -{ - // ### - return 0; -} - -void QmlGraphicsItemPrivate::data_append(QObject *o) -{ - Q_Q(QmlGraphicsItem); - QmlGraphicsItem *i = qobject_cast(o); - if (i) - q->fxChildren()->append(i); - else - resources_append(o); -} - -void QmlGraphicsItemPrivate::data_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsItemPrivate::data_at(int) const -{ - // ### - return 0; -} - -void QmlGraphicsItemPrivate::data_clear() -{ - // ### -} - -void QmlGraphicsItemPrivate::resources_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::resources_count() const -{ - Q_Q(const QmlGraphicsItem); - return q->children().count(); -} - -void QmlGraphicsItemPrivate::resources_append(QObject *o) -{ - Q_Q(QmlGraphicsItem); - o->setParent(q); -} - -void QmlGraphicsItemPrivate::resources_insert(int, QObject *) -{ - // ### -} - -QObject *QmlGraphicsItemPrivate::resources_at(int idx) const -{ - Q_Q(const QmlGraphicsItem); - QObjectList children = q->children(); - if (idx < children.count()) - return children.at(idx); - else - return 0; -} - -void QmlGraphicsItemPrivate::resources_clear() -{ - // ### -} - -void QmlGraphicsItemPrivate::children_removeAt(int) -{ - // ### -} - -int QmlGraphicsItemPrivate::children_count() const -{ - Q_Q(const QmlGraphicsItem); - return q->childItems().count(); -} - -void QmlGraphicsItemPrivate::children_append(QmlGraphicsItem *i) -{ - Q_Q(QmlGraphicsItem); - i->setParentItem(q); -} - -void QmlGraphicsItemPrivate::children_insert(int, QmlGraphicsItem *) -{ - // ### -} - -QmlGraphicsItem *QmlGraphicsItemPrivate::children_at(int idx) const -{ - Q_Q(const QmlGraphicsItem); - QList children = q->childItems(); - if (idx < children.count()) - return qobject_cast(children.at(idx)); - else - return 0; -} - -void QmlGraphicsItemPrivate::children_clear() -{ - // ### -} - - -void QmlGraphicsItemPrivate::transform_removeAt(int i) -{ - if (!transformData) - return; - transformData->graphicsTransforms.removeAt(i); - dirtySceneTransform = 1; -} - -int QmlGraphicsItemPrivate::transform_count() const -{ - return transformData ? transformData->graphicsTransforms.size() : 0; -} - -void QmlGraphicsItemPrivate::transform_append(QGraphicsTransform *item) -{ - appendGraphicsTransform(item); -} - -void QmlGraphicsItemPrivate::transform_insert(int, QGraphicsTransform *) -{ - // ### -} - -QGraphicsTransform *QmlGraphicsItemPrivate::transform_at(int idx) const -{ - if (!transformData) - return 0; - return transformData->graphicsTransforms.at(idx); -} - -void QmlGraphicsItemPrivate::transform_clear() -{ - if (!transformData) - return; - Q_Q(QmlGraphicsItem); - q->setTransformations(QList()); -} - -/*! - \qmlproperty list Item::data - \default - - The data property is allows you to freely mix visual children and resources - of an item. If you assign a visual item to the data list it becomes - a child and if you assign any other object type, it is added as a resource. - - So you can write: - \qml - Item { - Text {} - Rectangle {} - Script {} - } - \endqml - - instead of: - \qml - Item { - children: [ - Text {}, - Rectangle {} - ] - resources: [ - Script {} - ] - } - \endqml - - data is a behind-the-scenes property: you should never need to explicitly - specify it. - */ - -/*! - \property QmlGraphicsItem::data - \internal -*/ - -/*! \internal */ -QmlList *QmlGraphicsItem::data() -{ - Q_D(QmlGraphicsItem); - return &d->data; -} - -/*! - \property QmlGraphicsItem::childrenRect - \brief The geometry of an item's children. - - childrenRect provides an easy way to access the (collective) position and size of the item's children. -*/ -QRectF QmlGraphicsItem::childrenRect() -{ - Q_D(QmlGraphicsItem); - if (!d->_contents) { - d->_contents = new QmlGraphicsContents; - d->_contents->setParent(this); - d->_contents->setItem(this); - } - return d->_contents->rectF(); -} - -bool QmlGraphicsItem::clip() const -{ - return flags() & ItemClipsChildrenToShape; -} - -void QmlGraphicsItem::setClip(bool c) -{ - setFlag(ItemClipsChildrenToShape, c); -} - -/*! - \qmlproperty real Item::x - \qmlproperty real Item::y - \qmlproperty real Item::width - \qmlproperty real Item::height - - Defines the item's position and size relative to its parent. - - \qml - Item { x: 100; y: 100; width: 100; height: 100 } - \endqml - */ - -/*! - \property QmlGraphicsItem::width - - Defines the item's width relative to its parent. - */ - -/*! - \property QmlGraphicsItem::height - - Defines the item's height relative to its parent. - */ - -/*! - \qmlproperty real Item::z - - Sets the stacking order of the item. By default the stacking order is 0. - - Items with a higher stacking value are drawn on top of items with a - lower stacking order. Items with the same stacking value are drawn - bottom up in the order they appear. Items with a negative stacking - value are drawn under their parent's content. - - The following example shows the various effects of stacking order. - - \table - \row - \o \image declarative-item_stacking1.png - \o Same \c z - later children above earlier children: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - } - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - \endqml - \row - \o \image declarative-item_stacking2.png - \o Higher \c z on top: - \qml - Item { - Rectangle { - z: 1 - color: "red" - width: 100; height: 100 - } - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - \endqml - \row - \o \image declarative-item_stacking3.png - \o Same \c z - children above parents: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \row - \o \image declarative-item_stacking4.png - \o Lower \c z below: - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - z: -1 - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \endtable - */ - -/*! - This function is called to handle this item's changes in - geometry from \a oldGeometry to \a newGeometry. If the two - geometries are the same, it doesn't do anything. - */ -void QmlGraphicsItem::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - Q_D(QmlGraphicsItem); - - if (d->_anchors) - d->_anchors->d_func()->updateMe(); - - if (transformOrigin() != QmlGraphicsItem::TopLeft) - setTransformOriginPoint(d->computeTransformOrigin()); - - if (newGeometry.x() != oldGeometry.x()) - emit xChanged(); - if (newGeometry.width() != oldGeometry.width()) - emit widthChanged(); - if (newGeometry.y() != oldGeometry.y()) - emit yChanged(); - if (newGeometry.height() != oldGeometry.height()) - emit heightChanged(); - - for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->update(this, newGeometry, oldGeometry); - } -} - -/*! \internal */ -void QmlGraphicsItem::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->keyPressed(event); - else - event->ignore(); -} - -/*! \internal */ -void QmlGraphicsItem::keyReleaseEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->keyReleased(event); - else - event->ignore(); -} - -/*! \internal */ -void QmlGraphicsItem::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsItem); - if (d->keyHandler) - d->keyHandler->inputMethodEvent(event); - else - event->ignore(); -} - -/*! \internal */ -QVariant QmlGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const -{ - Q_D(const QmlGraphicsItem); - QVariant v; - if (d->keyHandler) - v = d->keyHandler->inputMethodQuery(query); - - if (!v.isValid()) - v = QGraphicsObject::inputMethodQuery(query); - - return v; -} - -/*! - \qmlproperty string Item::id - This property holds the identifier for the item. - - The identifier can be used in bindings and other expressions to - refer to the item. For example: - - \qml - Text { id: myText; ... } - Text { text: myText.text } - \endqml - - The identifier is available throughout to the \l {components}{component} - where it is declared. The identifier must be unique in thecomponent. -*/ - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::left() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->left; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::right() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->right; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::horizontalCenter() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->hCenter; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::top() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->top; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::bottom() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->bottom; -} - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::verticalCenter() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->vCenter; -} - - -/*! - \internal -*/ -QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const -{ - Q_D(const QmlGraphicsItem); - return d->anchorLines()->baseline; -} - -/*! - \property QmlGraphicsItem::top - \internal -*/ - -/*! - \property QmlGraphicsItem::bottom - \internal -*/ - -/*! - \property QmlGraphicsItem::left - \internal -*/ - -/*! - \property QmlGraphicsItem::right - \internal -*/ - -/*! - \property QmlGraphicsItem::horizontalCenter - \internal -*/ - -/*! - \property QmlGraphicsItem::verticalCenter - \internal -*/ - -/*! - \qmlproperty AnchorLine Item::top - \qmlproperty AnchorLine Item::bottom - \qmlproperty AnchorLine Item::left - \qmlproperty AnchorLine Item::right - \qmlproperty AnchorLine Item::horizontalCenter - \qmlproperty AnchorLine Item::verticalCenter - \qmlproperty AnchorLine Item::baseline - - The anchor lines of the item. - - For more information see \l {anchor-layout}{Anchor Layouts}. -*/ - -/*! - \qmlproperty AnchorLine Item::anchors.top - \qmlproperty AnchorLine Item::anchors.bottom - \qmlproperty AnchorLine Item::anchors.left - \qmlproperty AnchorLine Item::anchors.right - \qmlproperty AnchorLine Item::anchors.horizontalCenter - \qmlproperty AnchorLine Item::anchors.verticalCenter - \qmlproperty AnchorLine Item::anchors.baseline - - \qmlproperty Item Item::anchors.fill - \qmlproperty Item Item::anchors.centerIn - - \qmlproperty real Item::anchors.topMargin - \qmlproperty real Item::anchors.bottomMargin - \qmlproperty real Item::anchors.leftMargin - \qmlproperty real Item::anchors.rightMargin - \qmlproperty real Item::anchors.horizontalCenterOffset - \qmlproperty real Item::anchors.verticalCenterOffset - \qmlproperty real Item::anchors.baselineOffset - - Anchors provide a way to position an item by specifying its - relationship with other items. - - Margins apply to top, bottom, left, right, and fill anchors. - - Offsets apply for horizontal center, vertical center, and baseline anchors. - - \table - \row - \o \image declarative-anchors_example.png - \o Text anchored to Image, horizontally centered and vertically below, with a margin. - \qml - Image { id: pic; ... } - Text { - id: label - anchors.horizontalCenter: pic.horizontalCenter - anchors.top: pic.bottom - anchors.topMargin: 5 - ... - } - \endqml - \row - \o \image declarative-anchors_example2.png - \o - Left of Text anchored to right of Image, with a margin. The y - property of both defaults to 0. - - \qml - Image { id: pic; ... } - Text { - id: label - anchors.left: pic.right - anchors.leftMargin: 5 - ... - } - \endqml - \endtable - - anchors.fill provides a convenient way for one item to have the - same geometry as another item, and is equivalent to connecting all - four directional anchors. - - \note You can only anchor an item to siblings or a parent. - - For more information see \l {anchor-layout}{Anchor Layouts}. -*/ - -/*! - \property QmlGraphicsItem::baselineOffset - \brief The position of the item's baseline in local coordinates. - - The baseline of a Text item is the imaginary line on which the text - sits. Controls containing text usually set their baseline to the - baseline of their text. - - For non-text items, a default baseline offset of 0 is used. -*/ -qreal QmlGraphicsItem::baselineOffset() const -{ - Q_D(const QmlGraphicsItem); - if (!d->_baselineOffset.isValid()) { - return 0.0; - } else - return d->_baselineOffset; -} - -void QmlGraphicsItem::setBaselineOffset(qreal offset) -{ - Q_D(QmlGraphicsItem); - if (offset == d->_baselineOffset) - return; - - d->_baselineOffset = offset; - emit baselineOffsetChanged(); - - for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { - QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); - anchor->d_func()->updateVerticalAnchors(); - } -} - -/*! - \qmlproperty real Item::rotation - This property holds the rotation of the item in degrees clockwise. - - This specifies how many degrees to rotate the item around its transformOrigin. - The default rotation is 0 degrees (i.e. not rotated at all). - - \table - \row - \o \image declarative-rotation.png - \o - \qml - Rectangle { - color: "blue" - width: 100; height: 100 - Rectangle { - color: "green" - width: 25; height: 25 - } - Rectangle { - color: "red" - x: 25; y: 25; width: 50; height: 50 - rotation: 30 - } - } - \endqml - \endtable -*/ - -/*! - \qmlproperty real Item::scale - This property holds the scale of the item. - - A scale of less than 1 means the item will be displayed smaller than - normal, and a scale of greater than 1 means the item will be - displayed larger than normal. A negative scale means the item will - be mirrored. - - By default, items are displayed at a scale of 1 (i.e. at their - normal size). - - Scaling is from the item's transformOrigin. - - \table - \row - \o \image declarative-scale.png - \o - \qml - Rectangle { - color: "blue" - width: 100; height: 100 - Rectangle { - color: "green" - width: 25; height: 25 - } - Rectangle { - color: "red" - x: 25; y: 25; width: 50; height: 50 - scale: 1.4 - } - } - \endqml - \endtable -*/ - -/*! - \qmlproperty real Item::opacity - - The opacity of the item. Opacity is specified as a number between 0 - (fully transparent) and 1 (fully opaque). The default is 1. - - Opacity is an \e inherited attribute. That is, the opacity is - also applied individually to child items. In almost all cases this - is what you want. If you can spot the issue in the following - example, you might need to use an opacity filter (not yet available) instead. - - \table - \row - \o \image declarative-item_opacity1.png - \o - \qml - Item { - Rectangle { - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \row - \o \image declarative-item_opacity2.png - \o - \qml - Item { - Rectangle { - opacity: 0.5 - color: "red" - width: 100; height: 100 - Rectangle { - color: "blue" - x: 50; y: 50; width: 100; height: 100 - } - } - } - \endqml - \endtable -*/ - -/*! - Returns a value indicating whether mouse input should - remain with this item exclusively. - - \sa setKeepMouseGrab() - */ -bool QmlGraphicsItem::keepMouseGrab() const -{ - Q_D(const QmlGraphicsItem); - return d->_keepMouse; -} - -/*! - The flag indicating whether the mouse should remain - with this item is set to \a keep. - - This is useful for items that wish to grab and keep mouse - interaction following a predefined gesture. For example, - an item that is interested in horizontal mouse movement - may set keepMouseGrab to true once a threshold has been - exceeded. Once keepMouseGrab has been set to true, filtering - items will not react to mouse events. - - If the item does not indicate that it wishes to retain mouse grab, - a filtering item may steal the grab. For example, Flickable may attempt - to steal a mouse grab if it detects that the user has begun to - move the viewport. - - \sa keepMouseGrab - */ -void QmlGraphicsItem::setKeepMouseGrab(bool keep) -{ - Q_D(QmlGraphicsItem); - d->_keepMouse = keep; -} - -/*! - \internal - - This function emits the \e focusChanged signal. - - Subclasses overriding this function should call up - to their base class. -*/ -void QmlGraphicsItem::focusChanged(bool flag) -{ - Q_UNUSED(flag); - emit focusChanged(); -} - -/*! \internal */ -QmlList *QmlGraphicsItem::fxChildren() -{ - Q_D(QmlGraphicsItem); - return &(d->children); -} - -/*! \internal */ -QmlList *QmlGraphicsItem::resources() -{ - Q_D(QmlGraphicsItem); - return &(d->resources); -} - -/*! - \qmlproperty list Item::states - This property holds a list of states defined by the item. - - \qml - Item { - states: [ - State { ... }, - State { ... } - ... - ] - } - \endqml - - \sa {qmlstate}{States} -*/ - -/*! - \property QmlGraphicsItem::states - \internal -*/ -/*! \internal */ -QmlList* QmlGraphicsItem::states() -{ - Q_D(QmlGraphicsItem); - return d->states()->statesProperty(); -} - -/*! - \qmlproperty list Item::transitions - This property holds a list of transitions defined by the item. - - \qml - Item { - transitions: [ - Transition { ... }, - Transition { ... } - ... - ] - } - \endqml - - \sa {state-transitions}{Transitions} -*/ - -/*! - \property QmlGraphicsItem::transitions - \internal -*/ - -/*! \internal */ -QmlList* QmlGraphicsItem::transitions() -{ - Q_D(QmlGraphicsItem); - return d->states()->transitionsProperty(); -} - -/* - \qmlproperty list Item::filter - This property holds a list of graphical filters to be applied to the item. - - \l {Filter}{Filters} include things like \l {Blur}{blurring} - the item, or giving it a \l Reflection. Some - filters may not be available on all canvases; if a filter is not - available on a certain canvas, it will simply not be applied for - that canvas (but the QML will still be considered valid). - - \qml - Item { - filter: [ - Blur { ... }, - Relection { ... } - ... - ] - } - \endqml -*/ - -/*! - \qmlproperty bool Item::clip - This property holds whether clipping is enabled. - - if clipping is enabled, an item will clip its own painting, as well - as the painting of its children, to its bounding rectangle. - - Non-rectangular clipping regions are not supported for performance reasons. -*/ - -/*! - \property QmlGraphicsItem::clip - This property holds whether clipping is enabled. - - if clipping is enabled, an item will clip its own painting, as well - as the painting of its children, to its bounding rectangle. - - Non-rectangular clipping regions are not supported for performance reasons. -*/ - -/*! - \qmlproperty string Item::state - - This property holds the name of the current state of the item. - - This property is often used in scripts to change between states. For - example: - - \qml - Script { - function toggle() { - if (button.state == 'On') - button.state = 'Off'; - else - button.state = 'On'; - } - } - \endqml - - If the item is in its base state (i.e. no explicit state has been - set), \c state will be a blank string. Likewise, you can return an - item to its base state by setting its current state to \c ''. - - \sa {qmlstates}{States} -*/ - -/*! - \property QmlGraphicsItem::state - \internal -*/ - -/*! \internal */ -QString QmlGraphicsItem::state() const -{ - Q_D(const QmlGraphicsItem); - if (!d->_stateGroup) - return QString(); - else - return d->_stateGroup->state(); -} - -/*! \internal */ -void QmlGraphicsItem::setState(const QString &state) -{ - Q_D(QmlGraphicsItem); - d->states()->setState(state); -} - -/*! - \qmlproperty list Item::transform - This property holds the list of transformations to apply. - - For more information see \l Transform. -*/ - -/*! - \property QmlGraphicsItem::transform - \internal -*/ - -/*! \internal */ -QmlList* QmlGraphicsItem::transform() -{ - Q_D(QmlGraphicsItem); - return &(d->transform); -} - -/*! - \internal - - classBegin() is called when the item is constructed, but its - properties have not yet been set. - - \sa componentComplete(), isComponentComplete() -*/ -void QmlGraphicsItem::classBegin() -{ - Q_D(QmlGraphicsItem); - d->_componentComplete = false; - if (d->_stateGroup) - d->_stateGroup->classBegin(); - if (d->_anchors) - d->_anchors->classBegin(); -} - -/*! - \internal - - componentComplete() is called when all items in the component - have been constructed. It is often desireable to delay some - processing until the component is complete an all bindings in the - component have been resolved. -*/ -void QmlGraphicsItem::componentComplete() -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - - Q_D(QmlGraphicsItem); - d->_componentComplete = true; - if (d->_stateGroup) - d->_stateGroup->componentComplete(); - if (d->_anchors) { - d->_anchors->componentComplete(); - d->_anchors->d_func()->updateOnComplete(); - } - if (d->keyHandler) - d->keyHandler->componentComplete(); -} - -QmlStateGroup *QmlGraphicsItemPrivate::states() -{ - Q_Q(QmlGraphicsItem); - if (!_stateGroup) { - _stateGroup = new QmlStateGroup(q); - if (!_componentComplete) - _stateGroup->classBegin(); - QObject::connect(_stateGroup, SIGNAL(stateChanged(QString)), - q, SIGNAL(stateChanged(QString))); - } - - return _stateGroup; -} - -QmlGraphicsItemPrivate::AnchorLines::AnchorLines(QmlGraphicsItem *q) -{ - left.item = q; - left.anchorLine = QmlGraphicsAnchorLine::Left; - right.item = q; - right.anchorLine = QmlGraphicsAnchorLine::Right; - hCenter.item = q; - hCenter.anchorLine = QmlGraphicsAnchorLine::HCenter; - top.item = q; - top.anchorLine = QmlGraphicsAnchorLine::Top; - bottom.item = q; - bottom.anchorLine = QmlGraphicsAnchorLine::Bottom; - vCenter.item = q; - vCenter.anchorLine = QmlGraphicsAnchorLine::VCenter; - baseline.item = q; - baseline.anchorLine = QmlGraphicsAnchorLine::Baseline; -} - -QPointF QmlGraphicsItemPrivate::computeTransformOrigin() const -{ - Q_Q(const QmlGraphicsItem); - - QRectF br = q->boundingRect(); - - switch(origin) { - default: - case QmlGraphicsItem::TopLeft: - return QPointF(0, 0); - case QmlGraphicsItem::Top: - return QPointF(br.width() / 2., 0); - case QmlGraphicsItem::TopRight: - return QPointF(br.width(), 0); - case QmlGraphicsItem::Left: - return QPointF(0, br.height() / 2.); - case QmlGraphicsItem::Center: - return QPointF(br.width() / 2., br.height() / 2.); - case QmlGraphicsItem::Right: - return QPointF(br.width(), br.height() / 2.); - case QmlGraphicsItem::BottomLeft: - return QPointF(0, br.height()); - case QmlGraphicsItem::Bottom: - return QPointF(br.width() / 2., br.height()); - case QmlGraphicsItem::BottomRight: - return QPointF(br.width(), br.height()); - } -} - -/*! \internal */ -bool QmlGraphicsItem::sceneEvent(QEvent *event) -{ - bool rv = QGraphicsItem::sceneEvent(event); - - if (event->type() == QEvent::FocusIn || - event->type() == QEvent::FocusOut) { - focusChanged(hasFocus()); - } - - return rv; -} - -/*! \internal */ -QVariant QmlGraphicsItem::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - if (change == ItemParentHasChanged) { - emit parentChanged(); - } - - return QGraphicsItem::itemChange(change, value); -} - -/*! \internal */ -QRectF QmlGraphicsItem::boundingRect() const -{ - Q_D(const QmlGraphicsItem); - return QRectF(0, 0, d->width, d->height); -} - -/*! - \enum QmlGraphicsItem::TransformOrigin - - Controls the point about which simple transforms like scale apply. - - \value TopLeft The top-left corner of the item. - \value Top The center point of the top of the item. - \value TopRight The top-right corner of the item. - \value Left The left most point of the vertical middle. - \value Center The center of the item. - \value Right The right most point of the vertical middle. - \value BottomLeft The bottom-left corner of the item. - \value Bottom The center point of the bottom of the item. - \value BottomRight The bottom-right corner of the item. -*/ - -/*! - Returns the current transform origin. -*/ -QmlGraphicsItem::TransformOrigin QmlGraphicsItem::transformOrigin() const -{ - Q_D(const QmlGraphicsItem); - return d->origin; -} - -/*! - Set the transform \a origin. -*/ -void QmlGraphicsItem::setTransformOrigin(TransformOrigin origin) -{ - Q_D(QmlGraphicsItem); - if (origin != d->origin) { - d->origin = origin; - QGraphicsItem::setTransformOriginPoint(d->computeTransformOrigin()); - } -} - -/*! - \property QmlGraphicsItem::smooth - \brief whether the item is smoothly transformed. - - This property is provided purely for the purpose of optimization. Turning - smooth transforms off is faster, but looks worse; turning smooth - transformations on is slower, but looks better. - - By default smooth transformations are off. -*/ - -/*! - Returns true if the item should be drawn with antialiasing and - smooth pixmap filtering, false otherwise. - - The default is false. - - \sa setSmoothTransform() -*/ -bool QmlGraphicsItem::smoothTransform() const -{ - Q_D(const QmlGraphicsItem); - return d->smooth; -} - -/*! - Sets whether the item should be drawn with antialiasing and - smooth pixmap filtering to \a smooth. - - \sa smoothTransform() -*/ -void QmlGraphicsItem::setSmoothTransform(bool smooth) -{ - Q_D(QmlGraphicsItem); - if (d->smooth == smooth) - return; - d->smooth = smooth; - update(); -} - -qreal QmlGraphicsItem::width() const -{ - Q_D(const QmlGraphicsItem); - return d->width; -} - -void QmlGraphicsItem::setWidth(qreal w) -{ - Q_D(QmlGraphicsItem); - d->widthValid = true; - if (d->width == w) - return; - - qreal oldWidth = d->width; - - prepareGeometryChange(); - d->width = w; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), oldWidth, height())); -} - -void QmlGraphicsItem::resetWidth() -{ - Q_D(QmlGraphicsItem); - d->widthValid = false; - setImplicitWidth(implicitWidth()); -} - -qreal QmlGraphicsItem::implicitWidth() const -{ - Q_D(const QmlGraphicsItem); - return d->implicitWidth; -} - -void QmlGraphicsItem::setImplicitWidth(qreal w) -{ - Q_D(QmlGraphicsItem); - d->implicitWidth = w; - if (d->width == w || widthValid()) - return; - - qreal oldWidth = d->width; - - prepareGeometryChange(); - d->width = w; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), oldWidth, height())); -} - -bool QmlGraphicsItem::widthValid() const -{ - Q_D(const QmlGraphicsItem); - return d->widthValid; -} - -qreal QmlGraphicsItem::height() const -{ - Q_D(const QmlGraphicsItem); - return d->height; -} - -void QmlGraphicsItem::setHeight(qreal h) -{ - Q_D(QmlGraphicsItem); - d->heightValid = true; - if (d->height == h) - return; - - qreal oldHeight = d->height; - - prepareGeometryChange(); - d->height = h; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), width(), oldHeight)); -} - -void QmlGraphicsItem::resetHeight() -{ - Q_D(QmlGraphicsItem); - d->heightValid = false; - setImplicitHeight(implicitHeight()); -} - -qreal QmlGraphicsItem::implicitHeight() const -{ - Q_D(const QmlGraphicsItem); - return d->implicitHeight; -} - -void QmlGraphicsItem::setImplicitHeight(qreal h) -{ - Q_D(QmlGraphicsItem); - d->implicitHeight = h; - if (d->height == h || heightValid()) - return; - - qreal oldHeight = d->height; - - prepareGeometryChange(); - d->height = h; - update(); - - geometryChanged(QRectF(x(), y(), width(), height()), - QRectF(x(), y(), width(), oldHeight)); -} - -bool QmlGraphicsItem::heightValid() const -{ - Q_D(const QmlGraphicsItem); - return d->heightValid; -} - -/*! - \qmlproperty bool Item::wantsFocus - - This property indicates whether the item has has an active focus request. -*/ - -/*! \internal */ -bool QmlGraphicsItem::wantsFocus() const -{ - return focusItem() != 0; -} - -/*! - \qmlproperty bool Item::focus - This property indicates whether the item has keyboard input focus. Set this - property to true to request focus. -*/ - -/*! \internal */ -bool QmlGraphicsItem::hasFocus() const -{ - return QGraphicsItem::hasFocus(); -} - -/*! \internal */ -void QmlGraphicsItem::setFocus(bool focus) -{ - if (focus) - QGraphicsItem::setFocus(Qt::OtherFocusReason); - else - QGraphicsItem::clearFocus(); -} - -/*! - \reimp - \internal -*/ -void QmlGraphicsItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) -{ -} - -/*! - \reimp - \internal -*/ -bool QmlGraphicsItem::event(QEvent *ev) -{ - return QGraphicsObject::event(ev); -} - -QDebug operator<<(QDebug debug, QmlGraphicsItem *item) -{ - if (!item) { - debug << "QmlGraphicsItem(0)"; - return debug; - } - - debug << item->metaObject()->className() << "(this =" << ((void*)item) - << ", parent =" << ((void*)item->parentItem()) - << ", geometry =" << QRectF(item->pos(), QSizeF(item->width(), item->height())) - << ", z =" << item->zValue() << ")"; - return debug; -} - -int QmlGraphicsItemPrivate::consistentTime = -1; -void QmlGraphicsItemPrivate::setConsistentTime(int t) -{ - consistentTime = t; -} - -QTime QmlGraphicsItemPrivate::currentTime() -{ - if (consistentTime == -1) - return QTime::currentTime(); - else - return QTime(0, 0).addMSecs(consistentTime); -} - -void QmlGraphicsItemPrivate::start(QTime &t) -{ - t = currentTime(); -} - -int QmlGraphicsItemPrivate::elapsed(QTime &t) -{ - int n = t.msecsTo(currentTime()); - if (n < 0) // passed midnight - n += 86400 * 1000; - return n; -} - -int QmlGraphicsItemPrivate::restart(QTime &t) -{ - QTime time = currentTime(); - int n = t.msecsTo(time); - if (n < 0) // passed midnight - n += 86400*1000; - t = time; - return n; -} - -#include "qmlgraphicsitem.moc" -#include "moc_qmlgraphicsitem.cpp" - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsKeysAttached) -QML_DECLARE_TYPEINFO(QmlGraphicsKeysAttached, QML_HAS_ATTACHED_PROPERTIES) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) -QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) - diff --git a/src/declarative/fx/qmlgraphicsitem.h b/src/declarative/fx/qmlgraphicsitem.h deleted file mode 100644 index bdfc245..0000000 --- a/src/declarative/fx/qmlgraphicsitem.h +++ /dev/null @@ -1,237 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSITEM_H -#define QMLGRAPHICSITEM_H - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlState; -class QmlGraphicsAnchorLine; -class QmlTransition; -class QmlGraphicsKeyEvent; -class QmlGraphicsAnchors; -class QmlGraphicsItemPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsItem : public QGraphicsObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QmlGraphicsItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) - Q_PROPERTY(QmlList *data READ data DESIGNABLE false) - Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) - Q_PROPERTY(QmlList* resources READ resources DESIGNABLE false) - Q_PROPERTY(QmlList* states READ states DESIGNABLE false) - Q_PROPERTY(QmlList* transitions READ transitions DESIGNABLE false) - Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) - Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged RESET resetWidth FINAL) - Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged RESET resetHeight FINAL) - Q_PROPERTY(QRectF childrenRect READ childrenRect NOTIFY childrenRectChanged DESIGNABLE false FINAL) - Q_PROPERTY(QmlGraphicsAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine left READ left CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine right READ right CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine top READ top CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) - Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline CONSTANT FINAL) - Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged) - Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY - Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL) - Q_PROPERTY(bool wantsFocus READ wantsFocus NOTIFY wantsFocusChanged) - Q_PROPERTY(QmlList* transform READ transform DESIGNABLE false FINAL) - Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin) - Q_PROPERTY(bool smooth READ smoothTransform WRITE setSmoothTransform) - Q_PROPERTY(QGraphicsEffect *effect READ graphicsEffect WRITE setGraphicsEffect) - Q_ENUMS(TransformOrigin) - Q_CLASSINFO("DefaultProperty", "data") - -public: - enum TransformOrigin { - TopLeft, Top, TopRight, - Left, Center, Right, - BottomLeft, Bottom, BottomRight - }; - - QmlGraphicsItem(QmlGraphicsItem *parent = 0); - virtual ~QmlGraphicsItem(); - - QmlGraphicsItem *parentItem() const; - void setParentItem(QmlGraphicsItem *parent); - void setParent(QmlGraphicsItem *parent) { setParentItem(parent); } - - QmlList *data(); - QmlList *fxChildren(); - QmlList *resources(); - - QmlGraphicsAnchors *anchors(); - QRectF childrenRect(); - - bool clip() const; - void setClip(bool); - - QmlList* states(); - QmlList* transitions(); - - QString state() const; - void setState(const QString &); - - qreal baselineOffset() const; - void setBaselineOffset(qreal); - - QmlList *transform(); - - qreal width() const; - void setWidth(qreal); - void resetWidth(); - qreal implicitWidth() const; - - qreal height() const; - void setHeight(qreal); - void resetHeight(); - qreal implicitHeight() const; - - TransformOrigin transformOrigin() const; - void setTransformOrigin(TransformOrigin); - - bool smoothTransform() const; - void setSmoothTransform(bool); - - QRectF boundingRect() const; - virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - bool wantsFocus() const; - bool hasFocus() const; - void setFocus(bool); - - bool keepMouseGrab() const; - void setKeepMouseGrab(bool); - -Q_SIGNALS: - void widthChanged(); - void heightChanged(); - void childrenRectChanged(); - void baselineOffsetChanged(); - void stateChanged(const QString &); - void focusChanged(); - void wantsFocusChanged(); - void parentChanged(); - -protected: - bool isComponentComplete() const; - virtual bool sceneEvent(QEvent *); - virtual bool event(QEvent *); - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); - - void setImplicitWidth(qreal); - bool widthValid() const; // ### better name? - void setImplicitHeight(qreal); - bool heightValid() const; // ### better name? - - virtual void classBegin(); - virtual void componentComplete(); - virtual void focusChanged(bool); - virtual void keyPressEvent(QKeyEvent *event); - virtual void keyReleaseEvent(QKeyEvent *event); - virtual void inputMethodEvent(QInputMethodEvent *); - virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - -protected: - QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent = 0); - -private: - // ### public? - QmlGraphicsAnchorLine left() const; - QmlGraphicsAnchorLine right() const; - QmlGraphicsAnchorLine horizontalCenter() const; - QmlGraphicsAnchorLine top() const; - QmlGraphicsAnchorLine bottom() const; - QmlGraphicsAnchorLine verticalCenter() const; - QmlGraphicsAnchorLine baseline() const; - - friend class QmlStatePrivate; - friend class QmlGraphicsAnchors; - Q_DISABLE_COPY(QmlGraphicsItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) -}; - -template - T qobject_cast(QGraphicsObject *o) -{ - QObject *obj = o; - return qobject_cast(obj); -} - -// ### move to QGO -template -T qobject_cast(QGraphicsItem *item) -{ - if (!item) return 0; - QObject *o = item->toGraphicsObject(); - return qobject_cast(o); -} - -QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QmlGraphicsItem *item); - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsItem) -QML_DECLARE_TYPE(QGraphicsTransform) -QML_DECLARE_TYPE(QGraphicsScale) -QML_DECLARE_TYPE(QGraphicsRotation) - -QT_END_HEADER - -#endif // QMLGRAPHICSITEM_H diff --git a/src/declarative/fx/qmlgraphicsitem_p.h b/src/declarative/fx/qmlgraphicsitem_p.h deleted file mode 100644 index f98c121..0000000 --- a/src/declarative/fx/qmlgraphicsitem_p.h +++ /dev/null @@ -1,245 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSITEM_P_H -#define QMLGRAPHICSITEM_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QNetworkReply; -class QmlGraphicsItemKeyFilter; - -//### merge into private? -class QmlGraphicsContents : public QObject -{ - Q_OBJECT -public: - QmlGraphicsContents(); - - QRectF rectF() const; - - void setItem(QmlGraphicsItem *item); - -public Q_SLOTS: - void calcHeight(); - void calcWidth(); - -Q_SIGNALS: - void rectChanged(); - -private: - QmlGraphicsItem *m_item; - qreal m_x; - qreal m_y; - qreal m_width; - qreal m_height; -}; - -class QmlGraphicsItemPrivate : public QGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsItem) - -public: - QmlGraphicsItemPrivate() - : _anchors(0), _contents(0), - _baselineOffset(0), - _anchorLines(0), - _stateGroup(0), origin(QmlGraphicsItem::TopLeft), - widthValid(false), heightValid(false), - _componentComplete(true), _keepMouse(false), - smooth(false), keyHandler(0), - width(0), height(0), implicitWidth(0), implicitHeight(0) - {} - ~QmlGraphicsItemPrivate() - { delete _anchors; } - - void init(QmlGraphicsItem *parent) - { - Q_Q(QmlGraphicsItem); - - if (parent) - q->setParentItem(parent); - _baselineOffset.invalidate(); - q->setAcceptedMouseButtons(Qt::NoButton); - q->setFlags(QGraphicsItem::ItemHasNoContents | - QGraphicsItem::ItemIsFocusable | - QGraphicsItem::ItemNegativeZStacksBehindParent); - mouseSetsFocus = false; - } - - QString _id; - - // data property - void data_removeAt(int); - int data_count() const; - void data_append(QObject *); - void data_insert(int, QObject *); - QObject *data_at(int) const; - void data_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, data) - - // resources property - void resources_removeAt(int); - int resources_count() const; - void resources_append(QObject *); - void resources_insert(int, QObject *); - QObject *resources_at(int) const; - void resources_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, resources) - - // children property - void children_removeAt(int); - int children_count() const; - void children_append(QmlGraphicsItem *); - void children_insert(int, QmlGraphicsItem *); - QmlGraphicsItem *children_at(int) const; - void children_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QmlGraphicsItem *, children) - - // transform property - void transform_removeAt(int); - int transform_count() const; - void transform_append(QGraphicsTransform *); - void transform_insert(int, QGraphicsTransform *); - QGraphicsTransform *transform_at(int) const; - void transform_clear(); - QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QGraphicsTransform *, transform) - - QmlGraphicsAnchors *anchors() { - if (!_anchors) { - Q_Q(QmlGraphicsItem); - _anchors = new QmlGraphicsAnchors; - _anchors->setItem(q); - if (!_componentComplete) - _anchors->classBegin(); - } - return _anchors; - } - QList dependantAnchors; - QmlGraphicsAnchors *_anchors; - QmlGraphicsContents *_contents; - - QmlNullableValue _baselineOffset; - - struct AnchorLines { - AnchorLines(QmlGraphicsItem *); - QmlGraphicsAnchorLine left; - QmlGraphicsAnchorLine right; - QmlGraphicsAnchorLine hCenter; - QmlGraphicsAnchorLine top; - QmlGraphicsAnchorLine bottom; - QmlGraphicsAnchorLine vCenter; - QmlGraphicsAnchorLine baseline; - }; - mutable AnchorLines *_anchorLines; - AnchorLines *anchorLines() const { - Q_Q(const QmlGraphicsItem); - if (!_anchorLines) _anchorLines = - new AnchorLines(const_cast(q)); - return _anchorLines; - } - - QmlStateGroup *states(); - QmlStateGroup *_stateGroup; - - QmlGraphicsItem::TransformOrigin origin:4; - bool widthValid:1; - bool heightValid:1; - bool _componentComplete:1; - bool _keepMouse:1; - bool smooth:1; - - QmlGraphicsItemKeyFilter *keyHandler; - - qreal width; - qreal height; - qreal implicitWidth; - qreal implicitHeight; - - QPointF computeTransformOrigin() const; - - virtual void setPosHelper(const QPointF &pos) - { - Q_Q(QmlGraphicsItem); - QRectF oldGeometry(this->pos.x(), this->pos.y(), width, height); - QGraphicsItemPrivate::setPosHelper(pos); - q->geometryChanged(QRectF(this->pos.x(), this->pos.y(), width, height), oldGeometry); - } - - // Reimplemented from QGraphicsItemPrivate - virtual void subFocusItemChange() - { - emit q_func()->wantsFocusChanged(); - } - - static int consistentTime; - static QTime currentTime(); - static void Q_DECLARATIVE_EXPORT setConsistentTime(int t); - static void start(QTime &); - static int elapsed(QTime &); - static int restart(QTime &); -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSITEM_P_H diff --git a/src/declarative/fx/qmlgraphicslayoutitem.cpp b/src/declarative/fx/qmlgraphicslayoutitem.cpp deleted file mode 100644 index 45420ed..0000000 --- a/src/declarative/fx/qmlgraphicslayoutitem.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicslayoutitem_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QmlGraphicsLayoutItem) - -/*! - \qmlclass LayoutItem QmlGraphicsLayoutItem - \brief The LayoutItem element allows you to place your Fluid UI elements inside a classical Qt layout. -*/ - -/*! - \internal - \class QmlGraphicsLayoutItem - \brief The QmlGraphicsLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. -*/ - - -/*! - \qmlproperty QSizeF LayoutItem::maximumSize - - The maximumSize property can be set to specify the maximum desired size of this LayoutItem -*/ - -/*! - \qmlproperty QSizeF LayoutItem::minimumSize - - The minimumSize property can be set to specify the minimum desired size of this LayoutItem -*/ - -/*! - \qmlproperty QSizeF LayoutItem::preferredSize - - The preferredSize property can be set to specify the preferred size of this LayoutItem -*/ - -QmlGraphicsLayoutItem::QmlGraphicsLayoutItem(QmlGraphicsItem* parent) - : QmlGraphicsItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) -{ - setGraphicsItem(this); -} - -void QmlGraphicsLayoutItem::setGeometry(const QRectF & rect) -{ - setX(rect.x()); - setY(rect.y()); - setWidth(rect.width()); - setHeight(rect.height()); -} - -QSizeF QmlGraphicsLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const -{ - Q_UNUSED(constraint); - if(w == Qt::MinimumSize){ - return m_minimumSize; - }else if(w == Qt::MaximumSize){ - return m_maximumSize; - }else{ - return m_preferredSize; - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicslayoutitem_p.h b/src/declarative/fx/qmlgraphicslayoutitem_p.h deleted file mode 100644 index 35905b5..0000000 --- a/src/declarative/fx/qmlgraphicslayoutitem_p.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSGRAPHICSLAYOUTITEM_H -#define QMLGRAPHICSGRAPHICSLAYOUTITEM_H -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem -{ - Q_OBJECT - Q_INTERFACES(QGraphicsLayoutItem) - Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) - Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) - Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) -public: - QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); - - QSizeF maximumSize() const { return m_maximumSize; } - void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } - - QSizeF minimumSize() const { return m_minimumSize; } - void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } - - QSizeF preferredSize() const { return m_preferredSize; } - void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } - - virtual void setGeometry(const QRectF & rect); -protected: - virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; - -Q_SIGNALS: - void maximumSizeChanged(); - void minimumSizeChanged(); - void preferredSizeChanged(); - -private: - QSizeF m_maximumSize; - QSizeF m_minimumSize; - QSizeF m_preferredSize; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLayoutItem) - -QT_END_HEADER -#endif diff --git a/src/declarative/fx/qmlgraphicslistview.cpp b/src/declarative/fx/qmlgraphicslistview.cpp deleted file mode 100644 index dc8bab2..0000000 --- a/src/declarative/fx/qmlgraphicslistview.cpp +++ /dev/null @@ -1,2036 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "private/qmlgraphicsflickable_p_p.h" -#include -#include -#include "qmlgraphicsvisualitemmodel_p.h" -#include "qmlgraphicslistview_p.h" -#include - -#include - -QT_BEGIN_NAMESPACE -class QmlGraphicsListViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsListViewAttached(QObject *parent) - : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {} - ~QmlGraphicsListViewAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(QmlGraphicsListView *view READ view CONSTANT) - QmlGraphicsListView *view() { return m_view; } - - Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) - bool isCurrentItem() const { return m_isCurrent; } - void setIsCurrentItem(bool c) { - if (m_isCurrent != c) { - m_isCurrent = c; - emit currentItemChanged(); - } - } - - Q_PROPERTY(QString prevSection READ prevSection NOTIFY prevSectionChanged) - QString prevSection() const { return m_prevSection; } - void setPrevSection(const QString §) { - if (m_prevSection != sect) { - m_prevSection = sect; - emit prevSectionChanged(); - } - } - - Q_PROPERTY(QString section READ section NOTIFY sectionChanged) - QString section() const { return m_section; } - void setSection(const QString §) { - if (m_section != sect) { - m_section = sect; - emit sectionChanged(); - } - } - - Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) - bool delayRemove() const { return m_delayRemove; } - void setDelayRemove(bool delay) { - if (m_delayRemove != delay) { - m_delayRemove = delay; - emit delayRemoveChanged(); - } - } - - static QmlGraphicsListViewAttached *properties(QObject *obj) { - QmlGraphicsListViewAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsListViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - - void emitAdd() { emit add(); } - void emitRemove() { emit remove(); } - -Q_SIGNALS: - void currentItemChanged(); - void sectionChanged(); - void prevSectionChanged(); - void delayRemoveChanged(); - void add(); - void remove(); - -public: - QmlGraphicsListView *m_view; - bool m_isCurrent; - mutable QString m_section; - QString m_prevSection; - bool m_delayRemove; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsListViewAttached::attachedProperties; - -//---------------------------------------------------------------------------- - -class FxListItem -{ -public: - FxListItem(QmlGraphicsItem *i, QmlGraphicsListView *v) : item(i), view(v) { - attached = QmlGraphicsListViewAttached::properties(item); - attached->m_view = view; - } - ~FxListItem() {} - - qreal position() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() : item->x()); } - int size() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->height() : item->width()); } - qreal endPosition() const { - return (view->orientation() == QmlGraphicsListView::Vertical - ? item->y() + (item->height() > 0 ? item->height() : 1) - : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; - } - void setPosition(qreal pos) { - if (view->orientation() == QmlGraphicsListView::Vertical) { - item->setY(pos); - } else { - item->setX(pos); - } - } - - QmlGraphicsItem *item; - QmlGraphicsListView *view; - QmlGraphicsListViewAttached *attached; - int index; -}; - -//---------------------------------------------------------------------------- - -class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsListView) - -public: - QmlGraphicsListViewPrivate() - : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical) - , visiblePos(0), visibleIndex(0) - , averageSize(100.0), currentIndex(-1), requestedIndex(-1) - , highlightRangeStart(0), highlightRangeEnd(0) - , highlightComponent(0), highlight(0), trackedItem(0) - , moveReason(Other), buffer(0), highlightPosAnimator(0), highlightSizeAnimator(0), spacing(0.0) - , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QmlGraphicsListView::NoHighlightRange) - , ownModel(false), wrap(false), autoHighlight(true) - , haveHighlightRange(false) - {} - - void init(); - void clear(); - FxListItem *createItem(int modelIndex); - void releaseItem(FxListItem *item); - - FxListItem *visibleItem(int modelIndex) const { - if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { - for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems.at(i); - if (item->index == modelIndex) - return item; - } - } - return 0; - } - - qreal position() const { - Q_Q(const QmlGraphicsListView); - return orient == QmlGraphicsListView::Vertical ? q->viewportY() : q->viewportX(); - } - void setPosition(qreal pos) { - Q_Q(QmlGraphicsListView); - if (orient == QmlGraphicsListView::Vertical) - q->setViewportY(pos); - else - q->setViewportX(pos); - } - qreal size() const { - Q_Q(const QmlGraphicsListView); - return orient == QmlGraphicsListView::Vertical ? q->height() : q->width(); - } - - qreal startPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) { - pos = visibleItems.first()->position(); - if (visibleIndex > 0) - pos -= visibleIndex * (averageSize + spacing) - spacing; - } - return pos; - } - - qreal endPosition() const { - qreal pos = 0; - if (!visibleItems.isEmpty()) { - int invisibleCount = visibleItems.count() - visibleIndex; - for (int i = visibleItems.count()-1; i >= 0; --i) { - if (visibleItems.at(i)->index != -1) { - invisibleCount = model->count() - visibleItems.at(i)->index - 1; - break; - } - } - pos = visibleItems.last()->endPosition() + invisibleCount * (averageSize + spacing); - } - return pos; - } - - qreal positionAt(int modelIndex) const { - if (FxListItem *item = visibleItem(modelIndex)) - return item->position(); - if (!visibleItems.isEmpty()) { - if (modelIndex < visibleIndex) { - int count = visibleIndex - modelIndex; - return visibleItems.first()->position() - count * (averageSize + spacing); - } else { - int idx = visibleItems.count() - 1; - while (idx >= 0 && visibleItems.at(idx)->index == -1) - --idx; - if (idx < 0) - idx = visibleIndex; - else - idx = visibleItems.at(idx)->index; - int count = modelIndex - idx - 1; - return visibleItems.last()->endPosition() + spacing + count * (averageSize + spacing) + 1; - } - } - return 0; - } - - QString sectionAt(int modelIndex) { - Q_Q(QmlGraphicsListView); - if (FxListItem *item = visibleItem(modelIndex)) - return item->attached->section(); - QString section; - if (!sectionExpression.isEmpty()) - section = model->evaluate(modelIndex, sectionExpression, q).toString(); - return section; - } - - bool isValid() const { - return model && model->count() && model->isValid(); - } - - int snapIndex() { - int index = currentIndex; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems[i]; - if (item->index == -1) - continue; - qreal itemTop = item->position(); - if (itemTop >= highlight->position()-item->size()/2 && itemTop < highlight->position()+item->size()/2) - return item->index; - } - return index; - } - - //XXX Rough. Only works for fixed size items. - qreal snapPosAt(qreal pos) { - return qRound((pos - startPosition()) / averageSize) * averageSize + startPosition(); - } - - int lastVisibleIndex() const { - int lastIndex = -1; - for (int i = visibleItems.count()-1; i >= 0; --i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index != -1) { - lastIndex = listItem->index; - break; - } - } - return lastIndex; - } - - // map a model index to visibleItems index. - // These may differ if removed items are still present in the visible list, - // e.g. doing a removal animation - int mapFromModel(int modelIndex) const { - if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) - return -1; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index == modelIndex) - return i + visibleIndex; - if (listItem->index > modelIndex) - return -1; - } - return -1; // Not in visibleList - } - - bool mapRangeFromModel(int &index, int &count) const { - if (index + count < visibleIndex) - return false; - - int lastIndex = -1; - for (int i = visibleItems.count()-1; i >= 0; --i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index != -1) { - lastIndex = listItem->index; - break; - } - } - - if (index > lastIndex) - return false; - - int last = qMin(index + count - 1, lastIndex); - index = qMax(index, visibleIndex); - count = last - index + 1; - - return true; - } - - void updateViewport() { - Q_Q(QmlGraphicsListView); - if (orient == QmlGraphicsListView::Vertical) - q->setViewportHeight(endPosition() - startPosition()); - else - q->setViewportWidth(endPosition() - startPosition()); - } - - - // for debugging only - void checkVisible() const { - int skip = 0; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *listItem = visibleItems.at(i); - if (listItem->index == -1) { - ++skip; - } else if (listItem->index != visibleIndex + i - skip) { - qFatal("index %d %d %d", visibleIndex, i, listItem->index); - } - } - } - - void refill(qreal from, qreal to); - void layout(); - void updateUnrequestedIndexes(); - void updateUnrequestedPositions(); - void updateTrackedItem(); - void createHighlight(); - void updateHighlight(); - void updateSections(); - void updateCurrentSection(); - void updateCurrent(int); - void updateAverage(); - void fixupPosition(); - virtual void fixupY(); - virtual void fixupX(); - virtual void flickX(qreal velocity); - virtual void flickY(qreal velocity); - - QmlGraphicsVisualModel *model; - QVariant modelVariant; - QList visibleItems; - QHash unrequestedItems; - FxListItem *currentItem; - QmlGraphicsListView::Orientation orient; - int visiblePos; - int visibleIndex; - qreal averageSize; - int currentIndex; - int requestedIndex; - qreal highlightRangeStart; - qreal highlightRangeEnd; - QmlComponent *highlightComponent; - FxListItem *highlight; - FxListItem *trackedItem; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; - int buffer; - QmlEaseFollow *highlightPosAnimator; - QmlEaseFollow *highlightSizeAnimator; - QString sectionExpression; - QString currentSection; - qreal spacing; - qreal highlightMoveSpeed; - qreal highlightResizeSpeed; - QmlGraphicsListView::HighlightRangeMode highlightRange; - - bool ownModel : 1; - bool wrap : 1; - bool autoHighlight : 1; - bool haveHighlightRange : 1; -}; - -void QmlGraphicsListViewPrivate::init() -{ - Q_Q(QmlGraphicsListView); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(refill())); - QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(refill())); -} - -void QmlGraphicsListViewPrivate::clear() -{ - for (int i = 0; i < visibleItems.count(); ++i) - releaseItem(visibleItems.at(i)); - visibleItems.clear(); - visiblePos = 0; - visibleIndex = 0; - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - createHighlight(); - trackedItem = 0; -} - -FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex) -{ - Q_Q(QmlGraphicsListView); - // create object - requestedIndex = modelIndex; - FxListItem *listItem = 0; - if (QmlGraphicsItem *item = model->item(modelIndex, false)) { - listItem = new FxListItem(item, q); - listItem->index = modelIndex; - // initialise attached properties - if (!sectionExpression.isEmpty()) { - QmlExpression e(qmlContext(listItem->item), sectionExpression, q); - e.setTrackChange(false); - listItem->attached->m_section = e.value().toString(); - if (modelIndex > 0) { - if (FxListItem *item = visibleItem(modelIndex-1)) - listItem->attached->m_prevSection = item->attached->section(); - else - listItem->attached->m_prevSection = sectionAt(modelIndex-1); - } - } - // complete - model->completeItem(); - listItem->item->setZValue(1); - listItem->item->setParent(q->viewport()); - if (orient == QmlGraphicsListView::Vertical) - QObject::connect(listItem->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); - else - QObject::connect(listItem->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); - } - requestedIndex = -1; - - return listItem; -} - -void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item) -{ - Q_Q(QmlGraphicsListView); - if (!item) - return; - if (trackedItem == item) { - const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); - QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - if (model->release(item->item) == 0) { - // item was not destroyed, and we no longer reference it. - unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - if (orient == QmlGraphicsListView::Vertical) - QObject::disconnect(item->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); - else - QObject::disconnect(item->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); - } - delete item; -} - -void QmlGraphicsListViewPrivate::refill(qreal from, qreal to) -{ - Q_Q(QmlGraphicsListView); - if (!isValid() || !q->isComponentComplete()) - return; - from -= buffer; - to += buffer; - int modelIndex = 0; - qreal itemEnd = visiblePos-1; - if (!visibleItems.isEmpty()) { - visiblePos = visibleItems.first()->position(); - itemEnd = visibleItems.last()->endPosition() + spacing; - int i = visibleItems.count() - 1; - while (i > 0 && visibleItems.at(i)->index == -1) - --i; - modelIndex = visibleItems.at(i)->index + 1; - } - - bool changed = false; - FxListItem *item = 0; - int pos = itemEnd + 1; - while (modelIndex < model->count() && pos <= to) { - //qDebug() << "refill: append item" << modelIndex; - if (!(item = createItem(modelIndex))) - break; - item->setPosition(pos); - pos += item->size() + spacing; - visibleItems.append(item); - ++modelIndex; - changed = true; - } - while (visibleIndex > 0 && visibleIndex <= model->count() && visiblePos > from) { - //qDebug() << "refill: prepend item" << visibleIndex-1 << "current top pos" << visiblePos; - if (!(item = createItem(visibleIndex-1))) - break; - --visibleIndex; - visiblePos -= item->size() + spacing; - item->setPosition(visiblePos); - visibleItems.prepend(item); - changed = true; - } - - while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endPosition() < from) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endPosition(); - if (item->index != -1) - visibleIndex++; - visibleItems.removeFirst(); - releaseItem(item); - changed = true; - } - while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->position() > to) { - if (item->attached->delayRemove()) - break; - //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; - visibleItems.removeLast(); - releaseItem(item); - changed = true; - } - if (changed) { - if (visibleItems.count()) - visiblePos = visibleItems.first()->position(); - updateAverage(); - if (!sectionExpression.isEmpty()) - updateCurrentSection(); - updateViewport(); - } -} - -void QmlGraphicsListViewPrivate::layout() -{ - Q_Q(QmlGraphicsListView); - if (!visibleItems.isEmpty()) { - int oldEnd = visibleItems.last()->endPosition(); - int pos = visibleItems.first()->endPosition() + spacing + 1; - for (int i=1; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems.at(i); - item->setPosition(pos); - pos += item->size() + spacing; - } - // move current item if it is after the visible items. - if (currentItem && currentIndex > lastVisibleIndex()) - currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd)); - } - if (!isValid()) - return; - q->refill(); - updateHighlight(); - fixupPosition(); - updateUnrequestedPositions(); - updateViewport(); -} - -void QmlGraphicsListViewPrivate::updateUnrequestedIndexes() -{ - Q_Q(QmlGraphicsListView); - QHash::iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) - *it = model->indexOf(it.key(), q); -} - -void QmlGraphicsListViewPrivate::updateUnrequestedPositions() -{ - QHash::const_iterator it; - for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { - if (visibleItem(*it)) - continue; - if (orient == QmlGraphicsListView::Vertical) - it.key()->setY(positionAt(*it)); - else - it.key()->setX(positionAt(*it)); - } -} - -void QmlGraphicsListViewPrivate::updateTrackedItem() -{ - Q_Q(QmlGraphicsListView); - FxListItem *item = currentItem; - if (highlight) - item = highlight; - - FxListItem *oldTracked = trackedItem; - - const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); - const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); - - if (trackedItem && item != trackedItem) { - QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - trackedItem = 0; - } - - if (!trackedItem && item) { - trackedItem = item; - QObject::connect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); - QObject::connect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); - } - if (trackedItem && trackedItem != oldTracked) - q->trackedPositionChanged(); -} - -void QmlGraphicsListViewPrivate::createHighlight() -{ - Q_Q(QmlGraphicsListView); - if (highlight) { - if (trackedItem == highlight) - trackedItem = 0; - delete highlight->item; - delete highlight; - highlight = 0; - delete highlightPosAnimator; - delete highlightSizeAnimator; - highlightPosAnimator = 0; - highlightSizeAnimator = 0; - } - - if (currentItem) { - QmlGraphicsItem *item = 0; - if (highlightComponent) { - QmlContext *highlightContext = new QmlContext(qmlContext(q)); - QObject *nobj = highlightComponent->create(highlightContext); - if (nobj) { - highlightContext->setParent(nobj); - item = qobject_cast(nobj); - if (!item) { - delete nobj; - } else { - item->setParent(q->viewport()); - } - } else { - delete highlightContext; - } - } else { - item = new QmlGraphicsItem; - item->setParent(q->viewport()); - } - if (item) { - item->setZValue(0); - highlight = new FxListItem(item, q); - if (orient == QmlGraphicsListView::Vertical) - highlight->item->setHeight(currentItem->item->height()); - else - highlight->item->setWidth(currentItem->item->width()); - const QLatin1String posProp(orient == QmlGraphicsListView::Vertical ? "y" : "x"); - highlightPosAnimator = new QmlEaseFollow(q); - highlightPosAnimator->setTarget(QmlMetaProperty(highlight->item, posProp)); - highlightPosAnimator->setVelocity(highlightMoveSpeed); - highlightPosAnimator->setEnabled(autoHighlight); - const QLatin1String sizeProp(orient == QmlGraphicsListView::Vertical ? "height" : "width"); - highlightSizeAnimator = new QmlEaseFollow(q); - highlightSizeAnimator->setVelocity(highlightResizeSpeed); - highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); - highlightSizeAnimator->setEnabled(autoHighlight); - } - } -} - -void QmlGraphicsListViewPrivate::updateHighlight() -{ - if ((!currentItem && highlight) || (currentItem && !highlight)) - createHighlight(); - if (currentItem && autoHighlight && highlight && !moving) { - // auto-update highlight - highlightPosAnimator->setSourceValue(currentItem->position()); - highlightSizeAnimator->setSourceValue(currentItem->size()); - if (orient == QmlGraphicsListView::Vertical) { - if (highlight->item->width() == 0) - highlight->item->setWidth(currentItem->item->width()); - } else { - if (highlight->item->height() == 0) - highlight->item->setHeight(currentItem->item->height()); - } - } - updateTrackedItem(); -} - -void QmlGraphicsListViewPrivate::updateSections() -{ - if (!sectionExpression.isEmpty()) { - QString prevSection; - if (visibleIndex > 0) - prevSection = sectionAt(visibleIndex-1); - for (int i = 0; i < visibleItems.count(); ++i) { - if (visibleItems.at(i)->index != -1) { - QmlGraphicsListViewAttached *attached = visibleItems.at(i)->attached; - attached->setPrevSection(prevSection); - prevSection = attached->section(); - } - } - } -} - -void QmlGraphicsListViewPrivate::updateCurrentSection() -{ - if (sectionExpression.isEmpty() || visibleItems.isEmpty()) { - currentSection = QString(); - return; - } - int index = 0; - while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count()) - ++index; - - if (index < visibleItems.count()) - currentSection = visibleItems.at(index)->attached->section(); - else - currentSection = visibleItems.first()->attached->section(); -} - -void QmlGraphicsListViewPrivate::updateCurrent(int modelIndex) -{ - Q_Q(QmlGraphicsListView); - if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { - if (currentItem) { - currentItem->attached->setIsCurrentItem(false); - releaseItem(currentItem); - currentItem = 0; - currentIndex = -1; - updateHighlight(); - emit q->currentIndexChanged(); - } - return; - } - - if (currentItem && currentIndex == modelIndex) { - updateHighlight(); - return; - } - FxListItem *oldCurrentItem = currentItem; - currentIndex = modelIndex; - currentItem = createItem(modelIndex); - if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) - oldCurrentItem->attached->setIsCurrentItem(false); - if (currentItem) { - if (modelIndex == visibleIndex - 1) { - // We can calculate exact postion in this case - currentItem->setPosition(visibleItems.first()->position() - currentItem->size() - spacing); - } else { - // Create current item now and position as best we can. - // Its position will be corrected when it becomes visible. - currentItem->setPosition(positionAt(modelIndex)); - } - currentItem->item->setFocus(true); - currentItem->attached->setIsCurrentItem(true); - } - updateHighlight(); - emit q->currentIndexChanged(); - // Release the old current item - releaseItem(oldCurrentItem); -} - -void QmlGraphicsListViewPrivate::updateAverage() -{ - if (!visibleItems.count()) - return; - qreal sum = 0.0; - for (int i = 0; i < visibleItems.count(); ++i) - sum += visibleItems.at(i)->size(); - averageSize = sum / visibleItems.count(); -} - -void QmlGraphicsListViewPrivate::fixupPosition() -{ - if (orient == QmlGraphicsListView::Vertical) - fixupY(); - else - fixupX(); -} - -void QmlGraphicsListViewPrivate::fixupY() -{ - QmlGraphicsFlickablePrivate::fixupY(); - if (orient == QmlGraphicsListView::Horizontal) - return; - - if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { - if (currentItem && highlight && currentItem->position() != highlight->position()) { - moveReason = Mouse; - timeline.clear(); - timeline.move(_moveY, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); - } - } -} - -void QmlGraphicsListViewPrivate::fixupX() -{ - QmlGraphicsFlickablePrivate::fixupX(); - if (orient == QmlGraphicsListView::Vertical) - return; - - if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { - if (currentItem && highlight && currentItem->position() != highlight->position()) { - moveReason = Mouse; - timeline.clear(); - timeline.move(_moveX, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); - } - } -} - -void QmlGraphicsListViewPrivate::flickX(qreal velocity) -{ - Q_Q(QmlGraphicsListView); - - if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { - QmlGraphicsFlickablePrivate::flickX(velocity); - return; - } - - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveX.value() < q->minXExtent()) - maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); - flickTargetX = q->minXExtent(); - } else { - if (_moveX.value() > q->maxXExtent()) - maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); - flickTargetX = q->maxXExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - qreal accel = deceleration; - qreal v2 = v * v; - qreal maxAccel = v2 / (2.0f * maxDistance); - if (maxAccel < accel) { - // If we are not flicking to the end then attempt to stop exactly on an item boundary - qreal dist = v2 / accel / 2.0; - if (v > 0) - dist = -dist; - dist = -_moveX.value() - snapPosAt(-(_moveX.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { - timeline.reset(_moveX); - fixupX(); - return; - } - accel = v2 / (2.0f * qAbs(dist)); - } - timeline.reset(_moveX); - timeline.accel(_moveX, v, accel, maxDistance); - timeline.execute(fixupXEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveX); - fixupX(); - } -} - -void QmlGraphicsListViewPrivate::flickY(qreal velocity) -{ - Q_Q(QmlGraphicsListView); - - if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { - QmlGraphicsFlickablePrivate::flickY(velocity); - return; - } - - qreal maxDistance = -1; - // -ve velocity means list is moving up - if (velocity > 0) { - if (_moveY.value() < q->minYExtent()) - maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); - flickTargetY = q->minYExtent(); - } else { - if (_moveY.value() > q->maxYExtent()) - maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); - flickTargetY = q->maxYExtent(); - } - if (maxDistance > 0) { - qreal v = velocity; - if (maxVelocity != -1 && maxVelocity < qAbs(v)) { - if (v < 0) - v = -maxVelocity; - else - v = maxVelocity; - } - qreal accel = deceleration; - qreal v2 = v * v; - qreal maxAccel = v2 / (2.0f * maxDistance); - if (maxAccel < accel) { - // If we are not flicking to the end then attempt to stop exactly on an item boundary - qreal dist = v2 / accel / 2.0; - if (v > 0) - dist = -dist; - dist = -_moveY.value() - snapPosAt(-(_moveY.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { - timeline.reset(_moveY); - fixupY(); - return; - } - accel = v2 / (2.0f * qAbs(dist)); - } - timeline.reset(_moveY); - timeline.accel(_moveY, v, accel, maxDistance); - timeline.execute(fixupYEvent); - if (!flicked) { - flicked = true; - emit q->flickingChanged(); - emit q->flickStarted(); - } - } else { - timeline.reset(_moveY); - fixupY(); - } -} - -//---------------------------------------------------------------------------- - -/*! - \qmlclass ListView QFxListView - \inherits Flickable - \brief The ListView item provides a list view of items provided by a model. - - The model is typically provided by a QAbstractListModel "C++ model object", - but can also be created directly in QML. The items are laid out vertically - or horizontally and may be flicked to scroll. - - The below example creates a very simple vertical list, using a QML model. - \image trivialListView.png - - The user interface defines a delegate to display an item, a highlight, - and the ListView which uses the above. - - \snippet doc/src/snippets/declarative/listview/listview.qml 3 - - The model is defined as a ListModel using QML: - \quotefile doc/src/snippets/declarative/listview/dummydata/ContactModel.qml - - In this case ListModel is a handy way for us to test our UI. In practice - the model would be implemented in C++, or perhaps via a SQL data source. -*/ - -QmlGraphicsListView::QmlGraphicsListView(QmlGraphicsItem *parent) - : QmlGraphicsFlickable(*(new QmlGraphicsListViewPrivate), parent) -{ - Q_D(QmlGraphicsListView); - d->init(); -} - -QmlGraphicsListView::~QmlGraphicsListView() -{ - Q_D(QmlGraphicsListView); - d->clear(); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlattachedproperty bool ListView::isCurrentItem - This attched property is true if this delegate is the current item; otherwise false. - - It is attached to each instance of the delegate. - - This property may be used to adjust the appearance of the current item, for example: - - \snippet doc/src/snippets/declarative/listview/highlight.qml 0 -*/ - -/*! - \qmlattachedproperty ListView ListView::view - This attached property holds the view that manages this delegate instance. - - It is attached to each instance of the delegate. -*/ - -/*! - \qmlattachedproperty string ListView::prevSection - This attached property holds the section of the previous element. - - It is attached to each instance of the delegate. - - The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. -*/ - -/*! - \qmlattachedproperty string ListView::section - This attached property holds the section of this element. - - It is attached to each instance of the delegate. - - The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. -*/ - -/*! - \qmlattachedproperty bool ListView::delayRemove - This attached property holds whether the delegate may be destroyed. - - It is attached to each instance of the delegate. - - It is sometimes necessary to delay the destruction of an item - until an animation completes. - - The example below ensures that the animation completes before - the item is removed from the list. - - \code - Component { - id: myDelegate - Item { - id: wrapper - ListView.onRemove: SequentialAnimation { - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } - NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } - } - } - } - \endcode -*/ - -/*! - \qmlattachedsignal ListView::onAdd() - This attached handler is called immediately after an item is added to the view. -*/ - -/*! - \qmlattachedsignal ListView::onRemove() - This attached handler is called immediately before an item is removed from the view. -*/ - -/*! - \qmlproperty model ListView::model - This property holds the model providing data for the list. - - The model provides a set of data that is used to create the items - for the view. For large or dynamic datasets the model is usually - provided by a C++ model object. The C++ model object must be a \l - {QAbstractItemModel} subclass or a simple list. - - Models can also be created directly in QML, using a \l{ListModel}, - \l{XmlListModel} or \l{VisualItemModel}. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsListView::model() const -{ - Q_D(const QmlGraphicsListView); - return d->modelVariant; -} - -void QmlGraphicsListView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsListView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - } - d->clear(); - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - if (d->currentIndex >= d->model->count() || d->currentIndex < 0) - setCurrentIndex(0); - else - d->updateCurrent(d->currentIndex); - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - refill(); - emit countChanged(); - } -} - -/*! - \qmlproperty component ListView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/listview/listview.qml 0 -*/ -QmlComponent *QmlGraphicsListView::delegate() const -{ - Q_D(const QmlGraphicsListView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsListView::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsListView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - d->updateCurrent(d->currentIndex); - refill(); - } -} - -/*! - \qmlproperty int ListView::currentIndex - \qmlproperty Item ListView::currentItem - - \c currentIndex holds the index of the current item. - \c currentItem is the current item. Note that the position of the current item - may only be approximate until it becomes visible in the view. -*/ -int QmlGraphicsListView::currentIndex() const -{ - Q_D(const QmlGraphicsListView); - return d->currentIndex; -} - -void QmlGraphicsListView::setCurrentIndex(int index) -{ - Q_D(QmlGraphicsListView); - d->moveReason = QmlGraphicsListViewPrivate::Other; - if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { - cancelFlick(); - d->updateCurrent(index); - } else { - d->currentIndex = index; - } -} - -QmlGraphicsItem *QmlGraphicsListView::currentItem() -{ - Q_D(QmlGraphicsListView); - if (!d->currentItem) - return 0; - return d->currentItem->item; -} - -/*! - \qmlproperty int ListView::count - This property holds the number of items in the view. -*/ -int QmlGraphicsListView::count() const -{ - Q_D(const QmlGraphicsListView); - if (d->model) - return d->model->count(); - return 0; -} - -/*! - \qmlproperty component ListView::highlight - This property holds the component to use as the highlight. - - An instance of the highlight component will be created for each list. - The geometry of the resultant component instance will be managed by the list - so as to stay with the current item, unless the highlightFollowsCurrentItem - property is false. - - The below example demonstrates how to make a simple highlight - for a vertical list. - - \snippet doc/src/snippets/declarative/listview/listview.qml 1 - \image trivialListView.png - - \sa highlightFollowsCurrentItem -*/ -QmlComponent *QmlGraphicsListView::highlight() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightComponent; -} - -void QmlGraphicsListView::setHighlight(QmlComponent *highlight) -{ - Q_D(QmlGraphicsListView); - delete d->highlightComponent; - d->highlightComponent = highlight; - d->updateCurrent(d->currentIndex); -} - -/*! - \qmlproperty bool ListView::highlightFollowsCurrentItem - This property holds whether the highlight is managed by the view. - - If highlightFollowsCurrentItem is true, the highlight will be moved smoothly - to follow the current item. If highlightFollowsCurrentItem is false, the - highlight will not be moved by the view, and must be implemented - by the highlight. The following example creates a highlight with - its motion defined by the spring \l {SpringFollow}: - - \snippet doc/src/snippets/declarative/listview/highlight.qml 1 - - Note that the highlight animation also affects the way that the view - is scrolled. This is because the view moves to maintain the - highlight within the preferred highlight range (or visible viewport). - - \sa highlight -*/ -bool QmlGraphicsListView::highlightFollowsCurrentItem() const -{ - Q_D(const QmlGraphicsListView); - return d->autoHighlight; -} - -void QmlGraphicsListView::setHighlightFollowsCurrentItem(bool autoHighlight) -{ - Q_D(QmlGraphicsListView); - d->autoHighlight = autoHighlight; - if (d->highlightPosAnimator) { - d->highlightPosAnimator->setEnabled(d->autoHighlight); - d->highlightSizeAnimator->setEnabled(d->autoHighlight); - } - d->updateHighlight(); -} - -/*! - \qmlproperty real ListView::preferredHighlightBegin - \qmlproperty real ListView::preferredHighlightEnd - \qmlproperty bool ListView::highlightRangeMode - - These properties set the preferred range of the highlight (current item) - within the view. - - If highlightRangeMode is set to \e ApplyRange the view will - attempt to maintain the highlight within the range, however - the highlight can move outside of the range at the ends of the list - or due to a mouse interaction. - - If highlightRangeMode is set to \e StrictlyEnforceRange the highlight will never - move outside of the range. This means that the current item will change - if a keyboard or mouse action would cause the highlight to move - outside of the range. - - The default value is \e NoHighlightRange. - - Note that a valid range requires preferredHighlightEnd to be greater - than or equal to preferredHighlightBegin. -*/ -qreal QmlGraphicsListView::preferredHighlightBegin() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRangeStart; -} - -void QmlGraphicsListView::setPreferredHighlightBegin(qreal start) -{ - Q_D(QmlGraphicsListView); - d->highlightRangeStart = start; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -qreal QmlGraphicsListView::preferredHighlightEnd() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRangeEnd; -} - -void QmlGraphicsListView::setPreferredHighlightEnd(qreal end) -{ - Q_D(QmlGraphicsListView); - d->highlightRangeEnd = end; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -QmlGraphicsListView::HighlightRangeMode QmlGraphicsListView::highlightRangeMode() const -{ - Q_D(const QmlGraphicsListView); - return d->highlightRange; -} - -void QmlGraphicsListView::setHighlightRangeMode(HighlightRangeMode mode) -{ - Q_D(QmlGraphicsListView); - d->highlightRange = mode; - d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; -} - -/*! - \qmlproperty real ListView::spacing - - This property holds the spacing to leave between items. -*/ -qreal QmlGraphicsListView::spacing() const -{ - Q_D(const QmlGraphicsListView); - return d->spacing; -} - -void QmlGraphicsListView::setSpacing(qreal spacing) -{ - Q_D(QmlGraphicsListView); - if (spacing != d->spacing) { - d->spacing = spacing; - d->layout(); - emit spacingChanged(); - } -} - -/*! - \qmlproperty enumeration ListView::orientation - This property holds the orientation of the list. - - Possible values are \c Vertical (default) and \c Horizontal. - - Vertical Example: - \image trivialListView.png - Horizontal Example: - \image ListViewHorizontal.png -*/ -QmlGraphicsListView::Orientation QmlGraphicsListView::orientation() const -{ - Q_D(const QmlGraphicsListView); - return d->orient; -} - -void QmlGraphicsListView::setOrientation(QmlGraphicsListView::Orientation orientation) -{ - Q_D(QmlGraphicsListView); - if (d->orient != orientation) { - d->orient = orientation; - if (d->orient == QmlGraphicsListView::Vertical) - setViewportWidth(-1); - else - setViewportHeight(-1); - d->clear(); - refill(); - emit orientationChanged(); - d->updateCurrent(d->currentIndex); - } -} - -/*! - \qmlproperty bool ListView::keyNavigationWraps - This property holds whether the list wraps key navigation - - If this property is true then key presses to move off of one end of the list will cause the - current item to jump to the other end. -*/ -bool QmlGraphicsListView::isWrapEnabled() const -{ - Q_D(const QmlGraphicsListView); - return d->wrap; -} - -void QmlGraphicsListView::setWrapEnabled(bool wrap) -{ - Q_D(QmlGraphicsListView); - d->wrap = wrap; -} - -/*! - \qmlproperty int ListView::cacheBuffer - This property holds the number of off-screen pixels to cache. - - This property determines the number of pixels above the top of the list - and below the bottom of the list to cache. Setting this value can make - scrolling the list smoother at the expense of additional memory usage. -*/ -int QmlGraphicsListView::cacheBuffer() const -{ - Q_D(const QmlGraphicsListView); - return d->buffer; -} - -void QmlGraphicsListView::setCacheBuffer(int b) -{ - Q_D(QmlGraphicsListView); - if (d->buffer != b) { - d->buffer = b; - if (isComponentComplete()) - refill(); - } -} - -/*! - \qmlproperty string ListView::sectionExpression - This property holds the expression to be evaluated for the section attached property. - - Each item in the list has attached properties named \c ListView.section and - \c ListView.prevSection. These may be used to place a section header for - related items. The example below assumes that the model is sorted by size of - pet. The section expression is the size property. If \c ListView.section and - \c ListView.prevSection differ, the item will display a section header. - - \snippet examples/declarative/listview/sections.qml 0 - - \image ListViewSections.png -*/ -QString QmlGraphicsListView::sectionExpression() const -{ - Q_D(const QmlGraphicsListView); - return d->sectionExpression; -} - -void QmlGraphicsListView::setSectionExpression(const QString &expression) -{ - Q_D(QmlGraphicsListView); - if (d->sectionExpression != expression) { - d->sectionExpression = expression; - emit sectionExpressionChanged(); - } -} - -QString QmlGraphicsListView::currentSection() const -{ - Q_D(const QmlGraphicsListView); - return d->currentSection; -} - -/*! - \qmlproperty real ListView::highlightMoveSpeed - - This property holds the moving animation speed of the highlight delegate. -*/ -qreal QmlGraphicsListView::highlightMoveSpeed() const -{ - Q_D(const QmlGraphicsListView);\ - return d->highlightMoveSpeed; -} - -void QmlGraphicsListView::setHighlightMoveSpeed(qreal speed) -{ - Q_D(QmlGraphicsListView);\ - if (d->highlightMoveSpeed != speed) - { - d->highlightMoveSpeed = speed; - emit highlightMoveSpeedChanged(); - } -} - -/*! - \qmlproperty real ListView::highlightResizeSpeed - - This property holds the resizing animation speed of the highlight delegate. -*/ -qreal QmlGraphicsListView::highlightResizeSpeed() const -{ - Q_D(const QmlGraphicsListView);\ - return d->highlightResizeSpeed; -} - -void QmlGraphicsListView::setHighlightResizeSpeed(qreal speed) -{ - Q_D(QmlGraphicsListView);\ - if (d->highlightResizeSpeed != speed) - { - d->highlightResizeSpeed = speed; - emit highlightResizeSpeedChanged(); - } -} - -void QmlGraphicsListView::viewportMoved() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::viewportMoved(); - refill(); - if (isFlicking() || d->moving) - d->moveReason = QmlGraphicsListViewPrivate::Mouse; - if (d->moveReason == QmlGraphicsListViewPrivate::Mouse) { - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange && d->highlight) { - int idx = d->snapIndex(); - if (idx >= 0 && idx != d->currentIndex) - d->updateCurrent(idx); - - qreal pos = d->currentItem->position(); - if (pos > d->position() + d->highlightRangeEnd - 1 - d->highlight->size()) - pos = d->position() + d->highlightRangeEnd - 1 - d->highlight->size(); - if (pos < d->position() + d->highlightRangeStart) - pos = d->position() + d->highlightRangeStart; - d->highlight->setPosition(pos); - } - } -} - -qreal QmlGraphicsListView::minYExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Horizontal) - return QmlGraphicsFlickable::minYExtent(); - qreal extent = -d->startPosition(); - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent += d->highlightRangeStart; - - return extent; -} - -qreal QmlGraphicsListView::maxYExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Horizontal) - return QmlGraphicsFlickable::maxYExtent(); - qreal extent; - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); - else - extent = -(d->endPosition() - height()); - qreal minY = minYExtent(); - if (extent > minY) - extent = minY; - return extent; -} - -qreal QmlGraphicsListView::minXExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Vertical) - return QmlGraphicsFlickable::minXExtent(); - qreal extent = -d->startPosition(); - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent += d->highlightRangeStart; - - return extent; -} - -qreal QmlGraphicsListView::maxXExtent() const -{ - Q_D(const QmlGraphicsListView); - if (d->orient == QmlGraphicsListView::Vertical) - return QmlGraphicsFlickable::maxXExtent(); - qreal extent; - if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) - extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); - else - extent = -(d->endPosition() - width()); - qreal minX = minXExtent(); - if (extent > minX) - extent = minX; - return extent; -} - -void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::keyPressEvent(event); - if (event->isAccepted()) - return; - - if (d->model && d->model->count() && d->interactive) { - if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Left) - || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Up)) { - if (currentIndex() > 0 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QmlGraphicsListViewPrivate::Key; - decrementCurrentIndex(); - event->accept(); - return; - } else if (d->wrap) { - event->accept(); - return; - } - } else if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Right) - || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Down)) { - if (currentIndex() < d->model->count() - 1 || (d->wrap && !event->isAutoRepeat())) { - d->moveReason = QmlGraphicsListViewPrivate::Key; - incrementCurrentIndex(); - event->accept(); - return; - } else if (d->wrap) { - event->accept(); - return; - } - } - } - d->moveReason = QmlGraphicsListViewPrivate::Other; - event->ignore(); -} - -/*! - \qmlmethod ListView::incrementCurrentIndex - - Increments the current index. The current index will wrap - if keyNavigationWraps is true and it is currently at the end. -*/ -void QmlGraphicsListView::incrementCurrentIndex() -{ - Q_D(QmlGraphicsListView); - if (currentIndex() < d->model->count() - 1 || d->wrap) { - int index = currentIndex()+1; - cancelFlick(); - d->updateCurrent(index < d->model->count() ? index : 0); - } -} - -/*! - \qmlmethod ListView::decrementCurrentIndex - - Decrements the current index. The current index will wrap - if keyNavigationWraps is true and it is currently at the beginning. -*/ -void QmlGraphicsListView::decrementCurrentIndex() -{ - Q_D(QmlGraphicsListView); - if (currentIndex() > 0 || d->wrap) { - int index = currentIndex()-1; - cancelFlick(); - d->updateCurrent(index >= 0 ? index : d->model->count()-1); - } -} - -void QmlGraphicsListView::componentComplete() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsFlickable::componentComplete(); - if (d->currentIndex < 0) - d->updateCurrent(0); - refill(); - d->fixupPosition(); -} - -void QmlGraphicsListView::refill() -{ - Q_D(QmlGraphicsListView); - d->refill(d->position(), d->position()+d->size()-1); -} - -void QmlGraphicsListView::trackedPositionChanged() -{ - Q_D(QmlGraphicsListView); - if (!d->trackedItem) - return; - if (!isFlicking() && !d->moving && d->moveReason != QmlGraphicsListViewPrivate::Mouse) { - const qreal trackedPos = d->trackedItem->position(); - const qreal viewPos = d->position(); - if (d->haveHighlightRange) { - if (d->highlightRange == StrictlyEnforceRange) { - qreal pos = viewPos; - if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size()) - pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); - if (trackedPos < pos + d->highlightRangeStart) - pos = trackedPos - d->highlightRangeStart; - d->setPosition(pos); - } else { - qreal pos = viewPos; - if (trackedPos < d->startPosition() + d->highlightRangeStart) { - pos = d->startPosition(); - } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) { - pos = d->endPosition() - d->size(); - } else { - if (trackedPos < viewPos + d->highlightRangeStart) { - pos = trackedPos - d->highlightRangeStart; - } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) { - pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); - } - } - d->setPosition(pos); - } - } else { - if (trackedPos < viewPos && d->currentItem->position() < viewPos) { - d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position()); - d->fixupPosition(); - } else if (d->trackedItem->endPosition() > viewPos + d->size() - && d->currentItem->endPosition() > viewPos + d->size()) { - qreal pos; - if (d->trackedItem->endPosition() < d->currentItem->endPosition()) { - pos = d->trackedItem->endPosition() - d->size(); - if (d->trackedItem->size() > d->size()) - pos = trackedPos; - } else { - pos = d->currentItem->endPosition() - d->size(); - if (d->currentItem->size() > d->size()) - pos = d->currentItem->position(); - } - d->setPosition(pos); - d->fixupPosition(); - } - } - } -} - -void QmlGraphicsListView::itemResized() -{ - Q_D(QmlGraphicsListView); - QmlGraphicsItem *item = qobject_cast(sender()); - if (item) { - d->layout(); - d->fixupPosition(); - } -} - -void QmlGraphicsListView::itemsInserted(int modelIndex, int count) -{ - Q_D(QmlGraphicsListView); - d->updateUnrequestedIndexes(); - if (!d->visibleItems.count() || d->model->count() <= 1) { - d->layout(); - d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); - emit countChanged(); - return; - } - - if (!d->mapRangeFromModel(modelIndex, count)) { - int i = d->visibleItems.count() - 1; - while (i > 0 && d->visibleItems.at(i)->index == -1) - --i; - if (d->visibleItems.at(i)->index + 1 == modelIndex) { - // Special case of appending an item to the model. - modelIndex = d->visibleIndex + d->visibleItems.count(); - } else { - if (modelIndex + count - 1 < d->visibleIndex) { - // Insert before visible items - d->visibleIndex += count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxListItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index += count; - } - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) - d->currentItem->index = d->currentIndex; - } - d->layout(); - emit countChanged(); - return; - } - } - - // At least some of the added items will be visible - - int index = modelIndex - d->visibleIndex; - int to = d->buffer+d->position()+d->size()-1; - // index can be the next item past the end of the visible items list (i.e. appended) - int pos = index < d->visibleItems.count() ? d->visibleItems.at(index)->position() - : d->visibleItems.at(index-1)->endPosition()+d->spacing+1; - int initialPos = pos; - QList added; - for (int i = 0; i < count && pos <= to; ++i) { - FxListItem *item = d->createItem(modelIndex + i); - d->visibleItems.insert(index, item); - item->setPosition(pos); - added.append(item); - pos += item->size() + d->spacing; - ++index; - } - if (d->currentIndex >= modelIndex) { - // adjust current item index - d->currentIndex += count; - if (d->currentItem) { - d->currentItem->index = d->currentIndex; - d->currentItem->setPosition(d->currentItem->position() + (pos - initialPos)); - } - } - if (pos > to) { - // We didn't insert all our new items, which means anything - // beyond the current index is not visible - remove it. - while (d->visibleItems.count() > index) - d->releaseItem(d->visibleItems.takeLast()); - } else { - // Update the indexes of the following visible items. - for (; index < d->visibleItems.count(); ++index) { - FxListItem *listItem = d->visibleItems.at(index); - if (listItem->item != d->currentItem->item) - listItem->setPosition(listItem->position() + (pos - initialPos)); - if (listItem->index != -1) - listItem->index += count; - } - } - // everything is in order now - emit add() signal - for (int j = 0; j < added.count(); ++j) - added.at(j)->attached->emitAdd(); - d->updateUnrequestedPositions(); - d->updateViewport(); - emit countChanged(); -} - -void QmlGraphicsListView::itemsRemoved(int modelIndex, int count) -{ - Q_D(QmlGraphicsListView); - d->updateUnrequestedIndexes(); - bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; - if (!d->mapRangeFromModel(modelIndex, count)) { - if (modelIndex + count - 1 < d->visibleIndex) { - // Items removed before our visible items. - d->visibleIndex -= count; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxListItem *listItem = d->visibleItems.at(i); - if (listItem->index != -1) - listItem->index -= count; - } - } - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - d->layout(); - d->updateSections(); - emit countChanged(); - return; - } - - // Remove the items from the visible list, skipping anything already marked for removal - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (item->index == -1 || item->index < modelIndex) { - // already removed, or before removed items - ++it; - } else if (item->index >= modelIndex + count) { - // after removed items - item->index -= count; - ++it; - } else { - // removed item - item->attached->emitRemove(); - if (item->attached->delayRemove()) { - item->index = -1; - connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); - ++it; - } else { - it = d->visibleItems.erase(it); - d->releaseItem(item); - } - } - } - - // fix current - if (d->currentIndex >= modelIndex + count) { - d->currentIndex -= count; - if (d->currentItem) - d->currentItem->index -= count; - } else if (currentRemoved) { - // current item has been removed. - d->currentItem->attached->setIsCurrentItem(false); - d->releaseItem(d->currentItem); - d->currentItem = 0; - d->currentIndex = -1; - d->updateCurrent(qMin(modelIndex, d->model->count()-1)); - } - - // update visibleIndex - for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { - if ((*it)->index != -1) { - d->visibleIndex = (*it)->index; - break; - } - } - - if (d->visibleItems.isEmpty()) { - d->visibleIndex = 0; - d->visiblePos = 0; - d->timeline.clear(); - d->setPosition(0); - if (d->model->count() == 0) - update(); - else - refill(); - } else { - // Correct the positioning of the items - d->layout(); - d->updateSections(); - } - - emit countChanged(); -} - -void QmlGraphicsListView::destroyRemoved() -{ - Q_D(QmlGraphicsListView); - for (QList::Iterator it = d->visibleItems.begin(); - it != d->visibleItems.end();) { - FxListItem *listItem = *it; - if (listItem->index == -1 && listItem->attached->delayRemove() == false) { - d->releaseItem(listItem); - it = d->visibleItems.erase(it); - } else { - ++it; - } - } - - // Correct the positioning of the items - d->layout(); -} - -void QmlGraphicsListView::itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsListView); - qreal firstItemPos = d->visibleItems.first()->position(); - QHash moved; - int moveBy = 0; - - QList::Iterator it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (item->index >= from && item->index < from + count) { - // take the items that are moving - item->index += (to-from); - moved.insert(item->index, item); - moveBy += item->size(); - it = d->visibleItems.erase(it); - } else { - // move everything after the moved items. - if (item->index > from && item->index != -1) - item->index -= count; - ++it; - } - } - - int remaining = count; - int endIndex = d->visibleIndex; - it = d->visibleItems.begin(); - while (it != d->visibleItems.end()) { - FxListItem *item = *it; - if (remaining && item->index >= to && item->index < to + count) { - // place items in the target position, reusing any existing items - FxListItem *movedItem = moved.take(item->index); - if (!movedItem) - movedItem = d->createItem(item->index); - it = d->visibleItems.insert(it, movedItem); - ++it; - --remaining; - } else { - if (item->index != -1) { - if (item->index >= to) { - // update everything after the moved items. - item->index += count; - } - endIndex = item->index; - } - ++it; - } - } - - // If we have moved items to the end of the visible items - // then add any existing moved items that we have - while (FxListItem *item = moved.take(endIndex+1)) { - d->visibleItems.append(item); - ++endIndex; - } - - // Whatever moved items remain are no longer visible items. - while (moved.count()) - d->releaseItem(moved.take(moved.begin().key())); - - // Ensure we don't cause an ugly list scroll. - d->visibleItems.first()->setPosition(firstItemPos); - - d->layout(); -} - -void QmlGraphicsListView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsListView); - if (d->requestedIndex != index) { - item->setParentItem(viewport()); - d->unrequestedItems.insert(item, index); - if (d->orient == QmlGraphicsListView::Vertical) - item->setY(d->positionAt(index)); - else - item->setX(d->positionAt(index)); - } -} - -void QmlGraphicsListView::destroyingItem(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsListView); - d->unrequestedItems.remove(item); -} - -QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsListViewAttached::properties(obj); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) - -QT_END_NAMESPACE - -#include "qmlgraphicslistview.moc" diff --git a/src/declarative/fx/qmlgraphicslistview_p.h b/src/declarative/fx/qmlgraphicslistview_p.h deleted file mode 100644 index 115cad9..0000000 --- a/src/declarative/fx/qmlgraphicslistview_p.h +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSLISTVIEW_H -#define QMLGRAPHICSLISTVIEW_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsVisualModel; -class QmlGraphicsListViewAttached; -class QmlGraphicsListViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable -{ - Q_OBJECT - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) - Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) - - Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) - Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) - Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) - - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) - Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) - Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) - Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) - Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) - - Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) - Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) - Q_ENUMS(HighlightRangeMode) - Q_ENUMS(Orientation) - Q_CLASSINFO("DefaultProperty", "data") - -public: - QmlGraphicsListView(QmlGraphicsItem *parent=0); - ~QmlGraphicsListView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - QmlGraphicsItem *currentItem(); - int count() const; - - QmlComponent *highlight() const; - void setHighlight(QmlComponent *highlight); - - bool highlightFollowsCurrentItem() const; - void setHighlightFollowsCurrentItem(bool); - - enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; - HighlightRangeMode highlightRangeMode() const; - void setHighlightRangeMode(HighlightRangeMode mode); - - qreal preferredHighlightBegin() const; - void setPreferredHighlightBegin(qreal); - - qreal preferredHighlightEnd() const; - void setPreferredHighlightEnd(qreal); - - qreal spacing() const; - void setSpacing(qreal spacing); - - enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; - Orientation orientation() const; - void setOrientation(Orientation); - - bool isWrapEnabled() const; - void setWrapEnabled(bool); - - int cacheBuffer() const; - void setCacheBuffer(int); - - QString sectionExpression() const; - void setSectionExpression(const QString &); - QString currentSection() const; - - qreal highlightMoveSpeed() const; - void setHighlightMoveSpeed(qreal); - - qreal highlightResizeSpeed() const; - void setHighlightResizeSpeed(qreal); - - static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); - -public Q_SLOTS: - void incrementCurrentIndex(); - void decrementCurrentIndex(); - -Q_SIGNALS: - void countChanged(); - void spacingChanged(); - void orientationChanged(); - void currentIndexChanged(); - void currentSectionChanged(); - void sectionExpressionChanged(); - void highlightMoveSpeedChanged(); - void highlightResizeSpeedChanged(); - -protected: - virtual void viewportMoved(); - virtual qreal minYExtent() const; - virtual qreal maxYExtent() const; - virtual qreal minXExtent() const; - virtual qreal maxXExtent() const; - virtual void keyPressEvent(QKeyEvent *); - virtual void componentComplete(); - -private Q_SLOTS: - void refill(); - void trackedPositionChanged(); - void itemResized(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void destroyRemoved(); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsListView) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicsloader.cpp b/src/declarative/fx/qmlgraphicsloader.cpp deleted file mode 100644 index 65753d8..0000000 --- a/src/declarative/fx/qmlgraphicsloader.cpp +++ /dev/null @@ -1,390 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsloader_p_p.h" -#include - -QT_BEGIN_NAMESPACE - -QmlGraphicsLoaderPrivate::QmlGraphicsLoaderPrivate() -: item(0), component(0), ownComponent(false), resizeMode(QmlGraphicsLoader::SizeLoaderToItem) -{ -} - -QmlGraphicsLoaderPrivate::~QmlGraphicsLoaderPrivate() -{ -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QmlGraphicsLoader) - -/*! - \qmlclass Loader QFxLoader - \inherits Item - - \brief The Loader item allows dynamically loading an Item-based - subtree from a QML URL or Component. - - Loader instantiates an item from a component. The component to - instantiate may be specified directly by the \c sourceComponent - property, or loaded from a URL via the \c source property. - - It is also an effective means of delaying the creation of a component - until it is required: - \code - Loader { id: pageLoader } - Rectangle { - MouseRegion { anchors.fill: parent; onClicked: pageLoader.source = "Page1.qml" } - } - \endcode -*/ - -/*! - \internal - \class QmlGraphicsLoader - \qmlclass Loader - */ - -/*! - Create a new QmlGraphicsLoader instance. - */ -QmlGraphicsLoader::QmlGraphicsLoader(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsLoaderPrivate), parent) -{ -} - -/*! - Destroy the loader instance. - */ -QmlGraphicsLoader::~QmlGraphicsLoader() -{ -} - -/*! - \qmlproperty url Loader::source - This property holds the URL of the QML component to - instantiate. - - \sa status, progress -*/ -QUrl QmlGraphicsLoader::source() const -{ - Q_D(const QmlGraphicsLoader); - return d->source; -} - -void QmlGraphicsLoader::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsLoader); - if (d->source == url) - return; - - if (d->ownComponent) { - delete d->component; - d->component = 0; - } - delete d->item; - d->item = 0; - - d->source = url; - if (d->source.isEmpty()) { - emit sourceChanged(); - emit statusChanged(); - emit progressChanged(); - emit itemChanged(); - return; - } - - d->component = new QmlComponent(qmlEngine(this), d->source, this); - d->ownComponent = true; - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit statusChanged(); - emit progressChanged(); - emit sourceChanged(); - emit itemChanged(); - } -} - -/*! - \qmlproperty Component Loader::sourceComponent - The sourceComponent property holds the \l{Component} to instantiate. - - \qml - Item { - Component { - id: redSquare - Rectangle { color: "red"; width: 10; height: 10 } - } - - Loader { sourceComponent: redSquare } - Loader { sourceComponent: redSquare; x: 10 } - } - \endqml - - \sa source -*/ - -QmlComponent *QmlGraphicsLoader::sourceComponent() const -{ - Q_D(const QmlGraphicsLoader); - return d->component; -} - -void QmlGraphicsLoader::setSourceComponent(QmlComponent *comp) -{ - Q_D(QmlGraphicsLoader); - if (comp == d->component) - return; - - d->source = QUrl(); - if (d->ownComponent) { - delete d->component; - d->component = 0; - } - delete d->item; - d->item = 0; - - d->component = comp; - d->ownComponent = false; - if (!d->component) { - emit sourceChanged(); - emit statusChanged(); - emit progressChanged(); - emit itemChanged(); - return; - } - - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit progressChanged(); - emit sourceChanged(); - emit statusChanged(); - emit itemChanged(); - } -} - -void QmlGraphicsLoaderPrivate::_q_sourceLoaded() -{ - Q_Q(QmlGraphicsLoader); - - if (component) { - QmlContext *ctxt = new QmlContext(qmlContext(q)); - ctxt->addDefaultObject(q); - - if (!component->errors().isEmpty()) { - qWarning() << component->errors(); - emit q->sourceChanged(); - emit q->statusChanged(); - emit q->progressChanged(); - return; - } - - QObject *obj = component->create(ctxt); - if (obj) { - item = qobject_cast(obj); - if (item) { - item->setParentItem(q); -// item->setFocus(true); - QmlGraphicsItem *resizeItem = 0; - if (resizeMode == QmlGraphicsLoader::SizeLoaderToItem) - resizeItem = item; - else if (resizeMode == QmlGraphicsLoader::SizeItemToLoader) - resizeItem = q; - if (resizeItem) { - QObject::connect(resizeItem, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); - QObject::connect(resizeItem, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); - } - _q_updateSize(); - } - } else { - delete obj; - source = QUrl(); - } - emit q->sourceChanged(); - emit q->statusChanged(); - emit q->progressChanged(); - emit q->itemChanged(); - } -} - -/*! - \qmlproperty enum Loader::status - - This property holds the status of QML loading. It can be one of: - \list - \o Null - no QML source has been set - \o Ready - the QML source has been loaded - \o Loading - the QML source is currently being loaded - \o Error - an error occurred while loading the QML source - \endlist - - \sa progress -*/ - -QmlGraphicsLoader::Status QmlGraphicsLoader::status() const -{ - Q_D(const QmlGraphicsLoader); - - if (d->component) - return static_cast(d->component->status()); - - if (d->item) - return Ready; - - return d->source.isEmpty() ? Null : Error; -} - -/*! - \qmlproperty real Loader::progress - - This property holds the progress of QML data loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ -qreal QmlGraphicsLoader::progress() const -{ - Q_D(const QmlGraphicsLoader); - - if (d->item) - return 1.0; - - if (d->component) - return d->component->progress(); - - return 0.0; -} - -/*! - \qmlproperty enum Loader::resizeMode - - This property determines how the Loader or item are resized: - \list - \o NoResize - no item will be resized - \o SizeLoaderToItem - the Loader will be sized to the size of the item, unless the size of the Loader has been otherwise specified. - \o SizeItemToLoader - the item will be sized to the size of the Loader. - \endlist - - The default resizeMode is SizeLoaderToItem. -*/ -QmlGraphicsLoader::ResizeMode QmlGraphicsLoader::resizeMode() const -{ - Q_D(const QmlGraphicsLoader); - return d->resizeMode; -} - -void QmlGraphicsLoader::setResizeMode(ResizeMode mode) -{ - Q_D(QmlGraphicsLoader); - if (mode == d->resizeMode) - return; - - if (d->item) { - QmlGraphicsItem *resizeItem = 0; - if (d->resizeMode == SizeLoaderToItem) - resizeItem = d->item; - else if (d->resizeMode == SizeItemToLoader) - resizeItem = this; - if (resizeItem) { - disconnect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); - disconnect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); - } - } - - d->resizeMode = mode; - - if (d->item) { - QmlGraphicsItem *resizeItem = 0; - if (d->resizeMode == SizeLoaderToItem) - resizeItem = d->item; - else if (d->resizeMode == SizeItemToLoader) - resizeItem = this; - if (resizeItem) { - connect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); - connect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); - } - - d->_q_updateSize(); - } -} - -void QmlGraphicsLoaderPrivate::_q_updateSize() -{ - Q_Q(QmlGraphicsLoader); - if (!item) - return; - switch (resizeMode) { - case QmlGraphicsLoader::SizeLoaderToItem: - q->setImplicitWidth(item->width()); - q->setImplicitHeight(item->height()); - break; - case QmlGraphicsLoader::SizeItemToLoader: - item->setWidth(q->width()); - item->setHeight(q->height()); - break; - default: - break; - } -} - -/*! - \qmlproperty Item Loader::item - This property holds the top-level item created from source. -*/ -QmlGraphicsItem *QmlGraphicsLoader::item() const -{ - Q_D(const QmlGraphicsLoader); - return d->item; -} - -#include "moc_qmlgraphicsloader_p.cpp" - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsloader_p.h b/src/declarative/fx/qmlgraphicsloader_p.h deleted file mode 100644 index 8cd1819..0000000 --- a/src/declarative/fx/qmlgraphicsloader_p.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSLOADER_H -#define QMLGRAPHICSLOADER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(Status) - Q_ENUMS(ResizeMode) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) - Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) - Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - //### sourceItem - -public: - QmlGraphicsLoader(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsLoader(); - - QUrl source() const; - void setSource(const QUrl &); - - QmlComponent *sourceComponent() const; - void setSourceComponent(QmlComponent *); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; - ResizeMode resizeMode() const; - void setResizeMode(ResizeMode mode); - - QmlGraphicsItem *item() const; - -Q_SIGNALS: - void itemChanged(); - void sourceChanged(); - void statusChanged(); - void progressChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsLoader) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) - Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) - Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsLoader) - -QT_END_HEADER - -#endif // QMLGRAPHICSLOADER_H diff --git a/src/declarative/fx/qmlgraphicsloader_p_p.h b/src/declarative/fx/qmlgraphicsloader_p_p.h deleted file mode 100644 index 23fedb7..0000000 --- a/src/declarative/fx/qmlgraphicsloader_p_p.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSLOADER_P_H -#define QMLGRAPHICSLOADER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsloader_p.h" - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsLoader) - -public: - QmlGraphicsLoaderPrivate(); - ~QmlGraphicsLoaderPrivate(); - - QUrl source; - QmlGraphicsItem *item; - QmlComponent *component; - bool ownComponent; - QmlGraphicsLoader::ResizeMode resizeMode; - - void _q_sourceLoaded(); - void _q_updateSize(); -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSLOADER_P_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion.cpp b/src/declarative/fx/qmlgraphicsmouseregion.cpp deleted file mode 100644 index 75e31b8..0000000 --- a/src/declarative/fx/qmlgraphicsmouseregion.cpp +++ /dev/null @@ -1,649 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsmouseregion_p.h" -#include "qmlgraphicsmouseregion_p_p.h" -#include "qmlgraphicsevents_p_p.h" -#include - - -QT_BEGIN_NAMESPACE -static const qreal DragThreshold = 5; -static const int PressAndHoldDelay = 800; - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QmlGraphicsDrag) -QmlGraphicsDrag::QmlGraphicsDrag(QObject *parent) -: QObject(parent), _target(0), _axis(XandYAxis), _xmin(0), _xmax(0), _ymin(0), _ymax(0) -{ -} - -QmlGraphicsDrag::~QmlGraphicsDrag() -{ -} - -QmlGraphicsItem *QmlGraphicsDrag::target() const -{ - return _target; -} - -void QmlGraphicsDrag::setTarget(QmlGraphicsItem *t) -{ - _target = t; -} - -QmlGraphicsDrag::Axis QmlGraphicsDrag::axis() const -{ - return _axis; -} - -void QmlGraphicsDrag::setAxis(QmlGraphicsDrag::Axis a) -{ - _axis = a; -} - -qreal QmlGraphicsDrag::xmin() const -{ - return _xmin; -} - -void QmlGraphicsDrag::setXmin(qreal m) -{ - _xmin = m; -} - -qreal QmlGraphicsDrag::xmax() const -{ - return _xmax; -} - -void QmlGraphicsDrag::setXmax(qreal m) -{ - _xmax = m; -} - -qreal QmlGraphicsDrag::ymin() const -{ - return _ymin; -} - -void QmlGraphicsDrag::setYmin(qreal m) -{ - _ymin = m; -} - -qreal QmlGraphicsDrag::ymax() const -{ - return _ymax; -} - -void QmlGraphicsDrag::setYmax(qreal m) -{ - _ymax = m; -} - -/*! - \qmlclass MouseRegion QFxMouseRegion - \brief The MouseRegion item enables simple mouse handling. - \inherits Item - - A MouseRegion is typically used in conjunction with a visible item, - where the MouseRegion effectively 'proxies' mouse handling for that - item. For example, we can put a MouseRegion in a Rectangle that changes - the Rectangle color to red when clicked: - \snippet doc/src/snippets/declarative/mouseregion.qml 0 - - Many MouseRegion signals pass a \l {MouseEvent}{mouse} parameter that contains - additional information about the mouse event, such as the position, button, - and any key modifiers. - - Below we have the previous - example extended so as to give a different color when you right click. - \snippet doc/src/snippets/declarative/mouseregion.qml 1 - - For basic key handling, see the \l {Keys}{Keys attached property}. - - MouseRegion is an invisible item: it is never painted. - - \sa MouseEvent -*/ - -/*! - \qmlsignal MouseRegion::onEntered - - This handler is called when the mouse enters the mouse region. -*/ - -/*! - \qmlsignal MouseRegion::onExited - - This handler is called when the mouse exists the mouse region. -*/ - -/*! - \qmlsignal MouseRegion::onPositionChanged(mouse) - - This handler is called when the mouse position changes. - - The \l {MouseEvent}{mouse} parameter provides information about the mouse, including the x and y - position, and any buttons currently pressed. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onClicked(mouse) - - This handler is called when there is a click. A click is defined as a press followed by a release, - both inside the MouseRegion (pressing, moving outside the MouseRegion, and then moving back inside and - releasing is also considered a click). - - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onPressed(mouse) - - This handler is called when there is a press. - The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y - position and which button was pressed. - - The \e accepted property of the MouseEvent parameter determines whether this MouseRegion - will handle the press and all future mouse events until release. The default is to accept - the event and not allow other MouseRegions beneath this one to handle the event. If \e accepted - is set to false, no further events will be sent to this MouseRegion until the button is next - pressed. -*/ - -/*! - \qmlsignal MouseRegion::onReleased(mouse) - - This handler is called when there is a release. - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onPressAndHold(mouse) - - This handler is called when there is a long press (currently 800ms). - The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y - position of the press, and which button is pressed. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -/*! - \qmlsignal MouseRegion::onDoubleClicked(mouse) - - This handler is called when there is a double-click (a press followed by a release followed by a press). - The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. - - The \e accepted property of the MouseEvent parameter is ignored in this handler. -*/ - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QmlGraphicsMouseRegion) - -/*! - \internal - \class QmlGraphicsMouseRegion - \brief The QmlGraphicsMouseRegion class provides a simple mouse handling abstraction for use within Qml. - - \ingroup group_coreitems - - All QmlGraphicsItem derived classes can do mouse handling but the QmlGraphicsMouseRegion class exposes mouse - handling data as properties and tracks flicking and dragging of the mouse. - - A QmlGraphicsMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. - */ -QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsMouseRegionPrivate), parent) -{ - Q_D(QmlGraphicsMouseRegion); - d->init(); -} - -QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsMouseRegion); - d->init(); -} - -QmlGraphicsMouseRegion::~QmlGraphicsMouseRegion() -{ -} - -/*! - \qmlproperty real MouseRegion::mouseX - \qmlproperty real MouseRegion::mouseY - These properties hold the coordinates of the mouse. - - If the hoverEnabled property is false then these properties will only be valid - while a button is pressed, and will remain valid as long as the button is held - even if the mouse is moved outside the region. - - If hoverEnabled is true then these properties will be valid: - \list - \i when no button is pressed, but the mouse is within the MouseRegion (containsMouse is true). - \i if a button is pressed and held, even if it has since moved out of the region. - \endlist - - The coordinates are relative to the MouseRegion. -*/ -qreal QmlGraphicsMouseRegion::mouseX() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastPos.x(); -} - -qreal QmlGraphicsMouseRegion::mouseY() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastPos.y(); -} - -/*! - \qmlproperty bool MouseRegion::enabled - This property holds whether the item accepts mouse events. -*/ -bool QmlGraphicsMouseRegion::isEnabled() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->absorb; -} - -void QmlGraphicsMouseRegion::setEnabled(bool a) -{ - Q_D(QmlGraphicsMouseRegion); - if (a != d->absorb) { - d->absorb = a; - emit enabledChanged(); - } -} -/*! - \qmlproperty MouseButtons MouseRegion::pressedButtons - This property holds the mouse buttons currently pressed. - - It contains a bitwise combination of: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MidButton - \endlist - - The code below displays "right" when the right mouse buttons is pressed: - \code - Text { - text: mr.pressedButtons & Qt.RightButton ? "right" : "" - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - MouseRegion { - id: mr - acceptedButtons: Qt.LeftButton | Qt.RightButton - anchors.fill: parent - } - } - \endcode - - \sa acceptedButtons -*/ -Qt::MouseButtons QmlGraphicsMouseRegion::pressedButtons() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->lastButtons; -} - -void QmlGraphicsMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - d->moved = false; - if (!d->absorb) - QmlGraphicsItem::mousePressEvent(event); - else { - d->longPress = false; - d->saveEvent(event); - d->dragX = drag()->axis() & QmlGraphicsDrag::XAxis; - d->dragY = drag()->axis() & QmlGraphicsDrag::YAxis; - d->dragged = false; - setHovered(true); - d->start = event->pos(); - d->startScene = event->scenePos(); - // we should only start timer if pressAndHold is connected to. - if (d->isConnected("pressAndHold(QmlGraphicsMouseEvent*)")) - d->pressAndHoldTimer.start(PressAndHoldDelay, this); - setKeepMouseGrab(false); - event->setAccepted(setPressed(true)); - } -} - -void QmlGraphicsMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseMoveEvent(event); - return; - } - - d->saveEvent(event); - - // ### we should skip this if these signals aren't used - // ### can GV handle this for us? - bool contains = boundingRect().contains(d->lastPos); - if (d->hovered && !contains) - setHovered(false); - else if (!d->hovered && contains) - setHovered(true); - - if (drag()->target()) { - if (!d->moved) { - if (d->dragX) d->startX = drag()->target()->x(); - if (d->dragY) d->startY = drag()->target()->y(); - } - - QPointF startLocalPos; - QPointF curLocalPos; - if (drag()->target()->parent()) { - startLocalPos = drag()->target()->parentItem()->mapFromScene(d->startScene); - curLocalPos = drag()->target()->parentItem()->mapFromScene(event->scenePos()); - } else { - startLocalPos = d->startScene; - curLocalPos = event->scenePos(); - } - - qreal dx = qAbs(curLocalPos.x() - startLocalPos.x()); - qreal dy = qAbs(curLocalPos.y() - startLocalPos.y()); - if ((d->dragX && !(dx < DragThreshold)) || (d->dragY && !(dy < DragThreshold))) - d->dragged = true; - if (!keepMouseGrab()) { - if ((!d->dragY && dy < DragThreshold && d->dragX && dx > DragThreshold) - || (!d->dragX && dx < DragThreshold && d->dragY && dy > DragThreshold) - || (d->dragX && d->dragY)) { - setKeepMouseGrab(true); - } - } - - if (d->dragX) { - qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX; - if (x < drag()->xmin()) - x = drag()->xmin(); - else if (x > drag()->xmax()) - x = drag()->xmax(); - drag()->target()->setX(x); - } - if (d->dragY) { - qreal y = (curLocalPos.y() - startLocalPos.y()) + d->startY; - if (y < drag()->ymin()) - y = drag()->ymin(); - else if (y > drag()->ymax()) - y = drag()->ymax(); - drag()->target()->setY(y); - } - } - d->moved = true; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit positionChanged(&me); -} - - -void QmlGraphicsMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseReleaseEvent(event); - } else { - d->saveEvent(event); - setPressed(false); - // If we don't accept hover, we need to reset containsMouse. - if (!acceptHoverEvents()) - setHovered(false); - setKeepMouseGrab(false); - } -} - -void QmlGraphicsMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::mouseDoubleClickEvent(event); - } else { - QmlGraphicsItem::mouseDoubleClickEvent(event); - if (event->isAccepted()) { - // Only deliver the event if we have accepted the press. - d->saveEvent(event); - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); - emit this->doubleClicked(&me); - } - } -} - -void QmlGraphicsMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) - QmlGraphicsItem::hoverEnterEvent(event); - else - setHovered(true); -} - -void QmlGraphicsMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) { - QmlGraphicsItem::hoverEnterEvent(event); - } else { - d->lastPos = event->pos(); - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit positionChanged(&me); - } -} - -void QmlGraphicsMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (!d->absorb) - QmlGraphicsItem::hoverLeaveEvent(event); - else - setHovered(false); -} - -bool QmlGraphicsMouseRegion::sceneEvent(QEvent *event) -{ - bool rv = QmlGraphicsItem::sceneEvent(event); - if (event->type() == QEvent::UngrabMouse) { - Q_D(QmlGraphicsMouseRegion); - if (d->pressed) { - // if our mouse grab has been removed (probably by Flickable), fix our - // state - d->pressed = false; - setKeepMouseGrab(false); - emit pressedChanged(); - //emit hoveredChanged(); - } - } - return rv; -} - -void QmlGraphicsMouseRegion::timerEvent(QTimerEvent *event) -{ - Q_D(QmlGraphicsMouseRegion); - if (event->timerId() == d->pressAndHoldTimer.timerId()) { - d->pressAndHoldTimer.stop(); - if (d->pressed && d->dragged == false && d->hovered == true) { - d->longPress = true; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); - emit pressAndHold(&me); - } - } -} - -/*! - \qmlproperty bool MouseRegion::hoverEnabled - This property holds whether hover events are handled. - - By default, mouse events are only handled in response to a button event, or when a button is - pressed. Hover enables handling of all mouse events even when no mouse button is - pressed. - - This property affects the containsMouse property and the onEntered, onExited and onPositionChanged signals. -*/ - -/*! - \qmlproperty bool MouseRegion::containsMouse - This property holds whether the mouse is currently inside the mouse region. - - \warning This property is not updated if the region moves under the mouse: \e containsMouse will not change. - In addition, if hoverEnabled is false, containsMouse will only be valid when the mouse is pressed. -*/ -bool QmlGraphicsMouseRegion::hovered() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->hovered; -} - -/*! - \qmlproperty bool MouseRegion::pressed - This property holds whether the mouse region is currently pressed. -*/ -bool QmlGraphicsMouseRegion::pressed() const -{ - Q_D(const QmlGraphicsMouseRegion); - return d->pressed; -} - -void QmlGraphicsMouseRegion::setHovered(bool h) -{ - Q_D(QmlGraphicsMouseRegion); - if (d->hovered != h) { - d->hovered = h; - emit hoveredChanged(); - d->hovered ? emit entered() : emit exited(); - } -} - -/*! - \qmlproperty Qt::MouseButtons MouseRegion::acceptedButtons - This property holds the mouse buttons that the mouse region reacts to. - - The available buttons are: - \list - \o Qt.LeftButton - \o Qt.RightButton - \o Qt.MiddleButton - \endlist - - To accept more than one button the flags can be combined with the - "|" (or) operator: - - \code - MouseRegion { acceptedButtons: Qt.LeftButton | Qt.RightButton } - \endcode - - The default is to accept the Left button. -*/ -Qt::MouseButtons QmlGraphicsMouseRegion::acceptedButtons() const -{ - return acceptedMouseButtons(); -} - -void QmlGraphicsMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) -{ - if (buttons != acceptedMouseButtons()) { - setAcceptedMouseButtons(buttons); - emit acceptedButtonsChanged(); - } -} - -bool QmlGraphicsMouseRegion::setPressed(bool p) -{ - Q_D(QmlGraphicsMouseRegion); - bool isclick = d->pressed == true && p == false && d->dragged == false && d->hovered == true; - - if (d->pressed != p) { - d->pressed = p; - QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); - if (d->pressed) { - emit positionChanged(&me); - emit pressed(&me); - } else { - emit released(&me); - if (isclick) - emit clicked(&me); - } - - emit pressedChanged(); - return me.isAccepted(); - } - return false; -} - -QmlGraphicsDrag *QmlGraphicsMouseRegion::drag() -{ - Q_D(QmlGraphicsMouseRegion); - return &(d->drag); -} - -/*! - \qmlproperty Item MouseRegion::drag.target - \qmlproperty Axis MouseRegion::drag.axis - \qmlproperty real MouseRegion::drag.minimumX - \qmlproperty real MouseRegion::drag.maximumX - \qmlproperty real MouseRegion::drag.minimumY - \qmlproperty real MouseRegion::drag.maximumY - - drag provides a convenient way to make an item draggable. - - \list - \i \c target specifies the item to drag. - \i \c axis specifies whether dragging can be done horizontally (XAxis), vertically (YAxis), or both (XandYAxis) - \i the minimum and maximum properties limit how far the target can be dragged along the corresponding axes. - \endlist - - The following example uses drag to reduce the opacity of an image as it moves to the right: - \snippet doc/src/snippets/declarative/drag.qml 0 -*/ - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsmouseregion_p.h b/src/declarative/fx/qmlgraphicsmouseregion_p.h deleted file mode 100644 index 3403c75..0000000 --- a/src/declarative/fx/qmlgraphicsmouseregion_p.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSMOUSEREGION_H -#define QMLGRAPHICSMOUSEREGION_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject -{ - Q_OBJECT - - Q_ENUMS(Axis) - Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) - Q_PROPERTY(Axis axis READ axis WRITE setAxis) - Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) - Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) - Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) - Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) - //### consider drag and drop - -public: - QmlGraphicsDrag(QObject *parent=0); - ~QmlGraphicsDrag(); - - QmlGraphicsItem *target() const; - void setTarget(QmlGraphicsItem *); - - enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; - Axis axis() const; - void setAxis(Axis); - - qreal xmin() const; - void setXmin(qreal); - qreal xmax() const; - void setXmax(qreal); - qreal ymin() const; - void setYmin(qreal); - qreal ymax() const; - void setYmax(qreal); - -private: - QmlGraphicsItem *_target; - Axis _axis; - qreal _xmin; - qreal _xmax; - qreal _ymin; - qreal _ymax; - Q_DISABLE_COPY(QmlGraphicsDrag) -}; - -class QmlGraphicsMouseEvent; -class QmlGraphicsMouseRegionPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) - Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) - Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) - Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) - Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) - Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) - Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) - Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) - Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? - -public: - QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); - ~QmlGraphicsMouseRegion(); - - qreal mouseX() const; - qreal mouseY() const; - - bool isEnabled() const; - void setEnabled(bool); - - bool hovered() const; - bool pressed() const; - - Qt::MouseButtons pressedButtons() const; - - Qt::MouseButtons acceptedButtons() const; - void setAcceptedButtons(Qt::MouseButtons buttons); - - QmlGraphicsDrag *drag(); - -Q_SIGNALS: - void hoveredChanged(); - void pressedChanged(); - void enabledChanged(); - void acceptedButtonsChanged(); - void positionChanged(QmlGraphicsMouseEvent *mouse); - - void pressed(QmlGraphicsMouseEvent *mouse); - void pressAndHold(QmlGraphicsMouseEvent *mouse); - void released(QmlGraphicsMouseEvent *mouse); - void clicked(QmlGraphicsMouseEvent *mouse); - void doubleClicked(QmlGraphicsMouseEvent *mouse); - void entered(); - void exited(); - -protected: - void setHovered(bool); - bool setPressed(bool); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void hoverEnterEvent(QGraphicsSceneHoverEvent *event); - void hoverMoveEvent(QGraphicsSceneHoverEvent *event); - void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); - bool sceneEvent(QEvent *); - void timerEvent(QTimerEvent *event); - -private: - void handlePress(); - void handleRelease(); - -protected: - QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsMouseRegion) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsDrag) -QML_DECLARE_TYPE(QmlGraphicsMouseRegion) - -QT_END_HEADER - -#endif // QMLGRAPHICSMOUSEREGION_H diff --git a/src/declarative/fx/qmlgraphicsmouseregion_p_p.h b/src/declarative/fx/qmlgraphicsmouseregion_p_p.h deleted file mode 100644 index ad7cc9f..0000000 --- a/src/declarative/fx/qmlgraphicsmouseregion_p_p.h +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSMOUSEREGION_P_H -#define QMLGRAPHICSMOUSEREGION_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qbasictimer.h" -#include "qgraphicssceneevent.h" -#include "qmlgraphicsitem_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) - -public: - QmlGraphicsMouseRegionPrivate() - : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) - { - } - - void init() - { - Q_Q(QmlGraphicsMouseRegion); - q->setAcceptedMouseButtons(Qt::LeftButton); - } - - void saveEvent(QGraphicsSceneMouseEvent *event) { - lastPos = event->pos(); - lastButton = event->button(); - lastButtons = event->buttons(); - lastModifiers = event->modifiers(); - } - - bool isConnected(const char *signal) { - Q_Q(QmlGraphicsMouseRegion); - int idx = QObjectPrivate::get(q)->signalIndex(signal); - return QObjectPrivate::get(q)->isSignalConnected(idx); - } - - bool absorb : 1; - bool hovered : 1; - bool pressed : 1; - bool longPress : 1; - bool moved : 1; - bool dragX : 1; - bool dragY : 1; - bool dragged : 1; - QmlGraphicsDrag drag; - QPointF start; - QPointF startScene; - qreal startX; - qreal startY; - QPointF lastPos; - Qt::MouseButton lastButton; - Qt::MouseButtons lastButtons; - Qt::KeyboardModifiers lastModifiers; - QBasicTimer pressAndHoldTimer; -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSMOUSEREGION_P_H diff --git a/src/declarative/fx/qmlgraphicspainteditem.cpp b/src/declarative/fx/qmlgraphicspainteditem.cpp deleted file mode 100644 index a0d9b09..0000000 --- a/src/declarative/fx/qmlgraphicspainteditem.cpp +++ /dev/null @@ -1,387 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicspainteditem_p.h" -#include "qmlgraphicspainteditem_p_p.h" - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \class QmlGraphicsPaintedItem - \brief The QmlGraphicsPaintedItem class is an abstract base class for QmlView items that want cached painting. - \internal - - This is a convenience class for implementing items that paint their contents - using a QPainter. The contents of the item are cached behind the scenes. - The dirtyCache() function should be called if the contents change to - ensure the cache is refreshed the next time painting occurs. - - To subclass QmlGraphicsPaintedItem, you must reimplement drawContents() to draw - the contents of the item. -*/ - -/*! - \fn void QmlGraphicsPaintedItem::drawContents(QPainter *painter, const QRect &rect) - - This function is called when the cache needs to be refreshed. When - sub-classing QmlGraphicsPaintedItem this function should be implemented so as to - paint the contents of the item using the given \a painter for the - area of the contents specified by \a rect. -*/ - -/*! - \property QmlGraphicsPaintedItem::contentsSize - \brief The size of the contents - - The contents size is the size of the item in regards to how it is painted - using the drawContents() function. This is distinct from the size of the - item in regards to height() and width(). -*/ - -// XXX bug in WebKit - can call repaintRequested and other cache-changing functions from within render! -static int inpaint=0; -static int inpaint_clearcache=0; - -/*! - Marks areas of the cache that intersect with the given \a rect as dirty and - in need of being refreshed. - - \sa clearCache() -*/ -void QmlGraphicsPaintedItem::dirtyCache(const QRect& rect) -{ - Q_D(QmlGraphicsPaintedItem); - for (int i=0; i < d->imagecache.count(); ) { - QmlGraphicsPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; - QRect isect = (c->area & rect) | c->dirty; - if (isect == c->area && !inpaint) { - delete d->imagecache.takeAt(i); - } else { - c->dirty = isect; - ++i; - } - } -} - -/*! - Marks the entirety of the contents cache as dirty. - - \sa dirtyCache() -*/ -void QmlGraphicsPaintedItem::clearCache() -{ - if (inpaint) { - inpaint_clearcache=1; - return; - } - Q_D(QmlGraphicsPaintedItem); - qDeleteAll(d->imagecache); - d->imagecache.clear(); -} - -/*! - Returns the size of the contents. - - \sa setContentsSize() -*/ -QSize QmlGraphicsPaintedItem::contentsSize() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->contentsSize; -} - -/*! - Sets the size of the contents to the given \a size. - - \sa contentsSize() -*/ -void QmlGraphicsPaintedItem::setContentsSize(const QSize &size) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->contentsSize == size) return; - d->contentsSize = size; - clearCache(); - update(); -} - -/*! - Constructs a new QmlGraphicsPaintedItem with the given \a parent. -*/ -QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsPaintedItemPrivate), parent) -{ - init(); -} - -/*! - \internal - Constructs a new QmlGraphicsPaintedItem with the given \a parent and - initialized private data member \a dd. -*/ -QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - init(); -} - -/*! - Destroys the image item. -*/ -QmlGraphicsPaintedItem::~QmlGraphicsPaintedItem() -{ - clearCache(); -} - -/*! - \internal -*/ -void QmlGraphicsPaintedItem::init() -{ - connect(this,SIGNAL(widthChanged()),this,SLOT(clearCache())); - connect(this,SIGNAL(heightChanged()),this,SLOT(clearCache())); - connect(this,SIGNAL(visibleChanged()),this,SLOT(clearCache())); -} - -void QmlGraphicsPaintedItem::setCacheFrozen(bool frozen) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->cachefrozen == frozen) - return; - d->cachefrozen = frozen; - // XXX clear cache? -} - -/*! - \reimp -*/ -void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsPaintedItem); - const QRect content(QPoint(0,0),d->contentsSize); - if (content.width() <= 0 || content.height() <= 0) - return; - - ++inpaint; - - QRectF clipf = p->clipRegion().boundingRect(); - if (clipf.isEmpty()) - clipf = mapToScene(content).boundingRect(); // ### Inefficient: Maps toScene and then fromScene - else - clipf = mapToScene(clipf).boundingRect(); - - const QRect clip = mapFromScene(clipf).boundingRect().toRect(); - - QRegion topaint(clip); - topaint &= content; - QRegion uncached(content); - - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - if (topaint.contains(area)) { - QRectF target(area.x(), area.y(), area.width(), area.height()); - if (!d->cachefrozen) { - if (!d->imagecache[i]->dirty.isNull() && topaint.contains(d->imagecache[i]->dirty)) { - QPainter qp(&d->imagecache[i]->image); - qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); - qp.translate(-area.x(), -area.y()); - if (d->fillColor.isValid()){ - if(d->fillColor.alpha() < 255){ - // ### Might not work outside of raster paintengine - QPainter::CompositionMode prev = qp.compositionMode(); - qp.setCompositionMode(QPainter::CompositionMode_Source); - qp.fillRect(d->imagecache[i]->dirty,d->fillColor); - qp.setCompositionMode(prev); - }else{ - qp.fillRect(d->imagecache[i]->dirty,d->fillColor); - } - } - qp.setClipRect(d->imagecache[i]->dirty); - drawContents(&qp, d->imagecache[i]->dirty); - d->imagecache[i]->dirty = QRect(); - } - } - p->drawPixmap(target.toRect(), d->imagecache[i]->image); - topaint -= area; - d->imagecache[i]->age=0; - } else { - d->imagecache[i]->age++; - } - cachesize += area.width()*area.height(); - uncached -= area; - } - - if (!topaint.isEmpty()) { - if (!d->cachefrozen) { - // Find a sensible larger area, otherwise will paint lots of tiny images. - QRect biggerrect = topaint.boundingRect().adjusted(-64,-64,128,128); - cachesize += biggerrect.width() * biggerrect.height(); - while (d->imagecache.count() && cachesize > d->max_imagecache_size) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - uncached += d->imagecache[oldest]->area; - d->imagecache.removeAt(oldest); - } - const QRegion bigger = QRegion(biggerrect) & uncached; - const QVector rects = bigger.rects(); - for (int i = 0; i < rects.count(); ++i) { - const QRect &r = rects.at(i); - QPixmap img(r.size()); - if (d->fillColor.isValid()) - img.fill(d->fillColor); - { - QPainter qp(&img); - qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - qp.translate(-r.x(),-r.y()); - drawContents(&qp, r); - } - QmlGraphicsPaintedItemPrivate::ImageCacheItem *newitem = new QmlGraphicsPaintedItemPrivate::ImageCacheItem; - newitem->area = r; - newitem->image = img; - d->imagecache.append(newitem); - p->drawPixmap(r, newitem->image); - } - } else { - const QVector rects = uncached.rects(); - for (int i = 0; i < rects.count(); ++i) - p->fillRect(rects.at(i), Qt::lightGray); - } - } - - if (inpaint_clearcache) { - clearCache(); - inpaint_clearcache = 0; - } - - --inpaint; -} - -/*! - \qmlproperty int PaintedItem::cacheSize - - This property holds the maximum number of pixels of image cache to - allow. The default is 0.1 megapixels. The cache will not be larger - than the (unscaled) size of the item. -*/ - -/*! - \property QmlGraphicsPaintedItem::cacheSize - - The maximum number of pixels of image cache to allow. The default - is 0.1 megapixels. The cache will not be larger than the (unscaled) - size of the QmlGraphicsPaintedItem. -*/ -int QmlGraphicsPaintedItem::cacheSize() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->max_imagecache_size; -} - -void QmlGraphicsPaintedItem::setCacheSize(int pixels) -{ - Q_D(QmlGraphicsPaintedItem); - if (pixels < d->max_imagecache_size) { - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - cachesize += area.width()*area.height(); - } - while (d->imagecache.count() && cachesize > pixels) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - d->imagecache.removeAt(oldest); - } - } - d->max_imagecache_size = pixels; -} - -/*! - \property QmlGraphicsPaintedItem::fillColor - - The color to be used to fill the item prior to calling drawContents(). - By default, this is Qt::transparent. - - Performance improvements can be achieved if subclasses call this with either an - invalid color (QColor()), or an appropriate solid color. -*/ -void QmlGraphicsPaintedItem::setFillColor(const QColor& c) -{ - Q_D(QmlGraphicsPaintedItem); - if (d->fillColor == c) - return; - d->fillColor = c; - emit fillColorChanged(); - update(); -} - -QColor QmlGraphicsPaintedItem::fillColor() const -{ - Q_D(const QmlGraphicsPaintedItem); - return d->fillColor; -} - - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspainteditem_p.h b/src/declarative/fx/qmlgraphicspainteditem_p.h deleted file mode 100644 index 99873a7..0000000 --- a/src/declarative/fx/qmlgraphicspainteditem_p.h +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGEITEM_H -#define QMLGRAPHICSIMAGEITEM_H - -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsPaintedItemPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) - Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) - Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) - -public: - QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsPaintedItem(); - - QSize contentsSize() const; - void setContentsSize(const QSize &); - - int cacheSize() const; - void setCacheSize(int pixels); - - QColor fillColor() const; - void setFillColor(const QColor&); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -protected: - QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); - - virtual void drawContents(QPainter *p, const QRect &) = 0; - - void setCacheFrozen(bool); - -Q_SIGNALS: - void fillColorChanged(); - -protected Q_SLOTS: - void dirtyCache(const QRect &); - void clearCache(); - -private: - void init(); - Q_DISABLE_COPY(QmlGraphicsPaintedItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPaintedItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicspainteditem_p_p.h b/src/declarative/fx/qmlgraphicspainteditem_p_p.h deleted file mode 100644 index a744557..0000000 --- a/src/declarative/fx/qmlgraphicspainteditem_p_p.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSIMAGEITEM_P_H -#define QMLGRAPHICSIMAGEITEM_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -QT_BEGIN_NAMESPACE - -class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) - -public: - QmlGraphicsPaintedItemPrivate() - : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) - { - } - - struct ImageCacheItem { - ImageCacheItem() : age(0) {} - ~ImageCacheItem() { } - int age; - QRect area; - QRect dirty; // one dirty area (allows optimization of common cases) - QPixmap image; - }; - - QList imagecache; - - int max_imagecache_size; - QSize contentsSize; - QColor fillColor; - bool cachefrozen; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicspath.cpp b/src/declarative/fx/qmlgraphicspath.cpp deleted file mode 100644 index c0e6caf..0000000 --- a/src/declarative/fx/qmlgraphicspath.cpp +++ /dev/null @@ -1,839 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicspath_p.h" -#include "qmlgraphicspath_p_p.h" -#include -#include -#include - - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QmlGraphicsPath) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsPathElement) -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsCurve) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QmlGraphicsPathAttribute) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QmlGraphicsPathPercent) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QmlGraphicsPathLine) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QmlGraphicsPathQuad) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QmlGraphicsPathCubic) - -/*! - \qmlclass PathElement QFxPathElement - \brief PathElement is the base path type. - - This type is the base for all path types. It cannot - be instantiated. - - \sa Path, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPathElement - \ingroup group_utility -*/ - -/*! - \qmlclass Path QmlGraphicsPath - \brief A Path object defines a path for use by \l PathView. - - A Path is composed of one or more path segments - PathLine, PathQuad, - PathCubic. - - The spacing of the items along the Path can be adjusted via a - PathPercent object. - - PathAttribute allows named attributes with values to be defined - along the path. - - \sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPath - \ingroup group_utility - \brief The QmlGraphicsPath class defines a path. - \sa QmlGraphicsPathView -*/ -QmlGraphicsPath::QmlGraphicsPath(QObject *parent) - : QObject(*(new QmlGraphicsPathPrivate), parent) -{ -} - -QmlGraphicsPath::QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent) - : QObject(dd, parent) -{ -} - -QmlGraphicsPath::~QmlGraphicsPath() -{ -} - -/*! - \qmlproperty real Path::startX - \qmlproperty real Path::startY - This property holds the starting position of the path. -*/ -qreal QmlGraphicsPath::startX() const -{ - Q_D(const QmlGraphicsPath); - return d->startX; -} - -void QmlGraphicsPath::setStartX(qreal x) -{ - Q_D(QmlGraphicsPath); - d->startX = x; -} - -qreal QmlGraphicsPath::startY() const -{ - Q_D(const QmlGraphicsPath); - return d->startY; -} - -void QmlGraphicsPath::setStartY(qreal y) -{ - Q_D(QmlGraphicsPath); - d->startY = y; -} - -/*! - \qmlproperty list Path::pathElements - This property holds the objects composing the path. - - \default - - A path can contain the following path objects: - \list - \i \l PathLine - a straight line to a given position. - \i \l PathQuad - a quadratic Bezier curve to a given position with a control point. - \i \l PathCubic - a cubic Bezier curve to a given position with two control points. - \i \l PathAttribute - an attribute at a given position in the path. - \i \l PathPercent - a way to spread out items along various segments of the path. - \endlist - - \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 2 -*/ - -QList* QmlGraphicsPath::pathElements() -{ - Q_D(QmlGraphicsPath); - return &(d->_pathElements); -} - -void QmlGraphicsPath::interpolate(int idx, const QString &name, qreal value) -{ - Q_D(QmlGraphicsPath); - if (!idx) - return; - - qreal lastValue = 0; - qreal lastPercent = 0; - int search = idx - 1; - while(search >= 0) { - const AttributePoint &point = d->_attributePoints.at(search); - if (point.values.contains(name)) { - lastValue = point.values.value(name); - lastPercent = point.origpercent; - break; - } - --search; - } - - ++search; - - const AttributePoint &curPoint = d->_attributePoints.at(idx); - - for (int ii = search; ii < idx; ++ii) { - AttributePoint &point = d->_attributePoints[ii]; - - qreal val = lastValue + (value - lastValue) * (point.origpercent - lastPercent) / (curPoint.origpercent - lastPercent); - point.values.insert(name, val); - } -} - -void QmlGraphicsPath::endpoint(const QString &name) -{ - Q_D(QmlGraphicsPath); - const AttributePoint &first = d->_attributePoints.first(); - qreal val = first.values.value(name); - for (int ii = d->_attributePoints.count() - 1; ii >= 0; ii--) { - const AttributePoint &point = d->_attributePoints.at(ii); - if (point.values.contains(name)) { - for (int jj = ii + 1; jj < d->_attributePoints.count(); ++jj) { - AttributePoint &setPoint = d->_attributePoints[jj]; - setPoint.values.insert(name, val); - } - return; - } - } -} - -void QmlGraphicsPath::processPath() -{ - Q_D(QmlGraphicsPath); - - d->_pointCache.clear(); - d->_attributePoints.clear(); - d->_path = QPainterPath(); - - AttributePoint first; - for (int ii = 0; ii < d->_attributes.count(); ++ii) - first.values[d->_attributes.at(ii)] = 0; - d->_attributePoints << first; - - d->_path.moveTo(d->startX, d->startY); - - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { - if (QmlGraphicsCurve *curve = qobject_cast(pathElement)) { - curve->addToPath(d->_path); - AttributePoint p; - p.origpercent = d->_path.length(); - d->_attributePoints << p; - } else if (QmlGraphicsPathAttribute *attribute = qobject_cast(pathElement)) { - AttributePoint &point = d->_attributePoints.last(); - point.values[attribute->name()] = attribute->value(); - interpolate(d->_attributePoints.count() - 1, attribute->name(), attribute->value()); - } else if (QmlGraphicsPathPercent *percent = qobject_cast(pathElement)) { - AttributePoint &point = d->_attributePoints.last(); - point.values[QLatin1String("_qfx_percent")] = percent->value(); - interpolate(d->_attributePoints.count() - 1, QLatin1String("_qfx_percent"), percent->value()); - } - } - - // Fixup end points - const AttributePoint &last = d->_attributePoints.last(); - for (int ii = 0; ii < d->_attributes.count(); ++ii) { - if (!last.values.contains(d->_attributes.at(ii))) - endpoint(d->_attributes.at(ii)); - } - - // Adjust percent - qreal length = d->_path.length(); - qreal prevpercent = 0; - qreal prevorigpercent = 0; - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - const AttributePoint &point = d->_attributePoints.at(ii); - if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QmlGraphicsPathPercent - if ( ii > 0) { - qreal scale = (d->_attributePoints[ii].origpercent/length - prevorigpercent) / - (point.values.value(QLatin1String("_qfx_percent"))-prevpercent); - d->_attributePoints[ii].scale = scale; - } - d->_attributePoints[ii].origpercent /= length; - d->_attributePoints[ii].percent = point.values.value(QLatin1String("_qfx_percent")); - prevorigpercent = d->_attributePoints[ii].origpercent; - prevpercent = d->_attributePoints[ii].percent; - } else { - d->_attributePoints[ii].origpercent /= length; - d->_attributePoints[ii].percent = d->_attributePoints[ii].origpercent; - } - } - - emit changed(); -} - -void QmlGraphicsPath::componentComplete() -{ - Q_D(QmlGraphicsPath); - QSet attrs; - // First gather up all the attributes - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { - if (QmlGraphicsPathAttribute *attribute = - qobject_cast(pathElement)) - attrs.insert(attribute->name()); - } - d->_attributes = attrs.toList(); - - processPath(); - - foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) - connect(pathElement, SIGNAL(changed()), this, SLOT(processPath())); -} - -QPainterPath QmlGraphicsPath::path() const -{ - Q_D(const QmlGraphicsPath); - return d->_path; -} - -QStringList QmlGraphicsPath::attributes() const -{ - Q_D(const QmlGraphicsPath); - return d->_attributes; -} -#include - -static inline QBezier nextBezier(const QPainterPath &path, int *from, qreal *bezLength) -{ - const int lastElement = path.elementCount() - 1; - for (int i=*from; i <= lastElement; ++i) { - const QPainterPath::Element &e = path.elementAt(i); - - switch (e.type) { - case QPainterPath::MoveToElement: - break; - case QPainterPath::LineToElement: - { - QLineF line(path.elementAt(i-1), e); - *bezLength = line.length(); - QPointF a = path.elementAt(i-1); - QPointF delta = e - a; - *from = i+1; - return QBezier::fromPoints(a, a + delta / 3, a + 2 * delta / 3, e); - } - case QPainterPath::CurveToElement: - { - QBezier b = QBezier::fromPoints(path.elementAt(i-1), - e, - path.elementAt(i+1), - path.elementAt(i+2)); - *bezLength = b.length(); - *from = i+3; - return b; - } - default: - break; - } - } - *from = lastElement; - *bezLength = 0; - return QBezier(); -} - -void QmlGraphicsPath::createPointCache() const -{ - Q_D(const QmlGraphicsPath); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer pc; -#endif - qreal pathLength = d->_path.length(); - const int points = int(pathLength*2); - const int lastElement = d->_path.elementCount() - 1; - d->_pointCache.resize(points+1); - - int currElement = 0; - qreal bezLength = 0; - QBezier currBez = nextBezier(d->_path, &currElement, &bezLength); - qreal currLength = bezLength; - qreal epc = currLength / pathLength; - - for (int i = 0; i < d->_pointCache.size(); i++) { - //find which set we are in - qreal prevPercent = 0; - qreal prevOrigPercent = 0; - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - qreal percent = qreal(i)/points; - const AttributePoint &point = d->_attributePoints.at(ii); - if (percent < point.percent || ii == d->_attributePoints.count() - 1) { //### || is special case for very last item - qreal elementPercent = (percent - prevPercent); - - qreal spc = prevOrigPercent + elementPercent * point.scale; - - while (spc > epc) { - if (currElement > lastElement) - break; - currBez = nextBezier(d->_path, &currElement, &bezLength); - if (bezLength == 0.0) { - currLength = pathLength; - epc = 1.0; - break; - } - currLength += bezLength; - epc = currLength / pathLength; - } - qreal realT = (pathLength * spc - (currLength - bezLength)) / bezLength; - d->_pointCache[i] = currBez.pointAt(qBound(qreal(0), realT, qreal(1))); - break; - } - prevOrigPercent = point.origpercent; - prevPercent = point.percent; - } - } -} - -QPointF QmlGraphicsPath::pointAt(qreal p) const -{ - Q_D(const QmlGraphicsPath); - if (d->_pointCache.isEmpty()) { - createPointCache(); - } - int idx = qRound(p*d->_pointCache.size()); - if (idx >= d->_pointCache.size()) - idx = d->_pointCache.size() - 1; - else if (idx < 0) - idx = 0; - return d->_pointCache.at(idx); -} - -qreal QmlGraphicsPath::attributeAt(const QString &name, qreal percent) const -{ - Q_D(const QmlGraphicsPath); - if (percent < 0 || percent > 1) - return 0; - - for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { - const AttributePoint &point = d->_attributePoints.at(ii); - - if (point.percent == percent) { - return point.values.value(name); - } else if (point.percent > percent) { - qreal lastValue = - ii?(d->_attributePoints.at(ii - 1).values.value(name)):0; - qreal lastPercent = - ii?(d->_attributePoints.at(ii - 1).percent):0; - qreal curValue = point.values.value(name); - qreal curPercent = point.percent; - - return lastValue + (curValue - lastValue) * (percent - lastPercent) / (curPercent - lastPercent); - } - } - - return 0; -} - -/****************************************************************************/ - -qreal QmlGraphicsCurve::x() const -{ - return _x; -} - -void QmlGraphicsCurve::setX(qreal x) -{ - if (_x != x) { - _x = x; - emit changed(); - } -} - -qreal QmlGraphicsCurve::y() const -{ - return _y; -} - -void QmlGraphicsCurve::setY(qreal y) -{ - if (_y != y) { - _y = y; - emit changed(); - } -} - -/****************************************************************************/ - -/*! - \qmlclass PathAttribute QFxPathAttribute - \brief The PathAttribute allows setting an attribute at a given position in a Path. - - The PathAttribute object allows attibutes consisting of a name and - a value to be specified for the endpoints of path segments. The - attributes are exposed to the delegate as - \l{qmlintroduction.html#attached-properties} {Attached Properties}. - The value of an attribute at any particular point is interpolated - from the PathAttributes bounding the point. - - The example below shows a path with the items scaled to 30% with - opacity 50% at the top of the path and scaled 100% with opacity - 100% at the bottom. Note the use of the PathView.scale and - PathView.opacity attached properties to set the scale and opacity - of the delegate. - - \table - \row - \o \image declarative-pathattribute.png - \o - \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 0 - \endtable - - \sa Path -*/ - -/*! - \internal - \class QmlGraphicsPathAttribute - \ingroup group_utility - \brief The QmlGraphicsPathAttribute class allows to set the value of an attribute at a given position in the path. - - \sa QmlGraphicsPath -*/ - - -/*! - \qmlproperty string PathAttribute::name - the name of the attribute to change. -*/ - -/*! - the name of the attribute to change. -*/ - -QString QmlGraphicsPathAttribute::name() const -{ - return _name; -} - -void QmlGraphicsPathAttribute::setName(const QString &name) -{ - _name = name; -} - -/*! - \qmlproperty string PathAttribute::value - the new value of the attribute. -*/ - -/*! - the new value of the attribute. -*/ -qreal QmlGraphicsPathAttribute::value() const -{ - return _value; -} - -void QmlGraphicsPathAttribute::setValue(qreal value) -{ - if (_value != value) { - _value = value; - emit changed(); - } -} - -/****************************************************************************/ - -/*! - \qmlclass PathLine QFxPathLine - \brief The PathLine defines a straight line. - - The example below creates a path consisting of a straight line from - 0,100 to 200,100: - - \qml - Path { - startX: 0; startY: 100 - PathLine { x: 200; y: 100 } - } - \endqml - - \sa Path, PathQuad, PathCubic -*/ - -/*! - \internal - \class QmlGraphicsPathLine - \ingroup group_utility - \brief The QmlGraphicsPathLine class defines a straight line. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlproperty real PathLine::x - \qmlproperty real PathLine::y - - Defines the end point of the line. -*/ - -void QmlGraphicsPathLine::addToPath(QPainterPath &path) -{ - path.lineTo(x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathQuad QFxPathQuad - \brief The PathQuad defines a quadratic Bezier curve with a control point. - - The following QML produces the path shown below: - \table - \row - \o \image declarative-pathquad.png - \o - \qml - Path { - startX: 0; startY: 0 - PathQuad x: 200; y: 0; controlX: 100; controlY: 150 } - } - \endqml - \endtable - - \sa Path, PathCubic, PathLine -*/ - -/*! - \internal - \class QmlGraphicsPathQuad - \ingroup group_utility - \brief The QmlGraphicsPathQuad class defines a quadratic Bezier curve with a control point. - - \sa QmlGraphicsPath -*/ - - -/*! - \qmlproperty real PathQuad::x - \qmlproperty real PathQuad::y - - Defines the end point of the curve. -*/ - -/*! - \qmlproperty real PathQuad::controlX - \qmlproperty real PathQuad::controlY - - Defines the position of the control point. -*/ - -/*! - the x position of the control point. -*/ -qreal QmlGraphicsPathQuad::controlX() const -{ - return _controlX; -} - -void QmlGraphicsPathQuad::setControlX(qreal x) -{ - if (_controlX != x) { - _controlX = x; - emit changed(); - } -} - - -/*! - the y position of the control point. -*/ -qreal QmlGraphicsPathQuad::controlY() const -{ - return _controlY; -} - -void QmlGraphicsPathQuad::setControlY(qreal y) -{ - if (_controlY != y) { - _controlY = y; - emit changed(); - } -} - -void QmlGraphicsPathQuad::addToPath(QPainterPath &path) -{ - path.quadTo(controlX(), controlY(), x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathCubic QFxPathCubic - \brief The PathCubic defines a cubic Bezier curve with two control points. - - The following QML produces the path shown below: - \table - \row - \o \image declarative-pathcubic.png - \o - \qml - Path { - startX: 20; startY: 0 - PathCubic { - x: 180; y: 0; control1X: -10; control1Y: 90 - control2X: 210; control2Y: 90 - } - } - \endqml - \endtable - - \sa Path, PathQuad, PathLine -*/ - -/*! - \internal - \class QmlGraphicsPathCubic - \ingroup group_utility - \brief The QmlGraphicsPathCubic class defines a cubic Bezier curve with two control points. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlproperty real PathCubic::x - \qmlproperty real PathCubic::y - - Defines the end point of the curve. -*/ - -/*! - \qmlproperty real PathCubic::control1X - \qmlproperty real PathCubic::control1Y - - Defines the position of the first control point. -*/ -qreal QmlGraphicsPathCubic::control1X() const -{ - return _control1X; -} - -void QmlGraphicsPathCubic::setControl1X(qreal x) -{ - if (_control1X != x) { - _control1X = x; - emit changed(); - } -} - -qreal QmlGraphicsPathCubic::control1Y() const -{ - return _control1Y; -} - -void QmlGraphicsPathCubic::setControl1Y(qreal y) -{ - if (_control1Y != y) { - _control1Y = y; - emit changed(); - } -} - -/*! - \qmlproperty real PathCubic::control2X - \qmlproperty real PathCubic::control2Y - - Defines the position of the second control point. -*/ -qreal QmlGraphicsPathCubic::control2X() const -{ - return _control2X; -} - -void QmlGraphicsPathCubic::setControl2X(qreal x) -{ - if (_control2X != x) { - _control2X = x; - emit changed(); - } -} - -qreal QmlGraphicsPathCubic::control2Y() const -{ - return _control2Y; -} - -void QmlGraphicsPathCubic::setControl2Y(qreal y) -{ - if (_control2Y != y) { - _control2Y = y; - emit changed(); - } -} - -void QmlGraphicsPathCubic::addToPath(QPainterPath &path) -{ - path.cubicTo(control1X(), control1Y(), control2X(), control2Y(), x(), y()); -} - -/****************************************************************************/ - -/*! - \qmlclass PathPercent QFxPathPercent - \brief The PathPercent manipulates the way a path is interpreted. - - The examples below show the normal distrubution of items along a path - compared to a distribution which places 50% of the items along the - PathLine section of the path. - \table - \row - \o \image declarative-nopercent.png - \o - \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathLine { x: 150; y: 80 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } - } - \endqml - \row - \o \image declarative-percent.png - \o - \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathPercent { value: 0.25 } - PathLine { x: 150; y: 80 } - PathPercent { value: 0.75 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } - PathPercent { value: 1 } - } - \endqml - \endtable - - \sa Path -*/ - -/*! - \internal - \class QmlGraphicsPathPercent - \ingroup group_utility - \brief The QmlGraphicsPathPercent class manipulates the way a path is interpreted. - - QmlGraphicsPathPercent allows you to bunch up items (or spread out items) along various - segments of a QmlGraphicsPathView's path. - - \sa QmlGraphicsPath - -*/ - -qreal QmlGraphicsPathPercent::value() const -{ - return _value; -} - -void QmlGraphicsPathPercent::setValue(qreal value) -{ - _value = value; -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspath_p.h b/src/declarative/fx/qmlgraphicspath_p.h deleted file mode 100644 index 4710367..0000000 --- a/src/declarative/fx/qmlgraphicspath_p.h +++ /dev/null @@ -1,259 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSPATH_H -#define QMLGRAPHICSPATH_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject -{ - Q_OBJECT -public: - QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} -Q_SIGNALS: - void changed(); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) -public: - QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} - - - QString name() const; - void setName(const QString &name); - - qreal value() const; - void setValue(qreal value); - -private: - QString _name; - qreal _value; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement -{ - Q_OBJECT - - Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) - Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) -public: - QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} - - qreal x() const; - void setX(qreal x); - - qreal y() const; - void setY(qreal y); - - virtual void addToPath(QPainterPath &) {} - -private: - qreal _x; - qreal _y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve -{ - Q_OBJECT -public: - QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} - - void addToPath(QPainterPath &path); -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) - Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) -public: - QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} - - qreal controlX() const; - void setControlX(qreal x); - - qreal controlY() const; - void setControlY(qreal y); - - void addToPath(QPainterPath &path); - -private: - qreal _controlX; - qreal _controlY; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve -{ - Q_OBJECT - - Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) - Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) - Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) - Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) -public: - QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} - - qreal control1X() const; - void setControl1X(qreal x); - - qreal control1Y() const; - void setControl1Y(qreal y); - - qreal control2X() const; - void setControl2X(qreal x); - - qreal control2Y() const; - void setControl2Y(qreal y); - - void addToPath(QPainterPath &path); - -private: - int _control1X; - int _control1Y; - int _control2X; - int _control2Y; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement -{ - Q_OBJECT - Q_PROPERTY(qreal value READ value WRITE setValue) -public: - QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} - - qreal value() const; - void setValue(qreal value); - -private: - qreal _value; -}; - -class QmlGraphicsPathPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus -{ - Q_OBJECT - - Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QList* pathElements READ pathElements) - Q_PROPERTY(qreal startX READ startX WRITE setStartX) - Q_PROPERTY(qreal startY READ startY WRITE setStartY) - Q_CLASSINFO("DefaultProperty", "pathElements") - Q_INTERFACES(QmlParserStatus) -public: - QmlGraphicsPath(QObject *parent=0); - ~QmlGraphicsPath(); - - QList* pathElements(); - - qreal startX() const; - void setStartX(qreal x); - - qreal startY() const; - void setStartY(qreal y); - - QPainterPath path() const; - QStringList attributes() const; - qreal attributeAt(const QString &, qreal) const; - QPointF pointAt(qreal) const; - -Q_SIGNALS: - void changed(); - -protected: - virtual void componentComplete(); - QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); - -private Q_SLOTS: - void processPath(); - -private: - struct AttributePoint { - AttributePoint() : percent(0), scale(1), origpercent(0) {} - AttributePoint(const AttributePoint &other) - : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} - AttributePoint &operator=(const AttributePoint &other) { - percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; - } - qreal percent; //massaged percent along the painter path - qreal scale; - qreal origpercent; //'real' percent along the painter path - QHash values; - }; - - void interpolate(int idx, const QString &name, qreal value); - void endpoint(const QString &name); - void createPointCache() const; - -private: - Q_DISABLE_COPY(QmlGraphicsPath) - Q_DECLARE_PRIVATE(QmlGraphicsPath) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathElement) -QML_DECLARE_TYPE(QmlGraphicsPathAttribute) -QML_DECLARE_TYPE(QmlGraphicsCurve) -QML_DECLARE_TYPE(QmlGraphicsPathLine) -QML_DECLARE_TYPE(QmlGraphicsPathQuad) -QML_DECLARE_TYPE(QmlGraphicsPathCubic) -QML_DECLARE_TYPE(QmlGraphicsPathPercent) -QML_DECLARE_TYPE(QmlGraphicsPath) - -QT_END_HEADER - -#endif // QMLGRAPHICSPATH_H diff --git a/src/declarative/fx/qmlgraphicspath_p_p.h b/src/declarative/fx/qmlgraphicspath_p_p.h deleted file mode 100644 index 36e8945..0000000 --- a/src/declarative/fx/qmlgraphicspath_p_p.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSPATH_P_H -#define QMLGRAPHICSPATH_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "private/qobject_p.h" -#include "qmlgraphicspath_p.h" -#include "qml.h" - - -QT_BEGIN_NAMESPACE -class QmlGraphicsPathPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPath) - -public: - QmlGraphicsPathPrivate() : startX(0), startY(0) { } - - QPainterPath _path; - QList _pathElements; - mutable QVector _pointCache; - QList _attributePoints; - QStringList _attributes; - int startX; - int startY; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicspathview.cpp b/src/declarative/fx/qmlgraphicspathview.cpp deleted file mode 100644 index 52d2fa9..0000000 --- a/src/declarative/fx/qmlgraphicspathview.cpp +++ /dev/null @@ -1,913 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -static const int FlickThreshold = 5; - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QmlGraphicsPathView) - -class QmlGraphicsPathViewAttached : public QObject -{ - Q_OBJECT -public: - QmlGraphicsPathViewAttached(QObject *parent) - : QObject(parent), mo(new QmlOpenMetaObject(this)) - { - } - - ~QmlGraphicsPathViewAttached() - { - QmlGraphicsPathView::attachedProperties.remove(parent()); - } - - QVariant value(const QByteArray &name) const - { - return mo->value(name); - } - void setValue(const QByteArray &name, const QVariant &val) - { - mo->setValue(name, val); - } - -private: - QmlOpenMetaObject *mo; -}; - - -/*! - \internal - \class QmlGraphicsPathView - \brief The QmlGraphicsPathView class lays out items provided by a model on a path. - - \ingroup group_views - - The model must be a \l QListModelInterface subclass. - - \sa QmlGraphicsPath -*/ - -/*! - \qmlclass PathView QFxPathView - \brief The PathView element lays out model-provided items on a path. - \inherits Item - - The model is typically provided by a QAbstractListModel "C++ model object", but can also be created directly in QML. - - The items are laid out along a path defined by a \l Path and may be flicked to scroll. - - \snippet doc/src/snippets/declarative/pathview/pathview.qml 0 - - \image pathview.gif - - \sa Path -*/ - -QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsPathViewPrivate), parent) -{ - Q_D(QmlGraphicsPathView); - d->init(); -} - -QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsPathView); - d->init(); -} - -QmlGraphicsPathView::~QmlGraphicsPathView() -{ - Q_D(QmlGraphicsPathView); - if (d->ownModel) - delete d->model; -} - -/*! - \qmlproperty model PathView::model - This property holds the model providing data for the view. - - The model provides a set of data that is used to create the items for the view. - For large or dynamic datasets the model is usually provided by a C++ model object. - Models can also be created directly in XML, using the ListModel element. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsPathView::model() const -{ - Q_D(const QmlGraphicsPathView); - return d->modelVariant; -} - -void QmlGraphicsPathView::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsPathView); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - for (int i=0; iitems.count(); i++){ - QmlGraphicsItem *p = d->items[i]; - d->model->release(p); - } - d->items.clear(); - } - - d->modelVariant = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - } - d->firstIndex = 0; - d->pathOffset = 0; - d->regenerate(); - d->fixOffset(); -} - -/*! - \qmlproperty int PathView::count - This property holds the number of items in the model. -*/ -int QmlGraphicsPathView::count() const -{ - Q_D(const QmlGraphicsPathView); - return d->model ? d->model->count() : 0; -} - -/*! - \qmlproperty Path PathView::path - \default - This property holds the path used to lay out the items. - For more information see the \l Path documentation. -*/ -QmlGraphicsPath *QmlGraphicsPathView::path() const -{ - Q_D(const QmlGraphicsPathView); - return d->path; -} - -void QmlGraphicsPathView::setPath(QmlGraphicsPath *path) -{ - Q_D(QmlGraphicsPathView); - d->path = path; - connect(d->path, SIGNAL(changed()), this, SLOT(refill())); - d->regenerate(); -} - -/*! - \qmlproperty int PathView::currentIndex - This property holds the index of the current item. -*/ -int QmlGraphicsPathView::currentIndex() const -{ - Q_D(const QmlGraphicsPathView); - return d->currentIndex; -} - -void QmlGraphicsPathView::setCurrentIndex(int idx) -{ - Q_D(QmlGraphicsPathView); - if (d->model && d->model->count()) - idx = qAbs(idx % d->model->count()); - if (d->model && idx != d->currentIndex) { - d->currentIndex = idx; - if (d->model->count()) { - d->snapToCurrent(); - int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count(); - if (itemIndex < d->items.count()) - d->items.at(itemIndex)->setFocus(true); - } - emit currentIndexChanged(); - } -} - -/*! - \qmlproperty real PathView::offset - - The offset specifies how far along the path the items are from their initial positions. -*/ -qreal QmlGraphicsPathView::offset() const -{ - Q_D(const QmlGraphicsPathView); - return d->_offset; -} - -void QmlGraphicsPathView::setOffset(qreal offset) -{ - Q_D(QmlGraphicsPathView); - d->setOffset(offset); - d->updateCurrent(); -} - -void QmlGraphicsPathViewPrivate::setOffset(qreal o) -{ - Q_Q(QmlGraphicsPathView); - if (_offset != o) { - _offset = fmod(o, 100.0); - if (_offset < 0) - _offset = 100.0 + _offset; - q->refill(); - } -} - -/*! - \qmlproperty real PathView::snapPosition - - This property determines the position (0-100) the nearest item will snap to. -*/ -qreal QmlGraphicsPathView::snapPosition() const -{ - Q_D(const QmlGraphicsPathView); - return d->snapPos; -} - -void QmlGraphicsPathView::setSnapPosition(qreal pos) -{ - Q_D(QmlGraphicsPathView); - d->snapPos = pos/100; - d->fixOffset(); -} - -/*! - \qmlproperty real PathView::dragMargin - This property holds the maximum distance from the path that initiate mouse dragging. - - By default the path can only be dragged by clicking on an item. If - dragMargin is greater than zero, a drag can be initiated by clicking - within dragMargin pixels of the path. -*/ -qreal QmlGraphicsPathView::dragMargin() const -{ - Q_D(const QmlGraphicsPathView); - return d->dragMargin; -} - -void QmlGraphicsPathView::setDragMargin(qreal dragMargin) -{ - Q_D(QmlGraphicsPathView); - d->dragMargin = dragMargin; -} - -/*! - \qmlproperty component PathView::delegate - - The delegate provides a template describing what each item in the view should look and act like. - - Here is an example delegate: - \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 -*/ -QmlComponent *QmlGraphicsPathView::delegate() const -{ - Q_D(const QmlGraphicsPathView); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsPathView::setDelegate(QmlComponent *c) -{ - Q_D(QmlGraphicsPathView); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(c); - d->regenerate(); - } -} - -/*! - \qmlproperty int PathView::pathItemCount - This property holds the number of items visible on the path at any one time -*/ -int QmlGraphicsPathView::pathItemCount() const -{ - Q_D(const QmlGraphicsPathView); - return d->pathItems; -} - -void QmlGraphicsPathView::setPathItemCount(int i) -{ - Q_D(QmlGraphicsPathView); - if (i == d->pathItems) - return; - d->pathItems = i; - d->regenerate(); -} - -QPointF QmlGraphicsPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const -{ - //XXX maybe do recursively at increasing resolution. - qreal mindist = 1e10; // big number - QPointF nearPoint = path->pointAt(0); - qreal nearPc = 0; - for (qreal i=1; i < 1000; i++) { - QPointF pt = path->pointAt(i/1000.0); - QPointF diff = pt - point; - qreal dist = diff.x()*diff.x() + diff.y()*diff.y(); - if (dist < mindist) { - nearPoint = pt; - nearPc = i; - mindist = dist; - } - } - - if (nearPercent) - *nearPercent = nearPc / 10.0; - - return nearPoint; -} - - -void QmlGraphicsPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - if (!d->items.count()) - return; - QPointF scenePoint = mapToScene(event->pos()); - int idx = 0; - for (; idx < d->items.count(); ++idx) { - QRectF rect = d->items.at(idx)->boundingRect(); - rect = d->items.at(idx)->mapToScene(rect).boundingRect(); - if (rect.contains(scenePoint)) - break; - } - if (idx == d->items.count() && d->dragMargin == 0.) // didn't click on an item - return; - - d->startPoint = d->pointNear(event->pos(), &d->startPc); - if (idx == d->items.count()) { - qreal distance = qAbs(event->pos().x() - d->startPoint.x()) + qAbs(event->pos().y() - d->startPoint.y()); - if (distance > d->dragMargin) - return; - } - - d->stealMouse = false; - d->lastElapsed = 0; - d->lastDist = 0; - QmlGraphicsItemPrivate::start(d->lastPosTime); - d->tl.clear(); -} - -void QmlGraphicsPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - if (d->lastPosTime.isNull()) - return; - - if (!d->stealMouse) { - QPointF delta = event->pos() - d->startPoint; - if (qAbs(delta.x()) > FlickThreshold && qAbs(delta.y()) > FlickThreshold) - d->stealMouse = true; - } - - if (d->stealMouse) { - d->moveReason = QmlGraphicsPathViewPrivate::Mouse; - qreal newPc; - d->pointNear(event->pos(), &newPc); - qreal diff = newPc - d->startPc; - if (diff) { - setOffset(d->_offset + diff); - - if (diff > 50) - diff -= 100; - else if (diff < -50) - diff += 100; - - d->lastElapsed = QmlGraphicsItemPrivate::restart(d->lastPosTime); - d->lastDist = diff; - d->startPc = newPc; - } - } -} - -void QmlGraphicsPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) -{ - Q_D(QmlGraphicsPathView); - if (d->lastPosTime.isNull()) - return; - - qreal elapsed = qreal(d->lastElapsed + QmlGraphicsItemPrivate::elapsed(d->lastPosTime)) / 1000.; - qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0; - if (d->model && d->model->count() && qAbs(velocity) > 5) { - if (velocity > 100) - velocity = 100; - else if (velocity < -100) - velocity = -100; - qreal inc = fmod(d->_offset - d->snapPos, 100.0 / d->model->count()); - qreal dist = qAbs(velocity/2 - fmod(velocity/2, 100.0 / d->model->count()) - inc); - d->moveOffset.setValue(d->_offset); - d->tl.accel(d->moveOffset, velocity, 10, dist); - d->tl.execute(d->fixupOffsetEvent); - } else { - d->fixOffset(); - } - - d->lastPosTime = QTime(); - d->stealMouse = false; - ungrabMouse(); -} - -bool QmlGraphicsPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsPathView); - QGraphicsSceneMouseEvent mouseEvent(event->type()); - QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); - QGraphicsScene *s = scene(); - QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; - if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { - mouseEvent.setAccepted(false); - for (int i = 0x1; i <= 0x10; i <<= 1) { - if (event->buttons() & i) { - Qt::MouseButton button = Qt::MouseButton(i); - mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); - } - } - mouseEvent.setScenePos(event->scenePos()); - mouseEvent.setLastScenePos(event->lastScenePos()); - mouseEvent.setPos(mapFromScene(event->scenePos())); - mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); - - switch(mouseEvent.type()) { - case QEvent::GraphicsSceneMouseMove: - mouseMoveEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMousePress: - mousePressEvent(&mouseEvent); - break; - case QEvent::GraphicsSceneMouseRelease: - mouseReleaseEvent(&mouseEvent); - break; - default: - break; - } - grabber = qobject_cast(s->mouseGrabberItem()); - if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) - grabMouse(); - - return d->stealMouse; - } else if (!d->lastPosTime.isNull()) { - d->lastPosTime = QTime(); - } - return false; -} - -bool QmlGraphicsPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) -{ - if (!isVisible()) - return QmlGraphicsItem::sceneEventFilter(i, e); - - switch (e->type()) { - case QEvent::GraphicsSceneMousePress: - case QEvent::GraphicsSceneMouseMove: - case QEvent::GraphicsSceneMouseRelease: - { - bool ret = sendMouseEvent(static_cast(e)); - if (e->type() == QEvent::GraphicsSceneMouseRelease) - return ret; - break; - } - default: - break; - } - - return QmlGraphicsItem::sceneEventFilter(i, e); -} - -void QmlGraphicsPathView::componentComplete() -{ - Q_D(QmlGraphicsPathView); - QmlGraphicsItem::componentComplete(); - d->regenerate(); - - // move to correct offset - if (d->items.count()) { - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count(); - - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) { - d->moveOffset.setValue(targetOffset); - } - } -} - -void QmlGraphicsPathViewPrivate::regenerate() -{ - Q_Q(QmlGraphicsPathView); - if (!q->isComponentComplete()) - return; - - for (int i=0; i= model->count()) - firstIndex = model->count()-1; - if (pathOffset >= model->count()) - pathOffset = model->count()-1; - - int numItems = pathItems >= 0 ? pathItems : model->count(); - for (int i=0; i < numItems && i < model->count(); ++i){ - int index = (i + firstIndex) % model->count(); - QmlGraphicsItem *item = getItem(index); - if (!item) { - qWarning() << "PathView: Cannot create item, index" << (i + firstIndex) % model->count(); - return; - } - items.append(item); - item->setZValue(i); - if (currentIndex == index) - item->setFocus(true); - } - q->refill(); -} - -void QmlGraphicsPathViewPrivate::updateItem(QmlGraphicsItem *item, qreal percent) -{ - if (QObject *obj = QmlGraphicsPathView::qmlAttachedProperties(item)) { - foreach(const QString &attr, path->attributes()) - static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); - } - QPointF pf = path->pointAt(percent); - item->setX(pf.x() - item->width()*item->scale()/2); - item->setY(pf.y() - item->height()*item->scale()/2); -} - -void QmlGraphicsPathView::refill() -{ - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - - QList positions; - for (int i=0; iitems.count(); i++){ - qreal percent = i * (100. / d->items.count()); - percent = percent + d->_offset; - percent = fmod(percent,100.); - positions << qAbs(percent/100.0); - } - - if (d->pathItems==-1) { - for (int i=0; iupdateItem(d->items.at(i), positions[i]); - return; - } - - QList rotatedPositions; - for (int i=0; iitems.count(); i++) - rotatedPositions << positions[(i + d->pathOffset + d->items.count()) % d->items.count()]; - - int wrapIndex= -1; - for (int i=0; iitems.count()-1; i++) { - if (rotatedPositions[i] > rotatedPositions[i+1]){ - wrapIndex = i; - break; - } - } - if (wrapIndex != -1 ){ - //A wraparound has occured - if (wrapIndex < d->items.count()/2){ - while(wrapIndex-- >= 0){ - QmlGraphicsItem* p = d->items.takeFirst(); - d->updateItem(p, 0.0); - d->releaseItem(p); - d->firstIndex++; - d->firstIndex %= d->model->count(); - int index = (d->firstIndex + d->items.count())%d->model->count(); - QmlGraphicsItem *item = d->getItem(index); - item->setZValue(wrapIndex); - if (d->currentIndex == index) - item->setFocus(true); - d->items << item; - d->pathOffset++; - d->pathOffset=d->pathOffset % d->items.count(); - } - } else { - while(wrapIndex++ < d->items.count()-1){ - QmlGraphicsItem* p = d->items.takeLast(); - d->updateItem(p, 1.0); - d->releaseItem(p); - d->firstIndex--; - if (d->firstIndex < 0) - d->firstIndex = d->model->count() - 1; - QmlGraphicsItem *item = d->getItem(d->firstIndex); - item->setZValue(d->firstIndex); - if (d->currentIndex == d->firstIndex) - item->setFocus(true); - d->items.prepend(item); - d->pathOffset--; - if (d->pathOffset < 0) - d->pathOffset = d->items.count() - 1; - } - } - for (int i=0; iitems.count(); i++) - rotatedPositions[i] = positions[(i + d->pathOffset + d->items.count()) - % d->items.count()]; - } - for (int i=0; iitems.count(); i++) - d->updateItem(d->items.at(i), rotatedPositions[i]); -} - -void QmlGraphicsPathView::itemsInserted(int modelIndex, int count) -{ - //XXX support animated insertion - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - if (d->pathItems == -1) { - for (int i = 0; i < count; ++i) { - QmlGraphicsItem *item = d->getItem(modelIndex + i); - item->setZValue(modelIndex + i); - d->items.insert(modelIndex + i, item); - } - refill(); - } else { - //XXX This is pretty heavy handed until we reference count items. - d->regenerate(); - } - - // make sure the current item is still at the snap position - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) - d->moveOffset.setValue(targetOffset); -} - -void QmlGraphicsPathView::itemsRemoved(int modelIndex, int count) -{ - //XXX support animated removal - Q_D(QmlGraphicsPathView); - if (!d->isValid() || !isComponentComplete()) - return; - if (d->pathItems == -1) { - for (int i = 0; i < count; ++i) { - QmlGraphicsItem* p = d->items.takeAt(modelIndex); - d->model->release(p); - } - d->snapToCurrent(); - refill(); - } else { - d->regenerate(); - } - - if (d->model->count() == 0) { - d->currentIndex = -1; - d->moveOffset.setValue(0); - return; - } - - // make sure the current item is still at the snap position - if (d->currentIndex >= d->model->count()) - d->currentIndex = d->model->count() - 1; - int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); - itemIndex += d->pathOffset; - itemIndex %= d->items.count(); - qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset != d->_offset) - d->moveOffset.setValue(targetOffset); -} - -void QmlGraphicsPathView::createdItem(int index, QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsPathView); - if (d->requestedIndex != index) { - item->setParentItem(this); - d->updateItem(item, index < d->firstIndex ? 0.0 : 1.0); - } -} - -void QmlGraphicsPathView::destroyingItem(QmlGraphicsItem *item) -{ - Q_UNUSED(item); -} - -void QmlGraphicsPathView::ticked() -{ - Q_D(QmlGraphicsPathView); - d->updateCurrent(); -} - -// find the item closest to the snap position -int QmlGraphicsPathViewPrivate::calcCurrentIndex() -{ - int current = -1; - if (model && items.count()) { - _offset = fmod(_offset, 100.0); - if (_offset < 0) - _offset += 100.0; - - if (pathItems == -1) { - qreal delta = fmod(_offset - snapPos, 100.0); - if (delta < 0) - delta = 100.0 + delta; - int ii = model->count() - qRound(delta * model->count() / 100); - if (ii < 0) - ii = 0; - current = ii; - } else { - qreal bestDiff=1e9; - int bestI=-1; - for (int i=0; icount()); - } - - return current; -} - -void QmlGraphicsPathViewPrivate::updateCurrent() -{ - Q_Q(QmlGraphicsPathView); - if (moveReason != Mouse) - return; - int idx = calcCurrentIndex(); - if (model && idx != currentIndex) { - currentIndex = idx; - int itemIndex = (idx - firstIndex + model->count()) % model->count(); - if (itemIndex < items.count()) - items.at(itemIndex)->setFocus(true); - emit q->currentIndexChanged(); - } -} - -void QmlGraphicsPathViewPrivate::fixOffset() -{ - Q_Q(QmlGraphicsPathView); - if (model && items.count()) { - int curr = calcCurrentIndex(); - if (curr != currentIndex) - q->setCurrentIndex(curr); - else - snapToCurrent(); - } -} - -void QmlGraphicsPathViewPrivate::snapToCurrent() -{ - if (!model || model->count() <= 0) - return; - - int itemIndex = (currentIndex - firstIndex + model->count()) % model->count(); - - //Rounds is the number of times round to make the current item visible - int rounds = itemIndex / items.count(); - int otherWayRounds = (model->count() - (itemIndex)) / items.count() + 1; - if (otherWayRounds < rounds) - rounds = -otherWayRounds; - - itemIndex += pathOffset; - itemIndex %= items.count(); - qreal targetOffset = fmod(100 + (snapPos*100) - 100.0 * itemIndex / items.count(), 100); - - if (targetOffset < 0) - targetOffset = 100.0 + targetOffset; - if (targetOffset == _offset && rounds == 0) - return; - - moveReason = Other; - tl.clear(); - moveOffset.setValue(_offset); - - if (rounds!=0){ - //Compensate if the targetOffset would bring the target it from off the screen - qreal distance = targetOffset - _offset; - if (distance <= -50) - rounds--; - if (distance > 50) - rounds++; - tl.move(moveOffset, targetOffset + 100.0*(-rounds), QEasingCurve(QEasingCurve::InOutQuad), - int(100*items.count()*qMax((qreal)(2.0/items.count()),(qreal)qAbs(rounds)))); - tl.execute(fixupOffsetEvent); - return; - } - - if (targetOffset - _offset > 50.0) { - qreal distance = 100 - targetOffset + _offset; - tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * _offset / distance)); - tl.set(moveOffset, 100.0); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * (100-targetOffset) / distance)); - } else if (targetOffset - _offset <= -50.0) { - qreal distance = 100 - _offset + targetOffset; - tl.move(moveOffset, 100.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * (100-_offset) / distance)); - tl.set(moveOffset, 0.0); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * targetOffset / distance)); - } else { - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), 200); - } -} - -QHash QmlGraphicsPathView::attachedProperties; -QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) -{ - QObject *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsPathViewAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; -} - -QT_END_NAMESPACE - -#include "qmlgraphicspathview.moc" diff --git a/src/declarative/fx/qmlgraphicspathview_p.h b/src/declarative/fx/qmlgraphicspathview_p.h deleted file mode 100644 index f1fed98..0000000 --- a/src/declarative/fx/qmlgraphicspathview_p.h +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSPATHVIEW_H -#define QMLGRAPHICSPATHVIEW_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QListModelInterface; -class QmlGraphicsPathViewPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) - Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) - Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) - Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) - Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) - Q_PROPERTY(int count READ count) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) - -public: - QmlGraphicsPathView(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsPathView(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlGraphicsPath *path() const; - void setPath(QmlGraphicsPath *); - - int currentIndex() const; - void setCurrentIndex(int idx); - - qreal offset() const; - void setOffset(qreal offset); - - qreal snapPosition() const; - void setSnapPosition(qreal pos); - - qreal dragMargin() const; - void setDragMargin(qreal margin); - - int count() const; - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int pathItemCount() const; - void setPathItemCount(int); - - static QObject *qmlAttachedProperties(QObject *); - -Q_SIGNALS: - void currentIndexChanged(); - void offsetChanged(); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *); - bool sendMouseEvent(QGraphicsSceneMouseEvent *event); - bool sceneEventFilter(QGraphicsItem *, QEvent *); - void componentComplete(); - -private Q_SLOTS: - void refill(); - void ticked(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); - -private: - friend class QmlGraphicsPathViewAttached; - static QHash attachedProperties; - Q_DISABLE_COPY(QmlGraphicsPathView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPathView) -QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) -QT_END_HEADER - -#endif // QMLGRAPHICSPATHVIEW_H diff --git a/src/declarative/fx/qmlgraphicspathview_p_p.h b/src/declarative/fx/qmlgraphicspathview_p_p.h deleted file mode 100644 index a0f2a3d..0000000 --- a/src/declarative/fx/qmlgraphicspathview_p_p.h +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSPATHVIEW_P_H -#define QMLGRAPHICSPATHVIEW_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdatetime.h" -#include "qmlgraphicspathview_p.h" -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsvisualitemmodel_p.h" -#include "qml.h" -#include "private/qmlanimation_p_p.h" - -QT_BEGIN_NAMESPACE - -typedef struct PathViewItem{ - int index; - QmlGraphicsItem* item; -}PathViewItem; - -class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsPathView) - -public: - QmlGraphicsPathViewPrivate() - : path(0), currentIndex(0), startPc(0), lastDist(0) - , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) - , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) - , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) - , moveReason(Other) - { - fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); - } - - void init() - { - Q_Q(QmlGraphicsPathView); - _offset = 0; - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemIsFocusScope); - q->setFiltersChildEvents(true); - q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); - } - - QmlGraphicsItem *getItem(int modelIndex) { - Q_Q(QmlGraphicsPathView); - requestedIndex = modelIndex; - QmlGraphicsItem *item = model->item(modelIndex); - if (item) - item->setParentItem(q); - requestedIndex = -1; - return item; - } - void releaseItem(QmlGraphicsItem *item) { - model->release(item); - } - - bool isValid() const { - return model && model->count() > 0 && model->isValid() && path; - } - - int calcCurrentIndex(); - void updateCurrent(); - void fixOffset(); - void setOffset(qreal offset); - void regenerate(); - void updateItem(QmlGraphicsItem *, qreal); - void snapToCurrent(); - QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; - - QmlGraphicsPath *path; - int currentIndex; - qreal startPc; - QPointF startPoint; - qreal lastDist; - int lastElapsed; - qreal _offset; - bool stealMouse : 1; - bool ownModel : 1; - QTime lastPosTime; - QPointF lastPos; - QmlGraphicsItem *activeItem; - qreal snapPos; - qreal dragMargin; - QmlTimeLine tl; - QmlTimeLineValueProxy moveOffset; - QmlTimeLineEvent fixupOffsetEvent; - int firstIndex; - int pathItems; - int pathOffset; - int requestedIndex; - QList items; - QmlGraphicsVisualModel *model; - QVariant modelVariant; - enum MovementReason { Other, Key, Mouse }; - MovementReason moveReason; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/fx/qmlgraphicspixmapcache.cpp b/src/declarative/fx/qmlgraphicspixmapcache.cpp deleted file mode 100644 index fdf489c..0000000 --- a/src/declarative/fx/qmlgraphicspixmapcache.cpp +++ /dev/null @@ -1,282 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicspixmapcache_p.h" -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -class QSharedNetworkReply; -typedef QHash QmlGraphicsSharedNetworkReplyHash; -static QmlGraphicsSharedNetworkReplyHash qfxActiveNetworkReplies; - -class QSharedNetworkReply -{ -public: - QSharedNetworkReply(QNetworkReply *r) : reply(r), refCount(1) {} - ~QSharedNetworkReply() - { - reply->deleteLater(); - } - QNetworkReply *reply; - QPixmap pixmap; // ensure reference to pixmap to QPixmapCache does not discard - - int refCount; - void addRef() - { - ++refCount; - } - void release() - { - Q_ASSERT(refCount > 0); - --refCount; - if (refCount == 0) { - QString key = reply->url().toString(); - qfxActiveNetworkReplies.remove(key); - delete this; - } - } -}; - -static bool readImage(QIODevice *dev, QPixmap *pixmap) - { - QImageReader imgio(dev); - -//#define QT_TEST_SCALED_SIZE -#ifdef QT_TEST_SCALED_SIZE - /* - Some mechanism is needed for loading images at a limited size, especially - for remote images. Loading only thumbnails of remote progressive JPEG - images can be efficient. (Qt jpeg handler does not do so currently) - */ - - QSize limit(60,60); - QSize sz = imgio.size(); - if (sz.width() > limit.width() || sz.height() > limit.height()) { - sz.scale(limit,Qt::KeepAspectRatio); - imgio.setScaledSize(sz); - } -#endif - - QImage img; - if (imgio.read(&img)) { -#ifdef QT_TEST_SCALED_SIZE - if (!sz.isValid()) - img = img.scaled(limit,Qt::KeepAspectRatio); -#endif - *pixmap = QPixmap::fromImage(img); - return true; - } else { - qWarning() << imgio.errorString(); - return false; - } - } - -/*! - \internal - \class QmlGraphicsPixmapCache - \brief Enacapsultes a pixmap for QmlGraphics items. - - This class is NOT reentrant. - */ - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - -/*! - Finds the cached pixmap corresponding to \a url. - A previous call to get() must have requested the URL, - and the QNetworkReply must have finished before calling - this function. - - Returns true if the image was loaded without error. -*/ -bool QmlGraphicsPixmapCache::find(const QUrl& url, QPixmap *pixmap) -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer perf; -#endif - - QString key = url.toString(); - bool ok = true; - if (!QPixmapCache::find(key,pixmap)) { -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(url); - if (!lf.isEmpty()) { - QFile f(lf); - if (f.open(QIODevice::ReadOnly)) { - if (!readImage(&f, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - ok = false; - } - } else { - *pixmap = QPixmap(); - ok = false; - } - } else -#endif - { - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) { - // API usage error - qWarning() << "QmlGraphicsPixmapCache: URL not loaded" << url; - ok = false; - } else { - if ((*iter)->reply->error()) { - qWarning() << "Network error loading" << url << (*iter)->reply->errorString(); - *pixmap = QPixmap(); - ok = false; - } else if (!readImage((*iter)->reply, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - ok = false; - } else { - if ((*iter)->refCount > 1) - (*iter)->pixmap = *pixmap; - } - (*iter)->release(); - } - } - QPixmapCache::insert(key, *pixmap); - } else { - ok = !pixmap->isNull(); -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - if (url.scheme()!=QLatin1String("file")) -#endif - // We may be the second finder. Still need to check for active replies. - { - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter != qfxActiveNetworkReplies.end()) - (*iter)->release(); - } - } - return ok; -} - -/*! - Starts a network request to load \a url. - - Returns a QNetworkReply if the image is not immediately available, otherwise - returns 0. Caller should connect to QNetworkReply::finished() to then call - find() when the image is available. - - The returned QNetworkReply will be deleted when all get() calls are - matched by a corresponding find() call. -*/ -QNetworkReply *QmlGraphicsPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) -{ -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(url); - if (!lf.isEmpty()) { - QString key = url.toString(); - if (!QPixmapCache::find(key,pixmap)) { - QFile f(lf); - if (f.open(QIODevice::ReadOnly)) { - if (!readImage(&f, pixmap)) { - qWarning() << "Format error loading" << url; - *pixmap = QPixmap(); - } - } else - *pixmap = QPixmap(); - QPixmapCache::insert(key, *pixmap); - } - return 0; - } -#endif - - QString key = url.toString(); - if (QPixmapCache::find(key,pixmap)) { - return 0; - } - - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) { - QNetworkRequest req(url); - QSharedNetworkReply *item = new QSharedNetworkReply(engine->networkAccessManager()->get(req)); - iter = qfxActiveNetworkReplies.insert(key, item); - } else { - (*iter)->addRef(); - } - - return (*iter)->reply; -} - -/*! - Cancels a previous call to get(). - - May also cancel loading (eg. if no other pending request). - - Any connections from the QNetworkReply returned by get() to \a obj will be - disconnected. -*/ -void QmlGraphicsPixmapCache::cancelGet(const QUrl& url, QObject* obj) -{ - QString key = url.toString(); - QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); - if (iter == qfxActiveNetworkReplies.end()) - return; - if (obj) - QObject::disconnect((*iter)->reply, 0, obj, 0); - (*iter)->release(); -} - -/*! - This function is mainly for test verification. It returns the number of - requests that are still unfinished. -*/ -int QmlGraphicsPixmapCache::pendingRequests() -{ - return qfxActiveNetworkReplies.count(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspixmapcache_p.h b/src/declarative/fx/qmlgraphicspixmapcache_p.h deleted file mode 100644 index 29de98d..0000000 --- a/src/declarative/fx/qmlgraphicspixmapcache_p.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSPIXMAPCACHE_H -#define QMLGRAPHICSPIXMAPCACHE_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlEngine; -class QNetworkReply; -class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache -{ -public: - static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); - static void cancelGet(const QUrl& url, QObject* obj); - - static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. - - static int pendingRequests(); // mainly for test verification -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLGRAPHICSPIXMAPCACHE_H diff --git a/src/declarative/fx/qmlgraphicspositioners.cpp b/src/declarative/fx/qmlgraphicspositioners.cpp deleted file mode 100644 index ba696e7..0000000 --- a/src/declarative/fx/qmlgraphicspositioners.cpp +++ /dev/null @@ -1,921 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include -#include "qml.h" -#include -#include -#include -#include -#include -#include - - -QT_BEGIN_NAMESPACE - -/*! - \internal - \class QmlGraphicsBasePositioner - \ingroup group_layouts - \brief The QmlGraphicsBasePositioner class provides a base for QmlGraphics layouts. - - To create a QmlGraphics Positioner, simply subclass QmlGraphicsBasePositioner and implement - doLayout(), which is automatically called when the layout might need - updating. - - It is strongly recommended that in your implementation of doLayout() - that you use the move, remove and add transitions when those conditions - arise. You can use the applyAdd, applyMove and applyRemove functions - to do this easily. - - Note also that the subclass is responsible for adding the - spacing in between items. -*/ -QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(AutoUpdateType at, QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsBasePositionerPrivate), parent) -{ - Q_D(QmlGraphicsBasePositioner); - d->init(at); -} - -QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsBasePositioner); - d->init(at); -} - -int QmlGraphicsBasePositioner::spacing() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->_spacing; -} - -void QmlGraphicsBasePositioner::setSpacing(int s) -{ - Q_D(QmlGraphicsBasePositioner); - if (s==d->_spacing) - return; - d->_spacing = s; - prePositioning(); - emit spacingChanged(); -} - -QmlTransition *QmlGraphicsBasePositioner::move() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->moveTransition; -} - -void QmlGraphicsBasePositioner::setMove(QmlTransition *mt) -{ - Q_D(QmlGraphicsBasePositioner); - d->moveTransition = mt; -} - -QmlTransition *QmlGraphicsBasePositioner::add() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->addTransition; -} - -void QmlGraphicsBasePositioner::setAdd(QmlTransition *add) -{ - Q_D(QmlGraphicsBasePositioner); - d->addTransition = add; -} - -QmlTransition *QmlGraphicsBasePositioner::remove() const -{ - Q_D(const QmlGraphicsBasePositioner); - return d->removeTransition; -} - -void QmlGraphicsBasePositioner::setRemove(QmlTransition *remove) -{ - Q_D(QmlGraphicsBasePositioner); - d->removeTransition = remove; -} - -void QmlGraphicsBasePositioner::componentComplete() -{ - QmlGraphicsItem::componentComplete(); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - prePositioning(); -} - -QVariant QmlGraphicsBasePositioner::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - if (change == ItemChildAddedChange || - change == ItemChildRemovedChange) { - prePositioning(); - } - - return QmlGraphicsItem::itemChange(change, value); -} - -bool QmlGraphicsBasePositioner::event(QEvent *e) -{ - Q_D(QmlGraphicsBasePositioner); - if (e->type() == QEvent::User) { - d->_ep = false; - d->_stableItems += d->_newItems; - d->_leavingItems.clear(); - d->_newItems.clear(); - return true; - } - return QmlGraphicsItem::event(e); -} - -/*! - Items that have just been added to the positioner. This includes invisible items - that have turned visible. -*/ -QSet* QmlGraphicsBasePositioner::newItems() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_newItems; -} - -/*! - Items that are visible in the positioner, not including ones that have just been added. -*/ -QSet* QmlGraphicsBasePositioner::items() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_stableItems; -} - -/*! - Items that have just left the positioner. This includes visible items - that have turned invisible. -*/ -QSet* QmlGraphicsBasePositioner::leavingItems() -{ - Q_D(QmlGraphicsBasePositioner); - return &d->_leavingItems; -} - -void QmlGraphicsBasePositioner::prePositioning() -{ - Q_D(QmlGraphicsBasePositioner); - if (!isComponentComplete() || d->_movingItem) - return; - - if (!d->_ep) { - d->_ep = true; - QCoreApplication::postEvent(this, new QEvent(QEvent::User)); - } - QSet allItems; - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child) - continue; - if (!d->_items.contains(child)){ - QObject::connect(child, SIGNAL(visibleChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(opacityChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(heightChanged()), - this, SLOT(prePositioning())); - QObject::connect(child, SIGNAL(widthChanged()), - this, SLOT(prePositioning())); - d->_items += child; - } - if (child->opacity() == 0.0){ - if (d->_stableItems.contains(child)){ - d->_leavingItems += child; - d->_stableItems -= child; - } - }else if (!d->_stableItems.contains(child)){ - d->_newItems+=child; - } - allItems += child; - } - QSet deletedItems = d->_items - allItems; - foreach(QmlGraphicsItem *child, d->_items){ - if (!allItems.contains(child)){ - if (!deletedItems.contains(child)) { - QObject::disconnect(child, SIGNAL(opacityChanged()), - this, SLOT(prePositioning())); - QObject::disconnect(child, SIGNAL(heightChanged()), - this, SLOT(prePositioning())); - QObject::disconnect(child, SIGNAL(widthChanged()), - this, SLOT(prePositioning())); - } - d->_items -= child; - } - } - d->_animated.clear(); - doPositioning(); - finishApplyTransitions(); - //Set implicit size to the size of its children - //###To keep this valid, do we need to update on pos change as well? - qreal h = 0.0f; - qreal w = 0.0f; - foreach(QmlGraphicsItem *child, d->_items){ - if(!child->isVisible() || child->opacity() <= 0) - continue; - h = qMax(h, child->y() + child->height()); - w = qMax(w, child->x() + child->width()); - } - setImplicitHeight(h); - setImplicitWidth(w); -} - -void QmlGraphicsBasePositioner::applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions) -{ - Q_D(QmlGraphicsBasePositioner); - if (!target) - return; - - for (int ii=0; ii_animated << target; -} - -void QmlGraphicsBasePositioner::finishApplyTransitions() -{ - Q_D(QmlGraphicsBasePositioner); - // Note that if a transition is not set the transition manager will - // apply the changes directly, in the case someone uses applyAdd/Move/Remove - // without testing add()/move()/remove(). - d->addTransitionManager.transition(d->addActions, d->addTransition); - d->moveTransitionManager.transition(d->moveActions, d->moveTransition); - d->removeTransitionManager.transition(d->removeActions, d->removeTransition); - d->addActions.clear(); - d->moveActions.clear(); - d->removeActions.clear(); -} -void QmlGraphicsBasePositioner::setMovingItem(QmlGraphicsItem *i) -{ - Q_D(QmlGraphicsBasePositioner); - d->_movingItem = i; -} - -/*! - Applies the positioner's add transition to the \a target item.\a changes is a list of property,value - pairs which will be changed on the target using the add transition. -*/ -void QmlGraphicsBasePositioner::applyAdd(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->addActions); -} - -/*! - Applies the positioner's move transition to the \a target.\a changes is a list of property,value pairs - which will be changed on the target using the move transition. -*/ -void QmlGraphicsBasePositioner::applyMove(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->moveActions); -} - -/*! - Applies the positioner's remove transition to the \a target item.\a changes is a list of - property,value pairs which will be changed on the target using the remove transition. -*/ -void QmlGraphicsBasePositioner::applyRemove(const QList >& changes, QmlGraphicsItem* target) -{ - Q_D(QmlGraphicsBasePositioner); - applyTransition(changes,target, d->removeActions); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QmlGraphicsColumn) -/*! - \qmlclass Column QFxColumn - \brief The Column item lines up its children vertically. - \inherits Item - - The Column item positions its child items so that they are vertically - aligned and not overlapping. Spacing between items can be added. - - The below example positions differently shaped rectangles using a Column. - \table - \row - \o \image verticalpositioner_example.png - \o - \qml -Column { - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } -} - \endqml - \endtable - - Column also provides for transitions to be set when items are added, moved, - or removed in the positioner. Adding and removing apply both to items which are deleted - or have their position in the document changed so as to no longer be children of the positioner, - as well as to items which have their opacity set to or from zero so as to appear or disappear. - - \table - \row - \o \image verticalpositioner_transition.gif - \o - \qml -Column { - spacing: 2 - remove: ... - add: ... - move: ... - ... -} - \endqml - \endtable - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. - -*/ -/*! - \qmlproperty Transition Column::remove - This property holds the transition to apply when removing an item from the positioner. The transition is only applied to the removed items. - - Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. - - Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. - - \table - \row - \o \image positioner-remove.gif - \o - \qml -Column { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - \endtable - -*/ -/*! - \qmlproperty Transition Column::add - This property holds the transition to be applied when adding an item to the positioner. The transition will only be applied to the added item(s). - - Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. - - \table - \row - \o \image positioner-add.gif - \o - \qml -Column { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - \endtable - -*/ -/*! - \qmlproperty Transition Column::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or when items resize themselves. - - \table - \row - \o \image positioner-move.gif - \o - \qml -Column { - move: Transition { - NumberAnimation { - properties: "y" - ease: "easeOutBounce" - } - } -} - \endqml - \endtable -*/ -/*! - \qmlproperty int Column::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsColumn - \brief The QmlGraphicsColumn class lines up items vertically. - \ingroup group_positioners -*/ -QmlGraphicsColumn::QmlGraphicsColumn(QmlGraphicsItem *parent) -: QmlGraphicsBasePositioner(Vertical, parent) -{ -} - -void QmlGraphicsColumn::doPositioning() -{ - int voffset = 0; - - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child || child->opacity() == 0.0) - continue; - - bool needMove = (child->y() != voffset || child->x()); - - QList > changes; - changes << qMakePair(QString(QLatin1String("y")),QVariant(voffset)); - changes << qMakePair(QString(QLatin1String("x")),QVariant(0)); - if (needMove && items()->contains(child) && move()) { - applyMove(changes,child); - } else if (!items()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - setMovingItem(child); - child->setY(voffset); - setMovingItem(0); - } - voffset += child->height(); - voffset += spacing(); - } -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QmlGraphicsRow) -/*! - \qmlclass Row QFxRow - \brief The Row item lines up its children horizontally. - \inherits Item - - The Row item positions its child items so that they are - horizontally aligned and not overlapping. Spacing can be added between the - items, and a margin around all items can also be added. It also provides for - transitions to be set when items are added, moved, or removed in the - positioner. Adding and removing apply both to items which are deleted or have - their position in the document changed so as to no longer be children of the - positioner, as well as to items which have their opacity set to or from zero - so as to appear or disappear. - - The below example lays out differently shaped rectangles using a Row. - \qml -Row { - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } -} - \endqml - \image horizontalpositioner_example.png - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. - -*/ -/*! - \qmlproperty Transition Row::remove - This property holds the transition to apply when removing an item from the positioner. - The transition will only be applied to the removed item(s). - - Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. - - Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. - - \qml -Row { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Row::add - This property holds the transition to apply when adding an item to the positioner. - The transition will only be applied to the added item(s). - - Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. - - \qml -Row { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Row::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or when items resize themselves. - - \qml -Row { - id: positioner - move: Transition { - NumberAnimation { - properties: "x" - ease: "easeOutBounce" - } - } -} - \endqml - -*/ -/*! - \qmlproperty int Row::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsRow - \brief The QmlGraphicsRow class lines up items horizontally. - \ingroup group_positioners -*/ -QmlGraphicsRow::QmlGraphicsRow(QmlGraphicsItem *parent) -: QmlGraphicsBasePositioner(Horizontal, parent) -{ -} - -void QmlGraphicsRow::doPositioning() -{ - int hoffset = 0; - - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - QList children = childItems(); - for (int ii = 0; ii < children.count(); ++ii) { - QmlGraphicsItem *child = qobject_cast(children.at(ii)); - if (!child || child->opacity() == 0.0) - continue; - - bool needMove = (child->x() != hoffset || child->y()); - - QList > changes; - changes << qMakePair(QString(QLatin1String("x")),QVariant(hoffset)); - changes << qMakePair(QString(QLatin1String("y")),QVariant(0)); - if (needMove && items()->contains(child) && move()) { - applyMove(changes,child); - } else if (!items()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - setMovingItem(child); - child->setX(hoffset); - setMovingItem(0); - } - if(child->width() && child->height()){//don't advance for invisible children - hoffset += child->width(); - hoffset += spacing(); - } - } -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QmlGraphicsGrid) - -/*! - \qmlclass Grid QmlGraphicsGrid - \brief The Grid item positions its children in a grid. - \inherits Item - - The Grid item positions its child items so that they are - aligned in a grid and are not overlapping. Spacing can be added - between the items. It also provides for transitions to be set when items are - added, moved, or removed in the positioner. Adding and removing apply - both to items which are deleted or have their position in the - document changed so as to no longer be children of the positioner, as - well as to items which have their opacity set to or from zero so - as to appear or disappear. - - The Grid defaults to using four columns, and as many rows as - are necessary to fit all the child items. The number of rows - and/or the number of columns can be constrained by setting the rows - or columns properties. The grid positioner calculates a grid with - rectangular cells of sufficient size to hold all items, and then - places the items in the cells, going across then down, and - positioning each item at the (0,0) corner of the cell. The below - example demonstrates this. - - \table - \row - \o \image gridLayout_example.png - \o - \qml -Grid { - columns: 3 - spacing: 2 - Rectangle { color: "red"; width: 50; height: 50 } - Rectangle { color: "green"; width: 20; height: 50 } - Rectangle { color: "blue"; width: 50; height: 20 } - Rectangle { color: "cyan"; width: 50; height: 50 } - Rectangle { color: "magenta"; width: 10; height: 10 } -} - \endqml - \endtable - - Note that the positioner assumes that the x and y positions of its children - will not change. If you manually change the x or y properties in script, bind - the x or y properties, or use anchors on a child of a positioner, then the - positioner may exhibit strange behaviour. -*/ -/*! - \qmlproperty Transition Grid::remove - This property holds the transition to apply when removing an item from the positioner. - The transition is only applied to the removed item(s). - - Removed can mean that either the object has been deleted or - reparented, and thus is now longer a child of the positioner, or that - the object has had its opacity set to zero, and thus is no longer - visible. - - Note that if the item counts as removed because its opacity is - zero it will not be visible during the transition unless you set - the opacity in the transition, like in the below example. - - \qml -Grid { - remove: Transition { - NumberAnimation { - properties: "opacity" - from: 1 - to: 0 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Grid::add - This property holds the transition to apply when adding an item to the positioner. - The transition is only applied to the added item(s). - - Added can mean that either the object has been created or - reparented, and thus is now a child or the positioner, or that the - object has had its opacity increased from zero, and thus is now - visible. - - \qml -Grid { - add: Transition { - NumberAnimation { - properties: "opacity" - from: 0 - to: 1 - duration: 500 - } - } -} - \endqml - -*/ -/*! - \qmlproperty Transition Grid::move - This property holds the transition to apply when moving an item within the positioner. - - This can happen when other items are added or removed from the positioner, or - when items resize themselves. - - \qml -Grid { - move: Transition { - NumberAnimation { - properties: "x,y" - ease: "easeOutBounce" - } - } -} - \endqml - -*/ -/*! - \qmlproperty int Grid::spacing - - spacing is the amount in pixels left empty between each adjacent - item, and defaults to 0. - - The below example places a Grid containing a red, a blue and a - green rectangle on a gray background. The area the grid positioner - occupies is colored white. The top positioner has the default of no spacing, - and the bottom positioner has its spacing set to 2. - - \image spacing_a.png - \image spacing_b.png - -*/ -/*! - \internal - \class QmlGraphicsGrid - \brief The QmlGraphicsGrid class lays out items in a grid. - \ingroup group_layouts - -*/ -QmlGraphicsGrid::QmlGraphicsGrid(QmlGraphicsItem *parent) : - QmlGraphicsBasePositioner(Both, parent) -{ - _columns=-1; - _rows=-1; -} - -/*! - \qmlproperty int Grid::columns - This property holds the number of columns in the grid. - - When the columns property is set the Grid will always have - that many columns. Note that if you do not have enough items to - fill this many columns some columns will be of zero width. -*/ - -/*! - \qmlproperty int Grid::rows - This property holds the number of rows in the grid. - - When the rows property is set the Grid will always have that - many rows. Note that if you do not have enough items to fill this - many rows some rows will be of zero width. -*/ - -void QmlGraphicsGrid::doPositioning() -{ - int c=_columns,r=_rows;//Actual number of rows/columns - int numVisible = items()->size() + newItems()->size(); - if (_columns==-1 && _rows==-1){ - c = 4; - r = (numVisible+3)/4; - }else if (_rows==-1){ - r = (numVisible+(_columns-1))/_columns; - }else if (_columns==-1){ - c = (numVisible+(_rows-1))/_rows; - } - - QList maxColWidth; - QList maxRowHeight; - int childIndex =0; - QList children = childItems(); - for (int i=0; i(children.at(childIndex++)); - if (!child || child->opacity() == 0.0) - continue; - if (child->width() > maxColWidth[j]) - maxColWidth[j] = child->width(); - if (child->height() > maxRowHeight[i]) - maxRowHeight[i] = child->height(); - } - } - - int xoffset=0; - int yoffset=0; - int curRow =0; - int curCol =0; - foreach(QmlGraphicsItem* item, *leavingItems()){ - if (remove()){ - QList > changes; - applyRemove(changes, item); - } - } - foreach(QGraphicsItem* schild, children){ - QmlGraphicsItem *child = qobject_cast(schild); - if (!child || child->opacity() == 0.0) - continue; - bool needMove = (child->x()!=xoffset)||(child->y()!=yoffset); - QList > changes; - changes << qMakePair(QString(QLatin1String("x")),QVariant(xoffset)); - changes << qMakePair(QString(QLatin1String("y")),QVariant(yoffset)); - if (newItems()->contains(child) && add()) { - applyAdd(changes,child); - } else if (needMove) { - if (move()){ - applyMove(changes,child); - }else{ - setMovingItem(child); - child->setPos(QPointF(xoffset, yoffset)); - setMovingItem(0); - } - } - xoffset+=maxColWidth[curCol]+spacing(); - curCol++; - curCol%=c; - if (!curCol){ - yoffset+=maxRowHeight[curRow]+spacing(); - xoffset=0; - curRow++; - if (curRow>=r) - break; - } - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicspositioners_p.h b/src/declarative/fx/qmlgraphicspositioners_p.h deleted file mode 100644 index 0011ec5..0000000 --- a/src/declarative/fx/qmlgraphicspositioners_p.h +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSLAYOUTS_H -#define QMLGRAPHICSLAYOUTS_H - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsBasePositionerPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) - Q_PROPERTY(QmlTransition *move READ move WRITE setMove) - Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) - Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) -public: - enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; - QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); - - int spacing() const; - void setSpacing(int); - - QmlTransition *move() const; - void setMove(QmlTransition *); - - QmlTransition *add() const; - void setAdd(QmlTransition *); - - QmlTransition *remove() const; - void setRemove(QmlTransition *); - -protected: - virtual void componentComplete(); - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); - virtual bool event(QEvent *); - QSet* newItems(); - QSet* leavingItems(); - QSet* items(); - void applyAdd(const QList >& changes, QmlGraphicsItem* target); - void applyMove(const QList >& changes, QmlGraphicsItem* target); - void applyRemove(const QList >& changes, QmlGraphicsItem* target); - void finishApplyTransitions(); - -Q_SIGNALS: - void layoutItemChanged(); - void spacingChanged(); - -protected Q_SLOTS: - virtual void doPositioning()=0; - -private Q_SLOTS: - void prePositioning(); - -protected: - QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); - void setMovingItem(QmlGraphicsItem *); - -private: - void applyTransition(const QList >& changes, QmlGraphicsItem* target, - QmlStateOperation::ActionList &actions); - Q_DISABLE_COPY(QmlGraphicsBasePositioner) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsColumn(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsColumn) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner -{ - Q_OBJECT -public: - QmlGraphicsRow(QmlGraphicsItem *parent=0); -protected Q_SLOTS: - virtual void doPositioning(); -private: - Q_DISABLE_COPY(QmlGraphicsRow) -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner -{ - Q_OBJECT - Q_PROPERTY(int rows READ rows WRITE setRows) - Q_PROPERTY(int columns READ columns WRITE setcolumns) -public: - QmlGraphicsGrid(QmlGraphicsItem *parent=0); - - int rows() const {return _rows;} - void setRows(const int rows){_rows = rows;} - - int columns() const {return _columns;} - void setcolumns(const int columns){_columns = columns;} -protected Q_SLOTS: - virtual void doPositioning(); - -private: - int _rows; - int _columns; - Q_DISABLE_COPY(QmlGraphicsGrid) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsColumn) -QML_DECLARE_TYPE(QmlGraphicsRow) -QML_DECLARE_TYPE(QmlGraphicsGrid) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicspositioners_p_p.h b/src/declarative/fx/qmlgraphicspositioners_p_p.h deleted file mode 100644 index 61b4497..0000000 --- a/src/declarative/fx/qmlgraphicspositioners_p_p.h +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSLAYOUTS_P_H -#define QMLGRAPHICSLAYOUTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) - -public: - QmlGraphicsBasePositionerPrivate() - : _ep(false), _componentComplete(false), _spacing(0), - aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), - removeTransition(0), _movingItem(0) - { - } - - void init(QmlGraphicsBasePositioner::AutoUpdateType at) - { - aut = at; - } - - bool _ep; - bool _componentComplete; - int _spacing; - QmlGraphicsBasePositioner::AutoUpdateType aut; - QmlTransition *moveTransition; - QmlTransition *addTransition; - QmlTransition *removeTransition; - QSet _items; - QSet _leavingItems; - QSet _stableItems; - QSet _newItems; - QSet _animated; - QmlStateOperation::ActionList addActions; - QmlStateOperation::ActionList moveActions; - QmlStateOperation::ActionList removeActions; - QmlTransitionManager addTransitionManager; - QmlTransitionManager moveTransitionManager; - QmlTransitionManager removeTransitionManager; -// QmlStateGroup *stateGroup; - QmlGraphicsItem *_movingItem; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicsrect.cpp b/src/declarative/fx/qmlgraphicsrect.cpp deleted file mode 100644 index 605e82c..0000000 --- a/src/declarative/fx/qmlgraphicsrect.cpp +++ /dev/null @@ -1,475 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsrect_p.h" -#include "qmlgraphicsrect_p_p.h" - -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QmlGraphicsPen) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QmlGraphicsGradientStop) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QmlGraphicsGradient) - -/*! - \internal - \class QmlGraphicsPen - \brief The QmlGraphicsPen class provides a pen used for drawing rectangle borders on a QmlView. - - By default, the pen is invalid and nothing is drawn. You must either set a color (then the default - width is 1) or a width (then the default color is black). - - A width of 1 indicates is a single-pixel line on the border of the item being painted. - - Example: - \qml - Rectangle { border.width: 2; border.color: "red" ... } - \endqml -*/ - -void QmlGraphicsPen::setColor(const QColor &c) -{ - _color = c; - _valid = _color.alpha() ? true : false; - emit penChanged(); -} - -void QmlGraphicsPen::setWidth(int w) -{ - if (_width == w && _valid) - return; - - _width = w; - _valid = (_width < 1) ? false : true; - emit penChanged(); -} - - -/*! - \qmlclass GradientStop QmlGraphicsGradientStop - \brief The GradientStop item defines the color at a position in a Gradient - - \sa Gradient -*/ - -/*! - \qmlproperty real GradientStop::position - \qmlproperty color GradientStop::color - - Sets a \e color at a \e position in a gradient. -*/ - -void QmlGraphicsGradientStop::updateGradient() -{ - if (QmlGraphicsGradient *grad = qobject_cast(parent())) - grad->doUpdate(); -} - -/*! - \qmlclass Gradient QmlGraphicsGradient - \brief The Gradient item defines a gradient fill. - - A gradient is defined by two or more colors, which will be blended seemlessly. The - colors are specified at their position in the range 0.0 - 1.0 via - the GradientStop item. For example, the following code paints a - rectangle with a gradient starting with red, blending to yellow at 1/3 of the - size of the rectangle, and ending with Green: - - \table - \row - \o \image gradient.png - \o \quotefile doc/src/snippets/declarative/gradient.qml - \endtable - - \sa GradientStop -*/ - -/*! - \qmlproperty list Gradient::stops - This property holds the gradient stops describing the gradient. -*/ - -const QGradient *QmlGraphicsGradient::gradient() const -{ - if (!m_gradient && !m_stops.isEmpty()) { - m_gradient = new QLinearGradient(0,0,0,1.0); - for (int i = 0; i < m_stops.count(); ++i) { - const QmlGraphicsGradientStop *stop = m_stops.at(i); - m_gradient->setCoordinateMode(QGradient::ObjectBoundingMode); - m_gradient->setColorAt(stop->position(), stop->color()); - } - } - - return m_gradient; -} - -void QmlGraphicsGradient::doUpdate() -{ - delete m_gradient; - m_gradient = 0; - emit updated(); -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QmlGraphicsRect) - -/*! - \qmlclass Rectangle QmlGraphicsRect - \brief The Rectangle item allows you to add rectangles to a scene. - \inherits Item - - A Rectangle is painted having a solid fill (color) and an optional border. - You can also create rounded rectangles using the radius property. - - \qml - Rectangle { - width: 100 - height: 100 - color: "red" - border.color: "black" - border.width: 5 - radius: 10 - } - \endqml - - \image declarative-rect.png -*/ - -/*! - \internal - \class QmlGraphicsRect - \brief The QmlGraphicsRect class provides a rectangle item that you can add to a QmlView. -*/ -QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsRectPrivate), parent) -{ - Q_D(QmlGraphicsRect); - d->init(); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - Q_D(QmlGraphicsRect); - d->init(); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -void QmlGraphicsRect::doUpdate() -{ - Q_D(QmlGraphicsRect); - d->rectImage = QPixmap(); - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - d->setPaintMargin((pw+1)/2); - update(); -} - -/*! - \qmlproperty int Rectangle::border.width - \qmlproperty color Rectangle::border.color - - The width and color used to draw the border of the rectangle. - - A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color. - - To keep the border smooth (rather than blurry), odd widths cause the rectangle to be painted at - a half-pixel offset; -*/ -QmlGraphicsPen *QmlGraphicsRect::border() -{ - Q_D(QmlGraphicsRect); - return d->getPen(); -} - -/*! - \qmlproperty Gradient Rectangle::gradient - - The gradient to use to fill the rectangle. - - This property allows for the construction of simple vertical gradients. - Other gradients may by formed by adding rotation to the rectangle. - - \table - \row - \o \image declarative-rect_gradient.png - \o - \qml - Rectangle { y: 0; width: 80; height: 80; color: "lightsteelblue" } - Rectangle { y: 100; width: 80; height: 80 - gradient: Gradient { - GradientStop { position: 0.0; color: "lightsteelblue" } - GradientStop { position: 1.0; color: "blue" } - } - } - Rectangle { rotation: 90; x: 80; y: 200; width: 80; height: 80 - gradient: Gradient { - GradientStop { position: 0.0; color: "lightsteelblue" } - GradientStop { position: 1.0; color: "blue" } - } - } - // The x offset is needed because the rotation is from the top left corner - \endqml - \endtable - - If both a gradient and a color are specified, the gradient will be used. - - \sa Gradient, color -*/ -QmlGraphicsGradient *QmlGraphicsRect::gradient() const -{ - Q_D(const QmlGraphicsRect); - return d->gradient; -} - -void QmlGraphicsRect::setGradient(QmlGraphicsGradient *gradient) -{ - Q_D(QmlGraphicsRect); - if (d->gradient == gradient) - return; - if (d->gradient) - disconnect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); - d->gradient = gradient; - if (d->gradient) - connect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); - update(); -} - - -/*! - \qmlproperty real Rectangle::radius - This property holds the corner radius used to draw a rounded rectangle. - - If radius is non-zero, the rectangle will be painted as a rounded rectangle, otherwise it will be - painted as a normal rectangle. The same radius is used by all 4 corners; there is currently - no way to specify different radii for different corners. -*/ -qreal QmlGraphicsRect::radius() const -{ - Q_D(const QmlGraphicsRect); - return d->radius; -} - -void QmlGraphicsRect::setRadius(qreal radius) -{ - Q_D(QmlGraphicsRect); - if (d->radius == radius) - return; - - d->radius = radius; - d->rectImage = QPixmap(); - update(); - emit radiusChanged(); -} - -/*! - \qmlproperty color Rectangle::color - This property holds the color used to fill the rectangle. - - \qml - // green rectangle using hexidecimal notation - Rectangle { color: "#00FF00" } - - // steelblue rectangle using SVG color name - Rectangle { color: "steelblue" } - \endqml - - The default color is white. - - If both a gradient and a color are specified, the gradient will be used. -*/ -QColor QmlGraphicsRect::color() const -{ - Q_D(const QmlGraphicsRect); - return d->color; -} - -void QmlGraphicsRect::setColor(const QColor &c) -{ - Q_D(QmlGraphicsRect); - if (d->color == c) - return; - - d->color = c; - d->rectImage = QPixmap(); - update(); - emit colorChanged(); -} - -void QmlGraphicsRect::generateRoundedRect() -{ - Q_D(QmlGraphicsRect); - if (d->rectImage.isNull()) { - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - const int radius = qCeil(d->radius); //ensure odd numbered width/height so we get 1-pixel center - d->rectImage = QPixmap(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2); - d->rectImage.fill(Qt::transparent); - QPainter p(&(d->rectImage)); - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(d->color); - if (pw%2) - p.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1)), d->radius, d->radius); - else - p.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw), d->radius, d->radius); - } -} - -void QmlGraphicsRect::generateBorderedRect() -{ - Q_D(QmlGraphicsRect); - if (d->rectImage.isNull()) { - const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; - d->rectImage = QPixmap(pw*2 + 3, pw*2 + 3); - d->rectImage.fill(Qt::transparent); - QPainter p(&(d->rectImage)); - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - pn.setJoinStyle(Qt::MiterJoin); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(d->color); - if (pw%2) - p.drawRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1))); - else - p.drawRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw)); - } -} - -void QmlGraphicsRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsRect); - if (d->radius > 0 || (d->pen && d->pen->isValid()) - || (d->gradient && d->gradient->gradient()) ) { - drawRect(*p); - } - else { - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing, true); - p->fillRect(QRectF(0, 0, width(), height()), d->color); - if (d->smooth) - p->setRenderHint(QPainter::Antialiasing, oldAA); - } -} - -void QmlGraphicsRect::drawRect(QPainter &p) -{ - Q_D(QmlGraphicsRect); - if (d->gradient && d->gradient->gradient()) { - // XXX This path is still slower than the image path - // Image path won't work for gradients though - bool oldAA = p.testRenderHint(QPainter::Antialiasing); - if (d->smooth) - p.setRenderHint(QPainter::Antialiasing); - if (d->pen && d->pen->isValid()) { - QPen pn(QColor(d->pen->color()), d->pen->width()); - p.setPen(pn); - } else { - p.setPen(Qt::NoPen); - } - p.setBrush(*d->gradient->gradient()); - if (d->radius > 0.) - p.drawRoundedRect(0, 0, width(), height(), d->radius, d->radius); - else - p.drawRect(0, 0, width(), height()); - if (d->smooth) - p.setRenderHint(QPainter::Antialiasing, oldAA); - } else { - bool oldAA = p.testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - const int pw = d->pen && d->pen->isValid() ? (d->pen->width()+1)/2*2 : 0; - - if (d->radius > 0) - generateRoundedRect(); - else - generateBorderedRect(); - - int xOffset = (d->rectImage.width()-1)/2; - int yOffset = (d->rectImage.height()-1)/2; - Q_ASSERT(d->rectImage.width() == 2*xOffset + 1); - Q_ASSERT(d->rectImage.height() == 2*yOffset + 1); - - QMargins margins(xOffset, yOffset, xOffset, yOffset); - QTileRules rules(Qt::StretchTile, Qt::StretchTile); - //NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects - qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width()+pw, height()+pw), margins, d->rectImage, d->rectImage.rect(), margins, rules); - - if (d->smooth) { - p.setRenderHint(QPainter::Antialiasing, oldAA); - p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } - } -} - -/*! - \qmlproperty bool Rectangle::smooth - - Set this property if you want the item to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. - - \image rect-smooth.png -*/ - -QRectF QmlGraphicsRect::boundingRect() const -{ - Q_D(const QmlGraphicsRect); - return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsrect_p.h b/src/declarative/fx/qmlgraphicsrect_p.h deleted file mode 100644 index 97334fd..0000000 --- a/src/declarative/fx/qmlgraphicsrect_p.h +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSRECT_H -#define QMLGRAPHICSRECT_H - -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) -public: - QmlGraphicsPen(QObject *parent=0) - : QObject(parent), _width(1), _color("#000000"), _valid(false) - {} - - int width() const { return _width; } - void setWidth(int w); - - QColor color() const { return _color; } - void setColor(const QColor &c); - - bool isValid() { return _valid; }; - -Q_SIGNALS: - void penChanged(); - -private: - int _width; - QColor _color; - bool _valid; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject -{ - Q_OBJECT - - Q_PROPERTY(qreal position READ position WRITE setPosition) - Q_PROPERTY(QColor color READ color WRITE setColor) - -public: - QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} - - qreal position() const { return m_position; } - void setPosition(qreal position) { m_position = position; updateGradient(); } - - QColor color() const { return m_color; } - void setColor(const QColor &color) { m_color = color; updateGradient(); } - -private: - void updateGradient(); - -private: - qreal m_position; - QColor m_color; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QList *stops READ stops) - Q_CLASSINFO("DefaultProperty", "stops") - -public: - QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} - ~QmlGraphicsGradient() { delete m_gradient; } - - QList *stops() { return &m_stops; } - - const QGradient *gradient() const; - -Q_SIGNALS: - void updated(); - -private: - void doUpdate(); - -private: - QList m_stops; - mutable QGradient *m_gradient; - friend class QmlGraphicsGradientStop; -}; - -class QmlGraphicsRectPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) - Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) - Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) -public: - QmlGraphicsRect(QmlGraphicsItem *parent=0); - - QColor color() const; - void setColor(const QColor &); - - QmlGraphicsPen *border(); - - QmlGraphicsGradient *gradient() const; - void setGradient(QmlGraphicsGradient *gradient); - - qreal radius() const; - void setRadius(qreal radius); - - QRectF boundingRect() const; - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - -Q_SIGNALS: - void colorChanged(); - void radiusChanged(); - -private Q_SLOTS: - void doUpdate(); - -private: - void generateRoundedRect(); - void generateBorderedRect(); - void drawRect(QPainter &painter); - -protected: - QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); - -private: - Q_DISABLE_COPY(QmlGraphicsRect) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsPen) -QML_DECLARE_TYPE(QmlGraphicsGradientStop) -QML_DECLARE_TYPE(QmlGraphicsGradient) -QML_DECLARE_TYPE(QmlGraphicsRect) - -QT_END_HEADER - -#endif // QMLGRAPHICSRECT_H diff --git a/src/declarative/fx/qmlgraphicsrect_p_p.h b/src/declarative/fx/qmlgraphicsrect_p_p.h deleted file mode 100644 index f44e8de..0000000 --- a/src/declarative/fx/qmlgraphicsrect_p_p.h +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (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 either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSRECT_P_H -#define QMLGRAPHICSRECT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" - -QT_BEGIN_NAMESPACE - -class QmlGraphicsGradient; -class QmlGraphicsRect; -class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsRect) - -public: - QmlGraphicsRectPrivate() : - color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) - { - } - - ~QmlGraphicsRectPrivate() - { - delete pen; - } - - void init() - { - } - - QColor getColor(); - QColor color; - QmlGraphicsGradient *gradient; - QmlGraphicsPen *getPen() { - if (!pen) { - Q_Q(QmlGraphicsRect); - pen = new QmlGraphicsPen; - QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); - } - return pen; - } - QmlGraphicsPen *pen; - qreal radius; - qreal paintmargin; - QPixmap rectImage; - - void setPaintMargin(qreal margin) - { - Q_Q(QmlGraphicsRect); - if (margin == paintmargin) - return; - q->prepareGeometryChange(); - paintmargin = margin; - } -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSRECT_P_H diff --git a/src/declarative/fx/qmlgraphicsrepeater.cpp b/src/declarative/fx/qmlgraphicsrepeater.cpp deleted file mode 100644 index ba860e9..0000000 --- a/src/declarative/fx/qmlgraphicsrepeater.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicsrepeater_p.h" -#include "qmlgraphicsrepeater_p_p.h" -#include -#include -#include - - -QT_BEGIN_NAMESPACE -QmlGraphicsRepeaterPrivate::QmlGraphicsRepeaterPrivate() -: model(0), ownModel(false) -{ -} - -QmlGraphicsRepeaterPrivate::~QmlGraphicsRepeaterPrivate() -{ -} - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QmlGraphicsRepeater) - -/*! - \qmlclass Repeater QFxRepeater - \inherits Item - - \brief The Repeater item allows you to repeat a component based on a model. - - The Repeater item is used when you want to create a large number of - similar items. For each entry in the model, an item is instantiated - in a context seeded with data from the model. If the repeater will - be instantiating a large number of instances, it may be more efficient to - use one of Qt Declarative's \l {xmlViews}{view items}. - - The model may be either an object list, a string list, a number or a Qt model. - In each case, the data element and the index is exposed to each instantiated - component. - - The index is always exposed as an accessible \c index property. - In the case of an object or string list, the data element (of type string - or object) is available as the \c modelData property. In the case of a Qt model, - all roles are available as named properties just like in the view classes. The - following example shows how to use the index property inside the instantiated - items. - - \snippet doc/src/snippets/declarative/repeater-index.qml 0 - - \image repeater-index.png - - Items instantiated by the Repeater are inserted, in order, as - children of the Repeater's parent. The insertion starts immediately after - the repeater's position in its parent stacking list. This is to allow - you to use a Repeater inside a layout. The following QML example shows how - the instantiated items would visually appear stacked between the red and - blue rectangles. - - \snippet doc/src/snippets/declarative/repeater.qml 0 - - \image repeater.png - - The repeater instance continues to own all items it instantiates, even - if they are otherwise manipulated. It is illegal to manually remove an item - created by the Repeater. - */ - -/*! - \internal - \class QmlGraphicsRepeater - \qmlclass Repeater - - XXX Repeater is very conservative in how it instatiates/deletes items. Also - new model entries will not be created and old ones will not be removed. - */ - -/*! - Create a new QmlGraphicsRepeater instance. - */ -QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsRepeaterPrivate), parent) -{ -} - -/*! - \internal - */ -QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ -} - -/*! - Destroy the repeater instance. All items it instantiated are also - destroyed. - */ -QmlGraphicsRepeater::~QmlGraphicsRepeater() -{ -} - -/*! - \qmlproperty any Repeater::model - - The model providing data for the repeater. - - The model may be either an object list, a string list, a number or a Qt model. - In each case, the data element and the index is exposed to each instantiated - component. The index is always exposed as an accessible \c index property. - In the case of an object or string list, the data element (of type string - or object) is available as the \c modelData property. In the case of a Qt model, - all roles are available as named properties just like in the view classes. - - As a special case the model can also be merely a number. In this case it will - create that many instances of the component. They will also be assigned an index - based on the order they are created. - - Models can also be created directly in QML, using a \l{ListModel} or \l{XmlListModel}. - - \sa {qmlmodels}{Data Models} -*/ -QVariant QmlGraphicsRepeater::model() const -{ - Q_D(const QmlGraphicsRepeater); - return d->dataSource; -} - -void QmlGraphicsRepeater::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsRepeater); - clear(); - if (d->model) { - disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - /* - disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - */ - } - d->dataSource = model; - QObject *object = qvariant_cast(model); - QmlGraphicsVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { - if (d->ownModel) { - delete d->model; - d->ownModel = false; - } - d->model = vim; - } else { - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - dataModel->setModel(model); - } - if (d->model) { - connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); - connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); - connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); - /* - connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); - connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); - */ - regenerate(); - emit countChanged(); - } -} - -/*! - \qmlproperty Component Repeater::delegate - \default - - The delegate provides a template describing what each item instantiated by the repeater should look and act like. - */ -QmlComponent *QmlGraphicsRepeater::delegate() const -{ - Q_D(const QmlGraphicsRepeater); - if (d->model) { - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) - return dataModel->delegate(); - } - - return 0; -} - -void QmlGraphicsRepeater::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsRepeater); - if (!d->ownModel) { - d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); - d->ownModel = true; - } - if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { - dataModel->setDelegate(delegate); - regenerate(); - } -} - -/*! - \qmlproperty int Repeater::count - - This property holds the number of items in the repeater. -*/ -int QmlGraphicsRepeater::count() const -{ - Q_D(const QmlGraphicsRepeater); - if (d->model) - return d->model->count(); - return 0; -} - - -/*! - \internal - */ -void QmlGraphicsRepeater::componentComplete() -{ - QmlGraphicsItem::componentComplete(); - regenerate(); -} - -/*! - \internal - */ -QVariant QmlGraphicsRepeater::itemChange(GraphicsItemChange change, - const QVariant &value) -{ - QVariant rv = QmlGraphicsItem::itemChange(change, value); - if (change == ItemParentHasChanged) { - regenerate(); - } - - return rv; -} - -void QmlGraphicsRepeater::clear() -{ - Q_D(QmlGraphicsRepeater); - if (d->model) { - foreach (QmlGraphicsItem *item, d->deletables) - d->model->release(item); - } - d->deletables.clear(); -} - -/*! - \internal - */ -void QmlGraphicsRepeater::regenerate() -{ - Q_D(QmlGraphicsRepeater); - - clear(); - - if (!d->model || !d->model->count() || !d->model->isValid() || !parentItem() || !isComponentComplete()) - return; - - for (int ii = 0; ii < count(); ++ii) { - QmlGraphicsItem *item = d->model->item(ii); - if (item) { - item->setParent(parentItem()); - item->stackBefore(this); - d->deletables << item; - } - } -} - -void QmlGraphicsRepeater::itemsInserted(int, int) -{ - regenerate(); -} - -void QmlGraphicsRepeater::itemsRemoved(int, int) -{ - regenerate(); -} - -void QmlGraphicsRepeater::itemsMoved(int,int,int) -{ - regenerate(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsrepeater_p.h b/src/declarative/fx/qmlgraphicsrepeater_p.h deleted file mode 100644 index 8d71303..0000000 --- a/src/declarative/fx/qmlgraphicsrepeater_p.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSREPEATER_H -#define QMLGRAPHICSREPEATER_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsRepeaterPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem -{ - Q_OBJECT - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "delegate") - -public: - QmlGraphicsRepeater(QmlGraphicsItem *parent=0); - virtual ~QmlGraphicsRepeater(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - int count() const; - -Q_SIGNALS: - void countChanged(); - -private: - void clear(); - void regenerate(); - -protected: - virtual void componentComplete(); - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); - -private Q_SLOTS: - void itemsInserted(int,int); - void itemsRemoved(int,int); - void itemsMoved(int,int,int); - -private: - Q_DISABLE_COPY(QmlGraphicsRepeater) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsRepeater) - -QT_END_HEADER - -#endif // QMLGRAPHICSREPEATER_H diff --git a/src/declarative/fx/qmlgraphicsrepeater_p_p.h b/src/declarative/fx/qmlgraphicsrepeater_p_p.h deleted file mode 100644 index 4af0d9e..0000000 --- a/src/declarative/fx/qmlgraphicsrepeater_p_p.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSREPEATER_P_H -#define QMLGRAPHICSREPEATER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem_p.h" -#include "qmlgraphicsrepeater_p.h" -#include - - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlGraphicsVisualModel; -class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsRepeater) - -public: - QmlGraphicsRepeaterPrivate(); - ~QmlGraphicsRepeaterPrivate(); - - QmlGraphicsVisualModel *model; - QVariant dataSource; - bool ownModel; - - QList > deletables; -}; - -QT_END_NAMESPACE -#endif // QMLGRAPHICSREPEATER_P_H diff --git a/src/declarative/fx/qmlgraphicsscalegrid.cpp b/src/declarative/fx/qmlgraphicsscalegrid.cpp deleted file mode 100644 index 7517a3c..0000000 --- a/src/declarative/fx/qmlgraphicsscalegrid.cpp +++ /dev/null @@ -1,212 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include -#include -#include "qmlgraphicsscalegrid_p_p.h" - - -QT_BEGIN_NAMESPACE -/*! - \internal - \class QmlGraphicsScaleGrid - \brief The QmlGraphicsScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. -*/ -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsScaleGrid) - -QmlGraphicsScaleGrid::QmlGraphicsScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) -{ -} - -QmlGraphicsScaleGrid::~QmlGraphicsScaleGrid() -{ -} - -bool QmlGraphicsScaleGrid::isNull() const -{ - return !_left && !_top && !_right && !_bottom; -} - -void QmlGraphicsScaleGrid::setLeft(int pos) -{ - if (_left != pos) { - _left = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setTop(int pos) -{ - if (_top != pos) { - _top = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setRight(int pos) -{ - if (_right != pos) { - _right = pos; - emit borderChanged(); - } -} - -void QmlGraphicsScaleGrid::setBottom(int pos) -{ - if (_bottom != pos) { - _bottom = pos; - emit borderChanged(); - } -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage() -: _l(-1), _r(-1), _t(-1), _b(-1), - _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) -{ -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &o) -: _l(o._l), _r(o._r), _t(o._t), _b(o._b), _h(o._h), _v(o._v), _pix(o._pix) -{ -} - -QmlGraphicsGridScaledImage &QmlGraphicsGridScaledImage::operator=(const QmlGraphicsGridScaledImage &o) -{ - _l = o._l; - _r = o._r; - _t = o._t; - _b = o._b; - _h = o._h; - _v = o._v; - _pix = o._pix; - return *this; -} - -QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(QIODevice *data) -: _l(-1), _r(-1), _t(-1), _b(-1), _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) -{ - int l = -1; - int r = -1; - int t = -1; - int b = -1; - QString imgFile; - - while(!data->atEnd()) { - QString line = QString::fromUtf8(data->readLine().trimmed()); - if (line.isEmpty() || line.startsWith(QLatin1String("#"))) - continue; - - QStringList list = line.split(QLatin1Char(':')); - if (list.count() != 2) - return; - - list[0] = list[0].trimmed(); - list[1] = list[1].trimmed(); - - if (list[0] == QLatin1String("border.left")) - l = list[1].toInt(); - else if (list[0] == QLatin1String("border.right")) - r = list[1].toInt(); - else if (list[0] == QLatin1String("border.top")) - t = list[1].toInt(); - else if (list[0] == QLatin1String("border.bottom")) - b = list[1].toInt(); - else if (list[0] == QLatin1String("source")) - imgFile = list[1]; - else if (list[0] == QLatin1String("horizontalTileRule")) - _h = stringToRule(list[1]); - else if (list[0] == QLatin1String("verticalTileRule")) - _v = stringToRule(list[1]); - } - - if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) - return; - - _l = l; _r = r; _t = t; _b = b; - - _pix = imgFile; -} - -QmlGraphicsBorderImage::TileMode QmlGraphicsGridScaledImage::stringToRule(const QString &s) -{ - if (s == QLatin1String("Stretch")) - return QmlGraphicsBorderImage::Stretch; - if (s == QLatin1String("Repeat")) - return QmlGraphicsBorderImage::Repeat; - if (s == QLatin1String("Round")) - return QmlGraphicsBorderImage::Round; - - qWarning() << "Unknown tile rule specified. Using Stretch"; - return QmlGraphicsBorderImage::Stretch; -} - -bool QmlGraphicsGridScaledImage::isValid() const -{ - return _l >= 0; -} - -int QmlGraphicsGridScaledImage::gridLeft() const -{ - return _l; -} - -int QmlGraphicsGridScaledImage::gridRight() const -{ - return _r; -} - -int QmlGraphicsGridScaledImage::gridTop() const -{ - return _t; -} - -int QmlGraphicsGridScaledImage::gridBottom() const -{ - return _b; -} - -QString QmlGraphicsGridScaledImage::pixmapUrl() const -{ - return _pix; -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicsscalegrid_p_p.h b/src/declarative/fx/qmlgraphicsscalegrid_p_p.h deleted file mode 100644 index b66a5a5..0000000 --- a/src/declarative/fx/qmlgraphicsscalegrid_p_p.h +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSSCALEGRID_H -#define QMLGRAPHICSSCALEGRID_H - -#include -#include -#include -#include -#include "qmlgraphicsborderimage_p.h" - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject -{ - Q_OBJECT - Q_ENUMS(TileRule) - - Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) - Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) - Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) - Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) - -public: - QmlGraphicsScaleGrid(QObject *parent=0); - ~QmlGraphicsScaleGrid(); - - bool isNull() const; - - int left() const { return _left; } - void setLeft(int); - - int top() const { return _top; } - void setTop(int); - - int right() const { return _right; } - void setRight(int); - - int bottom() const { return _bottom; } - void setBottom(int); - -Q_SIGNALS: - void borderChanged(); - -private: - int _left; - int _top; - int _right; - int _bottom; -}; - -class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage -{ -public: - QmlGraphicsGridScaledImage(); - QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); - QmlGraphicsGridScaledImage(QIODevice*); - QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); - bool isValid() const; - int gridLeft() const; - int gridRight() const; - int gridTop() const; - int gridBottom() const; - QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } - QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } - - QString pixmapUrl() const; - -private: - static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); - -private: - int _l; - int _r; - int _t; - int _b; - QmlGraphicsBorderImage::TileMode _h; - QmlGraphicsBorderImage::TileMode _v; - QString _pix; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsScaleGrid) - -QT_END_HEADER - -#endif // QMLGRAPHICSSCALEGRID_H diff --git a/src/declarative/fx/qmlgraphicstext.cpp b/src/declarative/fx/qmlgraphicstext.cpp deleted file mode 100644 index 6790923..0000000 --- a/src/declarative/fx/qmlgraphicstext.cpp +++ /dev/null @@ -1,840 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicstext_p.h" -#include "qmlgraphicstext_p_p.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QmlGraphicsText) - -/*! - \qmlclass Text QmlGraphicsText - \brief The Text item allows you to add formatted text to a scene. - \inherits Item - - It can display both plain and rich text. For example: - - \qml - Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } - Text { text: "Hello World!" } - \endqml - - \image declarative-text.png - - If height and width are not explicitly set, Text will attempt to determine how - much room is needed and set it accordingly. Unless \c wrap is set, it will always - prefer width to height (all text will be placed on a single line). - - The \c elide property can alternatively be used to fit a single line of - plain text to a set width. - - Text provides read-only text. For editable text, see \l TextEdit. -*/ - -/*! - \internal - \class QmlGraphicsText - \qmlclass Text - \ingroup group_coreitems - - \brief The QmlGraphicsText class provides a formatted text item that you can add to a QmlView. - - Text was designed for read-only text; it does not allow for any text editing. - It can display both plain and rich text. For example: - - \qml - Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } - Text { text: "Hello World!" } - \endqml - - \image text.png - - If height and width are not explicitly set, Text will attempt to determine how - much room is needed and set it accordingly. Unless \c wrap is set, it will always - prefer width to height (all text will be placed on a single line). - - The \c elide property can alternatively be used to fit a line of plain text to a set width. - - A QmlGraphicsText object can be instantiated in Qml using the tag \c Text. -*/ -QmlGraphicsText::QmlGraphicsText(QmlGraphicsItem *parent) - : QmlGraphicsItem(*(new QmlGraphicsTextPrivate), parent) -{ - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsText::QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsItem(dd, parent) -{ - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); -} - -QmlGraphicsText::~QmlGraphicsText() -{ -} - -/*! - \qmlproperty string Text::font.family - \qmlproperty bool Text::font.bold - \qmlproperty bool Text::font.italic - \qmlproperty bool Text::font.underline - \qmlproperty real Text::font.pointSize - \qmlproperty int Text::font.pixelSize - - Set the Text's font attributes. -*/ -QFont QmlGraphicsText::font() const -{ - Q_D(const QmlGraphicsText); - return d->font; -} - -void QmlGraphicsText::setFont(const QFont &font) -{ - Q_D(QmlGraphicsText); - d->font = font; - - d->imgDirty = true; - d->updateSize(); - update(); -} - -void QmlGraphicsText::setText(const QString &n) -{ -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer st; -#endif - Q_D(QmlGraphicsText); - if (d->text == n) - return; - - d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(n)); - if (d->richText) { - if (!d->doc) - { - d->control = new QTextControl(this); - d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); - d->doc = d->control->document(); - d->doc->setDocumentMargin(0); - } - d->doc->setHtml(n); - } - - d->text = n; - d->imgDirty = true; - d->updateSize(); - emit textChanged(d->text); - update(); -} - -/*! - \qmlproperty string Text::text - - The text to display. Text supports both plain and rich text strings. - - The item will try to automatically determine whether the text should - be treated as rich text. This determination is made using Qt::mightBeRichText(). -*/ -QString QmlGraphicsText::text() const -{ - Q_D(const QmlGraphicsText); - return d->text; -} - -void QmlGraphicsText::setColor(const QColor &color) -{ - Q_D(QmlGraphicsText); - if (d->color == color) - return; - - d->imgDirty = true; - d->color = color; - update(); -} - -/*! - \qmlproperty color Text::color - - The text color. - - \qml - //green text using hexadecimal notation - Text { color: "#00FF00"; ... } - - //steelblue text using SVG color name - Text { color: "steelblue"; ... } - \endqml -*/ - -QColor QmlGraphicsText::color() const -{ - Q_D(const QmlGraphicsText); - return d->color; -} - -/*! - \qmlproperty enumeration Text::style - - Set an additional text style. - - Supported text styles are \c Normal, \c Outline, \c Raised and \c Sunken. - - \qml - Row { - Text { font.pointSize: 24; text: "Normal" } - Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" } - Text { font.pointSize: 24; text: "Outline"; style: Text.Outline; styleColor: "red" } - Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" } - } - \endqml - - \image declarative-textstyle.png -*/ -QmlGraphicsText::TextStyle QmlGraphicsText::style() const -{ - Q_D(const QmlGraphicsText); - return d->style; -} - -void QmlGraphicsText::setStyle(QmlGraphicsText::TextStyle style) -{ - Q_D(QmlGraphicsText); - if (d->style == style) - return; - - d->imgDirty = true; - d->style = style; - update(); -} - -void QmlGraphicsText::setStyleColor(const QColor &color) -{ - Q_D(QmlGraphicsText); - if (d->styleColor == color) - return; - - d->imgDirty = true; - d->styleColor = color; - update(); -} - -/*! - \qmlproperty color Text::styleColor - - Defines the secondary color used by text styles. - - \c styleColor is used as the outline color for outlined text, and as the - shadow color for raised or sunken text. If no style has been set, it is not - used at all. - */ -QColor QmlGraphicsText::styleColor() const -{ - Q_D(const QmlGraphicsText); - return d->styleColor; -} - -/*! - \qmlproperty enumeration Text::horizontalAlignment - \qmlproperty enumeration Text::verticalAlignment - - Sets the horizontal and vertical alignment of the text within the Text items - width and height. By default, the text is top-left aligned. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom - and \c AlignVCenter. -*/ -QmlGraphicsText::HAlignment QmlGraphicsText::hAlign() const -{ - Q_D(const QmlGraphicsText); - return d->hAlign; -} - -void QmlGraphicsText::setHAlign(HAlignment align) -{ - Q_D(QmlGraphicsText); - d->hAlign = align; -} - -QmlGraphicsText::VAlignment QmlGraphicsText::vAlign() const -{ - Q_D(const QmlGraphicsText); - return d->vAlign; -} - -void QmlGraphicsText::setVAlign(VAlignment align) -{ - Q_D(QmlGraphicsText); - d->vAlign = align; -} - -/*! - \qmlproperty bool Text::wrap - - Set this property to wrap the text to the Text item's width. The text will only - wrap if an explicit width has been set. - - Wrapping is done on word boundaries (i.e. it is a "word-wrap"). If the text cannot be - word-wrapped to the specified width it will be partially drawn outside of the item's bounds. - If this is undesirable then enable clipping on the item (Item::clip). - - Wrapping is off by default. -*/ -//### Future may provide choice of wrap modes, such as QTextOption::WrapAtWordBoundaryOrAnywhere -bool QmlGraphicsText::wrap() const -{ - Q_D(const QmlGraphicsText); - return d->wrap; -} - -void QmlGraphicsText::setWrap(bool w) -{ - Q_D(QmlGraphicsText); - if (w == d->wrap) - return; - - d->wrap = w; - - d->imgDirty = true; - d->updateSize(); -} - -/*! - \qmlproperty enumeration Text::textFormat - - The way the text property should be displayed. - - Supported text formats are \c AutoText, \c PlainText and \c RichText. - - The default is AutoText. If the text format is AutoText the text element - will automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). - - \table - \row - \o - \qml -Column { - TextEdit { - font.pointSize: 24 - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "RichText" - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "PlainText" - text: "Hello World!" - } -} - \endqml - \o \image declarative-textformat.png - \endtable -*/ - -QmlGraphicsText::TextFormat QmlGraphicsText::textFormat() const -{ - Q_D(const QmlGraphicsText); - return d->format; -} - -void QmlGraphicsText::setTextFormat(TextFormat format) -{ - Q_D(QmlGraphicsText); - if (format == d->format) - return; - bool wasRich = d->richText; - d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); - - if (wasRich && !d->richText) { - //### delete control? (and vice-versa below) - d->imgDirty = true; - d->updateSize(); - update(); - } else if (!wasRich && d->richText) { - if (!d->doc) - { - d->control = new QTextControl(this); - d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); - d->doc = d->control->document(); - d->doc->setDocumentMargin(0); - } - d->doc->setHtml(d->text); - d->imgDirty = true; - d->updateSize(); - update(); - } - d->format = format; -} - -/*! - \qmlproperty enumeration Text::elide - - Set this property to elide parts of the text fit to the Text item's width. - The text will only elide if an explicit width has been set. - - This property cannot be used with wrap enabled or with rich text. - - Eliding can be \c ElideNone (the default), \c ElideLeft, \c ElideMiddle, or \c ElideRight. - - If the text is a multi-length string, and the mode is not \c ElideNone, - the first string that fits will be used, otherwise the last will be elided. - - Multi-length strings are ordered from longest to shortest, separated by the - Unicode "String Terminator" character \c U009C (write this in QML with \c{"\\x9C"}). -*/ -QmlGraphicsText::TextElideMode QmlGraphicsText::elideMode() const -{ - Q_D(const QmlGraphicsText); - return d->elideMode; -} - -void QmlGraphicsText::setElideMode(QmlGraphicsText::TextElideMode mode) -{ - Q_D(QmlGraphicsText); - if (mode == d->elideMode) - return; - - d->elideMode = mode; - - d->imgDirty = true; - d->updateSize(); -} - -void QmlGraphicsText::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - Q_D(QmlGraphicsText); - if (newGeometry.width() != oldGeometry.width()) { - if (d->wrap || d->elideMode != QmlGraphicsText::ElideNone) { - d->imgDirty = true; - d->updateSize(); - } - } - QmlGraphicsItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsTextPrivate::updateSize() -{ - Q_Q(QmlGraphicsText); - if (q->isComponentComplete()) { - QFontMetrics fm(font); - if (text.isEmpty()) { - q->setImplicitHeight(fm.height()); - return; - } - - int dy = q->height(); - QString tmp; - QSize size(0, 0); - - //setup instance of QTextLayout for all cases other than richtext - if (!richText) - { - tmp = text; - tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); - singleline = !tmp.contains(QChar::LineSeparator); - if (singleline && elideMode != QmlGraphicsText::ElideNone && q->widthValid()) - tmp = fm.elidedText(tmp,(Qt::TextElideMode)elideMode,q->width()); // XXX still worth layout...? - layout.clearLayout(); - layout.setFont(font); - layout.setText(tmp); - size = setupTextLayout(&layout); - cachedLayoutSize = size; - } - if (richText) { - singleline = false; // richtext can't elide or be optimized for single-line case - doc->setDefaultFont(font); - QTextOption option((Qt::Alignment)int(hAlign | vAlign)); - if (wrap) - option.setWrapMode(QTextOption::WordWrap); - else - option.setWrapMode(QTextOption::NoWrap); - doc->setDefaultTextOption(option); - if (wrap && !q->heightValid() && q->widthValid()) - doc->setTextWidth(q->width()); - else - doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) - dy -= (int)doc->size().height(); - } else { - dy -= size.height(); - } - int yoff = 0; - - if (q->heightValid()) { - if (vAlign == QmlGraphicsText::AlignBottom) - yoff = dy; - else if (vAlign == QmlGraphicsText::AlignVCenter) - yoff = dy/2; - } - q->setBaselineOffset(fm.ascent() + yoff); - - //### need to comfirm cost of always setting these for richText - q->setImplicitWidth(richText ? (int)doc->idealWidth() : size.width()); - q->setImplicitHeight(richText ? (int)doc->size().height() : size.height()); - } else { - dirty = true; - } -} - -// ### text layout handling should be profiled and optimized as needed -// what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); - -void QmlGraphicsTextPrivate::drawOutline() -{ - QPixmap img = QPixmap(imgCache.size()); - img.fill(Qt::transparent); - - QPainter ppm(&img); - - QPoint pos(imgCache.rect().topLeft()); - pos += QPoint(-1, 0); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(2, 0); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(-1, -1); - ppm.drawPixmap(pos, imgStyleCache); - pos += QPoint(0, 2); - ppm.drawPixmap(pos, imgStyleCache); - - pos += QPoint(0, -1); - ppm.drawPixmap(pos, imgCache); - ppm.end(); - - imgCache = img; -} - -void QmlGraphicsTextPrivate::drawOutline(int yOffset) -{ - QPixmap img = QPixmap(imgCache.size()); - img.fill(Qt::transparent); - - QPainter ppm(&img); - - QPoint pos(imgCache.rect().topLeft()); - pos += QPoint(0, yOffset); - ppm.drawPixmap(pos, imgStyleCache); - - pos += QPoint(0, -yOffset); - ppm.drawPixmap(pos, imgCache); - ppm.end(); - - imgCache = img; -} - -QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) -{ - Q_Q(QmlGraphicsText); - layout->setCacheEnabled(true); - - QFontMetrics fm = QFontMetrics(font); - - int height = 0; - qreal widthUsed = 0; - qreal lineWidth = 0; - - //set manual width - if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) - lineWidth = q->width(); - - layout->beginLayout(); - - while (1) { - QTextLine line = layout->createLine(); - if (!line.isValid()) - break; - - if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) - line.setLineWidth(lineWidth); - } - layout->endLayout(); - - for (int i = 0; i < layout->lineCount(); ++i) { - QTextLine line = layout->lineAt(i); - widthUsed = qMax(widthUsed, line.naturalTextWidth()); - line.setPosition(QPointF(0, height)); - height += int(line.height()); - } - return QSize((int)widthUsed, height); -} - -QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) -{ - //do layout - QSize size = cachedLayoutSize; - - int x = 0; - for (int i = 0; i < layout.lineCount(); ++i) { - QTextLine line = layout.lineAt(i); - if (hAlign == QmlGraphicsText::AlignLeft) { - x = 0; - } else if (hAlign == QmlGraphicsText::AlignRight) { - x = size.width() - (int)line.naturalTextWidth(); - } else if (hAlign == QmlGraphicsText::AlignHCenter) { - x = (size.width() - (int)line.naturalTextWidth()) / 2; - } - line.setPosition(QPoint(x, (int)line.y())); - } - - //paint text - QPixmap img(size); - if (!size.isEmpty()) { - img.fill(Qt::transparent); - QPainter p(&img); - if (drawStyle) { - p.setPen(styleColor); - } - else - p.setPen(color); - p.setFont(font); - layout.draw(&p, QPointF(0, 0)); - } - return img; -} - -QPixmap QmlGraphicsTextPrivate::richTextImage(bool drawStyle) -{ - QSize size = doc->size().toSize(); - - //paint text - QPixmap img(size); - img.fill(Qt::transparent); - QPainter p(&img); - - if (drawStyle) { - QPalette pal = control->palette(); - pal.setColor(QPalette::Text, styleColor); - control->setPalette(pal); - QTextOption colorOption; - colorOption.setFlags(QTextOption::SuppressColors); - doc->setDefaultTextOption(colorOption); - } else { - QPalette pal = control->palette(); - pal.setColor(QPalette::Text, color); - control->setPalette(pal); - } - control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size))); - if (drawStyle) - doc->setDefaultTextOption(QTextOption()); - return img; -} - -void QmlGraphicsTextPrivate::checkImgCache() -{ - if (!imgDirty) - return; - - bool empty = text.isEmpty(); - if (empty) { - imgCache = QPixmap(); - imgStyleCache = QPixmap(); - } else if (richText) { - imgCache = richTextImage(false); - if (style != QmlGraphicsText::Normal) - imgStyleCache = richTextImage(true); //### should use styleColor - } else { - imgCache = wrappedTextImage(false); - if (style != QmlGraphicsText::Normal) - imgStyleCache = wrappedTextImage(true); //### should use styleColor - } - if (!empty) - switch (style) { - case QmlGraphicsText::Outline: - drawOutline(); - break; - case QmlGraphicsText::Sunken: - drawOutline(-1); - break; - case QmlGraphicsText::Raised: - drawOutline(1); - break; - default: - break; - } - - imgDirty = false; -} - -void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) -{ - Q_D(QmlGraphicsText); - d->checkImgCache(); - if (d->imgCache.isNull()) - return; - - bool oldAA = p->testRenderHint(QPainter::Antialiasing); - bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); - if (d->smooth) - p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); - - int w = width(); - int h = height(); - - int x = 0; - int y = 0; - - switch (d->hAlign) { - case AlignLeft: - x = 0; - break; - case AlignRight: - x = w - d->imgCache.width(); - break; - case AlignHCenter: - x = (w - d->imgCache.width()) / 2; - break; - } - - switch (d->vAlign) { - case AlignTop: - y = 0; - break; - case AlignBottom: - y = h - d->imgCache.height(); - break; - case AlignVCenter: - y = (h - d->imgCache.height()) / 2; - break; - } - - bool needClip = !clip() && (d->imgCache.width() > width() || - d->imgCache.height() > height()); - - if (needClip) { - p->save(); - p->setClipRect(boundingRect(), Qt::IntersectClip); - } - p->drawPixmap(x, y, d->imgCache); - if (needClip) - p->restore(); - - if (d->smooth) { - p->setRenderHint(QPainter::Antialiasing, oldAA); - p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); - } -} - -/*! - \qmlproperty bool Text::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsText::componentComplete() -{ - Q_D(QmlGraphicsText); -#ifdef Q_ENABLE_PERFORMANCE_LOG - QmlPerfTimer cc; -#endif - QmlGraphicsItem::componentComplete(); - if (d->dirty) { - d->updateSize(); - d->dirty = false; - } -} - -/*! - \overload - Handles the given mouse \a event. - */ -void QmlGraphicsText::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsText); - - if (!d->richText || !d->doc || d->control->anchorAt(event->pos()).isEmpty()) { - event->setAccepted(false); - d->activeLink = QString(); - } else { - d->activeLink = d->control->anchorAt(event->pos()); - } - - // ### may malfunction if two of the same links are clicked & dragged onto each other) - - if (!event->isAccepted()) - QmlGraphicsItem::mousePressEvent(event); - -} - -/*! - \qmlsignal Text::linkActivated(link) - - This handler is called when the user clicks on a link embedded in the text. -*/ - -/*! - \overload - Handles the given mouse \a event. - */ -void QmlGraphicsText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsText); - - // ### confirm the link, and send a signal out - if (d->richText && d->doc && d->activeLink == d->control->anchorAt(event->pos())) - emit linkActivated(d->activeLink); - else - event->setAccepted(false); - - if (!event->isAccepted()) - QmlGraphicsItem::mouseReleaseEvent(event); -} -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicstext_p.h b/src/declarative/fx/qmlgraphicstext_p.h deleted file mode 100644 index ac1ded0..0000000 --- a/src/declarative/fx/qmlgraphicstext_p.h +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXT_H -#define QMLGRAPHICSTEXT_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsTextPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(VAlignment) - Q_ENUMS(TextStyle) - Q_ENUMS(TextFormat) - Q_ENUMS(TextElideMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(TextStyle style READ style WRITE setStyle) - Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? - -public: - QmlGraphicsText(QmlGraphicsItem *parent=0); - ~QmlGraphicsText(); - - enum HAlignment { AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter }; - enum VAlignment { AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter }; - enum TextStyle { Normal, - Outline, - Raised, - Sunken }; - enum TextFormat { PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText }; - enum TextElideMode { ElideLeft = Qt::ElideLeft, - ElideRight = Qt::ElideRight, - ElideMiddle = Qt::ElideMiddle, - ElideNone = Qt::ElideNone }; - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - TextStyle style() const; - void setStyle(TextStyle style); - - QColor styleColor() const; - void setStyleColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - TextElideMode elideMode() const; - void setElideMode(TextElideMode); - - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); - - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(const QString &text); - void linkActivated(const QString &link); - -protected: - QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - -private: - Q_DISABLE_COPY(QmlGraphicsText) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsText) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicstext_p_p.h b/src/declarative/fx/qmlgraphicstext_p_p.h deleted file mode 100644 index 4ca1ad4..0000000 --- a/src/declarative/fx/qmlgraphicstext_p_p.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXT_P_H -#define QMLGRAPHICSTEXT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem.h" -#include "qmlgraphicsitem_p.h" -#include "qml.h" -#include - -QT_BEGIN_NAMESPACE - -class QTextLayout; -class QTextDocument; -class QTextControl; - -class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsText) -public: - QmlGraphicsTextPrivate() - : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), - hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), - dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), - format(QmlGraphicsText::AutoText) - { - } - - void updateSize(); - void checkImgCache(); - - void drawOutline(); - void drawOutline(int yOffset); - - QPixmap wrappedTextImage(bool drawStyle); - QPixmap richTextImage(bool drawStyle); - QSize setupTextLayout(QTextLayout *layout); - - QString text; - QFont font; - QColor color; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QString activeLink; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsText::HAlignment hAlign; - QmlGraphicsText::VAlignment vAlign; - QmlGraphicsText::TextElideMode elideMode; - bool dirty; - bool wrap; - bool richText; - bool singleline; - QTextControl *control; - QTextDocument *doc; - QTextLayout layout; - QSize cachedLayoutSize; - QmlGraphicsText::TextFormat format; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicstextedit.cpp b/src/declarative/fx/qmlgraphicstextedit.cpp deleted file mode 100644 index 0c81dca..0000000 --- a/src/declarative/fx/qmlgraphicstextedit.cpp +++ /dev/null @@ -1,1085 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicstextedit_p.h" -#include "qmlgraphicstextedit_p_p.h" -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QmlGraphicsTextEdit) - -/*! - \qmlclass TextEdit QFxTextEdit - \brief The TextEdit item allows you to add editable formatted text to a scene. - - It can display both plain and rich text. For example: - - \qml -TextEdit { - id: edit - text: "Hello World!" - focus: true - font.family: "Helvetica" - font.pointSize: 20 - color: "blue" - width: 240 -} - \endqml - - \image declarative-textedit.gif - - \sa Text -*/ - -/*! - \internal - \class QmlGraphicsTextEdit - \qmlclass TextEdit - \ingroup group_coreitems - - \brief The QmlGraphicsTextEdit class provides an editable formatted text item that you can add to a QmlView. - - It can display both plain and rich text. - - \image declarative-textedit.png - - A QmlGraphicsTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. -*/ - -/*! - Constructs a new QmlGraphicsTextEdit. -*/ -QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsItem *parent) -: QmlGraphicsPaintedItem(*(new QmlGraphicsTextEditPrivate), parent) -{ - Q_D(QmlGraphicsTextEdit); - d->init(); -} - -/*! -\internal -*/ -QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - Q_D(QmlGraphicsTextEdit); - d->init(); -} - -QString QmlGraphicsTextEdit::text() const -{ - Q_D(const QmlGraphicsTextEdit); - - if (d->richText) - return d->document->toHtml(); - else - return d->document->toPlainText(); -} - -/*! - \qmlproperty string TextEdit::font.family - \qmlproperty bool TextEdit::font.bold - \qmlproperty bool TextEdit::font.italic - \qmlproperty bool TextEdit::font.underline - \qmlproperty real TextEdit::font.pointSize - \qmlproperty int TextEdit::font.pixelSize - - Set the TextEdit's font attributes. -*/ - -/*! - \qmlproperty string TextEdit::text - - The text to display. If the text format is AutoText the text edit will - automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). -*/ -void QmlGraphicsTextEdit::setText(const QString &text) -{ - Q_D(QmlGraphicsTextEdit); - if (QmlGraphicsTextEdit::text() == text) - return; - d->text = text; - d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); - if (d->richText) { - d->control->setHtml(text); - } else { - d->control->setPlainText(text); - } - q_textChanged(); - updateSize(); -} - -/*! - \qmlproperty enumeration TextEdit::textFormat - - The way the text property should be displayed. - - Supported text formats are \c AutoText, \c PlainText and \c RichText. - - The default is AutoText. If the text format is AutoText the text edit - will automatically determine whether the text should be treated as - rich text. This determination is made using Qt::mightBeRichText(). - - \table - \row - \o - \qml -Column { - TextEdit { - font.pointSize: 24 - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "RichText" - text: "Hello World!" - } - TextEdit { - font.pointSize: 24 - textFormat: "PlainText" - text: "Hello World!" - } -} - \endqml - \o \image declarative-textformat.png - \endtable -*/ -QmlGraphicsTextEdit::TextFormat QmlGraphicsTextEdit::textFormat() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->format; -} - -void QmlGraphicsTextEdit::setTextFormat(TextFormat format) -{ - Q_D(QmlGraphicsTextEdit); - if (format == d->format) - return; - bool wasRich = d->richText; - d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); - - if (wasRich && !d->richText) { - d->control->setPlainText(d->text); - updateSize(); - } else if (!wasRich && d->richText) { - d->control->setHtml(d->text); - updateSize(); - } - d->format = format; -} - -QFont QmlGraphicsTextEdit::font() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->font; -} - -void QmlGraphicsTextEdit::setFont(const QFont &font) -{ - Q_D(QmlGraphicsTextEdit); - d->font = font; - - clearCache(); - d->document->setDefaultFont(d->font); - if(d->cursor){ - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); - } - updateSize(); - update(); -} - -/*! - \qmlproperty color TextEdit::color - - The text color. - - \qml -// green text using hexadecimal notation -TextEdit { color: "#00FF00"; ... } - -// steelblue text using SVG color name -TextEdit { color: "steelblue"; ... } - \endqml -*/ -QColor QmlGraphicsTextEdit::color() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->color; -} - -void QmlGraphicsTextEdit::setColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->color == color) - return; - - clearCache(); - d->color = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::Text, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty color TextEdit::selectionColor - - The text highlight color, used behind selections. -*/ -QColor QmlGraphicsTextEdit::selectionColor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->selectionColor; -} - -void QmlGraphicsTextEdit::setSelectionColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->selectionColor == color) - return; - - clearCache(); - d->selectionColor = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::Highlight, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty color TextEdit::selectedTextColor - - The selected text color, used in selections. -*/ -QColor QmlGraphicsTextEdit::selectedTextColor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->selectedTextColor; -} - -void QmlGraphicsTextEdit::setSelectedTextColor(const QColor &color) -{ - Q_D(QmlGraphicsTextEdit); - if (d->selectedTextColor == color) - return; - - clearCache(); - d->selectedTextColor = color; - QPalette pal = d->control->palette(); - pal.setColor(QPalette::HighlightedText, color); - d->control->setPalette(pal); - update(); -} - -/*! - \qmlproperty enumeration TextEdit::horizontalAlignment - \qmlproperty enumeration TextEdit::verticalAlignment - - Sets the horizontal and vertical alignment of the text within the TextEdit items - width and height. By default, the text is top-left aligned. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom - and \c AlignVCenter. -*/ -QmlGraphicsTextEdit::HAlignment QmlGraphicsTextEdit::hAlign() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->hAlign; -} - -void QmlGraphicsTextEdit::setHAlign(QmlGraphicsTextEdit::HAlignment alignment) -{ - Q_D(QmlGraphicsTextEdit); - if (alignment == d->hAlign) - return; - d->hAlign = alignment; - d->updateDefaultTextOption(); - updateSize(); -} - -QmlGraphicsTextEdit::VAlignment QmlGraphicsTextEdit::vAlign() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->vAlign; -} - -void QmlGraphicsTextEdit::setVAlign(QmlGraphicsTextEdit::VAlignment alignment) -{ - Q_D(QmlGraphicsTextEdit); - if (alignment == d->vAlign) - return; - d->vAlign = alignment; - d->updateDefaultTextOption(); - updateSize(); -} - -bool QmlGraphicsTextEdit::wrap() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->wrap; -} - -/*! - \qmlproperty bool TextEdit::wrap - - Set this property to wrap the text to the TextEdit item's width. - The text will only wrap if an explicit width has been set. - - Wrapping is done on word boundaries (i.e. it is a "word-wrap"). Wrapping is off by default. -*/ -void QmlGraphicsTextEdit::setWrap(bool w) -{ - Q_D(QmlGraphicsTextEdit); - if (w == d->wrap) - return; - d->wrap = w; - d->updateDefaultTextOption(); - updateSize(); -} - -/*! - \qmlproperty bool TextEdit::cursorVisible - If true the text edit shows a cursor. - - This property is set and unset when the text edit gets focus, but it can also - be set directly (useful, for example, if a KeyProxy might forward keys to it). -*/ -bool QmlGraphicsTextEdit::isCursorVisible() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->cursorVisible; -} - -void QmlGraphicsTextEdit::setCursorVisible(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->cursorVisible == on) - return; - d->cursorVisible = on; - QFocusEvent focusEvent(on ? QEvent::FocusIn : QEvent::FocusOut); - if (!on && !d->persistentSelection) - d->control->setCursorIsFocusIndicator(true); - d->control->processEvent(&focusEvent, QPointF(0, 0)); -} - -/*! - \qmlproperty int TextEdit::cursorPosition - The position of the cursor in the TextEdit. -*/ -int QmlGraphicsTextEdit::cursorPosition() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().position(); -} - -void QmlGraphicsTextEdit::setCursorPosition(int pos) -{ - Q_D(QmlGraphicsTextEdit); - QTextCursor cursor = d->control->textCursor(); - if (cursor.position() == pos) - return; - cursor.setPosition(pos); - d->control->setTextCursor(cursor); -} - -/*! - \qmlproperty Component TextEdit::cursorDelegate - The delegate for the cursor in the TextEdit. - - If you set a cursorDelegate for a TextEdit, this delegate will be used for - drawing the cursor instead of the standard cursor. An instance of the - delegate will be created and managed by the text edit when a cursor is - needed, and the x and y properties of delegate instance will be set so as - to be one pixel before the top left of the current character. - - Note that the root item of the delegate component must be a QmlGraphicsItem or - QmlGraphicsItem derived item. -*/ -QmlComponent* QmlGraphicsTextEdit::cursorDelegate() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->cursorComponent; -} - -void QmlGraphicsTextEdit::setCursorDelegate(QmlComponent* c) -{ - Q_D(QmlGraphicsTextEdit); - if(d->cursorComponent){ - if(d->cursor){ - disconnect(d->control, SIGNAL(cursorPositionChanged()), - this, SLOT(moveCursorDelegate())); - d->control->setCursorWidth(-1); - dirtyCache(cursorRect()); - delete d->cursor; - d->cursor = 0; - } - } - d->cursorComponent = c; - if(c && c->isReady()){ - loadCursorDelegate(); - }else{ - if(c) - connect(c, SIGNAL(statusChanged()), - this, SLOT(loadCursorDelegate())); - } -} - -void QmlGraphicsTextEdit::loadCursorDelegate() -{ - Q_D(QmlGraphicsTextEdit); - if(d->cursorComponent->isLoading()) - return; - d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); - if(d->cursor){ - connect(d->control, SIGNAL(cursorPositionChanged()), - this, SLOT(moveCursorDelegate())); - d->control->setCursorWidth(0); - dirtyCache(cursorRect()); - d->cursor->setParentItem(this); - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); - }else{ - qWarning() << QLatin1String("Error loading cursor delegate for TextEdit:") + objectName(); - } -} - -/*! - \qmlproperty int TextEdit::selectionStart - - The cursor position before the first character in the current selection. - Setting this and selectionEnd allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionStart to a value outside of - the current text, selectionStart will not be changed. - - \sa selectionEnd, cursorPosition, selectedText -*/ -int QmlGraphicsTextEdit::selectionStart() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectionStart(); -} - -void QmlGraphicsTextEdit::setSelectionStart(int s) -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionStart == s || s < 0 || s > text().length()) - return; - d->lastSelectionStart = s; - d->updateSelection();// Will emit the relevant signals -} - -/*! - \qmlproperty int TextEdit::selectionEnd - - The cursor position after the last character in the current selection. - Setting this and selectionStart allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionEnd to a value outside of - the current text, selectionEnd will not be changed. - - \sa selectionStart, cursorPosition, selectedText -*/ -int QmlGraphicsTextEdit::selectionEnd() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectionEnd(); -} - -void QmlGraphicsTextEdit::setSelectionEnd(int s) -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionEnd == s || s < 0 || s > text().length()) - return; - d->lastSelectionEnd = s; - d->updateSelection();// Will emit the relevant signals -} - -/*! - \qmlproperty string TextEdit::selectedText - - This read-only property provides the text currently selected in the - text edit. - - It is equivalent to the following snippet, but is faster and easier - to use. - \code - //myTextEdit is the id of the TextEdit - myTextEdit.text.toString().substring(myTextEdit.selectionStart, - myTextEdit.selectionEnd); - \endcode -*/ -QString QmlGraphicsTextEdit::selectedText() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor().selectedText(); -} - -/*! - \qmlproperty bool TextEdit::focusOnPress - - Whether the TextEdit should gain focus on a mouse press. By default this is - set to false; -*/ -bool QmlGraphicsTextEdit::focusOnPress() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->focusOnPress; -} - -void QmlGraphicsTextEdit::setFocusOnPress(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->focusOnPress == on) - return; - d->focusOnPress = on; -} - -/*! - \qmlproperty bool TextEdit::persistentSelection - - Whether the TextEdit should keep the selection visible when it loses focus to another - item in the scene. By default this is set to true; -*/ -bool QmlGraphicsTextEdit::persistentSelection() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->persistentSelection; -} - -void QmlGraphicsTextEdit::setPersistentSelection(bool on) -{ - Q_D(QmlGraphicsTextEdit); - if (d->persistentSelection == on) - return; - d->persistentSelection = on; -} - -qreal QmlGraphicsTextEdit::textMargin() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->textMargin; -} - -void QmlGraphicsTextEdit::setTextMargin(qreal margin) -{ - Q_D(QmlGraphicsTextEdit); - if (d->textMargin == margin) - return; - d->textMargin = margin; - d->document->setDocumentMargin(d->textMargin); -} - -void QmlGraphicsTextEdit::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.width() != oldGeometry.width()) - updateSize(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -/*! - Ensures any delayed caching or data loading the class - needs to performed is complete. -*/ -void QmlGraphicsTextEdit::componentComplete() -{ - Q_D(QmlGraphicsTextEdit); - QmlGraphicsPaintedItem::componentComplete(); - if (d->dirty) { - updateSize(); - d->dirty = false; - } -} - -/*! - \qmlproperty bool TextEdit::readOnly - - Whether the user an interact with the TextEdit item. If this - property is set to true the text cannot be edited by user interaction. - - By default this property is false. -*/ -void QmlGraphicsTextEdit::setReadOnly(bool r) -{ - Q_D(QmlGraphicsTextEdit); - - Qt::TextInteractionFlags flags = Qt::NoTextInteraction; - if (r) { - flags = Qt::TextSelectableByMouse; - } else { - flags = Qt::TextEditorInteraction; - } - d->control->setTextInteractionFlags(flags); - if (!r) - d->control->moveCursor(QTextCursor::End); -} - -bool QmlGraphicsTextEdit::isReadOnly() const -{ - Q_D(const QmlGraphicsTextEdit); - return !(d->control->textInteractionFlags() & Qt::TextEditable); -} - -/*! - Sets how the text edit should interact with user input to the given - \a flags. -*/ -void QmlGraphicsTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) -{ - Q_D(QmlGraphicsTextEdit); - d->control->setTextInteractionFlags(flags); -} - -/*! - Returns the flags specifying how the text edit should interact - with user input. -*/ -Qt::TextInteractionFlags QmlGraphicsTextEdit::textInteractionFlags() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textInteractionFlags(); -} - -/*! - Returns the cursor for the point at the given \a pos on the - text edit. -*/ -QTextCursor QmlGraphicsTextEdit::cursorForPosition(const QPoint &pos) const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->cursorForPosition(pos); -} - -/*! - Returns the rectangle where the given text \a cursor is rendered - within the text edit. -*/ -QRect QmlGraphicsTextEdit::cursorRect(const QTextCursor &cursor) const -{ - Q_D(const QmlGraphicsTextEdit); - if (cursor.isNull()) - return QRect(); - - return d->control->cursorRect(cursor).toRect(); -} - -/*! - Returns the rectangle where the text cursor is rendered - within the text edit. -*/ -QRect QmlGraphicsTextEdit::cursorRect() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->cursorRect().toRect(); -} - - -/*! - Sets the text cursor for the text edit to the given \a cursor. -*/ -void QmlGraphicsTextEdit::setTextCursor(const QTextCursor &cursor) -{ - Q_D(QmlGraphicsTextEdit); - d->control->setTextCursor(cursor); -} - -/*! - Returns the text cursor for the text edit. -*/ -QTextCursor QmlGraphicsTextEdit::textCursor() const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->textCursor(); -} - -/*! -Moves the cursor by performing the given \a operation. - -If \a mode is QTextCursor::KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys. -*/ -void QmlGraphicsTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) -{ - Q_D(QmlGraphicsTextEdit); - d->control->moveCursor(operation, mode); -} - -/*! -\overload -Handles the given \a event. -*/ -bool QmlGraphicsTextEdit::event(QEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - if (event->type() == QEvent::ShortcutOverride) { - d->control->processEvent(event, QPointF(0, 0)); - return event->isAccepted(); - } - return QmlGraphicsPaintedItem::event(event); -} - -/*! -\overload -Handles the given key \a event. -*/ -void QmlGraphicsTextEdit::keyPressEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - //### this causes non-standard cursor behavior in some cases. - // is it still needed? - /*QTextCursor c = textCursor(); - QTextCursor::MoveOperation op = QTextCursor::NoMove; - if (event == QKeySequence::MoveToNextChar) { - op = QTextCursor::Right; - } else if (event == QKeySequence::MoveToPreviousChar) { - op = QTextCursor::Left; - } else if (event == QKeySequence::MoveToNextWord) { - op = QTextCursor::WordRight; - } else if (event == QKeySequence::MoveToPreviousWord) { - op = QTextCursor::WordLeft; - } else if (event == QKeySequence::MoveToNextLine) { - op = QTextCursor::Down; - } else if (event == QKeySequence::MoveToPreviousLine) { - op = QTextCursor::Up; - } - - if (op != QTextCursor::NoMove && !c.movePosition(op)) - event->ignore(); - else*/ - d->control->processEvent(event, QPointF(0, 0)); - - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(event); -} - -/*! -\overload -Handles the given key \a event. -*/ -void QmlGraphicsTextEdit::keyReleaseEvent(QKeyEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyReleaseEvent(event); -} - -/*! - \overload - Handles changing of the focus property. Focus is applied to the control - even if the edit does not have active focus. This is because things - like KeyProxy can give the behavior of focus even when hasFocus() isn't - true. -*/ -void QmlGraphicsTextEdit::focusChanged(bool hasFocus) -{ - setCursorVisible(hasFocus); - QmlGraphicsItem::focusChanged(hasFocus); -} - -/*! - Causes all text to be selected. -*/ -void QmlGraphicsTextEdit::selectAll() -{ - Q_D(QmlGraphicsTextEdit); - d->control->selectAll(); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - if (d->focusOnPress) - setFocus(true); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mouseDoubleClickEvent(event); -} - -/*! -\overload -Handles the given mouse \a event. -*/ -void QmlGraphicsTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mousePressEvent(event); -} - -/*! -\overload -Handles the given input method \a event. -*/ -void QmlGraphicsTextEdit::inputMethodEvent(QInputMethodEvent *event) -{ - Q_D(QmlGraphicsTextEdit); - d->control->processEvent(event, QPointF(0, 0)); -} - -/*! -\overload -Returns the value of the given \a property. -*/ -QVariant QmlGraphicsTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const -{ - Q_D(const QmlGraphicsTextEdit); - return d->control->inputMethodQuery(property); -} - -/*! -Draws the contents of the text edit using the given \a painter within -the given \a bounds. -*/ -void QmlGraphicsTextEdit::drawContents(QPainter *painter, const QRect &bounds) -{ - Q_D(QmlGraphicsTextEdit); - - painter->setRenderHint(QPainter::TextAntialiasing, true); - - d->control->drawContents(painter, bounds); -} - -void QmlGraphicsTextEdit::updateImgCache(const QRectF &r) -{ - dirtyCache(r.toRect()); - emit update(); -} - -/*! - \qmlproperty bool TextEdit::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsTextEditPrivate::init() -{ - Q_Q(QmlGraphicsTextEdit); - - q->setSmoothTransform(smooth); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemHasNoContents, false); - q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - - control = new QTextControl(q); - - QObject::connect(control, SIGNAL(updateRequest(QRectF)), q, SLOT(updateImgCache(QRectF))); - - QObject::connect(control, SIGNAL(textChanged()), q, SLOT(q_textChanged())); - QObject::connect(control, SIGNAL(selectionChanged()), q, SIGNAL(selectionChanged())); - QObject::connect(control, SIGNAL(selectionChanged()), q, SLOT(updateSelectionMarkers())); - QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SLOT(updateSelectionMarkers())); - QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SIGNAL(cursorPositionChanged())); - - document = control->document(); - document->setDefaultFont(font); - document->setDocumentMargin(textMargin); - document->setUndoRedoEnabled(false); // flush undo buffer. - document->setUndoRedoEnabled(true); - updateDefaultTextOption(); -} - -void QmlGraphicsTextEdit::q_textChanged() -{ - if (!widthValid()) - updateSize(); //### optimize: we get 3 calls to updateSize every time a letter is typed - emit textChanged(text()); -} - -void QmlGraphicsTextEdit::moveCursorDelegate() -{ - Q_D(QmlGraphicsTextEdit); - if(!d->cursor) - return; - QRectF cursorRect = d->control->cursorRect(); - d->cursor->setX(cursorRect.x()); - d->cursor->setY(cursorRect.y()); -} - -void QmlGraphicsTextEditPrivate::updateSelection() -{ - Q_Q(QmlGraphicsTextEdit); - QTextCursor cursor = control->textCursor(); - bool startChange = (lastSelectionStart != cursor.selectionStart()); - bool endChange = (lastSelectionEnd != cursor.selectionEnd()); - //### Is it worth calculating a more minimal set of movements? - cursor.beginEditBlock(); - cursor.setPosition(lastSelectionStart, QTextCursor::MoveAnchor); - cursor.setPosition(lastSelectionEnd, QTextCursor::KeepAnchor); - cursor.endEditBlock(); - control->setTextCursor(cursor); - if(startChange) - q->selectionStartChanged(); - if(endChange) - q->selectionEndChanged(); - startChange = (lastSelectionStart != control->textCursor().selectionStart()); - endChange = (lastSelectionEnd != control->textCursor().selectionEnd()); - if(startChange || endChange) - qWarning() << "QmlGraphicsTextEditPrivate::updateSelection() has failed you."; -} - -void QmlGraphicsTextEdit::updateSelectionMarkers() -{ - Q_D(QmlGraphicsTextEdit); - if(d->lastSelectionStart != d->control->textCursor().selectionStart()){ - d->lastSelectionStart = d->control->textCursor().selectionStart(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->textCursor().selectionEnd()){ - d->lastSelectionEnd = d->control->textCursor().selectionEnd(); - emit selectionEndChanged(); - } -} - -//### we should perhaps be a bit smarter here -- depending on what has changed, we shouldn't -// need to do all the calculations each time -void QmlGraphicsTextEdit::updateSize() -{ - Q_D(QmlGraphicsTextEdit); - if (isComponentComplete()) { - QFontMetrics fm = QFontMetrics(d->font); - int dy = height(); - // ### assumes that if the width is set, the text will fill to edges - // ### (unless wrap is false, then clipping will occur) - if (widthValid()) - d->document->setTextWidth(width()); - dy -= (int)d->document->size().height(); - - int yoff = 0; - if (heightValid()) { - if (d->vAlign == AlignBottom) - yoff = dy; - else if (d->vAlign == AlignVCenter) - yoff = dy/2; - } - setBaselineOffset(fm.ascent() + yoff + d->textMargin); - - //### need to comfirm cost of always setting these - int newWidth = (int)d->document->idealWidth(); - d->document->setTextWidth(newWidth); // ### QTextDoc> Alignment will not work unless textWidth is set. Does Text need this line as well? - int cursorWidth = 1; - if(d->cursor) - cursorWidth = d->cursor->width(); - newWidth += cursorWidth; - if(!d->document->isEmpty()) - newWidth += 3;// ### Need a better way of accounting for space between char and cursor - // ### Setting the implicitWidth triggers another updateSize(), and unless there are bindings nothing has changed. - setImplicitWidth(newWidth); - setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); - - setContentsSize(QSize(width(), height())); - } else { - d->dirty = true; - } - emit update(); -} - -void QmlGraphicsTextEditPrivate::updateDefaultTextOption() -{ - QTextOption opt = document->defaultTextOption(); - int oldAlignment = opt.alignment(); - opt.setAlignment((Qt::Alignment)(int)(hAlign | vAlign)); - - QTextOption::WrapMode oldWrapMode = opt.wrapMode(); - - if (wrap) - opt.setWrapMode(QTextOption::WordWrap); - else - opt.setWrapMode(QTextOption::NoWrap); - - if (oldWrapMode == opt.wrapMode() && oldAlignment == opt.alignment()) - return; - document->setDefaultTextOption(opt); -} - -QT_END_NAMESPACE diff --git a/src/declarative/fx/qmlgraphicstextedit_p.h b/src/declarative/fx/qmlgraphicstextedit_p.h deleted file mode 100644 index efbe998..0000000 --- a/src/declarative/fx/qmlgraphicstextedit_p.h +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXTEDIT_H -#define QMLGRAPHICSTEXTEDIT_H - -#include -#include - -#include -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class QmlGraphicsTextEditPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(VAlignment) - Q_ENUMS(HAlignment) - Q_ENUMS(TextFormat) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) - Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes - Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) - Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) - -public: - QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - enum VAlignment { - AlignTop = Qt::AlignTop, - AlignBottom = Qt::AlignBottom, - AlignVCenter = Qt::AlignVCenter - }; - - enum TextFormat { - PlainText = Qt::PlainText, - RichText = Qt::RichText, - AutoText = Qt::AutoText - }; - - QString text() const; - void setText(const QString &); - - TextFormat textFormat() const; - void setTextFormat(TextFormat format); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - VAlignment vAlign() const; - void setVAlign(VAlignment align); - - bool wrap() const; - void setWrap(bool w); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int pos); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - bool focusOnPress() const; - void setFocusOnPress(bool on); - - bool persistentSelection() const; - void setPersistentSelection(bool on); - - qreal textMargin() const; - void setTextMargin(qreal margin); - - virtual void componentComplete(); - - /* FROM EDIT */ - void setReadOnly(bool); - bool isReadOnly() const; - - void setTextInteractionFlags(Qt::TextInteractionFlags flags); - Qt::TextInteractionFlags textInteractionFlags() const; - - QTextCursor cursorForPosition(const QPoint &pos) const; - QRect cursorRect(const QTextCursor &cursor) const; - QRect cursorRect() const; - - void setTextCursor(const QTextCursor &cursor); - QTextCursor textCursor() const; - - void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); - - QVariant inputMethodQuery(Qt::InputMethodQuery property) const; - -Q_SIGNALS: - void textChanged(const QString &); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectionChanged(); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateImgCache(const QRectF &rect); - void q_textChanged(); - void updateSelectionMarkers(); - void moveCursorDelegate(); - void loadCursorDelegate(); - -private: - void updateSize(); - -protected: - QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - bool event(QEvent *); - void keyPressEvent(QKeyEvent *); - void keyReleaseEvent(QKeyEvent *); - - void focusChanged(bool); - - // mouse filter? - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - - void inputMethodEvent(QInputMethodEvent *e); - - void drawContents(QPainter *, const QRect &); -private: - Q_DISABLE_COPY(QmlGraphicsTextEdit) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextEdit) - -QT_END_HEADER - -#endif diff --git a/src/declarative/fx/qmlgraphicstextedit_p_p.h b/src/declarative/fx/qmlgraphicstextedit_p_p.h deleted file mode 100644 index 4cbc56d..0000000 --- a/src/declarative/fx/qmlgraphicstextedit_p_p.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXTEDIT_P_H -#define QMLGRAPHICSTEXTEDIT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlgraphicsitem.h" -#include "qmlgraphicspainteditem_p_p.h" -#include "qml.h" - - -QT_BEGIN_NAMESPACE -class QTextLayout; -class QTextDocument; -class QTextControl; -class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) - -public: - QmlGraphicsTextEditPrivate() - : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), - dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), - persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), - cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) - { - } - - void init(); - - void updateDefaultTextOption(); - void relayoutDocument(); - void updateSelection(); - - QString text; - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QString style; - QColor styleColor; - bool imgDirty; - QPixmap imgCache; - QPixmap imgStyleCache; - QmlGraphicsTextEdit::HAlignment hAlign; - QmlGraphicsTextEdit::VAlignment vAlign; - bool dirty; - bool wrap; - bool richText; - bool cursorVisible; - bool focusOnPress; - bool persistentSelection; - qreal textMargin; - int lastSelectionStart; - int lastSelectionEnd; - QmlComponent* cursorComponent; - QmlGraphicsItem* cursor; - QmlGraphicsTextEdit::TextFormat format; - QTextDocument *document; - QTextControl *control; -}; - -QT_END_NAMESPACE -#endif diff --git a/src/declarative/fx/qmlgraphicstextinput.cpp b/src/declarative/fx/qmlgraphicstextinput.cpp deleted file mode 100644 index 44ccda1..0000000 --- a/src/declarative/fx/qmlgraphicstextinput.cpp +++ /dev/null @@ -1,777 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include "qmlgraphicstextinput_p.h" -#include "qmlgraphicstextinput_p_p.h" -#include "qmlinfo.h" -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QmlGraphicsTextInput); -QML_DEFINE_NOCREATE_TYPE(QValidator); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); - -/*! - \qmlclass TextInput QFxTextInput - The TextInput item allows you to add an editable line of text to a scene. - - TextInput can only display a single line of text, and can only display - plain text. However it can provide addition input constraints on the text. - - Input constraints include setting a QValidator, an input mask, or a - maximum input length. -*/ -QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsItem* parent) - : QmlGraphicsPaintedItem(*(new QmlGraphicsTextInputPrivate), parent) -{ - Q_D(QmlGraphicsTextInput); - d->init(); -} - -/* - \internal -*/ -QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem* parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - Q_D(QmlGraphicsTextInput); - d->init(); -} - -QmlGraphicsTextInput::~QmlGraphicsTextInput() -{ -} - -/*! - \qmlproperty string TextInput::text - - The text in the TextInput. -*/ - -QString QmlGraphicsTextInput::text() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->text(); -} - -void QmlGraphicsTextInput::setText(const QString &s) -{ - Q_D(QmlGraphicsTextInput); - if(s == text()) - return; - d->control->setText(s); - //emit textChanged(); -} - -/*! - \qmlproperty string TextInput::font.family - \qmlproperty bool TextInput::font.bold - \qmlproperty bool TextInput::font.italic - \qmlproperty bool TextInput::font.underline - \qmlproperty real TextInput::font.pointSize - \qmlproperty int TextInput::font.pixelSize - - Set the TextInput's font attributes. -*/ -QFont QmlGraphicsTextInput::font() const -{ - Q_D(const QmlGraphicsTextInput); - return d->font; -} - -void QmlGraphicsTextInput::setFont(const QFont &font) -{ - Q_D(QmlGraphicsTextInput); - d->font = font; - - d->control->setFont(d->font); - if(d->cursorItem){ - d->cursorItem->setHeight(QFontMetrics(d->font).height()); - moveCursor(); - } - updateSize(); -} - -/*! - \qmlproperty color TextInput::color - - The text color. -*/ -QColor QmlGraphicsTextInput::color() const -{ - Q_D(const QmlGraphicsTextInput); - return d->color; -} - -void QmlGraphicsTextInput::setColor(const QColor &c) -{ - Q_D(QmlGraphicsTextInput); - d->color = c; -} - - -/*! - \qmlproperty color TextInput::selectionColor - - The text highlight color, used behind selections. -*/ -QColor QmlGraphicsTextInput::selectionColor() const -{ - Q_D(const QmlGraphicsTextInput); - return d->selectionColor; -} - -void QmlGraphicsTextInput::setSelectionColor(const QColor &color) -{ - Q_D(QmlGraphicsTextInput); - if (d->selectionColor == color) - return; - - d->selectionColor = color; - QPalette p = d->control->palette(); - p.setColor(QPalette::Highlight, d->selectionColor); - d->control->setPalette(p); -} - -/*! - \qmlproperty color TextInput::selectedTextColor - - The highlighted text color, used in selections. -*/ -QColor QmlGraphicsTextInput::selectedTextColor() const -{ - Q_D(const QmlGraphicsTextInput); - return d->selectedTextColor; -} - -void QmlGraphicsTextInput::setSelectedTextColor(const QColor &color) -{ - Q_D(QmlGraphicsTextInput); - if (d->selectedTextColor == color) - return; - - d->selectedTextColor = color; - QPalette p = d->control->palette(); - p.setColor(QPalette::HighlightedText, d->selectedTextColor); - d->control->setPalette(p); -} - -/*! - \qmlproperty enumeration TextInput::horizontalAlignment - - Sets the horizontal alignment of the text within the TextInput item's - width and height. By default, the text is left aligned. - - TextInput does not have vertical alignment, as the natural height is - exactly the height of the single line of text. If you set the height - manually to something larger, TextInput will always be top aligned - vertically. You can use anchors to align it however you want within - another item. - - The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and - \c AlignHCenter. -*/ -QmlGraphicsTextInput::HAlignment QmlGraphicsTextInput::hAlign() const -{ - Q_D(const QmlGraphicsTextInput); - return d->hAlign; -} - -void QmlGraphicsTextInput::setHAlign(HAlignment align) -{ - Q_D(QmlGraphicsTextInput); - d->hAlign = align; - //TODO: implement -} - -bool QmlGraphicsTextInput::isReadOnly() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->isReadOnly(); -} - -void QmlGraphicsTextInput::setReadOnly(bool ro) -{ - Q_D(QmlGraphicsTextInput); - d->control->setReadOnly(ro); -} - -int QmlGraphicsTextInput::maxLength() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->maxLength(); -} - -void QmlGraphicsTextInput::setMaxLength(int ml) -{ - Q_D(QmlGraphicsTextInput); - d->control->setMaxLength(ml); -} - -/*! - \qmlproperty bool TextInput::cursorVisible - If true the text edit shows a cursor. - - This property is set and unset when the line edit gets focus, but it can also - be set directly (useful, for example, if a KeyProxy might forward keys to it). -*/ -bool QmlGraphicsTextInput::isCursorVisible() const -{ - Q_D(const QmlGraphicsTextInput); - return d->cursorVisible; -} - -void QmlGraphicsTextInput::setCursorVisible(bool on) -{ - Q_D(QmlGraphicsTextInput); - if (d->cursorVisible == on) - return; - d->cursorVisible = on; - d->control->setCursorBlinkPeriod(on?QApplication::cursorFlashTime():0); - //d->control should emit the cursor update regions -} - -/*! - \qmlproperty int TextInput::cursorPosition - The position of the cursor in the TextInput. -*/ -int QmlGraphicsTextInput::cursorPosition() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->cursor(); -} -void QmlGraphicsTextInput::setCursorPosition(int cp) -{ - Q_D(QmlGraphicsTextInput); - d->control->moveCursor(cp); -} - -/*! - \internal - - Returns a Rect which encompasses the cursor, but which may be larger than is - required. Ignores custom cursor delegates. -*/ -QRect QmlGraphicsTextInput::cursorRect() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->cursorRect(); -} - -/*! - \qmlproperty int TextInput::selectionStart - - The cursor position before the first character in the current selection. - Setting this and selectionEnd allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionStart to a value outside of - the current text, selectionStart will not be changed. - - \sa selectionEnd, cursorPosition, selectedText -*/ -int QmlGraphicsTextInput::selectionStart() const -{ - Q_D(const QmlGraphicsTextInput); - return d->lastSelectionStart; -} - -void QmlGraphicsTextInput::setSelectionStart(int s) -{ - Q_D(QmlGraphicsTextInput); - if(d->lastSelectionStart == s || s < 0 || s > text().length()) - return; - d->lastSelectionStart = s; - d->control->setSelection(s, d->lastSelectionEnd - s); -} - -/*! - \qmlproperty int TextInput::selectionEnd - - The cursor position after the last character in the current selection. - Setting this and selectionStart allows you to specify a selection in the - text edit. - - Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionEnd to a value outside of - the current text, selectionEnd will not be changed. - - \sa selectionStart, cursorPosition, selectedText -*/ -int QmlGraphicsTextInput::selectionEnd() const -{ - Q_D(const QmlGraphicsTextInput); - return d->lastSelectionEnd; -} - -void QmlGraphicsTextInput::setSelectionEnd(int s) -{ - Q_D(QmlGraphicsTextInput); - if(d->lastSelectionEnd == s || s < 0 || s > text().length()) - return; - d->lastSelectionEnd = s; - d->control->setSelection(d->lastSelectionStart, s - d->lastSelectionStart); -} - -/*! - \qmlproperty string TextInput::selectedText - - This read-only property provides the text currently selected in the - text input. - - It is equivalent to the following snippet, but is faster and easier - to use. - - \qml - myTextInput.text.toString().substring(myTextInput.selectionStart, - myTextInput.selectionEnd); - \endqml -*/ -QString QmlGraphicsTextInput::selectedText() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->selectedText(); -} - -/*! - \qmlproperty bool TextInput::focusOnPress - - Whether the TextInput should gain focus on a mouse press. By default this is - set to true. -*/ -bool QmlGraphicsTextInput::focusOnPress() const -{ - Q_D(const QmlGraphicsTextInput); - return d->focusOnPress; -} - -void QmlGraphicsTextInput::setFocusOnPress(bool b) -{ - Q_D(QmlGraphicsTextInput); - d->focusOnPress = b; -} - -/*! - \qmlproperty QValidator* TextInput::validator - - Allows you to set a QValidator on the TextInput. When a validator is set - the TextInput will only accept input which leaves the text property in - an acceptable or intermediate state. The accepted signal will only be sent - if the text is in an acceptable state when enter is pressed. - - \sa acceptableInput, inputMask -*/ -QValidator* QmlGraphicsTextInput::validator() const -{ - Q_D(const QmlGraphicsTextInput); - //###const cast isn't good, but needed for property system? - return const_cast(d->control->validator()); -} - -void QmlGraphicsTextInput::setValidator(QValidator* v) -{ - Q_D(QmlGraphicsTextInput); - d->control->setValidator(v); - if(!d->control->hasAcceptableInput()){ - d->oldValidity = false; - emit acceptableInputChanged(); - } -} - -/*! - \qmlproperty string TextInput::inputMask - - Allows you to set an input mask on the TextInput, restricting the allowable - text inputs. See QLineEdit::inputMask for further details, as the exact - same mask strings are used by TextInput. - - \sa acceptableInput, validator -*/ -QString QmlGraphicsTextInput::inputMask() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->inputMask(); -} - -void QmlGraphicsTextInput::setInputMask(const QString &im) -{ - Q_D(QmlGraphicsTextInput); - d->control->setInputMask(im); -} - -/*! - \qmlproperty bool TextInput::acceptableInput - - This property is always true unless a validator or input mask has been set. - If a validator or input mask has been set, this property will only be true - if the current text is acceptable to the validator or input mask as a final - string (not as an intermediate string). -*/ -bool QmlGraphicsTextInput::hasAcceptableInput() const -{ - Q_D(const QmlGraphicsTextInput); - return d->control->hasAcceptableInput(); -} - -/*! - \qmlproperty TextInput.EchoMode TextInput::echoMode - - Specifies how the text should be displayed in the TextInput. - The default is Normal, which displays the text as it is. Other values - are Password, which displays asterixes instead of characters, NoEcho, - which displays nothing, and PasswordEchoOnEdit, which displays all but the - current character as asterixes. - -*/ -QmlGraphicsTextInput::EchoMode QmlGraphicsTextInput::echoMode() const -{ - Q_D(const QmlGraphicsTextInput); - return (QmlGraphicsTextInput::EchoMode)d->control->echoMode(); -} - -void QmlGraphicsTextInput::setEchoMode(QmlGraphicsTextInput::EchoMode echo) -{ - Q_D(QmlGraphicsTextInput); - d->control->setEchoMode((uint)echo); -} - -/*! - \qmlproperty Component TextInput::cursorDelegate - The delegate for the cursor in the TextInput. - - If you set a cursorDelegate for a TextInput, this delegate will be used for - drawing the cursor instead of the standard cursor. An instance of the - delegate will be created and managed by the TextInput when a cursor is - needed, and the x property of delegate instance will be set so as - to be one pixel before the top left of the current character. - - Note that the root item of the delegate component must be a QmlGraphicsItem or - QmlGraphicsItem derived item. -*/ -QmlComponent* QmlGraphicsTextInput::cursorDelegate() const -{ - Q_D(const QmlGraphicsTextInput); - return d->cursorComponent; -} - -void QmlGraphicsTextInput::setCursorDelegate(QmlComponent* c) -{ - Q_D(QmlGraphicsTextInput); - d->cursorComponent = c; - if(!c){ - //note that the components are owned by something else - disconnect(d->control, SIGNAL(cursorPositionChanged(int, int)), - this, SLOT(moveCursor())); - delete d->cursorItem; - }else{ - d->startCreatingCursor(); - } -} - -void QmlGraphicsTextInputPrivate::startCreatingCursor() -{ - Q_Q(QmlGraphicsTextInput); - q->connect(control, SIGNAL(cursorPositionChanged(int, int)), - q, SLOT(moveCursor())); - if(cursorComponent->isReady()){ - q->createCursor(); - }else if(cursorComponent->isLoading()){ - q->connect(cursorComponent, SIGNAL(statusChanged(int)), - q, SLOT(createCursor())); - }else{//isError - qmlInfo(QmlGraphicsTextInput::tr("Could not load cursor delegate"), q); - qWarning() << cursorComponent->errors(); - } -} - -void QmlGraphicsTextInput::createCursor() -{ - Q_D(QmlGraphicsTextInput); - if(d->cursorComponent->isError()){ - qmlInfo(tr("Could not load cursor delegate"),this); - qWarning() << d->cursorComponent->errors(); - return; - } - - if(!d->cursorComponent->isReady()) - return; - - if(d->cursorItem) - delete d->cursorItem; - d->cursorItem = qobject_cast(d->cursorComponent->create()); - if(!d->cursorItem){ - qmlInfo(tr("Could not instantiate cursor delegate"),this); - //The failed instantiation should print its own error messages - return; - } - - d->cursorItem->setParentItem(this); - d->cursorItem->setX(d->control->cursorToX()); - d->cursorItem->setHeight(d->control->height()); -} - -void QmlGraphicsTextInput::moveCursor() -{ - Q_D(QmlGraphicsTextInput); - if(!d->cursorItem) - return; - d->cursorItem->setX(d->control->cursorToX() - d->hscroll); -} - -int QmlGraphicsTextInput::xToPos(int x) -{ - Q_D(const QmlGraphicsTextInput); - return d->control->xToPos(x - d->hscroll); -} - -void QmlGraphicsTextInput::focusChanged(bool hasFocus) -{ - Q_D(QmlGraphicsTextInput); - d->focused = hasFocus; - setCursorVisible(hasFocus); - QmlGraphicsItem::focusChanged(hasFocus); -} - -void QmlGraphicsTextInput::keyPressEvent(QKeyEvent* ev) -{ - Q_D(QmlGraphicsTextInput); - if((d->control->cursor() == 0 && ev->key() == Qt::Key_Left) - || (d->control->cursor() == d->control->text().length() - && ev->key() == Qt::Key_Right)){ - //ignore when moving off the end - ev->ignore(); - }else{ - d->control->processKeyEvent(ev); - } - if (!ev->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(ev); -} - -void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(QmlGraphicsTextInput); - if(d->focusOnPress){ - setFocus(true); - setCursorVisible(true); - d->focused = true; - } - d->control->processEvent(event); -} - -bool QmlGraphicsTextInput::event(QEvent* ev) -{ - Q_D(QmlGraphicsTextInput); - //Anything we don't deal with ourselves, pass to the control - bool handled = false; - switch(ev->type()){ - case QEvent::KeyPress: - case QEvent::KeyRelease://###Should the control be doing anything with release? - case QEvent::GraphicsSceneMousePress: - break; - default: - handled = d->control->processEvent(ev); - } - if(!handled) - return QmlGraphicsPaintedItem::event(ev); - return true; -} - -void QmlGraphicsTextInput::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.width() != oldGeometry.width()) - updateSize(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsTextInput::drawContents(QPainter *p, const QRect &r) -{ - Q_D(QmlGraphicsTextInput); - p->setRenderHint(QPainter::TextAntialiasing, true); - p->save(); - p->setPen(QPen(d->color)); - int flags = QLineControl::DrawText; - if(!isReadOnly() && d->cursorVisible && !d->cursorItem) - flags |= QLineControl::DrawCursor; - if (d->control->hasSelectedText()){ - flags |= QLineControl::DrawSelections; - } - - QPoint offset = QPoint(0,0); - QRect clipRect = r; - d->control->draw(p, offset, clipRect, flags); - - p->restore(); -} - -void QmlGraphicsTextInput::selectAll() -{ - Q_D(QmlGraphicsTextInput); - d->control->setSelection(0, d->control->text().length()); -} - - -/*! - \qmlproperty bool TextInput::smooth - - Set this property if you want the text to be smoothly scaled or - transformed. Smooth filtering gives better visual quality, but is slower. If - the item is displayed at its natural size, this property has no visual or - performance effect. - - \note Generally scaling artifacts are only visible if the item is stationary on - the screen. A common pattern when animating an item is to disable smooth - filtering at the beginning of the animation and reenable it at the conclusion. -*/ - -void QmlGraphicsTextInputPrivate::init() -{ - Q_Q(QmlGraphicsTextInput); - control->setCursorWidth(1); - control->setPasswordCharacter(QLatin1Char('*')); - control->setLayoutDirection(Qt::LeftToRight); - q->setSmoothTransform(smooth); - q->setAcceptedMouseButtons(Qt::LeftButton); - q->setFlag(QGraphicsItem::ItemHasNoContents, false); - q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); - q->connect(control, SIGNAL(cursorPositionChanged(int,int)), - q, SLOT(cursorPosChanged())); - q->connect(control, SIGNAL(selectionChanged()), - q, SLOT(selectionChanged())); - q->connect(control, SIGNAL(textChanged(const QString &)), - q, SLOT(q_textChanged())); - q->connect(control, SIGNAL(accepted()), - q, SIGNAL(accepted())); - q->connect(control, SIGNAL(updateNeeded(QRect)), - q, SLOT(updateRect(QRect))); - q->connect(control, SIGNAL(cursorPositionChanged(int,int)), - q, SLOT(updateRect()));//TODO: Only update rect between pos's - q->connect(control, SIGNAL(selectionChanged()), - q, SLOT(updateRect()));//TODO: Only update rect in selection - //Note that above TODOs probably aren't that big a savings - q->updateSize(); - oldValidity = control->hasAcceptableInput(); - lastSelectionStart = 0; - lastSelectionEnd = 0; -} - -void QmlGraphicsTextInput::cursorPosChanged() -{ - Q_D(QmlGraphicsTextInput); - emit cursorPositionChanged(); - - if(!d->control->hasSelectedText()){ - if(d->lastSelectionStart != d->control->cursor()){ - d->lastSelectionStart = d->control->cursor(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->cursor()){ - d->lastSelectionEnd = d->control->cursor(); - emit selectionEndChanged(); - } - } -} - -void QmlGraphicsTextInput::selectionChanged() -{ - Q_D(QmlGraphicsTextInput); - emit selectedTextChanged(); - - if(d->lastSelectionStart != d->control->selectionStart()){ - d->lastSelectionStart = d->control->selectionStart(); - if(d->lastSelectionStart == -1) - d->lastSelectionStart = d->control->cursor(); - emit selectionStartChanged(); - } - if(d->lastSelectionEnd != d->control->selectionEnd()){ - d->lastSelectionEnd = d->control->selectionEnd(); - if(d->lastSelectionEnd == -1) - d->lastSelectionEnd = d->control->cursor(); - emit selectionEndChanged(); - } -} - -void QmlGraphicsTextInput::q_textChanged() -{ - Q_D(QmlGraphicsTextInput); - updateSize(); - emit textChanged(); - if(hasAcceptableInput() != d->oldValidity){ - d->oldValidity = hasAcceptableInput(); - emit acceptableInputChanged(); - } -} - -void QmlGraphicsTextInput::updateRect(const QRect &r) -{ - if(r == QRect()) - clearCache(); - else - dirtyCache(r); - update(); -} - -void QmlGraphicsTextInput::updateSize(bool needsRedraw) -{ - Q_D(QmlGraphicsTextInput); - int w = width(); - int h = height(); - setImplicitHeight(d->control->height()); - int cursorWidth = d->control->cursorWidth(); - if(d->cursorItem) - cursorWidth = d->cursorItem->width(); - //### Is QFontMetrics too slow? - QFontMetricsF fm(d->font); - setImplicitWidth(fm.width(d->control->displayText())+cursorWidth); - setContentsSize(QSize(width(), height()));//Repaints if changed - if(w==width() && h==height() && needsRedraw){ - clearCache(); - update(); - } -} - -QT_END_NAMESPACE - diff --git a/src/declarative/fx/qmlgraphicstextinput_p.h b/src/declarative/fx/qmlgraphicstextinput_p.h deleted file mode 100644 index 7d3fef0..0000000 --- a/src/declarative/fx/qmlgraphicstextinput_p.h +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXTINPUT_H -#define QMLGRAPHICSTEXTINPUT_H - -#include "qmlgraphicstext_p.h" -#include "qmlgraphicspainteditem_p.h" -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlGraphicsTextInputPrivate; -class QValidator; -class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem -{ - Q_OBJECT - Q_ENUMS(HAlignment) - Q_ENUMS(EchoMode) - - Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) - Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) - Q_PROPERTY(QFont font READ font WRITE setFont) - Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) - - Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) - Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) - Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) - Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) - Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) - Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) - Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) - - Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) - Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) - Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) - Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) - Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) - Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) - -public: - QmlGraphicsTextInput(QmlGraphicsItem* parent=0); - ~QmlGraphicsTextInput(); - - enum EchoMode {//To match QLineEdit::EchoMode - Normal, - NoEcho, - Password, - PasswordEchoOnEdit - }; - - enum HAlignment { - AlignLeft = Qt::AlignLeft, - AlignRight = Qt::AlignRight, - AlignHCenter = Qt::AlignHCenter - }; - - //### Should we have this function, x based properties, - //### or copy TextEdit with x instead of QTextCursor? - Q_INVOKABLE int xToPos(int x); - - QString text() const; - void setText(const QString &); - - QFont font() const; - void setFont(const QFont &font); - - QColor color() const; - void setColor(const QColor &c); - - QColor selectionColor() const; - void setSelectionColor(const QColor &c); - - QColor selectedTextColor() const; - void setSelectedTextColor(const QColor &c); - - HAlignment hAlign() const; - void setHAlign(HAlignment align); - - bool isReadOnly() const; - void setReadOnly(bool); - - bool isCursorVisible() const; - void setCursorVisible(bool on); - - int cursorPosition() const; - void setCursorPosition(int cp); - - QRect cursorRect() const; - - int selectionStart() const; - void setSelectionStart(int); - - int selectionEnd() const; - void setSelectionEnd(int); - - QString selectedText() const; - - int maxLength() const; - void setMaxLength(int ml); - - QValidator * validator() const; - void setValidator(QValidator* v); - - QString inputMask() const; - void setInputMask(const QString &im); - - EchoMode echoMode() const; - void setEchoMode(EchoMode echo); - - QmlComponent* cursorDelegate() const; - void setCursorDelegate(QmlComponent*); - - bool focusOnPress() const; - void setFocusOnPress(bool); - - bool hasAcceptableInput() const; - - void drawContents(QPainter *p,const QRect &r); -Q_SIGNALS: - void textChanged(); - void cursorPositionChanged(); - void selectionStartChanged(); - void selectionEndChanged(); - void selectedTextChanged(); - void accepted(); - void acceptableInputChanged(); - -protected: - QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void keyPressEvent(QKeyEvent* ev); - bool event(QEvent *e); - - void focusChanged(bool hasFocus); - -public Q_SLOTS: - void selectAll(); - -private Q_SLOTS: - void updateSize(bool needsRedraw = true); - void q_textChanged(); - void selectionChanged(); - void createCursor(); - void moveCursor(); - void cursorPosChanged(); - void updateRect(const QRect &r = QRect()); - -private: - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsTextInput) -QML_DECLARE_TYPE(QValidator) -QML_DECLARE_TYPE(QIntValidator) - -QT_END_HEADER - -#endif // QMLGRAPHICSTEXTINPUT_H diff --git a/src/declarative/fx/qmlgraphicstextinput_p_p.h b/src/declarative/fx/qmlgraphicstextinput_p_p.h deleted file mode 100644 index 4e9f209..0000000 --- a/src/declarative/fx/qmlgraphicstextinput_p_p.h +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSTEXTINPUT_P_H -#define QMLGRAPHICSTEXTINPUT_P_H - -#include "qmlgraphicstextinput_p.h" -#include "qml.h" -#include "qmlgraphicspainteditem_p_p.h" -#include "private/qlinecontrol_p.h" -#include -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. - -QT_BEGIN_NAMESPACE - -class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsTextInput) -public: - QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), - color((QRgb)0), style(QmlGraphicsText::Normal), - styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), - hscroll(0), oldScroll(0), focused(false), focusOnPress(true), - cursorVisible(false) - { - } - - ~QmlGraphicsTextInputPrivate() - { - delete control; - } - - void init(); - void startCreatingCursor(); - - QLineControl* control; - - QFont font; - QColor color; - QColor selectionColor; - QColor selectedTextColor; - QmlGraphicsText::TextStyle style; - QColor styleColor; - QmlGraphicsTextInput::HAlignment hAlign; - QPointer cursorComponent; - QPointer cursorItem; - - int lastSelectionStart; - int lastSelectionEnd; - int oldHeight; - int oldWidth; - bool oldValidity; - int hscroll; - int oldScroll; - bool focused; - bool focusOnPress; - bool cursorVisible; -}; - -QT_END_NAMESPACE - -#endif - diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp b/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp deleted file mode 100644 index 686c0da..0000000 --- a/src/declarative/fx/qmlgraphicsvisualitemmodel.cpp +++ /dev/null @@ -1,1033 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include "qmlgraphicsitem.h" -#include -#include -#include -#include "qhash.h" -#include "qlist.h" -#include "private/qobject_p.h" -#include "private/qmetaobjectbuilder_p.h" -#include -#include -#include "qmlinfo.h" -#include "qmlgraphicsvisualitemmodel_p.h" -#include "private/qguard_p.h" -#include - -QML_DECLARE_TYPE(QListModelInterface) - -QT_BEGIN_NAMESPACE - -class QmlGraphicsVisualItemModelAttached : public QObject -{ - Q_OBJECT - -public: - QmlGraphicsVisualItemModelAttached(QObject *parent) - : QObject(parent), m_index(0) {} - ~QmlGraphicsVisualItemModelAttached() { - attachedProperties.remove(parent()); - } - - Q_PROPERTY(int index READ index NOTIFY indexChanged) - int index() const { return m_index; } - void setIndex(int idx) { - if (m_index != idx) { - m_index = idx; - emit indexChanged(); - } - } - - static QmlGraphicsVisualItemModelAttached *properties(QObject *obj) { - QmlGraphicsVisualItemModelAttached *rv = attachedProperties.value(obj); - if (!rv) { - rv = new QmlGraphicsVisualItemModelAttached(obj); - attachedProperties.insert(obj, rv); - } - return rv; - } - -Q_SIGNALS: - void indexChanged(); - -public: - int m_index; - - static QHash attachedProperties; -}; - -QHash QmlGraphicsVisualItemModelAttached::attachedProperties; - - -class QmlGraphicsVisualItemModelPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsVisualItemModel) -public: - QmlGraphicsVisualItemModelPrivate() : QObjectPrivate(), children(this) {} - - struct ItemList : public QmlConcreteList - { - ItemList(QmlGraphicsVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} - - void append(QmlGraphicsItem *item); - - QmlGraphicsVisualItemModelPrivate *model; - }; - - void itemAppended() { - Q_Q(QmlGraphicsVisualItemModel); - QmlGraphicsVisualItemModelAttached *attached = QmlGraphicsVisualItemModelAttached::properties(children.last()); - attached->setIndex(children.count()-1); - emit q->itemsInserted(children.count()-1, 1); - emit q->countChanged(); - } - - void emitChildrenChanged() { - Q_Q(QmlGraphicsVisualItemModel); - emit q->childrenChanged(); - } - ItemList children; -}; - - -/*! - \qmlclass VisualItemModel QmlGraphicsVisualItemModel - \brief The VisualItemModel allows items to be provided to a view. - - The children of the VisualItemModel are provided in a model which - can be used in a view. Note that no delegate should be - provided to a view since the VisualItemModel contains the - visual delegate (items). - - An item can determine its index within the - model via the VisualItemModel.index attached property. - - The example below places three colored rectangles in a ListView. - \code - Item { - VisualItemModel { - id: itemModel - Rectangle { height: 30; width: 80; color: "red" } - Rectangle { height: 30; width: 80; color: "green" } - Rectangle { height: 30; width: 80; color: "blue" } - } - - ListView { - anchors.fill: parent - model: itemModel - } - } - \endcode -*/ -QmlGraphicsVisualItemModel::QmlGraphicsVisualItemModel() - : QmlGraphicsVisualModel(*(new QmlGraphicsVisualItemModelPrivate)) -{ -} - -QmlList *QmlGraphicsVisualItemModel::children() -{ - Q_D(QmlGraphicsVisualItemModel); - return &(d->children); -} - -/*! - \qmlproperty int VisualItemModel::count - - The number of items in the model. This property is readonly. -*/ -int QmlGraphicsVisualItemModel::count() const -{ - Q_D(const QmlGraphicsVisualItemModel); - return d->children.count(); -} - -bool QmlGraphicsVisualItemModel::isValid() const -{ - return true; -} - -QmlGraphicsItem *QmlGraphicsVisualItemModel::item(int index, bool) -{ - Q_D(QmlGraphicsVisualItemModel); - return d->children.at(index); -} - -QmlGraphicsVisualModel::ReleaseFlags QmlGraphicsVisualItemModel::release(QmlGraphicsItem *) -{ - // Nothing to do - return 0; -} - -void QmlGraphicsVisualItemModel::completeItem() -{ - // Nothing to do -} - -QVariant QmlGraphicsVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) -{ - Q_D(QmlGraphicsVisualItemModel); - QmlContext *ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - ctxt->addDefaultObject(d->children.at(index)); - QmlExpression e(ctxt, expression, objectContext); - e.setTrackChange(false); - QVariant value = e.value(); - delete ctxt; - return value; -} - -int QmlGraphicsVisualItemModel::indexOf(QmlGraphicsItem *item, QObject *) const -{ - Q_D(const QmlGraphicsVisualItemModel); - return d->children.indexOf(item); -} - -void QmlGraphicsVisualItemModelPrivate::ItemList::append(QmlGraphicsItem *item) -{ - QmlConcreteList::append(item); - item->QObject::setParent(model->q_ptr); - model->itemAppended(); - - model->emitChildrenChanged(); -} - -QmlGraphicsVisualItemModelAttached *QmlGraphicsVisualItemModel::qmlAttachedProperties(QObject *obj) -{ - return QmlGraphicsVisualItemModelAttached::properties(obj); -} - - -class QmlGraphicsVisualDataModelParts; -class QmlGraphicsVisualDataModelData; -class QmlGraphicsVisualDataModelPrivate : public QObjectPrivate -{ -public: - QmlGraphicsVisualDataModelPrivate(QmlContext *); - - static QmlGraphicsVisualDataModelPrivate *get(QmlGraphicsVisualDataModel *m) { - return static_cast(QObjectPrivate::get(m)); - } - - QGuard m_listModelInterface; - QGuard m_abstractItemModel; - QGuard m_visualItemModel; - QString m_part; - - QmlComponent *m_delegate; - QmlContext *m_context; - QList m_roles; - QHash m_roleNames; - void ensureRoles() { - if (m_roleNames.isEmpty()) { - if (m_listModelInterface) { - m_roles = m_listModelInterface->roles(); - for (int ii = 0; ii < m_roles.count(); ++ii) - m_roleNames.insert(m_listModelInterface->toString(m_roles.at(ii)), m_roles.at(ii)); - if (m_roles.count() == 1) - m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); - } else if (m_abstractItemModel) { - for (QHash::const_iterator it = m_abstractItemModel->roleNames().begin(); - it != m_abstractItemModel->roleNames().end(); ++it) { - m_roles.append(it.key()); - m_roleNames.insert(QString::fromUtf8(*it), it.key()); - } - if (m_roles.count() == 1) - m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); - } else if (m_listAccessor) { - m_roleNames.insert(QLatin1String("modelData"), 0); - if (m_listAccessor->type() == QmlListAccessor::Instance) { - if (QObject *object = m_listAccessor->at(0).value()) { - int count = object->metaObject()->propertyCount(); - for (int ii = 1; ii < count; ++ii) { - const QMetaProperty &prop = object->metaObject()->property(ii); - m_roleNames.insert(QString::fromUtf8(prop.name()), 0); - } - } - } - } - } - } - - struct ObjectRef { - ObjectRef(QObject *object=0) : obj(object), ref(1) {} - QObject *obj; - int ref; - }; - class Cache : public QHash { - public: - QObject *getItem(int index) { - QObject *item = 0; - QHash::iterator it = find(index); - if (it != end()) { - (*it).ref++; - item = (*it).obj; - } - return item; - } - QObject *item(int index) { - QObject *item = 0; - QHash::const_iterator it = find(index); - if (it != end()) - item = (*it).obj; - return item; - } - void insertItem(int index, QObject *obj) { - insert(index, ObjectRef(obj)); - } - bool releaseItem(QObject *obj) { - QHash::iterator it = begin(); - for (; it != end(); ++it) { - ObjectRef &objRef = *it; - if (objRef.obj == obj) { - if (--objRef.ref == 0) { - erase(it); - return true; - } - break; - } - } - return false; - } - }; - - Cache m_cache; - QHash m_packaged; - - QmlGraphicsVisualDataModelParts *m_parts; - friend class QmlGraphicsVisualItemParts; - - QmlGraphicsVisualDataModelData *data(QObject *item); - - QVariant m_modelVariant; - QmlListAccessor *m_listAccessor; - - int modelCount() const { - if (m_visualItemModel) - return m_visualItemModel->count(); - if (m_listModelInterface) - return m_listModelInterface->count(); - if (m_abstractItemModel) - return m_abstractItemModel->rowCount(); - if (m_listAccessor) - return m_listAccessor->count(); - return 0; - } -}; - -class QmlGraphicsVisualDataModelDataMetaObject : public QmlOpenMetaObject -{ -public: - QmlGraphicsVisualDataModelDataMetaObject(QObject *parent) - : QmlOpenMetaObject(parent) {} - - virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); - virtual int createProperty(const char *, const char *); - -private: - friend class QmlGraphicsVisualDataModelData; - QList roles; -}; - -class QmlGraphicsVisualDataModelData : public QObject -{ -Q_OBJECT -public: - QmlGraphicsVisualDataModelData(int index, QmlGraphicsVisualDataModel *model); - ~QmlGraphicsVisualDataModelData(); - - Q_PROPERTY(int index READ index NOTIFY indexChanged) - int index() const; - void setIndex(int index); - - int count() const; - int role(int) const; - void setValue(int, const QVariant &); - -Q_SIGNALS: - void indexChanged(); - -private: - friend class QmlGraphicsVisualDataModelDataMetaObject; - int m_index; - QGuard m_model; - QmlGraphicsVisualDataModelDataMetaObject *m_meta; -}; - -int QmlGraphicsVisualDataModelData::count() const -{ - return m_meta->count(); -} - -int QmlGraphicsVisualDataModelData::role(int id) const -{ - Q_ASSERT(id >= 0 && id < count()); - return m_meta->roles.at(id); -} - -void QmlGraphicsVisualDataModelData::setValue(int id, const QVariant &val) -{ - m_meta->setValue(id, val); -} - -int QmlGraphicsVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) -{ - QmlGraphicsVisualDataModelData *data = - static_cast(object()); - - if (!data->m_model) - return -1; - - QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); - - if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { - model->ensureRoles(); - if (model->m_roleNames.contains(QString::fromUtf8(name))) { - return QmlOpenMetaObject::createProperty(name, type); - } else if (model->m_listAccessor->type() == QmlListAccessor::QmlList) { - QObject *object = model->m_listAccessor->at(data->m_index).value(); - if (object && object->property(name).isValid()) - return QmlOpenMetaObject::createProperty(name, type); - } - } else { - model->ensureRoles(); - QString sname = QString::fromUtf8(name); - if (model->m_roleNames.contains(sname)) - return QmlOpenMetaObject::createProperty(name, type); - } - return -1; -} - -QVariant -QmlGraphicsVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) -{ - prop.setWritable(false); - - QmlGraphicsVisualDataModelData *data = - static_cast(object()); - - Q_ASSERT(data->m_model); - QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); - - QString name = QString::fromUtf8(prop.name()); - if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { - if (name == QLatin1String("modelData")) { - if (model->m_listAccessor->type() == QmlListAccessor::Instance) { - QObject *object = model->m_listAccessor->at(0).value(); - return object->metaObject()->property(1).read(object); // the first property after objectName - } - return model->m_listAccessor->at(data->m_index); - } else { - // return any property of a single object instance. - QObject *object = model->m_listAccessor->at(data->m_index).value(); - return object->property(prop.name()); - } - } else if (model->m_listModelInterface) { - model->ensureRoles(); - QHash::const_iterator it = model->m_roleNames.find(name); - if (it != model->m_roleNames.end()) { - roles.append(*it); - QHash values = model->m_listModelInterface->data(data->m_index, QList() << *it); - if (values.isEmpty()) - return QVariant(); - else - return values.value(*it); - } else if (model->m_roles.count() == 1 && name == QLatin1String("modelData")) { - //for compatability with other lists, assign modelData if there is only a single role - QHash values = model->m_listModelInterface->data(data->m_index, QList() << model->m_roles.first()); - if (values.isEmpty()) - return QVariant(); - else - return *values.begin(); - } - } else if (model->m_abstractItemModel) { - model->ensureRoles(); - QHash::const_iterator it = model->m_roleNames.find(name); - if (it != model->m_roleNames.end()) { - roles.append(*it); - QModelIndex index = model->m_abstractItemModel->index(data->m_index, 0); - return model->m_abstractItemModel->data(index, *it); - } - } - Q_ASSERT(!"Can never be reached"); - return QVariant(); -} - -QmlGraphicsVisualDataModelData::QmlGraphicsVisualDataModelData(int index, - QmlGraphicsVisualDataModel *model) -: m_index(index), m_model(model), - m_meta(new QmlGraphicsVisualDataModelDataMetaObject(this)) -{ -} - -QmlGraphicsVisualDataModelData::~QmlGraphicsVisualDataModelData() -{ -} - -int QmlGraphicsVisualDataModelData::index() const -{ - return m_index; -} - -// This is internal only - it should not be set from qml -void QmlGraphicsVisualDataModelData::setIndex(int index) -{ - m_index = index; - emit indexChanged(); -} - -class QmlGraphicsVisualDataModelPartsMetaObject : public QmlOpenMetaObject -{ -public: - QmlGraphicsVisualDataModelPartsMetaObject(QObject *parent) - : QmlOpenMetaObject(parent) {} - - virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); -}; - -class QmlGraphicsVisualDataModelParts : public QObject -{ -Q_OBJECT -public: - QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent); - -private: - friend class QmlGraphicsVisualDataModelPartsMetaObject; - QmlGraphicsVisualDataModel *model; -}; - -QVariant -QmlGraphicsVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) -{ - prop.setWritable(false); - - QmlGraphicsVisualDataModel *m = new QmlGraphicsVisualDataModel; - m->setParent(object()); - m->setPart(QString::fromUtf8(prop.name())); - m->setModel(QVariant::fromValue(static_cast(object())->model)); - - QVariant var = QVariant::fromValue((QObject *)m); - return var; -} - -QmlGraphicsVisualDataModelParts::QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent) -: QObject(parent), model(parent) -{ - new QmlGraphicsVisualDataModelPartsMetaObject(this); -} - -QmlGraphicsVisualDataModelPrivate::QmlGraphicsVisualDataModelPrivate(QmlContext *ctxt) -: m_listModelInterface(0), m_abstractItemModel(0), m_visualItemModel(0), m_delegate(0) -, m_context(ctxt), m_parts(0), m_listAccessor(0) -{ -} - -QmlGraphicsVisualDataModelData *QmlGraphicsVisualDataModelPrivate::data(QObject *item) -{ - QmlGraphicsVisualDataModelData *dataItem = - item->findChild(); - Q_ASSERT(dataItem); - return dataItem; -} - -QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel() -: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(0))) -{ -} - -QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel(QmlContext *ctxt) -: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(ctxt))) -{ -} - -QmlGraphicsVisualDataModel::~QmlGraphicsVisualDataModel() -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_listAccessor) - delete d->m_listAccessor; -} - -QVariant QmlGraphicsVisualDataModel::model() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->m_modelVariant; -} - -void QmlGraphicsVisualDataModel::setModel(const QVariant &model) -{ - Q_D(QmlGraphicsVisualDataModel); - delete d->m_listAccessor; - d->m_listAccessor = 0; - d->m_modelVariant = model; - if (d->m_listModelInterface) { - // Assume caller has released all items. - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), - this, SLOT(_q_itemsChanged(int,int,QList))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), - this, SLOT(_q_itemsInserted(int,int))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), - this, SLOT(_q_itemsRemoved(int,int))); - QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), - this, SLOT(_q_itemsMoved(int,int,int))); - d->m_listModelInterface = 0; - } else if (d->m_abstractItemModel) { - QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), - this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); - QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), - this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); - QObject::disconnect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), - this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); - } else if (d->m_visualItemModel) { - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), - this, SIGNAL(itemsInserted(int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), - this, SIGNAL(itemsRemoved(int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), - this, SIGNAL(itemsMoved(int,int,int))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), - this, SLOT(_q_createdPackage(int,QmlPackage*))); - QObject::disconnect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), - this, SLOT(_q_destroyingPackage(QmlPackage*))); - d->m_visualItemModel = 0; - } - - d->m_roles.clear(); - d->m_roleNames.clear(); - - QObject *object = qvariant_cast(model); - if (object && (d->m_listModelInterface = qobject_cast(object))) { - QObject::connect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), - this, SLOT(_q_itemsChanged(int,int,QList))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), - this, SLOT(_q_itemsInserted(int,int))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), - this, SLOT(_q_itemsRemoved(int,int))); - QObject::connect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), - this, SLOT(_q_itemsMoved(int,int,int))); - if (d->m_delegate && d->m_listModelInterface->count()) - emit itemsInserted(0, d->m_listModelInterface->count()); - return; - } else if (object && (d->m_abstractItemModel = qobject_cast(object))) { - QObject::connect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), - this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); - QObject::connect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), - this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); - QObject::connect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), - this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); - return; - } - if ((d->m_visualItemModel = qvariant_cast(model))) { - QObject::connect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), - this, SIGNAL(itemsInserted(int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), - this, SIGNAL(itemsRemoved(int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), - this, SIGNAL(itemsMoved(int,int,int))); - QObject::connect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), - this, SLOT(_q_createdPackage(int,QmlPackage*))); - QObject::connect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), - this, SLOT(_q_destroyingPackage(QmlPackage*))); - return; - } - d->m_listAccessor = new QmlListAccessor; - d->m_listAccessor->setList(model, d->m_context?d->m_context->engine():qmlEngine(this)); - if (d->m_delegate && d->modelCount()) { - emit itemsInserted(0, d->modelCount()); - emit countChanged(); - } -} - -QmlComponent *QmlGraphicsVisualDataModel::delegate() const -{ - Q_D(const QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->delegate(); - return d->m_delegate; -} - -void QmlGraphicsVisualDataModel::setDelegate(QmlComponent *delegate) -{ - Q_D(QmlGraphicsVisualDataModel); - d->m_delegate = delegate; - if (d->modelCount()) { - emit itemsInserted(0, d->modelCount()); - emit countChanged(); - } -} - -QString QmlGraphicsVisualDataModel::part() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->m_part; -} - -void QmlGraphicsVisualDataModel::setPart(const QString &part) -{ - Q_D(QmlGraphicsVisualDataModel); - d->m_part = part; -} - -int QmlGraphicsVisualDataModel::count() const -{ - Q_D(const QmlGraphicsVisualDataModel); - return d->modelCount(); -} - -QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, bool complete) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->item(index, d->m_part.toUtf8(), complete); - return item(index, QByteArray(), complete); -} - -/* - Returns ReleaseStatus flags. -*/ -QmlGraphicsVisualDataModel::ReleaseFlags QmlGraphicsVisualDataModel::release(QmlGraphicsItem *item) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->release(item); - - ReleaseFlags stat = 0; - QObject *obj = item; - bool inPackage = false; - - QHash::iterator it = d->m_packaged.find(item); - if (it != d->m_packaged.end()) { - QmlPackage *package = *it; - d->m_packaged.erase(it); - if (d->m_packaged.contains(item)) - stat |= Referenced; - inPackage = true; - obj = package; // fall through and delete - } - - if (d->m_cache.releaseItem(obj)) { - if (inPackage) - emit destroyingPackage(qobject_cast(obj)); - stat |= Destroyed; - obj->setParent(0); - obj->deleteLater(); - } else if (!inPackage) { - stat |= Referenced; - } - - return stat; -} - -QObject *QmlGraphicsVisualDataModel::parts() -{ - Q_D(QmlGraphicsVisualDataModel); - if (!d->m_parts) - d->m_parts = new QmlGraphicsVisualDataModelParts(this); - return d->m_parts; -} - -QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, const QByteArray &viewId, bool complete) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->item(index, viewId, complete); - - if (d->modelCount() <= 0 || !d->m_delegate) - return 0; - - QObject *nobj = d->m_cache.getItem(index); - if (!nobj) { - QmlContext *ccontext = d->m_context; - if (!ccontext) ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); - ctxt->setContextProperty(QLatin1String("model"), data); - ctxt->addDefaultObject(data); - nobj = d->m_delegate->beginCreate(ctxt); - if (complete) - d->m_delegate->completeCreate(); - if (nobj) { - ctxt->setParent(nobj); - data->setParent(nobj); - d->m_cache.insertItem(index, nobj); - if (QmlPackage *package = qobject_cast(nobj)) - emit createdPackage(index, package); - } else { - delete data; - delete ctxt; - qWarning() << d->m_delegate->errors(); - } - } - QmlGraphicsItem *item = qobject_cast(nobj); - if (!item) { - QmlPackage *package = qobject_cast(nobj); - if (package) { - QObject *o = package->part(QString::fromUtf8(viewId)); - item = qobject_cast(o); - if (item) - d->m_packaged.insertMulti(item, package); - } - } - if (!item) { - d->m_cache.releaseItem(nobj); - qmlInfo(QmlGraphicsVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); - } - - return item; -} - -void QmlGraphicsVisualDataModel::completeItem() -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) { - d->m_visualItemModel->completeItem(); - return; - } - - d->m_delegate->completeCreate(); -} - -QVariant QmlGraphicsVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) -{ - Q_D(QmlGraphicsVisualDataModel); - if (d->m_visualItemModel) - return d->m_visualItemModel->evaluate(index, expression, objectContext); - - if ((!d->m_listModelInterface && !d->m_abstractItemModel) || !d->m_delegate) - return QVariant(); - - QVariant value; - QObject *nobj = d->m_cache.item(index); - if (nobj) { - QmlGraphicsItem *item = qobject_cast(nobj); - if (item) { - QmlExpression e(qmlContext(item), expression, objectContext); - e.setTrackChange(false); - value = e.value(); - } - } else { - QmlContext *ccontext = d->m_context; - if (!ccontext) ccontext = qmlContext(this); - QmlContext *ctxt = new QmlContext(ccontext); - QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); - ctxt->addDefaultObject(data); - QmlExpression e(ctxt, expression, objectContext); - e.setTrackChange(false); - value = e.value(); - delete data; - delete ctxt; - } - - return value; -} - -int QmlGraphicsVisualDataModel::indexOf(QmlGraphicsItem *item, QObject *objectContext) const -{ - QmlExpression e(qmlContext(item), QLatin1String("index"), objectContext); - e.setTrackChange(false); - QVariant value = e.value(); - if (value.isValid()) - return value.toInt(); - return -1; -} - -void QmlGraphicsVisualDataModel::_q_itemsChanged(int index, int count, - const QList &roles) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - for (int ii = index; ii < index + count; ++ii) { - - if (QObject *item = d->m_cache.item(ii)) { - QmlGraphicsVisualDataModelData *data = d->data(item); - - for (int prop = 0; prop < data->count(); ++prop) { - - int role = data->role(prop); - if (roles.contains(role)) { - if (d->m_listModelInterface) { - data->setValue(prop, d->m_listModelInterface->data(ii, QList() << role).value(role)); - } else if (d->m_abstractItemModel) { - QModelIndex index = d->m_abstractItemModel->index(ii, 0); - data->setValue(prop, d->m_abstractItemModel->data(index, role)); - } - } - } - } - - } -} - -void QmlGraphicsVisualDataModel::_q_itemsInserted(int index, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= index) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() + count; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - d->m_cache.unite(items); - - emit itemsInserted(index, count); - emit countChanged(); -} - -void QmlGraphicsVisualDataModel::_q_itemsRemoved(int index, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - if (iter.key() >= index && iter.key() < index + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - iter = d->m_cache.erase(iter); - items.insertMulti(-1, objRef); //XXX perhaps better to maintain separately - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(-1); - } else if (iter.key() >= index + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() - count; - iter = d->m_cache.erase(iter); - items.insert(index, objRef); - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - - d->m_cache.unite(items); - emit itemsRemoved(index, count); - emit countChanged(); -} - -void QmlGraphicsVisualDataModel::_q_itemsMoved(int from, int to, int count) -{ - Q_D(QmlGraphicsVisualDataModel); - // XXX - highly inefficient - QHash items; - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= from && iter.key() < from + count) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() - from + to; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - for (QHash::Iterator iter = d->m_cache.begin(); - iter != d->m_cache.end(); ) { - - if (iter.key() >= qMin(from,to) && iter.key() < qMax(from+count,to+count)) { - QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; - int index = iter.key() + from - to; - iter = d->m_cache.erase(iter); - - items.insert(index, objRef); - - QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); - data->setIndex(index); - } else { - ++iter; - } - } - d->m_cache.unite(items); - - emit itemsMoved(from, to, count); -} - -void QmlGraphicsVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) -{ - _q_itemsInserted(begin, end - begin + 1); -} - -void QmlGraphicsVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) -{ - _q_itemsRemoved(begin, end - begin + 1); -} - -void QmlGraphicsVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) -{ - Q_D(QmlGraphicsVisualDataModel); - _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles); -} - -void QmlGraphicsVisualDataModel::_q_createdPackage(int index, QmlPackage *package) -{ - Q_D(QmlGraphicsVisualDataModel); - emit createdItem(index, qobject_cast(package->part(d->m_part))); -} - -void QmlGraphicsVisualDataModel::_q_destroyingPackage(QmlPackage *package) -{ - Q_D(QmlGraphicsVisualDataModel); - emit destroyingItem(qobject_cast(package->part(d->m_part))); -} - -QML_DEFINE_NOCREATE_TYPE(QmlGraphicsVisualModel); -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisualItemModel) -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) - -QT_END_NAMESPACE - -#include "qmlgraphicsvisualitemmodel.moc" diff --git a/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h b/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h deleted file mode 100644 index 8b0a8f5..0000000 --- a/src/declarative/fx/qmlgraphicsvisualitemmodel_p.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** 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 QMLGRAPHICSVISUALDATAMODEL_H -#define QMLGRAPHICSVISUALDATAMODEL_H - -#include -#include -#include - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -/***************************************************************************** - ***************************************************************************** - XXX Experimental - ***************************************************************************** -*****************************************************************************/ - -class QmlGraphicsItem; -class QmlComponent; -class QmlPackage; -class QmlGraphicsVisualDataModelPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject -{ - Q_OBJECT - - Q_PROPERTY(int count READ count NOTIFY countChanged) - -public: - QmlGraphicsVisualModel() {} - virtual ~QmlGraphicsVisualModel() {} - - enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; - Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) - - virtual int count() const = 0; - virtual bool isValid() const = 0; - virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; - virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; - virtual void completeItem() = 0; - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; - -Q_SIGNALS: - void countChanged(); - void itemsInserted(int index, int count); - void itemsRemoved(int index, int count); - void itemsMoved(int from, int to, int count); - void createdItem(int index, QmlGraphicsItem *item); - void destroyingItem(QmlGraphicsItem *item); - -protected: - QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) - : QObject(dd, parent) {} - -private: - Q_DISABLE_COPY(QmlGraphicsVisualModel) -}; - -class QmlGraphicsVisualItemModelAttached; -class QmlGraphicsVisualItemModelPrivate; -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) - - Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) - Q_CLASSINFO("DefaultProperty", "children") - -public: - QmlGraphicsVisualItemModel(); - virtual ~QmlGraphicsVisualItemModel() {} - - virtual int count() const; - virtual bool isValid() const; - virtual QmlGraphicsItem *item(int index, bool complete=true); - virtual ReleaseFlags release(QmlGraphicsItem *item); - virtual void completeItem(); - virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QmlList *children(); - - static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); - -Q_SIGNALS: - void childrenChanged(); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualItemModel) -}; - - -class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) - - Q_PROPERTY(QVariant model READ model WRITE setModel) - Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) - Q_PROPERTY(QString part READ part WRITE setPart) - Q_PROPERTY(QObject *parts READ parts CONSTANT) - Q_CLASSINFO("DefaultProperty", "delegate") -public: - QmlGraphicsVisualDataModel(); - QmlGraphicsVisualDataModel(QmlContext *); - virtual ~QmlGraphicsVisualDataModel(); - - QVariant model() const; - void setModel(const QVariant &); - - QmlComponent *delegate() const; - void setDelegate(QmlComponent *); - - QString part() const; - void setPart(const QString &); - - int count() const; - bool isValid() const { return delegate() != 0; } - QmlGraphicsItem *item(int index, bool complete=true); - QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); - ReleaseFlags release(QmlGraphicsItem *item); - void completeItem(); - QVariant evaluate(int index, const QString &expression, QObject *objectContext); - - int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; - - QObject *parts(); - -Q_SIGNALS: - void createdPackage(int index, QmlPackage *package); - void destroyingPackage(QmlPackage *package); - -private Q_SLOTS: - void _q_itemsChanged(int, int, const QList &); - void _q_itemsInserted(int index, int count); - void _q_itemsRemoved(int index, int count); - void _q_itemsMoved(int from, int to, int count); - void _q_rowsInserted(const QModelIndex &,int,int); - void _q_rowsRemoved(const QModelIndex &,int,int); - void _q_dataChanged(const QModelIndex&,const QModelIndex&); - void _q_createdPackage(int index, QmlPackage *package); - void _q_destroyingPackage(QmlPackage *package); - -private: - Q_DISABLE_COPY(QmlGraphicsVisualDataModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsVisualModel) -QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) -QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) - -QT_END_HEADER - -#endif // QMLGRAPHICSVISUALDATAMODEL_H diff --git a/src/declarative/fx/qmlgraphicswebview.cpp b/src/declarative/fx/qmlgraphicswebview.cpp deleted file mode 100644 index c6ab4c7..0000000 --- a/src/declarative/fx/qmlgraphicswebview.cpp +++ /dev/null @@ -1,1388 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "qml.h" -#include "qmlengine.h" -#include -#include - -#include "qmlgraphicswebview_p.h" -#include - -QT_BEGIN_NAMESPACE -QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) -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 -{ - Q_DECLARE_PUBLIC(QmlGraphicsWebView) - -public: - QmlGraphicsWebViewPrivate() - : QmlGraphicsPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), - progress(1.0), status(QmlGraphicsWebView::Null), pending(PendingNone), - newWindowComponent(0), newWindowParent(0), - windowObjects(this), - rendering(true) - { - } - - QUrl url; // page url might be different if it has not loaded yet - QWebPage *page; - - int preferredwidth; - int pagewidth; - qreal progress; - QmlGraphicsWebView::Status status; - QString statusText; - enum { PendingNone, PendingUrl, PendingHtml, PendingContent } pending; - QUrl pending_url; - QString pending_string; - QByteArray pending_data; - mutable QmlGraphicsWebSettings settings; - QmlComponent *newWindowComponent; - QmlGraphicsItem *newWindowParent; - - void updateWindowObjects(); - class WindowObjectList : public QmlConcreteList - { - public: - WindowObjectList(QmlGraphicsWebViewPrivate *p) - : priv(p) {} - virtual void append(QObject *v) { - QmlConcreteList::append(v); - priv->updateWindowObjects(); - } - private: - QmlGraphicsWebViewPrivate *priv; - } windowObjects; - - bool rendering; -}; - -/*! - \qmlclass WebView QFxWebView - \brief The WebView item allows you to add web content to a canvas. - \inherits Item - - A WebView renders web content based on a URL. - - If the width and height of the item is not set, they will - dynamically adjust to a size appropriate for the content. - This width may be large for typical online web pages. - - If the preferredWidth is set, the width will be this amount or larger, - usually laying out the web content to fit the preferredWidth. - - \qml - WebView { - url: "http://www.nokia.com" - width: 490 - height: 400 - scale: 0.5 - smooth: true - } - \endqml - - \image webview.png - - The item includes no scrolling, scaling, - toolbars, etc., those must be implemented around WebView. See the WebBrowser example - for a demonstration of this. -*/ - -/*! - \internal - \class QmlGraphicsWebView - \brief The QmlGraphicsWebView class allows you to add web content to a QmlView. - - A WebView renders web content base on a URL. - - \image webview.png - - The item includes no scrolling, scaling, - toolbars, etc., those must be implemented around WebView. See the WebBrowser example - for a demonstration of this. - - A QmlGraphicsWebView object can be instantiated in Qml using the tag \l WebView. -*/ - -QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(*(new QmlGraphicsWebViewPrivate), parent) -{ - init(); -} - -QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsPaintedItem(dd, parent) -{ - init(); -} - -QmlGraphicsWebView::~QmlGraphicsWebView() -{ - Q_D(QmlGraphicsWebView); - delete d->page; -} - -void QmlGraphicsWebView::init() -{ - Q_D(QmlGraphicsWebView); - - setAcceptHoverEvents(true); - setAcceptedMouseButtons(Qt::LeftButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); - - d->page = 0; -} - -void QmlGraphicsWebView::componentComplete() -{ - QmlGraphicsPaintedItem::componentComplete(); - Q_D(QmlGraphicsWebView); - switch (d->pending) { - case QmlGraphicsWebViewPrivate::PendingUrl: - setUrl(d->pending_url); - break; - case QmlGraphicsWebViewPrivate::PendingHtml: - setHtml(d->pending_string, d->pending_url); - break; - case QmlGraphicsWebViewPrivate::PendingContent: - setContent(d->pending_data, d->pending_string, d->pending_url); - break; - default: - break; - } - d->pending = QmlGraphicsWebViewPrivate::PendingNone; - d->updateWindowObjects(); -} - -QmlGraphicsWebView::Status QmlGraphicsWebView::status() const -{ - Q_D(const QmlGraphicsWebView); - return d->status; -} - - -/*! - \qmlproperty real WebView::progress - This property holds the progress of loading the current URL, from 0 to 1. - - \sa onLoadFinished() onLoadFailed() -*/ -qreal QmlGraphicsWebView::progress() const -{ - Q_D(const QmlGraphicsWebView); - return d->progress; -} - -void QmlGraphicsWebView::doLoadStarted() -{ - Q_D(QmlGraphicsWebView); - - if (!d->url.isEmpty()) { - d->status = Loading; - emit statusChanged(d->status); - } - emit loadStarted(); -} - -void QmlGraphicsWebView::doLoadProgress(int p) -{ - Q_D(QmlGraphicsWebView); - if (d->progress == p/100.0) - return; - d->progress = p/100.0; - emit progressChanged(); -} - -void QmlGraphicsWebView::pageUrlChanged() -{ - Q_D(QmlGraphicsWebView); - - // Reset zooming to full - qreal zf = 1.0; - if (d->preferredwidth) { - if (d->pagewidth) - zf = qreal(d->preferredwidth)/d->pagewidth; - page()->mainFrame()->setZoomFactor(zf); - page()->setViewportSize(QSize(d->preferredwidth,-1)); - } else { - page()->mainFrame()->setZoomFactor(zf); - page()->setViewportSize(QSize(-1,-1)); - } - emit zooming(zf,0,0); - expandToWebPage(); - - if ((d->url.isEmpty() && page()->mainFrame()->url() != QUrl(QLatin1String("about:blank"))) - || d->url != page()->mainFrame()->url()) - { - d->url = page()->mainFrame()->url(); - if (d->url == QUrl(QLatin1String("about:blank"))) - d->url = QUrl(); - emit urlChanged(); - } -} - -void QmlGraphicsWebView::doLoadFinished(bool ok) -{ - Q_D(QmlGraphicsWebView); - - if (title().isEmpty()) - pageUrlChanged(); // XXX bug 232556 - pages with no title never get urlChanged() - - if (ok) { - d->status = d->url.isEmpty() ? Null : Ready; - emit loadFinished(); - } else { - d->status = Error; - emit loadFailed(); - } - emit statusChanged(d->status); -} - -/*! - \qmlproperty url WebView::url - This property holds the URL to the page displayed in this item. It can be set, - but also can change spontaneously (eg. because of network redirection). - - If the url is empty, the page is blank. - - The url is always absolute (QML will resolve relative URL strings in the context - of the containing QML document). -*/ -QUrl QmlGraphicsWebView::url() const -{ - Q_D(const QmlGraphicsWebView); - return d->url; -} - -void QmlGraphicsWebView::setUrl(const QUrl &url) -{ - Q_D(QmlGraphicsWebView); - if (url == d->url) - return; - - if (isComponentComplete()) { - d->url = url; - qreal zf = 1.0; - if (d->preferredwidth) { - if (d->pagewidth) - zf = qreal(d->preferredwidth)/d->pagewidth; - page()->setViewportSize(QSize(d->preferredwidth,-1)); - } else { - page()->setViewportSize(QSize(-1,-1)); - } - page()->mainFrame()->setZoomFactor(zf); - QUrl seturl = url; - if (seturl.isEmpty()) - seturl = QUrl(QLatin1String("about:blank")); - - Q_ASSERT(!seturl.isRelative()); - - page()->mainFrame()->load(seturl); - - emit urlChanged(); - } else { - d->pending = d->PendingUrl; - d->pending_url = url; - } -} - -/*! - \qmlproperty int WebView::preferredWidth - This property holds the ideal width for displaying the current URL. -*/ -int QmlGraphicsWebView::preferredWidth() const -{ - Q_D(const QmlGraphicsWebView); - return d->preferredwidth; -} - -void QmlGraphicsWebView::setPreferredWidth(int iw) -{ - Q_D(QmlGraphicsWebView); - if (d->preferredwidth == iw) return; - if (d->pagewidth) { - if (d->preferredwidth) { - setZoomFactor(zoomFactor()*iw/d->preferredwidth); - } else { - setZoomFactor(qreal(iw)/d->pagewidth); - } - } - d->preferredwidth = iw; - expandToWebPage(); - emit preferredWidthChanged(); -} - -/*! - \qmlproperty int WebView::webPageWidth - This property holds the page width suggested to the web engine. -*/ -int QmlGraphicsWebView::webPageWidth() const -{ - Q_D(const QmlGraphicsWebView); - return d->pagewidth; -} - -void QmlGraphicsWebView::setWebPageWidth(int pw) -{ - Q_D(QmlGraphicsWebView); - if (d->pagewidth == pw) return; - d->pagewidth = pw; - expandToWebPage(); -} - -/*! - Evaluates the \a scriptSource JavaScript inside the main frame - context and returns the result of the last executed statement. -*/ -QVariant QmlGraphicsWebView::evaluateJavaScript(const QString &scriptSource) -{ - return this->page()->mainFrame()->evaluateJavaScript(scriptSource); -} - -void QmlGraphicsWebView::focusChanged(bool hasFocus) -{ - QFocusEvent e(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); - page()->event(&e); - QmlGraphicsItem::focusChanged(hasFocus); -} - -void QmlGraphicsWebView::contentsSizeChanged(const QSize&) -{ - expandToWebPage(); -} - -void QmlGraphicsWebView::expandToWebPage() -{ - Q_D(QmlGraphicsWebView); - QSize cs = page()->mainFrame()->contentsSize(); - qreal zoom = zoomFactor(); - if (cs.width() < d->preferredwidth*zoom) - cs.setWidth(d->preferredwidth*zoom); - if (widthValid()) - cs.setWidth(width()); - if (heightValid()) - cs.setHeight(height()); - if (cs != page()->viewportSize()) { - page()->setViewportSize(cs); - clearCache(); - setImplicitWidth(cs.width()); - setImplicitHeight(cs.height()); - } -} - -void QmlGraphicsWebView::geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) -{ - if (newGeometry.size() != oldGeometry.size()) - expandToWebPage(); - QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); -} - -void QmlGraphicsWebView::paintPage(const QRect& r) -{ - Q_D(QmlGraphicsWebView); - if (d->page->mainFrame()->contentsSize() != contentsSize()) - setContentsSize(d->page->mainFrame()->contentsSize()); - dirtyCache(r); - update(); -} - -/*! - \qmlproperty int WebView::pixelCacheSize - - This property holds the maximum number of pixels of image cache to - allow. The default is 0.1 megapixels. The cache will not be larger - than the (unscaled) size of the WebView. -*/ -int QmlGraphicsWebView::pixelCacheSize() const -{ - Q_D(const QmlGraphicsWebView); - return d->max_imagecache_size; -} - -void QmlGraphicsWebView::setPixelCacheSize(int pixels) -{ - Q_D(QmlGraphicsWebView); - if (pixels < d->max_imagecache_size) { - int cachesize=0; - for (int i=0; iimagecache.count(); ++i) { - QRect area = d->imagecache[i]->area; - cachesize += area.width()*area.height(); - } - while (d->imagecache.count() && cachesize > pixels) { - int oldest=-1; - int age=-1; - for (int i=0; iimagecache.count(); ++i) { - int a = d->imagecache[i]->age; - if (a > age) { - oldest = i; - age = a; - } - } - cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); - d->imagecache.removeAt(oldest); - } - } - d->max_imagecache_size = pixels; -} - -/*! - \qmlproperty list WebView::javaScriptWindowObjects - - This property is a list of object that are available from within - the webview's JavaScript context. - - The \a object will be inserted as a child of the frame's window - object, under the name given by the attached property \c WebView.windowObjectName. - - \qml - WebView { - javaScriptWindowObjects: Object { - WebView.windowObjectName: "coordinates" - } - } - \endqml - - Properties of the object will be exposed as JavaScript properties and slots as - JavaScript methods. - - If Javascript is not enabled for this page, then this property does nothing. -*/ -QmlList *QmlGraphicsWebView::javaScriptWindowObjects() -{ - Q_D(QmlGraphicsWebView); - return &d->windowObjects; -} - -class QmlGraphicsWebViewAttached : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString windowObjectName READ windowObjectName WRITE setWindowObjectName) -public: - QmlGraphicsWebViewAttached(QObject *parent) - : QObject(parent) - { - } - - QString windowObjectName() const - { - return m_windowObjectName; - } - - void setWindowObjectName(const QString &n) - { - m_windowObjectName = n; - } - -private: - QString m_windowObjectName; -}; - -QmlGraphicsWebViewAttached *QmlGraphicsWebView::qmlAttachedProperties(QObject *o) -{ - return new QmlGraphicsWebViewAttached(o); -} - -void QmlGraphicsWebViewPrivate::updateWindowObjects() -{ - Q_Q(QmlGraphicsWebView); - if (!q->isComponentComplete() || !page) - return; - - for (int ii = 0; ii < windowObjects.count(); ++ii) { - QObject *object = windowObjects.at(ii); - QmlGraphicsWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); - if (attached && !attached->windowObjectName().isEmpty()) { - page->mainFrame()->addToJavaScriptWindowObject(attached->windowObjectName(), object); - } - } -} - -bool QmlGraphicsWebView::renderingEnabled() const -{ - Q_D(const QmlGraphicsWebView); - return d->rendering; -} - -void QmlGraphicsWebView::setRenderingEnabled(bool enabled) -{ - Q_D(QmlGraphicsWebView); - if (d->rendering == enabled) - return; - d->rendering = enabled; - setCacheFrozen(!enabled); - if (enabled) - clearCache(); -} - - -void QmlGraphicsWebView::drawContents(QPainter *p, const QRect &r) -{ - Q_D(QmlGraphicsWebView); - if (d->rendering) - page()->mainFrame()->render(p,r); -} - -static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) -{ - QEvent::Type t; - switch(e->type()) { - default: - case QEvent::GraphicsSceneMousePress: - t = QEvent::MouseButtonPress; - break; - case QEvent::GraphicsSceneMouseRelease: - t = QEvent::MouseButtonRelease; - break; - case QEvent::GraphicsSceneMouseMove: - t = QEvent::MouseMove; - break; - case QGraphicsSceneEvent::GraphicsSceneMouseDoubleClick: - t = QEvent::MouseButtonDblClick; - break; - } - - QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), e->button(), e->buttons(), 0); - return me; -} - -static QMouseEvent *sceneHoverMoveEventToMouseEvent(QGraphicsSceneHoverEvent *e) -{ - QEvent::Type t = QEvent::MouseMove; - - QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), Qt::NoButton, Qt::NoButton, 0); - - return me; -} - - -/*! - \qmlsignal WebView::onDoubleClick(clickx,clicky) - - The WebView does not pass double-click events to the web engine, but rather - emits this signals. -*/ - -void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - emit doubleClick(me->x(),me->y()); - delete me; -} - -void QmlGraphicsWebView::heuristicZoom(int clickX, int clickY) -{ - Q_D(QmlGraphicsWebView); - qreal ozf = zoomFactor(); - QRect showarea = elementAreaAt(clickX, clickY, 1, 1); - qreal z = qreal(preferredWidth())*ozf/showarea.width()*.95; - if ((z/ozf > 0.99 && z/ozf <1.01) || z < qreal(d->preferredwidth)/d->pagewidth) { - // zoom out - z = qreal(d->preferredwidth)/d->pagewidth; - } - QRectF r(showarea.left()/ozf*z, showarea.top()/ozf*z, showarea.width()/ozf*z, showarea.height()/ozf*z); - emit zooming(z,r.x()+r.width()/2, r.y()+r.height()/2); -} - -void QmlGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - setFocus (true); - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit - Might be a bug in WebKit, though - */ -#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) { - QmlGraphicsPaintedItem::mousePressEvent(event); - } -} - -void QmlGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send all the events to WebKit - */ -#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) { - QmlGraphicsPaintedItem::mouseReleaseEvent(event); - } -} - -void QmlGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - QMouseEvent *me = sceneMouseEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -/* - It is not correct to send the press event upwards, if it is not accepted by WebKit - e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit - Might be a bug in WebKit, though - */ -#if 1 // QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) - QmlGraphicsPaintedItem::mouseMoveEvent(event); - -} -void QmlGraphicsWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) -{ - QMouseEvent *me = sceneHoverMoveEventToMouseEvent(event); - page()->event(me); - event->setAccepted( -#if QT_VERSION <= 0x040500 // XXX see bug 230835 - true -#else - me->isAccepted() -#endif - ); - delete me; - if (!event->isAccepted()) - QmlGraphicsPaintedItem::hoverMoveEvent(event); -} - -void QmlGraphicsWebView::keyPressEvent(QKeyEvent* event) -{ - page()->event(event); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyPressEvent(event); -} - -void QmlGraphicsWebView::keyReleaseEvent(QKeyEvent* event) -{ - page()->event(event); - if (!event->isAccepted()) - QmlGraphicsPaintedItem::keyReleaseEvent(event); -} - -bool QmlGraphicsWebView::sceneEvent(QEvent *event) -{ - if (event->type() == QEvent::KeyPress) { - QKeyEvent *k = static_cast(event); - if (k->key() == Qt::Key_Tab || k->key() == Qt::Key_Backtab) { - if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? - page()->event(event); - if (event->isAccepted()) - return true; - } - } - } - return QmlGraphicsPaintedItem::sceneEvent(event); -} - - - -/*! - \qmlproperty action WebView::back - This property holds the action for causing the previous URL in the history to be displayed. -*/ -QAction *QmlGraphicsWebView::backAction() const -{ - return page()->action(QWebPage::Back); -} - -/*! - \qmlproperty action WebView::forward - This property holds the action for causing the next URL in the history to be displayed. -*/ -QAction *QmlGraphicsWebView::forwardAction() const -{ - return page()->action(QWebPage::Forward); -} - -/*! - \qmlproperty action WebView::reload - This property holds the action for reloading with the current URL -*/ -QAction *QmlGraphicsWebView::reloadAction() const -{ - return page()->action(QWebPage::Reload); -} - -/*! - \qmlproperty action WebView::stop - This property holds the action for stopping loading with the current URL -*/ -QAction *QmlGraphicsWebView::stopAction() const -{ - return page()->action(QWebPage::Stop); -} - -/*! - \qmlproperty real WebView::title - This property holds the title of the web page currently viewed - - By default, this property contains an empty string. -*/ -QString QmlGraphicsWebView::title() const -{ - return page()->mainFrame()->title(); -} - - - -/*! - \qmlproperty pixmap WebView::icon - This property holds the icon associated with the web page currently viewed -*/ -QPixmap QmlGraphicsWebView::icon() const -{ - return page()->mainFrame()->icon().pixmap(QSize(256,256)); -} - - -/*! - \qmlproperty real WebView::textSizeMultiplier - This property holds the multiplier used to scale the text in a Web page -*/ -void QmlGraphicsWebView::setTextSizeMultiplier(qreal factor) -{ - page()->mainFrame()->setTextSizeMultiplier(factor); -} - -qreal QmlGraphicsWebView::textSizeMultiplier() const -{ - return page()->mainFrame()->textSizeMultiplier(); -} - -/*! - \qmlproperty real WebView::zoomFactor - This property holds the multiplier used to scale the contents of a Web page. -*/ -void QmlGraphicsWebView::setZoomFactor(qreal factor) -{ - Q_D(QmlGraphicsWebView); - if (factor == page()->mainFrame()->zoomFactor()) - return; - - page()->mainFrame()->setZoomFactor(factor); - page()->setViewportSize(QSize(d->pagewidth*factor,-1)); - expandToWebPage(); - - emit zoomFactorChanged(); -} - -qreal QmlGraphicsWebView::zoomFactor() const -{ - return page()->mainFrame()->zoomFactor(); -} - -/*! - \qmlproperty string WebView::statusText - - This property is the current status suggested by the current web page. In a web browser, - such status is often shown in some kind of status bar. -*/ -void QmlGraphicsWebView::setStatusText(const QString& s) -{ - Q_D(QmlGraphicsWebView); - d->statusText = s; - emit statusTextChanged(); -} - -void QmlGraphicsWebView::windowObjectCleared() -{ - Q_D(QmlGraphicsWebView); - d->updateWindowObjects(); -} - -QString QmlGraphicsWebView::statusText() const -{ - Q_D(const QmlGraphicsWebView); - return d->statusText; -} - -QWebPage *QmlGraphicsWebView::page() const -{ - Q_D(const QmlGraphicsWebView); - - if (!d->page) { - QmlGraphicsWebView *self = const_cast(this); - QWebPage *wp = new QmlGraphicsWebPage(self); - - // QML items don't default to having a background, - // even though most we pages will set one anyway. - QPalette pal = QApplication::palette(); - pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0)); - wp->setPalette(pal); - - wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager()); - - self->setPage(wp); - - return wp; - } - - return d->page; -} - - -// The QObject interface to settings(). -/*! - \qmlproperty string WebView::settings.standardFontFamily - \qmlproperty string WebView::settings.fixedFontFamily - \qmlproperty string WebView::settings.serifFontFamily - \qmlproperty string WebView::settings.sansSerifFontFamily - \qmlproperty string WebView::settings.cursiveFontFamily - \qmlproperty string WebView::settings.fantasyFontFamily - - \qmlproperty int WebView::settings.minimumFontSize - \qmlproperty int WebView::settings.minimumLogicalFontSize - \qmlproperty int WebView::settings.defaultFontSize - \qmlproperty int WebView::settings.defaultFixedFontSize - - \qmlproperty bool WebView::settings.autoLoadImages - \qmlproperty bool WebView::settings.javascriptEnabled - \qmlproperty bool WebView::settings.javaEnabled - \qmlproperty bool WebView::settings.pluginsEnabled - \qmlproperty bool WebView::settings.privateBrowsingEnabled - \qmlproperty bool WebView::settings.javascriptCanOpenWindows - \qmlproperty bool WebView::settings.javascriptCanAccessClipboard - \qmlproperty bool WebView::settings.developerExtrasEnabled - \qmlproperty bool WebView::settings.linksIncludedInFocusChain - \qmlproperty bool WebView::settings.zoomTextOnly - \qmlproperty bool WebView::settings.printElementBackgrounds - \qmlproperty bool WebView::settings.offlineStorageDatabaseEnabled - \qmlproperty bool WebView::settings.offlineWebApplicationCacheEnabled - \qmlproperty bool WebView::settings.localStorageDatabaseEnabled - \qmlproperty bool WebView::settings.localContentCanAccessRemoteUrls - - These properties give access to the settings controlling the web view. - - See QWebSettings for details of these properties. - - \qml - WebView { - settings.pluginsEnabled: true - settings.standardFontFamily: "Arial" - ... - } - \endqml -*/ -QmlGraphicsWebSettings *QmlGraphicsWebView::settingsObject() const -{ - Q_D(const QmlGraphicsWebView); - d->settings.s = page()->settings(); - return &d->settings; -} - -void QmlGraphicsWebView::setPage(QWebPage *page) -{ - Q_D(QmlGraphicsWebView); - if (d->page == page) - return; - if (d->page) { - if (d->page->parent() == this) { - delete d->page; - } else { - d->page->disconnect(this); - } - } - d->page = page; - d->page->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : -1, -1)); - d->page->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); - d->page->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); - connect(d->page,SIGNAL(repaintRequested(QRect)),this,SLOT(paintPage(QRect))); - connect(d->page->mainFrame(),SIGNAL(urlChanged(QUrl)),this,SLOT(pageUrlChanged())); - connect(d->page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString))); - connect(d->page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged())); - connect(d->page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SLOT(contentsSizeChanged(QSize))); - - connect(d->page,SIGNAL(loadStarted()),this,SLOT(doLoadStarted())); - connect(d->page,SIGNAL(loadProgress(int)),this,SLOT(doLoadProgress(int))); - connect(d->page,SIGNAL(loadFinished(bool)),this,SLOT(doLoadFinished(bool))); - connect(d->page,SIGNAL(statusBarMessage(QString)),this,SLOT(setStatusText(QString))); - - connect(d->page->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT(windowObjectCleared())); -} - -/*! - \qmlsignal WebView::onLoadStarted() - - This handler is called when the web engine begins loading - a page. - - \sa progress onLoadFinished() onLoadFailed() -*/ - -/*! - \qmlsignal WebView::onLoadFinished() - - This handler is called when the web engine finishes loading - a page, including any component content. - - \sa progress onLoadFailed() -*/ - -/*! - \qmlsignal WebView::onLoadFailed() - - This handler is called when the web engine fails loading - a page or any component content. - - \sa progress onLoadFinished() -*/ - -void QmlGraphicsWebView::load(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation, - const QByteArray &body) -{ - page()->mainFrame()->load(request, operation, body); -} - -QString QmlGraphicsWebView::html() const -{ - return page()->mainFrame()->toHtml(); -} - -/*! - \qmlproperty string WebView::html - This property holds HTML text set directly - - The html property can be set as a string. - - \qml - WebView { - html: "

This is HTML." - } - \endqml -*/ -void QmlGraphicsWebView::setHtml(const QString &html, const QUrl &baseUrl) -{ - Q_D(QmlGraphicsWebView); - page()->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : width(), height())); - if (isComponentComplete()) - page()->mainFrame()->setHtml(html, baseUrl); - else { - d->pending = d->PendingHtml; - d->pending_url = baseUrl; - d->pending_string = html; - } -} - -void QmlGraphicsWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) -{ - Q_D(QmlGraphicsWebView); - page()->setViewportSize(QSize( - d->preferredwidth>0 ? d->preferredwidth : width(), height())); - - if (isComponentComplete()) - page()->mainFrame()->setContent(data,mimeType,qmlContext(this)->resolvedUrl(baseUrl)); - else { - d->pending = d->PendingContent; - d->pending_url = baseUrl; - d->pending_string = mimeType; - d->pending_data = data; - } -} - -QWebHistory *QmlGraphicsWebView::history() const -{ - return page()->history(); -} - -QWebSettings *QmlGraphicsWebView::settings() const -{ - return page()->settings(); -} - -QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType type) -{ - Q_D(QmlGraphicsWebView); - switch (type) { - case QWebPage::WebBrowserWindow: { - if (!d->newWindowComponent && d->newWindowParent) - qWarning("WebView::newWindowComponent not set - WebView::newWindowParent ignored"); - else if (d->newWindowComponent && !d->newWindowParent) - qWarning("WebView::newWindowParent not set - WebView::newWindowComponent ignored"); - else if (d->newWindowComponent && d->newWindowParent) { - QmlGraphicsWebView *webview = 0; - QmlContext *windowContext = new QmlContext(qmlContext(this)); - - QObject *nobj = d->newWindowComponent->create(windowContext); - if (nobj) { - windowContext->setParent(nobj); - QmlGraphicsItem *item = qobject_cast(nobj); - if (!item) { - delete nobj; - } else { - webview = item->findChild(); - if (!webview) { - delete item; - } else { - item->setParent(d->newWindowParent); - } - } - } else { - delete windowContext; - } - - return webview; - } - } - break; - case QWebPage::WebModalDialog: { - // Not supported - } - } - return 0; -} - -/*! - \qmlproperty component WebView::newWindowComponent - - This property holds the component to use for new windows. - The component must have a WebView somewhere in its structure. - - When the web engine requests a new window, it will be an instance of - this component. - - The parent of the new window is set by newWindowParent. It must be set. -*/ -QmlComponent *QmlGraphicsWebView::newWindowComponent() const -{ - Q_D(const QmlGraphicsWebView); - return d->newWindowComponent; -} - -void QmlGraphicsWebView::setNewWindowComponent(QmlComponent *newWindow) -{ - Q_D(QmlGraphicsWebView); - delete d->newWindowComponent; - d->newWindowComponent = newWindow; -} - - -/*! - \qmlproperty item WebView::newWindowParent - - The parent item for new windows. - - \sa newWindowComponent -*/ -QmlGraphicsItem *QmlGraphicsWebView::newWindowParent() const -{ - Q_D(const QmlGraphicsWebView); - return d->newWindowParent; -} - -void QmlGraphicsWebView::setNewWindowParent(QmlGraphicsItem *parent) -{ - Q_D(QmlGraphicsWebView); - delete d->newWindowParent; - d->newWindowParent = parent; -} - -/*! - Returns the area of the largest element at position (\a x,\a y) that is no larger - than \a maxwidth by \a maxheight pixels. - - May return an area larger in the case when no smaller element is at the position. -*/ -QRect QmlGraphicsWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const -{ - QWebHitTestResult hit = page()->mainFrame()->hitTestContent(QPoint(x,y)); - QWebElement element = hit.enclosingBlockElement(); - QWebElement parent = element.parent(); - if (maxwidth<=0) maxwidth = INT_MAX; - if (maxheight<=0) maxheight = INT_MAX; - while (!parent.isNull() && parent.geometry().width() <= maxwidth && parent.geometry().height() <= maxheight) { - element = parent; - parent = element.parent(); - } - return element.geometry(); -} - -/*! - \internal - \class QmlGraphicsWebPage - \brief The QmlGraphicsWebPage class is a QWebPage that can create QML plugins. - - \sa QmlGraphicsWebView -*/ -QmlGraphicsWebPage::QmlGraphicsWebPage(QmlGraphicsWebView *parent) : - QWebPage(parent) -{ -} - -QmlGraphicsWebPage::~QmlGraphicsWebPage() -{ -} - -/* - Qt WebKit does not understand non-QWidget plugins, so dummy widgets - are created, parented to a single dummy tool window. - - The requirements for QML object plugins are input to the Qt WebKit - non-QWidget plugin support, which will obsolete this kludge. -*/ -class QWidget_Dummy_Plugin : public QWidget -{ - Q_OBJECT -public: - static QWidget *dummy_shared_parent() - { - static QWidget *dsp = 0; - if (!dsp) { - dsp = new QWidget(0,Qt::Tool); - dsp->setGeometry(-10000,-10000,0,0); - dsp->show(); - } - return dsp; - } - QWidget_Dummy_Plugin(const QUrl& url, QmlGraphicsWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : - QWidget(dummy_shared_parent()), - propertyNames(paramNames), - propertyValues(paramValues), - webview(view) - { - QmlEngine *engine = qmlEngine(webview); - component = new QmlComponent(engine, url, this); - item = 0; - if (component->isLoading()) - connect(component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(qmlLoaded())); - else - qmlLoaded(); - } - -public Q_SLOTS: - void qmlLoaded() - { - if (component->isError()) { - // ### Could instead give these errors to the WebView to handle. - qWarning() << component->errors(); - return; - } - item = qobject_cast(component->create(qmlContext(webview))); - item->setParent(webview); - QString jsObjName; - for (int i=0; isetProperty(propertyNames[i].toUtf8(),propertyValues[i]); - if (propertyNames[i] == QLatin1String("objectname")) - jsObjName = propertyValues[i]; - } - } - if (!jsObjName.isNull()) { - QWebFrame *f = webview->page()->mainFrame(); - f->addToJavaScriptWindowObject(jsObjName, item); - } - resizeEvent(0); - delete component; - component = 0; - } - void resizeEvent(QResizeEvent*) - { - if (item) { - item->setX(x()); - item->setY(y()); - item->setWidth(width()); - item->setHeight(height()); - } - } - -private: - QmlComponent *component; - QmlGraphicsItem *item; - QStringList propertyNames, propertyValues; - QmlGraphicsWebView *webview; -}; - -QmlGraphicsWebView *QmlGraphicsWebPage::viewItem() -{ - return static_cast(parent()); -} - -QObject *QmlGraphicsWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) -{ - QUrl comp = qmlContext(viewItem())->resolvedUrl(url); - return new QWidget_Dummy_Plugin(comp,viewItem(),paramNames,paramValues); -} - -QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) -{ - QmlGraphicsWebView *newView = viewItem()->createWindow(type); - if (newView) - return newView->page(); - return 0; -} - -QT_END_NAMESPACE - -#include "qmlgraphicswebview.moc" diff --git a/src/declarative/fx/qmlgraphicswebview_p.h b/src/declarative/fx/qmlgraphicswebview_p.h deleted file mode 100644 index 6852bb0..0000000 --- a/src/declarative/fx/qmlgraphicswebview_p.h +++ /dev/null @@ -1,250 +0,0 @@ -/**************************************************************************** -** -** 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_H -#define QMLGRAPHICSWEBVIEW_H - -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -class QWebHistory; -class QWebSettings; - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) -class QmlGraphicsWebViewPrivate; -class QNetworkRequest; -class QmlGraphicsWebView; - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage -{ - Q_OBJECT -public: - explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); - ~QmlGraphicsWebPage(); -protected: - QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); - QWebPage *createWindow(WebWindowType type); - -private: - QmlGraphicsWebView *viewItem(); -}; - - -class QmlGraphicsWebViewAttached; -class QmlGraphicsWebSettings; - -//### TODO: browser plugins - -class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem -{ - Q_OBJECT - - Q_ENUMS(Status) - - Q_PROPERTY(QString title READ title NOTIFY titleChanged) - Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) - Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) - Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) - Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) - - Q_PROPERTY(QString html READ html WRITE setHtml) - - Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) - Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) - Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) - Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - - Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) - Q_PROPERTY(QAction* back READ backAction CONSTANT) - Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) - Q_PROPERTY(QAction* stop READ stopAction CONSTANT) - - Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) - - Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) - - Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) - Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) - - Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) - -public: - QmlGraphicsWebView(QmlGraphicsItem *parent=0); - ~QmlGraphicsWebView(); - - QUrl url() const; - void setUrl(const QUrl &); - - QString title() const; - - QPixmap icon() const; - - qreal textSizeMultiplier() const; - void setTextSizeMultiplier(qreal); - - qreal zoomFactor() const; - void setZoomFactor(qreal); - - int preferredWidth() const; - void setPreferredWidth(int); - int webPageWidth() const; - void setWebPageWidth(int); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - QString statusText() const; - - QAction *reloadAction() const; - QAction *backAction() const; - QAction *forwardAction() const; - QAction *stopAction() const; - - QWebPage *page() const; - void setPage(QWebPage *page); - - void load(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, - const QByteArray &body = QByteArray()); - - QString html() const; - - void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); - void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); - - QWebHistory *history() const; - QWebSettings *settings() const; - QmlGraphicsWebSettings *settingsObject() const; - - int pixelCacheSize() const; - void setPixelCacheSize(int pixels); - - bool renderingEnabled() const; - void setRenderingEnabled(bool); - - QmlList *javaScriptWindowObjects(); - - static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); - - QmlComponent *newWindowComponent() const; - void setNewWindowComponent(QmlComponent *newWindow); - QmlGraphicsItem *newWindowParent() const; - void setNewWindowParent(QmlGraphicsItem *newWindow); - -Q_SIGNALS: - void preferredWidthChanged(); - void preferredHeightChanged(); - void urlChanged(); - void progressChanged(); - void statusChanged(Status); - void titleChanged(const QString&); - void iconChanged(); - void statusTextChanged(); - void zoomFactorChanged(); - - void loadStarted(); - void loadFinished(); - void loadFailed(); - - void doubleClick(int clickX, int clickY); - - void zooming(qreal zoom, int centerX, int centerY); - -public Q_SLOTS: - QVariant evaluateJavaScript(const QString&); - void heuristicZoom(int clickX, int clickY); - -private Q_SLOTS: - void expandToWebPage(); - void paintPage(const QRect&); - void doLoadStarted(); - void doLoadProgress(int p); - void doLoadFinished(bool ok); - void setStatusText(const QString&); - void windowObjectCleared(); - void pageUrlChanged(); - void contentsSizeChanged(const QSize&); - -protected: - QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); - - void drawContents(QPainter *, const QRect &); - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void hoverMoveEvent (QGraphicsSceneHoverEvent * event); - void keyPressEvent(QKeyEvent* event); - void keyReleaseEvent(QKeyEvent* event); - virtual void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry); - 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(); - virtual void componentComplete(); - Q_DISABLE_COPY(QmlGraphicsWebView) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) - friend class QmlGraphicsWebPage; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsWebView) -QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QAction) - -QT_END_HEADER - -#endif diff --git a/src/declarative/graphicsitems/graphicsitems.pri b/src/declarative/graphicsitems/graphicsitems.pri new file mode 100644 index 0000000..8eac580 --- /dev/null +++ b/src/declarative/graphicsitems/graphicsitems.pri @@ -0,0 +1,84 @@ +HEADERS += \ + graphicsitems/qmlgraphicsanchors_p.h \ + graphicsitems/qmlgraphicsanchors_p_p.h \ + graphicsitems/qmlgraphicsevents_p_p.h \ + graphicsitems/qmlgraphicsflickable_p.h \ + graphicsitems/qmlgraphicsflickable_p_p.h \ + graphicsitems/qmlgraphicsflipable_p.h \ + graphicsitems/qmlgraphicsgridview_p.h \ + graphicsitems/qmlgraphicsimage_p.h \ + graphicsitems/qmlgraphicsimagebase_p.h \ + graphicsitems/qmlgraphicsborderimage_p.h \ + graphicsitems/qmlgraphicspainteditem_p.h \ + graphicsitems/qmlgraphicspainteditem_p_p.h \ + graphicsitems/qmlgraphicsimage_p_p.h \ + graphicsitems/qmlgraphicsborderimage_p_p.h \ + graphicsitems/qmlgraphicsimagebase_p_p.h \ + graphicsitems/qmlgraphicsitem.h \ + graphicsitems/qmlgraphicsitem_p.h \ + graphicsitems/qmlgraphicsfocuspanel_p.h \ + graphicsitems/qmlgraphicsfocusscope_p.h \ + graphicsitems/qmlgraphicspositioners_p.h \ + graphicsitems/qmlgraphicspositioners_p_p.h \ + graphicsitems/qmlgraphicsloader_p.h \ + graphicsitems/qmlgraphicsloader_p_p.h \ + graphicsitems/qmlgraphicsmouseregion_p.h \ + graphicsitems/qmlgraphicsmouseregion_p_p.h \ + graphicsitems/qmlgraphicspath_p.h \ + graphicsitems/qmlgraphicspath_p_p.h \ + graphicsitems/qmlgraphicspathview_p.h \ + graphicsitems/qmlgraphicspathview_p_p.h \ + graphicsitems/qmlgraphicsrect_p.h \ + graphicsitems/qmlgraphicsrect_p_p.h \ + graphicsitems/qmlgraphicsrepeater_p.h \ + graphicsitems/qmlgraphicsrepeater_p_p.h \ + graphicsitems/qmlgraphicsscalegrid_p_p.h \ + graphicsitems/qmlgraphicstextinput_p.h \ + graphicsitems/qmlgraphicstextinput_p_p.h \ + graphicsitems/qmlgraphicstextedit_p.h \ + graphicsitems/qmlgraphicstextedit_p_p.h \ + graphicsitems/qmlgraphicstext_p.h \ + graphicsitems/qmlgraphicstext_p_p.h \ + graphicsitems/qmlgraphicspixmapcache_p.h \ + graphicsitems/qmlgraphicsvisualitemmodel_p.h \ + graphicsitems/qmlgraphicslistview_p.h \ + graphicsitems/qmlgraphicsgraphicsobjectcontainer_p.h \ + graphicsitems/qmlgraphicslayoutitem_p.h \ + graphicsitems/qmlgraphicseffects.cpp + +SOURCES += \ + graphicsitems/qmlgraphicsanchors.cpp \ + graphicsitems/qmlgraphicsevents.cpp \ + graphicsitems/qmlgraphicsflickable.cpp \ + graphicsitems/qmlgraphicsflipable.cpp \ + graphicsitems/qmlgraphicsgridview.cpp \ + graphicsitems/qmlgraphicsimage.cpp \ + graphicsitems/qmlgraphicsborderimage.cpp \ + graphicsitems/qmlgraphicsimagebase.cpp \ + graphicsitems/qmlgraphicspainteditem.cpp \ + graphicsitems/qmlgraphicsitem.cpp \ + graphicsitems/qmlgraphicsfocuspanel.cpp \ + graphicsitems/qmlgraphicsfocusscope.cpp \ + graphicsitems/qmlgraphicspositioners.cpp \ + graphicsitems/qmlgraphicsloader.cpp \ + graphicsitems/qmlgraphicsmouseregion.cpp \ + graphicsitems/qmlgraphicspath.cpp \ + graphicsitems/qmlgraphicspathview.cpp \ + graphicsitems/qmlgraphicsrect.cpp \ + graphicsitems/qmlgraphicsrepeater.cpp \ + graphicsitems/qmlgraphicsscalegrid.cpp \ + graphicsitems/qmlgraphicstextinput.cpp \ + graphicsitems/qmlgraphicstext.cpp \ + graphicsitems/qmlgraphicstextedit.cpp \ + graphicsitems/qmlgraphicspixmapcache.cpp \ + graphicsitems/qmlgraphicsvisualitemmodel.cpp \ + graphicsitems/qmlgraphicslistview.cpp \ + graphicsitems/qmlgraphicsgraphicsobjectcontainer.cpp \ + graphicsitems/qmlgraphicslayoutitem.cpp \ + +contains(QT_CONFIG, webkit) { + QT+=webkit + SOURCES += graphicsitems/qmlgraphicswebview.cpp + HEADERS += graphicsitems/qmlgraphicswebview_p.h +} + diff --git a/src/declarative/graphicsitems/qmlgraphicsanchors.cpp b/src/declarative/graphicsitems/qmlgraphicsanchors.cpp new file mode 100644 index 0000000..e1d2f43 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanchors.cpp @@ -0,0 +1,962 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsanchors_p_p.h" +#include "qmlgraphicsitem.h" +#include "qmlgraphicsitem_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Anchors,QmlGraphicsAnchors) + +//TODO: should we cache relationships, so we don't have to check each time (parent-child or sibling)? +//TODO: support non-parent, non-sibling (need to find lowest common ancestor) + +//### const item? +//local position +static qreal position(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) +{ + qreal ret = 0.0; + switch(anchorLine) { + case QmlGraphicsAnchorLine::Left: + ret = item->x(); + break; + case QmlGraphicsAnchorLine::Right: + ret = item->x() + item->width(); + break; + case QmlGraphicsAnchorLine::Top: + ret = item->y(); + break; + case QmlGraphicsAnchorLine::Bottom: + ret = item->y() + item->height(); + break; + case QmlGraphicsAnchorLine::HCenter: + ret = item->x() + item->width()/2; + break; + case QmlGraphicsAnchorLine::VCenter: + ret = item->y() + item->height()/2; + break; + case QmlGraphicsAnchorLine::Baseline: + ret = item->y() + item->baselineOffset(); + break; + default: + break; + } + + return ret; +} + +//position when origin is 0,0 +static qreal adjustedPosition(QmlGraphicsItem *item, QmlGraphicsAnchorLine::AnchorLine anchorLine) +{ + int ret = 0; + switch(anchorLine) { + case QmlGraphicsAnchorLine::Left: + ret = 0; + break; + case QmlGraphicsAnchorLine::Right: + ret = item->width(); + break; + case QmlGraphicsAnchorLine::Top: + ret = 0; + break; + case QmlGraphicsAnchorLine::Bottom: + ret = item->height(); + break; + case QmlGraphicsAnchorLine::HCenter: + ret = item->width()/2; + break; + case QmlGraphicsAnchorLine::VCenter: + ret = item->height()/2; + break; + case QmlGraphicsAnchorLine::Baseline: + ret = item->baselineOffset(); + break; + default: + break; + } + + return ret; +} + +/*! + \internal + \class QmlGraphicsAnchors + \ingroup group_layouts + \brief The QmlGraphicsAnchors class provides a way to lay out items relative to other items. + + \warning Currently, only anchoring to siblings or parent is supported. +*/ + +QmlGraphicsAnchors::QmlGraphicsAnchors(QObject *parent) + : QObject(*new QmlGraphicsAnchorsPrivate(), parent) +{ +} + +QmlGraphicsAnchors::~QmlGraphicsAnchors() +{ + Q_D(QmlGraphicsAnchors); + d->remDepend(d->fill); + d->remDepend(d->centerIn); + d->remDepend(d->left.item); + d->remDepend(d->right.item); + d->remDepend(d->top.item); + d->remDepend(d->bottom.item); + d->remDepend(d->vCenter.item); + d->remDepend(d->hCenter.item); + d->remDepend(d->baseline.item); +} + +void QmlGraphicsAnchorsPrivate::fillChanged() +{ + if (!fill || !isItemComplete()) + return; + + if (fill == item->parentItem()) { //child-parent + setItemPos(QPointF(leftMargin, topMargin)); + } else if (fill->parentItem() == item->parentItem()) { //siblings + setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin)); + } + setItemWidth(fill->width()-leftMargin-rightMargin); + setItemHeight(fill->height()-topMargin-bottomMargin); +} + +void QmlGraphicsAnchorsPrivate::centerInChanged() +{ + if (!centerIn || fill || !isItemComplete()) + return; + + if (centerIn == item->parentItem()) { + QPointF p((item->parentItem()->width() - item->width()) / 2., + (item->parentItem()->height() - item->height()) / 2.); + setItemPos(p); + + } else if (centerIn->parentItem() == item->parentItem()) { + + QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2., + centerIn->y() + (centerIn->height() - item->height()) / 2.); + setItemPos(p); + } +} + +void QmlGraphicsAnchorsPrivate::clearItem(QmlGraphicsItem *item) +{ + if (!item) + return; + if (fill == item) + fill = 0; + if (centerIn == item) + centerIn = 0; + if (left.item == item) { + left.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasLeftAnchor; + } + if (right.item == item) { + right.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasRightAnchor; + } + if (top.item == item) { + top.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasTopAnchor; + } + if (bottom.item == item) { + bottom.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasBottomAnchor; + } + if (vCenter.item == item) { + vCenter.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasVCenterAnchor; + } + if (hCenter.item == item) { + hCenter.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasHCenterAnchor; + } + if (baseline.item == item) { + baseline.item = 0; + usedAnchors &= ~QmlGraphicsAnchors::HasBaselineAnchor; + } +} + +void QmlGraphicsAnchorsPrivate::addDepend(QmlGraphicsItem *item) +{ + Q_Q(QmlGraphicsAnchors); + if (!item) + return; + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); + p->dependantAnchors.append(q); +} + +void QmlGraphicsAnchorsPrivate::remDepend(QmlGraphicsItem *item) +{ + Q_Q(QmlGraphicsAnchors); + if (!item) + return; + QmlGraphicsItemPrivate *p = + static_cast(QGraphicsItemPrivate::get(item)); + p->dependantAnchors.removeOne(q); +} + +bool QmlGraphicsAnchorsPrivate::isItemComplete() const +{ + return componentComplete; +} + +void QmlGraphicsAnchors::classBegin() +{ + Q_D(QmlGraphicsAnchors); + d->componentComplete = false; +} + +void QmlGraphicsAnchors::componentComplete() +{ + Q_D(QmlGraphicsAnchors); + d->componentComplete = true; +} + +void QmlGraphicsAnchorsPrivate::setItemHeight(qreal v) +{ + updatingMe = true; + item->setHeight(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemWidth(qreal v) +{ + updatingMe = true; + item->setWidth(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemX(qreal v) +{ + updatingMe = true; + item->setX(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemY(qreal v) +{ + updatingMe = true; + item->setY(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::setItemPos(const QPointF &v) +{ + updatingMe = true; + item->setPos(v); + updatingMe = false; +} + +void QmlGraphicsAnchorsPrivate::updateMe() +{ + if (updatingMe) { + updatingMe = false; + return; + } + + fillChanged(); + centerInChanged(); + updateHorizontalAnchors(); + updateVerticalAnchors(); +} + +void QmlGraphicsAnchorsPrivate::updateOnComplete() +{ + fillChanged(); + centerInChanged(); + updateHorizontalAnchors(); + updateVerticalAnchors(); +} + +void QmlGraphicsAnchorsPrivate::update(QmlGraphicsItem *, const QRectF &newG, const QRectF &oldG) +{ + fillChanged(); + centerInChanged(); + + if (newG.x() != oldG.x() || newG.width() != oldG.width()) + updateHorizontalAnchors(); + if (newG.y() != oldG.y() || newG.height() != oldG.height()) + updateVerticalAnchors(); +} + +QmlGraphicsItem *QmlGraphicsAnchors::fill() const +{ + Q_D(const QmlGraphicsAnchors); + return d->fill; +} + +void QmlGraphicsAnchors::setFill(QmlGraphicsItem *f) +{ + Q_D(QmlGraphicsAnchors); + if (!f) { + d->remDepend(d->fill); + d->fill = f; + return; + } + if (f != d->item->parentItem() && f->parentItem() != d->item->parentItem()){ + qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); + return; + } + d->remDepend(d->fill); + d->fill = f; + d->addDepend(d->fill); + + d->fillChanged(); +} + +QmlGraphicsItem *QmlGraphicsAnchors::centerIn() const +{ + Q_D(const QmlGraphicsAnchors); + return d->centerIn; +} + +void QmlGraphicsAnchors::setCenterIn(QmlGraphicsItem* c) +{ + Q_D(QmlGraphicsAnchors); + if (!c) { + d->remDepend(d->centerIn); + d->centerIn = c; + return; + } + if (c != d->item->parentItem() && c->parentItem() != d->item->parentItem()){ + qmlInfo(tr("Can't anchor to an item that isn't a parent or sibling."), d->item); + return; + } + + d->remDepend(d->centerIn); + d->centerIn = c; + d->addDepend(d->centerIn); + + d->centerInChanged(); +} + +bool QmlGraphicsAnchorsPrivate::calcStretch(const QmlGraphicsAnchorLine &edge1, + const QmlGraphicsAnchorLine &edge2, + int offset1, + int offset2, + QmlGraphicsAnchorLine::AnchorLine line, + int &stretch) +{ + bool edge1IsParent = (edge1.item == item->parentItem()); + bool edge2IsParent = (edge2.item == item->parentItem()); + bool edge1IsSibling = (edge1.item->parentItem() == item->parentItem()); + bool edge2IsSibling = (edge2.item->parentItem() == item->parentItem()); + + bool invalid = false; + if ((edge2IsParent && edge1IsParent) || (edge2IsSibling && edge1IsSibling)) { + stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(edge1.item, edge1.anchorLine) + offset1); + } else if (edge2IsParent && edge1IsSibling) { + stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(item->parentItem(), line) + + (int)position(edge1.item, edge1.anchorLine) + offset1); + } else if (edge2IsSibling && edge1IsParent) { + stretch = ((int)position(item->parentItem(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) + - ((int)position(edge1.item, edge1.anchorLine) + offset1); + } else + invalid = true; + + return invalid; +} + +void QmlGraphicsAnchorsPrivate::updateVerticalAnchors() +{ + if (fill || centerIn || !isItemComplete()) + return; + + if (updatingVerticalAnchor < 2) { + ++updatingVerticalAnchor; + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor) { + //Handle stretching + bool invalid = true; + int height = 0; + if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { + invalid = calcStretch(top, bottom, topMargin, -bottomMargin, QmlGraphicsAnchorLine::Top, height); + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + invalid = calcStretch(top, vCenter, topMargin, vCenterOffset, QmlGraphicsAnchorLine::Top, height); + height *= 2; + } + if (!invalid) + setItemHeight(height); + + //Handle top + if (top.item == item->parentItem()) { + setItemY(adjustedPosition(top.item, top.anchorLine) + topMargin); + } else if (top.item->parentItem() == item->parentItem()) { + setItemY(position(top.item, top.anchorLine) + topMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasBottomAnchor) { + //Handle stretching (top + bottom case is handled above) + if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + int height = 0; + bool invalid = calcStretch(vCenter, bottom, vCenterOffset, -bottomMargin, + QmlGraphicsAnchorLine::Top, height); + if (!invalid) + setItemHeight(height*2); + } + + //Handle bottom + if (bottom.item == item->parentItem()) { + setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + } else if (bottom.item->parentItem() == item->parentItem()) { + setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + //(stetching handled above) + + //Handle vCenter + if (vCenter.item == item->parentItem()) { + setItemY(adjustedPosition(vCenter.item, vCenter.anchorLine) + - item->height()/2 + vCenterOffset); + } else if (vCenter.item->parentItem() == item->parentItem()) { + setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor) { + //Handle baseline + if (baseline.item->parentItem() == item->parentItem()) { + setItemY(position(baseline.item, baseline.anchorLine) - item->baselineOffset() + baselineOffset); + } + } + --updatingVerticalAnchor; + } else { + // ### Make this certain :) + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on vertical anchor."), item); + } +} + +void QmlGraphicsAnchorsPrivate::updateHorizontalAnchors() +{ + if (fill || centerIn || !isItemComplete()) + return; + + if (updatingHorizontalAnchor < 2) { + ++updatingHorizontalAnchor; + + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor) { + //Handle stretching + bool invalid = true; + int width = 0; + if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { + invalid = calcStretch(left, right, leftMargin, -rightMargin, QmlGraphicsAnchorLine::Left, width); + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + invalid = calcStretch(left, hCenter, leftMargin, hCenterOffset, QmlGraphicsAnchorLine::Left, width); + width *= 2; + } + if (!invalid) + setItemWidth(width); + + //Handle left + if (left.item == item->parentItem()) { + setItemX(adjustedPosition(left.item, left.anchorLine) + leftMargin); + } else if (left.item->parentItem() == item->parentItem()) { + setItemX(position(left.item, left.anchorLine) + leftMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasRightAnchor) { + //Handle stretching (left + right case is handled in updateLeftAnchor) + if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + int width = 0; + bool invalid = calcStretch(hCenter, right, hCenterOffset, -rightMargin, + QmlGraphicsAnchorLine::Left, width); + if (!invalid) + setItemWidth(width*2); + } + + //Handle right + if (right.item == item->parentItem()) { + setItemX(adjustedPosition(right.item, right.anchorLine) - item->width() - rightMargin); + } else if (right.item->parentItem() == item->parentItem()) { + setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); + } + } else if (usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + //Handle hCenter + if (hCenter.item == item->parentItem()) { + setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + } else if (hCenter.item->parentItem() == item->parentItem()) { + setItemX(position(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + } + } + + --updatingHorizontalAnchor; + } else { + // ### Make this certain :) + qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on horizontal anchor."), item); + } +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::top() const +{ + Q_D(const QmlGraphicsAnchors); + return d->top; +} + +void QmlGraphicsAnchors::setTop(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasTopAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasTopAnchor; + return; + } + + d->remDepend(d->top.item); + d->top = edge; + d->addDepend(d->top.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetTop() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasTopAnchor; + d->remDepend(d->top.item); + d->top = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::bottom() const +{ + Q_D(const QmlGraphicsAnchors); + return d->bottom; +} + +void QmlGraphicsAnchors::setBottom(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasBottomAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasBottomAnchor; + return; + } + + d->remDepend(d->bottom.item); + d->bottom = edge; + d->addDepend(d->bottom.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetBottom() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasBottomAnchor; + d->remDepend(d->bottom.item); + d->bottom = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::verticalCenter() const +{ + Q_D(const QmlGraphicsAnchors); + return d->vCenter; +} + +void QmlGraphicsAnchors::setVerticalCenter(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasVCenterAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasVCenterAnchor; + return; + } + + d->remDepend(d->vCenter.item); + d->vCenter = edge; + d->addDepend(d->vCenter.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetVerticalCenter() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasVCenterAnchor; + d->remDepend(d->vCenter.item); + d->vCenter = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::baseline() const +{ + Q_D(const QmlGraphicsAnchors); + return d->baseline; +} + +void QmlGraphicsAnchors::setBaseline(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkVAnchorValid(edge)) + return; + + d->usedAnchors |= HasBaselineAnchor; + + if (!d->checkVValid()) { + d->usedAnchors &= ~HasBaselineAnchor; + return; + } + + d->remDepend(d->baseline.item); + d->baseline = edge; + d->addDepend(d->baseline.item); + d->updateVerticalAnchors(); +} + +void QmlGraphicsAnchors::resetBaseline() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasBaselineAnchor; + d->remDepend(d->baseline.item); + d->baseline = QmlGraphicsAnchorLine(); + d->updateVerticalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::left() const +{ + Q_D(const QmlGraphicsAnchors); + return d->left; +} + +void QmlGraphicsAnchors::setLeft(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasLeftAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasLeftAnchor; + return; + } + + d->remDepend(d->left.item); + d->left = edge; + d->addDepend(d->left.item); + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetLeft() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasLeftAnchor; + d->remDepend(d->left.item); + d->left = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::right() const +{ + Q_D(const QmlGraphicsAnchors); + return d->right; +} + +void QmlGraphicsAnchors::setRight(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasRightAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasRightAnchor; + return; + } + + d->remDepend(d->right.item); + d->right = edge; + d->addDepend(d->right.item); + + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetRight() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasRightAnchor; + d->remDepend(d->right.item); + d->right = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +QmlGraphicsAnchorLine QmlGraphicsAnchors::horizontalCenter() const +{ + Q_D(const QmlGraphicsAnchors); + return d->hCenter; +} + +void QmlGraphicsAnchors::setHorizontalCenter(const QmlGraphicsAnchorLine &edge) +{ + Q_D(QmlGraphicsAnchors); + if (!d->checkHAnchorValid(edge)) + return; + + d->usedAnchors |= HasHCenterAnchor; + + if (!d->checkHValid()) { + d->usedAnchors &= ~HasHCenterAnchor; + return; + } + + d->remDepend(d->hCenter.item); + d->hCenter = edge; + d->addDepend(d->hCenter.item); + d->updateHorizontalAnchors(); +} + +void QmlGraphicsAnchors::resetHorizontalCenter() +{ + Q_D(QmlGraphicsAnchors); + d->usedAnchors &= ~HasHCenterAnchor; + d->remDepend(d->hCenter.item); + d->hCenter = QmlGraphicsAnchorLine(); + d->updateHorizontalAnchors(); +} + +qreal QmlGraphicsAnchors::leftMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->leftMargin; +} + +void QmlGraphicsAnchors::setLeftMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->leftMargin == offset) + return; + d->leftMargin = offset; + d->updateHorizontalAnchors(); + emit leftMarginChanged(); +} + +qreal QmlGraphicsAnchors::rightMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->rightMargin; +} + +void QmlGraphicsAnchors::setRightMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->rightMargin == offset) + return; + d->rightMargin = offset; + d->updateHorizontalAnchors(); + emit rightMarginChanged(); +} + +qreal QmlGraphicsAnchors::horizontalCenterOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->hCenterOffset; +} + +void QmlGraphicsAnchors::setHorizontalCenterOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->hCenterOffset == offset) + return; + d->hCenterOffset = offset; + d->updateHorizontalAnchors(); + emit horizontalCenterOffsetChanged(); +} + +qreal QmlGraphicsAnchors::topMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->topMargin; +} + +void QmlGraphicsAnchors::setTopMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->topMargin == offset) + return; + d->topMargin = offset; + d->updateVerticalAnchors(); + emit topMarginChanged(); +} + +qreal QmlGraphicsAnchors::bottomMargin() const +{ + Q_D(const QmlGraphicsAnchors); + return d->bottomMargin; +} + +void QmlGraphicsAnchors::setBottomMargin(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->bottomMargin == offset) + return; + d->bottomMargin = offset; + d->updateVerticalAnchors(); + emit bottomMarginChanged(); +} + +qreal QmlGraphicsAnchors::verticalCenterOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->vCenterOffset; +} + +void QmlGraphicsAnchors::setVerticalCenterOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->vCenterOffset == offset) + return; + d->vCenterOffset = offset; + d->updateVerticalAnchors(); + emit verticalCenterOffsetChanged(); +} + +qreal QmlGraphicsAnchors::baselineOffset() const +{ + Q_D(const QmlGraphicsAnchors); + return d->baselineOffset; +} + +void QmlGraphicsAnchors::setBaselineOffset(qreal offset) +{ + Q_D(QmlGraphicsAnchors); + if (d->baselineOffset == offset) + return; + d->baselineOffset = offset; + d->updateVerticalAnchors(); + emit baselineOffsetChanged(); +} + +QmlGraphicsAnchors::UsedAnchors QmlGraphicsAnchors::usedAnchors() const +{ + Q_D(const QmlGraphicsAnchors); + return d->usedAnchors; +} + +void QmlGraphicsAnchors::setItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsAnchors); + d->item = item; +} + +bool QmlGraphicsAnchorsPrivate::checkHValid() const +{ + if (usedAnchors & QmlGraphicsAnchors::HasLeftAnchor && + usedAnchors & QmlGraphicsAnchors::HasRightAnchor && + usedAnchors & QmlGraphicsAnchors::HasHCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify left, right, and hcenter anchors."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkHAnchorValid(QmlGraphicsAnchorLine anchor) const +{ + if (!anchor.item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); + return false; + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Vertical_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a horizontal edge to a vertical edge."), item); + return false; + } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + return false; + } else if (anchor.item == item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkVValid() const +{ + if (usedAnchors & QmlGraphicsAnchors::HasTopAnchor && + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor && + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor) { + qmlInfo(QmlGraphicsAnchors::tr("Can't specify top, bottom, and vcenter anchors."), item); + return false; + } else if (usedAnchors & QmlGraphicsAnchors::HasBaselineAnchor && + (usedAnchors & QmlGraphicsAnchors::HasTopAnchor || + usedAnchors & QmlGraphicsAnchors::HasBottomAnchor || + usedAnchors & QmlGraphicsAnchors::HasVCenterAnchor)) { + qmlInfo(QmlGraphicsAnchors::tr("Baseline anchor can't be used in conjunction with top, bottom, or vcenter anchors."), item); + return false; + } + + return true; +} + +bool QmlGraphicsAnchorsPrivate::checkVAnchorValid(QmlGraphicsAnchorLine anchor) const +{ + if (!anchor.item) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to a null item."), item); + return false; + } else if (anchor.anchorLine & QmlGraphicsAnchorLine::Horizontal_Mask) { + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor a vertical edge to a horizontal edge."), item); + return false; + } else if (anchor.item != item->parentItem() && anchor.item->parentItem() != item->parentItem()){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor to an item that isn't a parent or sibling."), item); + return false; + } else if (anchor.item == item){ + qmlInfo(QmlGraphicsAnchors::tr("Can't anchor item to self."), item); + return false; + } + + return true; +} + +#include "moc_qmlgraphicsanchors_p.cpp" + +QT_END_NAMESPACE + diff --git a/src/declarative/graphicsitems/qmlgraphicsanchors_p.h b/src/declarative/graphicsitems/qmlgraphicsanchors_p.h new file mode 100644 index 0000000..f6e9e1a --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanchors_p.h @@ -0,0 +1,179 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSANCHORS_H +#define QMLGRAPHICSANCHORS_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsAnchorsPrivate; +class QmlGraphicsAnchorLine; +class Q_DECLARATIVE_EXPORT QmlGraphicsAnchors : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QmlGraphicsAnchorLine left READ left WRITE setLeft RESET resetLeft) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right WRITE setRight RESET resetRight) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter WRITE setHorizontalCenter RESET resetHorizontalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top WRITE setTop RESET resetTop) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom WRITE setBottom RESET resetBottom) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter WRITE setVerticalCenter RESET resetVerticalCenter) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline WRITE setBaseline RESET resetBaseline) + Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged) + Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin NOTIFY rightMarginChanged) + Q_PROPERTY(qreal horizontalCenterOffset READ horizontalCenterOffset WRITE setHorizontalCenterOffset NOTIFY horizontalCenterOffsetChanged()) + Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin NOTIFY topMarginChanged) + Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) + Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) + Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) + Q_PROPERTY(QmlGraphicsItem *fill READ fill WRITE setFill) + Q_PROPERTY(QmlGraphicsItem *centerIn READ centerIn WRITE setCenterIn) + +public: + QmlGraphicsAnchors(QObject *parent=0); + virtual ~QmlGraphicsAnchors(); + + enum UsedAnchor { + HasLeftAnchor = 0x01, + HasRightAnchor = 0x02, + HasTopAnchor = 0x04, + HasBottomAnchor = 0x08, + HasHCenterAnchor = 0x10, + HasVCenterAnchor = 0x20, + HasBaselineAnchor = 0x40, + Horizontal_Mask = HasLeftAnchor | HasRightAnchor | HasHCenterAnchor, + Vertical_Mask = HasTopAnchor | HasBottomAnchor | HasVCenterAnchor | HasBaselineAnchor + }; + Q_DECLARE_FLAGS(UsedAnchors, UsedAnchor) + + QmlGraphicsAnchorLine left() const; + void setLeft(const QmlGraphicsAnchorLine &edge); + void resetLeft(); + + QmlGraphicsAnchorLine right() const; + void setRight(const QmlGraphicsAnchorLine &edge); + void resetRight(); + + QmlGraphicsAnchorLine horizontalCenter() const; + void setHorizontalCenter(const QmlGraphicsAnchorLine &edge); + void resetHorizontalCenter(); + + QmlGraphicsAnchorLine top() const; + void setTop(const QmlGraphicsAnchorLine &edge); + void resetTop(); + + QmlGraphicsAnchorLine bottom() const; + void setBottom(const QmlGraphicsAnchorLine &edge); + void resetBottom(); + + QmlGraphicsAnchorLine verticalCenter() const; + void setVerticalCenter(const QmlGraphicsAnchorLine &edge); + void resetVerticalCenter(); + + QmlGraphicsAnchorLine baseline() const; + void setBaseline(const QmlGraphicsAnchorLine &edge); + void resetBaseline(); + + qreal leftMargin() const; + void setLeftMargin(qreal); + + qreal rightMargin() const; + void setRightMargin(qreal); + + qreal horizontalCenterOffset() const; + void setHorizontalCenterOffset(qreal); + + qreal topMargin() const; + void setTopMargin(qreal); + + qreal bottomMargin() const; + void setBottomMargin(qreal); + + qreal verticalCenterOffset() const; + void setVerticalCenterOffset(qreal); + + qreal baselineOffset() const; + void setBaselineOffset(qreal); + + QmlGraphicsItem *fill() const; + void setFill(QmlGraphicsItem *); + + QmlGraphicsItem *centerIn() const; + void setCenterIn(QmlGraphicsItem *); + + UsedAnchors usedAnchors() const; + + void setItem(QmlGraphicsItem *item); + + void classBegin(); + void componentComplete(); + +Q_SIGNALS: + void leftMarginChanged(); + void rightMarginChanged(); + void topMarginChanged(); + void bottomMarginChanged(); + void verticalCenterOffsetChanged(); + void horizontalCenterOffsetChanged(); + void baselineOffsetChanged(); + +private: + friend class QmlGraphicsItem; + Q_DISABLE_COPY(QmlGraphicsAnchors) + Q_DECLARE_PRIVATE(QmlGraphicsAnchors) +}; +Q_DECLARE_OPERATORS_FOR_FLAGS(QmlGraphicsAnchors::UsedAnchors) + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsAnchors) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h b/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h new file mode 100644 index 0000000..5f8b2c1 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h @@ -0,0 +1,160 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSANCHORS_P_H +#define QMLGRAPHICSANCHORS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsanchors_p.h" +#include "private/qobject_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsAnchorLine +{ +public: + QmlGraphicsAnchorLine() : item(0), anchorLine(Invalid) + { + } + + enum AnchorLine { + Invalid = 0x0, + Left = 0x01, + Right = 0x02, + Top = 0x04, + Bottom = 0x08, + HCenter = 0x10, + VCenter = 0x20, + Baseline = 0x40, + Horizontal_Mask = Left | Right | HCenter, + Vertical_Mask = Top | Bottom | VCenter | Baseline + }; + + QmlGraphicsItem *item; + AnchorLine anchorLine; +}; +Q_DECLARE_METATYPE(QmlGraphicsAnchorLine) + +class QmlGraphicsAnchorsPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnchors) +public: + QmlGraphicsAnchorsPrivate() + : updatingMe(false), updatingHorizontalAnchor(0), + updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0), + centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), + bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0), + componentComplete(true) + { + } + + void init() + { + } + + void clearItem(QmlGraphicsItem *); + + void addDepend(QmlGraphicsItem *); + void remDepend(QmlGraphicsItem *); + bool isItemComplete() const; + + bool updatingMe; + int updatingHorizontalAnchor; + int updatingVerticalAnchor; + + void setItemHeight(qreal); + void setItemWidth(qreal); + void setItemX(qreal); + void setItemY(qreal); + void setItemPos(const QPointF &); + + void updateOnComplete(); + void updateMe(); + void update(QmlGraphicsItem *, const QRectF &, const QRectF &); + + bool checkHValid() const; + bool checkVValid() const; + bool checkHAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool checkVAnchorValid(QmlGraphicsAnchorLine anchor) const; + bool calcStretch(const QmlGraphicsAnchorLine &edge1, const QmlGraphicsAnchorLine &edge2, int offset1, int offset2, QmlGraphicsAnchorLine::AnchorLine line, int &stretch); + + void updateHorizontalAnchors(); + void updateVerticalAnchors(); + void fillChanged(); + void centerInChanged(); + + QmlGraphicsItem *item; + QmlGraphicsAnchors::UsedAnchors usedAnchors; + + QmlGraphicsItem *fill; + QmlGraphicsItem *centerIn; + + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine baseline; + + qreal leftMargin; + qreal rightMargin; + qreal topMargin; + qreal bottomMargin; + qreal vCenterOffset; + qreal hCenterOffset; + qreal baselineOffset; + + bool componentComplete; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsborderimage.cpp b/src/declarative/graphicsitems/qmlgraphicsborderimage.cpp new file mode 100644 index 0000000..ed39a2b --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsborderimage.cpp @@ -0,0 +1,411 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsborderimage_p.h" +#include "qmlgraphicsborderimage_p_p.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QmlGraphicsBorderImage) + +/*! + \qmlclass BorderImage QmlGraphicsBorderImage + \brief The BorderImage element provides an image that can be used as a border. + \inherits Item + + \snippet examples/declarative/border-image/example.qml 0 + + \image BorderImage.png + + \sa examples/declarative/border-image + */ + +/*! + \internal + \class QmlGraphicsBorderImage BorderImage + \brief The QmlGraphicsBorderImage class provides an image item that you can add to a QmlView. +*/ + +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsBorderImagePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsBorderImage::~QmlGraphicsBorderImage() +{ + Q_D(QmlGraphicsBorderImage); + if (d->sciReply) + d->sciReply->deleteLater(); + if (d->sciPendingPixmapCache) + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); +} +/*! + \qmlproperty enum BorderImage::status + + This property holds the status of image loading. It can be one of: + \list + \o Null - no image has been set + \o Ready - the image has been loaded + \o Loading - the image is currently being loaded + \o Error - an error occurred while loading the image + \endlist + + \sa progress +*/ + +/*! + \qmlproperty real BorderImage::progress + + This property holds the progress of image loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ + +/*! + \qmlproperty bool BorderImage::smooth + + Set this property if you want the image to be smoothly filtered when scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the image is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the image is stationary on + the screen. A common pattern when animating an image is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +/*! + \qmlproperty url BorderImage::source + + BorderImage can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. + + It can also handle .sci files, which are a Qml-specific format. A .sci file uses a simple text-based format that specifies + the borders, the image file and the tile rules. + + The following .sci file sets the borders to 10 on each side for the image \c picture.png: + \qml + border.left: 10 + border.top: 10 + border.bottom: 10 + border.right: 10 + source: picture.png + \endqml + + The URL may be absolute, or relative to the URL of the component. +*/ + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + + +void QmlGraphicsBorderImage::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsBorderImage); + //equality is fairly expensive, so we bypass for simple, common case + if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) + return; + + if (d->sciReply) { + d->sciReply->deleteLater(); + d->sciReply = 0; + } + + if (d->pendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->url, this); + d->pendingPixmapCache = false; + } + if (d->sciPendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->sciurl, this); + d->sciPendingPixmapCache = false; + } + + d->url = url; + d->sciurl = QUrl(); + if (d->progress != 0.0) { + d->progress = 0.0; + emit progressChanged(d->progress); + } + + if (url.isEmpty()) { + d->pix = QPixmap(); + d->status = Null; + d->progress = 1.0; + setImplicitWidth(0); + setImplicitHeight(0); + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } else { + d->status = Loading; + if (d->url.path().endsWith(QLatin1String(".sci"))) { +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(d->url); + if (!lf.isEmpty()) { + QFile file(lf); + file.open(QIODevice::ReadOnly); + setGridScaledImage(QmlGraphicsGridScaledImage(&file)); + } else +#endif + { + QNetworkRequest req(d->url); + d->sciReply = qmlEngine(this)->networkAccessManager()->get(req); + QObject::connect(d->sciReply, SIGNAL(finished()), + this, SLOT(sciRequestFinished())); + } + } else { + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); + if (reply) { + d->pendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } + } + + emit statusChanged(d->status); +} + +/*! + \qmlproperty int BorderImage::border.left + \qmlproperty int BorderImage::border.right + \qmlproperty int BorderImage::border.top + \qmlproperty int BorderImage::border.bottom + + \target ImagexmlpropertiesscaleGrid + + The 4 border lines (2 horizontal and 2 vertical) break an image into 9 sections, as shown below: + + \image declarative-scalegrid.png + + When the image is scaled: + \list + \i the corners (sections 1, 3, 7, and 9) are not scaled at all + \i the middle (section 5) is scaled according to BorderImage::horizontalTileMode and BorderImage::verticalTileMode + \i sections 2 and 8 are scaled according to BorderImage::horizontalTileMode + \i sections 4 and 6 are scaled according to BorderImage::verticalTileMode + \endlist + + Each border line (left, right, top, and bottom) specifies an offset from the respective side. For example, \c{border.bottom: 10} sets the bottom line 10 pixels up from the bottom of the image. + + The border lines can also be specified using a + \l {BorderImage::source}{.sci file}. +*/ + +QmlGraphicsScaleGrid *QmlGraphicsBorderImage::border() +{ + Q_D(QmlGraphicsBorderImage); + return d->getScaleGrid(); +} + +/*! + \qmlproperty TileMode BorderImage::horizontalTileMode + \qmlproperty TileMode BorderImage::verticalTileMode + + This property describes how to repeat or stretch the middle parts of the border image. + + \list + \o Stretch - Scale the image to fit to the available area. + \o Repeat - Tile the image until there is no more space. May crop the last image. + \o Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. + \endlist +*/ +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::horizontalTileMode() const +{ + Q_D(const QmlGraphicsBorderImage); + return d->horizontalTileMode; +} + +void QmlGraphicsBorderImage::setHorizontalTileMode(TileMode t) +{ + Q_D(QmlGraphicsBorderImage); + if (t != d->horizontalTileMode) { + d->horizontalTileMode = t; + emit horizontalTileModeChanged(); + update(); + } +} + +QmlGraphicsBorderImage::TileMode QmlGraphicsBorderImage::verticalTileMode() const +{ + Q_D(const QmlGraphicsBorderImage); + return d->verticalTileMode; +} + +void QmlGraphicsBorderImage::setVerticalTileMode(TileMode t) +{ + Q_D(QmlGraphicsBorderImage); + if (t != d->verticalTileMode) { + d->verticalTileMode = t; + emit verticalTileModeChanged(); + update(); + } +} + +void QmlGraphicsBorderImage::setGridScaledImage(const QmlGraphicsGridScaledImage& sci) +{ + Q_D(QmlGraphicsBorderImage); + if (!sci.isValid()) { + d->status = Error; + emit statusChanged(d->status); + } else { + QmlGraphicsScaleGrid *sg = border(); + sg->setTop(sci.gridTop()); + sg->setBottom(sci.gridBottom()); + sg->setLeft(sci.gridLeft()); + sg->setRight(sci.gridRight()); + d->horizontalTileMode = sci.horizontalTileRule(); + d->verticalTileMode = sci.verticalTileRule(); + + d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl())); + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->sciurl, &d->pix); + if (reply) { + d->sciPendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } +} + +void QmlGraphicsBorderImage::requestFinished() +{ + Q_D(QmlGraphicsBorderImage); + + if (d->url.path().endsWith(QLatin1String(".sci"))) { + d->sciPendingPixmapCache = false; + QmlGraphicsPixmapCache::find(d->sciurl, &d->pix); + } else { + d->pendingPixmapCache = false; + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) + d->status = Error; + } + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); +} + +void QmlGraphicsBorderImage::sciRequestFinished() +{ + Q_D(QmlGraphicsBorderImage); + if (d->sciReply->error() != QNetworkReply::NoError) { + d->status = Error; + d->sciReply->deleteLater(); + d->sciReply = 0; + emit statusChanged(d->status); + } else { + QmlGraphicsGridScaledImage sci(d->sciReply); + d->sciReply->deleteLater(); + d->sciReply = 0; + setGridScaledImage(sci); + } +} + +void QmlGraphicsBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsBorderImage); + if (d->pix.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + QMargins margins(border()->top(), border()->left(), border()->bottom(), border()->right()); + QTileRules rules((Qt::TileRule)d->horizontalTileMode, (Qt::TileRule)d->verticalTileMode); + qDrawBorderPixmap(p, QRect(0, 0, (int)d->width, (int)d->height), margins, d->pix, d->pix.rect(), margins, rules); + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +QmlGraphicsBorderImage::QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsborderimage_p.h b/src/declarative/graphicsitems/qmlgraphicsborderimage_p.h new file mode 100644 index 0000000..04850e6 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsborderimage_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSBORDERIMAGE_H +#define QMLGRAPHICSBORDERIMAGE_H + +#include +#include "qmlgraphicsimagebase_p.h" + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsScaleGrid; +class QmlGraphicsGridScaledImage; +class QmlGraphicsBorderImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsBorderImage : public QmlGraphicsImageBase +{ + Q_OBJECT + Q_ENUMS(TileMode) + + Q_PROPERTY(QmlGraphicsScaleGrid *border READ border CONSTANT) + Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged) + Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged) + +public: + QmlGraphicsBorderImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsBorderImage(); + + QmlGraphicsScaleGrid *border(); + + enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile }; + + TileMode horizontalTileMode() const; + void setHorizontalTileMode(TileMode); + + TileMode verticalTileMode() const; + void setVerticalTileMode(TileMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + void setSource(const QUrl &url); + +Q_SIGNALS: + void horizontalTileModeChanged(); + void verticalTileModeChanged(); + +protected: + QmlGraphicsBorderImage(QmlGraphicsBorderImagePrivate &dd, QmlGraphicsItem *parent); + +private: + void setGridScaledImage(const QmlGraphicsGridScaledImage& sci); + +private Q_SLOTS: + void requestFinished(); + void sciRequestFinished(); + +private: + Q_DISABLE_COPY(QmlGraphicsBorderImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBorderImage) +}; + +QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsBorderImage) +QT_END_HEADER + +#endif // QMLGRAPHICSBORDERIMAGE_H diff --git a/src/declarative/graphicsitems/qmlgraphicsborderimage_p_p.h b/src/declarative/graphicsitems/qmlgraphicsborderimage_p_p.h new file mode 100644 index 0000000..51ebb02 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsborderimage_p_p.h @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSBORDERIMAGE_P_H +#define QMLGRAPHICSBORDERIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsimagebase_p_p.h" +#include "qmlgraphicsscalegrid_p_p.h" + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsBorderImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBorderImage) + +public: + QmlGraphicsBorderImagePrivate() + : border(0), sciReply(0), + sciPendingPixmapCache(false), + horizontalTileMode(QmlGraphicsBorderImage::Stretch), + verticalTileMode(QmlGraphicsBorderImage::Stretch) + { + } + + ~QmlGraphicsBorderImagePrivate() + { + } + + QmlGraphicsScaleGrid *getScaleGrid() + { + Q_Q(QmlGraphicsBorderImage); + if (!border) + border = new QmlGraphicsScaleGrid(q); + return border; + } + + QmlGraphicsScaleGrid *border; + QUrl sciurl; + QNetworkReply *sciReply; + bool sciPendingPixmapCache; + QmlGraphicsBorderImage::TileMode horizontalTileMode; + QmlGraphicsBorderImage::TileMode verticalTileMode; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSBORDERIMAGE_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicseffects.cpp b/src/declarative/graphicsitems/qmlgraphicseffects.cpp new file mode 100644 index 0000000..c611eea --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicseffects.cpp @@ -0,0 +1,277 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ +#include +#include + +QML_DECLARE_TYPE(QGraphicsEffect) +QML_DEFINE_NOCREATE_TYPE(QGraphicsEffect) + +QML_DECLARE_TYPE(QGraphicsBlurEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Blur,QGraphicsBlurEffect) + +/*! + \qmlclass Blur QGraphicsBlurEffect + \brief The Blur object provides a blur effect. + + A blur effect blurs the source item. This effect is useful for reducing details, + such as when the source loses focus and you want to draw attention to other + elements. The level of detail can be modified using the blurRadius property. + Use blurHint to choose the quality or performance blur hints. + + By default, the blur radius is 5 pixels. + + \img graphicseffect-blur.png +*/ + +/*! + \qmlproperty real Blur::blurRadius + + blurRadius controls how blurry an item will appear. + Using a smaller radius results in a sharper appearance, whereas a bigger + radius results in a more blurred appearance. + + By default, the blur radius is 5 pixels. +*/ +/*! + \qmlproperty enumeration Blur::blurHint + + Use the Qt.PerformanceHint hint to say that you want a faster blur, + and the Qt.QualityHint hint to say that you prefer a higher quality blur. + + When animating the blur radius it's recommended to use Qt.PerformanceHint. + + By default, the blur hint is Qt.PerformanceHint. +*/ + +QML_DECLARE_TYPE(QGraphicsGrayscaleEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grayscale,QGraphicsGrayscaleEffect) + +/*! + \qmlclass Grayscale QGraphicsGrayscaleEffect + \brief The Grayscale object provides a grayscale effect. + + A grayscale effect renders the source item in shades of gray. + + \img graphicseffect-grayscale.png +*/ + +/*! + \qmlproperty real Grayscale::strength + + To what extent the source item is "grayed". A strength of 0.0 is equal to no effect, + while 1.0 means full grayscale. By default, the strength is 1.0. +*/ + +QML_DECLARE_TYPE(QGraphicsColorizeEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Colorize,QGraphicsColorizeEffect) + +/*! + \qmlclass Colorize QGraphicsColorizeEffect + \brief The Colorize object provides a colorize effect. + + A colorize effect renders the source item with a tint of its color. + + By default, the color is light blue. + + \img graphicseffect-colorize.png +*/ + +/*! + \qmlproperty color Colorize::color + The color of the effect. + + By default, the color is light blue. +*/ + +/*! + \qmlproperty real Colorize::strength + + To what extent the source item is "colored". A strength of 0.0 is equal to no effect, + while 1.0 means full colorization. By default, the strength is 1.0. +*/ + +QML_DECLARE_TYPE(QGraphicsPixelizeEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pixelize,QGraphicsPixelizeEffect) + +/*! + \qmlclass Pixelize QGraphicsPixelizeEffect + \brief The Pixelize object provides a pixelize effect. + + A pixelize effect renders the source item in lower resolution. The resolution + can be modified using the pixelSize property. + + By default, the pixel size is 3. + + \img graphicseffect-pixelize.png +*/ + +/*! + \qmlproperty int Pixelize::pixelSize + The size of a pixel in the effect. + + Setting the pixel size to 2 means two pixels in the source item will be used to + represent one pixel in the output. Using a bigger size results in lower resolution. + + By default, the pixel size is 3. +*/ + + +QML_DECLARE_TYPE(QGraphicsDropShadowEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,DropShadow,QGraphicsDropShadowEffect) + +/*! + \qmlclass DropShadow QGraphicsDropShadowEffect + \brief The DropShadow object provides a drop shadow effect. + + A drop shadow effect renders the source item with a drop shadow. The color of + the drop shadow can be modified using the color property. The drop + shadow offset can be modified using the xOffset and yOffset properties and the blur + radius of the drop shadow can be changed with the blurRadius property. + + By default, the drop shadow is a semi-transparent dark gray shadow, + blurred with a radius of 1 at an offset of 8 pixels towards the lower right. + + \img graphicseffect-drop-shadow.png +*/ + +/*! + \qmlproperty real DropShadow::xOffset + \qmlproperty real DropShadow::yOffset + The shadow offset in pixels. + + By default, xOffset and yOffset are 8 pixels. +*/ + +/*! + \qmlproperty real DropShadow::blurRadius + The blur radius in pixels of the drop shadow. + + Using a smaller radius results in a sharper shadow, whereas using a bigger + radius results in a more blurred shadow. + + By default, the blur radius is 1 pixel. +*/ + +/*! + \qmlproperty color DropShadow::color + The color of the drop shadow. + + By default, the drop color is a semi-transparent dark gray. +*/ + +QML_DECLARE_TYPE(QGraphicsOpacityEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Opacity,QGraphicsOpacityEffect) + +/*! + \qmlclass Opacity QGraphicsOpacityEffect + \brief The Opacity object provides an opacity effect. + + An opacity effect renders the source with an opacity. This effect is useful + for making the source semi-transparent, similar to a fade-in/fade-out + sequence. The opacity can be modified using the opacity property. + + By default, the opacity is 0.7. + + \img graphicseffect-opacity.png +*/ + +/*! + \qmlproperty real Opacity::opacity + This property specifies how opaque an item should appear. + + The value should be in the range of 0.0 to 1.0, where 0.0 is + fully transparent and 1.0 is fully opaque. + + By default, the opacity is 0.7. +*/ + +QML_DECLARE_TYPE(QGraphicsBloomEffect) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Bloom,QGraphicsBloomEffect) + +/*! + \qmlclass Bloom QGraphicsBloomEffect + \brief The Bloom object provides a bloom/glow effect. + + A bloom/glow effect adds fringes of light around bright areas in the source item. + + \img graphicseffect-bloom.png +*/ + +/*! + \qmlproperty real Bloom::blurRadius + The blur radius in pixels of the effect. + + Using a smaller radius results in a sharper appearance, whereas a bigger + radius results in a more blurred appearance. + + By default, the blur radius is 5 pixels. +*/ + +/*! + \qmlproperty enumeration Bloom::blurHint + + Use the Qt.PerformanceHint hint to say that you want a faster blur, + and the Qt.QualityHint hint to say that you prefer a higher quality blur. + + When animating the blur radius it's recommended to use Qt.PerformanceHint. + + By default, the blur hint is Qt.PerformanceHint. +*/ + +/*! + \qmlproperty int Bloom::brightness + This property specifies how bright the glow should appear. + + The value should be in the range of 0 to 255, where 0 is dark + and 255 is bright. + + By default, the brightness is 70. +*/ + +/*! + \qmlproperty real Bloom::strength + The strength of the glow. + + A strength of 0.0 is equal to no effect, while 1.0 means maximum glow. + + By default, the strength is 0.7. +*/ + diff --git a/src/declarative/graphicsitems/qmlgraphicsevents.cpp b/src/declarative/graphicsitems/qmlgraphicsevents.cpp new file mode 100644 index 0000000..9958dea --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsevents.cpp @@ -0,0 +1,195 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsevents_p_p.h" + +QT_BEGIN_NAMESPACE +/*! + \qmlclass KeyEvent QmlGraphicsKeyEvent + \brief The KeyEvent object provides information about a key event. + + For example, the following changes the Item's state property when the Enter + key is pressed: + \qml +Item { + focus: true + Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; } +} + \endqml +*/ + +/*! + \internal + \class QmlGraphicsKeyEvent +*/ + +/*! + \qmlproperty int KeyEvent::key + + This property holds the code of the key that was pressed or released. + + See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. These codes are + independent of the underlying window system. Note that this + function does not distinguish between capital and non-capital + letters, use the text() function (returning the Unicode text the + key generated) for this purpose. + + A value of either 0 or \l {Qt::Key_unknown}{Qt.Key_Unknown} means that the event is not + the result of a known key; for example, it may be the result of + a compose sequence, a keyboard macro, or due to key event + compression. +*/ + +/*! + \qmlproperty string KeyEvent::text + + This property holds the Unicode text that the key generated. + The text returned can be an empty string in cases where modifier keys, + such as Shift, Control, Alt, and Meta, are being pressed or released. + In such cases \c key will contain a valid value +*/ + +/*! + \qmlproperty bool KeyEvent::isAutoRepeat + + This property holds whether this event comes from an auto-repeating key. +*/ + +/*! + \qmlproperty int KeyEvent::count + + This property holds the number of keys involved in this event. If \l KeyEvent::text + is not empty, this is simply the length of the string. +*/ + +/*! + \qmlproperty bool KeyEvent::accepted + + Setting \a accepted to true prevents the key event from being + propagated to the item's parent. + + Generally, if the item acts on the key event then it should be accepted + so that ancestor items do not also respond to the same event. +*/ + + +/*! + \qmlclass MouseEvent QmlGraphicsMouseEvent + \brief The MouseEvent object provides information about a mouse event. + + The position of the mouse can be found via the x and y properties. + The button that caused the event is available via the button property. +*/ + +/*! + \internal + \class QmlGraphicsMouseEvent +*/ + +/*! + \qmlproperty int MouseEvent::x + \qmlproperty int MouseEvent::y + + These properties hold the position of the mouse event. +*/ + +/*! + \qmlproperty enum MouseEvent::button + + This property holds the button that caused the event. It can be one of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist +*/ + +/*! + \qmlproperty bool MouseEvent::wasHeld + + This property is true if the mouse button has been held pressed longer the + threshold (800ms). +*/ + +/*! + \qmlproperty int MouseEvent::buttons + + This property holds the mouse buttons pressed when the event was generated. + For mouse move events, this is all buttons that are pressed down. For mouse + press and double click events this includes the button that caused the event. + For mouse release events this excludes the button that caused the event. + + It contains a bitwise combination of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist +*/ + +/*! + \qmlproperty int MouseEvent::modifiers + + This property holds the keyboard modifier flags that existed immediately + before the event occurred. + + It contains a bitwise combination of: + \list + \o Qt.NoModifier - No modifier key is pressed. + \o Qt.ShiftModifier - A Shift key on the keyboard is pressed. + \o Qt.ControlModifier - A Ctrl key on the keyboard is pressed. + \o Qt.AltModifier - An Alt key on the keyboard is pressed. + \o Qt.MetaModifier - A Meta key on the keyboard is pressed. + \o Qt.KeypadModifier - A keypad button is pressed. + \endlist + + For example, to react to a Shift key + Left mouse button click: + \qml +MouseRegion { + onClicked: { if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething(); } +} + \endqml +*/ + +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsKeyEvent) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsMouseEvent) + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsevents_p_p.h b/src/declarative/graphicsitems/qmlgraphicsevents_p_p.h new file mode 100644 index 0000000..9cab18e --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsevents_p_p.h @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSEVENTS_P_H +#define QMLGRAPHICSEVENTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsKeyEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int key READ key) + Q_PROPERTY(QString text READ text) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool isAutoRepeat READ isAutoRepeat) + Q_PROPERTY(int count READ count) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text=QString(), bool autorep=false, ushort count=1) + : event(type, key, modifiers, text, autorep, count) { event.setAccepted(false); } + QmlGraphicsKeyEvent(const QKeyEvent &ke) + : event(ke) { event.setAccepted(false); } + + int key() const { return event.key(); } + QString text() const { return event.text(); } + int modifiers() const { return event.modifiers(); } + bool isAutoRepeat() const { return event.isAutoRepeat(); } + int count() const { return event.count(); } + + bool isAccepted() { return event.isAccepted(); } + void setAccepted(bool accepted) { event.setAccepted(accepted); } + +private: + QKeyEvent event; +}; + +class QmlGraphicsMouseEvent : public QObject +{ + Q_OBJECT + Q_PROPERTY(int x READ x) + Q_PROPERTY(int y READ y) + Q_PROPERTY(int button READ button) + Q_PROPERTY(int buttons READ buttons) + Q_PROPERTY(int modifiers READ modifiers) + Q_PROPERTY(bool wasHeld READ wasHeld) + Q_PROPERTY(bool isClick READ isClick) + Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) + +public: + QmlGraphicsMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers + , bool isClick=false, bool wasHeld=false) + : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers) + , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {} + + int x() const { return _x; } + int y() const { return _y; } + int button() const { return _button; } + int buttons() const { return _buttons; } + int modifiers() const { return _modifiers; } + bool wasHeld() const { return _wasHeld; } + bool isClick() const { return _isClick; } + + bool isAccepted() { return _accepted; } + void setAccepted(bool accepted) { _accepted = accepted; } + +private: + int _x; + int _y; + Qt::MouseButton _button; + Qt::MouseButtons _buttons; + Qt::KeyboardModifiers _modifiers; + bool _wasHeld; + bool _isClick; + bool _accepted; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsKeyEvent) +QML_DECLARE_TYPE(QmlGraphicsMouseEvent) + +#endif // QMLGRAPHICSEVENTS_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicsflickable.cpp b/src/declarative/graphicsitems/qmlgraphicsflickable.cpp new file mode 100644 index 0000000..8895977 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsflickable.cpp @@ -0,0 +1,1283 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsflickable_p.h" +#include "qmlgraphicsflickable_p_p.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + + +// These are highly device dependant. +// DragThreshold determines how far the "mouse" must move before +// we begin a drag. +// FlickThreshold determines how far the "mouse" must have moved +// before we perform a flick. +static const int DragThreshold = 8; +static const int FlickThreshold = 20; + +// Really slow flicks can be annoying. +static const int minimumFlickVelocity = 200; + +class QmlGraphicsFlickableVisibleArea : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal xPosition READ xPosition NOTIFY pageChanged) + Q_PROPERTY(qreal yPosition READ yPosition NOTIFY pageChanged) + Q_PROPERTY(qreal widthRatio READ widthRatio NOTIFY pageChanged) + Q_PROPERTY(qreal heightRatio READ heightRatio NOTIFY pageChanged) + +public: + QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent=0); + + qreal xPosition() const; + qreal widthRatio() const; + qreal yPosition() const; + qreal heightRatio() const; + + void updateVisible(); + +signals: + void pageChanged(); + +private: + QmlGraphicsFlickable *flickable; + qreal m_xPosition; + qreal m_widthRatio; + qreal m_yPosition; + qreal m_heightRatio; +}; + +QmlGraphicsFlickableVisibleArea::QmlGraphicsFlickableVisibleArea(QmlGraphicsFlickable *parent) + : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) + , m_yPosition(0.), m_heightRatio(0.) +{ +} + +qreal QmlGraphicsFlickableVisibleArea::widthRatio() const +{ + return m_widthRatio; +} + +qreal QmlGraphicsFlickableVisibleArea::xPosition() const +{ + return m_xPosition; +} + +qreal QmlGraphicsFlickableVisibleArea::heightRatio() const +{ + return m_heightRatio; +} + +qreal QmlGraphicsFlickableVisibleArea::yPosition() const +{ + return m_yPosition; +} + +void QmlGraphicsFlickableVisibleArea::updateVisible() +{ + QmlGraphicsFlickablePrivate *p = static_cast(QGraphicsItemPrivate::get(flickable)); + bool pageChange = false; + + // Vertical + const qreal viewheight = flickable->height(); + const qreal maxyextent = -flickable->maxYExtent(); + qreal pagePos = -p->_moveY.value() / (maxyextent + viewheight); + qreal pageSize = viewheight / (maxyextent + viewheight); + + if (pageSize != m_heightRatio) { + m_heightRatio = pageSize; + pageChange = true; + } + if (pagePos != m_yPosition) { + m_yPosition = pagePos; + pageChange = true; + } + + // Horizontal + const qreal viewwidth = flickable->width(); + const qreal maxxextent = -flickable->maxXExtent(); + pagePos = -p->_moveX.value() / (maxxextent + viewwidth); + pageSize = viewwidth / (maxxextent + viewwidth); + + if (pageSize != m_widthRatio) { + m_widthRatio = pageSize; + pageChange = true; + } + if (pagePos != m_xPosition) { + m_xPosition = pagePos; + pageChange = true; + } + if (pageChange) + emit pageChanged(); +} + + +QmlGraphicsFlickablePrivate::QmlGraphicsFlickablePrivate() + : viewport(new QmlGraphicsItem), _moveX(viewport, &QmlGraphicsItem::setX), _moveY(viewport, &QmlGraphicsItem::setY) + , vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false) + , pressed(false), atXEnd(false), atXBeginning(true), atYEnd(false), atYBeginning(true) + , interactive(true), deceleration(500), maxVelocity(5000), reportedVelocitySmoothing(100) + , delayedPressEvent(0), delayedPressTarget(0), pressDelay(0) + , horizontalVelocity(this), verticalVelocity(this), vTime(0), visibleArea(0) +{ + fixupXEvent = QmlTimeLineEvent::timeLineEvent(&_moveX, this); + fixupYEvent = QmlTimeLineEvent::timeLineEvent(&_moveY, this); +} + +void QmlGraphicsFlickablePrivate::init() +{ + Q_Q(QmlGraphicsFlickable); + viewport->setParent(q); + QObject::connect(&timeline, SIGNAL(updated()), q, SLOT(ticked())); + QObject::connect(&timeline, SIGNAL(completed()), q, SLOT(movementEnding())); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFiltersChildEvents(true); + QObject::connect(viewport, SIGNAL(xChanged()), q, SIGNAL(positionXChanged())); + QObject::connect(viewport, SIGNAL(yChanged()), q, SIGNAL(positionYChanged())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(heightChange())); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(widthChange())); +} + +void QmlGraphicsFlickablePrivate::flickX(qreal velocity) +{ + Q_Q(QmlGraphicsFlickable); + qreal maxDistance = -1; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveX.value() < q->minXExtent()) + maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); + flickTargetX = q->minXExtent(); + } else { + if (_moveX.value() > q->maxXExtent()) + maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); + flickTargetX = q->maxXExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + timeline.reset(_moveX); + timeline.accel(_moveX, v, deceleration, maxDistance); + timeline.execute(fixupXEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveX); + fixupX(); + } +} + +void QmlGraphicsFlickablePrivate::flickY(qreal velocity) +{ + Q_Q(QmlGraphicsFlickable); + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveY.value() < q->minYExtent()) + maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); + flickTargetY = q->minYExtent(); + } else { + if (_moveY.value() > q->maxYExtent()) + maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); + flickTargetY = q->maxYExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + timeline.reset(_moveY); + timeline.accel(_moveY, v, deceleration, maxDistance); + timeline.execute(fixupYEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveY); + fixupY(); + } +} + +void QmlGraphicsFlickablePrivate::fixupX() +{ + Q_Q(QmlGraphicsFlickable); + if (!q->xflick() || _moveX.timeLine()) + return; + + vTime = timeline.time(); + + if (_moveX.value() > q->minXExtent() || (q->maxXExtent() > q->minXExtent())) { + timeline.reset(_moveX); + if (_moveX.value() != q->minXExtent()) + timeline.move(_moveX, q->minXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else if (_moveX.value() < q->maxXExtent()) { + timeline.reset(_moveX); + timeline.move(_moveX, q->maxXExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else { + flicked = false; + } +} + +void QmlGraphicsFlickablePrivate::fixupY() +{ + Q_Q(QmlGraphicsFlickable); + if (!q->yflick() || _moveY.timeLine()) + return; + + vTime = timeline.time(); + + if (_moveY.value() > q->minYExtent() || (q->maxYExtent() > q->minYExtent())) { + timeline.reset(_moveY); + if (_moveY.value() != q->minYExtent()) + timeline.move(_moveY, q->minYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else if (_moveY.value() < q->maxYExtent()) { + timeline.reset(_moveY); + timeline.move(_moveY, q->maxYExtent(), QEasingCurve(QEasingCurve::InOutQuad), 200); + //emit flickingChanged(); + } else { + flicked = false; + } +} + +void QmlGraphicsFlickablePrivate::updateBeginningEnd() +{ + Q_Q(QmlGraphicsFlickable); + bool atBoundaryChange = false; + + // Vertical + const int maxyextent = int(-q->maxYExtent()); + const qreal ypos = -_moveY.value(); + bool atBeginning = (ypos <= 0.0); + bool atEnd = (maxyextent <= ypos); + + if (atBeginning != atYBeginning) { + atYBeginning = atBeginning; + atBoundaryChange = true; + } + if (atEnd != atYEnd) { + atYEnd = atEnd; + atBoundaryChange = true; + } + + // Horizontal + const int maxxextent = int(-q->maxXExtent()); + const qreal xpos = -_moveX.value(); + atBeginning = (xpos <= 0.0); + atEnd = (maxxextent <= xpos); + + if (atBeginning != atXBeginning) { + atXBeginning = atBeginning; + atBoundaryChange = true; + } + if (atEnd != atXEnd) { + atXEnd = atEnd; + atBoundaryChange = true; + } + + if (atBoundaryChange) + emit q->isAtBoundaryChanged(); + + if (visibleArea) + visibleArea->updateVisible(); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flickable,QmlGraphicsFlickable) + +/*! + \qmlclass Flickable QFxFlickable + \brief The Flickable item provides a surface that can be "flicked". + \inherits Item + + Flickable places its children on a surface that can be dragged and flicked. + + \code + Flickable { + width: 200; height: 200; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } + } + \endcode + + \image flickable.gif + + \note Flickable does not automatically clip its contents. If + it is not full-screen it is likely that \c clip should be set + to true. + + \note Due to an implementation detail items placed inside a flickable cannot anchor to it by + id, use 'parent' instead. +*/ + +/*! + \internal + \class QmlGraphicsFlickable + \brief The QmlGraphicsFlickable class provides a view that can be "flicked". + + \ingroup group_widgets + + QmlGraphicsFlickable allows its children to be dragged and flicked. + +\code +Flickable { + width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } +} +\endcode + + Note that QmlGraphicsFlickable does not automatically clip its contents. If + it is not full-screen it is likely that QmlGraphicsItem::clip should be set + to true. + +*/ + +/*! + \qmlproperty real Flickable::visibleArea.xPosition + \qmlproperty real Flickable::visibleArea.widthRatio + \qmlproperty real Flickable::visibleArea.yPosition + \qmlproperty real Flickable::visibleArea.heightRatio + + These properties describe the position and size of the currently viewed area. + The size is defined as the percentage of the full view currently visible, + scaled to 0.0 - 1.0. The page position is in the range 0.0 (beginning) to + size ratio (end), i.e. yPosition is in the range 0.0 - heightRatio. + + These properties are typically used to draw a scrollbar, for example: + \code + Rectangle { + opacity: 0.5; anchors.right: MyListView.right-2; width: 6 + y: MyListView.visibleArea.yPosition * MyListView.height + height: MyListView.visibleArea.heightRatio * MyListView.height + } + \endcode +*/ + +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsFlickablePrivate), parent) +{ + Q_D(QmlGraphicsFlickable); + d->init(); +} + +QmlGraphicsFlickable::QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsFlickable); + d->init(); +} + +QmlGraphicsFlickable::~QmlGraphicsFlickable() +{ +} + +/*! + \qmlproperty int Flickable::viewportX + \qmlproperty int Flickable::viewportY + + These properties hold the surface coordinate currently at the top-left + corner of the Flickable. For example, if you flick an image up 100 pixels, + \c yPosition will be 100. +*/ +qreal QmlGraphicsFlickable::viewportX() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveX.value(); +} + +void QmlGraphicsFlickable::setViewportX(qreal pos) +{ + Q_D(QmlGraphicsFlickable); + pos = qRound(pos); + d->timeline.reset(d->_moveX); + if (-pos != d->_moveX.value()) { + d->_moveX.setValue(-pos); + viewportMoved(); + } +} + +qreal QmlGraphicsFlickable::viewportY() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveY.value(); +} + +void QmlGraphicsFlickable::setViewportY(qreal pos) +{ + Q_D(QmlGraphicsFlickable); + pos = qRound(pos); + d->timeline.reset(d->_moveY); + if (-pos != d->_moveY.value()) { + d->_moveY.setValue(-pos); + viewportMoved(); + } +} + +/*! + \qmlproperty bool Flickable::interactive + + A user cannot drag or flick a Flickable that is not interactive. + + This property is useful for temporarily disabling flicking. This allows + special interaction with Flickable's children: for example, you might want to + freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable. +*/ +bool QmlGraphicsFlickable::isInteractive() const +{ + Q_D(const QmlGraphicsFlickable); + return d->interactive; +} + +void QmlGraphicsFlickable::setInteractive(bool interactive) +{ + Q_D(QmlGraphicsFlickable); + d->interactive = interactive; + if (!interactive && d->flicked) { + d->timeline.clear(); + d->flicked = false; + emit flickingChanged(); + emit flickEnded(); + } +} + +/*! + \qmlproperty real Flickable::horizontalVelocity + \qmlproperty real Flickable::verticalVelocity + \qmlproperty real Flickable::reportedVelocitySmoothing + + The instantaneous velocity of movement along the x and y axes, in pixels/sec. + + The reported velocity is smoothed to avoid erratic output. + reportedVelocitySmoothing determines how much smoothing is applied. +*/ +qreal QmlGraphicsFlickable::horizontalVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->horizontalVelocity.value(); +} + +qreal QmlGraphicsFlickable::verticalVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->verticalVelocity.value(); +} + +/*! + \qmlproperty bool Flickable::atXBeginning + \qmlproperty bool Flickable::atXEnd + \qmlproperty bool Flickable::atYBeginning + \qmlproperty bool Flickable::atYEnd + + These properties are true if the flickable view is positioned at the beginning, + or end respecively. +*/ +bool QmlGraphicsFlickable::isAtXEnd() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atXEnd; +} + +bool QmlGraphicsFlickable::isAtXBeginning() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atXBeginning; +} + +bool QmlGraphicsFlickable::isAtYEnd() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atYEnd; +} + +bool QmlGraphicsFlickable::isAtYBeginning() const +{ + Q_D(const QmlGraphicsFlickable); + return d->atYBeginning; +} + +void QmlGraphicsFlickable::ticked() +{ + viewportMoved(); +} + +QmlGraphicsItem *QmlGraphicsFlickable::viewport() +{ + Q_D(QmlGraphicsFlickable); + return d->viewport; +} + +qreal QmlGraphicsFlickable::visibleX() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveX.value(); +} + +qreal QmlGraphicsFlickable::visibleY() const +{ + Q_D(const QmlGraphicsFlickable); + return -d->_moveY.value(); +} + +QmlGraphicsFlickableVisibleArea *QmlGraphicsFlickable::visibleArea() +{ + Q_D(QmlGraphicsFlickable); + if (!d->visibleArea) + d->visibleArea = new QmlGraphicsFlickableVisibleArea(this); + return d->visibleArea; +} + +void QmlGraphicsFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) +{ + if (interactive && timeline.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10)) + stealMouse = true; // If we've been flicked then steal the click. + else + stealMouse = false; + pressed = true; + timeline.clear(); + velocityX = 0; + velocityY = 0; + lastPos = QPoint(); + QmlGraphicsItemPrivate::start(lastPosTime); + pressPos = event->pos(); + pressX = _moveX.value(); + pressY = _moveY.value(); + flicked = false; + QmlGraphicsItemPrivate::start(pressTime); + QmlGraphicsItemPrivate::start(velocityTime); +} + +void QmlGraphicsFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + if (!interactive || lastPosTime.isNull()) + return; + bool rejectY = false; + bool rejectX = false; + bool moved = false; + + if (q->yflick()) { + int dy = int(event->pos().y() - pressPos.y()); + if (qAbs(dy) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { + qreal newY = dy + pressY; + const qreal minY = q->minYExtent(); + const qreal maxY = q->maxYExtent(); + if (newY > minY) + newY = minY + (newY - minY) / 2; + if (newY < maxY && maxY - minY < 0) + newY = maxY + (newY - maxY) / 2; + if (!q->overShoot() && (newY > minY || newY < maxY)) { + if (newY > minY) + newY = minY; + else if (newY < maxY) + newY = maxY; + else + rejectY = true; + } + if (!rejectY) { + _moveY.setValue(newY); + moved = true; + } + if (qAbs(dy) > DragThreshold) + stealMouse = true; + } + } + + if (q->xflick()) { + int dx = int(event->pos().x() - pressPos.x()); + if (qAbs(dx) > DragThreshold || QmlGraphicsItemPrivate::elapsed(pressTime) > 200) { + qreal newX = dx + pressX; + const qreal minX = q->minXExtent(); + const qreal maxX = q->maxXExtent(); + if (newX > minX) + newX = minX + (newX - minX) / 2; + if (newX < maxX && maxX - minX < 0) + newX = maxX + (newX - maxX) / 2; + if (!q->overShoot() && (newX > minX || newX < maxX)) { + if (newX > minX) + newX = minX; + else if (newX < maxX) + newX = maxX; + else + rejectX = true; + } + if (!rejectX) { + _moveX.setValue(newX); + moved = true; + } + + if (qAbs(dx) > DragThreshold) + stealMouse = true; + } + } + + if (!lastPos.isNull()) { + qreal elapsed = qreal(QmlGraphicsItemPrivate::restart(lastPosTime)) / 1000.; + if (elapsed <= 0) + elapsed = 1; + if (q->yflick()) { + qreal diff = event->pos().y() - lastPos.y(); + // average to reduce the effect of spurious moves + velocityY += diff / elapsed; + velocityY /= 2; + } + + if (q->xflick()) { + qreal diff = event->pos().x() - lastPos.x(); + // average to reduce the effect of spurious moves + velocityX += diff / elapsed; + velocityX /= 2; + } + } + + if (rejectY) velocityY = 0; + if (rejectX) velocityX = 0; + + if (moved) { + q->movementStarting(); + q->viewportMoved(); + } + + lastPos = event->pos(); +} + +void QmlGraphicsFlickablePrivate::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + pressed = false; + if (lastPosTime.isNull()) + return; + + if (QmlGraphicsItemPrivate::elapsed(lastPosTime) > 100) { + // if we drag then pause before release we should not cause a flick. + velocityX = 0.0; + velocityY = 0.0; + } + + vTime = timeline.time(); + if (qAbs(velocityY) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) { + qreal velocity = velocityY; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + flickY(velocity); + } else { + fixupY(); + } + + if (qAbs(velocityX) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) { + qreal velocity = velocityX; + if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks. + velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity; + flickX(velocity); + } else { + fixupX(); + } + + stealMouse = false; + lastPosTime = QTime(); + + if (!timeline.isActive()) + q->movementEnding(); +} + +void QmlGraphicsFlickable::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->handleMousePressEvent(event); + event->accept(); +} + +void QmlGraphicsFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->handleMouseMoveEvent(event); + event->accept(); +} + +void QmlGraphicsFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + d->clearDelayedPress(); + d->handleMouseReleaseEvent(event); + event->accept(); + ungrabMouse(); +} + +void QmlGraphicsFlickablePrivate::captureDelayedPress(QGraphicsSceneMouseEvent *event) +{ + Q_Q(QmlGraphicsFlickable); + if (!q->scene() || pressDelay <= 0) + return; + delayedPressTarget = q->scene()->mouseGrabberItem(); + delayedPressEvent = new QGraphicsSceneMouseEvent(event->type()); + delayedPressEvent->setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + delayedPressEvent->setButtonDownPos(button, event->buttonDownPos(button)); + delayedPressEvent->setButtonDownScenePos(button, event->buttonDownScenePos(button)); + delayedPressEvent->setButtonDownScreenPos(button, event->buttonDownScreenPos(button)); + } + } + delayedPressEvent->setButtons(event->buttons()); + delayedPressEvent->setButton(event->button()); + delayedPressEvent->setPos(event->pos()); + delayedPressEvent->setScenePos(event->scenePos()); + delayedPressEvent->setScreenPos(event->screenPos()); + delayedPressEvent->setLastPos(event->lastPos()); + delayedPressEvent->setLastScenePos(event->lastScenePos()); + delayedPressEvent->setLastScreenPos(event->lastScreenPos()); + delayedPressEvent->setModifiers(event->modifiers()); + delayedPressTimer.start(pressDelay, q); +} + +void QmlGraphicsFlickablePrivate::clearDelayedPress() +{ + if (delayedPressEvent) { + delayedPressTimer.stop(); + delete delayedPressEvent; + delayedPressEvent = 0; + } +} + +void QmlGraphicsFlickable::timerEvent(QTimerEvent *event) +{ + Q_D(QmlGraphicsFlickable); + if (event->timerId() == d->delayedPressTimer.timerId()) { + d->delayedPressTimer.stop(); + if (d->delayedPressEvent) { + QmlGraphicsItem *grabber = scene() ? qobject_cast(scene()->mouseGrabberItem()) : 0; + if (!grabber || grabber != this) + scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); + delete d->delayedPressEvent; + d->delayedPressEvent = 0; + } + } +} + +qreal QmlGraphicsFlickable::minYExtent() const +{ + return 0.0; +} + +qreal QmlGraphicsFlickable::minXExtent() const +{ + return 0.0; +} + +/* returns -ve */ +qreal QmlGraphicsFlickable::maxXExtent() const +{ + return width() - vWidth(); +} +/* returns -ve */ +qreal QmlGraphicsFlickable::maxYExtent() const +{ + return height() - vHeight(); +} + +void QmlGraphicsFlickable::viewportMoved() +{ + Q_D(QmlGraphicsFlickable); + + int elapsed = QmlGraphicsItemPrivate::elapsed(d->velocityTime); + + if (elapsed) { + qreal prevY = d->lastFlickablePosition.x(); + qreal prevX = d->lastFlickablePosition.y(); + d->velocityTimeline.clear(); + if (d->pressed) { + qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / elapsed; + qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / elapsed; + d->velocityTimeline.move(d->horizontalVelocity, horizontalVelocity, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->horizontalVelocity, 0, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->verticalVelocity, verticalVelocity, d->reportedVelocitySmoothing); + d->velocityTimeline.move(d->verticalVelocity, 0, d->reportedVelocitySmoothing); + } else { + if (d->timeline.time() != d->vTime) { + qreal horizontalVelocity = (prevX - d->_moveX.value()) * 1000 / (d->timeline.time() - d->vTime); + qreal verticalVelocity = (prevY - d->_moveY.value()) * 1000 / (d->timeline.time() - d->vTime); + d->horizontalVelocity.setValue(horizontalVelocity); + d->verticalVelocity.setValue(verticalVelocity); + } + d->vTime = d->timeline.time(); + } + } + + d->lastFlickablePosition = QPointF(d->_moveY.value(), d->_moveX.value()); + QmlGraphicsItemPrivate::restart(d->velocityTime); + d->updateBeginningEnd(); + + if (d->flicked) { + // Near an end and it seems that the extent has changed? + // Recalculate the flick so that we don't end up in an odd position. + if (d->velocityY > 0) { + const qreal minY = minYExtent(); + if (minY - d->_moveY.value() < height()/3 && minY != d->flickTargetY) + d->flickY(-d->verticalVelocity.value()); + } else { + const qreal maxY = maxYExtent(); + if (d->_moveY.value() - maxY < height()/3 && maxY != d->flickTargetY) + d->flickY(-d->verticalVelocity.value()); + } + + if (d->velocityX > 0) { + const qreal minX = minXExtent(); + if (minX - d->_moveX.value() < height()/3 && minX != d->flickTargetX) + d->flickX(-d->horizontalVelocity.value()); + } else { + const qreal maxX = maxXExtent(); + if (d->_moveX.value() - maxX < height()/3 && maxX != d->flickTargetX) + d->flickX(-d->horizontalVelocity.value()); + } + } +} + +void QmlGraphicsFlickable::cancelFlick() +{ + Q_D(QmlGraphicsFlickable); + d->timeline.reset(d->_moveX); + d->timeline.reset(d->_moveY); + movementEnding(); +} + +void QmlGraphicsFlickablePrivate::data_removeAt(int) +{ + // ### +} + +int QmlGraphicsFlickablePrivate::data_count() const +{ + // ### + return 0; +} + +void QmlGraphicsFlickablePrivate::data_append(QObject *o) +{ + Q_Q(QmlGraphicsFlickable); + QmlGraphicsItem *i = qobject_cast(o); + if (i) + viewport->fxChildren()->append(i); + else + o->setParent(q); +} + +void QmlGraphicsFlickablePrivate::data_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsFlickablePrivate::data_at(int) const +{ + // ### + return 0; +} + +void QmlGraphicsFlickablePrivate::data_clear() +{ + // ### +} + + +QmlList *QmlGraphicsFlickable::flickableData() +{ + Q_D(QmlGraphicsFlickable); + return &d->data; +} + +QmlList *QmlGraphicsFlickable::flickableChildren() +{ + Q_D(QmlGraphicsFlickable); + return d->viewport->fxChildren(); +} + +/*! + \qmlproperty bool Flickable::overShoot + This property holds the number of pixels the surface may overshoot the + Flickable's boundaries when flicked. + + If overShoot is non-zero the contents can be flicked beyond the boundary + of the Flickable before being moved back to the boundary. This provides + the feeling that the edges of the view are soft, rather than a hard + physical boundary. +*/ +bool QmlGraphicsFlickable::overShoot() const +{ + Q_D(const QmlGraphicsFlickable); + return d->overShoot; +} + +void QmlGraphicsFlickable::setOverShoot(bool o) +{ + Q_D(QmlGraphicsFlickable); + d->overShoot = o; +} + +/*! + \qmlproperty int Flickable::viewportWidth + \qmlproperty int Flickable::viewportHeight + + The dimensions of the viewport (the surface controlled by Flickable). Typically this + should be set to the combined size of the items placed in the Flickable. + + \code + Flickable { + width: 320; height: 480; viewportWidth: image.width; viewportHeight: image.height + Image { id: image; source: "bigimage.png" } + } + \endcode +*/ +qreal QmlGraphicsFlickable::viewportWidth() const +{ + Q_D(const QmlGraphicsFlickable); + return d->vWidth; +} + +void QmlGraphicsFlickable::setViewportWidth(qreal w) +{ + Q_D(QmlGraphicsFlickable); + if (d->vWidth == w) + return; + d->vWidth = w; + if (w < 0) + d->viewport->setWidth(width()); + else + d->viewport->setWidth(w); + // Make sure that we're entirely in view. + if (!d->pressed) + d->fixupX(); + emit viewportWidthChanged(); + d->updateBeginningEnd(); +} + +void QmlGraphicsFlickable::widthChange() +{ + Q_D(QmlGraphicsFlickable); + if (d->vWidth < 0) { + d->viewport->setWidth(width()); + emit viewportWidthChanged(); + } + d->updateBeginningEnd(); +} + +void QmlGraphicsFlickable::heightChange() +{ + Q_D(QmlGraphicsFlickable); + if (d->vHeight < 0) { + d->viewport->setHeight(height()); + emit viewportHeightChanged(); + } + d->updateBeginningEnd(); +} + +qreal QmlGraphicsFlickable::viewportHeight() const +{ + Q_D(const QmlGraphicsFlickable); + return d->vHeight; +} + +void QmlGraphicsFlickable::setViewportHeight(qreal h) +{ + Q_D(QmlGraphicsFlickable); + if (d->vHeight == h) + return; + d->vHeight = h; + if (h < 0) + d->viewport->setHeight(height()); + else + d->viewport->setHeight(h); + // Make sure that we're entirely in view. + if (!d->pressed) + d->fixupY(); + emit viewportHeightChanged(); + d->updateBeginningEnd(); +} + +qreal QmlGraphicsFlickable::vWidth() const +{ + Q_D(const QmlGraphicsFlickable); + if (d->vWidth < 0) + return width(); + else + return d->vWidth; +} + +qreal QmlGraphicsFlickable::vHeight() const +{ + Q_D(const QmlGraphicsFlickable); + if (d->vHeight < 0) + return height(); + else + return d->vHeight; +} + +bool QmlGraphicsFlickable::xflick() const +{ + return vWidth() != width(); +} + +bool QmlGraphicsFlickable::yflick() const +{ + return vHeight() != height(); +} + +bool QmlGraphicsFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsFlickable); + QGraphicsSceneMouseEvent mouseEvent(event->type()); + QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); + + QGraphicsScene *s = scene(); + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { + mouseEvent.setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); + } + } + mouseEvent.setScenePos(event->scenePos()); + mouseEvent.setLastScenePos(event->lastScenePos()); + mouseEvent.setPos(mapFromScene(event->scenePos())); + mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); + + switch(mouseEvent.type()) { + case QEvent::GraphicsSceneMouseMove: + d->handleMouseMoveEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMousePress: + if (d->delayedPressEvent) + return false; + + d->handleMousePressEvent(&mouseEvent); + d->captureDelayedPress(event); + break; + case QEvent::GraphicsSceneMouseRelease: + if (d->delayedPressEvent) { + scene()->sendEvent(d->delayedPressTarget, d->delayedPressEvent); + d->clearDelayedPress(); + } + d->handleMouseReleaseEvent(&mouseEvent); + break; + default: + break; + } + grabber = qobject_cast(s->mouseGrabberItem()); + if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) { + d->clearDelayedPress(); + grabMouse(); + } + + return d->stealMouse || d->delayedPressEvent; + } else if (!d->lastPosTime.isNull()) { + d->lastPosTime = QTime(); + } + if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) + d->clearDelayedPress(); + return false; +} + +bool QmlGraphicsFlickable::sceneEventFilter(QGraphicsItem *i, QEvent *e) +{ + if (!isVisible()) + return QmlGraphicsItem::sceneEventFilter(i, e); + switch (e->type()) { + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMouseRelease: + return sendMouseEvent(static_cast(e)); + default: + break; + } + + return QmlGraphicsItem::sceneEventFilter(i, e); +} + +/*! + \qmlproperty real Flickable::maximumFlickVelocity + This property holds the maximum velocity that the user can flick the view in pixels/second. + + The default is 5000 pixels/s +*/ +qreal QmlGraphicsFlickable::maximumFlickVelocity() const +{ + Q_D(const QmlGraphicsFlickable); + return d->maxVelocity; +} + +void QmlGraphicsFlickable::setMaximumFlickVelocity(qreal v) +{ + Q_D(QmlGraphicsFlickable); + if (v == d->maxVelocity) + return; + d->maxVelocity = v; +} + +/*! + \qmlproperty real Flickable::maximumFlickVelocity + This property holds the rate at which a flick will decelerate. + + The default is 500. +*/ +qreal QmlGraphicsFlickable::flickDeceleration() const +{ + Q_D(const QmlGraphicsFlickable); + return d->deceleration; +} + +void QmlGraphicsFlickable::setFlickDeceleration(qreal deceleration) +{ + Q_D(QmlGraphicsFlickable); + d->deceleration = deceleration; +} + +bool QmlGraphicsFlickable::isFlicking() const +{ + Q_D(const QmlGraphicsFlickable); + return d->flicked; +} + +/*! + \qmlproperty int Flickable::pressDelay + + This property holds the time to delay (ms) delivering a press to + children of the Flickable. This can be useful where reacting + to a press before a flicking action has undesireable effects. + + If the flickable is dragged/flicked before the delay times out + the press event will not be delivered. If the button is released + within the timeout, both the press and release will be delivered. +*/ +int QmlGraphicsFlickable::pressDelay() const +{ + Q_D(const QmlGraphicsFlickable); + return d->pressDelay; +} + +void QmlGraphicsFlickable::setPressDelay(int delay) +{ + Q_D(QmlGraphicsFlickable); + if (d->pressDelay == delay) + return; + d->pressDelay = delay; +} + +qreal QmlGraphicsFlickable::reportedVelocitySmoothing() const +{ + Q_D(const QmlGraphicsFlickable); + return d->reportedVelocitySmoothing; +} + +void QmlGraphicsFlickable::setReportedVelocitySmoothing(qreal reportedVelocitySmoothing) +{ + Q_D(QmlGraphicsFlickable); + Q_ASSERT(reportedVelocitySmoothing >= 0); + if (reportedVelocitySmoothing == d->reportedVelocitySmoothing) + return; + d->reportedVelocitySmoothing = reportedVelocitySmoothing; + emit reportedVelocitySmoothingChanged(reportedVelocitySmoothing); +} + +bool QmlGraphicsFlickable::isMoving() const +{ + Q_D(const QmlGraphicsFlickable); + return d->moving; +} + +void QmlGraphicsFlickable::movementStarting() +{ + Q_D(QmlGraphicsFlickable); + if (!d->moving) { + d->moving = true; + emit movingChanged(); + emit movementStarted(); + } +} + +void QmlGraphicsFlickable::movementEnding() +{ + Q_D(QmlGraphicsFlickable); + if (d->moving) { + d->moving = false; + emit movingChanged(); + emit movementEnded(); + } + if (d->flicked) { + d->flicked = false; + emit flickingChanged(); + emit flickEnded(); + } + d->horizontalVelocity.setValue(0); + d->verticalVelocity.setValue(0); +} + +void QmlGraphicsFlickablePrivate::updateVelocity() +{ + Q_Q(QmlGraphicsFlickable); + emit q->horizontalVelocityChanged(); + emit q->verticalVelocityChanged(); +} + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlickableVisibleArea) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisibleArea,QmlGraphicsFlickableVisibleArea) + +#include "qmlgraphicsflickable.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicsflickable_p.h b/src/declarative/graphicsitems/qmlgraphicsflickable_p.h new file mode 100644 index 0000000..08b0fd8 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsflickable_p.h @@ -0,0 +1,203 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSFLICKABLE_H +#define QMLGRAPHICSFLICKABLE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsFlickablePrivate; +class QmlGraphicsFlickableVisibleArea; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlickable : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged) + Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged) + Q_PROPERTY(qreal viewportX READ viewportX WRITE setViewportX NOTIFY positionXChanged) + Q_PROPERTY(qreal viewportY READ viewportY WRITE setViewportY NOTIFY positionYChanged) + + Q_PROPERTY(qreal horizontalVelocity READ horizontalVelocity NOTIFY horizontalVelocityChanged) + Q_PROPERTY(qreal verticalVelocity READ verticalVelocity NOTIFY verticalVelocityChanged) + Q_PROPERTY(qreal reportedVelocitySmoothing READ reportedVelocitySmoothing WRITE setReportedVelocitySmoothing NOTIFY reportedVelocitySmoothingChanged) + + Q_PROPERTY(bool overShoot READ overShoot WRITE setOverShoot) + Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity) + Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration) + Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged) + Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged) + + Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive) + Q_PROPERTY(int pressDelay READ pressDelay WRITE setPressDelay) + + Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYEnd READ isAtYEnd NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atXBeginning READ isAtXBeginning NOTIFY isAtBoundaryChanged) + Q_PROPERTY(bool atYBeginning READ isAtYBeginning NOTIFY isAtBoundaryChanged) + + Q_PROPERTY(QmlGraphicsFlickableVisibleArea *visibleArea READ visibleArea CONSTANT) + + Q_PROPERTY(QmlList* flickableData READ flickableData) + Q_PROPERTY(QmlList* flickableChildren READ flickableChildren) + Q_CLASSINFO("DefaultProperty", "flickableData") + +public: + QmlGraphicsFlickable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlickable(); + + QmlList *flickableData(); + QmlList *flickableChildren(); + + bool overShoot() const; + void setOverShoot(bool); + + qreal viewportWidth() const; + void setViewportWidth(qreal); + + qreal viewportHeight() const; + void setViewportHeight(qreal); + + qreal viewportX() const; + void setViewportX(qreal pos); + + qreal viewportY() const; + void setViewportY(qreal pos); + + bool isMoving() const; + bool isFlicking() const; + + int pressDelay() const; + void setPressDelay(int delay); + + qreal reportedVelocitySmoothing() const; + void setReportedVelocitySmoothing(qreal); + + qreal maximumFlickVelocity() const; + void setMaximumFlickVelocity(qreal); + + qreal flickDeceleration() const; + void setFlickDeceleration(qreal); + + bool isInteractive() const; + void setInteractive(bool); + + qreal horizontalVelocity() const; + qreal verticalVelocity() const; + + bool isAtXEnd() const; + bool isAtXBeginning() const; + bool isAtYEnd() const; + bool isAtYBeginning() const; + + QmlGraphicsItem *viewport(); + +Q_SIGNALS: + void viewportWidthChanged(); + void viewportHeightChanged(); + void positionXChanged(); + void positionYChanged(); + void movingChanged(); + void flickingChanged(); + void movementStarted(); + void movementEnded(); + void flickStarted(); + void flickEnded(); + void reportedVelocitySmoothingChanged(int); + void horizontalVelocityChanged(); + void verticalVelocityChanged(); + void isAtBoundaryChanged(); + void pageChanged(); + +protected: + virtual bool sceneEventFilter(QGraphicsItem *, QEvent *); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void timerEvent(QTimerEvent *event); + + qreal visibleX() const; + qreal visibleY() const; + + QmlGraphicsFlickableVisibleArea *visibleArea(); + +protected Q_SLOTS: + virtual void ticked(); + void movementStarting(); + void movementEnding(); + void heightChange(); + void widthChange(); + +protected: + virtual qreal minXExtent() const; + virtual qreal minYExtent() const; + virtual qreal maxXExtent() const; + virtual qreal maxYExtent() const; + qreal vWidth() const; + qreal vHeight() const; + virtual void viewportMoved(); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + + bool xflick() const; + bool yflick() const; + void cancelFlick(); + +protected: + QmlGraphicsFlickable(QmlGraphicsFlickablePrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsFlickable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlickable) + friend class QmlGraphicsFlickableVisibleArea; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlickable) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsflickable_p_p.h b/src/declarative/graphicsitems/qmlgraphicsflickable_p_p.h new file mode 100644 index 0000000..2850e35 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsflickable_p_p.h @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSFLICKABLE_P_H +#define QMLGRAPHICSFLICKABLE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicsflickable_p.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include "private/qmltimeline_p_p.h" +#include "private/qmlanimation_p_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsFlickableVisibleArea; +class QmlGraphicsFlickablePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsFlickable) + +public: + QmlGraphicsFlickablePrivate(); + void init(); + virtual void flickX(qreal velocity); + virtual void flickY(qreal velocity); + virtual void fixupX(); + virtual void fixupY(); + void updateBeginningEnd(); + + void captureDelayedPress(QGraphicsSceneMouseEvent *event); + void clearDelayedPress(); + +public: + QmlGraphicsItem *viewport; + QmlTimeLineValueProxy _moveX; + QmlTimeLineValueProxy _moveY; + QmlTimeLine timeline; + qreal vWidth; + qreal vHeight; + bool overShoot : 1; + bool flicked : 1; + bool moving : 1; + bool stealMouse : 1; + bool pressed : 1; + bool atXEnd : 1; + bool atXBeginning : 1; + bool atYEnd : 1; + bool atYBeginning : 1; + bool interactive : 1; + QTime lastPosTime; + QPointF lastPos; + QPointF pressPos; + qreal pressX; + qreal pressY; + qreal velocityX; + qreal velocityY; + QTime pressTime; + QmlTimeLineEvent fixupXEvent; + QmlTimeLineEvent fixupYEvent; + qreal deceleration; + qreal maxVelocity; + QTime velocityTime; + QPointF lastFlickablePosition; + qreal reportedVelocitySmoothing; + int flickTargetX; + int flickTargetY; + QGraphicsSceneMouseEvent *delayedPressEvent; + QGraphicsItem *delayedPressTarget; + QBasicTimer delayedPressTimer; + int pressDelay; + + void updateVelocity(); + struct Velocity : public QmlTimeLineValue + { + Velocity(QmlGraphicsFlickablePrivate *p) + : parent(p) {} + virtual void setValue(qreal v) { + QmlTimeLineValue::setValue(v); + parent->updateVelocity(); + } + QmlGraphicsFlickablePrivate *parent; + }; + Velocity horizontalVelocity; + Velocity verticalVelocity; + int vTime; + QmlTimeLine velocityTimeline; + QmlGraphicsFlickableVisibleArea *visibleArea; + + void handleMousePressEvent(QGraphicsSceneMouseEvent *); + void handleMouseMoveEvent(QGraphicsSceneMouseEvent *); + void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *); + + // flickableData property + void data_removeAt(int); + int data_count() const; + void data_append(QObject *); + void data_insert(int, QObject *); + QObject *data_at(int) const; + void data_clear(); + + friend class QmlGraphicsFlickableVisibleArea; + QML_DECLARE_LIST_PROXY(QmlGraphicsFlickablePrivate, QObject *, data) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsflipable.cpp b/src/declarative/graphicsitems/qmlgraphicsflipable.cpp new file mode 100644 index 0000000..05cc214 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsflipable.cpp @@ -0,0 +1,234 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsflipable_p.h" +#include "private/qmlgraphicsitem_p.h" +#include "QtGui/qgraphicstransform.h" +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Flipable,QmlGraphicsFlipable) + +class QmlGraphicsFlipablePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsFlipable) +public: + QmlGraphicsFlipablePrivate() : current(QmlGraphicsFlipable::Front), front(0), back(0) {} + + void updateSceneTransformFromParent(); + + QmlGraphicsFlipable::Side current; + QmlGraphicsItem *front; + QmlGraphicsItem *back; +}; + +/*! + \qmlclass Flipable QmlGraphicsFlipable + \brief The Flipable item provides a surface that can be flipped. + \inherits Item + + Flipable allows you to specify a front and a back and then flip between those sides. + + \qml + Flipable { + id: flipable + width: 40 + height: 40 + axis: Axis { + startX: 20 + startY: 0 + endX: 20 + endY: 40 + } + front: Image { source: "front.png" } + back: Image { source: "back.png" } + states: [ + State { + name: "back" + SetProperty { + target: flipable + property: "rotation" + value: 180 + } + } + ] + transitions: [ + Transition { + NumberAnimation { + easing: "easeInOutQuad" + properties: "rotation" + } + } + ] +} + \endqml + + \image flipable.gif +*/ + +/*! + \internal + \class QmlGraphicsFlipable + \brief The QmlGraphicsFlipable class provides a flipable surface. + + \ingroup group_widgets + + QmlGraphicsFlipable allows you to specify a front and a back, as well as an + axis for the flip. +*/ + +QmlGraphicsFlipable::QmlGraphicsFlipable(QmlGraphicsItem *parent) +: QmlGraphicsItem(*(new QmlGraphicsFlipablePrivate), parent) +{ +} + +QmlGraphicsFlipable::~QmlGraphicsFlipable() +{ +} + +/*! + \qmlproperty Item Flipable::front + \qmlproperty Item Flipable::back + + The front and back sides of the flipable. +*/ + +QmlGraphicsItem *QmlGraphicsFlipable::front() +{ + Q_D(const QmlGraphicsFlipable); + return d->front; +} + +void QmlGraphicsFlipable::setFront(QmlGraphicsItem *front) +{ + Q_D(QmlGraphicsFlipable); + if (d->front) { + qmlInfo(tr("front is a write-once property"),this); + return; + } + d->front = front; + fxChildren()->append(d->front); + if (Back == d->current) + d->front->setOpacity(0.); +} + +QmlGraphicsItem *QmlGraphicsFlipable::back() +{ + Q_D(const QmlGraphicsFlipable); + return d->back; +} + +void QmlGraphicsFlipable::setBack(QmlGraphicsItem *back) +{ + Q_D(QmlGraphicsFlipable); + if (d->back) { + qmlInfo(tr("back is a write-once property"),this); + return; + } + d->back = back; + fxChildren()->append(d->back); + if (Front == d->current) + d->back->setOpacity(0.); +} + +/*! + \qmlproperty enumeration Flipable::side + + The side of the Flippable currently visible. Possible values are \c + Front and \c Back. +*/ +QmlGraphicsFlipable::Side QmlGraphicsFlipable::side() const +{ + Q_D(const QmlGraphicsFlipable); + if (d->dirtySceneTransform) + const_cast(d)->updateSceneTransformFromParent(); + + return d->current; +} + +// determination on the currently visible side of the flipable +// has to be done on the complete scene transform to give +// correct results. +void QmlGraphicsFlipablePrivate::updateSceneTransformFromParent() +{ + Q_Q(QmlGraphicsFlipable); + + QmlGraphicsItemPrivate::updateSceneTransformFromParent(); + QPointF p1(0, 0); + QPointF p2(1, 0); + QPointF p3(1, 1); + + p1 = sceneTransform.map(p1); + p2 = sceneTransform.map(p2); + p3 = sceneTransform.map(p3); + + qreal cross = (p1.x() - p2.x()) * (p3.y() - p2.y()) - + (p1.y() - p2.y()) * (p3.x() - p2.x()); + + QmlGraphicsFlipable::Side newSide; + if (cross > 0) { + newSide = QmlGraphicsFlipable::Back; + } else { + newSide = QmlGraphicsFlipable::Front; + } + + if (newSide != current) { + current = newSide; + if (current == QmlGraphicsFlipable::Back) { + QTransform mat; + mat.translate(back->width()/2,back->height()/2); + if (back->width() && p1.x() >= p2.x()) + mat.rotate(180, Qt::YAxis); + if (back->height() && p2.y() >= p3.y()) + mat.rotate(180, Qt::XAxis); + mat.translate(-back->width()/2,-back->height()/2); + back->setTransform(mat); + } + if (front) + front->setOpacity((current==QmlGraphicsFlipable::Front)?1.:0.); + if (back) + back->setOpacity((current==QmlGraphicsFlipable::Back)?1.:0.); + emit q->sideChanged(); + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsflipable_p.h b/src/declarative/graphicsitems/qmlgraphicsflipable_p.h new file mode 100644 index 0000000..23b6c76 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsflipable_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSFLIPABLE_H +#define QMLGRAPHICSFLIPABLE_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsFlipablePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsFlipable : public QmlGraphicsItem +{ + Q_OBJECT + + Q_ENUMS(Side) + Q_PROPERTY(QmlGraphicsItem *front READ front WRITE setFront) + Q_PROPERTY(QmlGraphicsItem *back READ back WRITE setBack) + Q_PROPERTY(Side side READ side NOTIFY sideChanged) + //### flipAxis + //### flipRotation +public: + QmlGraphicsFlipable(QmlGraphicsItem *parent=0); + ~QmlGraphicsFlipable(); + + QmlGraphicsItem *front(); + void setFront(QmlGraphicsItem *); + + QmlGraphicsItem *back(); + void setBack(QmlGraphicsItem *); + + enum Side { Front, Back }; + Side side() const; + +Q_SIGNALS: + void sideChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsFlipable) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsFlipable) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFlipable) + +QT_END_HEADER + +#endif // QMLGRAPHICSFLIPABLE_H diff --git a/src/declarative/graphicsitems/qmlgraphicsfocuspanel.cpp b/src/declarative/graphicsitems/qmlgraphicsfocuspanel.cpp new file mode 100644 index 0000000..d3ee184 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsfocuspanel.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsfocuspanel_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusPanel,QmlGraphicsFocusPanel) + +/*! + \qmlclass FocusPanel QFxFocusPanel + \brief The FocusPanel item explicitly creates a focus panel. + \inherits Item + + Focus panels assist in keyboard focus handling when building QML + applications. All the details are covered in the + \l {qmlfocus}{keyboard focus documentation}. +*/ + +/*! + \internal + \class QmlGraphicsFocusPanel +*/ + +QmlGraphicsFocusPanel::QmlGraphicsFocusPanel(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) +{ + setFlag(ItemIsPanel); +} + +QmlGraphicsFocusPanel::~QmlGraphicsFocusPanel() +{ +} + +/*! + \qmlproperty bool FocusPanel::active + + Sets whether the item is the active focus panel. +*/ + +bool QmlGraphicsFocusPanel::sceneEvent(QEvent *event) +{ + if (event->type() == QEvent::WindowActivate || + event->type() == QEvent::WindowDeactivate) + emit activeChanged(); + return QmlGraphicsItem::sceneEvent(event); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsfocuspanel_p.h b/src/declarative/graphicsitems/qmlgraphicsfocuspanel_p.h new file mode 100644 index 0000000..d014da2 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsfocuspanel_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSFOCUSPANEL_H +#define QMLGRAPHICSFOCUSPANEL_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusPanel : public QmlGraphicsItem +{ + Q_OBJECT + Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) +public: + QmlGraphicsFocusPanel(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusPanel(); + +Q_SIGNALS: + void activeChanged(); + +protected: + bool sceneEvent(QEvent *event); + +private: + Q_DISABLE_COPY(QmlGraphicsFocusPanel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusPanel) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSPANEL_H diff --git a/src/declarative/graphicsitems/qmlgraphicsfocusscope.cpp b/src/declarative/graphicsitems/qmlgraphicsfocusscope.cpp new file mode 100644 index 0000000..cd30b2b --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsfocusscope.cpp @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsfocusscope_p.h" + + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FocusScope,QmlGraphicsFocusScope) + +/*! + \qmlclass FocusScope QFxFocusScope + \brief The FocusScope object explicitly creates a focus scope. + \inherits Item + + Focus scopes assist in keyboard focus handling when building reusable QML + components. All the details are covered in the + \l {qmlfocus}{keyboard focus documentation}. +*/ + +/*! + \internal + \class QmlGraphicsFocusScope +*/ + +QmlGraphicsFocusScope::QmlGraphicsFocusScope(QmlGraphicsItem *parent) : + QmlGraphicsItem(parent) +{ + setFlag(QGraphicsItem::ItemIsFocusScope); +} + +QmlGraphicsFocusScope::~QmlGraphicsFocusScope() +{ +} +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsfocusscope_p.h b/src/declarative/graphicsitems/qmlgraphicsfocusscope_p.h new file mode 100644 index 0000000..813a999 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsfocusscope_p.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSFOCUSSCOPE_H +#define QMLGRAPHICSFOCUSSCOPE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +//### set component root as focusscope +class Q_DECLARATIVE_EXPORT QmlGraphicsFocusScope : public QmlGraphicsItem +{ + Q_OBJECT +public: + QmlGraphicsFocusScope(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsFocusScope(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsFocusScope) + +QT_END_HEADER + +#endif // QMLGRAPHICSFOCUSSCOPE_H diff --git a/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer.cpp b/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer.cpp new file mode 100644 index 0000000..2a0d6a6 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer.cpp @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsgraphicsobjectcontainer_p.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGraphicsObjectContainerPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsGraphicsObjectContainer) + +public: + QmlGraphicsGraphicsObjectContainerPrivate() : QmlGraphicsItemPrivate(), graphicsObject(0), syncedResize(false) + { } + + void _q_updateSize(); + + void setFiltering(bool on) + { + Q_Q(QmlGraphicsGraphicsObjectContainer); + if (graphicsObject && graphicsObject->isWidget()) { + if (!on) { + graphicsObject->removeEventFilter(q); + QObject::disconnect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::disconnect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } else { + graphicsObject->installEventFilter(q); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } + } + } + + + QGraphicsObject *graphicsObject; + bool syncedResize; +}; + + +/*! + \qmlclass GraphicsObjectContainer QmlGraphicsGraphicsObjectContainer + \brief The GraphicsObjectContainer element allows you to add QGraphicsObjects into Fluid UI elements. +*/ + +/*! + \internal + \class QmlGraphicsGraphicsObjectContainer + \brief The QmlGraphicsGraphicsObjectContainer class allows you to add QGraphicsObjects into Fluid UI applications. +*/ + +QML_DEFINE_NOCREATE_TYPE(QGraphicsObject) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GraphicsObjectContainer,QmlGraphicsGraphicsObjectContainer) + +QmlGraphicsGraphicsObjectContainer::QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent) +: QmlGraphicsItem(*new QmlGraphicsGraphicsObjectContainerPrivate, parent) +{ +} + +QmlGraphicsGraphicsObjectContainer::~QmlGraphicsGraphicsObjectContainer() +{ +} + +QGraphicsObject *QmlGraphicsGraphicsObjectContainer::graphicsObject() const +{ + Q_D(const QmlGraphicsGraphicsObjectContainer); + return d->graphicsObject; +} + +/*! + \qmlproperty QGraphicsObject GraphicsObjectContainer::graphicsObject + The QGraphicsObject associated with this element. +*/ +void QmlGraphicsGraphicsObjectContainer::setGraphicsObject(QGraphicsObject *object) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (object == d->graphicsObject) + return; + + //### remove previously set item? + + d->setFiltering(false); + + d->graphicsObject = object; + + if (d->graphicsObject) { + d->graphicsObject->setParentItem(this); + + if (d->syncedResize && d->graphicsObject->isWidget()) { + QGraphicsWidget *gw = static_cast(d->graphicsObject); + QSizeF gwSize = gw->size(); //### should we use sizeHint? + QSizeF newSize = gwSize; + if (heightValid()) + newSize.setHeight(height()); + if (widthValid()) + newSize.setWidth(width()); + if (gwSize != newSize) + gw->resize(newSize); + + gwSize = gw->size(); + setImplicitWidth(gwSize.width()); + setImplicitHeight(gwSize.height()); + + d->setFiltering(true); + } + } +} + +QVariant QmlGraphicsGraphicsObjectContainer::itemChange(GraphicsItemChange change, const QVariant &value) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (change == ItemSceneHasChanged) { + QGraphicsObject *o = d->graphicsObject; + d->graphicsObject = 0; + setGraphicsObject(o); + } + return QmlGraphicsItem::itemChange(change, value); +} + +bool QmlGraphicsGraphicsObjectContainer::eventFilter(QObject *watched, QEvent *e) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (watched == d->graphicsObject && e->type() == QEvent::GraphicsSceneResize) { + if (d->graphicsObject && d->graphicsObject->isWidget() && d->syncedResize) { + QSizeF newSize = static_cast(d->graphicsObject)->size(); + setImplicitWidth(newSize.width()); + setImplicitHeight(newSize.height()); + } + } + return QmlGraphicsItem::eventFilter(watched, e); +} + +/*! + \qmlproperty bool GraphicsObjectContainer::synchronizedResizing + + This property determines whether or not the container and graphics object will synchronize their + sizes. + + \note This property only applies when wrapping a QGraphicsWidget. + + If synchronizedResizing is enabled, the container and widget will + synchronize their sizes as follows. + \list + \o If a size has been set on the container, the widget will be resized to the container. + Any changes in the container's size will be reflected in the widget. + + \o \e Otherwise, the container will initially be sized to the preferred size of the widget. + Any changes to the container's size will be reflected in the widget, and any changes to the + widget's size will be reflected in the container. + \endlist +*/ +bool QmlGraphicsGraphicsObjectContainer::synchronizedResizing() const +{ + Q_D(const QmlGraphicsGraphicsObjectContainer); + return d->syncedResize; +} + +void QmlGraphicsGraphicsObjectContainer::setSynchronizedResizing(bool on) +{ + Q_D(QmlGraphicsGraphicsObjectContainer); + if (on == d->syncedResize) + return; + + d->syncedResize = on; + d->setFiltering(on); +} + +void QmlGraphicsGraphicsObjectContainerPrivate::_q_updateSize() +{ + if (!graphicsObject || !graphicsObject->isWidget() || !syncedResize) + return; + + QGraphicsWidget *gw = static_cast(graphicsObject); + const QSizeF newSize(width, height); + gw->resize(newSize); + + //### will respecting the widgets min/max ever get us in trouble? (all other items always + // size to exactly what you tell them) + /*QSizeF constrainedSize = newSize.expandedTo(gw->minimumSize()).boundedTo(gw->maximumSize()); + gw->resize(constrainedSize); + if (constrainedSize != newSize) { + setImplicitWidth(constrainedSize.width()); + setImplicitHeight(constrainedSize.height()); + }*/ +} + +#include "moc_qmlgraphicsgraphicsobjectcontainer_p.cpp" + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer_p.h b/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer_p.h new file mode 100644 index 0000000..10f08bd --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsgraphicsobjectcontainer_p.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H +#define QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QGraphicsObject; +class QmlGraphicsGraphicsObjectContainerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGraphicsObjectContainer : public QmlGraphicsItem +{ + Q_OBJECT + + Q_CLASSINFO("DefaultProperty", "graphicsObject") + Q_PROPERTY(QGraphicsObject *graphicsObject READ graphicsObject WRITE setGraphicsObject) + Q_PROPERTY(bool synchronizedResizing READ synchronizedResizing WRITE setSynchronizedResizing) + +public: + QmlGraphicsGraphicsObjectContainer(QmlGraphicsItem *parent = 0); + ~QmlGraphicsGraphicsObjectContainer(); + + QGraphicsObject *graphicsObject() const; + void setGraphicsObject(QGraphicsObject *); + + bool synchronizedResizing() const; + void setSynchronizedResizing(bool on); + +protected: + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + bool eventFilter(QObject *watched, QEvent *e); + +private: + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGraphicsObjectContainer) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QGraphicsObject) +QML_DECLARE_TYPE(QmlGraphicsGraphicsObjectContainer) + +QT_END_HEADER + +#endif // QMLGRAPHICSGRAPHICSOBJECTCONTAINER_H diff --git a/src/declarative/graphicsitems/qmlgraphicsgridview.cpp b/src/declarative/graphicsitems/qmlgraphicsgridview.cpp new file mode 100644 index 0000000..cadd650 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsgridview.cpp @@ -0,0 +1,1585 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsgridview_p.h" +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGridViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsGridViewAttached(QObject *parent) + : QObject(parent), m_isCurrent(false), m_delayRemove(false) {} + ~QmlGraphicsGridViewAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(QmlGraphicsGridView *view READ view CONSTANT) + QmlGraphicsGridView *view() { return m_view; } + + Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) + bool isCurrentItem() const { return m_isCurrent; } + void setIsCurrentItem(bool c) { + if (m_isCurrent != c) { + m_isCurrent = c; + emit currentItemChanged(); + } + } + + Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) + bool delayRemove() const { return m_delayRemove; } + void setDelayRemove(bool delay) { + if (m_delayRemove != delay) { + m_delayRemove = delay; + emit delayRemoveChanged(); + } + } + + static QmlGraphicsGridViewAttached *properties(QObject *obj) { + QmlGraphicsGridViewAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsGridViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + + void emitAdd() { emit add(); } + void emitRemove() { emit remove(); } + +Q_SIGNALS: + void currentItemChanged(); + void delayRemoveChanged(); + void add(); + void remove(); + +public: + QmlGraphicsGridView *m_view; + bool m_isCurrent; + bool m_delayRemove; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsGridViewAttached::attachedProperties; + + +//---------------------------------------------------------------------------- + +class FxGridItem +{ +public: + FxGridItem(QmlGraphicsItem *i, QmlGraphicsGridView *v) : item(i), view(v) { + attached = QmlGraphicsGridViewAttached::properties(item); + attached->m_view = view; + } + ~FxGridItem() {} + + qreal rowPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->y() : item->x()); } + qreal colPos() const { return (view->flow() == QmlGraphicsGridView::LeftToRight ? item->x() : item->y()); } + qreal endRowPos() const { + return view->flow() == QmlGraphicsGridView::LeftToRight + ? item->y() + view->cellHeight() - 1 + : item->x() + view->cellWidth() - 1; + } + void setPosition(qreal col, qreal row) { + if (view->flow() == QmlGraphicsGridView::LeftToRight) { + item->setPos(QPointF(col, row)); + } else { + item->setPos(QPointF(row, col)); + } + } + + QmlGraphicsItem *item; + QmlGraphicsGridView *view; + QmlGraphicsGridViewAttached *attached; + int index; +}; + +//---------------------------------------------------------------------------- + +class QmlGraphicsGridViewPrivate : public QmlGraphicsFlickablePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsGridView) + +public: + QmlGraphicsGridViewPrivate() + : model(0), currentItem(0), flow(QmlGraphicsGridView::LeftToRight) + , visiblePos(0), visibleIndex(0) , currentIndex(-1) + , cellWidth(100), cellHeight(100), columns(1), requestedIndex(-1) + , highlightComponent(0), highlight(0), trackedItem(0) + , moveReason(Other), buffer(0), highlightXAnimator(0), highlightYAnimator(0) + , ownModel(false), wrap(false), autoHighlight(true) + , fixCurrentVisibility(false) {} + + void init(); + void clear(); + FxGridItem *createItem(int modelIndex); + void releaseItem(FxGridItem *item); + void refill(qreal from, qreal to); + + void updateGrid(); + void layout(bool removed=false); + void updateUnrequestedIndexes(); + void updateUnrequestedPositions(); + void updateTrackedItem(); + void createHighlight(); + void updateHighlight(); + void updateCurrent(int modelIndex); + + FxGridItem *visibleItem(int modelIndex) const { + if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { + for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { + FxGridItem *item = visibleItems.at(i); + if (item->index == modelIndex) + return item; + } + } + return 0; + } + + qreal position() const { + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->viewportY() : q->viewportX(); + } + void setPosition(qreal pos) { + Q_Q(QmlGraphicsGridView); + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportY(pos); + else + q->setViewportX(pos); + } + int size() const { + Q_Q(const QmlGraphicsGridView); + return flow == QmlGraphicsGridView::LeftToRight ? q->height() : q->width(); + } + qreal startPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) + pos = visibleItems.first()->rowPos() - visibleIndex / columns * rowSize(); + return pos; + } + + qreal endPosition() const { + qreal pos = 0; + if (model && model->count()) + pos = rowPosAt(model->count() - 1) + rowSize(); + return pos; + } + + bool isValid() const { + return model && model->count() && model->isValid(); + } + + int rowSize() const { + return flow == QmlGraphicsGridView::LeftToRight ? cellHeight : cellWidth; + } + int colSize() const { + return flow == QmlGraphicsGridView::LeftToRight ? cellWidth : cellHeight; + } + + qreal colPosAt(int modelIndex) const { + if (FxGridItem *item = visibleItem(modelIndex)) + return item->colPos(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int count = (visibleIndex - modelIndex) % columns; + int col = visibleItems.first()->colPos() / colSize(); + col = (columns - count + col) % columns; + return col * colSize(); + } else { + int count = columns - 1 - (modelIndex - visibleItems.last()->index - 1) % columns; + return visibleItems.last()->colPos() - count * colSize(); + } + } else { + return (modelIndex % columns) * colSize(); + } + return 0; + } + qreal rowPosAt(int modelIndex) const { + if (FxGridItem *item = visibleItem(modelIndex)) + return item->rowPos(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int firstCol = visibleItems.first()->colPos() / colSize(); + int col = visibleIndex - modelIndex + (columns - firstCol - 1); + int rows = col / columns; + return visibleItems.first()->rowPos() - rows * rowSize(); + } else { + int count = modelIndex - visibleItems.last()->index; + int col = visibleItems.last()->colPos() + count * colSize(); + int rows = col / (columns * colSize()); + return visibleItems.last()->rowPos() + rows * rowSize(); + } + } else { + return (modelIndex / columns) * rowSize(); + } + return 0; + } + + // Map a model index to visibleItems list index. + // These may differ if removed items are still present in the visible list, + // e.g. doing a removal animation + int mapFromModel(int modelIndex) const { + if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) + return -1; + for (int i = 0; i < visibleItems.count(); ++i) { + FxGridItem *listItem = visibleItems.at(i); + if (listItem->index == modelIndex) + return i + visibleIndex; + if (listItem->index > modelIndex) + return -1; + } + return -1; // Not in visibleList + } + + // for debugging only + void checkVisible() const { + int skip = 0; + for (int i = 0; i < visibleItems.count(); ++i) { + FxGridItem *listItem = visibleItems.at(i); + if (listItem->index == -1) { + ++skip; + } else if (listItem->index != visibleIndex + i - skip) { + for (int j = 0; j < visibleItems.count(); j++) + qDebug() << " index" << j << "item index" << visibleItems.at(j)->index; + qFatal("index %d %d %d", visibleIndex, i, listItem->index); + } + } + } + + QmlGraphicsVisualModel *model; + QVariant modelVariant; + QList visibleItems; + QHash unrequestedItems; + FxGridItem *currentItem; + QmlGraphicsGridView::Flow flow; + int visiblePos; + int visibleIndex; + int currentIndex; + int cellWidth; + int cellHeight; + int columns; + int requestedIndex; + QmlComponent *highlightComponent; + FxGridItem *highlight; + FxGridItem *trackedItem; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; + int buffer; + QmlEaseFollow *highlightXAnimator; + QmlEaseFollow *highlightYAnimator; + + int ownModel : 1; + int wrap : 1; + int autoHighlight : 1; + int fixCurrentVisibility : 1; +}; + +void QmlGraphicsGridViewPrivate::init() +{ + Q_Q(QmlGraphicsGridView); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(sizeChange())); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(sizeChange())); +} + +void QmlGraphicsGridViewPrivate::clear() +{ + for (int i = 0; i < visibleItems.count(); ++i) + releaseItem(visibleItems.at(i)); + visibleItems.clear(); + visiblePos = 0; + visibleIndex = 0; + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + createHighlight(); + trackedItem = 0; +} + +FxGridItem *QmlGraphicsGridViewPrivate::createItem(int modelIndex) +{ + Q_Q(QmlGraphicsGridView); + // create object + requestedIndex = modelIndex; + FxGridItem *listItem = 0; + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { + listItem = new FxGridItem(item, q); + listItem->index = modelIndex; + // complete + model->completeItem(); + listItem->item->setZValue(modelIndex + 1); + listItem->item->setParent(q->viewport()); + } + requestedIndex = 0; + return listItem; +} + + +void QmlGraphicsGridViewPrivate::releaseItem(FxGridItem *item) +{ + Q_Q(QmlGraphicsGridView); + if (!item) + return; + if (trackedItem == item) { + QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + if (model->release(item->item) == 0) { + // item was not destroyed, and we no longer reference it. + unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + } + delete item; +} + +void QmlGraphicsGridViewPrivate::refill(qreal from, qreal to) +{ + Q_Q(QmlGraphicsGridView); + if (!isValid() || !q->isComponentComplete()) + return; + + from -= buffer; + to += buffer; + bool changed = false; + + int colPos = 0; + int rowPos = 0; + int modelIndex = 0; + if (visibleItems.count()) { + rowPos = visibleItems.last()->rowPos(); + colPos = visibleItems.last()->colPos() + colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + int i = visibleItems.count() - 1; + while (i > 0 && visibleItems.at(i)->index == -1) + --i; + modelIndex = visibleItems.at(i)->index + 1; + } + + FxGridItem *item = 0; + while (modelIndex < model->count() && rowPos <= to) { + //qDebug() << "refill: append item" << modelIndex; + if (!(item = createItem(modelIndex))) + break; + item->setPosition(colPos, rowPos); + visibleItems.append(item); + colPos += colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + ++modelIndex; + changed = true; + } + + if (visibleItems.count()) { + rowPos = visibleItems.first()->rowPos(); + colPos = visibleItems.first()->colPos() - colSize(); + if (colPos < 0) { + colPos = colSize() * (columns - 1); + rowPos -= rowSize(); + } + } + while (visibleIndex > 0 && rowPos + rowSize() - 1 >= from){ + //qDebug() << "refill: prepend item" << visibleIndex-1 << "top pos" << rowPos << colPos; + if (!(item = createItem(visibleIndex-1))) + break; + --visibleIndex; + item->setPosition(colPos, rowPos); + visibleItems.prepend(item); + colPos -= colSize(); + if (colPos < 0) { + colPos = colSize() * (columns - 1); + rowPos -= rowSize(); + } + changed = true; + } + + while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endRowPos() < from) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endRowPos(); + if (item->index != -1) + visibleIndex++; + visibleItems.removeFirst(); + releaseItem(item); + changed = true; + } + while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->rowPos() > to) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; + visibleItems.removeLast(); + releaseItem(item); + changed = true; + } + if (changed) { + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } +} + +void QmlGraphicsGridViewPrivate::updateGrid() +{ + Q_Q(QmlGraphicsGridView); + columns = (int)qMax((flow == QmlGraphicsGridView::LeftToRight ? q->width() : q->height()) / colSize(), qreal(1.)); + if (isValid()) { + if (flow == QmlGraphicsGridView::LeftToRight) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } +} + +void QmlGraphicsGridViewPrivate::layout(bool removed) +{ + Q_Q(QmlGraphicsGridView); + if (visibleItems.count()) { + qreal rowPos = visibleItems.first()->rowPos(); + qreal colPos = visibleItems.first()->colPos(); + if (visibleIndex % columns != 0) { + if (removed) + rowPos -= rowSize(); + colPos = (visibleIndex % columns) * colSize(); + visibleItems.first()->setPosition(colPos, rowPos); + } else if (colPos != 0) { + colPos = 0; + visibleItems.first()->setPosition(colPos, rowPos); + } + for (int i = 1; i < visibleItems.count(); ++i) { + FxGridItem *item = visibleItems.at(i); + colPos += colSize(); + if (colPos > colSize() * (columns-1)) { + colPos = 0; + rowPos += rowSize(); + } + item->setPosition(colPos, rowPos); + } + } + q->refill(); + q->trackedPositionChanged(); + updateHighlight(); + if (flow == QmlGraphicsGridView::LeftToRight) { + q->setViewportHeight(endPosition() - startPosition()); + fixupY(); + } else { + q->setViewportWidth(endPosition() - startPosition()); + fixupX(); + } + updateUnrequestedPositions(); +} + +void QmlGraphicsGridViewPrivate::updateUnrequestedIndexes() +{ + Q_Q(QmlGraphicsGridView); + QHash::iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) + *it = model->indexOf(it.key(), q); +} + +void QmlGraphicsGridViewPrivate::updateUnrequestedPositions() +{ + QHash::const_iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { + if (flow == QmlGraphicsGridView::LeftToRight) { + it.key()->setPos(QPointF(colPosAt(*it), rowPosAt(*it))); + } else { + it.key()->setPos(QPointF(rowPosAt(*it), colPosAt(*it))); + } + } +} + +void QmlGraphicsGridViewPrivate::updateTrackedItem() +{ + Q_Q(QmlGraphicsGridView); + FxGridItem *item = currentItem; + if (highlight) + item = highlight; + + if (trackedItem && item != trackedItem) { + QObject::disconnect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + + if (!trackedItem && item) { + trackedItem = item; + QObject::connect(trackedItem->item, SIGNAL(yChanged()), q, SLOT(trackedPositionChanged())); + QObject::connect(trackedItem->item, SIGNAL(xChanged()), q, SLOT(trackedPositionChanged())); + q->trackedPositionChanged(); + } + if (trackedItem) + q->trackedPositionChanged(); +} + +void QmlGraphicsGridViewPrivate::createHighlight() +{ + Q_Q(QmlGraphicsGridView); + if (highlight) { + if (trackedItem == highlight) + trackedItem = 0; + delete highlight->item; + delete highlight; + highlight = 0; + delete highlightXAnimator; + delete highlightYAnimator; + highlightXAnimator = 0; + highlightYAnimator = 0; + } + + if (!highlightComponent) + return; + + if (currentItem) { + QmlContext *highlightContext = new QmlContext(qmlContext(q)); + QObject *nobj = highlightComponent->create(highlightContext); + if (nobj) { + highlightContext->setParent(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); + if (item) { + item->setParent(q->viewport()); + highlight = new FxGridItem(item, q); + highlightXAnimator = new QmlEaseFollow(q); + highlightXAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("x"))); + highlightXAnimator->setDuration(150); + highlightXAnimator->setEnabled(autoHighlight); + highlightYAnimator = new QmlEaseFollow(q); + highlightYAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("y"))); + highlightYAnimator->setDuration(150); + highlightYAnimator->setEnabled(autoHighlight); + } else { + delete highlightContext; + } + } + } +} + +void QmlGraphicsGridViewPrivate::updateHighlight() +{ + if ((!currentItem && highlight) || (currentItem && !highlight)) + createHighlight(); + updateTrackedItem(); + if (currentItem && autoHighlight && highlight) { + // auto-update highlight + highlightXAnimator->setSourceValue(currentItem->item->x()); + highlightYAnimator->setSourceValue(currentItem->item->y()); + highlight->item->setWidth(currentItem->item->width()); + highlight->item->setHeight(currentItem->item->height()); + } +} + +void QmlGraphicsGridViewPrivate::updateCurrent(int modelIndex) +{ + Q_Q(QmlGraphicsGridView); + if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { + if (currentItem) { + currentItem->attached->setIsCurrentItem(false); + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + updateHighlight(); + emit q->currentIndexChanged(); + } + return; + } + + if (currentItem && currentIndex == modelIndex) { + updateHighlight(); + return; + } + + FxGridItem *oldCurrentItem = currentItem; + currentIndex = modelIndex; + currentItem = createItem(modelIndex); + fixCurrentVisibility = true; + if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) + oldCurrentItem->attached->setIsCurrentItem(false); + if (currentItem) { + currentItem->setPosition(colPosAt(modelIndex), rowPosAt(modelIndex)); + currentItem->item->setFocus(true); + currentItem->attached->setIsCurrentItem(true); + } + updateHighlight(); + emit q->currentIndexChanged(); + releaseItem(oldCurrentItem); +} + +//---------------------------------------------------------------------------- + +/*! + \qmlclass GridView QFxGridView + \inherits Flickable + \brief The GridView item provides a grid view of items provided by a model. + + The model is typically provided by a QAbstractListModel "C++ model object", + but can also be created directly in QML. + + The items are laid out top to bottom (vertically) or left to right (horizontally) + and may be flicked to scroll. + + The below example creates a very simple grid, using a QML model. + + \image gridview.png + + \snippet doc/src/snippets/declarative/gridview/gridview.qml 3 + + The model is defined as a ListModel using QML: + \quotefile doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml + + In this case ListModel is a handy way for us to test our UI. In practice + the model would be implemented in C++, or perhaps via a SQL data source. +*/ +QmlGraphicsGridView::QmlGraphicsGridView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsGridViewPrivate), parent) +{ + Q_D(QmlGraphicsGridView); + d->init(); +} + +QmlGraphicsGridView::~QmlGraphicsGridView() +{ + Q_D(QmlGraphicsGridView); + d->clear(); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlattachedproperty bool GridView::isCurrentItem + This attched property is true if this delegate is the current item; otherwise false. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty GridView GridView::view + This attached property holds the view that manages this delegate instance. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty bool GridView::delayRemove + This attached property holds whether the delegate may be destroyed. + + It is attached to each instance of the delegate. + + It is sometimes necessary to delay the destruction of an item + until an animation completes. + + The example below ensures that the animation completes before + the item is removed from the grid. + + \code + Component { + id: myDelegate + Item { + id: wrapper + GridView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } + PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: false } + } + } + } + \endcode +*/ + +/*! + \qmlattachedsignal GridView::onAdd() + This attached handler is called immediately after an item is added to the view. +*/ + +/*! + \qmlattachedsignal GridView::onRemove() + This attached handler is called immediately before an item is removed from the view. +*/ + + +/*! + \qmlproperty model GridView::model + This property holds the model providing data for the grid. + + The model provides a set of data that is used to create the items + for the view. For large or dynamic datasets the model is usually + provided by a C++ model object. The C++ model object must be a \l + {QAbstractItemModel} subclass, a VisualModel, or a simple list. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsGridView::model() const +{ + Q_D(const QmlGraphicsGridView); + return d->modelVariant; +} + +void QmlGraphicsGridView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsGridView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + } + d->clear(); + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + if (d->currentIndex >= d->model->count() || d->currentIndex < 0) + setCurrentIndex(0); + else + d->updateCurrent(d->currentIndex); + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + refill(); + emit countChanged(); + } +} + +/*! + \qmlproperty component GridView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 +*/ +QmlComponent *QmlGraphicsGridView::delegate() const +{ + Q_D(const QmlGraphicsGridView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsGridView::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsGridView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + d->updateCurrent(d->currentIndex); + refill(); + } +} + +/*! + \qmlproperty int GridView::currentIndex + \qmlproperty Item GridView::currentItem + + \c currentIndex holds the index of the current item. + \c currentItem is the current item. Note that the position of the current item + may only be approximate until it becomes visible in the view. +*/ +int QmlGraphicsGridView::currentIndex() const +{ + Q_D(const QmlGraphicsGridView); + return d->currentIndex; +} + +void QmlGraphicsGridView::setCurrentIndex(int index) +{ + Q_D(QmlGraphicsGridView); + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); + d->updateCurrent(index); + } else { + d->currentIndex = index; + } +} + +QmlGraphicsItem *QmlGraphicsGridView::currentItem() +{ + Q_D(QmlGraphicsGridView); + if (!d->currentItem) + return 0; + return d->currentItem->item; +} + +/*! + \qmlproperty int GridView::count + This property holds the number of items in the view. +*/ +int QmlGraphicsGridView::count() const +{ + Q_D(const QmlGraphicsGridView); + if (d->model) + return d->model->count(); + return 0; +} + +/*! + \qmlproperty component GridView::highlight + This property holds the component to use as the highlight. + + An instance of the highlight component will be created for each view. + The geometry of the resultant component instance will be managed by the view + so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. + + The below example demonstrates how to make a simple highlight: + \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 + + \sa highlightFollowsCurrentItem +*/ +QmlComponent *QmlGraphicsGridView::highlight() const +{ + Q_D(const QmlGraphicsGridView); + return d->highlightComponent; +} + +void QmlGraphicsGridView::setHighlight(QmlComponent *highlight) +{ + Q_D(QmlGraphicsGridView); + delete d->highlightComponent; + d->highlightComponent = highlight; + d->updateCurrent(d->currentIndex); +} + +/*! + \qmlproperty bool GridView::highlightFollowsCurrentItem + This property sets whether the highlight is managed by the view. + + If highlightFollowsCurrentItem is true, the highlight will be moved smoothly + to follow the current item. If highlightFollowsCurrentItem is false, the + highlight will not be moved by the view, and must be implemented + by the highlight component, for example: + + \code + Component { + id: myHighlight + Rectangle { + id: wrapper; color: "lightsteelblue"; radius: 4; width: 320; height: 60 > + y: SpringFollow { source: Wrapper.GridView.view.currentItem.y; spring: 3; damping: 0.2 } + x: SpringFollow { source: Wrapper.GridView.view.currentItem.x; spring: 3; damping: 0.2 } + } + } + \endcode +*/ +bool QmlGraphicsGridView::highlightFollowsCurrentItem() const +{ + Q_D(const QmlGraphicsGridView); + return d->autoHighlight; +} + +void QmlGraphicsGridView::setHighlightFollowsCurrentItem(bool autoHighlight) +{ + Q_D(QmlGraphicsGridView); + d->autoHighlight = autoHighlight; + if (d->highlightXAnimator) { + d->highlightXAnimator->setEnabled(d->autoHighlight); + d->highlightYAnimator->setEnabled(d->autoHighlight); + } + d->updateHighlight(); +} + +/*! + \qmlproperty enumeration GridView::flow + This property holds the flow of the grid. + + Possible values are \c LeftToRight (default) and \c TopToBottom. + + If \a flow is \c LeftToRight, the view will scroll vertically. + If \a flow is \c TopToBottom, the view will scroll horizontally. +*/ +QmlGraphicsGridView::Flow QmlGraphicsGridView::flow() const +{ + Q_D(const QmlGraphicsGridView); + return d->flow; +} + +void QmlGraphicsGridView::setFlow(Flow flow) +{ + Q_D(QmlGraphicsGridView); + if (d->flow != flow) { + d->flow = flow; + if (d->flow == LeftToRight) + setViewportWidth(-1); + else + setViewportHeight(-1); + d->clear(); + d->updateGrid(); + refill(); + d->updateCurrent(d->currentIndex); + } +} + +/*! + \qmlproperty bool GridView::keyNavigationWraps + This property holds whether the grid wraps key navigation + + If this property is true then key presses to move off of one end of the grid will cause the + selection to jump to the other side. +*/ +bool QmlGraphicsGridView::isWrapEnabled() const +{ + Q_D(const QmlGraphicsGridView); + return d->wrap; +} + +void QmlGraphicsGridView::setWrapEnabled(bool wrap) +{ + Q_D(QmlGraphicsGridView); + d->wrap = wrap; +} + +/*! + \qmlproperty int GridView::cacheBuffer + This property holds the number of off-screen pixels to cache. + + This property determines the number of pixels above the top of the view + and below the bottom of the view to cache. Setting this value can make + scrolling the view smoother at the expense of additional memory usage. +*/ +int QmlGraphicsGridView::cacheBuffer() const +{ + Q_D(const QmlGraphicsGridView); + return d->buffer; +} + +void QmlGraphicsGridView::setCacheBuffer(int buffer) +{ + Q_D(QmlGraphicsGridView); + if (d->buffer != buffer) { + d->buffer = buffer; + if (isComponentComplete()) + refill(); + } +} + +/*! + \qmlproperty int GridView::cellWidth + \qmlproperty int GridView::cellHeight + + These properties holds the width and height of each cell in the grid + + The default sell size is 100x100. +*/ +int QmlGraphicsGridView::cellWidth() const +{ + Q_D(const QmlGraphicsGridView); + return d->cellWidth; +} + +void QmlGraphicsGridView::setCellWidth(int cellWidth) +{ + Q_D(QmlGraphicsGridView); + if (cellWidth != d->cellWidth && cellWidth > 0) { + d->cellWidth = qMax(1, cellWidth); + d->updateGrid(); + emit cellWidthChanged(); + d->layout(); + } +} + +int QmlGraphicsGridView::cellHeight() const +{ + Q_D(const QmlGraphicsGridView); + return d->cellHeight; +} + +void QmlGraphicsGridView::setCellHeight(int cellHeight) +{ + Q_D(QmlGraphicsGridView); + if (cellHeight != d->cellHeight && cellHeight > 0) { + d->cellHeight = qMax(1, cellHeight); + d->updateGrid(); + emit cellHeightChanged(); + d->layout(); + } +} + +void QmlGraphicsGridView::sizeChange() +{ + Q_D(QmlGraphicsGridView); + if (isComponentComplete()) { + d->updateGrid(); + d->layout(); + } +} + +void QmlGraphicsGridView::viewportMoved() +{ + QmlGraphicsFlickable::viewportMoved(); + refill(); +} + +qreal QmlGraphicsGridView::minYExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::minYExtent(); + return -d->startPosition(); +} + +qreal QmlGraphicsGridView::maxYExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::TopToBottom) + return QmlGraphicsFlickable::maxYExtent(); + return -(d->endPosition() - height()); +} + +qreal QmlGraphicsGridView::minXExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::minXExtent(); + return -d->startPosition(); +} + +qreal QmlGraphicsGridView::maxXExtent() const +{ + Q_D(const QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) + return QmlGraphicsFlickable::maxXExtent(); + return -(d->endPosition() - width()); +} + +void QmlGraphicsGridView::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::keyPressEvent(event); + if (event->isAccepted()) + return; + + if (d->model && d->model->count() && d->interactive) { + d->moveReason = QmlGraphicsGridViewPrivate::Key; + int oldCurrent = currentIndex(); + switch (event->key()) { + case Qt::Key_Up: + moveCurrentIndexUp(); + break; + case Qt::Key_Down: + moveCurrentIndexDown(); + break; + case Qt::Key_Left: + moveCurrentIndexLeft(); + break; + case Qt::Key_Right: + moveCurrentIndexRight(); + break; + default: + break; + } + if (oldCurrent != currentIndex()) { + event->accept(); + return; + } + } + d->moveReason = QmlGraphicsGridViewPrivate::Other; + event->ignore(); +} + +/*! + \qmlmethod GridView::moveCurrentIndexUp + + Move the currentIndex up one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexUp() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() >= d->columns || d->wrap) { + int index = currentIndex() - d->columns; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } else { + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex() - 1; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexDown + + Move the currentIndex down one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexDown() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() < d->model->count() - d->columns || d->wrap) { + int index = currentIndex()+d->columns; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } else { + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex() + 1; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexLeft + + Move the currentIndex left one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexLeft() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex() - 1; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } else { + if (currentIndex() >= d->columns || d->wrap) { + int index = currentIndex() - d->columns; + setCurrentIndex(index >= 0 ? index : d->model->count()-1); + } + } +} + +/*! + \qmlmethod GridView::moveCurrentIndexRight + + Move the currentIndex right one item in the view. + The current index will wrap if keyNavigationWraps is true and it + is currently at the end. +*/ +void QmlGraphicsGridView::moveCurrentIndexRight() +{ + Q_D(QmlGraphicsGridView); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex() + 1; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } else { + if (currentIndex() < d->model->count() - d->columns || d->wrap) { + int index = currentIndex()+d->columns; + setCurrentIndex(index < d->model->count() ? index : 0); + } + } +} + +void QmlGraphicsGridView::componentComplete() +{ + Q_D(QmlGraphicsGridView); + QmlGraphicsFlickable::componentComplete(); + d->updateGrid(); + if (d->currentIndex < 0) + d->updateCurrent(0); + refill(); +} + +void QmlGraphicsGridView::trackedPositionChanged() +{ + Q_D(QmlGraphicsGridView); + if (!d->trackedItem) + return; + if (!isFlicking() && !d->pressed && d->moveReason == QmlGraphicsGridViewPrivate::Key) { + if (d->trackedItem->rowPos() < d->position()) { + d->setPosition(d->trackedItem->rowPos()); + } else if (d->trackedItem->endRowPos() > d->position() + d->size()) { + qreal pos = d->trackedItem->endRowPos() - d->size(); + if (d->rowSize() > d->size()) + pos = d->trackedItem->rowPos(); + d->setPosition(pos); + } + } +} + +void QmlGraphicsGridView::itemsInserted(int modelIndex, int count) +{ + Q_D(QmlGraphicsGridView); + if (!d->visibleItems.count() || d->model->count() <= 1) { + refill(); + d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); + emit countChanged(); + return; + } + + int index = d->mapFromModel(modelIndex); + if (index == -1) { + int i = d->visibleItems.count() - 1; + while (i > 0 && d->visibleItems.at(i)->index == -1) + --i; + if (d->visibleItems.at(i)->index + 1 == modelIndex) { + // Special case of appending an item to the model. + index = d->visibleIndex + d->visibleItems.count(); + } else { + if (modelIndex + count - 1 < d->visibleIndex) { + // Insert before visible items + d->visibleIndex += count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxGridItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index += count; + } + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) + d->currentItem->index = d->currentIndex; + } + d->layout(); + emit countChanged(); + return; + } + } + + // At least some of the added items will be visible + int insertCount = count; + if (index < d->visibleIndex) { + insertCount -= d->visibleIndex - index; + index = d->visibleIndex; + modelIndex = d->visibleIndex; + } + + index -= d->visibleIndex; + int to = d->buffer+d->position()+d->size()-1; + int colPos, rowPos; + if (index < d->visibleItems.count()) { + colPos = d->visibleItems.at(index)->colPos(); + rowPos = d->visibleItems.at(index)->rowPos(); + } else { + // appending items to visible list + colPos = d->visibleItems.at(index-1)->colPos() + d->colSize(); + rowPos = d->visibleItems.at(index-1)->rowPos(); + if (colPos > d->colSize() * (d->columns-1)) { + colPos = 0; + rowPos += d->rowSize(); + } + } + + QList added; + int i = 0; + for (; i < insertCount && rowPos + d->rowSize() - 1 <= to; ++i) { + int mod = (modelIndex+i) % d->columns; + while (mod++ < d->columns && modelIndex + i < d->model->count() && i < insertCount) { + FxGridItem *item = d->createItem(modelIndex + i); + d->visibleItems.insert(index, item); + item->setPosition(colPos, rowPos); + added.append(item); + colPos += d->colSize(); + if (colPos > d->colSize() * (d->columns-1)) { + colPos = 0; + rowPos += d->rowSize(); + } + ++index; + ++i; + } + } + + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) { + d->currentItem->index = d->currentIndex; + d->currentItem->setPosition(d->colPosAt(d->currentIndex), d->rowPosAt(d->currentIndex)); + } + } + if (i < insertCount) { + // We didn't insert all our new items, which means anything + // beyond the current index is not visible - remove it. + while (d->visibleItems.count() > index) + d->releaseItem(d->visibleItems.takeLast()); + } else { + // Update the indexes of the following visible items. + for (; index < d->visibleItems.count(); ++index) { + FxGridItem *listItem = d->visibleItems.at(index); + if (listItem->index != -1) + listItem->index += count; + } + } + // everything is in order now - emit add() signal + for (int j = 0; j < added.count(); ++j) + added.at(j)->attached->emitAdd(); + d->layout(); + emit countChanged(); +} + +void QmlGraphicsGridView::itemsRemoved(int modelIndex, int count) +{ + Q_D(QmlGraphicsGridView); + bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; + int index = d->mapFromModel(modelIndex); + if (index == -1) { + if (modelIndex + count - 1 < d->visibleIndex) { + // Items removed before our visible items. + d->visibleIndex -= count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxGridItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index -= count; + } + } + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + d->layout(true); + emit countChanged(); + return; + } + + // Remove the items from the visible list, skipping anything already marked for removal + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (item->index == -1 || item->index < modelIndex) { + // already removed, or before removed items + ++it; + } else if (item->index >= modelIndex + count) { + // after removed items + item->index -= count; + ++it; + } else { + // removed item + item->attached->emitRemove(); + if (item->attached->delayRemove()) { + item->index = -1; + connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); + ++it; + } else { + it = d->visibleItems.erase(it); + d->releaseItem(item); + } + } + } + + // fix current + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + + // update visibleIndex + for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { + if ((*it)->index != -1) { + d->visibleIndex = (*it)->index; + break; + } + } + + if (d->visibleItems.isEmpty()) { + d->visibleIndex = 0; + d->setPosition(0); + refill(); + } else { + // Correct the positioning of the items + d->layout(); + } + emit countChanged(); +} + +void QmlGraphicsGridView::destroyRemoved() +{ + Q_D(QmlGraphicsGridView); + for (QList::Iterator it = d->visibleItems.begin(); + it != d->visibleItems.end();) { + FxGridItem *listItem = *it; + if (listItem->index == -1 && listItem->attached->delayRemove() == false) { + d->releaseItem(listItem); + it = d->visibleItems.erase(it); + } else { + ++it; + } + } + + // Correct the positioning of the items + d->layout(); +} + +void QmlGraphicsGridView::itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsGridView); + QHash moved; + + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (item->index >= from && item->index < from + count) { + // take the items that are moving + item->index += (to-from); + moved.insert(item->index, item); + it = d->visibleItems.erase(it); + } else { + if (item->index > from && item->index != -1) { + // move everything after the moved items. + item->index -= count; + } + ++it; + } + } + + int remaining = count; + int endIndex = d->visibleIndex; + it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxGridItem *item = *it; + if (remaining && item->index >= to && item->index < to + count) { + // place items in the target position, reusing any existing items + FxGridItem *movedItem = moved.take(item->index); + if (!movedItem) + movedItem = d->createItem(item->index); + it = d->visibleItems.insert(it, movedItem); + ++it; + --remaining; + } else { + if (item->index != -1) { + if (item->index >= to) { + // update everything after the moved items. + item->index += count; + } + endIndex = item->index; + } + ++it; + } + } + + // If we have moved items to the end of the visible items + // then add any existing moved items that we have + while (FxGridItem *item = moved.take(endIndex+1)) { + d->visibleItems.append(item); + ++endIndex; + } + + // Whatever moved items remain are no longer visible items. + while (moved.count()) + d->releaseItem(moved.take(moved.begin().key())); + + d->layout(); +} + +void QmlGraphicsGridView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsGridView); + item->setParentItem(this); + if (d->requestedIndex != index) { + item->setParentItem(this); + d->unrequestedItems.insert(item, index); + if (d->flow == QmlGraphicsGridView::LeftToRight) { + item->setPos(QPointF(d->colPosAt(index), d->rowPosAt(index))); + } else { + item->setPos(QPointF(d->rowPosAt(index), d->colPosAt(index))); + } + } +} + +void QmlGraphicsGridView::destroyingItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsGridView); + d->unrequestedItems.remove(item); +} + + +void QmlGraphicsGridView::refill() +{ + Q_D(QmlGraphicsGridView); + d->refill(d->position(), d->position()+d->size()-1); +} + + +QmlGraphicsGridViewAttached *QmlGraphicsGridView::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsGridViewAttached::properties(obj); +} + +QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, GridView, QmlGraphicsGridView) + +QT_END_NAMESPACE + +#include "qmlgraphicsgridview.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicsgridview_p.h b/src/declarative/graphicsitems/qmlgraphicsgridview_p.h new file mode 100644 index 0000000..3fd36bd --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsgridview_p.h @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSGRIDVIEW_H +#define QMLGRAPHICSGRIDVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsVisualModel; +class QmlGraphicsGridViewAttached; +class QmlGraphicsGridViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsGridView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + Q_PROPERTY(Flow flow READ flow WRITE setFlow) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) + Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsGridView(QmlGraphicsItem *parent=0); + ~QmlGraphicsGridView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + Q_ENUMS(Flow) + enum Flow { LeftToRight, TopToBottom }; + Flow flow() const; + void setFlow(Flow); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + int cellWidth() const; + void setCellWidth(int); + + int cellHeight() const; + void setCellHeight(int); + + static QmlGraphicsGridViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void moveCurrentIndexUp(); + void moveCurrentIndexDown(); + void moveCurrentIndexLeft(); + void moveCurrentIndexRight(); + +Q_SIGNALS: + void countChanged(); + void currentIndexChanged(); + void cellWidthChanged(); + void cellHeightChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void trackedPositionChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + void sizeChange(); + +private: + void refill(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsGridView) +QML_DECLARE_TYPEINFO(QmlGraphicsGridView, QML_HAS_ATTACHED_PROPERTIES) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsimage.cpp b/src/declarative/graphicsitems/qmlgraphicsimage.cpp new file mode 100644 index 0000000..fd220a3 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimage.cpp @@ -0,0 +1,301 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsimage_p.h" +#include "qmlgraphicsimage_p_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE + + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QmlGraphicsImage) + +/*! + \qmlclass Image QmlGraphicsImage + \brief The Image element allows you to add bitmaps to a scene. + \inherits Item + + The Image element supports untransformed, stretched and tiled. + + For an explanation of stretching and tiling, see the fillMode property description. + + Examples: + \table + \row + \o \image declarative-qtlogo1.png + \o Untransformed + \qml + Image { source: "pics/qtlogo.png" } + \endqml + \row + \o \image declarative-qtlogo2.png + \o fillMode: Stretch (default) + \qml + Image { + width: 160 + height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo3.png + \o fillMode: Tile + \qml + Image { + fillMode: Image.Tile + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo6.png + \o fillMode: TileVertically + \qml + Image { + fillMode: Image.TileVertically + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \row + \o \image declarative-qtlogo5.png + \o fillMode: TileHorizontally + \qml + Image { + fillMode: Image.TileHorizontally + width: 160; height: 160 + source: "pics/qtlogo.png" + } + \endqml + \endtable + */ + +/*! + \internal + \class QmlGraphicsImage Image + \brief The QmlGraphicsImage class provides an image item that you can add to a QmlView. + + \ingroup group_coreitems + + Example: + \qml + Image { source: "pics/star.png" } + \endqml + + A QmlGraphicsImage object can be instantiated in Qml using the tag \l Image. +*/ + +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsItem *parent) + : QmlGraphicsImageBase(*(new QmlGraphicsImagePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsImage::QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsImageBase(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsImage::~QmlGraphicsImage() +{ +} + +QPixmap QmlGraphicsImage::pixmap() const +{ + Q_D(const QmlGraphicsImage); + return d->pix; +} + +void QmlGraphicsImage::setPixmap(const QPixmap &pix) +{ + Q_D(QmlGraphicsImage); + if (!d->url.isEmpty()) + return; + d->pix = pix; + + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + update(); +} + +/*! + \qmlproperty enumeration Image::fillMode + + Set this property to define what happens when the image set for the item is smaller + than the size of the item. + + \list + \o Stretch - the image is scaled to fit + \o PreserveAspectFit - the image is scaled uniformly to fit without cropping + \o PreserveAspectCrop - the image is scaled uniformly to fill, cropping if necessary + \o Tile - the image is duplicated horizontally and vertically + \o TileVertically - the image is stretched horizontally and tiled vertically + \o TileHorizontally - the image is stretched vertically and tiled horizontally + \endlist + + \image declarative-image_fillMode.gif + \sa examples/declarative/fillmode + \sa examples/declarative/aspectratio +*/ +QmlGraphicsImage::FillMode QmlGraphicsImage::fillMode() const +{ + Q_D(const QmlGraphicsImage); + return d->fillMode; +} + +void QmlGraphicsImage::setFillMode(FillMode mode) +{ + Q_D(QmlGraphicsImage); + if (d->fillMode == mode) + return; + d->fillMode = mode; + update(); + emit fillModeChanged(); +} + +/*! + \qmlproperty enum Image::status + + This property holds the status of image loading. It can be one of: + \list + \o Null - no image has been set + \o Ready - the image has been loaded + \o Loading - the image is currently being loaded + \o Error - an error occurred while loading the image + \endlist + + \sa progress +*/ + +/*! + \qmlproperty real Image::progress + + This property holds the progress of image loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ + +/*! + \qmlproperty bool Image::smooth + + Set this property if you want the image to be smoothly filtered when scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the image is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the image is stationary on + the screen. A common pattern when animating an image is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +/*! + \qmlproperty url Image::source + + Image can handle any image format supported by Qt, loaded from any URL scheme supported by Qt. + + The URL may be absolute, or relative to the URL of the component. +*/ + +void QmlGraphicsImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsImage); + if (d->pix.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + if (width() != d->pix.width() || height() != d->pix.height()) { + if (d->fillMode >= Tile) { + if (d->fillMode == Tile) + p->drawTiledPixmap(QRectF(0,0,width(),height()), d->pix); + else if (d->fillMode == TileVertically) + p->drawTiledPixmap(QRectF(0,0,d->pix.width(),height()), d->pix); + else + p->drawTiledPixmap(QRectF(0,0,width(),d->pix.height()), d->pix); + } else { + qreal widthScale = width() / qreal(d->pix.width()); + qreal heightScale = height() / qreal(d->pix.height()); + + QTransform scale; + + if (d->fillMode == PreserveAspectFit) { + if (widthScale < heightScale) { + heightScale = widthScale; + scale.translate(0, (height() - heightScale * d->pix.height()) / 2); + } else if(heightScale < widthScale) { + widthScale = heightScale; + scale.translate((width() - widthScale * d->pix.width()) / 2, 0); + } + } else if (d->fillMode == PreserveAspectCrop) { + if (widthScale < heightScale) { + widthScale = heightScale; + scale.translate((width() - widthScale * d->pix.width()) / 2, 0); + } else if(heightScale < widthScale) { + heightScale = widthScale; + scale.translate(0, (height() - heightScale * d->pix.height()) / 2); + } + } + + scale.scale(widthScale, heightScale); + QTransform old = p->transform(); + p->setWorldTransform(scale * old); + p->drawPixmap(0, 0, d->pix); + p->setWorldTransform(old); + } + } else { + p->drawPixmap(0, 0, d->pix); + } + + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsimage_p.h b/src/declarative/graphicsitems/qmlgraphicsimage_p.h new file mode 100644 index 0000000..76b8da5 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimage_p.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGE_H +#define QMLGRAPHICSIMAGE_H + +#include +#include "qmlgraphicsimagebase_p.h" + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsImagePrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsImage : public QmlGraphicsImageBase +{ + Q_OBJECT + Q_ENUMS(FillMode) + + Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap DESIGNABLE false) + Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) + +public: + QmlGraphicsImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsImage(); + + enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; + FillMode fillMode() const; + void setFillMode(FillMode); + + QPixmap pixmap() const; + void setPixmap(const QPixmap &); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void fillModeChanged(); + +protected: + QmlGraphicsImage(QmlGraphicsImagePrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImage) +}; + +QT_END_NAMESPACE +QML_DECLARE_TYPE(QmlGraphicsImage) +QT_END_HEADER + +#endif // QMLGRAPHICSIMAGE_H diff --git a/src/declarative/graphicsitems/qmlgraphicsimage_p_p.h b/src/declarative/graphicsitems/qmlgraphicsimage_p_p.h new file mode 100644 index 0000000..62a4d1e --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimage_p_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGE_P_H +#define QMLGRAPHICSIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsimagebase_p_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsImagePrivate : public QmlGraphicsImageBasePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImage) + +public: + QmlGraphicsImagePrivate() + : fillMode(QmlGraphicsImage::Stretch) + { + } + + QmlGraphicsImage::FillMode fillMode; + +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSIMAGE_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp b/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp new file mode 100644 index 0000000..283fb04 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsimagebase_p.h" +#include "qmlgraphicsimagebase_p_p.h" +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsImageBasePrivate), parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, true); +} + +QmlGraphicsImageBase::QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + setFlag(QGraphicsItem::ItemHasNoContents, true); +} + +QmlGraphicsImageBase::~QmlGraphicsImageBase() +{ + Q_D(QmlGraphicsImageBase); + if (d->pendingPixmapCache) + QmlGraphicsPixmapCache::cancelGet(d->url, this); +} + +QmlGraphicsImageBase::Status QmlGraphicsImageBase::status() const +{ + Q_D(const QmlGraphicsImageBase); + return d->status; +} + + +qreal QmlGraphicsImageBase::progress() const +{ + Q_D(const QmlGraphicsImageBase); + return d->progress; +} + +QUrl QmlGraphicsImageBase::source() const +{ + Q_D(const QmlGraphicsImageBase); + return d->url; +} + +void QmlGraphicsImageBase::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsImageBase); + //equality is fairly expensive, so we bypass for simple, common case + if ((d->url.isEmpty() == url.isEmpty()) && url == d->url) + return; + + if (d->pendingPixmapCache) { + QmlGraphicsPixmapCache::cancelGet(d->url, this); + d->pendingPixmapCache = false; + } + + d->url = url; + if (d->progress != 0.0) { + d->progress = 0.0; + emit progressChanged(d->progress); + } + + if (url.isEmpty()) { + d->pix = QPixmap(); + d->status = Null; + d->progress = 1.0; + setImplicitWidth(0); + setImplicitHeight(0); + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } else { + d->status = Loading; + QNetworkReply *reply = QmlGraphicsPixmapCache::get(qmlEngine(this), d->url, &d->pix); + if (reply) { + d->pendingPixmapCache = true; + connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); + } else { + //### should be unified with requestFinished + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); + } + } + + emit statusChanged(d->status); +} + +void QmlGraphicsImageBase::requestFinished() +{ + Q_D(QmlGraphicsImageBase); + + d->pendingPixmapCache = false; + + if (!QmlGraphicsPixmapCache::find(d->url, &d->pix)) + d->status = Error; + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(1.0); + update(); +} + +void QmlGraphicsImageBase::requestProgress(qint64 received, qint64 total) +{ + Q_D(QmlGraphicsImageBase); + if (d->status == Loading && total > 0) { + d->progress = qreal(received)/total; + emit progressChanged(d->progress); + } +} + + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsimagebase_p.h b/src/declarative/graphicsitems/qmlgraphicsimagebase_p.h new file mode 100644 index 0000000..c8f8e85 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimagebase_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGEBASE_H +#define QMLGRAPHICSIMAGEBASE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QmlGraphicsImageBasePrivate; +class QmlGraphicsImageBase : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + +public: + QmlGraphicsImageBase(QmlGraphicsItem *parent = 0); + ~QmlGraphicsImageBase(); + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + QUrl source() const; + virtual void setSource(const QUrl &url); + +Q_SIGNALS: + void sourceChanged(const QUrl &); + void statusChanged(Status); + void progressChanged(qreal progress); + +protected: + QmlGraphicsImageBase(QmlGraphicsImageBasePrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + virtual void requestFinished(); + void requestProgress(qint64,qint64); + +private: + Q_DISABLE_COPY(QmlGraphicsImageBase) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsImageBase) +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLGRAPHICSIMAGEBASE_H diff --git a/src/declarative/graphicsitems/qmlgraphicsimagebase_p_p.h b/src/declarative/graphicsitems/qmlgraphicsimagebase_p_p.h new file mode 100644 index 0000000..e7f85a6 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsimagebase_p_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGEBASE_P_H +#define QMLGRAPHICSIMAGEBASE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsImageBasePrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsImageBase) + +public: + QmlGraphicsImageBasePrivate() + : status(QmlGraphicsImageBase::Null), + progress(0.0), + pendingPixmapCache(false) + { + } + + QPixmap pix; + QmlGraphicsImageBase::Status status; + QUrl url; + qreal progress; + bool pendingPixmapCache; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsitem.cpp b/src/declarative/graphicsitems/qmlgraphicsitem.cpp new file mode 100644 index 0000000..0e741c4 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsitem.cpp @@ -0,0 +1,2922 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "qmlview.h" +#include + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsitem.h" +#include +#include + +QT_BEGIN_NAMESPACE + +#ifndef FLT_MAX +#define FLT_MAX 1E+37 +#endif + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Item,QmlGraphicsItem) + +QML_DEFINE_NOCREATE_TYPE(QGraphicsTransform); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Scale,QGraphicsScale) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rotation,QGraphicsRotation) + +#include "qmlgraphicseffects.cpp" + +/*! + \qmlclass Transform QGraphicsTransform + \brief The Transform elements provide a way of building advanced transformations on Items. + + The Transform elements let you create and control advanced transformations that can be configured + independently using specialized properties. + + You can assign any number of Transform elements to an Item. Each Transform is applied in order, + one at a time, to the Item it's assigned to. + + \sa Rotation, Scale +*/ + +/*! + \qmlclass Scale QGraphicsScale + \brief The Scale object provides a way to scale an Item. + + The Scale object gives more control over scaling than using Item's scale property. Specifically, + it allows a different scale for the x and y axes, and allows the scale to be relative to an + arbitrary point. + + The following example scales the X axis of the Rectangle, relative to its interior point 25, 25: + \qml + Rectangle { + width: 100; height: 100 + color: "blue" + transform: Scale { origin.x: 25; origin.y: 25; xScale: 3} + } + \endqml +*/ + +/*! + \qmlproperty real Scale::origin.x + \qmlproperty real Scale::origin.y + + The point that the item is scaled from (i.e., the point that stays fixed relative to the parent as + the rest of the item grows). By default the origin is 0, 0. +*/ + +/*! + \qmlproperty real Scale::xScale + + The scaling factor for the X axis. +*/ + +/*! + \qmlproperty real Scale::yScale + + The scaling factor for the Y axis. +*/ + +/*! + \qmlclass Rotation QGraphicsRotation + \brief The Rotation object provides a way to rotate an Item. + + The Rotation object gives more control over rotation than using Item's rotation property. + Specifically, it allows (z axis) rotation to be relative to an arbitrary point. + + The following example rotates a Rectangle around its interior point 25, 25: + \qml + Rectangle { + width: 100; height: 100 + color: "blue" + transform: Rotation { origin.x: 25; origin.y: 25; angle: 45} + } + \endqml + + Rotation also provides a way to specify 3D-like rotations for Items. For these types of + rotations you must specify the axis to rotate around in addition to the origin point. + + The following example shows various 3D-like rotations applied to an \l Image. + \snippet doc/src/snippets/declarative/rotation.qml 0 + + \image axisrotation.png +*/ + +/*! + \qmlproperty real Rotation::origin.x + \qmlproperty real Rotation::origin.y + + The origin point of the rotation (i.e., the point that stays fixed relative to the parent as + the rest of the item rotates). By default the origin is 0, 0. +*/ + +/*! + \qmlproperty real Rotation::axis.x + \qmlproperty real Rotation::axis.y + \qmlproperty real Rotation::axis.z + + The axis to rotate around. For simple (2D) rotation around a point, you do not need to specify an axis, + as the default axis is the z axis (\c{ axis { x: 0; y: 0; z: 0 } }). + + For a typical 3D-like rotation you will usually specify both the origin and the axis. + + \image 3d-rotation-axis.png +*/ + +/*! + \qmlproperty real Rotation::angle + + The angle to rotate, in degrees clockwise. +*/ + + +/*! + \group group_animation + \title Animation +*/ + +/*! + \group group_coreitems + \title Basic Items +*/ + +/*! + \group group_effects + \title Effects +*/ + +/*! + \group group_layouts + \title Layouts +*/ + +/*! + \group group_states + \title States and Transitions +*/ + +/*! + \group group_utility + \title Utility +*/ + +/*! + \group group_views + \title Views +*/ + +/*! + \group group_widgets + \title Widgets +*/ + +/*! + \internal + \class QmlGraphicsContents + \ingroup group_utility + \brief The QmlGraphicsContents class gives access to the height and width of an item's contents. + +*/ + +QmlGraphicsContents::QmlGraphicsContents() : m_x(0), m_y(0), m_width(0), m_height(0) +{ +} + +/*! + \qmlproperty real Item::childrenRect.x + \qmlproperty real Item::childrenRect.y + \qmlproperty real Item::childrenRect.width + \qmlproperty real Item::childrenRect.height + + The childrenRect properties allow an item access to the geometry of its + children. This property is useful if you have an item that needs to be + sized to fit its children. +*/ + +QRectF QmlGraphicsContents::rectF() const +{ + return QRectF(m_x, m_y, m_width, m_height); +} + +//TODO: optimization: only check sender(), if there is one +void QmlGraphicsContents::calcHeight() +{ + qreal oldy = m_y; + qreal oldheight = m_height; + + qreal top = FLT_MAX; + qreal bottom = 0; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + qreal y = child->y(); + if (y + child->height() > bottom) + bottom = y + child->height(); + if (y < top) + top = y; + } + if (!children.isEmpty()) + m_y = top; + m_height = qMax(bottom - top, qreal(0.0)); + + if (m_height != oldheight || m_y != oldy) + emit rectChanged(); +} + +//TODO: optimization: only check sender(), if there is one +void QmlGraphicsContents::calcWidth() +{ + qreal oldx = m_x; + qreal oldwidth = m_width; + + qreal left = FLT_MAX; + qreal right = 0; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + qreal x = child->x(); + if (x + child->width() > right) + right = x + child->width(); + if (x < left) + left = x; + } + if (!children.isEmpty()) + m_x = left; + m_width = qMax(right - left, qreal(0.0)); + + if (m_width != oldwidth || m_x != oldx) + emit rectChanged(); +} + +void QmlGraphicsContents::setItem(QmlGraphicsItem *item) +{ + m_item = item; + + QList children = m_item->childItems(); + for (int i = 0; i < children.count(); ++i) { + QmlGraphicsItem *child = qobject_cast(children.at(i)); + if(!child)//### Should this be ignoring non-QmlGraphicsItem graphicsobjects? + continue; + connect(child, SIGNAL(heightChanged()), this, SLOT(calcHeight())); + connect(child, SIGNAL(yChanged()), this, SLOT(calcHeight())); + connect(child, SIGNAL(widthChanged()), this, SLOT(calcWidth())); + connect(child, SIGNAL(xChanged()), this, SLOT(calcWidth())); + connect(this, SIGNAL(rectChanged()), m_item, SIGNAL(childrenRectChanged())); + } + + calcHeight(); + calcWidth(); +} + +/* + Key filters can be installed on a QmlGraphicsItem, but not removed. Currently they + are only used by attached objects (which are only destroyed on Item + destruction), so this isn't a problem. If in future this becomes any form + of public API, they will have to support removal too. +*/ +class QmlGraphicsItemKeyFilter +{ +public: + QmlGraphicsItemKeyFilter(QmlGraphicsItem * = 0); + virtual ~QmlGraphicsItemKeyFilter(); + + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *event); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + virtual void componentComplete(); + +private: + QmlGraphicsItemKeyFilter *m_next; +}; + +QmlGraphicsItemKeyFilter::QmlGraphicsItemKeyFilter(QmlGraphicsItem *item) +: m_next(0) +{ + QmlGraphicsItemPrivate *p = + item?static_cast(QGraphicsItemPrivate::get(item)):0; + if (p) { + m_next = p->keyHandler; + p->keyHandler = this; + } +} + +QmlGraphicsItemKeyFilter::~QmlGraphicsItemKeyFilter() +{ +} + +void QmlGraphicsItemKeyFilter::keyPressed(QKeyEvent *event) +{ + if (m_next) m_next->keyPressed(event); +} + +void QmlGraphicsItemKeyFilter::keyReleased(QKeyEvent *event) +{ + if (m_next) m_next->keyReleased(event); +} + +void QmlGraphicsItemKeyFilter::inputMethodEvent(QInputMethodEvent *event) +{ + if (m_next) m_next->inputMethodEvent(event); +} + +QVariant QmlGraphicsItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const +{ + if (m_next) return m_next->inputMethodQuery(query); + return QVariant(); +} + +void QmlGraphicsItemKeyFilter::componentComplete() +{ + if (m_next) m_next->componentComplete(); +} + +class QmlGraphicsKeyNavigationAttachedPrivate : public QObjectPrivate +{ +public: + QmlGraphicsKeyNavigationAttachedPrivate() + : QObjectPrivate(), left(0), right(0), up(0), down(0) {} + + QmlGraphicsItem *left; + QmlGraphicsItem *right; + QmlGraphicsItem *up; + QmlGraphicsItem *down; +}; + +class QmlGraphicsKeyNavigationAttached : public QObject, public QmlGraphicsItemKeyFilter +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsKeyNavigationAttached) + + Q_PROPERTY(QmlGraphicsItem *left READ left WRITE setLeft NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *right READ right WRITE setRight NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *up READ up WRITE setUp NOTIFY changed) + Q_PROPERTY(QmlGraphicsItem *down READ down WRITE setDown NOTIFY changed) +public: + QmlGraphicsKeyNavigationAttached(QObject * = 0); + + QmlGraphicsItem *left() const; + void setLeft(QmlGraphicsItem *); + QmlGraphicsItem *right() const; + void setRight(QmlGraphicsItem *); + QmlGraphicsItem *up() const; + void setUp(QmlGraphicsItem *); + QmlGraphicsItem *down() const; + void setDown(QmlGraphicsItem *); + + static QmlGraphicsKeyNavigationAttached *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void changed(); + +private: + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); +}; + +QmlGraphicsKeyNavigationAttached::QmlGraphicsKeyNavigationAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeyNavigationAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) +{ +} + +QmlGraphicsKeyNavigationAttached * +QmlGraphicsKeyNavigationAttached::qmlAttachedProperties(QObject *obj) +{ + return new QmlGraphicsKeyNavigationAttached(obj); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::left() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->left; +} + +void QmlGraphicsKeyNavigationAttached::setLeft(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->left = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::right() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->right; +} + +void QmlGraphicsKeyNavigationAttached::setRight(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->right = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::up() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->up; +} + +void QmlGraphicsKeyNavigationAttached::setUp(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->up = i; + emit changed(); +} + +QmlGraphicsItem *QmlGraphicsKeyNavigationAttached::down() const +{ + Q_D(const QmlGraphicsKeyNavigationAttached); + return d->down; +} + +void QmlGraphicsKeyNavigationAttached::setDown(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + d->down = i; + emit changed(); +} + +void QmlGraphicsKeyNavigationAttached::keyPressed(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + + event->ignore(); + + switch(event->key()) { + case Qt::Key_Left: + if (d->left) { + d->left->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Right: + if (d->right) { + d->right->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Up: + if (d->up) { + d->up->setFocus(true); + event->accept(); + } + break; + case Qt::Key_Down: + if (d->down) { + d->down->setFocus(true); + event->accept(); + } + break; + default: + break; + } + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); +} + +void QmlGraphicsKeyNavigationAttached::keyReleased(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeyNavigationAttached); + + event->ignore(); + + switch(event->key()) { + case Qt::Key_Left: + if (d->left) { + event->accept(); + } + break; + case Qt::Key_Right: + if (d->right) { + event->accept(); + } + break; + case Qt::Key_Up: + if (d->up) { + event->accept(); + } + break; + case Qt::Key_Down: + if (d->down) { + event->accept(); + } + break; + default: + break; + } + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); +} + +/*! + \qmlclass Keys + \brief The Keys attached property provides key handling to Items. + + All visual primitives support key handling via the \e Keys + attached property. Keys can be handled via the \e onPressed + and \e onReleased signal properties. + + The signal properties have a \l KeyEvent parameter, named + \e event which contains details of the event. If a key is + handled \e event.accepted should be set to true to prevent the + event from propagating up the item heirarchy. + + \code + Item { + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_Left) { + print("move left"); + event.accepted = true; + } + } + } + \endcode + + Some keys may alternatively be handled via specific signal properties, + for example \e onSelectPressed. These handlers automatically set + \e event.accepted to true. + + \code + Item { + focus: true + Keys.onLeftPressed: print("move left") + } + \endcode + + See \l {Qt::Key}{Qt.Key} for the list of keyboard codes. + + \sa KeyEvent +*/ + +/*! + \qmlproperty bool Keys::enabled + + This flags enables key handling if true (default); otherwise + no key handlers will be called. +*/ + +/*! + \qmlproperty List Keys::forwardTo + + This property provides a way to forward key presses, key releases, and keyboard input + coming from input methods to other items. This can be useful when you want + one item to handle some keys (e.g. the up and down arrow keys), and another item to + handle other keys (e.g. the left and right arrow keys). Once an item that has been + forwarded keys accepts the event it is no longer forwarded to items later in the + list. + + This example forwards key events to two lists: + \qml + ListView { id: list1 ... } + ListView { id: list2 ... } + Keys.forwardTo: [list1, list2] + focus: true + \endqml +*/ + +/*! + \qmlsignal Keys::onPressed(event) + + This handler is called when a key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onReleased(event) + + This handler is called when a key has been released. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit0Pressed(event) + + This handler is called when the digit '0' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit1Pressed(event) + + This handler is called when the digit '1' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit2Pressed(event) + + This handler is called when the digit '2' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit3Pressed(event) + + This handler is called when the digit '3' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit4Pressed(event) + + This handler is called when the digit '4' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit5Pressed(event) + + This handler is called when the digit '5' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit6Pressed(event) + + This handler is called when the digit '6' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit7Pressed(event) + + This handler is called when the digit '7' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit8Pressed(event) + + This handler is called when the digit '8' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDigit9Pressed(event) + + This handler is called when the digit '9' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onLeftPressed(event) + + This handler is called when the Left arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onRightPressed(event) + + This handler is called when the Right arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onUpPressed(event) + + This handler is called when the Up arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDownPressed(event) + + This handler is called when the Down arrow has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onAsteriskPressed(event) + + This handler is called when the Asterisk '*' has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onEscapePressed(event) + + This handler is called when the Escape key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onReturnPressed(event) + + This handler is called when the Return key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onEnterPressed(event) + + This handler is called when the Enter key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onDeletePressed(event) + + This handler is called when the Delete key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onSpacePressed(event) + + This handler is called when the Space key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onBackPressed(event) + + This handler is called when the Back key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onCancelPressed(event) + + This handler is called when the Cancel key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onSelectPressed(event) + + This handler is called when the Select key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onYesPressed(event) + + This handler is called when the Yes key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onNoPressed(event) + + This handler is called when the No key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext1Pressed(event) + + This handler is called when the Context1 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext2Pressed(event) + + This handler is called when the Context2 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext3Pressed(event) + + This handler is called when the Context3 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onContext4Pressed(event) + + This handler is called when the Context4 key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onCallPressed(event) + + This handler is called when the Call key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onHangupPressed(event) + + This handler is called when the Hangup key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onFlipPressed(event) + + This handler is called when the Flip key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onMenuPressed(event) + + This handler is called when the Menu key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onVolumeUpPressed(event) + + This handler is called when the VolumeUp key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onVolumeDownPressed(event) + + This handler is called when the VolumeDown key has been pressed. The \a event + parameter provides information about the event. +*/ + + +class QmlGraphicsKeysAttachedPrivate : public QObjectPrivate +{ +public: + QmlGraphicsKeysAttachedPrivate() + : QObjectPrivate(), inPress(false), inRelease(false) + , inIM(false), enabled(true), imeItem(0), item(0) + {} + + bool isConnected(const char *signalName); + + QGraphicsItem *finalFocusProxy(QGraphicsItem *item) const + { + QGraphicsItem *fp; + while ((fp = item->focusProxy())) + item = fp; + return item; + } + + //loop detection + bool inPress:1; + bool inRelease:1; + bool inIM:1; + + bool enabled : 1; + + QGraphicsItem *imeItem; + QList targets; + QmlGraphicsItem *item; +}; + +class QmlGraphicsKeysAttached : public QObject, public QmlGraphicsItemKeyFilter +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsKeysAttached) + + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(QList *forwardTo READ forwardTo) + +public: + QmlGraphicsKeysAttached(QObject *parent=0); + ~QmlGraphicsKeysAttached(); + + bool enabled() const { Q_D(const QmlGraphicsKeysAttached); return d->enabled; } + void setEnabled(bool enabled) { + Q_D(QmlGraphicsKeysAttached); + if (enabled != d->enabled) { + d->enabled = enabled; + emit enabledChanged(); + } + } + + QList *forwardTo() { + Q_D(QmlGraphicsKeysAttached); + return &d->targets; + } + + virtual void componentComplete(); + + static QmlGraphicsKeysAttached *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void enabledChanged(); + void pressed(QmlGraphicsKeyEvent *event); + void released(QmlGraphicsKeyEvent *event); + void digit0Pressed(QmlGraphicsKeyEvent *event); + void digit1Pressed(QmlGraphicsKeyEvent *event); + void digit2Pressed(QmlGraphicsKeyEvent *event); + void digit3Pressed(QmlGraphicsKeyEvent *event); + void digit4Pressed(QmlGraphicsKeyEvent *event); + void digit5Pressed(QmlGraphicsKeyEvent *event); + void digit6Pressed(QmlGraphicsKeyEvent *event); + void digit7Pressed(QmlGraphicsKeyEvent *event); + void digit8Pressed(QmlGraphicsKeyEvent *event); + void digit9Pressed(QmlGraphicsKeyEvent *event); + + void leftPressed(QmlGraphicsKeyEvent *event); + void rightPressed(QmlGraphicsKeyEvent *event); + void upPressed(QmlGraphicsKeyEvent *event); + void downPressed(QmlGraphicsKeyEvent *event); + + void asteriskPressed(QmlGraphicsKeyEvent *event); + void numberSignPressed(QmlGraphicsKeyEvent *event); + void escapePressed(QmlGraphicsKeyEvent *event); + void returnPressed(QmlGraphicsKeyEvent *event); + void enterPressed(QmlGraphicsKeyEvent *event); + void deletePressed(QmlGraphicsKeyEvent *event); + void spacePressed(QmlGraphicsKeyEvent *event); + void backPressed(QmlGraphicsKeyEvent *event); + void cancelPressed(QmlGraphicsKeyEvent *event); + void selectPressed(QmlGraphicsKeyEvent *event); + void yesPressed(QmlGraphicsKeyEvent *event); + void noPressed(QmlGraphicsKeyEvent *event); + void context1Pressed(QmlGraphicsKeyEvent *event); + void context2Pressed(QmlGraphicsKeyEvent *event); + void context3Pressed(QmlGraphicsKeyEvent *event); + void context4Pressed(QmlGraphicsKeyEvent *event); + void callPressed(QmlGraphicsKeyEvent *event); + void hangupPressed(QmlGraphicsKeyEvent *event); + void flipPressed(QmlGraphicsKeyEvent *event); + void menuPressed(QmlGraphicsKeyEvent *event); + void volumeUpPressed(QmlGraphicsKeyEvent *event); + void volumeDownPressed(QmlGraphicsKeyEvent *event); + +private: + virtual void keyPressed(QKeyEvent *event); + virtual void keyReleased(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + + const QByteArray keyToSignal(int key) { + QByteArray keySignal; + if (key >= Qt::Key_0 && key <= Qt::Key_9) { + keySignal = "digit0Pressed"; + keySignal[5] = '0' + (key - Qt::Key_0); + } else { + int i = 0; + while (sigMap[i].key && sigMap[i].key != key) + ++i; + keySignal = sigMap[i].sig; + } + return keySignal; + } + + struct SigMap { + int key; + const char *sig; + }; + + static const SigMap sigMap[]; +}; + +const QmlGraphicsKeysAttached::SigMap QmlGraphicsKeysAttached::sigMap[] = { + { Qt::Key_Left, "leftPressed" }, + { Qt::Key_Right, "rightPressed" }, + { Qt::Key_Up, "upPressed" }, + { Qt::Key_Down, "downPressed" }, + { Qt::Key_Asterisk, "asteriskPressed" }, + { Qt::Key_NumberSign, "numberSignPressed" }, + { Qt::Key_Escape, "escapePressed" }, + { Qt::Key_Return, "returnPressed" }, + { Qt::Key_Enter, "enterPressed" }, + { Qt::Key_Delete, "deletePressed" }, + { Qt::Key_Space, "spacePressed" }, + { Qt::Key_Back, "backPressed" }, + { Qt::Key_Cancel, "cancelPressed" }, + { Qt::Key_Select, "selectPressed" }, + { Qt::Key_Yes, "yesPressed" }, + { Qt::Key_No, "noPressed" }, + { Qt::Key_Context1, "context1Pressed" }, + { Qt::Key_Context2, "context2Pressed" }, + { Qt::Key_Context3, "context3Pressed" }, + { Qt::Key_Context4, "context4Pressed" }, + { Qt::Key_Call, "callPressed" }, + { Qt::Key_Hangup, "hangupPressed" }, + { Qt::Key_Flip, "flipPressed" }, + { Qt::Key_Menu, "menuPressed" }, + { Qt::Key_VolumeUp, "volumeUpPressed" }, + { Qt::Key_VolumeDown, "volumeDownPressed" }, + { 0, 0 } +}; + +bool QmlGraphicsKeysAttachedPrivate::isConnected(const char *signalName) +{ + return isSignalConnected(signalIndex(signalName)); +} + +QmlGraphicsKeysAttached::QmlGraphicsKeysAttached(QObject *parent) +: QObject(*(new QmlGraphicsKeysAttachedPrivate), parent), + QmlGraphicsItemKeyFilter(qobject_cast(parent)) +{ + Q_D(QmlGraphicsKeysAttached); + d->item = qobject_cast(parent); +} + +QmlGraphicsKeysAttached::~QmlGraphicsKeysAttached() +{ +} + +void QmlGraphicsKeysAttached::componentComplete() +{ + Q_D(QmlGraphicsKeysAttached); + if (d->item) { + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *targetItem = d->finalFocusProxy(d->targets.at(ii)); + if (targetItem && (targetItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { + d->item->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + break; + } + } + } +} + +void QmlGraphicsKeysAttached::keyPressed(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (!d->enabled || d->inPress) { + event->ignore(); + return; + } + + // first process forwards + if (d->item && d->item->scene()) { + d->inPress = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->inPress = false; + return; + } + } + } + d->inPress = false; + } + + QmlGraphicsKeyEvent ke(*event); + QByteArray keySignal = keyToSignal(event->key()); + if (!keySignal.isEmpty()) { + keySignal += "(QmlGraphicsKeyEvent*)"; + if (d->isConnected(keySignal)) { + // If we specifically handle a key then default to accepted + ke.setAccepted(true); + int idx = QmlGraphicsKeysAttached::staticMetaObject.indexOfSignal(keySignal); + metaObject()->method(idx).invoke(this, Q_ARG(QmlGraphicsKeysAttached, &ke)); + } + } + if (!ke.isAccepted()) + emit pressed(&ke); + event->setAccepted(ke.isAccepted()); + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyPressed(event); +} + +void QmlGraphicsKeysAttached::keyReleased(QKeyEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (!d->enabled || d->inRelease) { + event->ignore(); + return; + } + + if (d->item && d->item->scene()) { + d->inRelease = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->inRelease = false; + return; + } + } + } + d->inRelease = false; + } + + QmlGraphicsKeyEvent ke(*event); + emit released(&ke); + event->setAccepted(ke.isAccepted()); + + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::keyReleased(event); +} + +void QmlGraphicsKeysAttached::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsKeysAttached); + if (d->item && !d->inIM && d->item->scene()) { + d->inIM = true; + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { + d->item->scene()->sendEvent(i, event); + if (event->isAccepted()) { + d->imeItem = i; + d->inIM = false; + return; + } + } + } + d->inIM = false; + } + if (!event->isAccepted()) QmlGraphicsItemKeyFilter::inputMethodEvent(event); +} + +class QmlGraphicsItemAccessor : public QGraphicsItem +{ +public: + QVariant doInputMethodQuery(Qt::InputMethodQuery query) const { + return QGraphicsItem::inputMethodQuery(query); + } +}; + +QVariant QmlGraphicsKeysAttached::inputMethodQuery(Qt::InputMethodQuery query) const +{ + Q_D(const QmlGraphicsKeysAttached); + if (d->item) { + for (int ii = 0; ii < d->targets.count(); ++ii) { + QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii)); + if (i && (i->flags() & QGraphicsItem::ItemAcceptsInputMethod) && i == d->imeItem) { //### how robust is i == d->imeItem check? + QVariant v = static_cast(i)->doInputMethodQuery(query); + if (v.type() == QVariant::RectF) + v = d->item->mapRectFromItem(i, v.toRectF()); //### cost? + return v; + } + } + } + return QmlGraphicsItemKeyFilter::inputMethodQuery(query); +} + +QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject *obj) +{ + return new QmlGraphicsKeysAttached(obj); +} + +/*! + \class QmlGraphicsItem + \brief The QmlGraphicsItem class provides the most basic of all visual items in QML. + + All visual items in Qt Declarative inherit from QmlGraphicsItem. Although QmlGraphicsItem + has no visual appearance, it defines all the properties that are + common across visual items - such as the x and y position, the + width and height, \l {anchor-layout}{anchoring} and key handling. + + You can subclass QmlGraphicsItem to provide your own custom visual item that inherits + these features. +*/ + +/*! + \qmlclass Item QmlGraphicsItem + \brief The Item is the most basic of all visual items in QML. + + All visual items in Qt Declarative inherit from Item. Although Item + has no visual appearance, it defines all the properties that are + common across visual items - such as the x and y position, the + width and height, \l {anchor-layout}{anchoring} and key handling. + + Item is also useful for grouping items together. + + \qml + Item { + Image { + file: "tile.png" + } + Image { + x: 80 + width: 100 + height: 100 + file: "tile.png" + } + Image { + x: 190 + width: 100 + height: 100 + tile: true + file: "tile.png" + } + } + \endqml + + \section1 Key Handling + + Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} + attached property. The \e Keys attached property provides basic handlers such + as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, + as well as handlers for specific keys, such as + \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below + assigns \l {qmlfocus}{focus} to the item and handles + the Left key via the general \e onPressed handler and the Select key via the + onSelectPressed handler: + + \qml + Item { + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_Left) { + print("move left"); + event.accepted = true; + } + } + Keys.onSelectPressed: print("Selected"); + } + \endqml + + See the \l {Keys}{Keys} attached property for detailed documentation. + + \ingroup group_coreitems +*/ + +/*! + \property QmlGraphicsItem::baseline + \internal +*/ + +/*! + \property QmlGraphicsItem::effect + \internal +*/ + +/*! + \property QmlGraphicsItem::focus + \internal +*/ + +/*! + \property QmlGraphicsItem::wantsFocus + \internal +*/ + +/*! + \property QmlGraphicsItem::transformOrigin + \internal +*/ + +/*! + \fn void QmlGraphicsItem::childrenRectChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::baselineOffsetChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::widthChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::heightChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::stateChanged(const QString &state) + \internal +*/ + +/*! + \fn void QmlGraphicsItem::parentChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::focusChanged() + \internal +*/ + +/*! + \fn void QmlGraphicsItem::wantsFocusChanged() + \internal +*/ + +static inline void qfxitem_registerAnchorLine() { + static bool registered = false; + if (!registered) { + qRegisterMetaType("QmlGraphicsAnchorLine"); + registered = true; + } +} + +/*! + \fn QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem *parent) + + Constructs a QmlGraphicsItem with the given \a parent. +*/ +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItem* parent) + : QGraphicsObject(*(new QmlGraphicsItemPrivate), parent, 0) +{ + Q_D(QmlGraphicsItem); + qfxitem_registerAnchorLine(); + d->init(parent); +} + +/*! \internal +*/ +QmlGraphicsItem::QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent) + : QGraphicsObject(dd, parent, 0) +{ + Q_D(QmlGraphicsItem); + qfxitem_registerAnchorLine(); + d->init(parent); +} + +/*! + Destroys the QmlGraphicsItem. +*/ +QmlGraphicsItem::~QmlGraphicsItem() +{ + Q_D(QmlGraphicsItem); + for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->clearItem(this); + } + if (!d->parent || (parentItem() && !parentItem()->QGraphicsItem::d_ptr->inDestructor)) + for (int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + if (anchor->d_func()->item && anchor->d_func()->item->parentItem() != this) //child will be deleted anyway + anchor->d_func()->updateOnComplete(); + } + d->dependantAnchors.clear(); + delete d->_anchorLines; d->_anchorLines = 0; + delete d->_anchors; d->_anchors = 0; +} + +/*! + \qmlproperty enum Item::transformOrigin + This property holds the origin point around which scale and rotation transform. + + Nine transform origins are available, as shown in the image below. + + \image declarative-transformorigin.png + + This example scales an image about its center. + \qml + Image { + source: "myimage.png" + transformOrigin: Item.Center + scale: 4 + } + \endqml + + The default transform origin is \c TopLeft. +*/ + +/*! + \qmlproperty Item Item::parent + This property holds the parent of the item. +*/ + +/*! + \property QmlGraphicsItem::parent + This property holds the parent of the item. +*/ +void QmlGraphicsItem::setParentItem(QmlGraphicsItem *parent) +{ + QmlGraphicsItem *oldParent = parentItem(); + if (parent == oldParent || !parent) return; + + QObject::setParent(parent); + QGraphicsObject::setParentItem(parent); +} + +/*! + Returns the QmlGraphicsItem parent of this item. +*/ +QmlGraphicsItem *QmlGraphicsItem::parentItem() const +{ + return qobject_cast(QGraphicsObject::parentItem()); +} + +/*! + \qmlproperty list Item::children + \qmlproperty list Item::resources + + The children property contains the list of visual children of this item. + The resources property contains non-visual resources that you want to + reference by name. + + Generally you can rely on Item's default property to handle all this for + you, but it can come in handy in some cases. + + \qml + Item { + children: [ + Text {}, + Rectangle {} + ] + resources: [ + Component { + id: myComponent + Text {} + } + ] + } + \endqml +*/ + +/*! + \property QmlGraphicsItem::children + \internal +*/ + +/*! + \property QmlGraphicsItem::resources + \internal +*/ + +/*! + Returns true if construction of the QML component is complete; otherwise + returns false. + + It is often desireable to delay some processing until the component is + completed. + + \sa componentComplete() +*/ +bool QmlGraphicsItem::isComponentComplete() const +{ + Q_D(const QmlGraphicsItem); + return d->_componentComplete; +} + +/*! + \property QmlGraphicsItem::anchors + \internal +*/ + +/*! \internal */ +QmlGraphicsAnchors *QmlGraphicsItem::anchors() +{ + Q_D(QmlGraphicsItem); + return d->anchors(); +} + +void QmlGraphicsItemPrivate::data_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::data_count() const +{ + // ### + return 0; +} + +void QmlGraphicsItemPrivate::data_append(QObject *o) +{ + Q_Q(QmlGraphicsItem); + QmlGraphicsItem *i = qobject_cast(o); + if (i) + q->fxChildren()->append(i); + else + resources_append(o); +} + +void QmlGraphicsItemPrivate::data_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsItemPrivate::data_at(int) const +{ + // ### + return 0; +} + +void QmlGraphicsItemPrivate::data_clear() +{ + // ### +} + +void QmlGraphicsItemPrivate::resources_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::resources_count() const +{ + Q_Q(const QmlGraphicsItem); + return q->children().count(); +} + +void QmlGraphicsItemPrivate::resources_append(QObject *o) +{ + Q_Q(QmlGraphicsItem); + o->setParent(q); +} + +void QmlGraphicsItemPrivate::resources_insert(int, QObject *) +{ + // ### +} + +QObject *QmlGraphicsItemPrivate::resources_at(int idx) const +{ + Q_Q(const QmlGraphicsItem); + QObjectList children = q->children(); + if (idx < children.count()) + return children.at(idx); + else + return 0; +} + +void QmlGraphicsItemPrivate::resources_clear() +{ + // ### +} + +void QmlGraphicsItemPrivate::children_removeAt(int) +{ + // ### +} + +int QmlGraphicsItemPrivate::children_count() const +{ + Q_Q(const QmlGraphicsItem); + return q->childItems().count(); +} + +void QmlGraphicsItemPrivate::children_append(QmlGraphicsItem *i) +{ + Q_Q(QmlGraphicsItem); + i->setParentItem(q); +} + +void QmlGraphicsItemPrivate::children_insert(int, QmlGraphicsItem *) +{ + // ### +} + +QmlGraphicsItem *QmlGraphicsItemPrivate::children_at(int idx) const +{ + Q_Q(const QmlGraphicsItem); + QList children = q->childItems(); + if (idx < children.count()) + return qobject_cast(children.at(idx)); + else + return 0; +} + +void QmlGraphicsItemPrivate::children_clear() +{ + // ### +} + + +void QmlGraphicsItemPrivate::transform_removeAt(int i) +{ + if (!transformData) + return; + transformData->graphicsTransforms.removeAt(i); + dirtySceneTransform = 1; +} + +int QmlGraphicsItemPrivate::transform_count() const +{ + return transformData ? transformData->graphicsTransforms.size() : 0; +} + +void QmlGraphicsItemPrivate::transform_append(QGraphicsTransform *item) +{ + appendGraphicsTransform(item); +} + +void QmlGraphicsItemPrivate::transform_insert(int, QGraphicsTransform *) +{ + // ### +} + +QGraphicsTransform *QmlGraphicsItemPrivate::transform_at(int idx) const +{ + if (!transformData) + return 0; + return transformData->graphicsTransforms.at(idx); +} + +void QmlGraphicsItemPrivate::transform_clear() +{ + if (!transformData) + return; + Q_Q(QmlGraphicsItem); + q->setTransformations(QList()); +} + +/*! + \qmlproperty list Item::data + \default + + The data property is allows you to freely mix visual children and resources + of an item. If you assign a visual item to the data list it becomes + a child and if you assign any other object type, it is added as a resource. + + So you can write: + \qml + Item { + Text {} + Rectangle {} + Script {} + } + \endqml + + instead of: + \qml + Item { + children: [ + Text {}, + Rectangle {} + ] + resources: [ + Script {} + ] + } + \endqml + + data is a behind-the-scenes property: you should never need to explicitly + specify it. + */ + +/*! + \property QmlGraphicsItem::data + \internal +*/ + +/*! \internal */ +QmlList *QmlGraphicsItem::data() +{ + Q_D(QmlGraphicsItem); + return &d->data; +} + +/*! + \property QmlGraphicsItem::childrenRect + \brief The geometry of an item's children. + + childrenRect provides an easy way to access the (collective) position and size of the item's children. +*/ +QRectF QmlGraphicsItem::childrenRect() +{ + Q_D(QmlGraphicsItem); + if (!d->_contents) { + d->_contents = new QmlGraphicsContents; + d->_contents->setParent(this); + d->_contents->setItem(this); + } + return d->_contents->rectF(); +} + +bool QmlGraphicsItem::clip() const +{ + return flags() & ItemClipsChildrenToShape; +} + +void QmlGraphicsItem::setClip(bool c) +{ + setFlag(ItemClipsChildrenToShape, c); +} + +/*! + \qmlproperty real Item::x + \qmlproperty real Item::y + \qmlproperty real Item::width + \qmlproperty real Item::height + + Defines the item's position and size relative to its parent. + + \qml + Item { x: 100; y: 100; width: 100; height: 100 } + \endqml + */ + +/*! + \property QmlGraphicsItem::width + + Defines the item's width relative to its parent. + */ + +/*! + \property QmlGraphicsItem::height + + Defines the item's height relative to its parent. + */ + +/*! + \qmlproperty real Item::z + + Sets the stacking order of the item. By default the stacking order is 0. + + Items with a higher stacking value are drawn on top of items with a + lower stacking order. Items with the same stacking value are drawn + bottom up in the order they appear. Items with a negative stacking + value are drawn under their parent's content. + + The following example shows the various effects of stacking order. + + \table + \row + \o \image declarative-item_stacking1.png + \o Same \c z - later children above earlier children: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + } + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + \endqml + \row + \o \image declarative-item_stacking2.png + \o Higher \c z on top: + \qml + Item { + Rectangle { + z: 1 + color: "red" + width: 100; height: 100 + } + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + \endqml + \row + \o \image declarative-item_stacking3.png + \o Same \c z - children above parents: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \row + \o \image declarative-item_stacking4.png + \o Lower \c z below: + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + z: -1 + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \endtable + */ + +/*! + This function is called to handle this item's changes in + geometry from \a oldGeometry to \a newGeometry. If the two + geometries are the same, it doesn't do anything. + */ +void QmlGraphicsItem::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + Q_D(QmlGraphicsItem); + + if (d->_anchors) + d->_anchors->d_func()->updateMe(); + + if (transformOrigin() != QmlGraphicsItem::TopLeft) + setTransformOriginPoint(d->computeTransformOrigin()); + + if (newGeometry.x() != oldGeometry.x()) + emit xChanged(); + if (newGeometry.width() != oldGeometry.width()) + emit widthChanged(); + if (newGeometry.y() != oldGeometry.y()) + emit yChanged(); + if (newGeometry.height() != oldGeometry.height()) + emit heightChanged(); + + for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->update(this, newGeometry, oldGeometry); + } +} + +/*! \internal */ +void QmlGraphicsItem::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->keyPressed(event); + else + event->ignore(); +} + +/*! \internal */ +void QmlGraphicsItem::keyReleaseEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->keyReleased(event); + else + event->ignore(); +} + +/*! \internal */ +void QmlGraphicsItem::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsItem); + if (d->keyHandler) + d->keyHandler->inputMethodEvent(event); + else + event->ignore(); +} + +/*! \internal */ +QVariant QmlGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const +{ + Q_D(const QmlGraphicsItem); + QVariant v; + if (d->keyHandler) + v = d->keyHandler->inputMethodQuery(query); + + if (!v.isValid()) + v = QGraphicsObject::inputMethodQuery(query); + + return v; +} + +/*! + \qmlproperty string Item::id + This property holds the identifier for the item. + + The identifier can be used in bindings and other expressions to + refer to the item. For example: + + \qml + Text { id: myText; ... } + Text { text: myText.text } + \endqml + + The identifier is available throughout to the \l {components}{component} + where it is declared. The identifier must be unique in thecomponent. +*/ + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::left() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->left; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::right() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->right; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::horizontalCenter() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->hCenter; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::top() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->top; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::bottom() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->bottom; +} + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::verticalCenter() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->vCenter; +} + + +/*! + \internal +*/ +QmlGraphicsAnchorLine QmlGraphicsItem::baseline() const +{ + Q_D(const QmlGraphicsItem); + return d->anchorLines()->baseline; +} + +/*! + \property QmlGraphicsItem::top + \internal +*/ + +/*! + \property QmlGraphicsItem::bottom + \internal +*/ + +/*! + \property QmlGraphicsItem::left + \internal +*/ + +/*! + \property QmlGraphicsItem::right + \internal +*/ + +/*! + \property QmlGraphicsItem::horizontalCenter + \internal +*/ + +/*! + \property QmlGraphicsItem::verticalCenter + \internal +*/ + +/*! + \qmlproperty AnchorLine Item::top + \qmlproperty AnchorLine Item::bottom + \qmlproperty AnchorLine Item::left + \qmlproperty AnchorLine Item::right + \qmlproperty AnchorLine Item::horizontalCenter + \qmlproperty AnchorLine Item::verticalCenter + \qmlproperty AnchorLine Item::baseline + + The anchor lines of the item. + + For more information see \l {anchor-layout}{Anchor Layouts}. +*/ + +/*! + \qmlproperty AnchorLine Item::anchors.top + \qmlproperty AnchorLine Item::anchors.bottom + \qmlproperty AnchorLine Item::anchors.left + \qmlproperty AnchorLine Item::anchors.right + \qmlproperty AnchorLine Item::anchors.horizontalCenter + \qmlproperty AnchorLine Item::anchors.verticalCenter + \qmlproperty AnchorLine Item::anchors.baseline + + \qmlproperty Item Item::anchors.fill + \qmlproperty Item Item::anchors.centerIn + + \qmlproperty real Item::anchors.topMargin + \qmlproperty real Item::anchors.bottomMargin + \qmlproperty real Item::anchors.leftMargin + \qmlproperty real Item::anchors.rightMargin + \qmlproperty real Item::anchors.horizontalCenterOffset + \qmlproperty real Item::anchors.verticalCenterOffset + \qmlproperty real Item::anchors.baselineOffset + + Anchors provide a way to position an item by specifying its + relationship with other items. + + Margins apply to top, bottom, left, right, and fill anchors. + + Offsets apply for horizontal center, vertical center, and baseline anchors. + + \table + \row + \o \image declarative-anchors_example.png + \o Text anchored to Image, horizontally centered and vertically below, with a margin. + \qml + Image { id: pic; ... } + Text { + id: label + anchors.horizontalCenter: pic.horizontalCenter + anchors.top: pic.bottom + anchors.topMargin: 5 + ... + } + \endqml + \row + \o \image declarative-anchors_example2.png + \o + Left of Text anchored to right of Image, with a margin. The y + property of both defaults to 0. + + \qml + Image { id: pic; ... } + Text { + id: label + anchors.left: pic.right + anchors.leftMargin: 5 + ... + } + \endqml + \endtable + + anchors.fill provides a convenient way for one item to have the + same geometry as another item, and is equivalent to connecting all + four directional anchors. + + \note You can only anchor an item to siblings or a parent. + + For more information see \l {anchor-layout}{Anchor Layouts}. +*/ + +/*! + \property QmlGraphicsItem::baselineOffset + \brief The position of the item's baseline in local coordinates. + + The baseline of a Text item is the imaginary line on which the text + sits. Controls containing text usually set their baseline to the + baseline of their text. + + For non-text items, a default baseline offset of 0 is used. +*/ +qreal QmlGraphicsItem::baselineOffset() const +{ + Q_D(const QmlGraphicsItem); + if (!d->_baselineOffset.isValid()) { + return 0.0; + } else + return d->_baselineOffset; +} + +void QmlGraphicsItem::setBaselineOffset(qreal offset) +{ + Q_D(QmlGraphicsItem); + if (offset == d->_baselineOffset) + return; + + d->_baselineOffset = offset; + emit baselineOffsetChanged(); + + for(int ii = 0; ii < d->dependantAnchors.count(); ++ii) { + QmlGraphicsAnchors *anchor = d->dependantAnchors.at(ii); + anchor->d_func()->updateVerticalAnchors(); + } +} + +/*! + \qmlproperty real Item::rotation + This property holds the rotation of the item in degrees clockwise. + + This specifies how many degrees to rotate the item around its transformOrigin. + The default rotation is 0 degrees (i.e. not rotated at all). + + \table + \row + \o \image declarative-rotation.png + \o + \qml + Rectangle { + color: "blue" + width: 100; height: 100 + Rectangle { + color: "green" + width: 25; height: 25 + } + Rectangle { + color: "red" + x: 25; y: 25; width: 50; height: 50 + rotation: 30 + } + } + \endqml + \endtable +*/ + +/*! + \qmlproperty real Item::scale + This property holds the scale of the item. + + A scale of less than 1 means the item will be displayed smaller than + normal, and a scale of greater than 1 means the item will be + displayed larger than normal. A negative scale means the item will + be mirrored. + + By default, items are displayed at a scale of 1 (i.e. at their + normal size). + + Scaling is from the item's transformOrigin. + + \table + \row + \o \image declarative-scale.png + \o + \qml + Rectangle { + color: "blue" + width: 100; height: 100 + Rectangle { + color: "green" + width: 25; height: 25 + } + Rectangle { + color: "red" + x: 25; y: 25; width: 50; height: 50 + scale: 1.4 + } + } + \endqml + \endtable +*/ + +/*! + \qmlproperty real Item::opacity + + The opacity of the item. Opacity is specified as a number between 0 + (fully transparent) and 1 (fully opaque). The default is 1. + + Opacity is an \e inherited attribute. That is, the opacity is + also applied individually to child items. In almost all cases this + is what you want. If you can spot the issue in the following + example, you might need to use an opacity filter (not yet available) instead. + + \table + \row + \o \image declarative-item_opacity1.png + \o + \qml + Item { + Rectangle { + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \row + \o \image declarative-item_opacity2.png + \o + \qml + Item { + Rectangle { + opacity: 0.5 + color: "red" + width: 100; height: 100 + Rectangle { + color: "blue" + x: 50; y: 50; width: 100; height: 100 + } + } + } + \endqml + \endtable +*/ + +/*! + Returns a value indicating whether mouse input should + remain with this item exclusively. + + \sa setKeepMouseGrab() + */ +bool QmlGraphicsItem::keepMouseGrab() const +{ + Q_D(const QmlGraphicsItem); + return d->_keepMouse; +} + +/*! + The flag indicating whether the mouse should remain + with this item is set to \a keep. + + This is useful for items that wish to grab and keep mouse + interaction following a predefined gesture. For example, + an item that is interested in horizontal mouse movement + may set keepMouseGrab to true once a threshold has been + exceeded. Once keepMouseGrab has been set to true, filtering + items will not react to mouse events. + + If the item does not indicate that it wishes to retain mouse grab, + a filtering item may steal the grab. For example, Flickable may attempt + to steal a mouse grab if it detects that the user has begun to + move the viewport. + + \sa keepMouseGrab + */ +void QmlGraphicsItem::setKeepMouseGrab(bool keep) +{ + Q_D(QmlGraphicsItem); + d->_keepMouse = keep; +} + +/*! + \internal + + This function emits the \e focusChanged signal. + + Subclasses overriding this function should call up + to their base class. +*/ +void QmlGraphicsItem::focusChanged(bool flag) +{ + Q_UNUSED(flag); + emit focusChanged(); +} + +/*! \internal */ +QmlList *QmlGraphicsItem::fxChildren() +{ + Q_D(QmlGraphicsItem); + return &(d->children); +} + +/*! \internal */ +QmlList *QmlGraphicsItem::resources() +{ + Q_D(QmlGraphicsItem); + return &(d->resources); +} + +/*! + \qmlproperty list Item::states + This property holds a list of states defined by the item. + + \qml + Item { + states: [ + State { ... }, + State { ... } + ... + ] + } + \endqml + + \sa {qmlstate}{States} +*/ + +/*! + \property QmlGraphicsItem::states + \internal +*/ +/*! \internal */ +QmlList* QmlGraphicsItem::states() +{ + Q_D(QmlGraphicsItem); + return d->states()->statesProperty(); +} + +/*! + \qmlproperty list Item::transitions + This property holds a list of transitions defined by the item. + + \qml + Item { + transitions: [ + Transition { ... }, + Transition { ... } + ... + ] + } + \endqml + + \sa {state-transitions}{Transitions} +*/ + +/*! + \property QmlGraphicsItem::transitions + \internal +*/ + +/*! \internal */ +QmlList* QmlGraphicsItem::transitions() +{ + Q_D(QmlGraphicsItem); + return d->states()->transitionsProperty(); +} + +/* + \qmlproperty list Item::filter + This property holds a list of graphical filters to be applied to the item. + + \l {Filter}{Filters} include things like \l {Blur}{blurring} + the item, or giving it a \l Reflection. Some + filters may not be available on all canvases; if a filter is not + available on a certain canvas, it will simply not be applied for + that canvas (but the QML will still be considered valid). + + \qml + Item { + filter: [ + Blur { ... }, + Relection { ... } + ... + ] + } + \endqml +*/ + +/*! + \qmlproperty bool Item::clip + This property holds whether clipping is enabled. + + if clipping is enabled, an item will clip its own painting, as well + as the painting of its children, to its bounding rectangle. + + Non-rectangular clipping regions are not supported for performance reasons. +*/ + +/*! + \property QmlGraphicsItem::clip + This property holds whether clipping is enabled. + + if clipping is enabled, an item will clip its own painting, as well + as the painting of its children, to its bounding rectangle. + + Non-rectangular clipping regions are not supported for performance reasons. +*/ + +/*! + \qmlproperty string Item::state + + This property holds the name of the current state of the item. + + This property is often used in scripts to change between states. For + example: + + \qml + Script { + function toggle() { + if (button.state == 'On') + button.state = 'Off'; + else + button.state = 'On'; + } + } + \endqml + + If the item is in its base state (i.e. no explicit state has been + set), \c state will be a blank string. Likewise, you can return an + item to its base state by setting its current state to \c ''. + + \sa {qmlstates}{States} +*/ + +/*! + \property QmlGraphicsItem::state + \internal +*/ + +/*! \internal */ +QString QmlGraphicsItem::state() const +{ + Q_D(const QmlGraphicsItem); + if (!d->_stateGroup) + return QString(); + else + return d->_stateGroup->state(); +} + +/*! \internal */ +void QmlGraphicsItem::setState(const QString &state) +{ + Q_D(QmlGraphicsItem); + d->states()->setState(state); +} + +/*! + \qmlproperty list Item::transform + This property holds the list of transformations to apply. + + For more information see \l Transform. +*/ + +/*! + \property QmlGraphicsItem::transform + \internal +*/ + +/*! \internal */ +QmlList* QmlGraphicsItem::transform() +{ + Q_D(QmlGraphicsItem); + return &(d->transform); +} + +/*! + \internal + + classBegin() is called when the item is constructed, but its + properties have not yet been set. + + \sa componentComplete(), isComponentComplete() +*/ +void QmlGraphicsItem::classBegin() +{ + Q_D(QmlGraphicsItem); + d->_componentComplete = false; + if (d->_stateGroup) + d->_stateGroup->classBegin(); + if (d->_anchors) + d->_anchors->classBegin(); +} + +/*! + \internal + + componentComplete() is called when all items in the component + have been constructed. It is often desireable to delay some + processing until the component is complete an all bindings in the + component have been resolved. +*/ +void QmlGraphicsItem::componentComplete() +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + + Q_D(QmlGraphicsItem); + d->_componentComplete = true; + if (d->_stateGroup) + d->_stateGroup->componentComplete(); + if (d->_anchors) { + d->_anchors->componentComplete(); + d->_anchors->d_func()->updateOnComplete(); + } + if (d->keyHandler) + d->keyHandler->componentComplete(); +} + +QmlStateGroup *QmlGraphicsItemPrivate::states() +{ + Q_Q(QmlGraphicsItem); + if (!_stateGroup) { + _stateGroup = new QmlStateGroup(q); + if (!_componentComplete) + _stateGroup->classBegin(); + QObject::connect(_stateGroup, SIGNAL(stateChanged(QString)), + q, SIGNAL(stateChanged(QString))); + } + + return _stateGroup; +} + +QmlGraphicsItemPrivate::AnchorLines::AnchorLines(QmlGraphicsItem *q) +{ + left.item = q; + left.anchorLine = QmlGraphicsAnchorLine::Left; + right.item = q; + right.anchorLine = QmlGraphicsAnchorLine::Right; + hCenter.item = q; + hCenter.anchorLine = QmlGraphicsAnchorLine::HCenter; + top.item = q; + top.anchorLine = QmlGraphicsAnchorLine::Top; + bottom.item = q; + bottom.anchorLine = QmlGraphicsAnchorLine::Bottom; + vCenter.item = q; + vCenter.anchorLine = QmlGraphicsAnchorLine::VCenter; + baseline.item = q; + baseline.anchorLine = QmlGraphicsAnchorLine::Baseline; +} + +QPointF QmlGraphicsItemPrivate::computeTransformOrigin() const +{ + Q_Q(const QmlGraphicsItem); + + QRectF br = q->boundingRect(); + + switch(origin) { + default: + case QmlGraphicsItem::TopLeft: + return QPointF(0, 0); + case QmlGraphicsItem::Top: + return QPointF(br.width() / 2., 0); + case QmlGraphicsItem::TopRight: + return QPointF(br.width(), 0); + case QmlGraphicsItem::Left: + return QPointF(0, br.height() / 2.); + case QmlGraphicsItem::Center: + return QPointF(br.width() / 2., br.height() / 2.); + case QmlGraphicsItem::Right: + return QPointF(br.width(), br.height() / 2.); + case QmlGraphicsItem::BottomLeft: + return QPointF(0, br.height()); + case QmlGraphicsItem::Bottom: + return QPointF(br.width() / 2., br.height()); + case QmlGraphicsItem::BottomRight: + return QPointF(br.width(), br.height()); + } +} + +/*! \internal */ +bool QmlGraphicsItem::sceneEvent(QEvent *event) +{ + bool rv = QGraphicsItem::sceneEvent(event); + + if (event->type() == QEvent::FocusIn || + event->type() == QEvent::FocusOut) { + focusChanged(hasFocus()); + } + + return rv; +} + +/*! \internal */ +QVariant QmlGraphicsItem::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + if (change == ItemParentHasChanged) { + emit parentChanged(); + } + + return QGraphicsItem::itemChange(change, value); +} + +/*! \internal */ +QRectF QmlGraphicsItem::boundingRect() const +{ + Q_D(const QmlGraphicsItem); + return QRectF(0, 0, d->width, d->height); +} + +/*! + \enum QmlGraphicsItem::TransformOrigin + + Controls the point about which simple transforms like scale apply. + + \value TopLeft The top-left corner of the item. + \value Top The center point of the top of the item. + \value TopRight The top-right corner of the item. + \value Left The left most point of the vertical middle. + \value Center The center of the item. + \value Right The right most point of the vertical middle. + \value BottomLeft The bottom-left corner of the item. + \value Bottom The center point of the bottom of the item. + \value BottomRight The bottom-right corner of the item. +*/ + +/*! + Returns the current transform origin. +*/ +QmlGraphicsItem::TransformOrigin QmlGraphicsItem::transformOrigin() const +{ + Q_D(const QmlGraphicsItem); + return d->origin; +} + +/*! + Set the transform \a origin. +*/ +void QmlGraphicsItem::setTransformOrigin(TransformOrigin origin) +{ + Q_D(QmlGraphicsItem); + if (origin != d->origin) { + d->origin = origin; + QGraphicsItem::setTransformOriginPoint(d->computeTransformOrigin()); + } +} + +/*! + \property QmlGraphicsItem::smooth + \brief whether the item is smoothly transformed. + + This property is provided purely for the purpose of optimization. Turning + smooth transforms off is faster, but looks worse; turning smooth + transformations on is slower, but looks better. + + By default smooth transformations are off. +*/ + +/*! + Returns true if the item should be drawn with antialiasing and + smooth pixmap filtering, false otherwise. + + The default is false. + + \sa setSmoothTransform() +*/ +bool QmlGraphicsItem::smoothTransform() const +{ + Q_D(const QmlGraphicsItem); + return d->smooth; +} + +/*! + Sets whether the item should be drawn with antialiasing and + smooth pixmap filtering to \a smooth. + + \sa smoothTransform() +*/ +void QmlGraphicsItem::setSmoothTransform(bool smooth) +{ + Q_D(QmlGraphicsItem); + if (d->smooth == smooth) + return; + d->smooth = smooth; + update(); +} + +qreal QmlGraphicsItem::width() const +{ + Q_D(const QmlGraphicsItem); + return d->width; +} + +void QmlGraphicsItem::setWidth(qreal w) +{ + Q_D(QmlGraphicsItem); + d->widthValid = true; + if (d->width == w) + return; + + qreal oldWidth = d->width; + + prepareGeometryChange(); + d->width = w; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), oldWidth, height())); +} + +void QmlGraphicsItem::resetWidth() +{ + Q_D(QmlGraphicsItem); + d->widthValid = false; + setImplicitWidth(implicitWidth()); +} + +qreal QmlGraphicsItem::implicitWidth() const +{ + Q_D(const QmlGraphicsItem); + return d->implicitWidth; +} + +void QmlGraphicsItem::setImplicitWidth(qreal w) +{ + Q_D(QmlGraphicsItem); + d->implicitWidth = w; + if (d->width == w || widthValid()) + return; + + qreal oldWidth = d->width; + + prepareGeometryChange(); + d->width = w; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), oldWidth, height())); +} + +bool QmlGraphicsItem::widthValid() const +{ + Q_D(const QmlGraphicsItem); + return d->widthValid; +} + +qreal QmlGraphicsItem::height() const +{ + Q_D(const QmlGraphicsItem); + return d->height; +} + +void QmlGraphicsItem::setHeight(qreal h) +{ + Q_D(QmlGraphicsItem); + d->heightValid = true; + if (d->height == h) + return; + + qreal oldHeight = d->height; + + prepareGeometryChange(); + d->height = h; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), width(), oldHeight)); +} + +void QmlGraphicsItem::resetHeight() +{ + Q_D(QmlGraphicsItem); + d->heightValid = false; + setImplicitHeight(implicitHeight()); +} + +qreal QmlGraphicsItem::implicitHeight() const +{ + Q_D(const QmlGraphicsItem); + return d->implicitHeight; +} + +void QmlGraphicsItem::setImplicitHeight(qreal h) +{ + Q_D(QmlGraphicsItem); + d->implicitHeight = h; + if (d->height == h || heightValid()) + return; + + qreal oldHeight = d->height; + + prepareGeometryChange(); + d->height = h; + update(); + + geometryChanged(QRectF(x(), y(), width(), height()), + QRectF(x(), y(), width(), oldHeight)); +} + +bool QmlGraphicsItem::heightValid() const +{ + Q_D(const QmlGraphicsItem); + return d->heightValid; +} + +/*! + \qmlproperty bool Item::wantsFocus + + This property indicates whether the item has has an active focus request. +*/ + +/*! \internal */ +bool QmlGraphicsItem::wantsFocus() const +{ + return focusItem() != 0; +} + +/*! + \qmlproperty bool Item::focus + This property indicates whether the item has keyboard input focus. Set this + property to true to request focus. +*/ + +/*! \internal */ +bool QmlGraphicsItem::hasFocus() const +{ + return QGraphicsItem::hasFocus(); +} + +/*! \internal */ +void QmlGraphicsItem::setFocus(bool focus) +{ + if (focus) + QGraphicsItem::setFocus(Qt::OtherFocusReason); + else + QGraphicsItem::clearFocus(); +} + +/*! + \reimp + \internal +*/ +void QmlGraphicsItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) +{ +} + +/*! + \reimp + \internal +*/ +bool QmlGraphicsItem::event(QEvent *ev) +{ + return QGraphicsObject::event(ev); +} + +QDebug operator<<(QDebug debug, QmlGraphicsItem *item) +{ + if (!item) { + debug << "QmlGraphicsItem(0)"; + return debug; + } + + debug << item->metaObject()->className() << "(this =" << ((void*)item) + << ", parent =" << ((void*)item->parentItem()) + << ", geometry =" << QRectF(item->pos(), QSizeF(item->width(), item->height())) + << ", z =" << item->zValue() << ")"; + return debug; +} + +int QmlGraphicsItemPrivate::consistentTime = -1; +void QmlGraphicsItemPrivate::setConsistentTime(int t) +{ + consistentTime = t; +} + +QTime QmlGraphicsItemPrivate::currentTime() +{ + if (consistentTime == -1) + return QTime::currentTime(); + else + return QTime(0, 0).addMSecs(consistentTime); +} + +void QmlGraphicsItemPrivate::start(QTime &t) +{ + t = currentTime(); +} + +int QmlGraphicsItemPrivate::elapsed(QTime &t) +{ + int n = t.msecsTo(currentTime()); + if (n < 0) // passed midnight + n += 86400 * 1000; + return n; +} + +int QmlGraphicsItemPrivate::restart(QTime &t) +{ + QTime time = currentTime(); + int n = t.msecsTo(time); + if (n < 0) // passed midnight + n += 86400*1000; + t = time; + return n; +} + +#include "qmlgraphicsitem.moc" +#include "moc_qmlgraphicsitem.cpp" + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsKeysAttached) +QML_DECLARE_TYPEINFO(QmlGraphicsKeysAttached, QML_HAS_ATTACHED_PROPERTIES) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Keys,QmlGraphicsKeysAttached) +QML_DECLARE_TYPE(QmlGraphicsKeyNavigationAttached) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,KeyNavigation,QmlGraphicsKeyNavigationAttached) + diff --git a/src/declarative/graphicsitems/qmlgraphicsitem.h b/src/declarative/graphicsitems/qmlgraphicsitem.h new file mode 100644 index 0000000..bdfc245 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsitem.h @@ -0,0 +1,237 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSITEM_H +#define QMLGRAPHICSITEM_H + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlState; +class QmlGraphicsAnchorLine; +class QmlTransition; +class QmlGraphicsKeyEvent; +class QmlGraphicsAnchors; +class QmlGraphicsItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsItem : public QGraphicsObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QmlGraphicsItem * parent READ parentItem WRITE setParentItem NOTIFY parentChanged DESIGNABLE false FINAL) + Q_PROPERTY(QmlList *data READ data DESIGNABLE false) + Q_PROPERTY(QmlList* children READ fxChildren DESIGNABLE false) + Q_PROPERTY(QmlList* resources READ resources DESIGNABLE false) + Q_PROPERTY(QmlList* states READ states DESIGNABLE false) + Q_PROPERTY(QmlList* transitions READ transitions DESIGNABLE false) + Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) + Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged RESET resetWidth FINAL) + Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged RESET resetHeight FINAL) + Q_PROPERTY(QRectF childrenRect READ childrenRect NOTIFY childrenRectChanged DESIGNABLE false FINAL) + Q_PROPERTY(QmlGraphicsAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine left READ left CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine right READ right CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine top READ top CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine bottom READ bottom CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) + Q_PROPERTY(QmlGraphicsAnchorLine baseline READ baseline CONSTANT FINAL) + Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged) + Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY + Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL) + Q_PROPERTY(bool wantsFocus READ wantsFocus NOTIFY wantsFocusChanged) + Q_PROPERTY(QmlList* transform READ transform DESIGNABLE false FINAL) + Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin) + Q_PROPERTY(bool smooth READ smoothTransform WRITE setSmoothTransform) + Q_PROPERTY(QGraphicsEffect *effect READ graphicsEffect WRITE setGraphicsEffect) + Q_ENUMS(TransformOrigin) + Q_CLASSINFO("DefaultProperty", "data") + +public: + enum TransformOrigin { + TopLeft, Top, TopRight, + Left, Center, Right, + BottomLeft, Bottom, BottomRight + }; + + QmlGraphicsItem(QmlGraphicsItem *parent = 0); + virtual ~QmlGraphicsItem(); + + QmlGraphicsItem *parentItem() const; + void setParentItem(QmlGraphicsItem *parent); + void setParent(QmlGraphicsItem *parent) { setParentItem(parent); } + + QmlList *data(); + QmlList *fxChildren(); + QmlList *resources(); + + QmlGraphicsAnchors *anchors(); + QRectF childrenRect(); + + bool clip() const; + void setClip(bool); + + QmlList* states(); + QmlList* transitions(); + + QString state() const; + void setState(const QString &); + + qreal baselineOffset() const; + void setBaselineOffset(qreal); + + QmlList *transform(); + + qreal width() const; + void setWidth(qreal); + void resetWidth(); + qreal implicitWidth() const; + + qreal height() const; + void setHeight(qreal); + void resetHeight(); + qreal implicitHeight() const; + + TransformOrigin transformOrigin() const; + void setTransformOrigin(TransformOrigin); + + bool smoothTransform() const; + void setSmoothTransform(bool); + + QRectF boundingRect() const; + virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + bool wantsFocus() const; + bool hasFocus() const; + void setFocus(bool); + + bool keepMouseGrab() const; + void setKeepMouseGrab(bool); + +Q_SIGNALS: + void widthChanged(); + void heightChanged(); + void childrenRectChanged(); + void baselineOffsetChanged(); + void stateChanged(const QString &); + void focusChanged(); + void wantsFocusChanged(); + void parentChanged(); + +protected: + bool isComponentComplete() const; + virtual bool sceneEvent(QEvent *); + virtual bool event(QEvent *); + virtual QVariant itemChange(GraphicsItemChange, const QVariant &); + + void setImplicitWidth(qreal); + bool widthValid() const; // ### better name? + void setImplicitHeight(qreal); + bool heightValid() const; // ### better name? + + virtual void classBegin(); + virtual void componentComplete(); + virtual void focusChanged(bool); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void inputMethodEvent(QInputMethodEvent *); + virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + +protected: + QmlGraphicsItem(QmlGraphicsItemPrivate &dd, QmlGraphicsItem *parent = 0); + +private: + // ### public? + QmlGraphicsAnchorLine left() const; + QmlGraphicsAnchorLine right() const; + QmlGraphicsAnchorLine horizontalCenter() const; + QmlGraphicsAnchorLine top() const; + QmlGraphicsAnchorLine bottom() const; + QmlGraphicsAnchorLine verticalCenter() const; + QmlGraphicsAnchorLine baseline() const; + + friend class QmlStatePrivate; + friend class QmlGraphicsAnchors; + Q_DISABLE_COPY(QmlGraphicsItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsItem) +}; + +template + T qobject_cast(QGraphicsObject *o) +{ + QObject *obj = o; + return qobject_cast(obj); +} + +// ### move to QGO +template +T qobject_cast(QGraphicsItem *item) +{ + if (!item) return 0; + QObject *o = item->toGraphicsObject(); + return qobject_cast(o); +} + +QDebug Q_DECLARATIVE_EXPORT operator<<(QDebug debug, QmlGraphicsItem *item); + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsItem) +QML_DECLARE_TYPE(QGraphicsTransform) +QML_DECLARE_TYPE(QGraphicsScale) +QML_DECLARE_TYPE(QGraphicsRotation) + +QT_END_HEADER + +#endif // QMLGRAPHICSITEM_H diff --git a/src/declarative/graphicsitems/qmlgraphicsitem_p.h b/src/declarative/graphicsitems/qmlgraphicsitem_p.h new file mode 100644 index 0000000..f98c121 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsitem_p.h @@ -0,0 +1,245 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSITEM_P_H +#define QMLGRAPHICSITEM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QmlGraphicsItemKeyFilter; + +//### merge into private? +class QmlGraphicsContents : public QObject +{ + Q_OBJECT +public: + QmlGraphicsContents(); + + QRectF rectF() const; + + void setItem(QmlGraphicsItem *item); + +public Q_SLOTS: + void calcHeight(); + void calcWidth(); + +Q_SIGNALS: + void rectChanged(); + +private: + QmlGraphicsItem *m_item; + qreal m_x; + qreal m_y; + qreal m_width; + qreal m_height; +}; + +class QmlGraphicsItemPrivate : public QGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsItem) + +public: + QmlGraphicsItemPrivate() + : _anchors(0), _contents(0), + _baselineOffset(0), + _anchorLines(0), + _stateGroup(0), origin(QmlGraphicsItem::TopLeft), + widthValid(false), heightValid(false), + _componentComplete(true), _keepMouse(false), + smooth(false), keyHandler(0), + width(0), height(0), implicitWidth(0), implicitHeight(0) + {} + ~QmlGraphicsItemPrivate() + { delete _anchors; } + + void init(QmlGraphicsItem *parent) + { + Q_Q(QmlGraphicsItem); + + if (parent) + q->setParentItem(parent); + _baselineOffset.invalidate(); + q->setAcceptedMouseButtons(Qt::NoButton); + q->setFlags(QGraphicsItem::ItemHasNoContents | + QGraphicsItem::ItemIsFocusable | + QGraphicsItem::ItemNegativeZStacksBehindParent); + mouseSetsFocus = false; + } + + QString _id; + + // data property + void data_removeAt(int); + int data_count() const; + void data_append(QObject *); + void data_insert(int, QObject *); + QObject *data_at(int) const; + void data_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, data) + + // resources property + void resources_removeAt(int); + int resources_count() const; + void resources_append(QObject *); + void resources_insert(int, QObject *); + QObject *resources_at(int) const; + void resources_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QObject *, resources) + + // children property + void children_removeAt(int); + int children_count() const; + void children_append(QmlGraphicsItem *); + void children_insert(int, QmlGraphicsItem *); + QmlGraphicsItem *children_at(int) const; + void children_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QmlGraphicsItem *, children) + + // transform property + void transform_removeAt(int); + int transform_count() const; + void transform_append(QGraphicsTransform *); + void transform_insert(int, QGraphicsTransform *); + QGraphicsTransform *transform_at(int) const; + void transform_clear(); + QML_DECLARE_LIST_PROXY(QmlGraphicsItemPrivate, QGraphicsTransform *, transform) + + QmlGraphicsAnchors *anchors() { + if (!_anchors) { + Q_Q(QmlGraphicsItem); + _anchors = new QmlGraphicsAnchors; + _anchors->setItem(q); + if (!_componentComplete) + _anchors->classBegin(); + } + return _anchors; + } + QList dependantAnchors; + QmlGraphicsAnchors *_anchors; + QmlGraphicsContents *_contents; + + QmlNullableValue _baselineOffset; + + struct AnchorLines { + AnchorLines(QmlGraphicsItem *); + QmlGraphicsAnchorLine left; + QmlGraphicsAnchorLine right; + QmlGraphicsAnchorLine hCenter; + QmlGraphicsAnchorLine top; + QmlGraphicsAnchorLine bottom; + QmlGraphicsAnchorLine vCenter; + QmlGraphicsAnchorLine baseline; + }; + mutable AnchorLines *_anchorLines; + AnchorLines *anchorLines() const { + Q_Q(const QmlGraphicsItem); + if (!_anchorLines) _anchorLines = + new AnchorLines(const_cast(q)); + return _anchorLines; + } + + QmlStateGroup *states(); + QmlStateGroup *_stateGroup; + + QmlGraphicsItem::TransformOrigin origin:4; + bool widthValid:1; + bool heightValid:1; + bool _componentComplete:1; + bool _keepMouse:1; + bool smooth:1; + + QmlGraphicsItemKeyFilter *keyHandler; + + qreal width; + qreal height; + qreal implicitWidth; + qreal implicitHeight; + + QPointF computeTransformOrigin() const; + + virtual void setPosHelper(const QPointF &pos) + { + Q_Q(QmlGraphicsItem); + QRectF oldGeometry(this->pos.x(), this->pos.y(), width, height); + QGraphicsItemPrivate::setPosHelper(pos); + q->geometryChanged(QRectF(this->pos.x(), this->pos.y(), width, height), oldGeometry); + } + + // Reimplemented from QGraphicsItemPrivate + virtual void subFocusItemChange() + { + emit q_func()->wantsFocusChanged(); + } + + static int consistentTime; + static QTime currentTime(); + static void Q_DECLARATIVE_EXPORT setConsistentTime(int t); + static void start(QTime &); + static int elapsed(QTime &); + static int restart(QTime &); +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSITEM_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicslayoutitem.cpp b/src/declarative/graphicsitems/qmlgraphicslayoutitem.cpp new file mode 100644 index 0000000..45420ed --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicslayoutitem.cpp @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicslayoutitem_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LayoutItem,QmlGraphicsLayoutItem) + +/*! + \qmlclass LayoutItem QmlGraphicsLayoutItem + \brief The LayoutItem element allows you to place your Fluid UI elements inside a classical Qt layout. +*/ + +/*! + \internal + \class QmlGraphicsLayoutItem + \brief The QmlGraphicsLayoutItem class allows you to place your Fluid UI elements inside a classical Qt layout. +*/ + + +/*! + \qmlproperty QSizeF LayoutItem::maximumSize + + The maximumSize property can be set to specify the maximum desired size of this LayoutItem +*/ + +/*! + \qmlproperty QSizeF LayoutItem::minimumSize + + The minimumSize property can be set to specify the minimum desired size of this LayoutItem +*/ + +/*! + \qmlproperty QSizeF LayoutItem::preferredSize + + The preferredSize property can be set to specify the preferred size of this LayoutItem +*/ + +QmlGraphicsLayoutItem::QmlGraphicsLayoutItem(QmlGraphicsItem* parent) + : QmlGraphicsItem(parent), m_maximumSize(INT_MAX,INT_MAX), m_minimumSize(0,0), m_preferredSize(0,0) +{ + setGraphicsItem(this); +} + +void QmlGraphicsLayoutItem::setGeometry(const QRectF & rect) +{ + setX(rect.x()); + setY(rect.y()); + setWidth(rect.width()); + setHeight(rect.height()); +} + +QSizeF QmlGraphicsLayoutItem::sizeHint(Qt::SizeHint w, const QSizeF &constraint) const +{ + Q_UNUSED(constraint); + if(w == Qt::MinimumSize){ + return m_minimumSize; + }else if(w == Qt::MaximumSize){ + return m_maximumSize; + }else{ + return m_preferredSize; + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicslayoutitem_p.h b/src/declarative/graphicsitems/qmlgraphicslayoutitem_p.h new file mode 100644 index 0000000..35905b5 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicslayoutitem_p.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#define QMLGRAPHICSGRAPHICSLAYOUTITEM_H +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsLayoutItem : public QmlGraphicsItem, public QGraphicsLayoutItem +{ + Q_OBJECT + Q_INTERFACES(QGraphicsLayoutItem) + Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged) + Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged) + Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize NOTIFY preferredSizeChanged) +public: + QmlGraphicsLayoutItem(QmlGraphicsItem* parent=0); + + QSizeF maximumSize() const { return m_maximumSize; } + void setMaximumSize(const QSizeF &s) { if(s==m_maximumSize) return; m_maximumSize = s; emit maximumSizeChanged(); } + + QSizeF minimumSize() const { return m_minimumSize; } + void setMinimumSize(const QSizeF &s) { if(s==m_minimumSize) return; m_minimumSize = s; emit minimumSizeChanged(); } + + QSizeF preferredSize() const { return m_preferredSize; } + void setPreferredSize(const QSizeF &s) { if(s==m_preferredSize) return; m_preferredSize = s; emit preferredSizeChanged(); } + + virtual void setGeometry(const QRectF & rect); +protected: + virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; + +Q_SIGNALS: + void maximumSizeChanged(); + void minimumSizeChanged(); + void preferredSizeChanged(); + +private: + QSizeF m_maximumSize; + QSizeF m_minimumSize; + QSizeF m_preferredSize; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsLayoutItem) + +QT_END_HEADER +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp new file mode 100644 index 0000000..dc8bab2 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp @@ -0,0 +1,2036 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "private/qmlgraphicsflickable_p_p.h" +#include +#include +#include "qmlgraphicsvisualitemmodel_p.h" +#include "qmlgraphicslistview_p.h" +#include + +#include + +QT_BEGIN_NAMESPACE +class QmlGraphicsListViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsListViewAttached(QObject *parent) + : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {} + ~QmlGraphicsListViewAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(QmlGraphicsListView *view READ view CONSTANT) + QmlGraphicsListView *view() { return m_view; } + + Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged) + bool isCurrentItem() const { return m_isCurrent; } + void setIsCurrentItem(bool c) { + if (m_isCurrent != c) { + m_isCurrent = c; + emit currentItemChanged(); + } + } + + Q_PROPERTY(QString prevSection READ prevSection NOTIFY prevSectionChanged) + QString prevSection() const { return m_prevSection; } + void setPrevSection(const QString §) { + if (m_prevSection != sect) { + m_prevSection = sect; + emit prevSectionChanged(); + } + } + + Q_PROPERTY(QString section READ section NOTIFY sectionChanged) + QString section() const { return m_section; } + void setSection(const QString §) { + if (m_section != sect) { + m_section = sect; + emit sectionChanged(); + } + } + + Q_PROPERTY(bool delayRemove READ delayRemove WRITE setDelayRemove NOTIFY delayRemoveChanged) + bool delayRemove() const { return m_delayRemove; } + void setDelayRemove(bool delay) { + if (m_delayRemove != delay) { + m_delayRemove = delay; + emit delayRemoveChanged(); + } + } + + static QmlGraphicsListViewAttached *properties(QObject *obj) { + QmlGraphicsListViewAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsListViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + + void emitAdd() { emit add(); } + void emitRemove() { emit remove(); } + +Q_SIGNALS: + void currentItemChanged(); + void sectionChanged(); + void prevSectionChanged(); + void delayRemoveChanged(); + void add(); + void remove(); + +public: + QmlGraphicsListView *m_view; + bool m_isCurrent; + mutable QString m_section; + QString m_prevSection; + bool m_delayRemove; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsListViewAttached::attachedProperties; + +//---------------------------------------------------------------------------- + +class FxListItem +{ +public: + FxListItem(QmlGraphicsItem *i, QmlGraphicsListView *v) : item(i), view(v) { + attached = QmlGraphicsListViewAttached::properties(item); + attached->m_view = view; + } + ~FxListItem() {} + + qreal position() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->y() : item->x()); } + int size() const { return (view->orientation() == QmlGraphicsListView::Vertical ? item->height() : item->width()); } + qreal endPosition() const { + return (view->orientation() == QmlGraphicsListView::Vertical + ? item->y() + (item->height() > 0 ? item->height() : 1) + : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; + } + void setPosition(qreal pos) { + if (view->orientation() == QmlGraphicsListView::Vertical) { + item->setY(pos); + } else { + item->setX(pos); + } + } + + QmlGraphicsItem *item; + QmlGraphicsListView *view; + QmlGraphicsListViewAttached *attached; + int index; +}; + +//---------------------------------------------------------------------------- + +class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsListView) + +public: + QmlGraphicsListViewPrivate() + : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical) + , visiblePos(0), visibleIndex(0) + , averageSize(100.0), currentIndex(-1), requestedIndex(-1) + , highlightRangeStart(0), highlightRangeEnd(0) + , highlightComponent(0), highlight(0), trackedItem(0) + , moveReason(Other), buffer(0), highlightPosAnimator(0), highlightSizeAnimator(0), spacing(0.0) + , highlightMoveSpeed(400), highlightResizeSpeed(400), highlightRange(QmlGraphicsListView::NoHighlightRange) + , ownModel(false), wrap(false), autoHighlight(true) + , haveHighlightRange(false) + {} + + void init(); + void clear(); + FxListItem *createItem(int modelIndex); + void releaseItem(FxListItem *item); + + FxListItem *visibleItem(int modelIndex) const { + if (modelIndex >= visibleIndex && modelIndex < visibleIndex + visibleItems.count()) { + for (int i = modelIndex - visibleIndex; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems.at(i); + if (item->index == modelIndex) + return item; + } + } + return 0; + } + + qreal position() const { + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->viewportY() : q->viewportX(); + } + void setPosition(qreal pos) { + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) + q->setViewportY(pos); + else + q->setViewportX(pos); + } + qreal size() const { + Q_Q(const QmlGraphicsListView); + return orient == QmlGraphicsListView::Vertical ? q->height() : q->width(); + } + + qreal startPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) { + pos = visibleItems.first()->position(); + if (visibleIndex > 0) + pos -= visibleIndex * (averageSize + spacing) - spacing; + } + return pos; + } + + qreal endPosition() const { + qreal pos = 0; + if (!visibleItems.isEmpty()) { + int invisibleCount = visibleItems.count() - visibleIndex; + for (int i = visibleItems.count()-1; i >= 0; --i) { + if (visibleItems.at(i)->index != -1) { + invisibleCount = model->count() - visibleItems.at(i)->index - 1; + break; + } + } + pos = visibleItems.last()->endPosition() + invisibleCount * (averageSize + spacing); + } + return pos; + } + + qreal positionAt(int modelIndex) const { + if (FxListItem *item = visibleItem(modelIndex)) + return item->position(); + if (!visibleItems.isEmpty()) { + if (modelIndex < visibleIndex) { + int count = visibleIndex - modelIndex; + return visibleItems.first()->position() - count * (averageSize + spacing); + } else { + int idx = visibleItems.count() - 1; + while (idx >= 0 && visibleItems.at(idx)->index == -1) + --idx; + if (idx < 0) + idx = visibleIndex; + else + idx = visibleItems.at(idx)->index; + int count = modelIndex - idx - 1; + return visibleItems.last()->endPosition() + spacing + count * (averageSize + spacing) + 1; + } + } + return 0; + } + + QString sectionAt(int modelIndex) { + Q_Q(QmlGraphicsListView); + if (FxListItem *item = visibleItem(modelIndex)) + return item->attached->section(); + QString section; + if (!sectionExpression.isEmpty()) + section = model->evaluate(modelIndex, sectionExpression, q).toString(); + return section; + } + + bool isValid() const { + return model && model->count() && model->isValid(); + } + + int snapIndex() { + int index = currentIndex; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems[i]; + if (item->index == -1) + continue; + qreal itemTop = item->position(); + if (itemTop >= highlight->position()-item->size()/2 && itemTop < highlight->position()+item->size()/2) + return item->index; + } + return index; + } + + //XXX Rough. Only works for fixed size items. + qreal snapPosAt(qreal pos) { + return qRound((pos - startPosition()) / averageSize) * averageSize + startPosition(); + } + + int lastVisibleIndex() const { + int lastIndex = -1; + for (int i = visibleItems.count()-1; i >= 0; --i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index != -1) { + lastIndex = listItem->index; + break; + } + } + return lastIndex; + } + + // map a model index to visibleItems index. + // These may differ if removed items are still present in the visible list, + // e.g. doing a removal animation + int mapFromModel(int modelIndex) const { + if (modelIndex < visibleIndex || modelIndex >= visibleIndex + visibleItems.count()) + return -1; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index == modelIndex) + return i + visibleIndex; + if (listItem->index > modelIndex) + return -1; + } + return -1; // Not in visibleList + } + + bool mapRangeFromModel(int &index, int &count) const { + if (index + count < visibleIndex) + return false; + + int lastIndex = -1; + for (int i = visibleItems.count()-1; i >= 0; --i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index != -1) { + lastIndex = listItem->index; + break; + } + } + + if (index > lastIndex) + return false; + + int last = qMin(index + count - 1, lastIndex); + index = qMax(index, visibleIndex); + count = last - index + 1; + + return true; + } + + void updateViewport() { + Q_Q(QmlGraphicsListView); + if (orient == QmlGraphicsListView::Vertical) + q->setViewportHeight(endPosition() - startPosition()); + else + q->setViewportWidth(endPosition() - startPosition()); + } + + + // for debugging only + void checkVisible() const { + int skip = 0; + for (int i = 0; i < visibleItems.count(); ++i) { + FxListItem *listItem = visibleItems.at(i); + if (listItem->index == -1) { + ++skip; + } else if (listItem->index != visibleIndex + i - skip) { + qFatal("index %d %d %d", visibleIndex, i, listItem->index); + } + } + } + + void refill(qreal from, qreal to); + void layout(); + void updateUnrequestedIndexes(); + void updateUnrequestedPositions(); + void updateTrackedItem(); + void createHighlight(); + void updateHighlight(); + void updateSections(); + void updateCurrentSection(); + void updateCurrent(int); + void updateAverage(); + void fixupPosition(); + virtual void fixupY(); + virtual void fixupX(); + virtual void flickX(qreal velocity); + virtual void flickY(qreal velocity); + + QmlGraphicsVisualModel *model; + QVariant modelVariant; + QList visibleItems; + QHash unrequestedItems; + FxListItem *currentItem; + QmlGraphicsListView::Orientation orient; + int visiblePos; + int visibleIndex; + qreal averageSize; + int currentIndex; + int requestedIndex; + qreal highlightRangeStart; + qreal highlightRangeEnd; + QmlComponent *highlightComponent; + FxListItem *highlight; + FxListItem *trackedItem; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; + int buffer; + QmlEaseFollow *highlightPosAnimator; + QmlEaseFollow *highlightSizeAnimator; + QString sectionExpression; + QString currentSection; + qreal spacing; + qreal highlightMoveSpeed; + qreal highlightResizeSpeed; + QmlGraphicsListView::HighlightRangeMode highlightRange; + + bool ownModel : 1; + bool wrap : 1; + bool autoHighlight : 1; + bool haveHighlightRange : 1; +}; + +void QmlGraphicsListViewPrivate::init() +{ + Q_Q(QmlGraphicsListView); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + QObject::connect(q, SIGNAL(heightChanged()), q, SLOT(refill())); + QObject::connect(q, SIGNAL(widthChanged()), q, SLOT(refill())); +} + +void QmlGraphicsListViewPrivate::clear() +{ + for (int i = 0; i < visibleItems.count(); ++i) + releaseItem(visibleItems.at(i)); + visibleItems.clear(); + visiblePos = 0; + visibleIndex = 0; + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + createHighlight(); + trackedItem = 0; +} + +FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex) +{ + Q_Q(QmlGraphicsListView); + // create object + requestedIndex = modelIndex; + FxListItem *listItem = 0; + if (QmlGraphicsItem *item = model->item(modelIndex, false)) { + listItem = new FxListItem(item, q); + listItem->index = modelIndex; + // initialise attached properties + if (!sectionExpression.isEmpty()) { + QmlExpression e(qmlContext(listItem->item), sectionExpression, q); + e.setTrackChange(false); + listItem->attached->m_section = e.value().toString(); + if (modelIndex > 0) { + if (FxListItem *item = visibleItem(modelIndex-1)) + listItem->attached->m_prevSection = item->attached->section(); + else + listItem->attached->m_prevSection = sectionAt(modelIndex-1); + } + } + // complete + model->completeItem(); + listItem->item->setZValue(1); + listItem->item->setParent(q->viewport()); + if (orient == QmlGraphicsListView::Vertical) + QObject::connect(listItem->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); + else + QObject::connect(listItem->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); + } + requestedIndex = -1; + + return listItem; +} + +void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item) +{ + Q_Q(QmlGraphicsListView); + if (!item) + return; + if (trackedItem == item) { + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + if (model->release(item->item) == 0) { + // item was not destroyed, and we no longer reference it. + unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + if (orient == QmlGraphicsListView::Vertical) + QObject::disconnect(item->item, SIGNAL(heightChanged()), q, SLOT(itemResized())); + else + QObject::disconnect(item->item, SIGNAL(widthChanged()), q, SLOT(itemResized())); + } + delete item; +} + +void QmlGraphicsListViewPrivate::refill(qreal from, qreal to) +{ + Q_Q(QmlGraphicsListView); + if (!isValid() || !q->isComponentComplete()) + return; + from -= buffer; + to += buffer; + int modelIndex = 0; + qreal itemEnd = visiblePos-1; + if (!visibleItems.isEmpty()) { + visiblePos = visibleItems.first()->position(); + itemEnd = visibleItems.last()->endPosition() + spacing; + int i = visibleItems.count() - 1; + while (i > 0 && visibleItems.at(i)->index == -1) + --i; + modelIndex = visibleItems.at(i)->index + 1; + } + + bool changed = false; + FxListItem *item = 0; + int pos = itemEnd + 1; + while (modelIndex < model->count() && pos <= to) { + //qDebug() << "refill: append item" << modelIndex; + if (!(item = createItem(modelIndex))) + break; + item->setPosition(pos); + pos += item->size() + spacing; + visibleItems.append(item); + ++modelIndex; + changed = true; + } + while (visibleIndex > 0 && visibleIndex <= model->count() && visiblePos > from) { + //qDebug() << "refill: prepend item" << visibleIndex-1 << "current top pos" << visiblePos; + if (!(item = createItem(visibleIndex-1))) + break; + --visibleIndex; + visiblePos -= item->size() + spacing; + item->setPosition(visiblePos); + visibleItems.prepend(item); + changed = true; + } + + while (visibleItems.count() > 1 && (item = visibleItems.first()) && item->endPosition() < from) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove first" << visibleIndex << "top end pos" << item->endPosition(); + if (item->index != -1) + visibleIndex++; + visibleItems.removeFirst(); + releaseItem(item); + changed = true; + } + while (visibleItems.count() > 1 && (item = visibleItems.last()) && item->position() > to) { + if (item->attached->delayRemove()) + break; + //qDebug() << "refill: remove last" << visibleIndex+visibleItems.count()-1; + visibleItems.removeLast(); + releaseItem(item); + changed = true; + } + if (changed) { + if (visibleItems.count()) + visiblePos = visibleItems.first()->position(); + updateAverage(); + if (!sectionExpression.isEmpty()) + updateCurrentSection(); + updateViewport(); + } +} + +void QmlGraphicsListViewPrivate::layout() +{ + Q_Q(QmlGraphicsListView); + if (!visibleItems.isEmpty()) { + int oldEnd = visibleItems.last()->endPosition(); + int pos = visibleItems.first()->endPosition() + spacing + 1; + for (int i=1; i < visibleItems.count(); ++i) { + FxListItem *item = visibleItems.at(i); + item->setPosition(pos); + pos += item->size() + spacing; + } + // move current item if it is after the visible items. + if (currentItem && currentIndex > lastVisibleIndex()) + currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd)); + } + if (!isValid()) + return; + q->refill(); + updateHighlight(); + fixupPosition(); + updateUnrequestedPositions(); + updateViewport(); +} + +void QmlGraphicsListViewPrivate::updateUnrequestedIndexes() +{ + Q_Q(QmlGraphicsListView); + QHash::iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) + *it = model->indexOf(it.key(), q); +} + +void QmlGraphicsListViewPrivate::updateUnrequestedPositions() +{ + QHash::const_iterator it; + for (it = unrequestedItems.begin(); it != unrequestedItems.end(); ++it) { + if (visibleItem(*it)) + continue; + if (orient == QmlGraphicsListView::Vertical) + it.key()->setY(positionAt(*it)); + else + it.key()->setX(positionAt(*it)); + } +} + +void QmlGraphicsListViewPrivate::updateTrackedItem() +{ + Q_Q(QmlGraphicsListView); + FxListItem *item = currentItem; + if (highlight) + item = highlight; + + FxListItem *oldTracked = trackedItem; + + const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged()); + const char *notifier2 = orient == QmlGraphicsListView::Vertical ? SIGNAL(heightChanged()) : SIGNAL(widthChanged()); + + if (trackedItem && item != trackedItem) { + QObject::disconnect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::disconnect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + trackedItem = 0; + } + + if (!trackedItem && item) { + trackedItem = item; + QObject::connect(trackedItem->item, notifier1, q, SLOT(trackedPositionChanged())); + QObject::connect(trackedItem->item, notifier2, q, SLOT(trackedPositionChanged())); + } + if (trackedItem && trackedItem != oldTracked) + q->trackedPositionChanged(); +} + +void QmlGraphicsListViewPrivate::createHighlight() +{ + Q_Q(QmlGraphicsListView); + if (highlight) { + if (trackedItem == highlight) + trackedItem = 0; + delete highlight->item; + delete highlight; + highlight = 0; + delete highlightPosAnimator; + delete highlightSizeAnimator; + highlightPosAnimator = 0; + highlightSizeAnimator = 0; + } + + if (currentItem) { + QmlGraphicsItem *item = 0; + if (highlightComponent) { + QmlContext *highlightContext = new QmlContext(qmlContext(q)); + QObject *nobj = highlightComponent->create(highlightContext); + if (nobj) { + highlightContext->setParent(nobj); + item = qobject_cast(nobj); + if (!item) { + delete nobj; + } else { + item->setParent(q->viewport()); + } + } else { + delete highlightContext; + } + } else { + item = new QmlGraphicsItem; + item->setParent(q->viewport()); + } + if (item) { + item->setZValue(0); + highlight = new FxListItem(item, q); + if (orient == QmlGraphicsListView::Vertical) + highlight->item->setHeight(currentItem->item->height()); + else + highlight->item->setWidth(currentItem->item->width()); + const QLatin1String posProp(orient == QmlGraphicsListView::Vertical ? "y" : "x"); + highlightPosAnimator = new QmlEaseFollow(q); + highlightPosAnimator->setTarget(QmlMetaProperty(highlight->item, posProp)); + highlightPosAnimator->setVelocity(highlightMoveSpeed); + highlightPosAnimator->setEnabled(autoHighlight); + const QLatin1String sizeProp(orient == QmlGraphicsListView::Vertical ? "height" : "width"); + highlightSizeAnimator = new QmlEaseFollow(q); + highlightSizeAnimator->setVelocity(highlightResizeSpeed); + highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); + highlightSizeAnimator->setEnabled(autoHighlight); + } + } +} + +void QmlGraphicsListViewPrivate::updateHighlight() +{ + if ((!currentItem && highlight) || (currentItem && !highlight)) + createHighlight(); + if (currentItem && autoHighlight && highlight && !moving) { + // auto-update highlight + highlightPosAnimator->setSourceValue(currentItem->position()); + highlightSizeAnimator->setSourceValue(currentItem->size()); + if (orient == QmlGraphicsListView::Vertical) { + if (highlight->item->width() == 0) + highlight->item->setWidth(currentItem->item->width()); + } else { + if (highlight->item->height() == 0) + highlight->item->setHeight(currentItem->item->height()); + } + } + updateTrackedItem(); +} + +void QmlGraphicsListViewPrivate::updateSections() +{ + if (!sectionExpression.isEmpty()) { + QString prevSection; + if (visibleIndex > 0) + prevSection = sectionAt(visibleIndex-1); + for (int i = 0; i < visibleItems.count(); ++i) { + if (visibleItems.at(i)->index != -1) { + QmlGraphicsListViewAttached *attached = visibleItems.at(i)->attached; + attached->setPrevSection(prevSection); + prevSection = attached->section(); + } + } + } +} + +void QmlGraphicsListViewPrivate::updateCurrentSection() +{ + if (sectionExpression.isEmpty() || visibleItems.isEmpty()) { + currentSection = QString(); + return; + } + int index = 0; + while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count()) + ++index; + + if (index < visibleItems.count()) + currentSection = visibleItems.at(index)->attached->section(); + else + currentSection = visibleItems.first()->attached->section(); +} + +void QmlGraphicsListViewPrivate::updateCurrent(int modelIndex) +{ + Q_Q(QmlGraphicsListView); + if (!isValid() || modelIndex < 0 || modelIndex >= model->count()) { + if (currentItem) { + currentItem->attached->setIsCurrentItem(false); + releaseItem(currentItem); + currentItem = 0; + currentIndex = -1; + updateHighlight(); + emit q->currentIndexChanged(); + } + return; + } + + if (currentItem && currentIndex == modelIndex) { + updateHighlight(); + return; + } + FxListItem *oldCurrentItem = currentItem; + currentIndex = modelIndex; + currentItem = createItem(modelIndex); + if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item)) + oldCurrentItem->attached->setIsCurrentItem(false); + if (currentItem) { + if (modelIndex == visibleIndex - 1) { + // We can calculate exact postion in this case + currentItem->setPosition(visibleItems.first()->position() - currentItem->size() - spacing); + } else { + // Create current item now and position as best we can. + // Its position will be corrected when it becomes visible. + currentItem->setPosition(positionAt(modelIndex)); + } + currentItem->item->setFocus(true); + currentItem->attached->setIsCurrentItem(true); + } + updateHighlight(); + emit q->currentIndexChanged(); + // Release the old current item + releaseItem(oldCurrentItem); +} + +void QmlGraphicsListViewPrivate::updateAverage() +{ + if (!visibleItems.count()) + return; + qreal sum = 0.0; + for (int i = 0; i < visibleItems.count(); ++i) + sum += visibleItems.at(i)->size(); + averageSize = sum / visibleItems.count(); +} + +void QmlGraphicsListViewPrivate::fixupPosition() +{ + if (orient == QmlGraphicsListView::Vertical) + fixupY(); + else + fixupX(); +} + +void QmlGraphicsListViewPrivate::fixupY() +{ + QmlGraphicsFlickablePrivate::fixupY(); + if (orient == QmlGraphicsListView::Horizontal) + return; + + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { + if (currentItem && highlight && currentItem->position() != highlight->position()) { + moveReason = Mouse; + timeline.clear(); + timeline.move(_moveY, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); + } + } +} + +void QmlGraphicsListViewPrivate::fixupX() +{ + QmlGraphicsFlickablePrivate::fixupX(); + if (orient == QmlGraphicsListView::Vertical) + return; + + if (haveHighlightRange && highlightRange == QmlGraphicsListView::StrictlyEnforceRange) { + if (currentItem && highlight && currentItem->position() != highlight->position()) { + moveReason = Mouse; + timeline.clear(); + timeline.move(_moveX, -(currentItem->position() - highlightRangeStart), QEasingCurve(QEasingCurve::InOutQuad), 200); + } + } +} + +void QmlGraphicsListViewPrivate::flickX(qreal velocity) +{ + Q_Q(QmlGraphicsListView); + + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickX(velocity); + return; + } + + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveX.value() < q->minXExtent()) + maxDistance = qAbs(q->minXExtent() -_moveX.value() + (overShoot?30:0)); + flickTargetX = q->minXExtent(); + } else { + if (_moveX.value() > q->maxXExtent()) + maxDistance = qAbs(q->maxXExtent() - _moveX.value()) + (overShoot?30:0); + flickTargetX = q->maxXExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + qreal accel = deceleration; + qreal v2 = v * v; + qreal maxAccel = v2 / (2.0f * maxDistance); + if (maxAccel < accel) { + // If we are not flicking to the end then attempt to stop exactly on an item boundary + qreal dist = v2 / accel / 2.0; + if (v > 0) + dist = -dist; + dist = -_moveX.value() - snapPosAt(-(_moveX.value() - highlightRangeStart) + dist) + highlightRangeStart; + if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + timeline.reset(_moveX); + fixupX(); + return; + } + accel = v2 / (2.0f * qAbs(dist)); + } + timeline.reset(_moveX); + timeline.accel(_moveX, v, accel, maxDistance); + timeline.execute(fixupXEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveX); + fixupX(); + } +} + +void QmlGraphicsListViewPrivate::flickY(qreal velocity) +{ + Q_Q(QmlGraphicsListView); + + if (!haveHighlightRange || highlightRange != QmlGraphicsListView::StrictlyEnforceRange) { + QmlGraphicsFlickablePrivate::flickY(velocity); + return; + } + + qreal maxDistance = -1; + // -ve velocity means list is moving up + if (velocity > 0) { + if (_moveY.value() < q->minYExtent()) + maxDistance = qAbs(q->minYExtent() -_moveY.value() + (overShoot?30:0)); + flickTargetY = q->minYExtent(); + } else { + if (_moveY.value() > q->maxYExtent()) + maxDistance = qAbs(q->maxYExtent() - _moveY.value()) + (overShoot?30:0); + flickTargetY = q->maxYExtent(); + } + if (maxDistance > 0) { + qreal v = velocity; + if (maxVelocity != -1 && maxVelocity < qAbs(v)) { + if (v < 0) + v = -maxVelocity; + else + v = maxVelocity; + } + qreal accel = deceleration; + qreal v2 = v * v; + qreal maxAccel = v2 / (2.0f * maxDistance); + if (maxAccel < accel) { + // If we are not flicking to the end then attempt to stop exactly on an item boundary + qreal dist = v2 / accel / 2.0; + if (v > 0) + dist = -dist; + dist = -_moveY.value() - snapPosAt(-(_moveY.value() - highlightRangeStart) + dist) + highlightRangeStart; + if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + timeline.reset(_moveY); + fixupY(); + return; + } + accel = v2 / (2.0f * qAbs(dist)); + } + timeline.reset(_moveY); + timeline.accel(_moveY, v, accel, maxDistance); + timeline.execute(fixupYEvent); + if (!flicked) { + flicked = true; + emit q->flickingChanged(); + emit q->flickStarted(); + } + } else { + timeline.reset(_moveY); + fixupY(); + } +} + +//---------------------------------------------------------------------------- + +/*! + \qmlclass ListView QFxListView + \inherits Flickable + \brief The ListView item provides a list view of items provided by a model. + + The model is typically provided by a QAbstractListModel "C++ model object", + but can also be created directly in QML. The items are laid out vertically + or horizontally and may be flicked to scroll. + + The below example creates a very simple vertical list, using a QML model. + \image trivialListView.png + + The user interface defines a delegate to display an item, a highlight, + and the ListView which uses the above. + + \snippet doc/src/snippets/declarative/listview/listview.qml 3 + + The model is defined as a ListModel using QML: + \quotefile doc/src/snippets/declarative/listview/dummydata/ContactModel.qml + + In this case ListModel is a handy way for us to test our UI. In practice + the model would be implemented in C++, or perhaps via a SQL data source. +*/ + +QmlGraphicsListView::QmlGraphicsListView(QmlGraphicsItem *parent) + : QmlGraphicsFlickable(*(new QmlGraphicsListViewPrivate), parent) +{ + Q_D(QmlGraphicsListView); + d->init(); +} + +QmlGraphicsListView::~QmlGraphicsListView() +{ + Q_D(QmlGraphicsListView); + d->clear(); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlattachedproperty bool ListView::isCurrentItem + This attched property is true if this delegate is the current item; otherwise false. + + It is attached to each instance of the delegate. + + This property may be used to adjust the appearance of the current item, for example: + + \snippet doc/src/snippets/declarative/listview/highlight.qml 0 +*/ + +/*! + \qmlattachedproperty ListView ListView::view + This attached property holds the view that manages this delegate instance. + + It is attached to each instance of the delegate. +*/ + +/*! + \qmlattachedproperty string ListView::prevSection + This attached property holds the section of the previous element. + + It is attached to each instance of the delegate. + + The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. +*/ + +/*! + \qmlattachedproperty string ListView::section + This attached property holds the section of this element. + + It is attached to each instance of the delegate. + + The section is evaluated using the \l {ListView::sectionExpression}{sectionExpression} property. +*/ + +/*! + \qmlattachedproperty bool ListView::delayRemove + This attached property holds whether the delegate may be destroyed. + + It is attached to each instance of the delegate. + + It is sometimes necessary to delay the destruction of an item + until an animation completes. + + The example below ensures that the animation completes before + the item is removed from the list. + + \code + Component { + id: myDelegate + Item { + id: wrapper + ListView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } + } + } + } + \endcode +*/ + +/*! + \qmlattachedsignal ListView::onAdd() + This attached handler is called immediately after an item is added to the view. +*/ + +/*! + \qmlattachedsignal ListView::onRemove() + This attached handler is called immediately before an item is removed from the view. +*/ + +/*! + \qmlproperty model ListView::model + This property holds the model providing data for the list. + + The model provides a set of data that is used to create the items + for the view. For large or dynamic datasets the model is usually + provided by a C++ model object. The C++ model object must be a \l + {QAbstractItemModel} subclass or a simple list. + + Models can also be created directly in QML, using a \l{ListModel}, + \l{XmlListModel} or \l{VisualItemModel}. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsListView::model() const +{ + Q_D(const QmlGraphicsListView); + return d->modelVariant; +} + +void QmlGraphicsListView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsListView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + } + d->clear(); + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + if (d->currentIndex >= d->model->count() || d->currentIndex < 0) + setCurrentIndex(0); + else + d->updateCurrent(d->currentIndex); + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + refill(); + emit countChanged(); + } +} + +/*! + \qmlproperty component ListView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/listview/listview.qml 0 +*/ +QmlComponent *QmlGraphicsListView::delegate() const +{ + Q_D(const QmlGraphicsListView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsListView::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsListView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + d->updateCurrent(d->currentIndex); + refill(); + } +} + +/*! + \qmlproperty int ListView::currentIndex + \qmlproperty Item ListView::currentItem + + \c currentIndex holds the index of the current item. + \c currentItem is the current item. Note that the position of the current item + may only be approximate until it becomes visible in the view. +*/ +int QmlGraphicsListView::currentIndex() const +{ + Q_D(const QmlGraphicsListView); + return d->currentIndex; +} + +void QmlGraphicsListView::setCurrentIndex(int index) +{ + Q_D(QmlGraphicsListView); + d->moveReason = QmlGraphicsListViewPrivate::Other; + if (d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) { + cancelFlick(); + d->updateCurrent(index); + } else { + d->currentIndex = index; + } +} + +QmlGraphicsItem *QmlGraphicsListView::currentItem() +{ + Q_D(QmlGraphicsListView); + if (!d->currentItem) + return 0; + return d->currentItem->item; +} + +/*! + \qmlproperty int ListView::count + This property holds the number of items in the view. +*/ +int QmlGraphicsListView::count() const +{ + Q_D(const QmlGraphicsListView); + if (d->model) + return d->model->count(); + return 0; +} + +/*! + \qmlproperty component ListView::highlight + This property holds the component to use as the highlight. + + An instance of the highlight component will be created for each list. + The geometry of the resultant component instance will be managed by the list + so as to stay with the current item, unless the highlightFollowsCurrentItem + property is false. + + The below example demonstrates how to make a simple highlight + for a vertical list. + + \snippet doc/src/snippets/declarative/listview/listview.qml 1 + \image trivialListView.png + + \sa highlightFollowsCurrentItem +*/ +QmlComponent *QmlGraphicsListView::highlight() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightComponent; +} + +void QmlGraphicsListView::setHighlight(QmlComponent *highlight) +{ + Q_D(QmlGraphicsListView); + delete d->highlightComponent; + d->highlightComponent = highlight; + d->updateCurrent(d->currentIndex); +} + +/*! + \qmlproperty bool ListView::highlightFollowsCurrentItem + This property holds whether the highlight is managed by the view. + + If highlightFollowsCurrentItem is true, the highlight will be moved smoothly + to follow the current item. If highlightFollowsCurrentItem is false, the + highlight will not be moved by the view, and must be implemented + by the highlight. The following example creates a highlight with + its motion defined by the spring \l {SpringFollow}: + + \snippet doc/src/snippets/declarative/listview/highlight.qml 1 + + Note that the highlight animation also affects the way that the view + is scrolled. This is because the view moves to maintain the + highlight within the preferred highlight range (or visible viewport). + + \sa highlight +*/ +bool QmlGraphicsListView::highlightFollowsCurrentItem() const +{ + Q_D(const QmlGraphicsListView); + return d->autoHighlight; +} + +void QmlGraphicsListView::setHighlightFollowsCurrentItem(bool autoHighlight) +{ + Q_D(QmlGraphicsListView); + d->autoHighlight = autoHighlight; + if (d->highlightPosAnimator) { + d->highlightPosAnimator->setEnabled(d->autoHighlight); + d->highlightSizeAnimator->setEnabled(d->autoHighlight); + } + d->updateHighlight(); +} + +/*! + \qmlproperty real ListView::preferredHighlightBegin + \qmlproperty real ListView::preferredHighlightEnd + \qmlproperty bool ListView::highlightRangeMode + + These properties set the preferred range of the highlight (current item) + within the view. + + If highlightRangeMode is set to \e ApplyRange the view will + attempt to maintain the highlight within the range, however + the highlight can move outside of the range at the ends of the list + or due to a mouse interaction. + + If highlightRangeMode is set to \e StrictlyEnforceRange the highlight will never + move outside of the range. This means that the current item will change + if a keyboard or mouse action would cause the highlight to move + outside of the range. + + The default value is \e NoHighlightRange. + + Note that a valid range requires preferredHighlightEnd to be greater + than or equal to preferredHighlightBegin. +*/ +qreal QmlGraphicsListView::preferredHighlightBegin() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRangeStart; +} + +void QmlGraphicsListView::setPreferredHighlightBegin(qreal start) +{ + Q_D(QmlGraphicsListView); + d->highlightRangeStart = start; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +qreal QmlGraphicsListView::preferredHighlightEnd() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRangeEnd; +} + +void QmlGraphicsListView::setPreferredHighlightEnd(qreal end) +{ + Q_D(QmlGraphicsListView); + d->highlightRangeEnd = end; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +QmlGraphicsListView::HighlightRangeMode QmlGraphicsListView::highlightRangeMode() const +{ + Q_D(const QmlGraphicsListView); + return d->highlightRange; +} + +void QmlGraphicsListView::setHighlightRangeMode(HighlightRangeMode mode) +{ + Q_D(QmlGraphicsListView); + d->highlightRange = mode; + d->haveHighlightRange = d->highlightRange != NoHighlightRange && d->highlightRangeStart <= d->highlightRangeEnd; +} + +/*! + \qmlproperty real ListView::spacing + + This property holds the spacing to leave between items. +*/ +qreal QmlGraphicsListView::spacing() const +{ + Q_D(const QmlGraphicsListView); + return d->spacing; +} + +void QmlGraphicsListView::setSpacing(qreal spacing) +{ + Q_D(QmlGraphicsListView); + if (spacing != d->spacing) { + d->spacing = spacing; + d->layout(); + emit spacingChanged(); + } +} + +/*! + \qmlproperty enumeration ListView::orientation + This property holds the orientation of the list. + + Possible values are \c Vertical (default) and \c Horizontal. + + Vertical Example: + \image trivialListView.png + Horizontal Example: + \image ListViewHorizontal.png +*/ +QmlGraphicsListView::Orientation QmlGraphicsListView::orientation() const +{ + Q_D(const QmlGraphicsListView); + return d->orient; +} + +void QmlGraphicsListView::setOrientation(QmlGraphicsListView::Orientation orientation) +{ + Q_D(QmlGraphicsListView); + if (d->orient != orientation) { + d->orient = orientation; + if (d->orient == QmlGraphicsListView::Vertical) + setViewportWidth(-1); + else + setViewportHeight(-1); + d->clear(); + refill(); + emit orientationChanged(); + d->updateCurrent(d->currentIndex); + } +} + +/*! + \qmlproperty bool ListView::keyNavigationWraps + This property holds whether the list wraps key navigation + + If this property is true then key presses to move off of one end of the list will cause the + current item to jump to the other end. +*/ +bool QmlGraphicsListView::isWrapEnabled() const +{ + Q_D(const QmlGraphicsListView); + return d->wrap; +} + +void QmlGraphicsListView::setWrapEnabled(bool wrap) +{ + Q_D(QmlGraphicsListView); + d->wrap = wrap; +} + +/*! + \qmlproperty int ListView::cacheBuffer + This property holds the number of off-screen pixels to cache. + + This property determines the number of pixels above the top of the list + and below the bottom of the list to cache. Setting this value can make + scrolling the list smoother at the expense of additional memory usage. +*/ +int QmlGraphicsListView::cacheBuffer() const +{ + Q_D(const QmlGraphicsListView); + return d->buffer; +} + +void QmlGraphicsListView::setCacheBuffer(int b) +{ + Q_D(QmlGraphicsListView); + if (d->buffer != b) { + d->buffer = b; + if (isComponentComplete()) + refill(); + } +} + +/*! + \qmlproperty string ListView::sectionExpression + This property holds the expression to be evaluated for the section attached property. + + Each item in the list has attached properties named \c ListView.section and + \c ListView.prevSection. These may be used to place a section header for + related items. The example below assumes that the model is sorted by size of + pet. The section expression is the size property. If \c ListView.section and + \c ListView.prevSection differ, the item will display a section header. + + \snippet examples/declarative/listview/sections.qml 0 + + \image ListViewSections.png +*/ +QString QmlGraphicsListView::sectionExpression() const +{ + Q_D(const QmlGraphicsListView); + return d->sectionExpression; +} + +void QmlGraphicsListView::setSectionExpression(const QString &expression) +{ + Q_D(QmlGraphicsListView); + if (d->sectionExpression != expression) { + d->sectionExpression = expression; + emit sectionExpressionChanged(); + } +} + +QString QmlGraphicsListView::currentSection() const +{ + Q_D(const QmlGraphicsListView); + return d->currentSection; +} + +/*! + \qmlproperty real ListView::highlightMoveSpeed + + This property holds the moving animation speed of the highlight delegate. +*/ +qreal QmlGraphicsListView::highlightMoveSpeed() const +{ + Q_D(const QmlGraphicsListView);\ + return d->highlightMoveSpeed; +} + +void QmlGraphicsListView::setHighlightMoveSpeed(qreal speed) +{ + Q_D(QmlGraphicsListView);\ + if (d->highlightMoveSpeed != speed) + { + d->highlightMoveSpeed = speed; + emit highlightMoveSpeedChanged(); + } +} + +/*! + \qmlproperty real ListView::highlightResizeSpeed + + This property holds the resizing animation speed of the highlight delegate. +*/ +qreal QmlGraphicsListView::highlightResizeSpeed() const +{ + Q_D(const QmlGraphicsListView);\ + return d->highlightResizeSpeed; +} + +void QmlGraphicsListView::setHighlightResizeSpeed(qreal speed) +{ + Q_D(QmlGraphicsListView);\ + if (d->highlightResizeSpeed != speed) + { + d->highlightResizeSpeed = speed; + emit highlightResizeSpeedChanged(); + } +} + +void QmlGraphicsListView::viewportMoved() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::viewportMoved(); + refill(); + if (isFlicking() || d->moving) + d->moveReason = QmlGraphicsListViewPrivate::Mouse; + if (d->moveReason == QmlGraphicsListViewPrivate::Mouse) { + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange && d->highlight) { + int idx = d->snapIndex(); + if (idx >= 0 && idx != d->currentIndex) + d->updateCurrent(idx); + + qreal pos = d->currentItem->position(); + if (pos > d->position() + d->highlightRangeEnd - 1 - d->highlight->size()) + pos = d->position() + d->highlightRangeEnd - 1 - d->highlight->size(); + if (pos < d->position() + d->highlightRangeStart) + pos = d->position() + d->highlightRangeStart; + d->highlight->setPosition(pos); + } + } +} + +qreal QmlGraphicsListView::minYExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::minYExtent(); + qreal extent = -d->startPosition(); + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent += d->highlightRangeStart; + + return extent; +} + +qreal QmlGraphicsListView::maxYExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Horizontal) + return QmlGraphicsFlickable::maxYExtent(); + qreal extent; + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); + else + extent = -(d->endPosition() - height()); + qreal minY = minYExtent(); + if (extent > minY) + extent = minY; + return extent; +} + +qreal QmlGraphicsListView::minXExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::minXExtent(); + qreal extent = -d->startPosition(); + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent += d->highlightRangeStart; + + return extent; +} + +qreal QmlGraphicsListView::maxXExtent() const +{ + Q_D(const QmlGraphicsListView); + if (d->orient == QmlGraphicsListView::Vertical) + return QmlGraphicsFlickable::maxXExtent(); + qreal extent; + if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) + extent = -(d->positionAt(count()-1) - d->highlightRangeEnd); + else + extent = -(d->endPosition() - width()); + qreal minX = minXExtent(); + if (extent > minX) + extent = minX; + return extent; +} + +void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::keyPressEvent(event); + if (event->isAccepted()) + return; + + if (d->model && d->model->count() && d->interactive) { + if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Left) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Up)) { + if (currentIndex() > 0 || (d->wrap && !event->isAutoRepeat())) { + d->moveReason = QmlGraphicsListViewPrivate::Key; + decrementCurrentIndex(); + event->accept(); + return; + } else if (d->wrap) { + event->accept(); + return; + } + } else if ((d->orient == QmlGraphicsListView::Horizontal && event->key() == Qt::Key_Right) + || (d->orient == QmlGraphicsListView::Vertical && event->key() == Qt::Key_Down)) { + if (currentIndex() < d->model->count() - 1 || (d->wrap && !event->isAutoRepeat())) { + d->moveReason = QmlGraphicsListViewPrivate::Key; + incrementCurrentIndex(); + event->accept(); + return; + } else if (d->wrap) { + event->accept(); + return; + } + } + } + d->moveReason = QmlGraphicsListViewPrivate::Other; + event->ignore(); +} + +/*! + \qmlmethod ListView::incrementCurrentIndex + + Increments the current index. The current index will wrap + if keyNavigationWraps is true and it is currently at the end. +*/ +void QmlGraphicsListView::incrementCurrentIndex() +{ + Q_D(QmlGraphicsListView); + if (currentIndex() < d->model->count() - 1 || d->wrap) { + int index = currentIndex()+1; + cancelFlick(); + d->updateCurrent(index < d->model->count() ? index : 0); + } +} + +/*! + \qmlmethod ListView::decrementCurrentIndex + + Decrements the current index. The current index will wrap + if keyNavigationWraps is true and it is currently at the beginning. +*/ +void QmlGraphicsListView::decrementCurrentIndex() +{ + Q_D(QmlGraphicsListView); + if (currentIndex() > 0 || d->wrap) { + int index = currentIndex()-1; + cancelFlick(); + d->updateCurrent(index >= 0 ? index : d->model->count()-1); + } +} + +void QmlGraphicsListView::componentComplete() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsFlickable::componentComplete(); + if (d->currentIndex < 0) + d->updateCurrent(0); + refill(); + d->fixupPosition(); +} + +void QmlGraphicsListView::refill() +{ + Q_D(QmlGraphicsListView); + d->refill(d->position(), d->position()+d->size()-1); +} + +void QmlGraphicsListView::trackedPositionChanged() +{ + Q_D(QmlGraphicsListView); + if (!d->trackedItem) + return; + if (!isFlicking() && !d->moving && d->moveReason != QmlGraphicsListViewPrivate::Mouse) { + const qreal trackedPos = d->trackedItem->position(); + const qreal viewPos = d->position(); + if (d->haveHighlightRange) { + if (d->highlightRange == StrictlyEnforceRange) { + qreal pos = viewPos; + if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size()) + pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); + if (trackedPos < pos + d->highlightRangeStart) + pos = trackedPos - d->highlightRangeStart; + d->setPosition(pos); + } else { + qreal pos = viewPos; + if (trackedPos < d->startPosition() + d->highlightRangeStart) { + pos = d->startPosition(); + } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) { + pos = d->endPosition() - d->size(); + } else { + if (trackedPos < viewPos + d->highlightRangeStart) { + pos = trackedPos - d->highlightRangeStart; + } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) { + pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size(); + } + } + d->setPosition(pos); + } + } else { + if (trackedPos < viewPos && d->currentItem->position() < viewPos) { + d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position()); + d->fixupPosition(); + } else if (d->trackedItem->endPosition() > viewPos + d->size() + && d->currentItem->endPosition() > viewPos + d->size()) { + qreal pos; + if (d->trackedItem->endPosition() < d->currentItem->endPosition()) { + pos = d->trackedItem->endPosition() - d->size(); + if (d->trackedItem->size() > d->size()) + pos = trackedPos; + } else { + pos = d->currentItem->endPosition() - d->size(); + if (d->currentItem->size() > d->size()) + pos = d->currentItem->position(); + } + d->setPosition(pos); + d->fixupPosition(); + } + } + } +} + +void QmlGraphicsListView::itemResized() +{ + Q_D(QmlGraphicsListView); + QmlGraphicsItem *item = qobject_cast(sender()); + if (item) { + d->layout(); + d->fixupPosition(); + } +} + +void QmlGraphicsListView::itemsInserted(int modelIndex, int count) +{ + Q_D(QmlGraphicsListView); + d->updateUnrequestedIndexes(); + if (!d->visibleItems.count() || d->model->count() <= 1) { + d->layout(); + d->updateCurrent(qMax(0, qMin(d->currentIndex, d->model->count()-1))); + emit countChanged(); + return; + } + + if (!d->mapRangeFromModel(modelIndex, count)) { + int i = d->visibleItems.count() - 1; + while (i > 0 && d->visibleItems.at(i)->index == -1) + --i; + if (d->visibleItems.at(i)->index + 1 == modelIndex) { + // Special case of appending an item to the model. + modelIndex = d->visibleIndex + d->visibleItems.count(); + } else { + if (modelIndex + count - 1 < d->visibleIndex) { + // Insert before visible items + d->visibleIndex += count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxListItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index += count; + } + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) + d->currentItem->index = d->currentIndex; + } + d->layout(); + emit countChanged(); + return; + } + } + + // At least some of the added items will be visible + + int index = modelIndex - d->visibleIndex; + int to = d->buffer+d->position()+d->size()-1; + // index can be the next item past the end of the visible items list (i.e. appended) + int pos = index < d->visibleItems.count() ? d->visibleItems.at(index)->position() + : d->visibleItems.at(index-1)->endPosition()+d->spacing+1; + int initialPos = pos; + QList added; + for (int i = 0; i < count && pos <= to; ++i) { + FxListItem *item = d->createItem(modelIndex + i); + d->visibleItems.insert(index, item); + item->setPosition(pos); + added.append(item); + pos += item->size() + d->spacing; + ++index; + } + if (d->currentIndex >= modelIndex) { + // adjust current item index + d->currentIndex += count; + if (d->currentItem) { + d->currentItem->index = d->currentIndex; + d->currentItem->setPosition(d->currentItem->position() + (pos - initialPos)); + } + } + if (pos > to) { + // We didn't insert all our new items, which means anything + // beyond the current index is not visible - remove it. + while (d->visibleItems.count() > index) + d->releaseItem(d->visibleItems.takeLast()); + } else { + // Update the indexes of the following visible items. + for (; index < d->visibleItems.count(); ++index) { + FxListItem *listItem = d->visibleItems.at(index); + if (listItem->item != d->currentItem->item) + listItem->setPosition(listItem->position() + (pos - initialPos)); + if (listItem->index != -1) + listItem->index += count; + } + } + // everything is in order now - emit add() signal + for (int j = 0; j < added.count(); ++j) + added.at(j)->attached->emitAdd(); + d->updateUnrequestedPositions(); + d->updateViewport(); + emit countChanged(); +} + +void QmlGraphicsListView::itemsRemoved(int modelIndex, int count) +{ + Q_D(QmlGraphicsListView); + d->updateUnrequestedIndexes(); + bool currentRemoved = d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count; + if (!d->mapRangeFromModel(modelIndex, count)) { + if (modelIndex + count - 1 < d->visibleIndex) { + // Items removed before our visible items. + d->visibleIndex -= count; + for (int i = 0; i < d->visibleItems.count(); ++i) { + FxListItem *listItem = d->visibleItems.at(i); + if (listItem->index != -1) + listItem->index -= count; + } + } + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + d->layout(); + d->updateSections(); + emit countChanged(); + return; + } + + // Remove the items from the visible list, skipping anything already marked for removal + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (item->index == -1 || item->index < modelIndex) { + // already removed, or before removed items + ++it; + } else if (item->index >= modelIndex + count) { + // after removed items + item->index -= count; + ++it; + } else { + // removed item + item->attached->emitRemove(); + if (item->attached->delayRemove()) { + item->index = -1; + connect(item->attached, SIGNAL(delayRemoveChanged()), this, SLOT(destroyRemoved()), Qt::QueuedConnection); + ++it; + } else { + it = d->visibleItems.erase(it); + d->releaseItem(item); + } + } + } + + // fix current + if (d->currentIndex >= modelIndex + count) { + d->currentIndex -= count; + if (d->currentItem) + d->currentItem->index -= count; + } else if (currentRemoved) { + // current item has been removed. + d->currentItem->attached->setIsCurrentItem(false); + d->releaseItem(d->currentItem); + d->currentItem = 0; + d->currentIndex = -1; + d->updateCurrent(qMin(modelIndex, d->model->count()-1)); + } + + // update visibleIndex + for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { + if ((*it)->index != -1) { + d->visibleIndex = (*it)->index; + break; + } + } + + if (d->visibleItems.isEmpty()) { + d->visibleIndex = 0; + d->visiblePos = 0; + d->timeline.clear(); + d->setPosition(0); + if (d->model->count() == 0) + update(); + else + refill(); + } else { + // Correct the positioning of the items + d->layout(); + d->updateSections(); + } + + emit countChanged(); +} + +void QmlGraphicsListView::destroyRemoved() +{ + Q_D(QmlGraphicsListView); + for (QList::Iterator it = d->visibleItems.begin(); + it != d->visibleItems.end();) { + FxListItem *listItem = *it; + if (listItem->index == -1 && listItem->attached->delayRemove() == false) { + d->releaseItem(listItem); + it = d->visibleItems.erase(it); + } else { + ++it; + } + } + + // Correct the positioning of the items + d->layout(); +} + +void QmlGraphicsListView::itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsListView); + qreal firstItemPos = d->visibleItems.first()->position(); + QHash moved; + int moveBy = 0; + + QList::Iterator it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (item->index >= from && item->index < from + count) { + // take the items that are moving + item->index += (to-from); + moved.insert(item->index, item); + moveBy += item->size(); + it = d->visibleItems.erase(it); + } else { + // move everything after the moved items. + if (item->index > from && item->index != -1) + item->index -= count; + ++it; + } + } + + int remaining = count; + int endIndex = d->visibleIndex; + it = d->visibleItems.begin(); + while (it != d->visibleItems.end()) { + FxListItem *item = *it; + if (remaining && item->index >= to && item->index < to + count) { + // place items in the target position, reusing any existing items + FxListItem *movedItem = moved.take(item->index); + if (!movedItem) + movedItem = d->createItem(item->index); + it = d->visibleItems.insert(it, movedItem); + ++it; + --remaining; + } else { + if (item->index != -1) { + if (item->index >= to) { + // update everything after the moved items. + item->index += count; + } + endIndex = item->index; + } + ++it; + } + } + + // If we have moved items to the end of the visible items + // then add any existing moved items that we have + while (FxListItem *item = moved.take(endIndex+1)) { + d->visibleItems.append(item); + ++endIndex; + } + + // Whatever moved items remain are no longer visible items. + while (moved.count()) + d->releaseItem(moved.take(moved.begin().key())); + + // Ensure we don't cause an ugly list scroll. + d->visibleItems.first()->setPosition(firstItemPos); + + d->layout(); +} + +void QmlGraphicsListView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsListView); + if (d->requestedIndex != index) { + item->setParentItem(viewport()); + d->unrequestedItems.insert(item, index); + if (d->orient == QmlGraphicsListView::Vertical) + item->setY(d->positionAt(index)); + else + item->setX(d->positionAt(index)); + } +} + +void QmlGraphicsListView::destroyingItem(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsListView); + d->unrequestedItems.remove(item); +} + +QmlGraphicsListViewAttached *QmlGraphicsListView::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsListViewAttached::properties(obj); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,ListView,QmlGraphicsListView) + +QT_END_NAMESPACE + +#include "qmlgraphicslistview.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicslistview_p.h b/src/declarative/graphicsitems/qmlgraphicslistview_p.h new file mode 100644 index 0000000..115cad9 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicslistview_p.h @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSLISTVIEW_H +#define QMLGRAPHICSLISTVIEW_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + + +class QmlGraphicsVisualModel; +class QmlGraphicsListViewAttached; +class QmlGraphicsListViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable +{ + Q_OBJECT + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsListView) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + + Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin) + Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd) + Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode) + + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) + Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) + Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) + Q_PROPERTY(QString sectionExpression READ sectionExpression WRITE setSectionExpression NOTIFY sectionExpressionChanged) + Q_PROPERTY(QString currentSection READ currentSection NOTIFY currentSectionChanged) + + Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) + Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) + Q_ENUMS(HighlightRangeMode) + Q_ENUMS(Orientation) + Q_CLASSINFO("DefaultProperty", "data") + +public: + QmlGraphicsListView(QmlGraphicsItem *parent=0); + ~QmlGraphicsListView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + QmlGraphicsItem *currentItem(); + int count() const; + + QmlComponent *highlight() const; + void setHighlight(QmlComponent *highlight); + + bool highlightFollowsCurrentItem() const; + void setHighlightFollowsCurrentItem(bool); + + enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange }; + HighlightRangeMode highlightRangeMode() const; + void setHighlightRangeMode(HighlightRangeMode mode); + + qreal preferredHighlightBegin() const; + void setPreferredHighlightBegin(qreal); + + qreal preferredHighlightEnd() const; + void setPreferredHighlightEnd(qreal); + + qreal spacing() const; + void setSpacing(qreal spacing); + + enum Orientation { Horizontal = Qt::Horizontal, Vertical = Qt::Vertical }; + Orientation orientation() const; + void setOrientation(Orientation); + + bool isWrapEnabled() const; + void setWrapEnabled(bool); + + int cacheBuffer() const; + void setCacheBuffer(int); + + QString sectionExpression() const; + void setSectionExpression(const QString &); + QString currentSection() const; + + qreal highlightMoveSpeed() const; + void setHighlightMoveSpeed(qreal); + + qreal highlightResizeSpeed() const; + void setHighlightResizeSpeed(qreal); + + static QmlGraphicsListViewAttached *qmlAttachedProperties(QObject *); + +public Q_SLOTS: + void incrementCurrentIndex(); + void decrementCurrentIndex(); + +Q_SIGNALS: + void countChanged(); + void spacingChanged(); + void orientationChanged(); + void currentIndexChanged(); + void currentSectionChanged(); + void sectionExpressionChanged(); + void highlightMoveSpeedChanged(); + void highlightResizeSpeedChanged(); + +protected: + virtual void viewportMoved(); + virtual qreal minYExtent() const; + virtual qreal maxYExtent() const; + virtual qreal minXExtent() const; + virtual qreal maxXExtent() const; + virtual void keyPressEvent(QKeyEvent *); + virtual void componentComplete(); + +private Q_SLOTS: + void refill(); + void trackedPositionChanged(); + void itemResized(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void destroyRemoved(); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPEINFO(QmlGraphicsListView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsListView) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsloader.cpp b/src/declarative/graphicsitems/qmlgraphicsloader.cpp new file mode 100644 index 0000000..65753d8 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsloader.cpp @@ -0,0 +1,390 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsloader_p_p.h" +#include + +QT_BEGIN_NAMESPACE + +QmlGraphicsLoaderPrivate::QmlGraphicsLoaderPrivate() +: item(0), component(0), ownComponent(false), resizeMode(QmlGraphicsLoader::SizeLoaderToItem) +{ +} + +QmlGraphicsLoaderPrivate::~QmlGraphicsLoaderPrivate() +{ +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Loader,QmlGraphicsLoader) + +/*! + \qmlclass Loader QFxLoader + \inherits Item + + \brief The Loader item allows dynamically loading an Item-based + subtree from a QML URL or Component. + + Loader instantiates an item from a component. The component to + instantiate may be specified directly by the \c sourceComponent + property, or loaded from a URL via the \c source property. + + It is also an effective means of delaying the creation of a component + until it is required: + \code + Loader { id: pageLoader } + Rectangle { + MouseRegion { anchors.fill: parent; onClicked: pageLoader.source = "Page1.qml" } + } + \endcode +*/ + +/*! + \internal + \class QmlGraphicsLoader + \qmlclass Loader + */ + +/*! + Create a new QmlGraphicsLoader instance. + */ +QmlGraphicsLoader::QmlGraphicsLoader(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsLoaderPrivate), parent) +{ +} + +/*! + Destroy the loader instance. + */ +QmlGraphicsLoader::~QmlGraphicsLoader() +{ +} + +/*! + \qmlproperty url Loader::source + This property holds the URL of the QML component to + instantiate. + + \sa status, progress +*/ +QUrl QmlGraphicsLoader::source() const +{ + Q_D(const QmlGraphicsLoader); + return d->source; +} + +void QmlGraphicsLoader::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsLoader); + if (d->source == url) + return; + + if (d->ownComponent) { + delete d->component; + d->component = 0; + } + delete d->item; + d->item = 0; + + d->source = url; + if (d->source.isEmpty()) { + emit sourceChanged(); + emit statusChanged(); + emit progressChanged(); + emit itemChanged(); + return; + } + + d->component = new QmlComponent(qmlEngine(this), d->source, this); + d->ownComponent = true; + if (!d->component->isLoading()) { + d->_q_sourceLoaded(); + } else { + connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(_q_sourceLoaded())); + connect(d->component, SIGNAL(progressChanged(qreal)), + this, SIGNAL(progressChanged())); + emit statusChanged(); + emit progressChanged(); + emit sourceChanged(); + emit itemChanged(); + } +} + +/*! + \qmlproperty Component Loader::sourceComponent + The sourceComponent property holds the \l{Component} to instantiate. + + \qml + Item { + Component { + id: redSquare + Rectangle { color: "red"; width: 10; height: 10 } + } + + Loader { sourceComponent: redSquare } + Loader { sourceComponent: redSquare; x: 10 } + } + \endqml + + \sa source +*/ + +QmlComponent *QmlGraphicsLoader::sourceComponent() const +{ + Q_D(const QmlGraphicsLoader); + return d->component; +} + +void QmlGraphicsLoader::setSourceComponent(QmlComponent *comp) +{ + Q_D(QmlGraphicsLoader); + if (comp == d->component) + return; + + d->source = QUrl(); + if (d->ownComponent) { + delete d->component; + d->component = 0; + } + delete d->item; + d->item = 0; + + d->component = comp; + d->ownComponent = false; + if (!d->component) { + emit sourceChanged(); + emit statusChanged(); + emit progressChanged(); + emit itemChanged(); + return; + } + + if (!d->component->isLoading()) { + d->_q_sourceLoaded(); + } else { + connect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(_q_sourceLoaded())); + connect(d->component, SIGNAL(progressChanged(qreal)), + this, SIGNAL(progressChanged())); + emit progressChanged(); + emit sourceChanged(); + emit statusChanged(); + emit itemChanged(); + } +} + +void QmlGraphicsLoaderPrivate::_q_sourceLoaded() +{ + Q_Q(QmlGraphicsLoader); + + if (component) { + QmlContext *ctxt = new QmlContext(qmlContext(q)); + ctxt->addDefaultObject(q); + + if (!component->errors().isEmpty()) { + qWarning() << component->errors(); + emit q->sourceChanged(); + emit q->statusChanged(); + emit q->progressChanged(); + return; + } + + QObject *obj = component->create(ctxt); + if (obj) { + item = qobject_cast(obj); + if (item) { + item->setParentItem(q); +// item->setFocus(true); + QmlGraphicsItem *resizeItem = 0; + if (resizeMode == QmlGraphicsLoader::SizeLoaderToItem) + resizeItem = item; + else if (resizeMode == QmlGraphicsLoader::SizeItemToLoader) + resizeItem = q; + if (resizeItem) { + QObject::connect(resizeItem, SIGNAL(widthChanged()), q, SLOT(_q_updateSize())); + QObject::connect(resizeItem, SIGNAL(heightChanged()), q, SLOT(_q_updateSize())); + } + _q_updateSize(); + } + } else { + delete obj; + source = QUrl(); + } + emit q->sourceChanged(); + emit q->statusChanged(); + emit q->progressChanged(); + emit q->itemChanged(); + } +} + +/*! + \qmlproperty enum Loader::status + + This property holds the status of QML loading. It can be one of: + \list + \o Null - no QML source has been set + \o Ready - the QML source has been loaded + \o Loading - the QML source is currently being loaded + \o Error - an error occurred while loading the QML source + \endlist + + \sa progress +*/ + +QmlGraphicsLoader::Status QmlGraphicsLoader::status() const +{ + Q_D(const QmlGraphicsLoader); + + if (d->component) + return static_cast(d->component->status()); + + if (d->item) + return Ready; + + return d->source.isEmpty() ? Null : Error; +} + +/*! + \qmlproperty real Loader::progress + + This property holds the progress of QML data loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ +qreal QmlGraphicsLoader::progress() const +{ + Q_D(const QmlGraphicsLoader); + + if (d->item) + return 1.0; + + if (d->component) + return d->component->progress(); + + return 0.0; +} + +/*! + \qmlproperty enum Loader::resizeMode + + This property determines how the Loader or item are resized: + \list + \o NoResize - no item will be resized + \o SizeLoaderToItem - the Loader will be sized to the size of the item, unless the size of the Loader has been otherwise specified. + \o SizeItemToLoader - the item will be sized to the size of the Loader. + \endlist + + The default resizeMode is SizeLoaderToItem. +*/ +QmlGraphicsLoader::ResizeMode QmlGraphicsLoader::resizeMode() const +{ + Q_D(const QmlGraphicsLoader); + return d->resizeMode; +} + +void QmlGraphicsLoader::setResizeMode(ResizeMode mode) +{ + Q_D(QmlGraphicsLoader); + if (mode == d->resizeMode) + return; + + if (d->item) { + QmlGraphicsItem *resizeItem = 0; + if (d->resizeMode == SizeLoaderToItem) + resizeItem = d->item; + else if (d->resizeMode == SizeItemToLoader) + resizeItem = this; + if (resizeItem) { + disconnect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); + disconnect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); + } + } + + d->resizeMode = mode; + + if (d->item) { + QmlGraphicsItem *resizeItem = 0; + if (d->resizeMode == SizeLoaderToItem) + resizeItem = d->item; + else if (d->resizeMode == SizeItemToLoader) + resizeItem = this; + if (resizeItem) { + connect(resizeItem, SIGNAL(widthChanged()), this, SLOT(_q_updateSize())); + connect(resizeItem, SIGNAL(heightChanged()), this, SLOT(_q_updateSize())); + } + + d->_q_updateSize(); + } +} + +void QmlGraphicsLoaderPrivate::_q_updateSize() +{ + Q_Q(QmlGraphicsLoader); + if (!item) + return; + switch (resizeMode) { + case QmlGraphicsLoader::SizeLoaderToItem: + q->setImplicitWidth(item->width()); + q->setImplicitHeight(item->height()); + break; + case QmlGraphicsLoader::SizeItemToLoader: + item->setWidth(q->width()); + item->setHeight(q->height()); + break; + default: + break; + } +} + +/*! + \qmlproperty Item Loader::item + This property holds the top-level item created from source. +*/ +QmlGraphicsItem *QmlGraphicsLoader::item() const +{ + Q_D(const QmlGraphicsLoader); + return d->item; +} + +#include "moc_qmlgraphicsloader_p.cpp" + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsloader_p.h b/src/declarative/graphicsitems/qmlgraphicsloader_p.h new file mode 100644 index 0000000..8cd1819 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsloader_p.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSLOADER_H +#define QMLGRAPHICSLOADER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsLoader : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(Status) + Q_ENUMS(ResizeMode) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QmlComponent *sourceComponent READ sourceComponent WRITE setSourceComponent NOTIFY sourceChanged) + Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) + Q_PROPERTY(QmlGraphicsItem *item READ item NOTIFY itemChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + //### sourceItem + +public: + QmlGraphicsLoader(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsLoader(); + + QUrl source() const; + void setSource(const QUrl &); + + QmlComponent *sourceComponent() const; + void setSourceComponent(QmlComponent *); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + enum ResizeMode { NoResize, SizeLoaderToItem, SizeItemToLoader }; + ResizeMode resizeMode() const; + void setResizeMode(ResizeMode mode); + + QmlGraphicsItem *item() const; + +Q_SIGNALS: + void itemChanged(); + void sourceChanged(); + void statusChanged(); + void progressChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsLoader) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsLoader) + Q_PRIVATE_SLOT(d_func(), void _q_sourceLoaded()) + Q_PRIVATE_SLOT(d_func(), void _q_updateSize()) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsLoader) + +QT_END_HEADER + +#endif // QMLGRAPHICSLOADER_H diff --git a/src/declarative/graphicsitems/qmlgraphicsloader_p_p.h b/src/declarative/graphicsitems/qmlgraphicsloader_p_p.h new file mode 100644 index 0000000..23fedb7 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsloader_p_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSLOADER_P_H +#define QMLGRAPHICSLOADER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsloader_p.h" + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsLoaderPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsLoader) + +public: + QmlGraphicsLoaderPrivate(); + ~QmlGraphicsLoaderPrivate(); + + QUrl source; + QmlGraphicsItem *item; + QmlComponent *component; + bool ownComponent; + QmlGraphicsLoader::ResizeMode resizeMode; + + void _q_sourceLoaded(); + void _q_updateSize(); +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSLOADER_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicsmouseregion.cpp b/src/declarative/graphicsitems/qmlgraphicsmouseregion.cpp new file mode 100644 index 0000000..75e31b8 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsmouseregion.cpp @@ -0,0 +1,649 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsmouseregion_p.h" +#include "qmlgraphicsmouseregion_p_p.h" +#include "qmlgraphicsevents_p_p.h" +#include + + +QT_BEGIN_NAMESPACE +static const qreal DragThreshold = 5; +static const int PressAndHoldDelay = 800; + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Drag,QmlGraphicsDrag) +QmlGraphicsDrag::QmlGraphicsDrag(QObject *parent) +: QObject(parent), _target(0), _axis(XandYAxis), _xmin(0), _xmax(0), _ymin(0), _ymax(0) +{ +} + +QmlGraphicsDrag::~QmlGraphicsDrag() +{ +} + +QmlGraphicsItem *QmlGraphicsDrag::target() const +{ + return _target; +} + +void QmlGraphicsDrag::setTarget(QmlGraphicsItem *t) +{ + _target = t; +} + +QmlGraphicsDrag::Axis QmlGraphicsDrag::axis() const +{ + return _axis; +} + +void QmlGraphicsDrag::setAxis(QmlGraphicsDrag::Axis a) +{ + _axis = a; +} + +qreal QmlGraphicsDrag::xmin() const +{ + return _xmin; +} + +void QmlGraphicsDrag::setXmin(qreal m) +{ + _xmin = m; +} + +qreal QmlGraphicsDrag::xmax() const +{ + return _xmax; +} + +void QmlGraphicsDrag::setXmax(qreal m) +{ + _xmax = m; +} + +qreal QmlGraphicsDrag::ymin() const +{ + return _ymin; +} + +void QmlGraphicsDrag::setYmin(qreal m) +{ + _ymin = m; +} + +qreal QmlGraphicsDrag::ymax() const +{ + return _ymax; +} + +void QmlGraphicsDrag::setYmax(qreal m) +{ + _ymax = m; +} + +/*! + \qmlclass MouseRegion QFxMouseRegion + \brief The MouseRegion item enables simple mouse handling. + \inherits Item + + A MouseRegion is typically used in conjunction with a visible item, + where the MouseRegion effectively 'proxies' mouse handling for that + item. For example, we can put a MouseRegion in a Rectangle that changes + the Rectangle color to red when clicked: + \snippet doc/src/snippets/declarative/mouseregion.qml 0 + + Many MouseRegion signals pass a \l {MouseEvent}{mouse} parameter that contains + additional information about the mouse event, such as the position, button, + and any key modifiers. + + Below we have the previous + example extended so as to give a different color when you right click. + \snippet doc/src/snippets/declarative/mouseregion.qml 1 + + For basic key handling, see the \l {Keys}{Keys attached property}. + + MouseRegion is an invisible item: it is never painted. + + \sa MouseEvent +*/ + +/*! + \qmlsignal MouseRegion::onEntered + + This handler is called when the mouse enters the mouse region. +*/ + +/*! + \qmlsignal MouseRegion::onExited + + This handler is called when the mouse exists the mouse region. +*/ + +/*! + \qmlsignal MouseRegion::onPositionChanged(mouse) + + This handler is called when the mouse position changes. + + The \l {MouseEvent}{mouse} parameter provides information about the mouse, including the x and y + position, and any buttons currently pressed. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onClicked(mouse) + + This handler is called when there is a click. A click is defined as a press followed by a release, + both inside the MouseRegion (pressing, moving outside the MouseRegion, and then moving back inside and + releasing is also considered a click). + + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onPressed(mouse) + + This handler is called when there is a press. + The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y + position and which button was pressed. + + The \e accepted property of the MouseEvent parameter determines whether this MouseRegion + will handle the press and all future mouse events until release. The default is to accept + the event and not allow other MouseRegions beneath this one to handle the event. If \e accepted + is set to false, no further events will be sent to this MouseRegion until the button is next + pressed. +*/ + +/*! + \qmlsignal MouseRegion::onReleased(mouse) + + This handler is called when there is a release. + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onPressAndHold(mouse) + + This handler is called when there is a long press (currently 800ms). + The \l {MouseEvent}{mouse} parameter provides information about the press, including the x and y + position of the press, and which button is pressed. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +/*! + \qmlsignal MouseRegion::onDoubleClicked(mouse) + + This handler is called when there is a double-click (a press followed by a release followed by a press). + The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y + position of the release of the click, and whether the click wasHeld. + + The \e accepted property of the MouseEvent parameter is ignored in this handler. +*/ + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,MouseRegion,QmlGraphicsMouseRegion) + +/*! + \internal + \class QmlGraphicsMouseRegion + \brief The QmlGraphicsMouseRegion class provides a simple mouse handling abstraction for use within Qml. + + \ingroup group_coreitems + + All QmlGraphicsItem derived classes can do mouse handling but the QmlGraphicsMouseRegion class exposes mouse + handling data as properties and tracks flicking and dragging of the mouse. + + A QmlGraphicsMouseRegion object can be instantiated in Qml using the tag \l MouseRegion. + */ +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsMouseRegionPrivate), parent) +{ + Q_D(QmlGraphicsMouseRegion); + d->init(); +} + +QmlGraphicsMouseRegion::QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsMouseRegion); + d->init(); +} + +QmlGraphicsMouseRegion::~QmlGraphicsMouseRegion() +{ +} + +/*! + \qmlproperty real MouseRegion::mouseX + \qmlproperty real MouseRegion::mouseY + These properties hold the coordinates of the mouse. + + If the hoverEnabled property is false then these properties will only be valid + while a button is pressed, and will remain valid as long as the button is held + even if the mouse is moved outside the region. + + If hoverEnabled is true then these properties will be valid: + \list + \i when no button is pressed, but the mouse is within the MouseRegion (containsMouse is true). + \i if a button is pressed and held, even if it has since moved out of the region. + \endlist + + The coordinates are relative to the MouseRegion. +*/ +qreal QmlGraphicsMouseRegion::mouseX() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastPos.x(); +} + +qreal QmlGraphicsMouseRegion::mouseY() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastPos.y(); +} + +/*! + \qmlproperty bool MouseRegion::enabled + This property holds whether the item accepts mouse events. +*/ +bool QmlGraphicsMouseRegion::isEnabled() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->absorb; +} + +void QmlGraphicsMouseRegion::setEnabled(bool a) +{ + Q_D(QmlGraphicsMouseRegion); + if (a != d->absorb) { + d->absorb = a; + emit enabledChanged(); + } +} +/*! + \qmlproperty MouseButtons MouseRegion::pressedButtons + This property holds the mouse buttons currently pressed. + + It contains a bitwise combination of: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MidButton + \endlist + + The code below displays "right" when the right mouse buttons is pressed: + \code + Text { + text: mr.pressedButtons & Qt.RightButton ? "right" : "" + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + MouseRegion { + id: mr + acceptedButtons: Qt.LeftButton | Qt.RightButton + anchors.fill: parent + } + } + \endcode + + \sa acceptedButtons +*/ +Qt::MouseButtons QmlGraphicsMouseRegion::pressedButtons() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->lastButtons; +} + +void QmlGraphicsMouseRegion::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + d->moved = false; + if (!d->absorb) + QmlGraphicsItem::mousePressEvent(event); + else { + d->longPress = false; + d->saveEvent(event); + d->dragX = drag()->axis() & QmlGraphicsDrag::XAxis; + d->dragY = drag()->axis() & QmlGraphicsDrag::YAxis; + d->dragged = false; + setHovered(true); + d->start = event->pos(); + d->startScene = event->scenePos(); + // we should only start timer if pressAndHold is connected to. + if (d->isConnected("pressAndHold(QmlGraphicsMouseEvent*)")) + d->pressAndHoldTimer.start(PressAndHoldDelay, this); + setKeepMouseGrab(false); + event->setAccepted(setPressed(true)); + } +} + +void QmlGraphicsMouseRegion::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseMoveEvent(event); + return; + } + + d->saveEvent(event); + + // ### we should skip this if these signals aren't used + // ### can GV handle this for us? + bool contains = boundingRect().contains(d->lastPos); + if (d->hovered && !contains) + setHovered(false); + else if (!d->hovered && contains) + setHovered(true); + + if (drag()->target()) { + if (!d->moved) { + if (d->dragX) d->startX = drag()->target()->x(); + if (d->dragY) d->startY = drag()->target()->y(); + } + + QPointF startLocalPos; + QPointF curLocalPos; + if (drag()->target()->parent()) { + startLocalPos = drag()->target()->parentItem()->mapFromScene(d->startScene); + curLocalPos = drag()->target()->parentItem()->mapFromScene(event->scenePos()); + } else { + startLocalPos = d->startScene; + curLocalPos = event->scenePos(); + } + + qreal dx = qAbs(curLocalPos.x() - startLocalPos.x()); + qreal dy = qAbs(curLocalPos.y() - startLocalPos.y()); + if ((d->dragX && !(dx < DragThreshold)) || (d->dragY && !(dy < DragThreshold))) + d->dragged = true; + if (!keepMouseGrab()) { + if ((!d->dragY && dy < DragThreshold && d->dragX && dx > DragThreshold) + || (!d->dragX && dx < DragThreshold && d->dragY && dy > DragThreshold) + || (d->dragX && d->dragY)) { + setKeepMouseGrab(true); + } + } + + if (d->dragX) { + qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX; + if (x < drag()->xmin()) + x = drag()->xmin(); + else if (x > drag()->xmax()) + x = drag()->xmax(); + drag()->target()->setX(x); + } + if (d->dragY) { + qreal y = (curLocalPos.y() - startLocalPos.y()) + d->startY; + if (y < drag()->ymin()) + y = drag()->ymin(); + else if (y > drag()->ymax()) + y = drag()->ymax(); + drag()->target()->setY(y); + } + } + d->moved = true; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit positionChanged(&me); +} + + +void QmlGraphicsMouseRegion::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseReleaseEvent(event); + } else { + d->saveEvent(event); + setPressed(false); + // If we don't accept hover, we need to reset containsMouse. + if (!acceptHoverEvents()) + setHovered(false); + setKeepMouseGrab(false); + } +} + +void QmlGraphicsMouseRegion::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::mouseDoubleClickEvent(event); + } else { + QmlGraphicsItem::mouseDoubleClickEvent(event); + if (event->isAccepted()) { + // Only deliver the event if we have accepted the press. + d->saveEvent(event); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false); + emit this->doubleClicked(&me); + } + } +} + +void QmlGraphicsMouseRegion::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) + QmlGraphicsItem::hoverEnterEvent(event); + else + setHovered(true); +} + +void QmlGraphicsMouseRegion::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) { + QmlGraphicsItem::hoverEnterEvent(event); + } else { + d->lastPos = event->pos(); + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), Qt::NoButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit positionChanged(&me); + } +} + +void QmlGraphicsMouseRegion::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (!d->absorb) + QmlGraphicsItem::hoverLeaveEvent(event); + else + setHovered(false); +} + +bool QmlGraphicsMouseRegion::sceneEvent(QEvent *event) +{ + bool rv = QmlGraphicsItem::sceneEvent(event); + if (event->type() == QEvent::UngrabMouse) { + Q_D(QmlGraphicsMouseRegion); + if (d->pressed) { + // if our mouse grab has been removed (probably by Flickable), fix our + // state + d->pressed = false; + setKeepMouseGrab(false); + emit pressedChanged(); + //emit hoveredChanged(); + } + } + return rv; +} + +void QmlGraphicsMouseRegion::timerEvent(QTimerEvent *event) +{ + Q_D(QmlGraphicsMouseRegion); + if (event->timerId() == d->pressAndHoldTimer.timerId()) { + d->pressAndHoldTimer.stop(); + if (d->pressed && d->dragged == false && d->hovered == true) { + d->longPress = true; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); + emit pressAndHold(&me); + } + } +} + +/*! + \qmlproperty bool MouseRegion::hoverEnabled + This property holds whether hover events are handled. + + By default, mouse events are only handled in response to a button event, or when a button is + pressed. Hover enables handling of all mouse events even when no mouse button is + pressed. + + This property affects the containsMouse property and the onEntered, onExited and onPositionChanged signals. +*/ + +/*! + \qmlproperty bool MouseRegion::containsMouse + This property holds whether the mouse is currently inside the mouse region. + + \warning This property is not updated if the region moves under the mouse: \e containsMouse will not change. + In addition, if hoverEnabled is false, containsMouse will only be valid when the mouse is pressed. +*/ +bool QmlGraphicsMouseRegion::hovered() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->hovered; +} + +/*! + \qmlproperty bool MouseRegion::pressed + This property holds whether the mouse region is currently pressed. +*/ +bool QmlGraphicsMouseRegion::pressed() const +{ + Q_D(const QmlGraphicsMouseRegion); + return d->pressed; +} + +void QmlGraphicsMouseRegion::setHovered(bool h) +{ + Q_D(QmlGraphicsMouseRegion); + if (d->hovered != h) { + d->hovered = h; + emit hoveredChanged(); + d->hovered ? emit entered() : emit exited(); + } +} + +/*! + \qmlproperty Qt::MouseButtons MouseRegion::acceptedButtons + This property holds the mouse buttons that the mouse region reacts to. + + The available buttons are: + \list + \o Qt.LeftButton + \o Qt.RightButton + \o Qt.MiddleButton + \endlist + + To accept more than one button the flags can be combined with the + "|" (or) operator: + + \code + MouseRegion { acceptedButtons: Qt.LeftButton | Qt.RightButton } + \endcode + + The default is to accept the Left button. +*/ +Qt::MouseButtons QmlGraphicsMouseRegion::acceptedButtons() const +{ + return acceptedMouseButtons(); +} + +void QmlGraphicsMouseRegion::setAcceptedButtons(Qt::MouseButtons buttons) +{ + if (buttons != acceptedMouseButtons()) { + setAcceptedMouseButtons(buttons); + emit acceptedButtonsChanged(); + } +} + +bool QmlGraphicsMouseRegion::setPressed(bool p) +{ + Q_D(QmlGraphicsMouseRegion); + bool isclick = d->pressed == true && p == false && d->dragged == false && d->hovered == true; + + if (d->pressed != p) { + d->pressed = p; + QmlGraphicsMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, isclick, d->longPress); + if (d->pressed) { + emit positionChanged(&me); + emit pressed(&me); + } else { + emit released(&me); + if (isclick) + emit clicked(&me); + } + + emit pressedChanged(); + return me.isAccepted(); + } + return false; +} + +QmlGraphicsDrag *QmlGraphicsMouseRegion::drag() +{ + Q_D(QmlGraphicsMouseRegion); + return &(d->drag); +} + +/*! + \qmlproperty Item MouseRegion::drag.target + \qmlproperty Axis MouseRegion::drag.axis + \qmlproperty real MouseRegion::drag.minimumX + \qmlproperty real MouseRegion::drag.maximumX + \qmlproperty real MouseRegion::drag.minimumY + \qmlproperty real MouseRegion::drag.maximumY + + drag provides a convenient way to make an item draggable. + + \list + \i \c target specifies the item to drag. + \i \c axis specifies whether dragging can be done horizontally (XAxis), vertically (YAxis), or both (XandYAxis) + \i the minimum and maximum properties limit how far the target can be dragged along the corresponding axes. + \endlist + + The following example uses drag to reduce the opacity of an image as it moves to the right: + \snippet doc/src/snippets/declarative/drag.qml 0 +*/ + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsmouseregion_p.h b/src/declarative/graphicsitems/qmlgraphicsmouseregion_p.h new file mode 100644 index 0000000..3403c75 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsmouseregion_p.h @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSMOUSEREGION_H +#define QMLGRAPHICSMOUSEREGION_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsDrag : public QObject +{ + Q_OBJECT + + Q_ENUMS(Axis) + Q_PROPERTY(QmlGraphicsItem *target READ target WRITE setTarget) + Q_PROPERTY(Axis axis READ axis WRITE setAxis) + Q_PROPERTY(qreal minimumX READ xmin WRITE setXmin) + Q_PROPERTY(qreal maximumX READ xmax WRITE setXmax) + Q_PROPERTY(qreal minimumY READ ymin WRITE setYmin) + Q_PROPERTY(qreal maximumY READ ymax WRITE setYmax) + //### consider drag and drop + +public: + QmlGraphicsDrag(QObject *parent=0); + ~QmlGraphicsDrag(); + + QmlGraphicsItem *target() const; + void setTarget(QmlGraphicsItem *); + + enum Axis { XAxis=0x01, YAxis=0x02, XandYAxis=0x03 }; + Axis axis() const; + void setAxis(Axis); + + qreal xmin() const; + void setXmin(qreal); + qreal xmax() const; + void setXmax(qreal); + qreal ymin() const; + void setYmin(qreal); + qreal ymax() const; + void setYmax(qreal); + +private: + QmlGraphicsItem *_target; + Axis _axis; + qreal _xmin; + qreal _xmax; + qreal _ymin; + qreal _ymax; + Q_DISABLE_COPY(QmlGraphicsDrag) +}; + +class QmlGraphicsMouseEvent; +class QmlGraphicsMouseRegionPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsMouseRegion : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(qreal mouseX READ mouseX NOTIFY positionChanged) + Q_PROPERTY(qreal mouseY READ mouseY NOTIFY positionChanged) + Q_PROPERTY(bool containsMouse READ hovered NOTIFY hoveredChanged) + Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged) + Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(Qt::MouseButtons pressedButtons READ pressedButtons NOTIFY pressedChanged) + Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) + Q_PROPERTY(bool hoverEnabled READ acceptHoverEvents WRITE setAcceptHoverEvents) + Q_PROPERTY(QmlGraphicsDrag *drag READ drag) //### add flicking to QmlGraphicsDrag or add a QmlGraphicsFlick ??? + +public: + QmlGraphicsMouseRegion(QmlGraphicsItem *parent=0); + ~QmlGraphicsMouseRegion(); + + qreal mouseX() const; + qreal mouseY() const; + + bool isEnabled() const; + void setEnabled(bool); + + bool hovered() const; + bool pressed() const; + + Qt::MouseButtons pressedButtons() const; + + Qt::MouseButtons acceptedButtons() const; + void setAcceptedButtons(Qt::MouseButtons buttons); + + QmlGraphicsDrag *drag(); + +Q_SIGNALS: + void hoveredChanged(); + void pressedChanged(); + void enabledChanged(); + void acceptedButtonsChanged(); + void positionChanged(QmlGraphicsMouseEvent *mouse); + + void pressed(QmlGraphicsMouseEvent *mouse); + void pressAndHold(QmlGraphicsMouseEvent *mouse); + void released(QmlGraphicsMouseEvent *mouse); + void clicked(QmlGraphicsMouseEvent *mouse); + void doubleClicked(QmlGraphicsMouseEvent *mouse); + void entered(); + void exited(); + +protected: + void setHovered(bool); + bool setPressed(bool); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + bool sceneEvent(QEvent *); + void timerEvent(QTimerEvent *event); + +private: + void handlePress(); + void handleRelease(); + +protected: + QmlGraphicsMouseRegion(QmlGraphicsMouseRegionPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsMouseRegion) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsMouseRegion) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsDrag) +QML_DECLARE_TYPE(QmlGraphicsMouseRegion) + +QT_END_HEADER + +#endif // QMLGRAPHICSMOUSEREGION_H diff --git a/src/declarative/graphicsitems/qmlgraphicsmouseregion_p_p.h b/src/declarative/graphicsitems/qmlgraphicsmouseregion_p_p.h new file mode 100644 index 0000000..ad7cc9f --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsmouseregion_p_p.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSMOUSEREGION_P_H +#define QMLGRAPHICSMOUSEREGION_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qbasictimer.h" +#include "qgraphicssceneevent.h" +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsMouseRegionPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsMouseRegion) + +public: + QmlGraphicsMouseRegionPrivate() + : absorb(true), hovered(false), pressed(false), longPress(false), drag(0) + { + } + + void init() + { + Q_Q(QmlGraphicsMouseRegion); + q->setAcceptedMouseButtons(Qt::LeftButton); + } + + void saveEvent(QGraphicsSceneMouseEvent *event) { + lastPos = event->pos(); + lastButton = event->button(); + lastButtons = event->buttons(); + lastModifiers = event->modifiers(); + } + + bool isConnected(const char *signal) { + Q_Q(QmlGraphicsMouseRegion); + int idx = QObjectPrivate::get(q)->signalIndex(signal); + return QObjectPrivate::get(q)->isSignalConnected(idx); + } + + bool absorb : 1; + bool hovered : 1; + bool pressed : 1; + bool longPress : 1; + bool moved : 1; + bool dragX : 1; + bool dragY : 1; + bool dragged : 1; + QmlGraphicsDrag drag; + QPointF start; + QPointF startScene; + qreal startX; + qreal startY; + QPointF lastPos; + Qt::MouseButton lastButton; + Qt::MouseButtons lastButtons; + Qt::KeyboardModifiers lastModifiers; + QBasicTimer pressAndHoldTimer; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSMOUSEREGION_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp b/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp new file mode 100644 index 0000000..a0d9b09 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp @@ -0,0 +1,387 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicspainteditem_p.h" +#include "qmlgraphicspainteditem_p_p.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \class QmlGraphicsPaintedItem + \brief The QmlGraphicsPaintedItem class is an abstract base class for QmlView items that want cached painting. + \internal + + This is a convenience class for implementing items that paint their contents + using a QPainter. The contents of the item are cached behind the scenes. + The dirtyCache() function should be called if the contents change to + ensure the cache is refreshed the next time painting occurs. + + To subclass QmlGraphicsPaintedItem, you must reimplement drawContents() to draw + the contents of the item. +*/ + +/*! + \fn void QmlGraphicsPaintedItem::drawContents(QPainter *painter, const QRect &rect) + + This function is called when the cache needs to be refreshed. When + sub-classing QmlGraphicsPaintedItem this function should be implemented so as to + paint the contents of the item using the given \a painter for the + area of the contents specified by \a rect. +*/ + +/*! + \property QmlGraphicsPaintedItem::contentsSize + \brief The size of the contents + + The contents size is the size of the item in regards to how it is painted + using the drawContents() function. This is distinct from the size of the + item in regards to height() and width(). +*/ + +// XXX bug in WebKit - can call repaintRequested and other cache-changing functions from within render! +static int inpaint=0; +static int inpaint_clearcache=0; + +/*! + Marks areas of the cache that intersect with the given \a rect as dirty and + in need of being refreshed. + + \sa clearCache() +*/ +void QmlGraphicsPaintedItem::dirtyCache(const QRect& rect) +{ + Q_D(QmlGraphicsPaintedItem); + for (int i=0; i < d->imagecache.count(); ) { + QmlGraphicsPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; + QRect isect = (c->area & rect) | c->dirty; + if (isect == c->area && !inpaint) { + delete d->imagecache.takeAt(i); + } else { + c->dirty = isect; + ++i; + } + } +} + +/*! + Marks the entirety of the contents cache as dirty. + + \sa dirtyCache() +*/ +void QmlGraphicsPaintedItem::clearCache() +{ + if (inpaint) { + inpaint_clearcache=1; + return; + } + Q_D(QmlGraphicsPaintedItem); + qDeleteAll(d->imagecache); + d->imagecache.clear(); +} + +/*! + Returns the size of the contents. + + \sa setContentsSize() +*/ +QSize QmlGraphicsPaintedItem::contentsSize() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->contentsSize; +} + +/*! + Sets the size of the contents to the given \a size. + + \sa contentsSize() +*/ +void QmlGraphicsPaintedItem::setContentsSize(const QSize &size) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->contentsSize == size) return; + d->contentsSize = size; + clearCache(); + update(); +} + +/*! + Constructs a new QmlGraphicsPaintedItem with the given \a parent. +*/ +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPaintedItemPrivate), parent) +{ + init(); +} + +/*! + \internal + Constructs a new QmlGraphicsPaintedItem with the given \a parent and + initialized private data member \a dd. +*/ +QmlGraphicsPaintedItem::QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + init(); +} + +/*! + Destroys the image item. +*/ +QmlGraphicsPaintedItem::~QmlGraphicsPaintedItem() +{ + clearCache(); +} + +/*! + \internal +*/ +void QmlGraphicsPaintedItem::init() +{ + connect(this,SIGNAL(widthChanged()),this,SLOT(clearCache())); + connect(this,SIGNAL(heightChanged()),this,SLOT(clearCache())); + connect(this,SIGNAL(visibleChanged()),this,SLOT(clearCache())); +} + +void QmlGraphicsPaintedItem::setCacheFrozen(bool frozen) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->cachefrozen == frozen) + return; + d->cachefrozen = frozen; + // XXX clear cache? +} + +/*! + \reimp +*/ +void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsPaintedItem); + const QRect content(QPoint(0,0),d->contentsSize); + if (content.width() <= 0 || content.height() <= 0) + return; + + ++inpaint; + + QRectF clipf = p->clipRegion().boundingRect(); + if (clipf.isEmpty()) + clipf = mapToScene(content).boundingRect(); // ### Inefficient: Maps toScene and then fromScene + else + clipf = mapToScene(clipf).boundingRect(); + + const QRect clip = mapFromScene(clipf).boundingRect().toRect(); + + QRegion topaint(clip); + topaint &= content; + QRegion uncached(content); + + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + if (topaint.contains(area)) { + QRectF target(area.x(), area.y(), area.width(), area.height()); + if (!d->cachefrozen) { + if (!d->imagecache[i]->dirty.isNull() && topaint.contains(d->imagecache[i]->dirty)) { + QPainter qp(&d->imagecache[i]->image); + qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); + qp.translate(-area.x(), -area.y()); + if (d->fillColor.isValid()){ + if(d->fillColor.alpha() < 255){ + // ### Might not work outside of raster paintengine + QPainter::CompositionMode prev = qp.compositionMode(); + qp.setCompositionMode(QPainter::CompositionMode_Source); + qp.fillRect(d->imagecache[i]->dirty,d->fillColor); + qp.setCompositionMode(prev); + }else{ + qp.fillRect(d->imagecache[i]->dirty,d->fillColor); + } + } + qp.setClipRect(d->imagecache[i]->dirty); + drawContents(&qp, d->imagecache[i]->dirty); + d->imagecache[i]->dirty = QRect(); + } + } + p->drawPixmap(target.toRect(), d->imagecache[i]->image); + topaint -= area; + d->imagecache[i]->age=0; + } else { + d->imagecache[i]->age++; + } + cachesize += area.width()*area.height(); + uncached -= area; + } + + if (!topaint.isEmpty()) { + if (!d->cachefrozen) { + // Find a sensible larger area, otherwise will paint lots of tiny images. + QRect biggerrect = topaint.boundingRect().adjusted(-64,-64,128,128); + cachesize += biggerrect.width() * biggerrect.height(); + while (d->imagecache.count() && cachesize > d->max_imagecache_size) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + uncached += d->imagecache[oldest]->area; + d->imagecache.removeAt(oldest); + } + const QRegion bigger = QRegion(biggerrect) & uncached; + const QVector rects = bigger.rects(); + for (int i = 0; i < rects.count(); ++i) { + const QRect &r = rects.at(i); + QPixmap img(r.size()); + if (d->fillColor.isValid()) + img.fill(d->fillColor); + { + QPainter qp(&img); + qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + qp.translate(-r.x(),-r.y()); + drawContents(&qp, r); + } + QmlGraphicsPaintedItemPrivate::ImageCacheItem *newitem = new QmlGraphicsPaintedItemPrivate::ImageCacheItem; + newitem->area = r; + newitem->image = img; + d->imagecache.append(newitem); + p->drawPixmap(r, newitem->image); + } + } else { + const QVector rects = uncached.rects(); + for (int i = 0; i < rects.count(); ++i) + p->fillRect(rects.at(i), Qt::lightGray); + } + } + + if (inpaint_clearcache) { + clearCache(); + inpaint_clearcache = 0; + } + + --inpaint; +} + +/*! + \qmlproperty int PaintedItem::cacheSize + + This property holds the maximum number of pixels of image cache to + allow. The default is 0.1 megapixels. The cache will not be larger + than the (unscaled) size of the item. +*/ + +/*! + \property QmlGraphicsPaintedItem::cacheSize + + The maximum number of pixels of image cache to allow. The default + is 0.1 megapixels. The cache will not be larger than the (unscaled) + size of the QmlGraphicsPaintedItem. +*/ +int QmlGraphicsPaintedItem::cacheSize() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->max_imagecache_size; +} + +void QmlGraphicsPaintedItem::setCacheSize(int pixels) +{ + Q_D(QmlGraphicsPaintedItem); + if (pixels < d->max_imagecache_size) { + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + cachesize += area.width()*area.height(); + } + while (d->imagecache.count() && cachesize > pixels) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + d->imagecache.removeAt(oldest); + } + } + d->max_imagecache_size = pixels; +} + +/*! + \property QmlGraphicsPaintedItem::fillColor + + The color to be used to fill the item prior to calling drawContents(). + By default, this is Qt::transparent. + + Performance improvements can be achieved if subclasses call this with either an + invalid color (QColor()), or an appropriate solid color. +*/ +void QmlGraphicsPaintedItem::setFillColor(const QColor& c) +{ + Q_D(QmlGraphicsPaintedItem); + if (d->fillColor == c) + return; + d->fillColor = c; + emit fillColorChanged(); + update(); +} + +QColor QmlGraphicsPaintedItem::fillColor() const +{ + Q_D(const QmlGraphicsPaintedItem); + return d->fillColor; +} + + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicspainteditem_p.h b/src/declarative/graphicsitems/qmlgraphicspainteditem_p.h new file mode 100644 index 0000000..99873a7 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspainteditem_p.h @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGEITEM_H +#define QMLGRAPHICSIMAGEITEM_H + +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsPaintedItemPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPaintedItem : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QSize contentsSize READ contentsSize WRITE setContentsSize) + Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged) + Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize) + +public: + QmlGraphicsPaintedItem(QmlGraphicsItem *parent=0); + ~QmlGraphicsPaintedItem(); + + QSize contentsSize() const; + void setContentsSize(const QSize &); + + int cacheSize() const; + void setCacheSize(int pixels); + + QColor fillColor() const; + void setFillColor(const QColor&); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +protected: + QmlGraphicsPaintedItem(QmlGraphicsPaintedItemPrivate &dd, QmlGraphicsItem *parent); + + virtual void drawContents(QPainter *p, const QRect &) = 0; + + void setCacheFrozen(bool); + +Q_SIGNALS: + void fillColorChanged(); + +protected Q_SLOTS: + void dirtyCache(const QRect &); + void clearCache(); + +private: + void init(); + Q_DISABLE_COPY(QmlGraphicsPaintedItem) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPaintedItem) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPaintedItem) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicspainteditem_p_p.h b/src/declarative/graphicsitems/qmlgraphicspainteditem_p_p.h new file mode 100644 index 0000000..a744557 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspainteditem_p_p.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSIMAGEITEM_P_H +#define QMLGRAPHICSIMAGEITEM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QmlGraphicsPaintedItemPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPaintedItem) + +public: + QmlGraphicsPaintedItemPrivate() + : max_imagecache_size(100000), fillColor(Qt::transparent), cachefrozen(false) + { + } + + struct ImageCacheItem { + ImageCacheItem() : age(0) {} + ~ImageCacheItem() { } + int age; + QRect area; + QRect dirty; // one dirty area (allows optimization of common cases) + QPixmap image; + }; + + QList imagecache; + + int max_imagecache_size; + QSize contentsSize; + QColor fillColor; + bool cachefrozen; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicspath.cpp b/src/declarative/graphicsitems/qmlgraphicspath.cpp new file mode 100644 index 0000000..c0e6caf --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspath.cpp @@ -0,0 +1,839 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicspath_p.h" +#include "qmlgraphicspath_p_p.h" +#include +#include +#include + + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Path,QmlGraphicsPath) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsPathElement) +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsCurve) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathAttribute,QmlGraphicsPathAttribute) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathPercent,QmlGraphicsPathPercent) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathLine,QmlGraphicsPathLine) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathQuad,QmlGraphicsPathQuad) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathCubic,QmlGraphicsPathCubic) + +/*! + \qmlclass PathElement QFxPathElement + \brief PathElement is the base path type. + + This type is the base for all path types. It cannot + be instantiated. + + \sa Path, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPathElement + \ingroup group_utility +*/ + +/*! + \qmlclass Path QmlGraphicsPath + \brief A Path object defines a path for use by \l PathView. + + A Path is composed of one or more path segments - PathLine, PathQuad, + PathCubic. + + The spacing of the items along the Path can be adjusted via a + PathPercent object. + + PathAttribute allows named attributes with values to be defined + along the path. + + \sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPath + \ingroup group_utility + \brief The QmlGraphicsPath class defines a path. + \sa QmlGraphicsPathView +*/ +QmlGraphicsPath::QmlGraphicsPath(QObject *parent) + : QObject(*(new QmlGraphicsPathPrivate), parent) +{ +} + +QmlGraphicsPath::QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent) + : QObject(dd, parent) +{ +} + +QmlGraphicsPath::~QmlGraphicsPath() +{ +} + +/*! + \qmlproperty real Path::startX + \qmlproperty real Path::startY + This property holds the starting position of the path. +*/ +qreal QmlGraphicsPath::startX() const +{ + Q_D(const QmlGraphicsPath); + return d->startX; +} + +void QmlGraphicsPath::setStartX(qreal x) +{ + Q_D(QmlGraphicsPath); + d->startX = x; +} + +qreal QmlGraphicsPath::startY() const +{ + Q_D(const QmlGraphicsPath); + return d->startY; +} + +void QmlGraphicsPath::setStartY(qreal y) +{ + Q_D(QmlGraphicsPath); + d->startY = y; +} + +/*! + \qmlproperty list Path::pathElements + This property holds the objects composing the path. + + \default + + A path can contain the following path objects: + \list + \i \l PathLine - a straight line to a given position. + \i \l PathQuad - a quadratic Bezier curve to a given position with a control point. + \i \l PathCubic - a cubic Bezier curve to a given position with two control points. + \i \l PathAttribute - an attribute at a given position in the path. + \i \l PathPercent - a way to spread out items along various segments of the path. + \endlist + + \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 2 +*/ + +QList* QmlGraphicsPath::pathElements() +{ + Q_D(QmlGraphicsPath); + return &(d->_pathElements); +} + +void QmlGraphicsPath::interpolate(int idx, const QString &name, qreal value) +{ + Q_D(QmlGraphicsPath); + if (!idx) + return; + + qreal lastValue = 0; + qreal lastPercent = 0; + int search = idx - 1; + while(search >= 0) { + const AttributePoint &point = d->_attributePoints.at(search); + if (point.values.contains(name)) { + lastValue = point.values.value(name); + lastPercent = point.origpercent; + break; + } + --search; + } + + ++search; + + const AttributePoint &curPoint = d->_attributePoints.at(idx); + + for (int ii = search; ii < idx; ++ii) { + AttributePoint &point = d->_attributePoints[ii]; + + qreal val = lastValue + (value - lastValue) * (point.origpercent - lastPercent) / (curPoint.origpercent - lastPercent); + point.values.insert(name, val); + } +} + +void QmlGraphicsPath::endpoint(const QString &name) +{ + Q_D(QmlGraphicsPath); + const AttributePoint &first = d->_attributePoints.first(); + qreal val = first.values.value(name); + for (int ii = d->_attributePoints.count() - 1; ii >= 0; ii--) { + const AttributePoint &point = d->_attributePoints.at(ii); + if (point.values.contains(name)) { + for (int jj = ii + 1; jj < d->_attributePoints.count(); ++jj) { + AttributePoint &setPoint = d->_attributePoints[jj]; + setPoint.values.insert(name, val); + } + return; + } + } +} + +void QmlGraphicsPath::processPath() +{ + Q_D(QmlGraphicsPath); + + d->_pointCache.clear(); + d->_attributePoints.clear(); + d->_path = QPainterPath(); + + AttributePoint first; + for (int ii = 0; ii < d->_attributes.count(); ++ii) + first.values[d->_attributes.at(ii)] = 0; + d->_attributePoints << first; + + d->_path.moveTo(d->startX, d->startY); + + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsCurve *curve = qobject_cast(pathElement)) { + curve->addToPath(d->_path); + AttributePoint p; + p.origpercent = d->_path.length(); + d->_attributePoints << p; + } else if (QmlGraphicsPathAttribute *attribute = qobject_cast(pathElement)) { + AttributePoint &point = d->_attributePoints.last(); + point.values[attribute->name()] = attribute->value(); + interpolate(d->_attributePoints.count() - 1, attribute->name(), attribute->value()); + } else if (QmlGraphicsPathPercent *percent = qobject_cast(pathElement)) { + AttributePoint &point = d->_attributePoints.last(); + point.values[QLatin1String("_qfx_percent")] = percent->value(); + interpolate(d->_attributePoints.count() - 1, QLatin1String("_qfx_percent"), percent->value()); + } + } + + // Fixup end points + const AttributePoint &last = d->_attributePoints.last(); + for (int ii = 0; ii < d->_attributes.count(); ++ii) { + if (!last.values.contains(d->_attributes.at(ii))) + endpoint(d->_attributes.at(ii)); + } + + // Adjust percent + qreal length = d->_path.length(); + qreal prevpercent = 0; + qreal prevorigpercent = 0; + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + const AttributePoint &point = d->_attributePoints.at(ii); + if (point.values.contains(QLatin1String("_qfx_percent"))) { //special string for QmlGraphicsPathPercent + if ( ii > 0) { + qreal scale = (d->_attributePoints[ii].origpercent/length - prevorigpercent) / + (point.values.value(QLatin1String("_qfx_percent"))-prevpercent); + d->_attributePoints[ii].scale = scale; + } + d->_attributePoints[ii].origpercent /= length; + d->_attributePoints[ii].percent = point.values.value(QLatin1String("_qfx_percent")); + prevorigpercent = d->_attributePoints[ii].origpercent; + prevpercent = d->_attributePoints[ii].percent; + } else { + d->_attributePoints[ii].origpercent /= length; + d->_attributePoints[ii].percent = d->_attributePoints[ii].origpercent; + } + } + + emit changed(); +} + +void QmlGraphicsPath::componentComplete() +{ + Q_D(QmlGraphicsPath); + QSet attrs; + // First gather up all the attributes + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) { + if (QmlGraphicsPathAttribute *attribute = + qobject_cast(pathElement)) + attrs.insert(attribute->name()); + } + d->_attributes = attrs.toList(); + + processPath(); + + foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) + connect(pathElement, SIGNAL(changed()), this, SLOT(processPath())); +} + +QPainterPath QmlGraphicsPath::path() const +{ + Q_D(const QmlGraphicsPath); + return d->_path; +} + +QStringList QmlGraphicsPath::attributes() const +{ + Q_D(const QmlGraphicsPath); + return d->_attributes; +} +#include + +static inline QBezier nextBezier(const QPainterPath &path, int *from, qreal *bezLength) +{ + const int lastElement = path.elementCount() - 1; + for (int i=*from; i <= lastElement; ++i) { + const QPainterPath::Element &e = path.elementAt(i); + + switch (e.type) { + case QPainterPath::MoveToElement: + break; + case QPainterPath::LineToElement: + { + QLineF line(path.elementAt(i-1), e); + *bezLength = line.length(); + QPointF a = path.elementAt(i-1); + QPointF delta = e - a; + *from = i+1; + return QBezier::fromPoints(a, a + delta / 3, a + 2 * delta / 3, e); + } + case QPainterPath::CurveToElement: + { + QBezier b = QBezier::fromPoints(path.elementAt(i-1), + e, + path.elementAt(i+1), + path.elementAt(i+2)); + *bezLength = b.length(); + *from = i+3; + return b; + } + default: + break; + } + } + *from = lastElement; + *bezLength = 0; + return QBezier(); +} + +void QmlGraphicsPath::createPointCache() const +{ + Q_D(const QmlGraphicsPath); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer pc; +#endif + qreal pathLength = d->_path.length(); + const int points = int(pathLength*2); + const int lastElement = d->_path.elementCount() - 1; + d->_pointCache.resize(points+1); + + int currElement = 0; + qreal bezLength = 0; + QBezier currBez = nextBezier(d->_path, &currElement, &bezLength); + qreal currLength = bezLength; + qreal epc = currLength / pathLength; + + for (int i = 0; i < d->_pointCache.size(); i++) { + //find which set we are in + qreal prevPercent = 0; + qreal prevOrigPercent = 0; + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + qreal percent = qreal(i)/points; + const AttributePoint &point = d->_attributePoints.at(ii); + if (percent < point.percent || ii == d->_attributePoints.count() - 1) { //### || is special case for very last item + qreal elementPercent = (percent - prevPercent); + + qreal spc = prevOrigPercent + elementPercent * point.scale; + + while (spc > epc) { + if (currElement > lastElement) + break; + currBez = nextBezier(d->_path, &currElement, &bezLength); + if (bezLength == 0.0) { + currLength = pathLength; + epc = 1.0; + break; + } + currLength += bezLength; + epc = currLength / pathLength; + } + qreal realT = (pathLength * spc - (currLength - bezLength)) / bezLength; + d->_pointCache[i] = currBez.pointAt(qBound(qreal(0), realT, qreal(1))); + break; + } + prevOrigPercent = point.origpercent; + prevPercent = point.percent; + } + } +} + +QPointF QmlGraphicsPath::pointAt(qreal p) const +{ + Q_D(const QmlGraphicsPath); + if (d->_pointCache.isEmpty()) { + createPointCache(); + } + int idx = qRound(p*d->_pointCache.size()); + if (idx >= d->_pointCache.size()) + idx = d->_pointCache.size() - 1; + else if (idx < 0) + idx = 0; + return d->_pointCache.at(idx); +} + +qreal QmlGraphicsPath::attributeAt(const QString &name, qreal percent) const +{ + Q_D(const QmlGraphicsPath); + if (percent < 0 || percent > 1) + return 0; + + for (int ii = 0; ii < d->_attributePoints.count(); ++ii) { + const AttributePoint &point = d->_attributePoints.at(ii); + + if (point.percent == percent) { + return point.values.value(name); + } else if (point.percent > percent) { + qreal lastValue = + ii?(d->_attributePoints.at(ii - 1).values.value(name)):0; + qreal lastPercent = + ii?(d->_attributePoints.at(ii - 1).percent):0; + qreal curValue = point.values.value(name); + qreal curPercent = point.percent; + + return lastValue + (curValue - lastValue) * (percent - lastPercent) / (curPercent - lastPercent); + } + } + + return 0; +} + +/****************************************************************************/ + +qreal QmlGraphicsCurve::x() const +{ + return _x; +} + +void QmlGraphicsCurve::setX(qreal x) +{ + if (_x != x) { + _x = x; + emit changed(); + } +} + +qreal QmlGraphicsCurve::y() const +{ + return _y; +} + +void QmlGraphicsCurve::setY(qreal y) +{ + if (_y != y) { + _y = y; + emit changed(); + } +} + +/****************************************************************************/ + +/*! + \qmlclass PathAttribute QFxPathAttribute + \brief The PathAttribute allows setting an attribute at a given position in a Path. + + The PathAttribute object allows attibutes consisting of a name and + a value to be specified for the endpoints of path segments. The + attributes are exposed to the delegate as + \l{qmlintroduction.html#attached-properties} {Attached Properties}. + The value of an attribute at any particular point is interpolated + from the PathAttributes bounding the point. + + The example below shows a path with the items scaled to 30% with + opacity 50% at the top of the path and scaled 100% with opacity + 100% at the bottom. Note the use of the PathView.scale and + PathView.opacity attached properties to set the scale and opacity + of the delegate. + + \table + \row + \o \image declarative-pathattribute.png + \o + \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 0 + \endtable + + \sa Path +*/ + +/*! + \internal + \class QmlGraphicsPathAttribute + \ingroup group_utility + \brief The QmlGraphicsPathAttribute class allows to set the value of an attribute at a given position in the path. + + \sa QmlGraphicsPath +*/ + + +/*! + \qmlproperty string PathAttribute::name + the name of the attribute to change. +*/ + +/*! + the name of the attribute to change. +*/ + +QString QmlGraphicsPathAttribute::name() const +{ + return _name; +} + +void QmlGraphicsPathAttribute::setName(const QString &name) +{ + _name = name; +} + +/*! + \qmlproperty string PathAttribute::value + the new value of the attribute. +*/ + +/*! + the new value of the attribute. +*/ +qreal QmlGraphicsPathAttribute::value() const +{ + return _value; +} + +void QmlGraphicsPathAttribute::setValue(qreal value) +{ + if (_value != value) { + _value = value; + emit changed(); + } +} + +/****************************************************************************/ + +/*! + \qmlclass PathLine QFxPathLine + \brief The PathLine defines a straight line. + + The example below creates a path consisting of a straight line from + 0,100 to 200,100: + + \qml + Path { + startX: 0; startY: 100 + PathLine { x: 200; y: 100 } + } + \endqml + + \sa Path, PathQuad, PathCubic +*/ + +/*! + \internal + \class QmlGraphicsPathLine + \ingroup group_utility + \brief The QmlGraphicsPathLine class defines a straight line. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlproperty real PathLine::x + \qmlproperty real PathLine::y + + Defines the end point of the line. +*/ + +void QmlGraphicsPathLine::addToPath(QPainterPath &path) +{ + path.lineTo(x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathQuad QFxPathQuad + \brief The PathQuad defines a quadratic Bezier curve with a control point. + + The following QML produces the path shown below: + \table + \row + \o \image declarative-pathquad.png + \o + \qml + Path { + startX: 0; startY: 0 + PathQuad x: 200; y: 0; controlX: 100; controlY: 150 } + } + \endqml + \endtable + + \sa Path, PathCubic, PathLine +*/ + +/*! + \internal + \class QmlGraphicsPathQuad + \ingroup group_utility + \brief The QmlGraphicsPathQuad class defines a quadratic Bezier curve with a control point. + + \sa QmlGraphicsPath +*/ + + +/*! + \qmlproperty real PathQuad::x + \qmlproperty real PathQuad::y + + Defines the end point of the curve. +*/ + +/*! + \qmlproperty real PathQuad::controlX + \qmlproperty real PathQuad::controlY + + Defines the position of the control point. +*/ + +/*! + the x position of the control point. +*/ +qreal QmlGraphicsPathQuad::controlX() const +{ + return _controlX; +} + +void QmlGraphicsPathQuad::setControlX(qreal x) +{ + if (_controlX != x) { + _controlX = x; + emit changed(); + } +} + + +/*! + the y position of the control point. +*/ +qreal QmlGraphicsPathQuad::controlY() const +{ + return _controlY; +} + +void QmlGraphicsPathQuad::setControlY(qreal y) +{ + if (_controlY != y) { + _controlY = y; + emit changed(); + } +} + +void QmlGraphicsPathQuad::addToPath(QPainterPath &path) +{ + path.quadTo(controlX(), controlY(), x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathCubic QFxPathCubic + \brief The PathCubic defines a cubic Bezier curve with two control points. + + The following QML produces the path shown below: + \table + \row + \o \image declarative-pathcubic.png + \o + \qml + Path { + startX: 20; startY: 0 + PathCubic { + x: 180; y: 0; control1X: -10; control1Y: 90 + control2X: 210; control2Y: 90 + } + } + \endqml + \endtable + + \sa Path, PathQuad, PathLine +*/ + +/*! + \internal + \class QmlGraphicsPathCubic + \ingroup group_utility + \brief The QmlGraphicsPathCubic class defines a cubic Bezier curve with two control points. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlproperty real PathCubic::x + \qmlproperty real PathCubic::y + + Defines the end point of the curve. +*/ + +/*! + \qmlproperty real PathCubic::control1X + \qmlproperty real PathCubic::control1Y + + Defines the position of the first control point. +*/ +qreal QmlGraphicsPathCubic::control1X() const +{ + return _control1X; +} + +void QmlGraphicsPathCubic::setControl1X(qreal x) +{ + if (_control1X != x) { + _control1X = x; + emit changed(); + } +} + +qreal QmlGraphicsPathCubic::control1Y() const +{ + return _control1Y; +} + +void QmlGraphicsPathCubic::setControl1Y(qreal y) +{ + if (_control1Y != y) { + _control1Y = y; + emit changed(); + } +} + +/*! + \qmlproperty real PathCubic::control2X + \qmlproperty real PathCubic::control2Y + + Defines the position of the second control point. +*/ +qreal QmlGraphicsPathCubic::control2X() const +{ + return _control2X; +} + +void QmlGraphicsPathCubic::setControl2X(qreal x) +{ + if (_control2X != x) { + _control2X = x; + emit changed(); + } +} + +qreal QmlGraphicsPathCubic::control2Y() const +{ + return _control2Y; +} + +void QmlGraphicsPathCubic::setControl2Y(qreal y) +{ + if (_control2Y != y) { + _control2Y = y; + emit changed(); + } +} + +void QmlGraphicsPathCubic::addToPath(QPainterPath &path) +{ + path.cubicTo(control1X(), control1Y(), control2X(), control2Y(), x(), y()); +} + +/****************************************************************************/ + +/*! + \qmlclass PathPercent QFxPathPercent + \brief The PathPercent manipulates the way a path is interpreted. + + The examples below show the normal distrubution of items along a path + compared to a distribution which places 50% of the items along the + PathLine section of the path. + \table + \row + \o \image declarative-nopercent.png + \o + \qml + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathLine { x: 150; y: 80 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + } + \endqml + \row + \o \image declarative-percent.png + \o + \qml + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathPercent { value: 0.25 } + PathLine { x: 150; y: 80 } + PathPercent { value: 0.75 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + PathPercent { value: 1 } + } + \endqml + \endtable + + \sa Path +*/ + +/*! + \internal + \class QmlGraphicsPathPercent + \ingroup group_utility + \brief The QmlGraphicsPathPercent class manipulates the way a path is interpreted. + + QmlGraphicsPathPercent allows you to bunch up items (or spread out items) along various + segments of a QmlGraphicsPathView's path. + + \sa QmlGraphicsPath + +*/ + +qreal QmlGraphicsPathPercent::value() const +{ + return _value; +} + +void QmlGraphicsPathPercent::setValue(qreal value) +{ + _value = value; +} +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicspath_p.h b/src/declarative/graphicsitems/qmlgraphicspath_p.h new file mode 100644 index 0000000..4710367 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspath_p.h @@ -0,0 +1,259 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSPATH_H +#define QMLGRAPHICSPATH_H + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPathElement : public QObject +{ + Q_OBJECT +public: + QmlGraphicsPathElement(QObject *parent=0) : QObject(parent) {} +Q_SIGNALS: + void changed(); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathAttribute : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) +public: + QmlGraphicsPathAttribute(QObject *parent=0) : QmlGraphicsPathElement(parent), _value(0) {} + + + QString name() const; + void setName(const QString &name); + + qreal value() const; + void setValue(qreal value); + +private: + QString _name; + qreal _value; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsCurve : public QmlGraphicsPathElement +{ + Q_OBJECT + + Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed) + Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed) +public: + QmlGraphicsCurve(QObject *parent=0) : QmlGraphicsPathElement(parent), _x(0), _y(0) {} + + qreal x() const; + void setX(qreal x); + + qreal y() const; + void setY(qreal y); + + virtual void addToPath(QPainterPath &) {} + +private: + qreal _x; + qreal _y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathLine : public QmlGraphicsCurve +{ + Q_OBJECT +public: + QmlGraphicsPathLine(QObject *parent=0) : QmlGraphicsCurve(parent) {} + + void addToPath(QPainterPath &path); +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathQuad : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed) + Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed) +public: + QmlGraphicsPathQuad(QObject *parent=0) : QmlGraphicsCurve(parent), _controlX(0), _controlY(0) {} + + qreal controlX() const; + void setControlX(qreal x); + + qreal controlY() const; + void setControlY(qreal y); + + void addToPath(QPainterPath &path); + +private: + qreal _controlX; + qreal _controlY; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathCubic : public QmlGraphicsCurve +{ + Q_OBJECT + + Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed) + Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed) + Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed) + Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed) +public: + QmlGraphicsPathCubic(QObject *parent=0) : QmlGraphicsCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {} + + qreal control1X() const; + void setControl1X(qreal x); + + qreal control1Y() const; + void setControl1Y(qreal y); + + qreal control2X() const; + void setControl2X(qreal x); + + qreal control2Y() const; + void setControl2Y(qreal y); + + void addToPath(QPainterPath &path); + +private: + int _control1X; + int _control1Y; + int _control2X; + int _control2Y; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsPathPercent : public QmlGraphicsPathElement +{ + Q_OBJECT + Q_PROPERTY(qreal value READ value WRITE setValue) +public: + QmlGraphicsPathPercent(QObject *parent=0) : QmlGraphicsPathElement(parent) {} + + qreal value() const; + void setValue(qreal value); + +private: + qreal _value; +}; + +class QmlGraphicsPathPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserStatus +{ + Q_OBJECT + + Q_INTERFACES(QmlParserStatus) + Q_PROPERTY(QList* pathElements READ pathElements) + Q_PROPERTY(qreal startX READ startX WRITE setStartX) + Q_PROPERTY(qreal startY READ startY WRITE setStartY) + Q_CLASSINFO("DefaultProperty", "pathElements") + Q_INTERFACES(QmlParserStatus) +public: + QmlGraphicsPath(QObject *parent=0); + ~QmlGraphicsPath(); + + QList* pathElements(); + + qreal startX() const; + void setStartX(qreal x); + + qreal startY() const; + void setStartY(qreal y); + + QPainterPath path() const; + QStringList attributes() const; + qreal attributeAt(const QString &, qreal) const; + QPointF pointAt(qreal) const; + +Q_SIGNALS: + void changed(); + +protected: + virtual void componentComplete(); + QmlGraphicsPath(QmlGraphicsPathPrivate &dd, QObject *parent); + +private Q_SLOTS: + void processPath(); + +private: + struct AttributePoint { + AttributePoint() : percent(0), scale(1), origpercent(0) {} + AttributePoint(const AttributePoint &other) + : percent(other.percent), scale(other.scale), origpercent(other.origpercent), values(other.values) {} + AttributePoint &operator=(const AttributePoint &other) { + percent = other.percent; scale = other.scale; origpercent = other.origpercent; values = other.values; return *this; + } + qreal percent; //massaged percent along the painter path + qreal scale; + qreal origpercent; //'real' percent along the painter path + QHash values; + }; + + void interpolate(int idx, const QString &name, qreal value); + void endpoint(const QString &name); + void createPointCache() const; + +private: + Q_DISABLE_COPY(QmlGraphicsPath) + Q_DECLARE_PRIVATE(QmlGraphicsPath) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPathElement) +QML_DECLARE_TYPE(QmlGraphicsPathAttribute) +QML_DECLARE_TYPE(QmlGraphicsCurve) +QML_DECLARE_TYPE(QmlGraphicsPathLine) +QML_DECLARE_TYPE(QmlGraphicsPathQuad) +QML_DECLARE_TYPE(QmlGraphicsPathCubic) +QML_DECLARE_TYPE(QmlGraphicsPathPercent) +QML_DECLARE_TYPE(QmlGraphicsPath) + +QT_END_HEADER + +#endif // QMLGRAPHICSPATH_H diff --git a/src/declarative/graphicsitems/qmlgraphicspath_p_p.h b/src/declarative/graphicsitems/qmlgraphicspath_p_p.h new file mode 100644 index 0000000..36e8945 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspath_p_p.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSPATH_P_H +#define QMLGRAPHICSPATH_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "private/qobject_p.h" +#include "qmlgraphicspath_p.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QmlGraphicsPathPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPath) + +public: + QmlGraphicsPathPrivate() : startX(0), startY(0) { } + + QPainterPath _path; + QList _pathElements; + mutable QVector _pointCache; + QList _attributePoints; + QStringList _attributes; + int startX; + int startY; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicspathview.cpp b/src/declarative/graphicsitems/qmlgraphicspathview.cpp new file mode 100644 index 0000000..52d2fa9 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspathview.cpp @@ -0,0 +1,913 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +static const int FlickThreshold = 5; + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,PathView,QmlGraphicsPathView) + +class QmlGraphicsPathViewAttached : public QObject +{ + Q_OBJECT +public: + QmlGraphicsPathViewAttached(QObject *parent) + : QObject(parent), mo(new QmlOpenMetaObject(this)) + { + } + + ~QmlGraphicsPathViewAttached() + { + QmlGraphicsPathView::attachedProperties.remove(parent()); + } + + QVariant value(const QByteArray &name) const + { + return mo->value(name); + } + void setValue(const QByteArray &name, const QVariant &val) + { + mo->setValue(name, val); + } + +private: + QmlOpenMetaObject *mo; +}; + + +/*! + \internal + \class QmlGraphicsPathView + \brief The QmlGraphicsPathView class lays out items provided by a model on a path. + + \ingroup group_views + + The model must be a \l QListModelInterface subclass. + + \sa QmlGraphicsPath +*/ + +/*! + \qmlclass PathView QFxPathView + \brief The PathView element lays out model-provided items on a path. + \inherits Item + + The model is typically provided by a QAbstractListModel "C++ model object", but can also be created directly in QML. + + The items are laid out along a path defined by a \l Path and may be flicked to scroll. + + \snippet doc/src/snippets/declarative/pathview/pathview.qml 0 + + \image pathview.gif + + \sa Path +*/ + +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsPathViewPrivate), parent) +{ + Q_D(QmlGraphicsPathView); + d->init(); +} + +QmlGraphicsPathView::QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsPathView); + d->init(); +} + +QmlGraphicsPathView::~QmlGraphicsPathView() +{ + Q_D(QmlGraphicsPathView); + if (d->ownModel) + delete d->model; +} + +/*! + \qmlproperty model PathView::model + This property holds the model providing data for the view. + + The model provides a set of data that is used to create the items for the view. + For large or dynamic datasets the model is usually provided by a C++ model object. + Models can also be created directly in XML, using the ListModel element. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsPathView::model() const +{ + Q_D(const QmlGraphicsPathView); + return d->modelVariant; +} + +void QmlGraphicsPathView::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsPathView); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + for (int i=0; iitems.count(); i++){ + QmlGraphicsItem *p = d->items[i]; + d->model->release(p); + } + d->items.clear(); + } + + d->modelVariant = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + } + d->firstIndex = 0; + d->pathOffset = 0; + d->regenerate(); + d->fixOffset(); +} + +/*! + \qmlproperty int PathView::count + This property holds the number of items in the model. +*/ +int QmlGraphicsPathView::count() const +{ + Q_D(const QmlGraphicsPathView); + return d->model ? d->model->count() : 0; +} + +/*! + \qmlproperty Path PathView::path + \default + This property holds the path used to lay out the items. + For more information see the \l Path documentation. +*/ +QmlGraphicsPath *QmlGraphicsPathView::path() const +{ + Q_D(const QmlGraphicsPathView); + return d->path; +} + +void QmlGraphicsPathView::setPath(QmlGraphicsPath *path) +{ + Q_D(QmlGraphicsPathView); + d->path = path; + connect(d->path, SIGNAL(changed()), this, SLOT(refill())); + d->regenerate(); +} + +/*! + \qmlproperty int PathView::currentIndex + This property holds the index of the current item. +*/ +int QmlGraphicsPathView::currentIndex() const +{ + Q_D(const QmlGraphicsPathView); + return d->currentIndex; +} + +void QmlGraphicsPathView::setCurrentIndex(int idx) +{ + Q_D(QmlGraphicsPathView); + if (d->model && d->model->count()) + idx = qAbs(idx % d->model->count()); + if (d->model && idx != d->currentIndex) { + d->currentIndex = idx; + if (d->model->count()) { + d->snapToCurrent(); + int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count(); + if (itemIndex < d->items.count()) + d->items.at(itemIndex)->setFocus(true); + } + emit currentIndexChanged(); + } +} + +/*! + \qmlproperty real PathView::offset + + The offset specifies how far along the path the items are from their initial positions. +*/ +qreal QmlGraphicsPathView::offset() const +{ + Q_D(const QmlGraphicsPathView); + return d->_offset; +} + +void QmlGraphicsPathView::setOffset(qreal offset) +{ + Q_D(QmlGraphicsPathView); + d->setOffset(offset); + d->updateCurrent(); +} + +void QmlGraphicsPathViewPrivate::setOffset(qreal o) +{ + Q_Q(QmlGraphicsPathView); + if (_offset != o) { + _offset = fmod(o, 100.0); + if (_offset < 0) + _offset = 100.0 + _offset; + q->refill(); + } +} + +/*! + \qmlproperty real PathView::snapPosition + + This property determines the position (0-100) the nearest item will snap to. +*/ +qreal QmlGraphicsPathView::snapPosition() const +{ + Q_D(const QmlGraphicsPathView); + return d->snapPos; +} + +void QmlGraphicsPathView::setSnapPosition(qreal pos) +{ + Q_D(QmlGraphicsPathView); + d->snapPos = pos/100; + d->fixOffset(); +} + +/*! + \qmlproperty real PathView::dragMargin + This property holds the maximum distance from the path that initiate mouse dragging. + + By default the path can only be dragged by clicking on an item. If + dragMargin is greater than zero, a drag can be initiated by clicking + within dragMargin pixels of the path. +*/ +qreal QmlGraphicsPathView::dragMargin() const +{ + Q_D(const QmlGraphicsPathView); + return d->dragMargin; +} + +void QmlGraphicsPathView::setDragMargin(qreal dragMargin) +{ + Q_D(QmlGraphicsPathView); + d->dragMargin = dragMargin; +} + +/*! + \qmlproperty component PathView::delegate + + The delegate provides a template describing what each item in the view should look and act like. + + Here is an example delegate: + \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 +*/ +QmlComponent *QmlGraphicsPathView::delegate() const +{ + Q_D(const QmlGraphicsPathView); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsPathView::setDelegate(QmlComponent *c) +{ + Q_D(QmlGraphicsPathView); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(c); + d->regenerate(); + } +} + +/*! + \qmlproperty int PathView::pathItemCount + This property holds the number of items visible on the path at any one time +*/ +int QmlGraphicsPathView::pathItemCount() const +{ + Q_D(const QmlGraphicsPathView); + return d->pathItems; +} + +void QmlGraphicsPathView::setPathItemCount(int i) +{ + Q_D(QmlGraphicsPathView); + if (i == d->pathItems) + return; + d->pathItems = i; + d->regenerate(); +} + +QPointF QmlGraphicsPathViewPrivate::pointNear(const QPointF &point, qreal *nearPercent) const +{ + //XXX maybe do recursively at increasing resolution. + qreal mindist = 1e10; // big number + QPointF nearPoint = path->pointAt(0); + qreal nearPc = 0; + for (qreal i=1; i < 1000; i++) { + QPointF pt = path->pointAt(i/1000.0); + QPointF diff = pt - point; + qreal dist = diff.x()*diff.x() + diff.y()*diff.y(); + if (dist < mindist) { + nearPoint = pt; + nearPc = i; + mindist = dist; + } + } + + if (nearPercent) + *nearPercent = nearPc / 10.0; + + return nearPoint; +} + + +void QmlGraphicsPathView::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + if (!d->items.count()) + return; + QPointF scenePoint = mapToScene(event->pos()); + int idx = 0; + for (; idx < d->items.count(); ++idx) { + QRectF rect = d->items.at(idx)->boundingRect(); + rect = d->items.at(idx)->mapToScene(rect).boundingRect(); + if (rect.contains(scenePoint)) + break; + } + if (idx == d->items.count() && d->dragMargin == 0.) // didn't click on an item + return; + + d->startPoint = d->pointNear(event->pos(), &d->startPc); + if (idx == d->items.count()) { + qreal distance = qAbs(event->pos().x() - d->startPoint.x()) + qAbs(event->pos().y() - d->startPoint.y()); + if (distance > d->dragMargin) + return; + } + + d->stealMouse = false; + d->lastElapsed = 0; + d->lastDist = 0; + QmlGraphicsItemPrivate::start(d->lastPosTime); + d->tl.clear(); +} + +void QmlGraphicsPathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + if (d->lastPosTime.isNull()) + return; + + if (!d->stealMouse) { + QPointF delta = event->pos() - d->startPoint; + if (qAbs(delta.x()) > FlickThreshold && qAbs(delta.y()) > FlickThreshold) + d->stealMouse = true; + } + + if (d->stealMouse) { + d->moveReason = QmlGraphicsPathViewPrivate::Mouse; + qreal newPc; + d->pointNear(event->pos(), &newPc); + qreal diff = newPc - d->startPc; + if (diff) { + setOffset(d->_offset + diff); + + if (diff > 50) + diff -= 100; + else if (diff < -50) + diff += 100; + + d->lastElapsed = QmlGraphicsItemPrivate::restart(d->lastPosTime); + d->lastDist = diff; + d->startPc = newPc; + } + } +} + +void QmlGraphicsPathView::mouseReleaseEvent(QGraphicsSceneMouseEvent *) +{ + Q_D(QmlGraphicsPathView); + if (d->lastPosTime.isNull()) + return; + + qreal elapsed = qreal(d->lastElapsed + QmlGraphicsItemPrivate::elapsed(d->lastPosTime)) / 1000.; + qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0; + if (d->model && d->model->count() && qAbs(velocity) > 5) { + if (velocity > 100) + velocity = 100; + else if (velocity < -100) + velocity = -100; + qreal inc = fmod(d->_offset - d->snapPos, 100.0 / d->model->count()); + qreal dist = qAbs(velocity/2 - fmod(velocity/2, 100.0 / d->model->count()) - inc); + d->moveOffset.setValue(d->_offset); + d->tl.accel(d->moveOffset, velocity, 10, dist); + d->tl.execute(d->fixupOffsetEvent); + } else { + d->fixOffset(); + } + + d->lastPosTime = QTime(); + d->stealMouse = false; + ungrabMouse(); +} + +bool QmlGraphicsPathView::sendMouseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsPathView); + QGraphicsSceneMouseEvent mouseEvent(event->type()); + QRectF myRect = mapToScene(QRectF(0, 0, width(), height())).boundingRect(); + QGraphicsScene *s = scene(); + QmlGraphicsItem *grabber = s ? qobject_cast(s->mouseGrabberItem()) : 0; + if ((d->stealMouse || myRect.contains(event->scenePos().toPoint())) && (!grabber || !grabber->keepMouseGrab())) { + mouseEvent.setAccepted(false); + for (int i = 0x1; i <= 0x10; i <<= 1) { + if (event->buttons() & i) { + Qt::MouseButton button = Qt::MouseButton(i); + mouseEvent.setButtonDownPos(button, mapFromScene(event->buttonDownPos(button))); + } + } + mouseEvent.setScenePos(event->scenePos()); + mouseEvent.setLastScenePos(event->lastScenePos()); + mouseEvent.setPos(mapFromScene(event->scenePos())); + mouseEvent.setLastPos(mapFromScene(event->lastScenePos())); + + switch(mouseEvent.type()) { + case QEvent::GraphicsSceneMouseMove: + mouseMoveEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMousePress: + mousePressEvent(&mouseEvent); + break; + case QEvent::GraphicsSceneMouseRelease: + mouseReleaseEvent(&mouseEvent); + break; + default: + break; + } + grabber = qobject_cast(s->mouseGrabberItem()); + if (grabber && d->stealMouse && !grabber->keepMouseGrab() && grabber != this) + grabMouse(); + + return d->stealMouse; + } else if (!d->lastPosTime.isNull()) { + d->lastPosTime = QTime(); + } + return false; +} + +bool QmlGraphicsPathView::sceneEventFilter(QGraphicsItem *i, QEvent *e) +{ + if (!isVisible()) + return QmlGraphicsItem::sceneEventFilter(i, e); + + switch (e->type()) { + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMouseRelease: + { + bool ret = sendMouseEvent(static_cast(e)); + if (e->type() == QEvent::GraphicsSceneMouseRelease) + return ret; + break; + } + default: + break; + } + + return QmlGraphicsItem::sceneEventFilter(i, e); +} + +void QmlGraphicsPathView::componentComplete() +{ + Q_D(QmlGraphicsPathView); + QmlGraphicsItem::componentComplete(); + d->regenerate(); + + // move to correct offset + if (d->items.count()) { + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count(); + + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) { + d->moveOffset.setValue(targetOffset); + } + } +} + +void QmlGraphicsPathViewPrivate::regenerate() +{ + Q_Q(QmlGraphicsPathView); + if (!q->isComponentComplete()) + return; + + for (int i=0; i= model->count()) + firstIndex = model->count()-1; + if (pathOffset >= model->count()) + pathOffset = model->count()-1; + + int numItems = pathItems >= 0 ? pathItems : model->count(); + for (int i=0; i < numItems && i < model->count(); ++i){ + int index = (i + firstIndex) % model->count(); + QmlGraphicsItem *item = getItem(index); + if (!item) { + qWarning() << "PathView: Cannot create item, index" << (i + firstIndex) % model->count(); + return; + } + items.append(item); + item->setZValue(i); + if (currentIndex == index) + item->setFocus(true); + } + q->refill(); +} + +void QmlGraphicsPathViewPrivate::updateItem(QmlGraphicsItem *item, qreal percent) +{ + if (QObject *obj = QmlGraphicsPathView::qmlAttachedProperties(item)) { + foreach(const QString &attr, path->attributes()) + static_cast(obj)->setValue(attr.toUtf8(), path->attributeAt(attr, percent)); + } + QPointF pf = path->pointAt(percent); + item->setX(pf.x() - item->width()*item->scale()/2); + item->setY(pf.y() - item->height()*item->scale()/2); +} + +void QmlGraphicsPathView::refill() +{ + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + + QList positions; + for (int i=0; iitems.count(); i++){ + qreal percent = i * (100. / d->items.count()); + percent = percent + d->_offset; + percent = fmod(percent,100.); + positions << qAbs(percent/100.0); + } + + if (d->pathItems==-1) { + for (int i=0; iupdateItem(d->items.at(i), positions[i]); + return; + } + + QList rotatedPositions; + for (int i=0; iitems.count(); i++) + rotatedPositions << positions[(i + d->pathOffset + d->items.count()) % d->items.count()]; + + int wrapIndex= -1; + for (int i=0; iitems.count()-1; i++) { + if (rotatedPositions[i] > rotatedPositions[i+1]){ + wrapIndex = i; + break; + } + } + if (wrapIndex != -1 ){ + //A wraparound has occured + if (wrapIndex < d->items.count()/2){ + while(wrapIndex-- >= 0){ + QmlGraphicsItem* p = d->items.takeFirst(); + d->updateItem(p, 0.0); + d->releaseItem(p); + d->firstIndex++; + d->firstIndex %= d->model->count(); + int index = (d->firstIndex + d->items.count())%d->model->count(); + QmlGraphicsItem *item = d->getItem(index); + item->setZValue(wrapIndex); + if (d->currentIndex == index) + item->setFocus(true); + d->items << item; + d->pathOffset++; + d->pathOffset=d->pathOffset % d->items.count(); + } + } else { + while(wrapIndex++ < d->items.count()-1){ + QmlGraphicsItem* p = d->items.takeLast(); + d->updateItem(p, 1.0); + d->releaseItem(p); + d->firstIndex--; + if (d->firstIndex < 0) + d->firstIndex = d->model->count() - 1; + QmlGraphicsItem *item = d->getItem(d->firstIndex); + item->setZValue(d->firstIndex); + if (d->currentIndex == d->firstIndex) + item->setFocus(true); + d->items.prepend(item); + d->pathOffset--; + if (d->pathOffset < 0) + d->pathOffset = d->items.count() - 1; + } + } + for (int i=0; iitems.count(); i++) + rotatedPositions[i] = positions[(i + d->pathOffset + d->items.count()) + % d->items.count()]; + } + for (int i=0; iitems.count(); i++) + d->updateItem(d->items.at(i), rotatedPositions[i]); +} + +void QmlGraphicsPathView::itemsInserted(int modelIndex, int count) +{ + //XXX support animated insertion + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + if (d->pathItems == -1) { + for (int i = 0; i < count; ++i) { + QmlGraphicsItem *item = d->getItem(modelIndex + i); + item->setZValue(modelIndex + i); + d->items.insert(modelIndex + i, item); + } + refill(); + } else { + //XXX This is pretty heavy handed until we reference count items. + d->regenerate(); + } + + // make sure the current item is still at the snap position + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) + d->moveOffset.setValue(targetOffset); +} + +void QmlGraphicsPathView::itemsRemoved(int modelIndex, int count) +{ + //XXX support animated removal + Q_D(QmlGraphicsPathView); + if (!d->isValid() || !isComponentComplete()) + return; + if (d->pathItems == -1) { + for (int i = 0; i < count; ++i) { + QmlGraphicsItem* p = d->items.takeAt(modelIndex); + d->model->release(p); + } + d->snapToCurrent(); + refill(); + } else { + d->regenerate(); + } + + if (d->model->count() == 0) { + d->currentIndex = -1; + d->moveOffset.setValue(0); + return; + } + + // make sure the current item is still at the snap position + if (d->currentIndex >= d->model->count()) + d->currentIndex = d->model->count() - 1; + int itemIndex = (d->currentIndex - d->firstIndex + d->model->count())%d->model->count(); + itemIndex += d->pathOffset; + itemIndex %= d->items.count(); + qreal targetOffset = fmod(100 + (d->snapPos*100) - 100.0 * itemIndex / d->items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset != d->_offset) + d->moveOffset.setValue(targetOffset); +} + +void QmlGraphicsPathView::createdItem(int index, QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsPathView); + if (d->requestedIndex != index) { + item->setParentItem(this); + d->updateItem(item, index < d->firstIndex ? 0.0 : 1.0); + } +} + +void QmlGraphicsPathView::destroyingItem(QmlGraphicsItem *item) +{ + Q_UNUSED(item); +} + +void QmlGraphicsPathView::ticked() +{ + Q_D(QmlGraphicsPathView); + d->updateCurrent(); +} + +// find the item closest to the snap position +int QmlGraphicsPathViewPrivate::calcCurrentIndex() +{ + int current = -1; + if (model && items.count()) { + _offset = fmod(_offset, 100.0); + if (_offset < 0) + _offset += 100.0; + + if (pathItems == -1) { + qreal delta = fmod(_offset - snapPos, 100.0); + if (delta < 0) + delta = 100.0 + delta; + int ii = model->count() - qRound(delta * model->count() / 100); + if (ii < 0) + ii = 0; + current = ii; + } else { + qreal bestDiff=1e9; + int bestI=-1; + for (int i=0; icount()); + } + + return current; +} + +void QmlGraphicsPathViewPrivate::updateCurrent() +{ + Q_Q(QmlGraphicsPathView); + if (moveReason != Mouse) + return; + int idx = calcCurrentIndex(); + if (model && idx != currentIndex) { + currentIndex = idx; + int itemIndex = (idx - firstIndex + model->count()) % model->count(); + if (itemIndex < items.count()) + items.at(itemIndex)->setFocus(true); + emit q->currentIndexChanged(); + } +} + +void QmlGraphicsPathViewPrivate::fixOffset() +{ + Q_Q(QmlGraphicsPathView); + if (model && items.count()) { + int curr = calcCurrentIndex(); + if (curr != currentIndex) + q->setCurrentIndex(curr); + else + snapToCurrent(); + } +} + +void QmlGraphicsPathViewPrivate::snapToCurrent() +{ + if (!model || model->count() <= 0) + return; + + int itemIndex = (currentIndex - firstIndex + model->count()) % model->count(); + + //Rounds is the number of times round to make the current item visible + int rounds = itemIndex / items.count(); + int otherWayRounds = (model->count() - (itemIndex)) / items.count() + 1; + if (otherWayRounds < rounds) + rounds = -otherWayRounds; + + itemIndex += pathOffset; + itemIndex %= items.count(); + qreal targetOffset = fmod(100 + (snapPos*100) - 100.0 * itemIndex / items.count(), 100); + + if (targetOffset < 0) + targetOffset = 100.0 + targetOffset; + if (targetOffset == _offset && rounds == 0) + return; + + moveReason = Other; + tl.clear(); + moveOffset.setValue(_offset); + + if (rounds!=0){ + //Compensate if the targetOffset would bring the target it from off the screen + qreal distance = targetOffset - _offset; + if (distance <= -50) + rounds--; + if (distance > 50) + rounds++; + tl.move(moveOffset, targetOffset + 100.0*(-rounds), QEasingCurve(QEasingCurve::InOutQuad), + int(100*items.count()*qMax((qreal)(2.0/items.count()),(qreal)qAbs(rounds)))); + tl.execute(fixupOffsetEvent); + return; + } + + if (targetOffset - _offset > 50.0) { + qreal distance = 100 - targetOffset + _offset; + tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * _offset / distance)); + tl.set(moveOffset, 100.0); + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * (100-targetOffset) / distance)); + } else if (targetOffset - _offset <= -50.0) { + qreal distance = 100 - _offset + targetOffset; + tl.move(moveOffset, 100.0, QEasingCurve(QEasingCurve::OutQuad), int(200 * (100-_offset) / distance)); + tl.set(moveOffset, 0.0); + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InQuad), int(200 * targetOffset / distance)); + } else { + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), 200); + } +} + +QHash QmlGraphicsPathView::attachedProperties; +QObject *QmlGraphicsPathView::qmlAttachedProperties(QObject *obj) +{ + QObject *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsPathViewAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; +} + +QT_END_NAMESPACE + +#include "qmlgraphicspathview.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicspathview_p.h b/src/declarative/graphicsitems/qmlgraphicspathview_p.h new file mode 100644 index 0000000..f1fed98 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspathview_p.h @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSPATHVIEW_H +#define QMLGRAPHICSPATHVIEW_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QListModelInterface; +class QmlGraphicsPathViewPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsPathView : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlGraphicsPath *path READ path WRITE setPath) + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) + Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged) + Q_PROPERTY(qreal snapPosition READ snapPosition WRITE setSnapPosition) + Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin) + Q_PROPERTY(int count READ count) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount) + +public: + QmlGraphicsPathView(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsPathView(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlGraphicsPath *path() const; + void setPath(QmlGraphicsPath *); + + int currentIndex() const; + void setCurrentIndex(int idx); + + qreal offset() const; + void setOffset(qreal offset); + + qreal snapPosition() const; + void setSnapPosition(qreal pos); + + qreal dragMargin() const; + void setDragMargin(qreal margin); + + int count() const; + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int pathItemCount() const; + void setPathItemCount(int); + + static QObject *qmlAttachedProperties(QObject *); + +Q_SIGNALS: + void currentIndexChanged(); + void offsetChanged(); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *); + bool sendMouseEvent(QGraphicsSceneMouseEvent *event); + bool sceneEventFilter(QGraphicsItem *, QEvent *); + void componentComplete(); + +private Q_SLOTS: + void refill(); + void ticked(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsPathView(QmlGraphicsPathViewPrivate &dd, QmlGraphicsItem *parent); + +private: + friend class QmlGraphicsPathViewAttached; + static QHash attachedProperties; + Q_DISABLE_COPY(QmlGraphicsPathView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsPathView) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPathView) +QML_DECLARE_TYPEINFO(QmlGraphicsPathView, QML_HAS_ATTACHED_PROPERTIES) +QT_END_HEADER + +#endif // QMLGRAPHICSPATHVIEW_H diff --git a/src/declarative/graphicsitems/qmlgraphicspathview_p_p.h b/src/declarative/graphicsitems/qmlgraphicspathview_p_p.h new file mode 100644 index 0000000..a0f2a3d --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspathview_p_p.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSPATHVIEW_P_H +#define QMLGRAPHICSPATHVIEW_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdatetime.h" +#include "qmlgraphicspathview_p.h" +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsvisualitemmodel_p.h" +#include "qml.h" +#include "private/qmlanimation_p_p.h" + +QT_BEGIN_NAMESPACE + +typedef struct PathViewItem{ + int index; + QmlGraphicsItem* item; +}PathViewItem; + +class QmlGraphicsPathViewPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsPathView) + +public: + QmlGraphicsPathViewPrivate() + : path(0), currentIndex(0), startPc(0), lastDist(0) + , lastElapsed(0), stealMouse(false), ownModel(false), activeItem(0) + , snapPos(0), dragMargin(0), moveOffset(this, &QmlGraphicsPathViewPrivate::setOffset) + , firstIndex(0), pathItems(-1), pathOffset(0), requestedIndex(-1), model(0) + , moveReason(Other) + { + fixupOffsetEvent = QmlTimeLineEvent::timeLineEvent(&moveOffset, this); + } + + void init() + { + Q_Q(QmlGraphicsPathView); + _offset = 0; + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemIsFocusScope); + q->setFiltersChildEvents(true); + q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked())); + } + + QmlGraphicsItem *getItem(int modelIndex) { + Q_Q(QmlGraphicsPathView); + requestedIndex = modelIndex; + QmlGraphicsItem *item = model->item(modelIndex); + if (item) + item->setParentItem(q); + requestedIndex = -1; + return item; + } + void releaseItem(QmlGraphicsItem *item) { + model->release(item); + } + + bool isValid() const { + return model && model->count() > 0 && model->isValid() && path; + } + + int calcCurrentIndex(); + void updateCurrent(); + void fixOffset(); + void setOffset(qreal offset); + void regenerate(); + void updateItem(QmlGraphicsItem *, qreal); + void snapToCurrent(); + QPointF pointNear(const QPointF &point, qreal *nearPercent=0) const; + + QmlGraphicsPath *path; + int currentIndex; + qreal startPc; + QPointF startPoint; + qreal lastDist; + int lastElapsed; + qreal _offset; + bool stealMouse : 1; + bool ownModel : 1; + QTime lastPosTime; + QPointF lastPos; + QmlGraphicsItem *activeItem; + qreal snapPos; + qreal dragMargin; + QmlTimeLine tl; + QmlTimeLineValueProxy moveOffset; + QmlTimeLineEvent fixupOffsetEvent; + int firstIndex; + int pathItems; + int pathOffset; + int requestedIndex; + QList items; + QmlGraphicsVisualModel *model; + QVariant modelVariant; + enum MovementReason { Other, Key, Mouse }; + MovementReason moveReason; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicspixmapcache.cpp b/src/declarative/graphicsitems/qmlgraphicspixmapcache.cpp new file mode 100644 index 0000000..fdf489c --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspixmapcache.cpp @@ -0,0 +1,282 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicspixmapcache_p.h" +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QSharedNetworkReply; +typedef QHash QmlGraphicsSharedNetworkReplyHash; +static QmlGraphicsSharedNetworkReplyHash qfxActiveNetworkReplies; + +class QSharedNetworkReply +{ +public: + QSharedNetworkReply(QNetworkReply *r) : reply(r), refCount(1) {} + ~QSharedNetworkReply() + { + reply->deleteLater(); + } + QNetworkReply *reply; + QPixmap pixmap; // ensure reference to pixmap to QPixmapCache does not discard + + int refCount; + void addRef() + { + ++refCount; + } + void release() + { + Q_ASSERT(refCount > 0); + --refCount; + if (refCount == 0) { + QString key = reply->url().toString(); + qfxActiveNetworkReplies.remove(key); + delete this; + } + } +}; + +static bool readImage(QIODevice *dev, QPixmap *pixmap) + { + QImageReader imgio(dev); + +//#define QT_TEST_SCALED_SIZE +#ifdef QT_TEST_SCALED_SIZE + /* + Some mechanism is needed for loading images at a limited size, especially + for remote images. Loading only thumbnails of remote progressive JPEG + images can be efficient. (Qt jpeg handler does not do so currently) + */ + + QSize limit(60,60); + QSize sz = imgio.size(); + if (sz.width() > limit.width() || sz.height() > limit.height()) { + sz.scale(limit,Qt::KeepAspectRatio); + imgio.setScaledSize(sz); + } +#endif + + QImage img; + if (imgio.read(&img)) { +#ifdef QT_TEST_SCALED_SIZE + if (!sz.isValid()) + img = img.scaled(limit,Qt::KeepAspectRatio); +#endif + *pixmap = QPixmap::fromImage(img); + return true; + } else { + qWarning() << imgio.errorString(); + return false; + } + } + +/*! + \internal + \class QmlGraphicsPixmapCache + \brief Enacapsultes a pixmap for QmlGraphics items. + + This class is NOT reentrant. + */ + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + +/*! + Finds the cached pixmap corresponding to \a url. + A previous call to get() must have requested the URL, + and the QNetworkReply must have finished before calling + this function. + + Returns true if the image was loaded without error. +*/ +bool QmlGraphicsPixmapCache::find(const QUrl& url, QPixmap *pixmap) +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer perf; +#endif + + QString key = url.toString(); + bool ok = true; + if (!QPixmapCache::find(key,pixmap)) { +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(url); + if (!lf.isEmpty()) { + QFile f(lf); + if (f.open(QIODevice::ReadOnly)) { + if (!readImage(&f, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + ok = false; + } + } else { + *pixmap = QPixmap(); + ok = false; + } + } else +#endif + { + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) { + // API usage error + qWarning() << "QmlGraphicsPixmapCache: URL not loaded" << url; + ok = false; + } else { + if ((*iter)->reply->error()) { + qWarning() << "Network error loading" << url << (*iter)->reply->errorString(); + *pixmap = QPixmap(); + ok = false; + } else if (!readImage((*iter)->reply, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + ok = false; + } else { + if ((*iter)->refCount > 1) + (*iter)->pixmap = *pixmap; + } + (*iter)->release(); + } + } + QPixmapCache::insert(key, *pixmap); + } else { + ok = !pixmap->isNull(); +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + if (url.scheme()!=QLatin1String("file")) +#endif + // We may be the second finder. Still need to check for active replies. + { + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter != qfxActiveNetworkReplies.end()) + (*iter)->release(); + } + } + return ok; +} + +/*! + Starts a network request to load \a url. + + Returns a QNetworkReply if the image is not immediately available, otherwise + returns 0. Caller should connect to QNetworkReply::finished() to then call + find() when the image is available. + + The returned QNetworkReply will be deleted when all get() calls are + matched by a corresponding find() call. +*/ +QNetworkReply *QmlGraphicsPixmapCache::get(QmlEngine *engine, const QUrl& url, QPixmap *pixmap) +{ +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(url); + if (!lf.isEmpty()) { + QString key = url.toString(); + if (!QPixmapCache::find(key,pixmap)) { + QFile f(lf); + if (f.open(QIODevice::ReadOnly)) { + if (!readImage(&f, pixmap)) { + qWarning() << "Format error loading" << url; + *pixmap = QPixmap(); + } + } else + *pixmap = QPixmap(); + QPixmapCache::insert(key, *pixmap); + } + return 0; + } +#endif + + QString key = url.toString(); + if (QPixmapCache::find(key,pixmap)) { + return 0; + } + + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) { + QNetworkRequest req(url); + QSharedNetworkReply *item = new QSharedNetworkReply(engine->networkAccessManager()->get(req)); + iter = qfxActiveNetworkReplies.insert(key, item); + } else { + (*iter)->addRef(); + } + + return (*iter)->reply; +} + +/*! + Cancels a previous call to get(). + + May also cancel loading (eg. if no other pending request). + + Any connections from the QNetworkReply returned by get() to \a obj will be + disconnected. +*/ +void QmlGraphicsPixmapCache::cancelGet(const QUrl& url, QObject* obj) +{ + QString key = url.toString(); + QmlGraphicsSharedNetworkReplyHash::Iterator iter = qfxActiveNetworkReplies.find(key); + if (iter == qfxActiveNetworkReplies.end()) + return; + if (obj) + QObject::disconnect((*iter)->reply, 0, obj, 0); + (*iter)->release(); +} + +/*! + This function is mainly for test verification. It returns the number of + requests that are still unfinished. +*/ +int QmlGraphicsPixmapCache::pendingRequests() +{ + return qfxActiveNetworkReplies.count(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicspixmapcache_p.h b/src/declarative/graphicsitems/qmlgraphicspixmapcache_p.h new file mode 100644 index 0000000..29de98d --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspixmapcache_p.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSPIXMAPCACHE_H +#define QMLGRAPHICSPIXMAPCACHE_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlEngine; +class QNetworkReply; +class Q_DECLARATIVE_EXPORT QmlGraphicsPixmapCache +{ +public: + static QNetworkReply *get(QmlEngine *, const QUrl& url, QPixmap *pixmap); + static void cancelGet(const QUrl& url, QObject* obj); + + static bool find(const QUrl& url, QPixmap *pixmap); // url must have been passed to QmlGraphicsPixmapCache::get, and any returned reply finished. + + static int pendingRequests(); // mainly for test verification +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLGRAPHICSPIXMAPCACHE_H diff --git a/src/declarative/graphicsitems/qmlgraphicspositioners.cpp b/src/declarative/graphicsitems/qmlgraphicspositioners.cpp new file mode 100644 index 0000000..ba696e7 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspositioners.cpp @@ -0,0 +1,921 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include "qml.h" +#include +#include +#include +#include +#include +#include + + +QT_BEGIN_NAMESPACE + +/*! + \internal + \class QmlGraphicsBasePositioner + \ingroup group_layouts + \brief The QmlGraphicsBasePositioner class provides a base for QmlGraphics layouts. + + To create a QmlGraphics Positioner, simply subclass QmlGraphicsBasePositioner and implement + doLayout(), which is automatically called when the layout might need + updating. + + It is strongly recommended that in your implementation of doLayout() + that you use the move, remove and add transitions when those conditions + arise. You can use the applyAdd, applyMove and applyRemove functions + to do this easily. + + Note also that the subclass is responsible for adding the + spacing in between items. +*/ +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsBasePositionerPrivate), parent) +{ + Q_D(QmlGraphicsBasePositioner); + d->init(at); +} + +QmlGraphicsBasePositioner::QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsBasePositioner); + d->init(at); +} + +int QmlGraphicsBasePositioner::spacing() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->_spacing; +} + +void QmlGraphicsBasePositioner::setSpacing(int s) +{ + Q_D(QmlGraphicsBasePositioner); + if (s==d->_spacing) + return; + d->_spacing = s; + prePositioning(); + emit spacingChanged(); +} + +QmlTransition *QmlGraphicsBasePositioner::move() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->moveTransition; +} + +void QmlGraphicsBasePositioner::setMove(QmlTransition *mt) +{ + Q_D(QmlGraphicsBasePositioner); + d->moveTransition = mt; +} + +QmlTransition *QmlGraphicsBasePositioner::add() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->addTransition; +} + +void QmlGraphicsBasePositioner::setAdd(QmlTransition *add) +{ + Q_D(QmlGraphicsBasePositioner); + d->addTransition = add; +} + +QmlTransition *QmlGraphicsBasePositioner::remove() const +{ + Q_D(const QmlGraphicsBasePositioner); + return d->removeTransition; +} + +void QmlGraphicsBasePositioner::setRemove(QmlTransition *remove) +{ + Q_D(QmlGraphicsBasePositioner); + d->removeTransition = remove; +} + +void QmlGraphicsBasePositioner::componentComplete() +{ + QmlGraphicsItem::componentComplete(); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + prePositioning(); +} + +QVariant QmlGraphicsBasePositioner::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + if (change == ItemChildAddedChange || + change == ItemChildRemovedChange) { + prePositioning(); + } + + return QmlGraphicsItem::itemChange(change, value); +} + +bool QmlGraphicsBasePositioner::event(QEvent *e) +{ + Q_D(QmlGraphicsBasePositioner); + if (e->type() == QEvent::User) { + d->_ep = false; + d->_stableItems += d->_newItems; + d->_leavingItems.clear(); + d->_newItems.clear(); + return true; + } + return QmlGraphicsItem::event(e); +} + +/*! + Items that have just been added to the positioner. This includes invisible items + that have turned visible. +*/ +QSet* QmlGraphicsBasePositioner::newItems() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_newItems; +} + +/*! + Items that are visible in the positioner, not including ones that have just been added. +*/ +QSet* QmlGraphicsBasePositioner::items() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_stableItems; +} + +/*! + Items that have just left the positioner. This includes visible items + that have turned invisible. +*/ +QSet* QmlGraphicsBasePositioner::leavingItems() +{ + Q_D(QmlGraphicsBasePositioner); + return &d->_leavingItems; +} + +void QmlGraphicsBasePositioner::prePositioning() +{ + Q_D(QmlGraphicsBasePositioner); + if (!isComponentComplete() || d->_movingItem) + return; + + if (!d->_ep) { + d->_ep = true; + QCoreApplication::postEvent(this, new QEvent(QEvent::User)); + } + QSet allItems; + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child) + continue; + if (!d->_items.contains(child)){ + QObject::connect(child, SIGNAL(visibleChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(opacityChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(heightChanged()), + this, SLOT(prePositioning())); + QObject::connect(child, SIGNAL(widthChanged()), + this, SLOT(prePositioning())); + d->_items += child; + } + if (child->opacity() == 0.0){ + if (d->_stableItems.contains(child)){ + d->_leavingItems += child; + d->_stableItems -= child; + } + }else if (!d->_stableItems.contains(child)){ + d->_newItems+=child; + } + allItems += child; + } + QSet deletedItems = d->_items - allItems; + foreach(QmlGraphicsItem *child, d->_items){ + if (!allItems.contains(child)){ + if (!deletedItems.contains(child)) { + QObject::disconnect(child, SIGNAL(opacityChanged()), + this, SLOT(prePositioning())); + QObject::disconnect(child, SIGNAL(heightChanged()), + this, SLOT(prePositioning())); + QObject::disconnect(child, SIGNAL(widthChanged()), + this, SLOT(prePositioning())); + } + d->_items -= child; + } + } + d->_animated.clear(); + doPositioning(); + finishApplyTransitions(); + //Set implicit size to the size of its children + //###To keep this valid, do we need to update on pos change as well? + qreal h = 0.0f; + qreal w = 0.0f; + foreach(QmlGraphicsItem *child, d->_items){ + if(!child->isVisible() || child->opacity() <= 0) + continue; + h = qMax(h, child->y() + child->height()); + w = qMax(w, child->x() + child->width()); + } + setImplicitHeight(h); + setImplicitWidth(w); +} + +void QmlGraphicsBasePositioner::applyTransition(const QList >& changes, QmlGraphicsItem* target, QmlStateOperation::ActionList &actions) +{ + Q_D(QmlGraphicsBasePositioner); + if (!target) + return; + + for (int ii=0; ii_animated << target; +} + +void QmlGraphicsBasePositioner::finishApplyTransitions() +{ + Q_D(QmlGraphicsBasePositioner); + // Note that if a transition is not set the transition manager will + // apply the changes directly, in the case someone uses applyAdd/Move/Remove + // without testing add()/move()/remove(). + d->addTransitionManager.transition(d->addActions, d->addTransition); + d->moveTransitionManager.transition(d->moveActions, d->moveTransition); + d->removeTransitionManager.transition(d->removeActions, d->removeTransition); + d->addActions.clear(); + d->moveActions.clear(); + d->removeActions.clear(); +} +void QmlGraphicsBasePositioner::setMovingItem(QmlGraphicsItem *i) +{ + Q_D(QmlGraphicsBasePositioner); + d->_movingItem = i; +} + +/*! + Applies the positioner's add transition to the \a target item.\a changes is a list of property,value + pairs which will be changed on the target using the add transition. +*/ +void QmlGraphicsBasePositioner::applyAdd(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->addActions); +} + +/*! + Applies the positioner's move transition to the \a target.\a changes is a list of property,value pairs + which will be changed on the target using the move transition. +*/ +void QmlGraphicsBasePositioner::applyMove(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->moveActions); +} + +/*! + Applies the positioner's remove transition to the \a target item.\a changes is a list of + property,value pairs which will be changed on the target using the remove transition. +*/ +void QmlGraphicsBasePositioner::applyRemove(const QList >& changes, QmlGraphicsItem* target) +{ + Q_D(QmlGraphicsBasePositioner); + applyTransition(changes,target, d->removeActions); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Column,QmlGraphicsColumn) +/*! + \qmlclass Column QFxColumn + \brief The Column item lines up its children vertically. + \inherits Item + + The Column item positions its child items so that they are vertically + aligned and not overlapping. Spacing between items can be added. + + The below example positions differently shaped rectangles using a Column. + \table + \row + \o \image verticalpositioner_example.png + \o + \qml +Column { + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } +} + \endqml + \endtable + + Column also provides for transitions to be set when items are added, moved, + or removed in the positioner. Adding and removing apply both to items which are deleted + or have their position in the document changed so as to no longer be children of the positioner, + as well as to items which have their opacity set to or from zero so as to appear or disappear. + + \table + \row + \o \image verticalpositioner_transition.gif + \o + \qml +Column { + spacing: 2 + remove: ... + add: ... + move: ... + ... +} + \endqml + \endtable + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. + +*/ +/*! + \qmlproperty Transition Column::remove + This property holds the transition to apply when removing an item from the positioner. The transition is only applied to the removed items. + + Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. + + Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. + + \table + \row + \o \image positioner-remove.gif + \o + \qml +Column { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + \endtable + +*/ +/*! + \qmlproperty Transition Column::add + This property holds the transition to be applied when adding an item to the positioner. The transition will only be applied to the added item(s). + + Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. + + \table + \row + \o \image positioner-add.gif + \o + \qml +Column { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + \endtable + +*/ +/*! + \qmlproperty Transition Column::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or when items resize themselves. + + \table + \row + \o \image positioner-move.gif + \o + \qml +Column { + move: Transition { + NumberAnimation { + properties: "y" + ease: "easeOutBounce" + } + } +} + \endqml + \endtable +*/ +/*! + \qmlproperty int Column::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsColumn + \brief The QmlGraphicsColumn class lines up items vertically. + \ingroup group_positioners +*/ +QmlGraphicsColumn::QmlGraphicsColumn(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Vertical, parent) +{ +} + +void QmlGraphicsColumn::doPositioning() +{ + int voffset = 0; + + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child || child->opacity() == 0.0) + continue; + + bool needMove = (child->y() != voffset || child->x()); + + QList > changes; + changes << qMakePair(QString(QLatin1String("y")),QVariant(voffset)); + changes << qMakePair(QString(QLatin1String("x")),QVariant(0)); + if (needMove && items()->contains(child) && move()) { + applyMove(changes,child); + } else if (!items()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + setMovingItem(child); + child->setY(voffset); + setMovingItem(0); + } + voffset += child->height(); + voffset += spacing(); + } +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Row,QmlGraphicsRow) +/*! + \qmlclass Row QFxRow + \brief The Row item lines up its children horizontally. + \inherits Item + + The Row item positions its child items so that they are + horizontally aligned and not overlapping. Spacing can be added between the + items, and a margin around all items can also be added. It also provides for + transitions to be set when items are added, moved, or removed in the + positioner. Adding and removing apply both to items which are deleted or have + their position in the document changed so as to no longer be children of the + positioner, as well as to items which have their opacity set to or from zero + so as to appear or disappear. + + The below example lays out differently shaped rectangles using a Row. + \qml +Row { + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } +} + \endqml + \image horizontalpositioner_example.png + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. + +*/ +/*! + \qmlproperty Transition Row::remove + This property holds the transition to apply when removing an item from the positioner. + The transition will only be applied to the removed item(s). + + Removed can mean that either the object has been deleted or reparented, and thus is now longer a child of the positioner, or that the object has had its opacity set to zero, and thus is no longer visible. + + Note that if the item counts as removed because its opacity is zero it will not be visible during the transition unless you set the opacity in the transition, like in the below example. + + \qml +Row { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Row::add + This property holds the transition to apply when adding an item to the positioner. + The transition will only be applied to the added item(s). + + Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. + + \qml +Row { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Row::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or when items resize themselves. + + \qml +Row { + id: positioner + move: Transition { + NumberAnimation { + properties: "x" + ease: "easeOutBounce" + } + } +} + \endqml + +*/ +/*! + \qmlproperty int Row::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsRow + \brief The QmlGraphicsRow class lines up items horizontally. + \ingroup group_positioners +*/ +QmlGraphicsRow::QmlGraphicsRow(QmlGraphicsItem *parent) +: QmlGraphicsBasePositioner(Horizontal, parent) +{ +} + +void QmlGraphicsRow::doPositioning() +{ + int hoffset = 0; + + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + QList children = childItems(); + for (int ii = 0; ii < children.count(); ++ii) { + QmlGraphicsItem *child = qobject_cast(children.at(ii)); + if (!child || child->opacity() == 0.0) + continue; + + bool needMove = (child->x() != hoffset || child->y()); + + QList > changes; + changes << qMakePair(QString(QLatin1String("x")),QVariant(hoffset)); + changes << qMakePair(QString(QLatin1String("y")),QVariant(0)); + if (needMove && items()->contains(child) && move()) { + applyMove(changes,child); + } else if (!items()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + setMovingItem(child); + child->setX(hoffset); + setMovingItem(0); + } + if(child->width() && child->height()){//don't advance for invisible children + hoffset += child->width(); + hoffset += spacing(); + } + } +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Grid,QmlGraphicsGrid) + +/*! + \qmlclass Grid QmlGraphicsGrid + \brief The Grid item positions its children in a grid. + \inherits Item + + The Grid item positions its child items so that they are + aligned in a grid and are not overlapping. Spacing can be added + between the items. It also provides for transitions to be set when items are + added, moved, or removed in the positioner. Adding and removing apply + both to items which are deleted or have their position in the + document changed so as to no longer be children of the positioner, as + well as to items which have their opacity set to or from zero so + as to appear or disappear. + + The Grid defaults to using four columns, and as many rows as + are necessary to fit all the child items. The number of rows + and/or the number of columns can be constrained by setting the rows + or columns properties. The grid positioner calculates a grid with + rectangular cells of sufficient size to hold all items, and then + places the items in the cells, going across then down, and + positioning each item at the (0,0) corner of the cell. The below + example demonstrates this. + + \table + \row + \o \image gridLayout_example.png + \o + \qml +Grid { + columns: 3 + spacing: 2 + Rectangle { color: "red"; width: 50; height: 50 } + Rectangle { color: "green"; width: 20; height: 50 } + Rectangle { color: "blue"; width: 50; height: 20 } + Rectangle { color: "cyan"; width: 50; height: 50 } + Rectangle { color: "magenta"; width: 10; height: 10 } +} + \endqml + \endtable + + Note that the positioner assumes that the x and y positions of its children + will not change. If you manually change the x or y properties in script, bind + the x or y properties, or use anchors on a child of a positioner, then the + positioner may exhibit strange behaviour. +*/ +/*! + \qmlproperty Transition Grid::remove + This property holds the transition to apply when removing an item from the positioner. + The transition is only applied to the removed item(s). + + Removed can mean that either the object has been deleted or + reparented, and thus is now longer a child of the positioner, or that + the object has had its opacity set to zero, and thus is no longer + visible. + + Note that if the item counts as removed because its opacity is + zero it will not be visible during the transition unless you set + the opacity in the transition, like in the below example. + + \qml +Grid { + remove: Transition { + NumberAnimation { + properties: "opacity" + from: 1 + to: 0 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Grid::add + This property holds the transition to apply when adding an item to the positioner. + The transition is only applied to the added item(s). + + Added can mean that either the object has been created or + reparented, and thus is now a child or the positioner, or that the + object has had its opacity increased from zero, and thus is now + visible. + + \qml +Grid { + add: Transition { + NumberAnimation { + properties: "opacity" + from: 0 + to: 1 + duration: 500 + } + } +} + \endqml + +*/ +/*! + \qmlproperty Transition Grid::move + This property holds the transition to apply when moving an item within the positioner. + + This can happen when other items are added or removed from the positioner, or + when items resize themselves. + + \qml +Grid { + move: Transition { + NumberAnimation { + properties: "x,y" + ease: "easeOutBounce" + } + } +} + \endqml + +*/ +/*! + \qmlproperty int Grid::spacing + + spacing is the amount in pixels left empty between each adjacent + item, and defaults to 0. + + The below example places a Grid containing a red, a blue and a + green rectangle on a gray background. The area the grid positioner + occupies is colored white. The top positioner has the default of no spacing, + and the bottom positioner has its spacing set to 2. + + \image spacing_a.png + \image spacing_b.png + +*/ +/*! + \internal + \class QmlGraphicsGrid + \brief The QmlGraphicsGrid class lays out items in a grid. + \ingroup group_layouts + +*/ +QmlGraphicsGrid::QmlGraphicsGrid(QmlGraphicsItem *parent) : + QmlGraphicsBasePositioner(Both, parent) +{ + _columns=-1; + _rows=-1; +} + +/*! + \qmlproperty int Grid::columns + This property holds the number of columns in the grid. + + When the columns property is set the Grid will always have + that many columns. Note that if you do not have enough items to + fill this many columns some columns will be of zero width. +*/ + +/*! + \qmlproperty int Grid::rows + This property holds the number of rows in the grid. + + When the rows property is set the Grid will always have that + many rows. Note that if you do not have enough items to fill this + many rows some rows will be of zero width. +*/ + +void QmlGraphicsGrid::doPositioning() +{ + int c=_columns,r=_rows;//Actual number of rows/columns + int numVisible = items()->size() + newItems()->size(); + if (_columns==-1 && _rows==-1){ + c = 4; + r = (numVisible+3)/4; + }else if (_rows==-1){ + r = (numVisible+(_columns-1))/_columns; + }else if (_columns==-1){ + c = (numVisible+(_rows-1))/_rows; + } + + QList maxColWidth; + QList maxRowHeight; + int childIndex =0; + QList children = childItems(); + for (int i=0; i(children.at(childIndex++)); + if (!child || child->opacity() == 0.0) + continue; + if (child->width() > maxColWidth[j]) + maxColWidth[j] = child->width(); + if (child->height() > maxRowHeight[i]) + maxRowHeight[i] = child->height(); + } + } + + int xoffset=0; + int yoffset=0; + int curRow =0; + int curCol =0; + foreach(QmlGraphicsItem* item, *leavingItems()){ + if (remove()){ + QList > changes; + applyRemove(changes, item); + } + } + foreach(QGraphicsItem* schild, children){ + QmlGraphicsItem *child = qobject_cast(schild); + if (!child || child->opacity() == 0.0) + continue; + bool needMove = (child->x()!=xoffset)||(child->y()!=yoffset); + QList > changes; + changes << qMakePair(QString(QLatin1String("x")),QVariant(xoffset)); + changes << qMakePair(QString(QLatin1String("y")),QVariant(yoffset)); + if (newItems()->contains(child) && add()) { + applyAdd(changes,child); + } else if (needMove) { + if (move()){ + applyMove(changes,child); + }else{ + setMovingItem(child); + child->setPos(QPointF(xoffset, yoffset)); + setMovingItem(0); + } + } + xoffset+=maxColWidth[curCol]+spacing(); + curCol++; + curCol%=c; + if (!curCol){ + yoffset+=maxRowHeight[curRow]+spacing(); + xoffset=0; + curRow++; + if (curRow>=r) + break; + } + } +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicspositioners_p.h b/src/declarative/graphicsitems/qmlgraphicspositioners_p.h new file mode 100644 index 0000000..0011ec5 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspositioners_p.h @@ -0,0 +1,167 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSLAYOUTS_H +#define QMLGRAPHICSLAYOUTS_H + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsBasePositionerPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsBasePositioner : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(int spacing READ spacing WRITE setSpacing NOTIFY spacingChanged) + Q_PROPERTY(QmlTransition *move READ move WRITE setMove) + Q_PROPERTY(QmlTransition *add READ add WRITE setAdd) + Q_PROPERTY(QmlTransition *remove READ remove WRITE setRemove) +public: + enum AutoUpdateType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; + QmlGraphicsBasePositioner(AutoUpdateType, QmlGraphicsItem *parent); + + int spacing() const; + void setSpacing(int); + + QmlTransition *move() const; + void setMove(QmlTransition *); + + QmlTransition *add() const; + void setAdd(QmlTransition *); + + QmlTransition *remove() const; + void setRemove(QmlTransition *); + +protected: + virtual void componentComplete(); + virtual QVariant itemChange(GraphicsItemChange, const QVariant &); + virtual bool event(QEvent *); + QSet* newItems(); + QSet* leavingItems(); + QSet* items(); + void applyAdd(const QList >& changes, QmlGraphicsItem* target); + void applyMove(const QList >& changes, QmlGraphicsItem* target); + void applyRemove(const QList >& changes, QmlGraphicsItem* target); + void finishApplyTransitions(); + +Q_SIGNALS: + void layoutItemChanged(); + void spacingChanged(); + +protected Q_SLOTS: + virtual void doPositioning()=0; + +private Q_SLOTS: + void prePositioning(); + +protected: + QmlGraphicsBasePositioner(QmlGraphicsBasePositionerPrivate &dd, AutoUpdateType at, QmlGraphicsItem *parent); + void setMovingItem(QmlGraphicsItem *); + +private: + void applyTransition(const QList >& changes, QmlGraphicsItem* target, + QmlStateOperation::ActionList &actions); + Q_DISABLE_COPY(QmlGraphicsBasePositioner) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsBasePositioner) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsColumn : public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsColumn(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsColumn) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsRow: public QmlGraphicsBasePositioner +{ + Q_OBJECT +public: + QmlGraphicsRow(QmlGraphicsItem *parent=0); +protected Q_SLOTS: + virtual void doPositioning(); +private: + Q_DISABLE_COPY(QmlGraphicsRow) +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGrid : public QmlGraphicsBasePositioner +{ + Q_OBJECT + Q_PROPERTY(int rows READ rows WRITE setRows) + Q_PROPERTY(int columns READ columns WRITE setcolumns) +public: + QmlGraphicsGrid(QmlGraphicsItem *parent=0); + + int rows() const {return _rows;} + void setRows(const int rows){_rows = rows;} + + int columns() const {return _columns;} + void setcolumns(const int columns){_columns = columns;} +protected Q_SLOTS: + virtual void doPositioning(); + +private: + int _rows; + int _columns; + Q_DISABLE_COPY(QmlGraphicsGrid) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsColumn) +QML_DECLARE_TYPE(QmlGraphicsRow) +QML_DECLARE_TYPE(QmlGraphicsGrid) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicspositioners_p_p.h b/src/declarative/graphicsitems/qmlgraphicspositioners_p_p.h new file mode 100644 index 0000000..61b4497 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicspositioners_p_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSLAYOUTS_P_H +#define QMLGRAPHICSLAYOUTS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QmlGraphicsBasePositionerPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsBasePositioner) + +public: + QmlGraphicsBasePositionerPrivate() + : _ep(false), _componentComplete(false), _spacing(0), + aut(QmlGraphicsBasePositioner::None), moveTransition(0), addTransition(0), + removeTransition(0), _movingItem(0) + { + } + + void init(QmlGraphicsBasePositioner::AutoUpdateType at) + { + aut = at; + } + + bool _ep; + bool _componentComplete; + int _spacing; + QmlGraphicsBasePositioner::AutoUpdateType aut; + QmlTransition *moveTransition; + QmlTransition *addTransition; + QmlTransition *removeTransition; + QSet _items; + QSet _leavingItems; + QSet _stableItems; + QSet _newItems; + QSet _animated; + QmlStateOperation::ActionList addActions; + QmlStateOperation::ActionList moveActions; + QmlStateOperation::ActionList removeActions; + QmlTransitionManager addTransitionManager; + QmlTransitionManager moveTransitionManager; + QmlTransitionManager removeTransitionManager; +// QmlStateGroup *stateGroup; + QmlGraphicsItem *_movingItem; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsrect.cpp b/src/declarative/graphicsitems/qmlgraphicsrect.cpp new file mode 100644 index 0000000..605e82c --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrect.cpp @@ -0,0 +1,475 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsrect_p.h" +#include "qmlgraphicsrect_p_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Pen,QmlGraphicsPen) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,GradientStop,QmlGraphicsGradientStop) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QmlGraphicsGradient) + +/*! + \internal + \class QmlGraphicsPen + \brief The QmlGraphicsPen class provides a pen used for drawing rectangle borders on a QmlView. + + By default, the pen is invalid and nothing is drawn. You must either set a color (then the default + width is 1) or a width (then the default color is black). + + A width of 1 indicates is a single-pixel line on the border of the item being painted. + + Example: + \qml + Rectangle { border.width: 2; border.color: "red" ... } + \endqml +*/ + +void QmlGraphicsPen::setColor(const QColor &c) +{ + _color = c; + _valid = _color.alpha() ? true : false; + emit penChanged(); +} + +void QmlGraphicsPen::setWidth(int w) +{ + if (_width == w && _valid) + return; + + _width = w; + _valid = (_width < 1) ? false : true; + emit penChanged(); +} + + +/*! + \qmlclass GradientStop QmlGraphicsGradientStop + \brief The GradientStop item defines the color at a position in a Gradient + + \sa Gradient +*/ + +/*! + \qmlproperty real GradientStop::position + \qmlproperty color GradientStop::color + + Sets a \e color at a \e position in a gradient. +*/ + +void QmlGraphicsGradientStop::updateGradient() +{ + if (QmlGraphicsGradient *grad = qobject_cast(parent())) + grad->doUpdate(); +} + +/*! + \qmlclass Gradient QmlGraphicsGradient + \brief The Gradient item defines a gradient fill. + + A gradient is defined by two or more colors, which will be blended seemlessly. The + colors are specified at their position in the range 0.0 - 1.0 via + the GradientStop item. For example, the following code paints a + rectangle with a gradient starting with red, blending to yellow at 1/3 of the + size of the rectangle, and ending with Green: + + \table + \row + \o \image gradient.png + \o \quotefile doc/src/snippets/declarative/gradient.qml + \endtable + + \sa GradientStop +*/ + +/*! + \qmlproperty list Gradient::stops + This property holds the gradient stops describing the gradient. +*/ + +const QGradient *QmlGraphicsGradient::gradient() const +{ + if (!m_gradient && !m_stops.isEmpty()) { + m_gradient = new QLinearGradient(0,0,0,1.0); + for (int i = 0; i < m_stops.count(); ++i) { + const QmlGraphicsGradientStop *stop = m_stops.at(i); + m_gradient->setCoordinateMode(QGradient::ObjectBoundingMode); + m_gradient->setColorAt(stop->position(), stop->color()); + } + } + + return m_gradient; +} + +void QmlGraphicsGradient::doUpdate() +{ + delete m_gradient; + m_gradient = 0; + emit updated(); +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QmlGraphicsRect) + +/*! + \qmlclass Rectangle QmlGraphicsRect + \brief The Rectangle item allows you to add rectangles to a scene. + \inherits Item + + A Rectangle is painted having a solid fill (color) and an optional border. + You can also create rounded rectangles using the radius property. + + \qml + Rectangle { + width: 100 + height: 100 + color: "red" + border.color: "black" + border.width: 5 + radius: 10 + } + \endqml + + \image declarative-rect.png +*/ + +/*! + \internal + \class QmlGraphicsRect + \brief The QmlGraphicsRect class provides a rectangle item that you can add to a QmlView. +*/ +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRectPrivate), parent) +{ + Q_D(QmlGraphicsRect); + d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsRect::QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + Q_D(QmlGraphicsRect); + d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +void QmlGraphicsRect::doUpdate() +{ + Q_D(QmlGraphicsRect); + d->rectImage = QPixmap(); + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + d->setPaintMargin((pw+1)/2); + update(); +} + +/*! + \qmlproperty int Rectangle::border.width + \qmlproperty color Rectangle::border.color + + The width and color used to draw the border of the rectangle. + + A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color. + + To keep the border smooth (rather than blurry), odd widths cause the rectangle to be painted at + a half-pixel offset; +*/ +QmlGraphicsPen *QmlGraphicsRect::border() +{ + Q_D(QmlGraphicsRect); + return d->getPen(); +} + +/*! + \qmlproperty Gradient Rectangle::gradient + + The gradient to use to fill the rectangle. + + This property allows for the construction of simple vertical gradients. + Other gradients may by formed by adding rotation to the rectangle. + + \table + \row + \o \image declarative-rect_gradient.png + \o + \qml + Rectangle { y: 0; width: 80; height: 80; color: "lightsteelblue" } + Rectangle { y: 100; width: 80; height: 80 + gradient: Gradient { + GradientStop { position: 0.0; color: "lightsteelblue" } + GradientStop { position: 1.0; color: "blue" } + } + } + Rectangle { rotation: 90; x: 80; y: 200; width: 80; height: 80 + gradient: Gradient { + GradientStop { position: 0.0; color: "lightsteelblue" } + GradientStop { position: 1.0; color: "blue" } + } + } + // The x offset is needed because the rotation is from the top left corner + \endqml + \endtable + + If both a gradient and a color are specified, the gradient will be used. + + \sa Gradient, color +*/ +QmlGraphicsGradient *QmlGraphicsRect::gradient() const +{ + Q_D(const QmlGraphicsRect); + return d->gradient; +} + +void QmlGraphicsRect::setGradient(QmlGraphicsGradient *gradient) +{ + Q_D(QmlGraphicsRect); + if (d->gradient == gradient) + return; + if (d->gradient) + disconnect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); + d->gradient = gradient; + if (d->gradient) + connect(d->gradient, SIGNAL(updated()), this, SLOT(doUpdate())); + update(); +} + + +/*! + \qmlproperty real Rectangle::radius + This property holds the corner radius used to draw a rounded rectangle. + + If radius is non-zero, the rectangle will be painted as a rounded rectangle, otherwise it will be + painted as a normal rectangle. The same radius is used by all 4 corners; there is currently + no way to specify different radii for different corners. +*/ +qreal QmlGraphicsRect::radius() const +{ + Q_D(const QmlGraphicsRect); + return d->radius; +} + +void QmlGraphicsRect::setRadius(qreal radius) +{ + Q_D(QmlGraphicsRect); + if (d->radius == radius) + return; + + d->radius = radius; + d->rectImage = QPixmap(); + update(); + emit radiusChanged(); +} + +/*! + \qmlproperty color Rectangle::color + This property holds the color used to fill the rectangle. + + \qml + // green rectangle using hexidecimal notation + Rectangle { color: "#00FF00" } + + // steelblue rectangle using SVG color name + Rectangle { color: "steelblue" } + \endqml + + The default color is white. + + If both a gradient and a color are specified, the gradient will be used. +*/ +QColor QmlGraphicsRect::color() const +{ + Q_D(const QmlGraphicsRect); + return d->color; +} + +void QmlGraphicsRect::setColor(const QColor &c) +{ + Q_D(QmlGraphicsRect); + if (d->color == c) + return; + + d->color = c; + d->rectImage = QPixmap(); + update(); + emit colorChanged(); +} + +void QmlGraphicsRect::generateRoundedRect() +{ + Q_D(QmlGraphicsRect); + if (d->rectImage.isNull()) { + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + const int radius = qCeil(d->radius); //ensure odd numbered width/height so we get 1-pixel center + d->rectImage = QPixmap(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2); + d->rectImage.fill(Qt::transparent); + QPainter p(&(d->rectImage)); + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(d->color); + if (pw%2) + p.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1)), d->radius, d->radius); + else + p.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw), d->radius, d->radius); + } +} + +void QmlGraphicsRect::generateBorderedRect() +{ + Q_D(QmlGraphicsRect); + if (d->rectImage.isNull()) { + const int pw = d->pen && d->pen->isValid() ? d->pen->width() : 0; + d->rectImage = QPixmap(pw*2 + 3, pw*2 + 3); + d->rectImage.fill(Qt::transparent); + QPainter p(&(d->rectImage)); + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + pn.setJoinStyle(Qt::MiterJoin); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(d->color); + if (pw%2) + p.drawRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1))); + else + p.drawRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw)); + } +} + +void QmlGraphicsRect::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsRect); + if (d->radius > 0 || (d->pen && d->pen->isValid()) + || (d->gradient && d->gradient->gradient()) ) { + drawRect(*p); + } + else { + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing, true); + p->fillRect(QRectF(0, 0, width(), height()), d->color); + if (d->smooth) + p->setRenderHint(QPainter::Antialiasing, oldAA); + } +} + +void QmlGraphicsRect::drawRect(QPainter &p) +{ + Q_D(QmlGraphicsRect); + if (d->gradient && d->gradient->gradient()) { + // XXX This path is still slower than the image path + // Image path won't work for gradients though + bool oldAA = p.testRenderHint(QPainter::Antialiasing); + if (d->smooth) + p.setRenderHint(QPainter::Antialiasing); + if (d->pen && d->pen->isValid()) { + QPen pn(QColor(d->pen->color()), d->pen->width()); + p.setPen(pn); + } else { + p.setPen(Qt::NoPen); + } + p.setBrush(*d->gradient->gradient()); + if (d->radius > 0.) + p.drawRoundedRect(0, 0, width(), height(), d->radius, d->radius); + else + p.drawRect(0, 0, width(), height()); + if (d->smooth) + p.setRenderHint(QPainter::Antialiasing, oldAA); + } else { + bool oldAA = p.testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + const int pw = d->pen && d->pen->isValid() ? (d->pen->width()+1)/2*2 : 0; + + if (d->radius > 0) + generateRoundedRect(); + else + generateBorderedRect(); + + int xOffset = (d->rectImage.width()-1)/2; + int yOffset = (d->rectImage.height()-1)/2; + Q_ASSERT(d->rectImage.width() == 2*xOffset + 1); + Q_ASSERT(d->rectImage.height() == 2*yOffset + 1); + + QMargins margins(xOffset, yOffset, xOffset, yOffset); + QTileRules rules(Qt::StretchTile, Qt::StretchTile); + //NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects + qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width()+pw, height()+pw), margins, d->rectImage, d->rectImage.rect(), margins, rules); + + if (d->smooth) { + p.setRenderHint(QPainter::Antialiasing, oldAA); + p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } + } +} + +/*! + \qmlproperty bool Rectangle::smooth + + Set this property if you want the item to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. + + \image rect-smooth.png +*/ + +QRectF QmlGraphicsRect::boundingRect() const +{ + Q_D(const QmlGraphicsRect); + return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsrect_p.h b/src/declarative/graphicsitems/qmlgraphicsrect_p.h new file mode 100644 index 0000000..97334fd --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrect_p.h @@ -0,0 +1,189 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSRECT_H +#define QMLGRAPHICSRECT_H + +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class Q_DECLARATIVE_EXPORT QmlGraphicsPen : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int width READ width WRITE setWidth NOTIFY penChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY penChanged) +public: + QmlGraphicsPen(QObject *parent=0) + : QObject(parent), _width(1), _color("#000000"), _valid(false) + {} + + int width() const { return _width; } + void setWidth(int w); + + QColor color() const { return _color; } + void setColor(const QColor &c); + + bool isValid() { return _valid; }; + +Q_SIGNALS: + void penChanged(); + +private: + int _width; + QColor _color; + bool _valid; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradientStop : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal position READ position WRITE setPosition) + Q_PROPERTY(QColor color READ color WRITE setColor) + +public: + QmlGraphicsGradientStop(QObject *parent=0) : QObject(parent) {} + + qreal position() const { return m_position; } + void setPosition(qreal position) { m_position = position; updateGradient(); } + + QColor color() const { return m_color; } + void setColor(const QColor &color) { m_color = color; updateGradient(); } + +private: + void updateGradient(); + +private: + qreal m_position; + QColor m_color; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGradient : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QList *stops READ stops) + Q_CLASSINFO("DefaultProperty", "stops") + +public: + QmlGraphicsGradient(QObject *parent=0) : QObject(parent), m_gradient(0) {} + ~QmlGraphicsGradient() { delete m_gradient; } + + QList *stops() { return &m_stops; } + + const QGradient *gradient() const; + +Q_SIGNALS: + void updated(); + +private: + void doUpdate(); + +private: + QList m_stops; + mutable QGradient *m_gradient; + friend class QmlGraphicsGradientStop; +}; + +class QmlGraphicsRectPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRect : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(QmlGraphicsGradient *gradient READ gradient WRITE setGradient) + Q_PROPERTY(QmlGraphicsPen * border READ border CONSTANT) + Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) +public: + QmlGraphicsRect(QmlGraphicsItem *parent=0); + + QColor color() const; + void setColor(const QColor &); + + QmlGraphicsPen *border(); + + QmlGraphicsGradient *gradient() const; + void setGradient(QmlGraphicsGradient *gradient); + + qreal radius() const; + void setRadius(qreal radius); + + QRectF boundingRect() const; + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + +Q_SIGNALS: + void colorChanged(); + void radiusChanged(); + +private Q_SLOTS: + void doUpdate(); + +private: + void generateRoundedRect(); + void generateBorderedRect(); + void drawRect(QPainter &painter); + +protected: + QmlGraphicsRect(QmlGraphicsRectPrivate &dd, QmlGraphicsItem *parent); + +private: + Q_DISABLE_COPY(QmlGraphicsRect) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRect) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsPen) +QML_DECLARE_TYPE(QmlGraphicsGradientStop) +QML_DECLARE_TYPE(QmlGraphicsGradient) +QML_DECLARE_TYPE(QmlGraphicsRect) + +QT_END_HEADER + +#endif // QMLGRAPHICSRECT_H diff --git a/src/declarative/graphicsitems/qmlgraphicsrect_p_p.h b/src/declarative/graphicsitems/qmlgraphicsrect_p_p.h new file mode 100644 index 0000000..f44e8de --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrect_p_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSRECT_P_H +#define QMLGRAPHICSRECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" + +QT_BEGIN_NAMESPACE + +class QmlGraphicsGradient; +class QmlGraphicsRect; +class QmlGraphicsRectPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRect) + +public: + QmlGraphicsRectPrivate() : + color(Qt::white), gradient(0), pen(0), radius(0), paintmargin(0) + { + } + + ~QmlGraphicsRectPrivate() + { + delete pen; + } + + void init() + { + } + + QColor getColor(); + QColor color; + QmlGraphicsGradient *gradient; + QmlGraphicsPen *getPen() { + if (!pen) { + Q_Q(QmlGraphicsRect); + pen = new QmlGraphicsPen; + QObject::connect(pen, SIGNAL(penChanged()), q, SLOT(doUpdate())); + } + return pen; + } + QmlGraphicsPen *pen; + qreal radius; + qreal paintmargin; + QPixmap rectImage; + + void setPaintMargin(qreal margin) + { + Q_Q(QmlGraphicsRect); + if (margin == paintmargin) + return; + q->prepareGeometryChange(); + paintmargin = margin; + } +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSRECT_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicsrepeater.cpp b/src/declarative/graphicsitems/qmlgraphicsrepeater.cpp new file mode 100644 index 0000000..ba860e9 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrepeater.cpp @@ -0,0 +1,320 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicsrepeater_p.h" +#include "qmlgraphicsrepeater_p_p.h" +#include +#include +#include + + +QT_BEGIN_NAMESPACE +QmlGraphicsRepeaterPrivate::QmlGraphicsRepeaterPrivate() +: model(0), ownModel(false) +{ +} + +QmlGraphicsRepeaterPrivate::~QmlGraphicsRepeaterPrivate() +{ +} + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Repeater,QmlGraphicsRepeater) + +/*! + \qmlclass Repeater QFxRepeater + \inherits Item + + \brief The Repeater item allows you to repeat a component based on a model. + + The Repeater item is used when you want to create a large number of + similar items. For each entry in the model, an item is instantiated + in a context seeded with data from the model. If the repeater will + be instantiating a large number of instances, it may be more efficient to + use one of Qt Declarative's \l {xmlViews}{view items}. + + The model may be either an object list, a string list, a number or a Qt model. + In each case, the data element and the index is exposed to each instantiated + component. + + The index is always exposed as an accessible \c index property. + In the case of an object or string list, the data element (of type string + or object) is available as the \c modelData property. In the case of a Qt model, + all roles are available as named properties just like in the view classes. The + following example shows how to use the index property inside the instantiated + items. + + \snippet doc/src/snippets/declarative/repeater-index.qml 0 + + \image repeater-index.png + + Items instantiated by the Repeater are inserted, in order, as + children of the Repeater's parent. The insertion starts immediately after + the repeater's position in its parent stacking list. This is to allow + you to use a Repeater inside a layout. The following QML example shows how + the instantiated items would visually appear stacked between the red and + blue rectangles. + + \snippet doc/src/snippets/declarative/repeater.qml 0 + + \image repeater.png + + The repeater instance continues to own all items it instantiates, even + if they are otherwise manipulated. It is illegal to manually remove an item + created by the Repeater. + */ + +/*! + \internal + \class QmlGraphicsRepeater + \qmlclass Repeater + + XXX Repeater is very conservative in how it instatiates/deletes items. Also + new model entries will not be created and old ones will not be removed. + */ + +/*! + Create a new QmlGraphicsRepeater instance. + */ +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsRepeaterPrivate), parent) +{ +} + +/*! + \internal + */ +QmlGraphicsRepeater::QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ +} + +/*! + Destroy the repeater instance. All items it instantiated are also + destroyed. + */ +QmlGraphicsRepeater::~QmlGraphicsRepeater() +{ +} + +/*! + \qmlproperty any Repeater::model + + The model providing data for the repeater. + + The model may be either an object list, a string list, a number or a Qt model. + In each case, the data element and the index is exposed to each instantiated + component. The index is always exposed as an accessible \c index property. + In the case of an object or string list, the data element (of type string + or object) is available as the \c modelData property. In the case of a Qt model, + all roles are available as named properties just like in the view classes. + + As a special case the model can also be merely a number. In this case it will + create that many instances of the component. They will also be assigned an index + based on the order they are created. + + Models can also be created directly in QML, using a \l{ListModel} or \l{XmlListModel}. + + \sa {qmlmodels}{Data Models} +*/ +QVariant QmlGraphicsRepeater::model() const +{ + Q_D(const QmlGraphicsRepeater); + return d->dataSource; +} + +void QmlGraphicsRepeater::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsRepeater); + clear(); + if (d->model) { + disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + disconnect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + /* + disconnect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + disconnect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + */ + } + d->dataSource = model; + QObject *object = qvariant_cast(model); + QmlGraphicsVisualModel *vim = 0; + if (object && (vim = qobject_cast(object))) { + if (d->ownModel) { + delete d->model; + d->ownModel = false; + } + d->model = vim; + } else { + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + dataModel->setModel(model); + } + if (d->model) { + connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); + connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); + connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int))); + /* + connect(d->model, SIGNAL(createdItem(int, QmlGraphicsItem*)), this, SLOT(createdItem(int,QmlGraphicsItem*))); + connect(d->model, SIGNAL(destroyingItem(QmlGraphicsItem*)), this, SLOT(destroyingItem(QmlGraphicsItem*))); + */ + regenerate(); + emit countChanged(); + } +} + +/*! + \qmlproperty Component Repeater::delegate + \default + + The delegate provides a template describing what each item instantiated by the repeater should look and act like. + */ +QmlComponent *QmlGraphicsRepeater::delegate() const +{ + Q_D(const QmlGraphicsRepeater); + if (d->model) { + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) + return dataModel->delegate(); + } + + return 0; +} + +void QmlGraphicsRepeater::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsRepeater); + if (!d->ownModel) { + d->model = new QmlGraphicsVisualDataModel(qmlContext(this)); + d->ownModel = true; + } + if (QmlGraphicsVisualDataModel *dataModel = qobject_cast(d->model)) { + dataModel->setDelegate(delegate); + regenerate(); + } +} + +/*! + \qmlproperty int Repeater::count + + This property holds the number of items in the repeater. +*/ +int QmlGraphicsRepeater::count() const +{ + Q_D(const QmlGraphicsRepeater); + if (d->model) + return d->model->count(); + return 0; +} + + +/*! + \internal + */ +void QmlGraphicsRepeater::componentComplete() +{ + QmlGraphicsItem::componentComplete(); + regenerate(); +} + +/*! + \internal + */ +QVariant QmlGraphicsRepeater::itemChange(GraphicsItemChange change, + const QVariant &value) +{ + QVariant rv = QmlGraphicsItem::itemChange(change, value); + if (change == ItemParentHasChanged) { + regenerate(); + } + + return rv; +} + +void QmlGraphicsRepeater::clear() +{ + Q_D(QmlGraphicsRepeater); + if (d->model) { + foreach (QmlGraphicsItem *item, d->deletables) + d->model->release(item); + } + d->deletables.clear(); +} + +/*! + \internal + */ +void QmlGraphicsRepeater::regenerate() +{ + Q_D(QmlGraphicsRepeater); + + clear(); + + if (!d->model || !d->model->count() || !d->model->isValid() || !parentItem() || !isComponentComplete()) + return; + + for (int ii = 0; ii < count(); ++ii) { + QmlGraphicsItem *item = d->model->item(ii); + if (item) { + item->setParent(parentItem()); + item->stackBefore(this); + d->deletables << item; + } + } +} + +void QmlGraphicsRepeater::itemsInserted(int, int) +{ + regenerate(); +} + +void QmlGraphicsRepeater::itemsRemoved(int, int) +{ + regenerate(); +} + +void QmlGraphicsRepeater::itemsMoved(int,int,int) +{ + regenerate(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsrepeater_p.h b/src/declarative/graphicsitems/qmlgraphicsrepeater_p.h new file mode 100644 index 0000000..8d71303 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrepeater_p.h @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSREPEATER_H +#define QMLGRAPHICSREPEATER_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsRepeaterPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsRepeater : public QmlGraphicsItem +{ + Q_OBJECT + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "delegate") + +public: + QmlGraphicsRepeater(QmlGraphicsItem *parent=0); + virtual ~QmlGraphicsRepeater(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + int count() const; + +Q_SIGNALS: + void countChanged(); + +private: + void clear(); + void regenerate(); + +protected: + virtual void componentComplete(); + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + QmlGraphicsRepeater(QmlGraphicsRepeaterPrivate &dd, QmlGraphicsItem *parent); + +private Q_SLOTS: + void itemsInserted(int,int); + void itemsRemoved(int,int); + void itemsMoved(int,int,int); + +private: + Q_DISABLE_COPY(QmlGraphicsRepeater) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsRepeater) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsRepeater) + +QT_END_HEADER + +#endif // QMLGRAPHICSREPEATER_H diff --git a/src/declarative/graphicsitems/qmlgraphicsrepeater_p_p.h b/src/declarative/graphicsitems/qmlgraphicsrepeater_p_p.h new file mode 100644 index 0000000..4af0d9e --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsrepeater_p_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSREPEATER_P_H +#define QMLGRAPHICSREPEATER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem_p.h" +#include "qmlgraphicsrepeater_p.h" +#include + + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlGraphicsVisualModel; +class QmlGraphicsRepeaterPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsRepeater) + +public: + QmlGraphicsRepeaterPrivate(); + ~QmlGraphicsRepeaterPrivate(); + + QmlGraphicsVisualModel *model; + QVariant dataSource; + bool ownModel; + + QList > deletables; +}; + +QT_END_NAMESPACE +#endif // QMLGRAPHICSREPEATER_P_H diff --git a/src/declarative/graphicsitems/qmlgraphicsscalegrid.cpp b/src/declarative/graphicsitems/qmlgraphicsscalegrid.cpp new file mode 100644 index 0000000..7517a3c --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsscalegrid.cpp @@ -0,0 +1,212 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include +#include "qmlgraphicsscalegrid_p_p.h" + + +QT_BEGIN_NAMESPACE +/*! + \internal + \class QmlGraphicsScaleGrid + \brief The QmlGraphicsScaleGrid class allows you to specify a 3x3 grid to use in scaling an image. +*/ +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsScaleGrid) + +QmlGraphicsScaleGrid::QmlGraphicsScaleGrid(QObject *parent) : QObject(parent), _left(0), _top(0), _right(0), _bottom(0) +{ +} + +QmlGraphicsScaleGrid::~QmlGraphicsScaleGrid() +{ +} + +bool QmlGraphicsScaleGrid::isNull() const +{ + return !_left && !_top && !_right && !_bottom; +} + +void QmlGraphicsScaleGrid::setLeft(int pos) +{ + if (_left != pos) { + _left = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setTop(int pos) +{ + if (_top != pos) { + _top = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setRight(int pos) +{ + if (_right != pos) { + _right = pos; + emit borderChanged(); + } +} + +void QmlGraphicsScaleGrid::setBottom(int pos) +{ + if (_bottom != pos) { + _bottom = pos; + emit borderChanged(); + } +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage() +: _l(-1), _r(-1), _t(-1), _b(-1), + _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) +{ +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &o) +: _l(o._l), _r(o._r), _t(o._t), _b(o._b), _h(o._h), _v(o._v), _pix(o._pix) +{ +} + +QmlGraphicsGridScaledImage &QmlGraphicsGridScaledImage::operator=(const QmlGraphicsGridScaledImage &o) +{ + _l = o._l; + _r = o._r; + _t = o._t; + _b = o._b; + _h = o._h; + _v = o._v; + _pix = o._pix; + return *this; +} + +QmlGraphicsGridScaledImage::QmlGraphicsGridScaledImage(QIODevice *data) +: _l(-1), _r(-1), _t(-1), _b(-1), _h(QmlGraphicsBorderImage::Stretch), _v(QmlGraphicsBorderImage::Stretch) +{ + int l = -1; + int r = -1; + int t = -1; + int b = -1; + QString imgFile; + + while(!data->atEnd()) { + QString line = QString::fromUtf8(data->readLine().trimmed()); + if (line.isEmpty() || line.startsWith(QLatin1String("#"))) + continue; + + QStringList list = line.split(QLatin1Char(':')); + if (list.count() != 2) + return; + + list[0] = list[0].trimmed(); + list[1] = list[1].trimmed(); + + if (list[0] == QLatin1String("border.left")) + l = list[1].toInt(); + else if (list[0] == QLatin1String("border.right")) + r = list[1].toInt(); + else if (list[0] == QLatin1String("border.top")) + t = list[1].toInt(); + else if (list[0] == QLatin1String("border.bottom")) + b = list[1].toInt(); + else if (list[0] == QLatin1String("source")) + imgFile = list[1]; + else if (list[0] == QLatin1String("horizontalTileRule")) + _h = stringToRule(list[1]); + else if (list[0] == QLatin1String("verticalTileRule")) + _v = stringToRule(list[1]); + } + + if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) + return; + + _l = l; _r = r; _t = t; _b = b; + + _pix = imgFile; +} + +QmlGraphicsBorderImage::TileMode QmlGraphicsGridScaledImage::stringToRule(const QString &s) +{ + if (s == QLatin1String("Stretch")) + return QmlGraphicsBorderImage::Stretch; + if (s == QLatin1String("Repeat")) + return QmlGraphicsBorderImage::Repeat; + if (s == QLatin1String("Round")) + return QmlGraphicsBorderImage::Round; + + qWarning() << "Unknown tile rule specified. Using Stretch"; + return QmlGraphicsBorderImage::Stretch; +} + +bool QmlGraphicsGridScaledImage::isValid() const +{ + return _l >= 0; +} + +int QmlGraphicsGridScaledImage::gridLeft() const +{ + return _l; +} + +int QmlGraphicsGridScaledImage::gridRight() const +{ + return _r; +} + +int QmlGraphicsGridScaledImage::gridTop() const +{ + return _t; +} + +int QmlGraphicsGridScaledImage::gridBottom() const +{ + return _b; +} + +QString QmlGraphicsGridScaledImage::pixmapUrl() const +{ + return _pix; +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsscalegrid_p_p.h b/src/declarative/graphicsitems/qmlgraphicsscalegrid_p_p.h new file mode 100644 index 0000000..b66a5a5 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsscalegrid_p_p.h @@ -0,0 +1,132 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSSCALEGRID_H +#define QMLGRAPHICSSCALEGRID_H + +#include +#include +#include +#include +#include "qmlgraphicsborderimage_p.h" + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class Q_DECLARATIVE_EXPORT QmlGraphicsScaleGrid : public QObject +{ + Q_OBJECT + Q_ENUMS(TileRule) + + Q_PROPERTY(int left READ left WRITE setLeft NOTIFY borderChanged) + Q_PROPERTY(int top READ top WRITE setTop NOTIFY borderChanged) + Q_PROPERTY(int right READ right WRITE setRight NOTIFY borderChanged) + Q_PROPERTY(int bottom READ bottom WRITE setBottom NOTIFY borderChanged) + +public: + QmlGraphicsScaleGrid(QObject *parent=0); + ~QmlGraphicsScaleGrid(); + + bool isNull() const; + + int left() const { return _left; } + void setLeft(int); + + int top() const { return _top; } + void setTop(int); + + int right() const { return _right; } + void setRight(int); + + int bottom() const { return _bottom; } + void setBottom(int); + +Q_SIGNALS: + void borderChanged(); + +private: + int _left; + int _top; + int _right; + int _bottom; +}; + +class Q_DECLARATIVE_EXPORT QmlGraphicsGridScaledImage +{ +public: + QmlGraphicsGridScaledImage(); + QmlGraphicsGridScaledImage(const QmlGraphicsGridScaledImage &); + QmlGraphicsGridScaledImage(QIODevice*); + QmlGraphicsGridScaledImage &operator=(const QmlGraphicsGridScaledImage &); + bool isValid() const; + int gridLeft() const; + int gridRight() const; + int gridTop() const; + int gridBottom() const; + QmlGraphicsBorderImage::TileMode horizontalTileRule() const { return _h; } + QmlGraphicsBorderImage::TileMode verticalTileRule() const { return _v; } + + QString pixmapUrl() const; + +private: + static QmlGraphicsBorderImage::TileMode stringToRule(const QString &); + +private: + int _l; + int _r; + int _t; + int _b; + QmlGraphicsBorderImage::TileMode _h; + QmlGraphicsBorderImage::TileMode _v; + QString _pix; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsScaleGrid) + +QT_END_HEADER + +#endif // QMLGRAPHICSSCALEGRID_H diff --git a/src/declarative/graphicsitems/qmlgraphicstext.cpp b/src/declarative/graphicsitems/qmlgraphicstext.cpp new file mode 100644 index 0000000..6790923 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstext.cpp @@ -0,0 +1,840 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicstext_p.h" +#include "qmlgraphicstext_p_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QmlGraphicsText) + +/*! + \qmlclass Text QmlGraphicsText + \brief The Text item allows you to add formatted text to a scene. + \inherits Item + + It can display both plain and rich text. For example: + + \qml + Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } + Text { text: "Hello World!" } + \endqml + + \image declarative-text.png + + If height and width are not explicitly set, Text will attempt to determine how + much room is needed and set it accordingly. Unless \c wrap is set, it will always + prefer width to height (all text will be placed on a single line). + + The \c elide property can alternatively be used to fit a single line of + plain text to a set width. + + Text provides read-only text. For editable text, see \l TextEdit. +*/ + +/*! + \internal + \class QmlGraphicsText + \qmlclass Text + \ingroup group_coreitems + + \brief The QmlGraphicsText class provides a formatted text item that you can add to a QmlView. + + Text was designed for read-only text; it does not allow for any text editing. + It can display both plain and rich text. For example: + + \qml + Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } + Text { text: "Hello World!" } + \endqml + + \image text.png + + If height and width are not explicitly set, Text will attempt to determine how + much room is needed and set it accordingly. Unless \c wrap is set, it will always + prefer width to height (all text will be placed on a single line). + + The \c elide property can alternatively be used to fit a line of plain text to a set width. + + A QmlGraphicsText object can be instantiated in Qml using the tag \c Text. +*/ +QmlGraphicsText::QmlGraphicsText(QmlGraphicsItem *parent) + : QmlGraphicsItem(*(new QmlGraphicsTextPrivate), parent) +{ + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsText::QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsItem(dd, parent) +{ + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); +} + +QmlGraphicsText::~QmlGraphicsText() +{ +} + +/*! + \qmlproperty string Text::font.family + \qmlproperty bool Text::font.bold + \qmlproperty bool Text::font.italic + \qmlproperty bool Text::font.underline + \qmlproperty real Text::font.pointSize + \qmlproperty int Text::font.pixelSize + + Set the Text's font attributes. +*/ +QFont QmlGraphicsText::font() const +{ + Q_D(const QmlGraphicsText); + return d->font; +} + +void QmlGraphicsText::setFont(const QFont &font) +{ + Q_D(QmlGraphicsText); + d->font = font; + + d->imgDirty = true; + d->updateSize(); + update(); +} + +void QmlGraphicsText::setText(const QString &n) +{ +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer st; +#endif + Q_D(QmlGraphicsText); + if (d->text == n) + return; + + d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(n)); + if (d->richText) { + if (!d->doc) + { + d->control = new QTextControl(this); + d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); + d->doc = d->control->document(); + d->doc->setDocumentMargin(0); + } + d->doc->setHtml(n); + } + + d->text = n; + d->imgDirty = true; + d->updateSize(); + emit textChanged(d->text); + update(); +} + +/*! + \qmlproperty string Text::text + + The text to display. Text supports both plain and rich text strings. + + The item will try to automatically determine whether the text should + be treated as rich text. This determination is made using Qt::mightBeRichText(). +*/ +QString QmlGraphicsText::text() const +{ + Q_D(const QmlGraphicsText); + return d->text; +} + +void QmlGraphicsText::setColor(const QColor &color) +{ + Q_D(QmlGraphicsText); + if (d->color == color) + return; + + d->imgDirty = true; + d->color = color; + update(); +} + +/*! + \qmlproperty color Text::color + + The text color. + + \qml + //green text using hexadecimal notation + Text { color: "#00FF00"; ... } + + //steelblue text using SVG color name + Text { color: "steelblue"; ... } + \endqml +*/ + +QColor QmlGraphicsText::color() const +{ + Q_D(const QmlGraphicsText); + return d->color; +} + +/*! + \qmlproperty enumeration Text::style + + Set an additional text style. + + Supported text styles are \c Normal, \c Outline, \c Raised and \c Sunken. + + \qml + Row { + Text { font.pointSize: 24; text: "Normal" } + Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" } + Text { font.pointSize: 24; text: "Outline"; style: Text.Outline; styleColor: "red" } + Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" } + } + \endqml + + \image declarative-textstyle.png +*/ +QmlGraphicsText::TextStyle QmlGraphicsText::style() const +{ + Q_D(const QmlGraphicsText); + return d->style; +} + +void QmlGraphicsText::setStyle(QmlGraphicsText::TextStyle style) +{ + Q_D(QmlGraphicsText); + if (d->style == style) + return; + + d->imgDirty = true; + d->style = style; + update(); +} + +void QmlGraphicsText::setStyleColor(const QColor &color) +{ + Q_D(QmlGraphicsText); + if (d->styleColor == color) + return; + + d->imgDirty = true; + d->styleColor = color; + update(); +} + +/*! + \qmlproperty color Text::styleColor + + Defines the secondary color used by text styles. + + \c styleColor is used as the outline color for outlined text, and as the + shadow color for raised or sunken text. If no style has been set, it is not + used at all. + */ +QColor QmlGraphicsText::styleColor() const +{ + Q_D(const QmlGraphicsText); + return d->styleColor; +} + +/*! + \qmlproperty enumeration Text::horizontalAlignment + \qmlproperty enumeration Text::verticalAlignment + + Sets the horizontal and vertical alignment of the text within the Text items + width and height. By default, the text is top-left aligned. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom + and \c AlignVCenter. +*/ +QmlGraphicsText::HAlignment QmlGraphicsText::hAlign() const +{ + Q_D(const QmlGraphicsText); + return d->hAlign; +} + +void QmlGraphicsText::setHAlign(HAlignment align) +{ + Q_D(QmlGraphicsText); + d->hAlign = align; +} + +QmlGraphicsText::VAlignment QmlGraphicsText::vAlign() const +{ + Q_D(const QmlGraphicsText); + return d->vAlign; +} + +void QmlGraphicsText::setVAlign(VAlignment align) +{ + Q_D(QmlGraphicsText); + d->vAlign = align; +} + +/*! + \qmlproperty bool Text::wrap + + Set this property to wrap the text to the Text item's width. The text will only + wrap if an explicit width has been set. + + Wrapping is done on word boundaries (i.e. it is a "word-wrap"). If the text cannot be + word-wrapped to the specified width it will be partially drawn outside of the item's bounds. + If this is undesirable then enable clipping on the item (Item::clip). + + Wrapping is off by default. +*/ +//### Future may provide choice of wrap modes, such as QTextOption::WrapAtWordBoundaryOrAnywhere +bool QmlGraphicsText::wrap() const +{ + Q_D(const QmlGraphicsText); + return d->wrap; +} + +void QmlGraphicsText::setWrap(bool w) +{ + Q_D(QmlGraphicsText); + if (w == d->wrap) + return; + + d->wrap = w; + + d->imgDirty = true; + d->updateSize(); +} + +/*! + \qmlproperty enumeration Text::textFormat + + The way the text property should be displayed. + + Supported text formats are \c AutoText, \c PlainText and \c RichText. + + The default is AutoText. If the text format is AutoText the text element + will automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). + + \table + \row + \o + \qml +Column { + TextEdit { + font.pointSize: 24 + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "RichText" + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "PlainText" + text: "Hello World!" + } +} + \endqml + \o \image declarative-textformat.png + \endtable +*/ + +QmlGraphicsText::TextFormat QmlGraphicsText::textFormat() const +{ + Q_D(const QmlGraphicsText); + return d->format; +} + +void QmlGraphicsText::setTextFormat(TextFormat format) +{ + Q_D(QmlGraphicsText); + if (format == d->format) + return; + bool wasRich = d->richText; + d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); + + if (wasRich && !d->richText) { + //### delete control? (and vice-versa below) + d->imgDirty = true; + d->updateSize(); + update(); + } else if (!wasRich && d->richText) { + if (!d->doc) + { + d->control = new QTextControl(this); + d->control->setTextInteractionFlags(Qt::TextBrowserInteraction); + d->doc = d->control->document(); + d->doc->setDocumentMargin(0); + } + d->doc->setHtml(d->text); + d->imgDirty = true; + d->updateSize(); + update(); + } + d->format = format; +} + +/*! + \qmlproperty enumeration Text::elide + + Set this property to elide parts of the text fit to the Text item's width. + The text will only elide if an explicit width has been set. + + This property cannot be used with wrap enabled or with rich text. + + Eliding can be \c ElideNone (the default), \c ElideLeft, \c ElideMiddle, or \c ElideRight. + + If the text is a multi-length string, and the mode is not \c ElideNone, + the first string that fits will be used, otherwise the last will be elided. + + Multi-length strings are ordered from longest to shortest, separated by the + Unicode "String Terminator" character \c U009C (write this in QML with \c{"\\x9C"}). +*/ +QmlGraphicsText::TextElideMode QmlGraphicsText::elideMode() const +{ + Q_D(const QmlGraphicsText); + return d->elideMode; +} + +void QmlGraphicsText::setElideMode(QmlGraphicsText::TextElideMode mode) +{ + Q_D(QmlGraphicsText); + if (mode == d->elideMode) + return; + + d->elideMode = mode; + + d->imgDirty = true; + d->updateSize(); +} + +void QmlGraphicsText::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + Q_D(QmlGraphicsText); + if (newGeometry.width() != oldGeometry.width()) { + if (d->wrap || d->elideMode != QmlGraphicsText::ElideNone) { + d->imgDirty = true; + d->updateSize(); + } + } + QmlGraphicsItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsTextPrivate::updateSize() +{ + Q_Q(QmlGraphicsText); + if (q->isComponentComplete()) { + QFontMetrics fm(font); + if (text.isEmpty()) { + q->setImplicitHeight(fm.height()); + return; + } + + int dy = q->height(); + QString tmp; + QSize size(0, 0); + + //setup instance of QTextLayout for all cases other than richtext + if (!richText) + { + tmp = text; + tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); + singleline = !tmp.contains(QChar::LineSeparator); + if (singleline && elideMode != QmlGraphicsText::ElideNone && q->widthValid()) + tmp = fm.elidedText(tmp,(Qt::TextElideMode)elideMode,q->width()); // XXX still worth layout...? + layout.clearLayout(); + layout.setFont(font); + layout.setText(tmp); + size = setupTextLayout(&layout); + cachedLayoutSize = size; + } + if (richText) { + singleline = false; // richtext can't elide or be optimized for single-line case + doc->setDefaultFont(font); + QTextOption option((Qt::Alignment)int(hAlign | vAlign)); + if (wrap) + option.setWrapMode(QTextOption::WordWrap); + else + option.setWrapMode(QTextOption::NoWrap); + doc->setDefaultTextOption(option); + if (wrap && !q->heightValid() && q->widthValid()) + doc->setTextWidth(q->width()); + else + doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) + dy -= (int)doc->size().height(); + } else { + dy -= size.height(); + } + int yoff = 0; + + if (q->heightValid()) { + if (vAlign == QmlGraphicsText::AlignBottom) + yoff = dy; + else if (vAlign == QmlGraphicsText::AlignVCenter) + yoff = dy/2; + } + q->setBaselineOffset(fm.ascent() + yoff); + + //### need to comfirm cost of always setting these for richText + q->setImplicitWidth(richText ? (int)doc->idealWidth() : size.width()); + q->setImplicitHeight(richText ? (int)doc->size().height() : size.height()); + } else { + dirty = true; + } +} + +// ### text layout handling should be profiled and optimized as needed +// what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); + +void QmlGraphicsTextPrivate::drawOutline() +{ + QPixmap img = QPixmap(imgCache.size()); + img.fill(Qt::transparent); + + QPainter ppm(&img); + + QPoint pos(imgCache.rect().topLeft()); + pos += QPoint(-1, 0); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(2, 0); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(-1, -1); + ppm.drawPixmap(pos, imgStyleCache); + pos += QPoint(0, 2); + ppm.drawPixmap(pos, imgStyleCache); + + pos += QPoint(0, -1); + ppm.drawPixmap(pos, imgCache); + ppm.end(); + + imgCache = img; +} + +void QmlGraphicsTextPrivate::drawOutline(int yOffset) +{ + QPixmap img = QPixmap(imgCache.size()); + img.fill(Qt::transparent); + + QPainter ppm(&img); + + QPoint pos(imgCache.rect().topLeft()); + pos += QPoint(0, yOffset); + ppm.drawPixmap(pos, imgStyleCache); + + pos += QPoint(0, -yOffset); + ppm.drawPixmap(pos, imgCache); + ppm.end(); + + imgCache = img; +} + +QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) +{ + Q_Q(QmlGraphicsText); + layout->setCacheEnabled(true); + + QFontMetrics fm = QFontMetrics(font); + + int height = 0; + qreal widthUsed = 0; + qreal lineWidth = 0; + + //set manual width + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) + lineWidth = q->width(); + + layout->beginLayout(); + + while (1) { + QTextLine line = layout->createLine(); + if (!line.isValid()) + break; + + if ((wrap || elideMode != QmlGraphicsText::ElideNone) && q->widthValid()) + line.setLineWidth(lineWidth); + } + layout->endLayout(); + + for (int i = 0; i < layout->lineCount(); ++i) { + QTextLine line = layout->lineAt(i); + widthUsed = qMax(widthUsed, line.naturalTextWidth()); + line.setPosition(QPointF(0, height)); + height += int(line.height()); + } + return QSize((int)widthUsed, height); +} + +QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) +{ + //do layout + QSize size = cachedLayoutSize; + + int x = 0; + for (int i = 0; i < layout.lineCount(); ++i) { + QTextLine line = layout.lineAt(i); + if (hAlign == QmlGraphicsText::AlignLeft) { + x = 0; + } else if (hAlign == QmlGraphicsText::AlignRight) { + x = size.width() - (int)line.naturalTextWidth(); + } else if (hAlign == QmlGraphicsText::AlignHCenter) { + x = (size.width() - (int)line.naturalTextWidth()) / 2; + } + line.setPosition(QPoint(x, (int)line.y())); + } + + //paint text + QPixmap img(size); + if (!size.isEmpty()) { + img.fill(Qt::transparent); + QPainter p(&img); + if (drawStyle) { + p.setPen(styleColor); + } + else + p.setPen(color); + p.setFont(font); + layout.draw(&p, QPointF(0, 0)); + } + return img; +} + +QPixmap QmlGraphicsTextPrivate::richTextImage(bool drawStyle) +{ + QSize size = doc->size().toSize(); + + //paint text + QPixmap img(size); + img.fill(Qt::transparent); + QPainter p(&img); + + if (drawStyle) { + QPalette pal = control->palette(); + pal.setColor(QPalette::Text, styleColor); + control->setPalette(pal); + QTextOption colorOption; + colorOption.setFlags(QTextOption::SuppressColors); + doc->setDefaultTextOption(colorOption); + } else { + QPalette pal = control->palette(); + pal.setColor(QPalette::Text, color); + control->setPalette(pal); + } + control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size))); + if (drawStyle) + doc->setDefaultTextOption(QTextOption()); + return img; +} + +void QmlGraphicsTextPrivate::checkImgCache() +{ + if (!imgDirty) + return; + + bool empty = text.isEmpty(); + if (empty) { + imgCache = QPixmap(); + imgStyleCache = QPixmap(); + } else if (richText) { + imgCache = richTextImage(false); + if (style != QmlGraphicsText::Normal) + imgStyleCache = richTextImage(true); //### should use styleColor + } else { + imgCache = wrappedTextImage(false); + if (style != QmlGraphicsText::Normal) + imgStyleCache = wrappedTextImage(true); //### should use styleColor + } + if (!empty) + switch (style) { + case QmlGraphicsText::Outline: + drawOutline(); + break; + case QmlGraphicsText::Sunken: + drawOutline(-1); + break; + case QmlGraphicsText::Raised: + drawOutline(1); + break; + default: + break; + } + + imgDirty = false; +} + +void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +{ + Q_D(QmlGraphicsText); + d->checkImgCache(); + if (d->imgCache.isNull()) + return; + + bool oldAA = p->testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p->testRenderHint(QPainter::SmoothPixmapTransform); + if (d->smooth) + p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); + + int w = width(); + int h = height(); + + int x = 0; + int y = 0; + + switch (d->hAlign) { + case AlignLeft: + x = 0; + break; + case AlignRight: + x = w - d->imgCache.width(); + break; + case AlignHCenter: + x = (w - d->imgCache.width()) / 2; + break; + } + + switch (d->vAlign) { + case AlignTop: + y = 0; + break; + case AlignBottom: + y = h - d->imgCache.height(); + break; + case AlignVCenter: + y = (h - d->imgCache.height()) / 2; + break; + } + + bool needClip = !clip() && (d->imgCache.width() > width() || + d->imgCache.height() > height()); + + if (needClip) { + p->save(); + p->setClipRect(boundingRect(), Qt::IntersectClip); + } + p->drawPixmap(x, y, d->imgCache); + if (needClip) + p->restore(); + + if (d->smooth) { + p->setRenderHint(QPainter::Antialiasing, oldAA); + p->setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } +} + +/*! + \qmlproperty bool Text::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsText::componentComplete() +{ + Q_D(QmlGraphicsText); +#ifdef Q_ENABLE_PERFORMANCE_LOG + QmlPerfTimer cc; +#endif + QmlGraphicsItem::componentComplete(); + if (d->dirty) { + d->updateSize(); + d->dirty = false; + } +} + +/*! + \overload + Handles the given mouse \a event. + */ +void QmlGraphicsText::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsText); + + if (!d->richText || !d->doc || d->control->anchorAt(event->pos()).isEmpty()) { + event->setAccepted(false); + d->activeLink = QString(); + } else { + d->activeLink = d->control->anchorAt(event->pos()); + } + + // ### may malfunction if two of the same links are clicked & dragged onto each other) + + if (!event->isAccepted()) + QmlGraphicsItem::mousePressEvent(event); + +} + +/*! + \qmlsignal Text::linkActivated(link) + + This handler is called when the user clicks on a link embedded in the text. +*/ + +/*! + \overload + Handles the given mouse \a event. + */ +void QmlGraphicsText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsText); + + // ### confirm the link, and send a signal out + if (d->richText && d->doc && d->activeLink == d->control->anchorAt(event->pos())) + emit linkActivated(d->activeLink); + else + event->setAccepted(false); + + if (!event->isAccepted()) + QmlGraphicsItem::mouseReleaseEvent(event); +} +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicstext_p.h b/src/declarative/graphicsitems/qmlgraphicstext_p.h new file mode 100644 index 0000000..ac1ded0 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstext_p.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXT_H +#define QMLGRAPHICSTEXT_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsTextPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsText : public QmlGraphicsItem +{ + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(VAlignment) + Q_ENUMS(TextStyle) + Q_ENUMS(TextFormat) + Q_ENUMS(TextElideMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(TextStyle style READ style WRITE setStyle) + Q_PROPERTY(QColor styleColor READ styleColor WRITE setStyleColor) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### there are several wrap modes in Qt + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode) //### elideMode? + +public: + QmlGraphicsText(QmlGraphicsItem *parent=0); + ~QmlGraphicsText(); + + enum HAlignment { AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter }; + enum VAlignment { AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter }; + enum TextStyle { Normal, + Outline, + Raised, + Sunken }; + enum TextFormat { PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText }; + enum TextElideMode { ElideLeft = Qt::ElideLeft, + ElideRight = Qt::ElideRight, + ElideMiddle = Qt::ElideMiddle, + ElideNone = Qt::ElideNone }; + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + TextStyle style() const; + void setStyle(TextStyle style); + + QColor styleColor() const; + void setStyleColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + TextElideMode elideMode() const; + void setElideMode(TextElideMode); + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(const QString &text); + void linkActivated(const QString &link); + +protected: + QmlGraphicsText(QmlGraphicsTextPrivate &dd, QmlGraphicsItem *parent); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + +private: + Q_DISABLE_COPY(QmlGraphicsText) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsText) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsText) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicstext_p_p.h b/src/declarative/graphicsitems/qmlgraphicstext_p_p.h new file mode 100644 index 0000000..4ca1ad4 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstext_p_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXT_P_H +#define QMLGRAPHICSTEXT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicsitem_p.h" +#include "qml.h" +#include + +QT_BEGIN_NAMESPACE + +class QTextLayout; +class QTextDocument; +class QTextControl; + +class QmlGraphicsTextPrivate : public QmlGraphicsItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsText) +public: + QmlGraphicsTextPrivate() + : color((QRgb)0), style(QmlGraphicsText::Normal), imgDirty(true), + hAlign(QmlGraphicsText::AlignLeft), vAlign(QmlGraphicsText::AlignTop), elideMode(QmlGraphicsText::ElideNone), + dirty(true), wrap(false), richText(false), singleline(false), control(0), doc(0), + format(QmlGraphicsText::AutoText) + { + } + + void updateSize(); + void checkImgCache(); + + void drawOutline(); + void drawOutline(int yOffset); + + QPixmap wrappedTextImage(bool drawStyle); + QPixmap richTextImage(bool drawStyle); + QSize setupTextLayout(QTextLayout *layout); + + QString text; + QFont font; + QColor color; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QString activeLink; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsText::HAlignment hAlign; + QmlGraphicsText::VAlignment vAlign; + QmlGraphicsText::TextElideMode elideMode; + bool dirty; + bool wrap; + bool richText; + bool singleline; + QTextControl *control; + QTextDocument *doc; + QTextLayout layout; + QSize cachedLayoutSize; + QmlGraphicsText::TextFormat format; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicstextedit.cpp b/src/declarative/graphicsitems/qmlgraphicstextedit.cpp new file mode 100644 index 0000000..0c81dca --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextedit.cpp @@ -0,0 +1,1085 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicstextedit_p.h" +#include "qmlgraphicstextedit_p_p.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextEdit,QmlGraphicsTextEdit) + +/*! + \qmlclass TextEdit QFxTextEdit + \brief The TextEdit item allows you to add editable formatted text to a scene. + + It can display both plain and rich text. For example: + + \qml +TextEdit { + id: edit + text: "Hello World!" + focus: true + font.family: "Helvetica" + font.pointSize: 20 + color: "blue" + width: 240 +} + \endqml + + \image declarative-textedit.gif + + \sa Text +*/ + +/*! + \internal + \class QmlGraphicsTextEdit + \qmlclass TextEdit + \ingroup group_coreitems + + \brief The QmlGraphicsTextEdit class provides an editable formatted text item that you can add to a QmlView. + + It can display both plain and rich text. + + \image declarative-textedit.png + + A QmlGraphicsTextEdit object can be instantiated in Qml using the tag \c <TextEdit>. +*/ + +/*! + Constructs a new QmlGraphicsTextEdit. +*/ +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsItem *parent) +: QmlGraphicsPaintedItem(*(new QmlGraphicsTextEditPrivate), parent) +{ + Q_D(QmlGraphicsTextEdit); + d->init(); +} + +/*! +\internal +*/ +QmlGraphicsTextEdit::QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + Q_D(QmlGraphicsTextEdit); + d->init(); +} + +QString QmlGraphicsTextEdit::text() const +{ + Q_D(const QmlGraphicsTextEdit); + + if (d->richText) + return d->document->toHtml(); + else + return d->document->toPlainText(); +} + +/*! + \qmlproperty string TextEdit::font.family + \qmlproperty bool TextEdit::font.bold + \qmlproperty bool TextEdit::font.italic + \qmlproperty bool TextEdit::font.underline + \qmlproperty real TextEdit::font.pointSize + \qmlproperty int TextEdit::font.pixelSize + + Set the TextEdit's font attributes. +*/ + +/*! + \qmlproperty string TextEdit::text + + The text to display. If the text format is AutoText the text edit will + automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). +*/ +void QmlGraphicsTextEdit::setText(const QString &text) +{ + Q_D(QmlGraphicsTextEdit); + if (QmlGraphicsTextEdit::text() == text) + return; + d->text = text; + d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); + if (d->richText) { + d->control->setHtml(text); + } else { + d->control->setPlainText(text); + } + q_textChanged(); + updateSize(); +} + +/*! + \qmlproperty enumeration TextEdit::textFormat + + The way the text property should be displayed. + + Supported text formats are \c AutoText, \c PlainText and \c RichText. + + The default is AutoText. If the text format is AutoText the text edit + will automatically determine whether the text should be treated as + rich text. This determination is made using Qt::mightBeRichText(). + + \table + \row + \o + \qml +Column { + TextEdit { + font.pointSize: 24 + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "RichText" + text: "Hello World!" + } + TextEdit { + font.pointSize: 24 + textFormat: "PlainText" + text: "Hello World!" + } +} + \endqml + \o \image declarative-textformat.png + \endtable +*/ +QmlGraphicsTextEdit::TextFormat QmlGraphicsTextEdit::textFormat() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->format; +} + +void QmlGraphicsTextEdit::setTextFormat(TextFormat format) +{ + Q_D(QmlGraphicsTextEdit); + if (format == d->format) + return; + bool wasRich = d->richText; + d->richText = format == RichText || (format == AutoText && Qt::mightBeRichText(d->text)); + + if (wasRich && !d->richText) { + d->control->setPlainText(d->text); + updateSize(); + } else if (!wasRich && d->richText) { + d->control->setHtml(d->text); + updateSize(); + } + d->format = format; +} + +QFont QmlGraphicsTextEdit::font() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->font; +} + +void QmlGraphicsTextEdit::setFont(const QFont &font) +{ + Q_D(QmlGraphicsTextEdit); + d->font = font; + + clearCache(); + d->document->setDefaultFont(d->font); + if(d->cursor){ + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + } + updateSize(); + update(); +} + +/*! + \qmlproperty color TextEdit::color + + The text color. + + \qml +// green text using hexadecimal notation +TextEdit { color: "#00FF00"; ... } + +// steelblue text using SVG color name +TextEdit { color: "steelblue"; ... } + \endqml +*/ +QColor QmlGraphicsTextEdit::color() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->color; +} + +void QmlGraphicsTextEdit::setColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->color == color) + return; + + clearCache(); + d->color = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::Text, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty color TextEdit::selectionColor + + The text highlight color, used behind selections. +*/ +QColor QmlGraphicsTextEdit::selectionColor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->selectionColor; +} + +void QmlGraphicsTextEdit::setSelectionColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->selectionColor == color) + return; + + clearCache(); + d->selectionColor = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::Highlight, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty color TextEdit::selectedTextColor + + The selected text color, used in selections. +*/ +QColor QmlGraphicsTextEdit::selectedTextColor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->selectedTextColor; +} + +void QmlGraphicsTextEdit::setSelectedTextColor(const QColor &color) +{ + Q_D(QmlGraphicsTextEdit); + if (d->selectedTextColor == color) + return; + + clearCache(); + d->selectedTextColor = color; + QPalette pal = d->control->palette(); + pal.setColor(QPalette::HighlightedText, color); + d->control->setPalette(pal); + update(); +} + +/*! + \qmlproperty enumeration TextEdit::horizontalAlignment + \qmlproperty enumeration TextEdit::verticalAlignment + + Sets the horizontal and vertical alignment of the text within the TextEdit items + width and height. By default, the text is top-left aligned. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. The valid values for \c verticalAlignment are \c AlignTop, \c AlignBottom + and \c AlignVCenter. +*/ +QmlGraphicsTextEdit::HAlignment QmlGraphicsTextEdit::hAlign() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->hAlign; +} + +void QmlGraphicsTextEdit::setHAlign(QmlGraphicsTextEdit::HAlignment alignment) +{ + Q_D(QmlGraphicsTextEdit); + if (alignment == d->hAlign) + return; + d->hAlign = alignment; + d->updateDefaultTextOption(); + updateSize(); +} + +QmlGraphicsTextEdit::VAlignment QmlGraphicsTextEdit::vAlign() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->vAlign; +} + +void QmlGraphicsTextEdit::setVAlign(QmlGraphicsTextEdit::VAlignment alignment) +{ + Q_D(QmlGraphicsTextEdit); + if (alignment == d->vAlign) + return; + d->vAlign = alignment; + d->updateDefaultTextOption(); + updateSize(); +} + +bool QmlGraphicsTextEdit::wrap() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->wrap; +} + +/*! + \qmlproperty bool TextEdit::wrap + + Set this property to wrap the text to the TextEdit item's width. + The text will only wrap if an explicit width has been set. + + Wrapping is done on word boundaries (i.e. it is a "word-wrap"). Wrapping is off by default. +*/ +void QmlGraphicsTextEdit::setWrap(bool w) +{ + Q_D(QmlGraphicsTextEdit); + if (w == d->wrap) + return; + d->wrap = w; + d->updateDefaultTextOption(); + updateSize(); +} + +/*! + \qmlproperty bool TextEdit::cursorVisible + If true the text edit shows a cursor. + + This property is set and unset when the text edit gets focus, but it can also + be set directly (useful, for example, if a KeyProxy might forward keys to it). +*/ +bool QmlGraphicsTextEdit::isCursorVisible() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->cursorVisible; +} + +void QmlGraphicsTextEdit::setCursorVisible(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->cursorVisible == on) + return; + d->cursorVisible = on; + QFocusEvent focusEvent(on ? QEvent::FocusIn : QEvent::FocusOut); + if (!on && !d->persistentSelection) + d->control->setCursorIsFocusIndicator(true); + d->control->processEvent(&focusEvent, QPointF(0, 0)); +} + +/*! + \qmlproperty int TextEdit::cursorPosition + The position of the cursor in the TextEdit. +*/ +int QmlGraphicsTextEdit::cursorPosition() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().position(); +} + +void QmlGraphicsTextEdit::setCursorPosition(int pos) +{ + Q_D(QmlGraphicsTextEdit); + QTextCursor cursor = d->control->textCursor(); + if (cursor.position() == pos) + return; + cursor.setPosition(pos); + d->control->setTextCursor(cursor); +} + +/*! + \qmlproperty Component TextEdit::cursorDelegate + The delegate for the cursor in the TextEdit. + + If you set a cursorDelegate for a TextEdit, this delegate will be used for + drawing the cursor instead of the standard cursor. An instance of the + delegate will be created and managed by the text edit when a cursor is + needed, and the x and y properties of delegate instance will be set so as + to be one pixel before the top left of the current character. + + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. +*/ +QmlComponent* QmlGraphicsTextEdit::cursorDelegate() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->cursorComponent; +} + +void QmlGraphicsTextEdit::setCursorDelegate(QmlComponent* c) +{ + Q_D(QmlGraphicsTextEdit); + if(d->cursorComponent){ + if(d->cursor){ + disconnect(d->control, SIGNAL(cursorPositionChanged()), + this, SLOT(moveCursorDelegate())); + d->control->setCursorWidth(-1); + dirtyCache(cursorRect()); + delete d->cursor; + d->cursor = 0; + } + } + d->cursorComponent = c; + if(c && c->isReady()){ + loadCursorDelegate(); + }else{ + if(c) + connect(c, SIGNAL(statusChanged()), + this, SLOT(loadCursorDelegate())); + } +} + +void QmlGraphicsTextEdit::loadCursorDelegate() +{ + Q_D(QmlGraphicsTextEdit); + if(d->cursorComponent->isLoading()) + return; + d->cursor = qobject_cast(d->cursorComponent->create(qmlContext(this))); + if(d->cursor){ + connect(d->control, SIGNAL(cursorPositionChanged()), + this, SLOT(moveCursorDelegate())); + d->control->setCursorWidth(0); + dirtyCache(cursorRect()); + d->cursor->setParentItem(this); + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + }else{ + qWarning() << QLatin1String("Error loading cursor delegate for TextEdit:") + objectName(); + } +} + +/*! + \qmlproperty int TextEdit::selectionStart + + The cursor position before the first character in the current selection. + Setting this and selectionEnd allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionStart to a value outside of + the current text, selectionStart will not be changed. + + \sa selectionEnd, cursorPosition, selectedText +*/ +int QmlGraphicsTextEdit::selectionStart() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectionStart(); +} + +void QmlGraphicsTextEdit::setSelectionStart(int s) +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionStart == s || s < 0 || s > text().length()) + return; + d->lastSelectionStart = s; + d->updateSelection();// Will emit the relevant signals +} + +/*! + \qmlproperty int TextEdit::selectionEnd + + The cursor position after the last character in the current selection. + Setting this and selectionStart allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionEnd to a value outside of + the current text, selectionEnd will not be changed. + + \sa selectionStart, cursorPosition, selectedText +*/ +int QmlGraphicsTextEdit::selectionEnd() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectionEnd(); +} + +void QmlGraphicsTextEdit::setSelectionEnd(int s) +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionEnd == s || s < 0 || s > text().length()) + return; + d->lastSelectionEnd = s; + d->updateSelection();// Will emit the relevant signals +} + +/*! + \qmlproperty string TextEdit::selectedText + + This read-only property provides the text currently selected in the + text edit. + + It is equivalent to the following snippet, but is faster and easier + to use. + \code + //myTextEdit is the id of the TextEdit + myTextEdit.text.toString().substring(myTextEdit.selectionStart, + myTextEdit.selectionEnd); + \endcode +*/ +QString QmlGraphicsTextEdit::selectedText() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor().selectedText(); +} + +/*! + \qmlproperty bool TextEdit::focusOnPress + + Whether the TextEdit should gain focus on a mouse press. By default this is + set to false; +*/ +bool QmlGraphicsTextEdit::focusOnPress() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->focusOnPress; +} + +void QmlGraphicsTextEdit::setFocusOnPress(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->focusOnPress == on) + return; + d->focusOnPress = on; +} + +/*! + \qmlproperty bool TextEdit::persistentSelection + + Whether the TextEdit should keep the selection visible when it loses focus to another + item in the scene. By default this is set to true; +*/ +bool QmlGraphicsTextEdit::persistentSelection() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->persistentSelection; +} + +void QmlGraphicsTextEdit::setPersistentSelection(bool on) +{ + Q_D(QmlGraphicsTextEdit); + if (d->persistentSelection == on) + return; + d->persistentSelection = on; +} + +qreal QmlGraphicsTextEdit::textMargin() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->textMargin; +} + +void QmlGraphicsTextEdit::setTextMargin(qreal margin) +{ + Q_D(QmlGraphicsTextEdit); + if (d->textMargin == margin) + return; + d->textMargin = margin; + d->document->setDocumentMargin(d->textMargin); +} + +void QmlGraphicsTextEdit::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.width() != oldGeometry.width()) + updateSize(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +/*! + Ensures any delayed caching or data loading the class + needs to performed is complete. +*/ +void QmlGraphicsTextEdit::componentComplete() +{ + Q_D(QmlGraphicsTextEdit); + QmlGraphicsPaintedItem::componentComplete(); + if (d->dirty) { + updateSize(); + d->dirty = false; + } +} + +/*! + \qmlproperty bool TextEdit::readOnly + + Whether the user an interact with the TextEdit item. If this + property is set to true the text cannot be edited by user interaction. + + By default this property is false. +*/ +void QmlGraphicsTextEdit::setReadOnly(bool r) +{ + Q_D(QmlGraphicsTextEdit); + + Qt::TextInteractionFlags flags = Qt::NoTextInteraction; + if (r) { + flags = Qt::TextSelectableByMouse; + } else { + flags = Qt::TextEditorInteraction; + } + d->control->setTextInteractionFlags(flags); + if (!r) + d->control->moveCursor(QTextCursor::End); +} + +bool QmlGraphicsTextEdit::isReadOnly() const +{ + Q_D(const QmlGraphicsTextEdit); + return !(d->control->textInteractionFlags() & Qt::TextEditable); +} + +/*! + Sets how the text edit should interact with user input to the given + \a flags. +*/ +void QmlGraphicsTextEdit::setTextInteractionFlags(Qt::TextInteractionFlags flags) +{ + Q_D(QmlGraphicsTextEdit); + d->control->setTextInteractionFlags(flags); +} + +/*! + Returns the flags specifying how the text edit should interact + with user input. +*/ +Qt::TextInteractionFlags QmlGraphicsTextEdit::textInteractionFlags() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textInteractionFlags(); +} + +/*! + Returns the cursor for the point at the given \a pos on the + text edit. +*/ +QTextCursor QmlGraphicsTextEdit::cursorForPosition(const QPoint &pos) const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->cursorForPosition(pos); +} + +/*! + Returns the rectangle where the given text \a cursor is rendered + within the text edit. +*/ +QRect QmlGraphicsTextEdit::cursorRect(const QTextCursor &cursor) const +{ + Q_D(const QmlGraphicsTextEdit); + if (cursor.isNull()) + return QRect(); + + return d->control->cursorRect(cursor).toRect(); +} + +/*! + Returns the rectangle where the text cursor is rendered + within the text edit. +*/ +QRect QmlGraphicsTextEdit::cursorRect() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->cursorRect().toRect(); +} + + +/*! + Sets the text cursor for the text edit to the given \a cursor. +*/ +void QmlGraphicsTextEdit::setTextCursor(const QTextCursor &cursor) +{ + Q_D(QmlGraphicsTextEdit); + d->control->setTextCursor(cursor); +} + +/*! + Returns the text cursor for the text edit. +*/ +QTextCursor QmlGraphicsTextEdit::textCursor() const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->textCursor(); +} + +/*! +Moves the cursor by performing the given \a operation. + +If \a mode is QTextCursor::KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys. +*/ +void QmlGraphicsTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode) +{ + Q_D(QmlGraphicsTextEdit); + d->control->moveCursor(operation, mode); +} + +/*! +\overload +Handles the given \a event. +*/ +bool QmlGraphicsTextEdit::event(QEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + if (event->type() == QEvent::ShortcutOverride) { + d->control->processEvent(event, QPointF(0, 0)); + return event->isAccepted(); + } + return QmlGraphicsPaintedItem::event(event); +} + +/*! +\overload +Handles the given key \a event. +*/ +void QmlGraphicsTextEdit::keyPressEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + //### this causes non-standard cursor behavior in some cases. + // is it still needed? + /*QTextCursor c = textCursor(); + QTextCursor::MoveOperation op = QTextCursor::NoMove; + if (event == QKeySequence::MoveToNextChar) { + op = QTextCursor::Right; + } else if (event == QKeySequence::MoveToPreviousChar) { + op = QTextCursor::Left; + } else if (event == QKeySequence::MoveToNextWord) { + op = QTextCursor::WordRight; + } else if (event == QKeySequence::MoveToPreviousWord) { + op = QTextCursor::WordLeft; + } else if (event == QKeySequence::MoveToNextLine) { + op = QTextCursor::Down; + } else if (event == QKeySequence::MoveToPreviousLine) { + op = QTextCursor::Up; + } + + if (op != QTextCursor::NoMove && !c.movePosition(op)) + event->ignore(); + else*/ + d->control->processEvent(event, QPointF(0, 0)); + + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(event); +} + +/*! +\overload +Handles the given key \a event. +*/ +void QmlGraphicsTextEdit::keyReleaseEvent(QKeyEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyReleaseEvent(event); +} + +/*! + \overload + Handles changing of the focus property. Focus is applied to the control + even if the edit does not have active focus. This is because things + like KeyProxy can give the behavior of focus even when hasFocus() isn't + true. +*/ +void QmlGraphicsTextEdit::focusChanged(bool hasFocus) +{ + setCursorVisible(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); +} + +/*! + Causes all text to be selected. +*/ +void QmlGraphicsTextEdit::selectAll() +{ + Q_D(QmlGraphicsTextEdit); + d->control->selectAll(); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + if (d->focusOnPress) + setFocus(true); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mouseDoubleClickEvent(event); +} + +/*! +\overload +Handles the given mouse \a event. +*/ +void QmlGraphicsTextEdit::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mousePressEvent(event); +} + +/*! +\overload +Handles the given input method \a event. +*/ +void QmlGraphicsTextEdit::inputMethodEvent(QInputMethodEvent *event) +{ + Q_D(QmlGraphicsTextEdit); + d->control->processEvent(event, QPointF(0, 0)); +} + +/*! +\overload +Returns the value of the given \a property. +*/ +QVariant QmlGraphicsTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const +{ + Q_D(const QmlGraphicsTextEdit); + return d->control->inputMethodQuery(property); +} + +/*! +Draws the contents of the text edit using the given \a painter within +the given \a bounds. +*/ +void QmlGraphicsTextEdit::drawContents(QPainter *painter, const QRect &bounds) +{ + Q_D(QmlGraphicsTextEdit); + + painter->setRenderHint(QPainter::TextAntialiasing, true); + + d->control->drawContents(painter, bounds); +} + +void QmlGraphicsTextEdit::updateImgCache(const QRectF &r) +{ + dirtyCache(r.toRect()); + emit update(); +} + +/*! + \qmlproperty bool TextEdit::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsTextEditPrivate::init() +{ + Q_Q(QmlGraphicsTextEdit); + + q->setSmoothTransform(smooth); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemHasNoContents, false); + q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + + control = new QTextControl(q); + + QObject::connect(control, SIGNAL(updateRequest(QRectF)), q, SLOT(updateImgCache(QRectF))); + + QObject::connect(control, SIGNAL(textChanged()), q, SLOT(q_textChanged())); + QObject::connect(control, SIGNAL(selectionChanged()), q, SIGNAL(selectionChanged())); + QObject::connect(control, SIGNAL(selectionChanged()), q, SLOT(updateSelectionMarkers())); + QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SLOT(updateSelectionMarkers())); + QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SIGNAL(cursorPositionChanged())); + + document = control->document(); + document->setDefaultFont(font); + document->setDocumentMargin(textMargin); + document->setUndoRedoEnabled(false); // flush undo buffer. + document->setUndoRedoEnabled(true); + updateDefaultTextOption(); +} + +void QmlGraphicsTextEdit::q_textChanged() +{ + if (!widthValid()) + updateSize(); //### optimize: we get 3 calls to updateSize every time a letter is typed + emit textChanged(text()); +} + +void QmlGraphicsTextEdit::moveCursorDelegate() +{ + Q_D(QmlGraphicsTextEdit); + if(!d->cursor) + return; + QRectF cursorRect = d->control->cursorRect(); + d->cursor->setX(cursorRect.x()); + d->cursor->setY(cursorRect.y()); +} + +void QmlGraphicsTextEditPrivate::updateSelection() +{ + Q_Q(QmlGraphicsTextEdit); + QTextCursor cursor = control->textCursor(); + bool startChange = (lastSelectionStart != cursor.selectionStart()); + bool endChange = (lastSelectionEnd != cursor.selectionEnd()); + //### Is it worth calculating a more minimal set of movements? + cursor.beginEditBlock(); + cursor.setPosition(lastSelectionStart, QTextCursor::MoveAnchor); + cursor.setPosition(lastSelectionEnd, QTextCursor::KeepAnchor); + cursor.endEditBlock(); + control->setTextCursor(cursor); + if(startChange) + q->selectionStartChanged(); + if(endChange) + q->selectionEndChanged(); + startChange = (lastSelectionStart != control->textCursor().selectionStart()); + endChange = (lastSelectionEnd != control->textCursor().selectionEnd()); + if(startChange || endChange) + qWarning() << "QmlGraphicsTextEditPrivate::updateSelection() has failed you."; +} + +void QmlGraphicsTextEdit::updateSelectionMarkers() +{ + Q_D(QmlGraphicsTextEdit); + if(d->lastSelectionStart != d->control->textCursor().selectionStart()){ + d->lastSelectionStart = d->control->textCursor().selectionStart(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->textCursor().selectionEnd()){ + d->lastSelectionEnd = d->control->textCursor().selectionEnd(); + emit selectionEndChanged(); + } +} + +//### we should perhaps be a bit smarter here -- depending on what has changed, we shouldn't +// need to do all the calculations each time +void QmlGraphicsTextEdit::updateSize() +{ + Q_D(QmlGraphicsTextEdit); + if (isComponentComplete()) { + QFontMetrics fm = QFontMetrics(d->font); + int dy = height(); + // ### assumes that if the width is set, the text will fill to edges + // ### (unless wrap is false, then clipping will occur) + if (widthValid()) + d->document->setTextWidth(width()); + dy -= (int)d->document->size().height(); + + int yoff = 0; + if (heightValid()) { + if (d->vAlign == AlignBottom) + yoff = dy; + else if (d->vAlign == AlignVCenter) + yoff = dy/2; + } + setBaselineOffset(fm.ascent() + yoff + d->textMargin); + + //### need to comfirm cost of always setting these + int newWidth = (int)d->document->idealWidth(); + d->document->setTextWidth(newWidth); // ### QTextDoc> Alignment will not work unless textWidth is set. Does Text need this line as well? + int cursorWidth = 1; + if(d->cursor) + cursorWidth = d->cursor->width(); + newWidth += cursorWidth; + if(!d->document->isEmpty()) + newWidth += 3;// ### Need a better way of accounting for space between char and cursor + // ### Setting the implicitWidth triggers another updateSize(), and unless there are bindings nothing has changed. + setImplicitWidth(newWidth); + setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); + + setContentsSize(QSize(width(), height())); + } else { + d->dirty = true; + } + emit update(); +} + +void QmlGraphicsTextEditPrivate::updateDefaultTextOption() +{ + QTextOption opt = document->defaultTextOption(); + int oldAlignment = opt.alignment(); + opt.setAlignment((Qt::Alignment)(int)(hAlign | vAlign)); + + QTextOption::WrapMode oldWrapMode = opt.wrapMode(); + + if (wrap) + opt.setWrapMode(QTextOption::WordWrap); + else + opt.setWrapMode(QTextOption::NoWrap); + + if (oldWrapMode == opt.wrapMode() && oldAlignment == opt.alignment()) + return; + document->setDefaultTextOption(opt); +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicstextedit_p.h b/src/declarative/graphicsitems/qmlgraphicstextedit_p.h new file mode 100644 index 0000000..efbe998 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextedit_p.h @@ -0,0 +1,234 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXTEDIT_H +#define QMLGRAPHICSTEXTEDIT_H + +#include +#include + +#include +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + + +class QmlGraphicsTextEditPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextEdit : public QmlGraphicsPaintedItem +{ + Q_OBJECT + Q_ENUMS(VAlignment) + Q_ENUMS(HAlignment) + Q_ENUMS(TextFormat) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + Q_PROPERTY(VAlignment verticalAlignment READ vAlign WRITE setVAlign) + Q_PROPERTY(bool wrap READ wrap WRITE setWrap) //### other wrap modes + Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat) + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent* cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection) + Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin) + +public: + QmlGraphicsTextEdit(QmlGraphicsItem *parent=0); + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + enum VAlignment { + AlignTop = Qt::AlignTop, + AlignBottom = Qt::AlignBottom, + AlignVCenter = Qt::AlignVCenter + }; + + enum TextFormat { + PlainText = Qt::PlainText, + RichText = Qt::RichText, + AutoText = Qt::AutoText + }; + + QString text() const; + void setText(const QString &); + + TextFormat textFormat() const; + void setTextFormat(TextFormat format); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + VAlignment vAlign() const; + void setVAlign(VAlignment align); + + bool wrap() const; + void setWrap(bool w); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int pos); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + bool focusOnPress() const; + void setFocusOnPress(bool on); + + bool persistentSelection() const; + void setPersistentSelection(bool on); + + qreal textMargin() const; + void setTextMargin(qreal margin); + + virtual void componentComplete(); + + /* FROM EDIT */ + void setReadOnly(bool); + bool isReadOnly() const; + + void setTextInteractionFlags(Qt::TextInteractionFlags flags); + Qt::TextInteractionFlags textInteractionFlags() const; + + QTextCursor cursorForPosition(const QPoint &pos) const; + QRect cursorRect(const QTextCursor &cursor) const; + QRect cursorRect() const; + + void setTextCursor(const QTextCursor &cursor); + QTextCursor textCursor() const; + + void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); + + QVariant inputMethodQuery(Qt::InputMethodQuery property) const; + +Q_SIGNALS: + void textChanged(const QString &); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectionChanged(); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateImgCache(const QRectF &rect); + void q_textChanged(); + void updateSelectionMarkers(); + void moveCursorDelegate(); + void loadCursorDelegate(); + +private: + void updateSize(); + +protected: + QmlGraphicsTextEdit(QmlGraphicsTextEditPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + bool event(QEvent *); + void keyPressEvent(QKeyEvent *); + void keyReleaseEvent(QKeyEvent *); + + void focusChanged(bool); + + // mouse filter? + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + + void inputMethodEvent(QInputMethodEvent *e); + + void drawContents(QPainter *, const QRect &); +private: + Q_DISABLE_COPY(QmlGraphicsTextEdit) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextEdit) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsTextEdit) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicstextedit_p_p.h b/src/declarative/graphicsitems/qmlgraphicstextedit_p_p.h new file mode 100644 index 0000000..4cbc56d --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextedit_p_p.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXTEDIT_P_H +#define QMLGRAPHICSTEXTEDIT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlgraphicsitem.h" +#include "qmlgraphicspainteditem_p_p.h" +#include "qml.h" + + +QT_BEGIN_NAMESPACE +class QTextLayout; +class QTextDocument; +class QTextControl; +class QmlGraphicsTextEditPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextEdit) + +public: + QmlGraphicsTextEditPrivate() + : color("black"), imgDirty(true), hAlign(QmlGraphicsTextEdit::AlignLeft), vAlign(QmlGraphicsTextEdit::AlignTop), + dirty(false), wrap(false), richText(false), cursorVisible(false), focusOnPress(false), + persistentSelection(true), textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), + cursorComponent(0), cursor(0), format(QmlGraphicsTextEdit::AutoText), document(0) + { + } + + void init(); + + void updateDefaultTextOption(); + void relayoutDocument(); + void updateSelection(); + + QString text; + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QString style; + QColor styleColor; + bool imgDirty; + QPixmap imgCache; + QPixmap imgStyleCache; + QmlGraphicsTextEdit::HAlignment hAlign; + QmlGraphicsTextEdit::VAlignment vAlign; + bool dirty; + bool wrap; + bool richText; + bool cursorVisible; + bool focusOnPress; + bool persistentSelection; + qreal textMargin; + int lastSelectionStart; + int lastSelectionEnd; + QmlComponent* cursorComponent; + QmlGraphicsItem* cursor; + QmlGraphicsTextEdit::TextFormat format; + QTextDocument *document; + QTextControl *control; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicstextinput.cpp b/src/declarative/graphicsitems/qmlgraphicstextinput.cpp new file mode 100644 index 0000000..44ccda1 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextinput.cpp @@ -0,0 +1,777 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include "qmlgraphicstextinput_p.h" +#include "qmlgraphicstextinput_p_p.h" +#include "qmlinfo.h" +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,TextInput,QmlGraphicsTextInput); +QML_DEFINE_NOCREATE_TYPE(QValidator); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); + +/*! + \qmlclass TextInput QFxTextInput + The TextInput item allows you to add an editable line of text to a scene. + + TextInput can only display a single line of text, and can only display + plain text. However it can provide addition input constraints on the text. + + Input constraints include setting a QValidator, an input mask, or a + maximum input length. +*/ +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsTextInputPrivate), parent) +{ + Q_D(QmlGraphicsTextInput); + d->init(); +} + +/* + \internal +*/ +QmlGraphicsTextInput::QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem* parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + Q_D(QmlGraphicsTextInput); + d->init(); +} + +QmlGraphicsTextInput::~QmlGraphicsTextInput() +{ +} + +/*! + \qmlproperty string TextInput::text + + The text in the TextInput. +*/ + +QString QmlGraphicsTextInput::text() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->text(); +} + +void QmlGraphicsTextInput::setText(const QString &s) +{ + Q_D(QmlGraphicsTextInput); + if(s == text()) + return; + d->control->setText(s); + //emit textChanged(); +} + +/*! + \qmlproperty string TextInput::font.family + \qmlproperty bool TextInput::font.bold + \qmlproperty bool TextInput::font.italic + \qmlproperty bool TextInput::font.underline + \qmlproperty real TextInput::font.pointSize + \qmlproperty int TextInput::font.pixelSize + + Set the TextInput's font attributes. +*/ +QFont QmlGraphicsTextInput::font() const +{ + Q_D(const QmlGraphicsTextInput); + return d->font; +} + +void QmlGraphicsTextInput::setFont(const QFont &font) +{ + Q_D(QmlGraphicsTextInput); + d->font = font; + + d->control->setFont(d->font); + if(d->cursorItem){ + d->cursorItem->setHeight(QFontMetrics(d->font).height()); + moveCursor(); + } + updateSize(); +} + +/*! + \qmlproperty color TextInput::color + + The text color. +*/ +QColor QmlGraphicsTextInput::color() const +{ + Q_D(const QmlGraphicsTextInput); + return d->color; +} + +void QmlGraphicsTextInput::setColor(const QColor &c) +{ + Q_D(QmlGraphicsTextInput); + d->color = c; +} + + +/*! + \qmlproperty color TextInput::selectionColor + + The text highlight color, used behind selections. +*/ +QColor QmlGraphicsTextInput::selectionColor() const +{ + Q_D(const QmlGraphicsTextInput); + return d->selectionColor; +} + +void QmlGraphicsTextInput::setSelectionColor(const QColor &color) +{ + Q_D(QmlGraphicsTextInput); + if (d->selectionColor == color) + return; + + d->selectionColor = color; + QPalette p = d->control->palette(); + p.setColor(QPalette::Highlight, d->selectionColor); + d->control->setPalette(p); +} + +/*! + \qmlproperty color TextInput::selectedTextColor + + The highlighted text color, used in selections. +*/ +QColor QmlGraphicsTextInput::selectedTextColor() const +{ + Q_D(const QmlGraphicsTextInput); + return d->selectedTextColor; +} + +void QmlGraphicsTextInput::setSelectedTextColor(const QColor &color) +{ + Q_D(QmlGraphicsTextInput); + if (d->selectedTextColor == color) + return; + + d->selectedTextColor = color; + QPalette p = d->control->palette(); + p.setColor(QPalette::HighlightedText, d->selectedTextColor); + d->control->setPalette(p); +} + +/*! + \qmlproperty enumeration TextInput::horizontalAlignment + + Sets the horizontal alignment of the text within the TextInput item's + width and height. By default, the text is left aligned. + + TextInput does not have vertical alignment, as the natural height is + exactly the height of the single line of text. If you set the height + manually to something larger, TextInput will always be top aligned + vertically. You can use anchors to align it however you want within + another item. + + The valid values for \c horizontalAlignment are \c AlignLeft, \c AlignRight and + \c AlignHCenter. +*/ +QmlGraphicsTextInput::HAlignment QmlGraphicsTextInput::hAlign() const +{ + Q_D(const QmlGraphicsTextInput); + return d->hAlign; +} + +void QmlGraphicsTextInput::setHAlign(HAlignment align) +{ + Q_D(QmlGraphicsTextInput); + d->hAlign = align; + //TODO: implement +} + +bool QmlGraphicsTextInput::isReadOnly() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->isReadOnly(); +} + +void QmlGraphicsTextInput::setReadOnly(bool ro) +{ + Q_D(QmlGraphicsTextInput); + d->control->setReadOnly(ro); +} + +int QmlGraphicsTextInput::maxLength() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->maxLength(); +} + +void QmlGraphicsTextInput::setMaxLength(int ml) +{ + Q_D(QmlGraphicsTextInput); + d->control->setMaxLength(ml); +} + +/*! + \qmlproperty bool TextInput::cursorVisible + If true the text edit shows a cursor. + + This property is set and unset when the line edit gets focus, but it can also + be set directly (useful, for example, if a KeyProxy might forward keys to it). +*/ +bool QmlGraphicsTextInput::isCursorVisible() const +{ + Q_D(const QmlGraphicsTextInput); + return d->cursorVisible; +} + +void QmlGraphicsTextInput::setCursorVisible(bool on) +{ + Q_D(QmlGraphicsTextInput); + if (d->cursorVisible == on) + return; + d->cursorVisible = on; + d->control->setCursorBlinkPeriod(on?QApplication::cursorFlashTime():0); + //d->control should emit the cursor update regions +} + +/*! + \qmlproperty int TextInput::cursorPosition + The position of the cursor in the TextInput. +*/ +int QmlGraphicsTextInput::cursorPosition() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->cursor(); +} +void QmlGraphicsTextInput::setCursorPosition(int cp) +{ + Q_D(QmlGraphicsTextInput); + d->control->moveCursor(cp); +} + +/*! + \internal + + Returns a Rect which encompasses the cursor, but which may be larger than is + required. Ignores custom cursor delegates. +*/ +QRect QmlGraphicsTextInput::cursorRect() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->cursorRect(); +} + +/*! + \qmlproperty int TextInput::selectionStart + + The cursor position before the first character in the current selection. + Setting this and selectionEnd allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionStart to a value outside of + the current text, selectionStart will not be changed. + + \sa selectionEnd, cursorPosition, selectedText +*/ +int QmlGraphicsTextInput::selectionStart() const +{ + Q_D(const QmlGraphicsTextInput); + return d->lastSelectionStart; +} + +void QmlGraphicsTextInput::setSelectionStart(int s) +{ + Q_D(QmlGraphicsTextInput); + if(d->lastSelectionStart == s || s < 0 || s > text().length()) + return; + d->lastSelectionStart = s; + d->control->setSelection(s, d->lastSelectionEnd - s); +} + +/*! + \qmlproperty int TextInput::selectionEnd + + The cursor position after the last character in the current selection. + Setting this and selectionStart allows you to specify a selection in the + text edit. + + Note that if selectionStart == selectionEnd then there is no current + selection. If you attempt to set selectionEnd to a value outside of + the current text, selectionEnd will not be changed. + + \sa selectionStart, cursorPosition, selectedText +*/ +int QmlGraphicsTextInput::selectionEnd() const +{ + Q_D(const QmlGraphicsTextInput); + return d->lastSelectionEnd; +} + +void QmlGraphicsTextInput::setSelectionEnd(int s) +{ + Q_D(QmlGraphicsTextInput); + if(d->lastSelectionEnd == s || s < 0 || s > text().length()) + return; + d->lastSelectionEnd = s; + d->control->setSelection(d->lastSelectionStart, s - d->lastSelectionStart); +} + +/*! + \qmlproperty string TextInput::selectedText + + This read-only property provides the text currently selected in the + text input. + + It is equivalent to the following snippet, but is faster and easier + to use. + + \qml + myTextInput.text.toString().substring(myTextInput.selectionStart, + myTextInput.selectionEnd); + \endqml +*/ +QString QmlGraphicsTextInput::selectedText() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->selectedText(); +} + +/*! + \qmlproperty bool TextInput::focusOnPress + + Whether the TextInput should gain focus on a mouse press. By default this is + set to true. +*/ +bool QmlGraphicsTextInput::focusOnPress() const +{ + Q_D(const QmlGraphicsTextInput); + return d->focusOnPress; +} + +void QmlGraphicsTextInput::setFocusOnPress(bool b) +{ + Q_D(QmlGraphicsTextInput); + d->focusOnPress = b; +} + +/*! + \qmlproperty QValidator* TextInput::validator + + Allows you to set a QValidator on the TextInput. When a validator is set + the TextInput will only accept input which leaves the text property in + an acceptable or intermediate state. The accepted signal will only be sent + if the text is in an acceptable state when enter is pressed. + + \sa acceptableInput, inputMask +*/ +QValidator* QmlGraphicsTextInput::validator() const +{ + Q_D(const QmlGraphicsTextInput); + //###const cast isn't good, but needed for property system? + return const_cast(d->control->validator()); +} + +void QmlGraphicsTextInput::setValidator(QValidator* v) +{ + Q_D(QmlGraphicsTextInput); + d->control->setValidator(v); + if(!d->control->hasAcceptableInput()){ + d->oldValidity = false; + emit acceptableInputChanged(); + } +} + +/*! + \qmlproperty string TextInput::inputMask + + Allows you to set an input mask on the TextInput, restricting the allowable + text inputs. See QLineEdit::inputMask for further details, as the exact + same mask strings are used by TextInput. + + \sa acceptableInput, validator +*/ +QString QmlGraphicsTextInput::inputMask() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->inputMask(); +} + +void QmlGraphicsTextInput::setInputMask(const QString &im) +{ + Q_D(QmlGraphicsTextInput); + d->control->setInputMask(im); +} + +/*! + \qmlproperty bool TextInput::acceptableInput + + This property is always true unless a validator or input mask has been set. + If a validator or input mask has been set, this property will only be true + if the current text is acceptable to the validator or input mask as a final + string (not as an intermediate string). +*/ +bool QmlGraphicsTextInput::hasAcceptableInput() const +{ + Q_D(const QmlGraphicsTextInput); + return d->control->hasAcceptableInput(); +} + +/*! + \qmlproperty TextInput.EchoMode TextInput::echoMode + + Specifies how the text should be displayed in the TextInput. + The default is Normal, which displays the text as it is. Other values + are Password, which displays asterixes instead of characters, NoEcho, + which displays nothing, and PasswordEchoOnEdit, which displays all but the + current character as asterixes. + +*/ +QmlGraphicsTextInput::EchoMode QmlGraphicsTextInput::echoMode() const +{ + Q_D(const QmlGraphicsTextInput); + return (QmlGraphicsTextInput::EchoMode)d->control->echoMode(); +} + +void QmlGraphicsTextInput::setEchoMode(QmlGraphicsTextInput::EchoMode echo) +{ + Q_D(QmlGraphicsTextInput); + d->control->setEchoMode((uint)echo); +} + +/*! + \qmlproperty Component TextInput::cursorDelegate + The delegate for the cursor in the TextInput. + + If you set a cursorDelegate for a TextInput, this delegate will be used for + drawing the cursor instead of the standard cursor. An instance of the + delegate will be created and managed by the TextInput when a cursor is + needed, and the x property of delegate instance will be set so as + to be one pixel before the top left of the current character. + + Note that the root item of the delegate component must be a QmlGraphicsItem or + QmlGraphicsItem derived item. +*/ +QmlComponent* QmlGraphicsTextInput::cursorDelegate() const +{ + Q_D(const QmlGraphicsTextInput); + return d->cursorComponent; +} + +void QmlGraphicsTextInput::setCursorDelegate(QmlComponent* c) +{ + Q_D(QmlGraphicsTextInput); + d->cursorComponent = c; + if(!c){ + //note that the components are owned by something else + disconnect(d->control, SIGNAL(cursorPositionChanged(int, int)), + this, SLOT(moveCursor())); + delete d->cursorItem; + }else{ + d->startCreatingCursor(); + } +} + +void QmlGraphicsTextInputPrivate::startCreatingCursor() +{ + Q_Q(QmlGraphicsTextInput); + q->connect(control, SIGNAL(cursorPositionChanged(int, int)), + q, SLOT(moveCursor())); + if(cursorComponent->isReady()){ + q->createCursor(); + }else if(cursorComponent->isLoading()){ + q->connect(cursorComponent, SIGNAL(statusChanged(int)), + q, SLOT(createCursor())); + }else{//isError + qmlInfo(QmlGraphicsTextInput::tr("Could not load cursor delegate"), q); + qWarning() << cursorComponent->errors(); + } +} + +void QmlGraphicsTextInput::createCursor() +{ + Q_D(QmlGraphicsTextInput); + if(d->cursorComponent->isError()){ + qmlInfo(tr("Could not load cursor delegate"),this); + qWarning() << d->cursorComponent->errors(); + return; + } + + if(!d->cursorComponent->isReady()) + return; + + if(d->cursorItem) + delete d->cursorItem; + d->cursorItem = qobject_cast(d->cursorComponent->create()); + if(!d->cursorItem){ + qmlInfo(tr("Could not instantiate cursor delegate"),this); + //The failed instantiation should print its own error messages + return; + } + + d->cursorItem->setParentItem(this); + d->cursorItem->setX(d->control->cursorToX()); + d->cursorItem->setHeight(d->control->height()); +} + +void QmlGraphicsTextInput::moveCursor() +{ + Q_D(QmlGraphicsTextInput); + if(!d->cursorItem) + return; + d->cursorItem->setX(d->control->cursorToX() - d->hscroll); +} + +int QmlGraphicsTextInput::xToPos(int x) +{ + Q_D(const QmlGraphicsTextInput); + return d->control->xToPos(x - d->hscroll); +} + +void QmlGraphicsTextInput::focusChanged(bool hasFocus) +{ + Q_D(QmlGraphicsTextInput); + d->focused = hasFocus; + setCursorVisible(hasFocus); + QmlGraphicsItem::focusChanged(hasFocus); +} + +void QmlGraphicsTextInput::keyPressEvent(QKeyEvent* ev) +{ + Q_D(QmlGraphicsTextInput); + if((d->control->cursor() == 0 && ev->key() == Qt::Key_Left) + || (d->control->cursor() == d->control->text().length() + && ev->key() == Qt::Key_Right)){ + //ignore when moving off the end + ev->ignore(); + }else{ + d->control->processKeyEvent(ev); + } + if (!ev->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(ev); +} + +void QmlGraphicsTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QmlGraphicsTextInput); + if(d->focusOnPress){ + setFocus(true); + setCursorVisible(true); + d->focused = true; + } + d->control->processEvent(event); +} + +bool QmlGraphicsTextInput::event(QEvent* ev) +{ + Q_D(QmlGraphicsTextInput); + //Anything we don't deal with ourselves, pass to the control + bool handled = false; + switch(ev->type()){ + case QEvent::KeyPress: + case QEvent::KeyRelease://###Should the control be doing anything with release? + case QEvent::GraphicsSceneMousePress: + break; + default: + handled = d->control->processEvent(ev); + } + if(!handled) + return QmlGraphicsPaintedItem::event(ev); + return true; +} + +void QmlGraphicsTextInput::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.width() != oldGeometry.width()) + updateSize(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsTextInput::drawContents(QPainter *p, const QRect &r) +{ + Q_D(QmlGraphicsTextInput); + p->setRenderHint(QPainter::TextAntialiasing, true); + p->save(); + p->setPen(QPen(d->color)); + int flags = QLineControl::DrawText; + if(!isReadOnly() && d->cursorVisible && !d->cursorItem) + flags |= QLineControl::DrawCursor; + if (d->control->hasSelectedText()){ + flags |= QLineControl::DrawSelections; + } + + QPoint offset = QPoint(0,0); + QRect clipRect = r; + d->control->draw(p, offset, clipRect, flags); + + p->restore(); +} + +void QmlGraphicsTextInput::selectAll() +{ + Q_D(QmlGraphicsTextInput); + d->control->setSelection(0, d->control->text().length()); +} + + +/*! + \qmlproperty bool TextInput::smooth + + Set this property if you want the text to be smoothly scaled or + transformed. Smooth filtering gives better visual quality, but is slower. If + the item is displayed at its natural size, this property has no visual or + performance effect. + + \note Generally scaling artifacts are only visible if the item is stationary on + the screen. A common pattern when animating an item is to disable smooth + filtering at the beginning of the animation and reenable it at the conclusion. +*/ + +void QmlGraphicsTextInputPrivate::init() +{ + Q_Q(QmlGraphicsTextInput); + control->setCursorWidth(1); + control->setPasswordCharacter(QLatin1Char('*')); + control->setLayoutDirection(Qt::LeftToRight); + q->setSmoothTransform(smooth); + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QGraphicsItem::ItemHasNoContents, false); + q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + q->connect(control, SIGNAL(cursorPositionChanged(int,int)), + q, SLOT(cursorPosChanged())); + q->connect(control, SIGNAL(selectionChanged()), + q, SLOT(selectionChanged())); + q->connect(control, SIGNAL(textChanged(const QString &)), + q, SLOT(q_textChanged())); + q->connect(control, SIGNAL(accepted()), + q, SIGNAL(accepted())); + q->connect(control, SIGNAL(updateNeeded(QRect)), + q, SLOT(updateRect(QRect))); + q->connect(control, SIGNAL(cursorPositionChanged(int,int)), + q, SLOT(updateRect()));//TODO: Only update rect between pos's + q->connect(control, SIGNAL(selectionChanged()), + q, SLOT(updateRect()));//TODO: Only update rect in selection + //Note that above TODOs probably aren't that big a savings + q->updateSize(); + oldValidity = control->hasAcceptableInput(); + lastSelectionStart = 0; + lastSelectionEnd = 0; +} + +void QmlGraphicsTextInput::cursorPosChanged() +{ + Q_D(QmlGraphicsTextInput); + emit cursorPositionChanged(); + + if(!d->control->hasSelectedText()){ + if(d->lastSelectionStart != d->control->cursor()){ + d->lastSelectionStart = d->control->cursor(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->cursor()){ + d->lastSelectionEnd = d->control->cursor(); + emit selectionEndChanged(); + } + } +} + +void QmlGraphicsTextInput::selectionChanged() +{ + Q_D(QmlGraphicsTextInput); + emit selectedTextChanged(); + + if(d->lastSelectionStart != d->control->selectionStart()){ + d->lastSelectionStart = d->control->selectionStart(); + if(d->lastSelectionStart == -1) + d->lastSelectionStart = d->control->cursor(); + emit selectionStartChanged(); + } + if(d->lastSelectionEnd != d->control->selectionEnd()){ + d->lastSelectionEnd = d->control->selectionEnd(); + if(d->lastSelectionEnd == -1) + d->lastSelectionEnd = d->control->cursor(); + emit selectionEndChanged(); + } +} + +void QmlGraphicsTextInput::q_textChanged() +{ + Q_D(QmlGraphicsTextInput); + updateSize(); + emit textChanged(); + if(hasAcceptableInput() != d->oldValidity){ + d->oldValidity = hasAcceptableInput(); + emit acceptableInputChanged(); + } +} + +void QmlGraphicsTextInput::updateRect(const QRect &r) +{ + if(r == QRect()) + clearCache(); + else + dirtyCache(r); + update(); +} + +void QmlGraphicsTextInput::updateSize(bool needsRedraw) +{ + Q_D(QmlGraphicsTextInput); + int w = width(); + int h = height(); + setImplicitHeight(d->control->height()); + int cursorWidth = d->control->cursorWidth(); + if(d->cursorItem) + cursorWidth = d->cursorItem->width(); + //### Is QFontMetrics too slow? + QFontMetricsF fm(d->font); + setImplicitWidth(fm.width(d->control->displayText())+cursorWidth); + setContentsSize(QSize(width(), height()));//Repaints if changed + if(w==width() && h==height() && needsRedraw){ + clearCache(); + update(); + } +} + +QT_END_NAMESPACE + diff --git a/src/declarative/graphicsitems/qmlgraphicstextinput_p.h b/src/declarative/graphicsitems/qmlgraphicstextinput_p.h new file mode 100644 index 0000000..7d3fef0 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextinput_p.h @@ -0,0 +1,209 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXTINPUT_H +#define QMLGRAPHICSTEXTINPUT_H + +#include "qmlgraphicstext_p.h" +#include "qmlgraphicspainteditem_p.h" +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsTextInputPrivate; +class QValidator; +class Q_DECLARATIVE_EXPORT QmlGraphicsTextInput : public QmlGraphicsPaintedItem +{ + Q_OBJECT + Q_ENUMS(HAlignment) + Q_ENUMS(EchoMode) + + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor selectionColor READ selectionColor WRITE setSelectionColor) + Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor) + Q_PROPERTY(QFont font READ font WRITE setFont) + Q_PROPERTY(HAlignment horizontalAlignment READ hAlign WRITE setHAlign) + + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) + Q_PROPERTY(bool cursorVisible READ isCursorVisible WRITE setCursorVisible) + Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(QmlComponent *cursorDelegate READ cursorDelegate WRITE setCursorDelegate) + Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) + Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) + + Q_PROPERTY(int maximumLength READ maxLength WRITE setMaxLength) + Q_PROPERTY(QValidator* validator READ validator WRITE setValidator) + Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) + Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) + Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) + Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress) + +public: + QmlGraphicsTextInput(QmlGraphicsItem* parent=0); + ~QmlGraphicsTextInput(); + + enum EchoMode {//To match QLineEdit::EchoMode + Normal, + NoEcho, + Password, + PasswordEchoOnEdit + }; + + enum HAlignment { + AlignLeft = Qt::AlignLeft, + AlignRight = Qt::AlignRight, + AlignHCenter = Qt::AlignHCenter + }; + + //### Should we have this function, x based properties, + //### or copy TextEdit with x instead of QTextCursor? + Q_INVOKABLE int xToPos(int x); + + QString text() const; + void setText(const QString &); + + QFont font() const; + void setFont(const QFont &font); + + QColor color() const; + void setColor(const QColor &c); + + QColor selectionColor() const; + void setSelectionColor(const QColor &c); + + QColor selectedTextColor() const; + void setSelectedTextColor(const QColor &c); + + HAlignment hAlign() const; + void setHAlign(HAlignment align); + + bool isReadOnly() const; + void setReadOnly(bool); + + bool isCursorVisible() const; + void setCursorVisible(bool on); + + int cursorPosition() const; + void setCursorPosition(int cp); + + QRect cursorRect() const; + + int selectionStart() const; + void setSelectionStart(int); + + int selectionEnd() const; + void setSelectionEnd(int); + + QString selectedText() const; + + int maxLength() const; + void setMaxLength(int ml); + + QValidator * validator() const; + void setValidator(QValidator* v); + + QString inputMask() const; + void setInputMask(const QString &im); + + EchoMode echoMode() const; + void setEchoMode(EchoMode echo); + + QmlComponent* cursorDelegate() const; + void setCursorDelegate(QmlComponent*); + + bool focusOnPress() const; + void setFocusOnPress(bool); + + bool hasAcceptableInput() const; + + void drawContents(QPainter *p,const QRect &r); +Q_SIGNALS: + void textChanged(); + void cursorPositionChanged(); + void selectionStartChanged(); + void selectionEndChanged(); + void selectedTextChanged(); + void accepted(); + void acceptableInputChanged(); + +protected: + QmlGraphicsTextInput(QmlGraphicsTextInputPrivate &dd, QmlGraphicsItem *parent); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void keyPressEvent(QKeyEvent* ev); + bool event(QEvent *e); + + void focusChanged(bool hasFocus); + +public Q_SLOTS: + void selectAll(); + +private Q_SLOTS: + void updateSize(bool needsRedraw = true); + void q_textChanged(); + void selectionChanged(); + void createCursor(); + void moveCursor(); + void cursorPosChanged(); + void updateRect(const QRect &r = QRect()); + +private: + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsTextInput) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsTextInput) +QML_DECLARE_TYPE(QValidator) +QML_DECLARE_TYPE(QIntValidator) + +QT_END_HEADER + +#endif // QMLGRAPHICSTEXTINPUT_H diff --git a/src/declarative/graphicsitems/qmlgraphicstextinput_p_p.h b/src/declarative/graphicsitems/qmlgraphicstextinput_p_p.h new file mode 100644 index 0000000..4e9f209 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicstextinput_p_p.h @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSTEXTINPUT_P_H +#define QMLGRAPHICSTEXTINPUT_P_H + +#include "qmlgraphicstextinput_p.h" +#include "qml.h" +#include "qmlgraphicspainteditem_p_p.h" +#include "private/qlinecontrol_p.h" +#include +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +QT_BEGIN_NAMESPACE + +class QmlGraphicsTextInputPrivate : public QmlGraphicsPaintedItemPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsTextInput) +public: + QmlGraphicsTextInputPrivate() : control(new QLineControl(QString())), + color((QRgb)0), style(QmlGraphicsText::Normal), + styleColor((QRgb)0), hAlign(QmlGraphicsTextInput::AlignLeft), + hscroll(0), oldScroll(0), focused(false), focusOnPress(true), + cursorVisible(false) + { + } + + ~QmlGraphicsTextInputPrivate() + { + delete control; + } + + void init(); + void startCreatingCursor(); + + QLineControl* control; + + QFont font; + QColor color; + QColor selectionColor; + QColor selectedTextColor; + QmlGraphicsText::TextStyle style; + QColor styleColor; + QmlGraphicsTextInput::HAlignment hAlign; + QPointer cursorComponent; + QPointer cursorItem; + + int lastSelectionStart; + int lastSelectionEnd; + int oldHeight; + int oldWidth; + bool oldValidity; + int hscroll; + int oldScroll; + bool focused; + bool focusOnPress; + bool cursorVisible; +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel.cpp b/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel.cpp new file mode 100644 index 0000000..686c0da --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel.cpp @@ -0,0 +1,1033 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include "qmlgraphicsitem.h" +#include +#include +#include +#include "qhash.h" +#include "qlist.h" +#include "private/qobject_p.h" +#include "private/qmetaobjectbuilder_p.h" +#include +#include +#include "qmlinfo.h" +#include "qmlgraphicsvisualitemmodel_p.h" +#include "private/qguard_p.h" +#include + +QML_DECLARE_TYPE(QListModelInterface) + +QT_BEGIN_NAMESPACE + +class QmlGraphicsVisualItemModelAttached : public QObject +{ + Q_OBJECT + +public: + QmlGraphicsVisualItemModelAttached(QObject *parent) + : QObject(parent), m_index(0) {} + ~QmlGraphicsVisualItemModelAttached() { + attachedProperties.remove(parent()); + } + + Q_PROPERTY(int index READ index NOTIFY indexChanged) + int index() const { return m_index; } + void setIndex(int idx) { + if (m_index != idx) { + m_index = idx; + emit indexChanged(); + } + } + + static QmlGraphicsVisualItemModelAttached *properties(QObject *obj) { + QmlGraphicsVisualItemModelAttached *rv = attachedProperties.value(obj); + if (!rv) { + rv = new QmlGraphicsVisualItemModelAttached(obj); + attachedProperties.insert(obj, rv); + } + return rv; + } + +Q_SIGNALS: + void indexChanged(); + +public: + int m_index; + + static QHash attachedProperties; +}; + +QHash QmlGraphicsVisualItemModelAttached::attachedProperties; + + +class QmlGraphicsVisualItemModelPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsVisualItemModel) +public: + QmlGraphicsVisualItemModelPrivate() : QObjectPrivate(), children(this) {} + + struct ItemList : public QmlConcreteList + { + ItemList(QmlGraphicsVisualItemModelPrivate *m) : QmlConcreteList(), model(m) {} + + void append(QmlGraphicsItem *item); + + QmlGraphicsVisualItemModelPrivate *model; + }; + + void itemAppended() { + Q_Q(QmlGraphicsVisualItemModel); + QmlGraphicsVisualItemModelAttached *attached = QmlGraphicsVisualItemModelAttached::properties(children.last()); + attached->setIndex(children.count()-1); + emit q->itemsInserted(children.count()-1, 1); + emit q->countChanged(); + } + + void emitChildrenChanged() { + Q_Q(QmlGraphicsVisualItemModel); + emit q->childrenChanged(); + } + ItemList children; +}; + + +/*! + \qmlclass VisualItemModel QmlGraphicsVisualItemModel + \brief The VisualItemModel allows items to be provided to a view. + + The children of the VisualItemModel are provided in a model which + can be used in a view. Note that no delegate should be + provided to a view since the VisualItemModel contains the + visual delegate (items). + + An item can determine its index within the + model via the VisualItemModel.index attached property. + + The example below places three colored rectangles in a ListView. + \code + Item { + VisualItemModel { + id: itemModel + Rectangle { height: 30; width: 80; color: "red" } + Rectangle { height: 30; width: 80; color: "green" } + Rectangle { height: 30; width: 80; color: "blue" } + } + + ListView { + anchors.fill: parent + model: itemModel + } + } + \endcode +*/ +QmlGraphicsVisualItemModel::QmlGraphicsVisualItemModel() + : QmlGraphicsVisualModel(*(new QmlGraphicsVisualItemModelPrivate)) +{ +} + +QmlList *QmlGraphicsVisualItemModel::children() +{ + Q_D(QmlGraphicsVisualItemModel); + return &(d->children); +} + +/*! + \qmlproperty int VisualItemModel::count + + The number of items in the model. This property is readonly. +*/ +int QmlGraphicsVisualItemModel::count() const +{ + Q_D(const QmlGraphicsVisualItemModel); + return d->children.count(); +} + +bool QmlGraphicsVisualItemModel::isValid() const +{ + return true; +} + +QmlGraphicsItem *QmlGraphicsVisualItemModel::item(int index, bool) +{ + Q_D(QmlGraphicsVisualItemModel); + return d->children.at(index); +} + +QmlGraphicsVisualModel::ReleaseFlags QmlGraphicsVisualItemModel::release(QmlGraphicsItem *) +{ + // Nothing to do + return 0; +} + +void QmlGraphicsVisualItemModel::completeItem() +{ + // Nothing to do +} + +QVariant QmlGraphicsVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext) +{ + Q_D(QmlGraphicsVisualItemModel); + QmlContext *ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + ctxt->addDefaultObject(d->children.at(index)); + QmlExpression e(ctxt, expression, objectContext); + e.setTrackChange(false); + QVariant value = e.value(); + delete ctxt; + return value; +} + +int QmlGraphicsVisualItemModel::indexOf(QmlGraphicsItem *item, QObject *) const +{ + Q_D(const QmlGraphicsVisualItemModel); + return d->children.indexOf(item); +} + +void QmlGraphicsVisualItemModelPrivate::ItemList::append(QmlGraphicsItem *item) +{ + QmlConcreteList::append(item); + item->QObject::setParent(model->q_ptr); + model->itemAppended(); + + model->emitChildrenChanged(); +} + +QmlGraphicsVisualItemModelAttached *QmlGraphicsVisualItemModel::qmlAttachedProperties(QObject *obj) +{ + return QmlGraphicsVisualItemModelAttached::properties(obj); +} + + +class QmlGraphicsVisualDataModelParts; +class QmlGraphicsVisualDataModelData; +class QmlGraphicsVisualDataModelPrivate : public QObjectPrivate +{ +public: + QmlGraphicsVisualDataModelPrivate(QmlContext *); + + static QmlGraphicsVisualDataModelPrivate *get(QmlGraphicsVisualDataModel *m) { + return static_cast(QObjectPrivate::get(m)); + } + + QGuard m_listModelInterface; + QGuard m_abstractItemModel; + QGuard m_visualItemModel; + QString m_part; + + QmlComponent *m_delegate; + QmlContext *m_context; + QList m_roles; + QHash m_roleNames; + void ensureRoles() { + if (m_roleNames.isEmpty()) { + if (m_listModelInterface) { + m_roles = m_listModelInterface->roles(); + for (int ii = 0; ii < m_roles.count(); ++ii) + m_roleNames.insert(m_listModelInterface->toString(m_roles.at(ii)), m_roles.at(ii)); + if (m_roles.count() == 1) + m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); + } else if (m_abstractItemModel) { + for (QHash::const_iterator it = m_abstractItemModel->roleNames().begin(); + it != m_abstractItemModel->roleNames().end(); ++it) { + m_roles.append(it.key()); + m_roleNames.insert(QString::fromUtf8(*it), it.key()); + } + if (m_roles.count() == 1) + m_roleNames.insert(QLatin1String("modelData"), m_roles.at(0)); + } else if (m_listAccessor) { + m_roleNames.insert(QLatin1String("modelData"), 0); + if (m_listAccessor->type() == QmlListAccessor::Instance) { + if (QObject *object = m_listAccessor->at(0).value()) { + int count = object->metaObject()->propertyCount(); + for (int ii = 1; ii < count; ++ii) { + const QMetaProperty &prop = object->metaObject()->property(ii); + m_roleNames.insert(QString::fromUtf8(prop.name()), 0); + } + } + } + } + } + } + + struct ObjectRef { + ObjectRef(QObject *object=0) : obj(object), ref(1) {} + QObject *obj; + int ref; + }; + class Cache : public QHash { + public: + QObject *getItem(int index) { + QObject *item = 0; + QHash::iterator it = find(index); + if (it != end()) { + (*it).ref++; + item = (*it).obj; + } + return item; + } + QObject *item(int index) { + QObject *item = 0; + QHash::const_iterator it = find(index); + if (it != end()) + item = (*it).obj; + return item; + } + void insertItem(int index, QObject *obj) { + insert(index, ObjectRef(obj)); + } + bool releaseItem(QObject *obj) { + QHash::iterator it = begin(); + for (; it != end(); ++it) { + ObjectRef &objRef = *it; + if (objRef.obj == obj) { + if (--objRef.ref == 0) { + erase(it); + return true; + } + break; + } + } + return false; + } + }; + + Cache m_cache; + QHash m_packaged; + + QmlGraphicsVisualDataModelParts *m_parts; + friend class QmlGraphicsVisualItemParts; + + QmlGraphicsVisualDataModelData *data(QObject *item); + + QVariant m_modelVariant; + QmlListAccessor *m_listAccessor; + + int modelCount() const { + if (m_visualItemModel) + return m_visualItemModel->count(); + if (m_listModelInterface) + return m_listModelInterface->count(); + if (m_abstractItemModel) + return m_abstractItemModel->rowCount(); + if (m_listAccessor) + return m_listAccessor->count(); + return 0; + } +}; + +class QmlGraphicsVisualDataModelDataMetaObject : public QmlOpenMetaObject +{ +public: + QmlGraphicsVisualDataModelDataMetaObject(QObject *parent) + : QmlOpenMetaObject(parent) {} + + virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); + virtual int createProperty(const char *, const char *); + +private: + friend class QmlGraphicsVisualDataModelData; + QList roles; +}; + +class QmlGraphicsVisualDataModelData : public QObject +{ +Q_OBJECT +public: + QmlGraphicsVisualDataModelData(int index, QmlGraphicsVisualDataModel *model); + ~QmlGraphicsVisualDataModelData(); + + Q_PROPERTY(int index READ index NOTIFY indexChanged) + int index() const; + void setIndex(int index); + + int count() const; + int role(int) const; + void setValue(int, const QVariant &); + +Q_SIGNALS: + void indexChanged(); + +private: + friend class QmlGraphicsVisualDataModelDataMetaObject; + int m_index; + QGuard m_model; + QmlGraphicsVisualDataModelDataMetaObject *m_meta; +}; + +int QmlGraphicsVisualDataModelData::count() const +{ + return m_meta->count(); +} + +int QmlGraphicsVisualDataModelData::role(int id) const +{ + Q_ASSERT(id >= 0 && id < count()); + return m_meta->roles.at(id); +} + +void QmlGraphicsVisualDataModelData::setValue(int id, const QVariant &val) +{ + m_meta->setValue(id, val); +} + +int QmlGraphicsVisualDataModelDataMetaObject::createProperty(const char *name, const char *type) +{ + QmlGraphicsVisualDataModelData *data = + static_cast(object()); + + if (!data->m_model) + return -1; + + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); + + if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { + model->ensureRoles(); + if (model->m_roleNames.contains(QString::fromUtf8(name))) { + return QmlOpenMetaObject::createProperty(name, type); + } else if (model->m_listAccessor->type() == QmlListAccessor::QmlList) { + QObject *object = model->m_listAccessor->at(data->m_index).value(); + if (object && object->property(name).isValid()) + return QmlOpenMetaObject::createProperty(name, type); + } + } else { + model->ensureRoles(); + QString sname = QString::fromUtf8(name); + if (model->m_roleNames.contains(sname)) + return QmlOpenMetaObject::createProperty(name, type); + } + return -1; +} + +QVariant +QmlGraphicsVisualDataModelDataMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +{ + prop.setWritable(false); + + QmlGraphicsVisualDataModelData *data = + static_cast(object()); + + Q_ASSERT(data->m_model); + QmlGraphicsVisualDataModelPrivate *model = QmlGraphicsVisualDataModelPrivate::get(data->m_model); + + QString name = QString::fromUtf8(prop.name()); + if ((!model->m_listModelInterface || !model->m_abstractItemModel) && model->m_listAccessor) { + if (name == QLatin1String("modelData")) { + if (model->m_listAccessor->type() == QmlListAccessor::Instance) { + QObject *object = model->m_listAccessor->at(0).value(); + return object->metaObject()->property(1).read(object); // the first property after objectName + } + return model->m_listAccessor->at(data->m_index); + } else { + // return any property of a single object instance. + QObject *object = model->m_listAccessor->at(data->m_index).value(); + return object->property(prop.name()); + } + } else if (model->m_listModelInterface) { + model->ensureRoles(); + QHash::const_iterator it = model->m_roleNames.find(name); + if (it != model->m_roleNames.end()) { + roles.append(*it); + QHash values = model->m_listModelInterface->data(data->m_index, QList() << *it); + if (values.isEmpty()) + return QVariant(); + else + return values.value(*it); + } else if (model->m_roles.count() == 1 && name == QLatin1String("modelData")) { + //for compatability with other lists, assign modelData if there is only a single role + QHash values = model->m_listModelInterface->data(data->m_index, QList() << model->m_roles.first()); + if (values.isEmpty()) + return QVariant(); + else + return *values.begin(); + } + } else if (model->m_abstractItemModel) { + model->ensureRoles(); + QHash::const_iterator it = model->m_roleNames.find(name); + if (it != model->m_roleNames.end()) { + roles.append(*it); + QModelIndex index = model->m_abstractItemModel->index(data->m_index, 0); + return model->m_abstractItemModel->data(index, *it); + } + } + Q_ASSERT(!"Can never be reached"); + return QVariant(); +} + +QmlGraphicsVisualDataModelData::QmlGraphicsVisualDataModelData(int index, + QmlGraphicsVisualDataModel *model) +: m_index(index), m_model(model), + m_meta(new QmlGraphicsVisualDataModelDataMetaObject(this)) +{ +} + +QmlGraphicsVisualDataModelData::~QmlGraphicsVisualDataModelData() +{ +} + +int QmlGraphicsVisualDataModelData::index() const +{ + return m_index; +} + +// This is internal only - it should not be set from qml +void QmlGraphicsVisualDataModelData::setIndex(int index) +{ + m_index = index; + emit indexChanged(); +} + +class QmlGraphicsVisualDataModelPartsMetaObject : public QmlOpenMetaObject +{ +public: + QmlGraphicsVisualDataModelPartsMetaObject(QObject *parent) + : QmlOpenMetaObject(parent) {} + + virtual QVariant propertyCreated(int, QMetaPropertyBuilder &); +}; + +class QmlGraphicsVisualDataModelParts : public QObject +{ +Q_OBJECT +public: + QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent); + +private: + friend class QmlGraphicsVisualDataModelPartsMetaObject; + QmlGraphicsVisualDataModel *model; +}; + +QVariant +QmlGraphicsVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +{ + prop.setWritable(false); + + QmlGraphicsVisualDataModel *m = new QmlGraphicsVisualDataModel; + m->setParent(object()); + m->setPart(QString::fromUtf8(prop.name())); + m->setModel(QVariant::fromValue(static_cast(object())->model)); + + QVariant var = QVariant::fromValue((QObject *)m); + return var; +} + +QmlGraphicsVisualDataModelParts::QmlGraphicsVisualDataModelParts(QmlGraphicsVisualDataModel *parent) +: QObject(parent), model(parent) +{ + new QmlGraphicsVisualDataModelPartsMetaObject(this); +} + +QmlGraphicsVisualDataModelPrivate::QmlGraphicsVisualDataModelPrivate(QmlContext *ctxt) +: m_listModelInterface(0), m_abstractItemModel(0), m_visualItemModel(0), m_delegate(0) +, m_context(ctxt), m_parts(0), m_listAccessor(0) +{ +} + +QmlGraphicsVisualDataModelData *QmlGraphicsVisualDataModelPrivate::data(QObject *item) +{ + QmlGraphicsVisualDataModelData *dataItem = + item->findChild(); + Q_ASSERT(dataItem); + return dataItem; +} + +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel() +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(0))) +{ +} + +QmlGraphicsVisualDataModel::QmlGraphicsVisualDataModel(QmlContext *ctxt) +: QmlGraphicsVisualModel(*(new QmlGraphicsVisualDataModelPrivate(ctxt))) +{ +} + +QmlGraphicsVisualDataModel::~QmlGraphicsVisualDataModel() +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_listAccessor) + delete d->m_listAccessor; +} + +QVariant QmlGraphicsVisualDataModel::model() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->m_modelVariant; +} + +void QmlGraphicsVisualDataModel::setModel(const QVariant &model) +{ + Q_D(QmlGraphicsVisualDataModel); + delete d->m_listAccessor; + d->m_listAccessor = 0; + d->m_modelVariant = model; + if (d->m_listModelInterface) { + // Assume caller has released all items. + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), + this, SLOT(_q_itemsChanged(int,int,QList))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), + this, SLOT(_q_itemsInserted(int,int))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), + this, SLOT(_q_itemsRemoved(int,int))); + QObject::disconnect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), + this, SLOT(_q_itemsMoved(int,int,int))); + d->m_listModelInterface = 0; + } else if (d->m_abstractItemModel) { + QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), + this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); + QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), + this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); + QObject::disconnect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), + this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); + } else if (d->m_visualItemModel) { + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), + this, SIGNAL(itemsInserted(int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), + this, SIGNAL(itemsRemoved(int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), + this, SIGNAL(itemsMoved(int,int,int))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), + this, SLOT(_q_createdPackage(int,QmlPackage*))); + QObject::disconnect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), + this, SLOT(_q_destroyingPackage(QmlPackage*))); + d->m_visualItemModel = 0; + } + + d->m_roles.clear(); + d->m_roleNames.clear(); + + QObject *object = qvariant_cast(model); + if (object && (d->m_listModelInterface = qobject_cast(object))) { + QObject::connect(d->m_listModelInterface, SIGNAL(itemsChanged(int,int,QList)), + this, SLOT(_q_itemsChanged(int,int,QList))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsInserted(int,int)), + this, SLOT(_q_itemsInserted(int,int))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsRemoved(int,int)), + this, SLOT(_q_itemsRemoved(int,int))); + QObject::connect(d->m_listModelInterface, SIGNAL(itemsMoved(int,int,int)), + this, SLOT(_q_itemsMoved(int,int,int))); + if (d->m_delegate && d->m_listModelInterface->count()) + emit itemsInserted(0, d->m_listModelInterface->count()); + return; + } else if (object && (d->m_abstractItemModel = qobject_cast(object))) { + QObject::connect(d->m_abstractItemModel, SIGNAL(rowsInserted(const QModelIndex &,int,int)), + this, SLOT(_q_rowsInserted(const QModelIndex &,int,int))); + QObject::connect(d->m_abstractItemModel, SIGNAL(rowsRemoved(const QModelIndex &,int,int)), + this, SLOT(_q_rowsRemoved(const QModelIndex &,int,int))); + QObject::connect(d->m_abstractItemModel, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)), + this, SLOT(_q_dataChanged(const QModelIndex&,const QModelIndex&))); + return; + } + if ((d->m_visualItemModel = qvariant_cast(model))) { + QObject::connect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)), + this, SIGNAL(itemsInserted(int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(itemsRemoved(int,int)), + this, SIGNAL(itemsRemoved(int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(itemsMoved(int,int,int)), + this, SIGNAL(itemsMoved(int,int,int))); + QObject::connect(d->m_visualItemModel, SIGNAL(createdPackage(int,QmlPackage*)), + this, SLOT(_q_createdPackage(int,QmlPackage*))); + QObject::connect(d->m_visualItemModel, SIGNAL(destroyingPackage(QmlPackage*)), + this, SLOT(_q_destroyingPackage(QmlPackage*))); + return; + } + d->m_listAccessor = new QmlListAccessor; + d->m_listAccessor->setList(model, d->m_context?d->m_context->engine():qmlEngine(this)); + if (d->m_delegate && d->modelCount()) { + emit itemsInserted(0, d->modelCount()); + emit countChanged(); + } +} + +QmlComponent *QmlGraphicsVisualDataModel::delegate() const +{ + Q_D(const QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->delegate(); + return d->m_delegate; +} + +void QmlGraphicsVisualDataModel::setDelegate(QmlComponent *delegate) +{ + Q_D(QmlGraphicsVisualDataModel); + d->m_delegate = delegate; + if (d->modelCount()) { + emit itemsInserted(0, d->modelCount()); + emit countChanged(); + } +} + +QString QmlGraphicsVisualDataModel::part() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->m_part; +} + +void QmlGraphicsVisualDataModel::setPart(const QString &part) +{ + Q_D(QmlGraphicsVisualDataModel); + d->m_part = part; +} + +int QmlGraphicsVisualDataModel::count() const +{ + Q_D(const QmlGraphicsVisualDataModel); + return d->modelCount(); +} + +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, bool complete) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->item(index, d->m_part.toUtf8(), complete); + return item(index, QByteArray(), complete); +} + +/* + Returns ReleaseStatus flags. +*/ +QmlGraphicsVisualDataModel::ReleaseFlags QmlGraphicsVisualDataModel::release(QmlGraphicsItem *item) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->release(item); + + ReleaseFlags stat = 0; + QObject *obj = item; + bool inPackage = false; + + QHash::iterator it = d->m_packaged.find(item); + if (it != d->m_packaged.end()) { + QmlPackage *package = *it; + d->m_packaged.erase(it); + if (d->m_packaged.contains(item)) + stat |= Referenced; + inPackage = true; + obj = package; // fall through and delete + } + + if (d->m_cache.releaseItem(obj)) { + if (inPackage) + emit destroyingPackage(qobject_cast(obj)); + stat |= Destroyed; + obj->setParent(0); + obj->deleteLater(); + } else if (!inPackage) { + stat |= Referenced; + } + + return stat; +} + +QObject *QmlGraphicsVisualDataModel::parts() +{ + Q_D(QmlGraphicsVisualDataModel); + if (!d->m_parts) + d->m_parts = new QmlGraphicsVisualDataModelParts(this); + return d->m_parts; +} + +QmlGraphicsItem *QmlGraphicsVisualDataModel::item(int index, const QByteArray &viewId, bool complete) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->item(index, viewId, complete); + + if (d->modelCount() <= 0 || !d->m_delegate) + return 0; + + QObject *nobj = d->m_cache.getItem(index); + if (!nobj) { + QmlContext *ccontext = d->m_context; + if (!ccontext) ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); + ctxt->setContextProperty(QLatin1String("model"), data); + ctxt->addDefaultObject(data); + nobj = d->m_delegate->beginCreate(ctxt); + if (complete) + d->m_delegate->completeCreate(); + if (nobj) { + ctxt->setParent(nobj); + data->setParent(nobj); + d->m_cache.insertItem(index, nobj); + if (QmlPackage *package = qobject_cast(nobj)) + emit createdPackage(index, package); + } else { + delete data; + delete ctxt; + qWarning() << d->m_delegate->errors(); + } + } + QmlGraphicsItem *item = qobject_cast(nobj); + if (!item) { + QmlPackage *package = qobject_cast(nobj); + if (package) { + QObject *o = package->part(QString::fromUtf8(viewId)); + item = qobject_cast(o); + if (item) + d->m_packaged.insertMulti(item, package); + } + } + if (!item) { + d->m_cache.releaseItem(nobj); + qmlInfo(QmlGraphicsVisualDataModel::tr("Delegate component must be Item type."), d->m_delegate); + } + + return item; +} + +void QmlGraphicsVisualDataModel::completeItem() +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) { + d->m_visualItemModel->completeItem(); + return; + } + + d->m_delegate->completeCreate(); +} + +QVariant QmlGraphicsVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext) +{ + Q_D(QmlGraphicsVisualDataModel); + if (d->m_visualItemModel) + return d->m_visualItemModel->evaluate(index, expression, objectContext); + + if ((!d->m_listModelInterface && !d->m_abstractItemModel) || !d->m_delegate) + return QVariant(); + + QVariant value; + QObject *nobj = d->m_cache.item(index); + if (nobj) { + QmlGraphicsItem *item = qobject_cast(nobj); + if (item) { + QmlExpression e(qmlContext(item), expression, objectContext); + e.setTrackChange(false); + value = e.value(); + } + } else { + QmlContext *ccontext = d->m_context; + if (!ccontext) ccontext = qmlContext(this); + QmlContext *ctxt = new QmlContext(ccontext); + QmlGraphicsVisualDataModelData *data = new QmlGraphicsVisualDataModelData(index, this); + ctxt->addDefaultObject(data); + QmlExpression e(ctxt, expression, objectContext); + e.setTrackChange(false); + value = e.value(); + delete data; + delete ctxt; + } + + return value; +} + +int QmlGraphicsVisualDataModel::indexOf(QmlGraphicsItem *item, QObject *objectContext) const +{ + QmlExpression e(qmlContext(item), QLatin1String("index"), objectContext); + e.setTrackChange(false); + QVariant value = e.value(); + if (value.isValid()) + return value.toInt(); + return -1; +} + +void QmlGraphicsVisualDataModel::_q_itemsChanged(int index, int count, + const QList &roles) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + for (int ii = index; ii < index + count; ++ii) { + + if (QObject *item = d->m_cache.item(ii)) { + QmlGraphicsVisualDataModelData *data = d->data(item); + + for (int prop = 0; prop < data->count(); ++prop) { + + int role = data->role(prop); + if (roles.contains(role)) { + if (d->m_listModelInterface) { + data->setValue(prop, d->m_listModelInterface->data(ii, QList() << role).value(role)); + } else if (d->m_abstractItemModel) { + QModelIndex index = d->m_abstractItemModel->index(ii, 0); + data->setValue(prop, d->m_abstractItemModel->data(index, role)); + } + } + } + } + + } +} + +void QmlGraphicsVisualDataModel::_q_itemsInserted(int index, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= index) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() + count; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + d->m_cache.unite(items); + + emit itemsInserted(index, count); + emit countChanged(); +} + +void QmlGraphicsVisualDataModel::_q_itemsRemoved(int index, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + if (iter.key() >= index && iter.key() < index + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + iter = d->m_cache.erase(iter); + items.insertMulti(-1, objRef); //XXX perhaps better to maintain separately + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(-1); + } else if (iter.key() >= index + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() - count; + iter = d->m_cache.erase(iter); + items.insert(index, objRef); + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + + d->m_cache.unite(items); + emit itemsRemoved(index, count); + emit countChanged(); +} + +void QmlGraphicsVisualDataModel::_q_itemsMoved(int from, int to, int count) +{ + Q_D(QmlGraphicsVisualDataModel); + // XXX - highly inefficient + QHash items; + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= from && iter.key() < from + count) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() - from + to; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + for (QHash::Iterator iter = d->m_cache.begin(); + iter != d->m_cache.end(); ) { + + if (iter.key() >= qMin(from,to) && iter.key() < qMax(from+count,to+count)) { + QmlGraphicsVisualDataModelPrivate::ObjectRef objRef = *iter; + int index = iter.key() + from - to; + iter = d->m_cache.erase(iter); + + items.insert(index, objRef); + + QmlGraphicsVisualDataModelData *data = d->data(objRef.obj); + data->setIndex(index); + } else { + ++iter; + } + } + d->m_cache.unite(items); + + emit itemsMoved(from, to, count); +} + +void QmlGraphicsVisualDataModel::_q_rowsInserted(const QModelIndex &, int begin, int end) +{ + _q_itemsInserted(begin, end - begin + 1); +} + +void QmlGraphicsVisualDataModel::_q_rowsRemoved(const QModelIndex &, int begin, int end) +{ + _q_itemsRemoved(begin, end - begin + 1); +} + +void QmlGraphicsVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) +{ + Q_D(QmlGraphicsVisualDataModel); + _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles); +} + +void QmlGraphicsVisualDataModel::_q_createdPackage(int index, QmlPackage *package) +{ + Q_D(QmlGraphicsVisualDataModel); + emit createdItem(index, qobject_cast(package->part(d->m_part))); +} + +void QmlGraphicsVisualDataModel::_q_destroyingPackage(QmlPackage *package) +{ + Q_D(QmlGraphicsVisualDataModel); + emit destroyingItem(qobject_cast(package->part(d->m_part))); +} + +QML_DEFINE_NOCREATE_TYPE(QmlGraphicsVisualModel); +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualItemModel,QmlGraphicsVisualItemModel) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,VisualDataModel,QmlGraphicsVisualDataModel) + +QT_END_NAMESPACE + +#include "qmlgraphicsvisualitemmodel.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel_p.h b/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel_p.h new file mode 100644 index 0000000..8b0a8f5 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsvisualitemmodel_p.h @@ -0,0 +1,203 @@ +/**************************************************************************** +** +** 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 QMLGRAPHICSVISUALDATAMODEL_H +#define QMLGRAPHICSVISUALDATAMODEL_H + +#include +#include +#include + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +/***************************************************************************** + ***************************************************************************** + XXX Experimental + ***************************************************************************** +*****************************************************************************/ + +class QmlGraphicsItem; +class QmlComponent; +class QmlPackage; +class QmlGraphicsVisualDataModelPrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualModel : public QObject +{ + Q_OBJECT + + Q_PROPERTY(int count READ count NOTIFY countChanged) + +public: + QmlGraphicsVisualModel() {} + virtual ~QmlGraphicsVisualModel() {} + + enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; + Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) + + virtual int count() const = 0; + virtual bool isValid() const = 0; + virtual QmlGraphicsItem *item(int index, bool complete=true) = 0; + virtual ReleaseFlags release(QmlGraphicsItem *item) = 0; + virtual void completeItem() = 0; + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0; + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const = 0; + +Q_SIGNALS: + void countChanged(); + void itemsInserted(int index, int count); + void itemsRemoved(int index, int count); + void itemsMoved(int from, int to, int count); + void createdItem(int index, QmlGraphicsItem *item); + void destroyingItem(QmlGraphicsItem *item); + +protected: + QmlGraphicsVisualModel(QObjectPrivate &dd, QObject *parent = 0) + : QObject(dd, parent) {} + +private: + Q_DISABLE_COPY(QmlGraphicsVisualModel) +}; + +class QmlGraphicsVisualItemModelAttached; +class QmlGraphicsVisualItemModelPrivate; +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualItemModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualItemModel) + + Q_PROPERTY(QmlList* children READ children NOTIFY childrenChanged DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "children") + +public: + QmlGraphicsVisualItemModel(); + virtual ~QmlGraphicsVisualItemModel() {} + + virtual int count() const; + virtual bool isValid() const; + virtual QmlGraphicsItem *item(int index, bool complete=true); + virtual ReleaseFlags release(QmlGraphicsItem *item); + virtual void completeItem(); + virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + virtual int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QmlList *children(); + + static QmlGraphicsVisualItemModelAttached *qmlAttachedProperties(QObject *obj); + +Q_SIGNALS: + void childrenChanged(); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualItemModel) +}; + + +class Q_DECLARATIVE_EXPORT QmlGraphicsVisualDataModel : public QmlGraphicsVisualModel +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlGraphicsVisualDataModel) + + Q_PROPERTY(QVariant model READ model WRITE setModel) + Q_PROPERTY(QmlComponent *delegate READ delegate WRITE setDelegate) + Q_PROPERTY(QString part READ part WRITE setPart) + Q_PROPERTY(QObject *parts READ parts CONSTANT) + Q_CLASSINFO("DefaultProperty", "delegate") +public: + QmlGraphicsVisualDataModel(); + QmlGraphicsVisualDataModel(QmlContext *); + virtual ~QmlGraphicsVisualDataModel(); + + QVariant model() const; + void setModel(const QVariant &); + + QmlComponent *delegate() const; + void setDelegate(QmlComponent *); + + QString part() const; + void setPart(const QString &); + + int count() const; + bool isValid() const { return delegate() != 0; } + QmlGraphicsItem *item(int index, bool complete=true); + QmlGraphicsItem *item(int index, const QByteArray &, bool complete=true); + ReleaseFlags release(QmlGraphicsItem *item); + void completeItem(); + QVariant evaluate(int index, const QString &expression, QObject *objectContext); + + int indexOf(QmlGraphicsItem *item, QObject *objectContext) const; + + QObject *parts(); + +Q_SIGNALS: + void createdPackage(int index, QmlPackage *package); + void destroyingPackage(QmlPackage *package); + +private Q_SLOTS: + void _q_itemsChanged(int, int, const QList &); + void _q_itemsInserted(int index, int count); + void _q_itemsRemoved(int index, int count); + void _q_itemsMoved(int from, int to, int count); + void _q_rowsInserted(const QModelIndex &,int,int); + void _q_rowsRemoved(const QModelIndex &,int,int); + void _q_dataChanged(const QModelIndex&,const QModelIndex&); + void _q_createdPackage(int index, QmlPackage *package); + void _q_destroyingPackage(QmlPackage *package); + +private: + Q_DISABLE_COPY(QmlGraphicsVisualDataModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsVisualModel) +QML_DECLARE_TYPE(QmlGraphicsVisualItemModel) +QML_DECLARE_TYPEINFO(QmlGraphicsVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QmlGraphicsVisualDataModel) + +QT_END_HEADER + +#endif // QMLGRAPHICSVISUALDATAMODEL_H diff --git a/src/declarative/graphicsitems/qmlgraphicswebview.cpp b/src/declarative/graphicsitems/qmlgraphicswebview.cpp new file mode 100644 index 0000000..c6ab4c7 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicswebview.cpp @@ -0,0 +1,1388 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "qml.h" +#include "qmlengine.h" +#include +#include + +#include "qmlgraphicswebview_p.h" +#include + +QT_BEGIN_NAMESPACE +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,WebView,QmlGraphicsWebView) +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 +{ + Q_DECLARE_PUBLIC(QmlGraphicsWebView) + +public: + QmlGraphicsWebViewPrivate() + : QmlGraphicsPaintedItemPrivate(), page(0), preferredwidth(0), pagewidth(0), + progress(1.0), status(QmlGraphicsWebView::Null), pending(PendingNone), + newWindowComponent(0), newWindowParent(0), + windowObjects(this), + rendering(true) + { + } + + QUrl url; // page url might be different if it has not loaded yet + QWebPage *page; + + int preferredwidth; + int pagewidth; + qreal progress; + QmlGraphicsWebView::Status status; + QString statusText; + enum { PendingNone, PendingUrl, PendingHtml, PendingContent } pending; + QUrl pending_url; + QString pending_string; + QByteArray pending_data; + mutable QmlGraphicsWebSettings settings; + QmlComponent *newWindowComponent; + QmlGraphicsItem *newWindowParent; + + void updateWindowObjects(); + class WindowObjectList : public QmlConcreteList + { + public: + WindowObjectList(QmlGraphicsWebViewPrivate *p) + : priv(p) {} + virtual void append(QObject *v) { + QmlConcreteList::append(v); + priv->updateWindowObjects(); + } + private: + QmlGraphicsWebViewPrivate *priv; + } windowObjects; + + bool rendering; +}; + +/*! + \qmlclass WebView QFxWebView + \brief The WebView item allows you to add web content to a canvas. + \inherits Item + + A WebView renders web content based on a URL. + + If the width and height of the item is not set, they will + dynamically adjust to a size appropriate for the content. + This width may be large for typical online web pages. + + If the preferredWidth is set, the width will be this amount or larger, + usually laying out the web content to fit the preferredWidth. + + \qml + WebView { + url: "http://www.nokia.com" + width: 490 + height: 400 + scale: 0.5 + smooth: true + } + \endqml + + \image webview.png + + The item includes no scrolling, scaling, + toolbars, etc., those must be implemented around WebView. See the WebBrowser example + for a demonstration of this. +*/ + +/*! + \internal + \class QmlGraphicsWebView + \brief The QmlGraphicsWebView class allows you to add web content to a QmlView. + + A WebView renders web content base on a URL. + + \image webview.png + + The item includes no scrolling, scaling, + toolbars, etc., those must be implemented around WebView. See the WebBrowser example + for a demonstration of this. + + A QmlGraphicsWebView object can be instantiated in Qml using the tag \l WebView. +*/ + +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(*(new QmlGraphicsWebViewPrivate), parent) +{ + init(); +} + +QmlGraphicsWebView::QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent) + : QmlGraphicsPaintedItem(dd, parent) +{ + init(); +} + +QmlGraphicsWebView::~QmlGraphicsWebView() +{ + Q_D(QmlGraphicsWebView); + delete d->page; +} + +void QmlGraphicsWebView::init() +{ + Q_D(QmlGraphicsWebView); + + setAcceptHoverEvents(true); + setAcceptedMouseButtons(Qt::LeftButton); + setFlag(QGraphicsItem::ItemHasNoContents, false); + + d->page = 0; +} + +void QmlGraphicsWebView::componentComplete() +{ + QmlGraphicsPaintedItem::componentComplete(); + Q_D(QmlGraphicsWebView); + switch (d->pending) { + case QmlGraphicsWebViewPrivate::PendingUrl: + setUrl(d->pending_url); + break; + case QmlGraphicsWebViewPrivate::PendingHtml: + setHtml(d->pending_string, d->pending_url); + break; + case QmlGraphicsWebViewPrivate::PendingContent: + setContent(d->pending_data, d->pending_string, d->pending_url); + break; + default: + break; + } + d->pending = QmlGraphicsWebViewPrivate::PendingNone; + d->updateWindowObjects(); +} + +QmlGraphicsWebView::Status QmlGraphicsWebView::status() const +{ + Q_D(const QmlGraphicsWebView); + return d->status; +} + + +/*! + \qmlproperty real WebView::progress + This property holds the progress of loading the current URL, from 0 to 1. + + \sa onLoadFinished() onLoadFailed() +*/ +qreal QmlGraphicsWebView::progress() const +{ + Q_D(const QmlGraphicsWebView); + return d->progress; +} + +void QmlGraphicsWebView::doLoadStarted() +{ + Q_D(QmlGraphicsWebView); + + if (!d->url.isEmpty()) { + d->status = Loading; + emit statusChanged(d->status); + } + emit loadStarted(); +} + +void QmlGraphicsWebView::doLoadProgress(int p) +{ + Q_D(QmlGraphicsWebView); + if (d->progress == p/100.0) + return; + d->progress = p/100.0; + emit progressChanged(); +} + +void QmlGraphicsWebView::pageUrlChanged() +{ + Q_D(QmlGraphicsWebView); + + // Reset zooming to full + qreal zf = 1.0; + if (d->preferredwidth) { + if (d->pagewidth) + zf = qreal(d->preferredwidth)/d->pagewidth; + page()->mainFrame()->setZoomFactor(zf); + page()->setViewportSize(QSize(d->preferredwidth,-1)); + } else { + page()->mainFrame()->setZoomFactor(zf); + page()->setViewportSize(QSize(-1,-1)); + } + emit zooming(zf,0,0); + expandToWebPage(); + + if ((d->url.isEmpty() && page()->mainFrame()->url() != QUrl(QLatin1String("about:blank"))) + || d->url != page()->mainFrame()->url()) + { + d->url = page()->mainFrame()->url(); + if (d->url == QUrl(QLatin1String("about:blank"))) + d->url = QUrl(); + emit urlChanged(); + } +} + +void QmlGraphicsWebView::doLoadFinished(bool ok) +{ + Q_D(QmlGraphicsWebView); + + if (title().isEmpty()) + pageUrlChanged(); // XXX bug 232556 - pages with no title never get urlChanged() + + if (ok) { + d->status = d->url.isEmpty() ? Null : Ready; + emit loadFinished(); + } else { + d->status = Error; + emit loadFailed(); + } + emit statusChanged(d->status); +} + +/*! + \qmlproperty url WebView::url + This property holds the URL to the page displayed in this item. It can be set, + but also can change spontaneously (eg. because of network redirection). + + If the url is empty, the page is blank. + + The url is always absolute (QML will resolve relative URL strings in the context + of the containing QML document). +*/ +QUrl QmlGraphicsWebView::url() const +{ + Q_D(const QmlGraphicsWebView); + return d->url; +} + +void QmlGraphicsWebView::setUrl(const QUrl &url) +{ + Q_D(QmlGraphicsWebView); + if (url == d->url) + return; + + if (isComponentComplete()) { + d->url = url; + qreal zf = 1.0; + if (d->preferredwidth) { + if (d->pagewidth) + zf = qreal(d->preferredwidth)/d->pagewidth; + page()->setViewportSize(QSize(d->preferredwidth,-1)); + } else { + page()->setViewportSize(QSize(-1,-1)); + } + page()->mainFrame()->setZoomFactor(zf); + QUrl seturl = url; + if (seturl.isEmpty()) + seturl = QUrl(QLatin1String("about:blank")); + + Q_ASSERT(!seturl.isRelative()); + + page()->mainFrame()->load(seturl); + + emit urlChanged(); + } else { + d->pending = d->PendingUrl; + d->pending_url = url; + } +} + +/*! + \qmlproperty int WebView::preferredWidth + This property holds the ideal width for displaying the current URL. +*/ +int QmlGraphicsWebView::preferredWidth() const +{ + Q_D(const QmlGraphicsWebView); + return d->preferredwidth; +} + +void QmlGraphicsWebView::setPreferredWidth(int iw) +{ + Q_D(QmlGraphicsWebView); + if (d->preferredwidth == iw) return; + if (d->pagewidth) { + if (d->preferredwidth) { + setZoomFactor(zoomFactor()*iw/d->preferredwidth); + } else { + setZoomFactor(qreal(iw)/d->pagewidth); + } + } + d->preferredwidth = iw; + expandToWebPage(); + emit preferredWidthChanged(); +} + +/*! + \qmlproperty int WebView::webPageWidth + This property holds the page width suggested to the web engine. +*/ +int QmlGraphicsWebView::webPageWidth() const +{ + Q_D(const QmlGraphicsWebView); + return d->pagewidth; +} + +void QmlGraphicsWebView::setWebPageWidth(int pw) +{ + Q_D(QmlGraphicsWebView); + if (d->pagewidth == pw) return; + d->pagewidth = pw; + expandToWebPage(); +} + +/*! + Evaluates the \a scriptSource JavaScript inside the main frame + context and returns the result of the last executed statement. +*/ +QVariant QmlGraphicsWebView::evaluateJavaScript(const QString &scriptSource) +{ + return this->page()->mainFrame()->evaluateJavaScript(scriptSource); +} + +void QmlGraphicsWebView::focusChanged(bool hasFocus) +{ + QFocusEvent e(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); + page()->event(&e); + QmlGraphicsItem::focusChanged(hasFocus); +} + +void QmlGraphicsWebView::contentsSizeChanged(const QSize&) +{ + expandToWebPage(); +} + +void QmlGraphicsWebView::expandToWebPage() +{ + Q_D(QmlGraphicsWebView); + QSize cs = page()->mainFrame()->contentsSize(); + qreal zoom = zoomFactor(); + if (cs.width() < d->preferredwidth*zoom) + cs.setWidth(d->preferredwidth*zoom); + if (widthValid()) + cs.setWidth(width()); + if (heightValid()) + cs.setHeight(height()); + if (cs != page()->viewportSize()) { + page()->setViewportSize(cs); + clearCache(); + setImplicitWidth(cs.width()); + setImplicitHeight(cs.height()); + } +} + +void QmlGraphicsWebView::geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry) +{ + if (newGeometry.size() != oldGeometry.size()) + expandToWebPage(); + QmlGraphicsPaintedItem::geometryChanged(newGeometry, oldGeometry); +} + +void QmlGraphicsWebView::paintPage(const QRect& r) +{ + Q_D(QmlGraphicsWebView); + if (d->page->mainFrame()->contentsSize() != contentsSize()) + setContentsSize(d->page->mainFrame()->contentsSize()); + dirtyCache(r); + update(); +} + +/*! + \qmlproperty int WebView::pixelCacheSize + + This property holds the maximum number of pixels of image cache to + allow. The default is 0.1 megapixels. The cache will not be larger + than the (unscaled) size of the WebView. +*/ +int QmlGraphicsWebView::pixelCacheSize() const +{ + Q_D(const QmlGraphicsWebView); + return d->max_imagecache_size; +} + +void QmlGraphicsWebView::setPixelCacheSize(int pixels) +{ + Q_D(QmlGraphicsWebView); + if (pixels < d->max_imagecache_size) { + int cachesize=0; + for (int i=0; iimagecache.count(); ++i) { + QRect area = d->imagecache[i]->area; + cachesize += area.width()*area.height(); + } + while (d->imagecache.count() && cachesize > pixels) { + int oldest=-1; + int age=-1; + for (int i=0; iimagecache.count(); ++i) { + int a = d->imagecache[i]->age; + if (a > age) { + oldest = i; + age = a; + } + } + cachesize -= d->imagecache[oldest]->area.width()*d->imagecache[oldest]->area.height(); + d->imagecache.removeAt(oldest); + } + } + d->max_imagecache_size = pixels; +} + +/*! + \qmlproperty list WebView::javaScriptWindowObjects + + This property is a list of object that are available from within + the webview's JavaScript context. + + The \a object will be inserted as a child of the frame's window + object, under the name given by the attached property \c WebView.windowObjectName. + + \qml + WebView { + javaScriptWindowObjects: Object { + WebView.windowObjectName: "coordinates" + } + } + \endqml + + Properties of the object will be exposed as JavaScript properties and slots as + JavaScript methods. + + If Javascript is not enabled for this page, then this property does nothing. +*/ +QmlList *QmlGraphicsWebView::javaScriptWindowObjects() +{ + Q_D(QmlGraphicsWebView); + return &d->windowObjects; +} + +class QmlGraphicsWebViewAttached : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString windowObjectName READ windowObjectName WRITE setWindowObjectName) +public: + QmlGraphicsWebViewAttached(QObject *parent) + : QObject(parent) + { + } + + QString windowObjectName() const + { + return m_windowObjectName; + } + + void setWindowObjectName(const QString &n) + { + m_windowObjectName = n; + } + +private: + QString m_windowObjectName; +}; + +QmlGraphicsWebViewAttached *QmlGraphicsWebView::qmlAttachedProperties(QObject *o) +{ + return new QmlGraphicsWebViewAttached(o); +} + +void QmlGraphicsWebViewPrivate::updateWindowObjects() +{ + Q_Q(QmlGraphicsWebView); + if (!q->isComponentComplete() || !page) + return; + + for (int ii = 0; ii < windowObjects.count(); ++ii) { + QObject *object = windowObjects.at(ii); + QmlGraphicsWebViewAttached *attached = static_cast(qmlAttachedPropertiesObject(object)); + if (attached && !attached->windowObjectName().isEmpty()) { + page->mainFrame()->addToJavaScriptWindowObject(attached->windowObjectName(), object); + } + } +} + +bool QmlGraphicsWebView::renderingEnabled() const +{ + Q_D(const QmlGraphicsWebView); + return d->rendering; +} + +void QmlGraphicsWebView::setRenderingEnabled(bool enabled) +{ + Q_D(QmlGraphicsWebView); + if (d->rendering == enabled) + return; + d->rendering = enabled; + setCacheFrozen(!enabled); + if (enabled) + clearCache(); +} + + +void QmlGraphicsWebView::drawContents(QPainter *p, const QRect &r) +{ + Q_D(QmlGraphicsWebView); + if (d->rendering) + page()->mainFrame()->render(p,r); +} + +static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) +{ + QEvent::Type t; + switch(e->type()) { + default: + case QEvent::GraphicsSceneMousePress: + t = QEvent::MouseButtonPress; + break; + case QEvent::GraphicsSceneMouseRelease: + t = QEvent::MouseButtonRelease; + break; + case QEvent::GraphicsSceneMouseMove: + t = QEvent::MouseMove; + break; + case QGraphicsSceneEvent::GraphicsSceneMouseDoubleClick: + t = QEvent::MouseButtonDblClick; + break; + } + + QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), e->button(), e->buttons(), 0); + return me; +} + +static QMouseEvent *sceneHoverMoveEventToMouseEvent(QGraphicsSceneHoverEvent *e) +{ + QEvent::Type t = QEvent::MouseMove; + + QMouseEvent *me = new QMouseEvent(t, e->pos().toPoint(), Qt::NoButton, Qt::NoButton, 0); + + return me; +} + + +/*! + \qmlsignal WebView::onDoubleClick(clickx,clicky) + + The WebView does not pass double-click events to the web engine, but rather + emits this signals. +*/ + +void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + emit doubleClick(me->x(),me->y()); + delete me; +} + +void QmlGraphicsWebView::heuristicZoom(int clickX, int clickY) +{ + Q_D(QmlGraphicsWebView); + qreal ozf = zoomFactor(); + QRect showarea = elementAreaAt(clickX, clickY, 1, 1); + qreal z = qreal(preferredWidth())*ozf/showarea.width()*.95; + if ((z/ozf > 0.99 && z/ozf <1.01) || z < qreal(d->preferredwidth)/d->pagewidth) { + // zoom out + z = qreal(d->preferredwidth)/d->pagewidth; + } + QRectF r(showarea.left()/ozf*z, showarea.top()/ozf*z, showarea.width()/ozf*z, showarea.height()/ozf*z); + emit zooming(z,r.x()+r.width()/2, r.y()+r.height()/2); +} + +void QmlGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + setFocus (true); + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit + Might be a bug in WebKit, though + */ +#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) { + QmlGraphicsPaintedItem::mousePressEvent(event); + } +} + +void QmlGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send all the events to WebKit + */ +#if 1 //QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) { + QmlGraphicsPaintedItem::mouseReleaseEvent(event); + } +} + +void QmlGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + QMouseEvent *me = sceneMouseEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +/* + It is not correct to send the press event upwards, if it is not accepted by WebKit + e.g. push button does not work, if done so as QGraphicsScene will not send the release event at all to WebKit + Might be a bug in WebKit, though + */ +#if 1 // QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) + QmlGraphicsPaintedItem::mouseMoveEvent(event); + +} +void QmlGraphicsWebView::hoverMoveEvent (QGraphicsSceneHoverEvent * event) +{ + QMouseEvent *me = sceneHoverMoveEventToMouseEvent(event); + page()->event(me); + event->setAccepted( +#if QT_VERSION <= 0x040500 // XXX see bug 230835 + true +#else + me->isAccepted() +#endif + ); + delete me; + if (!event->isAccepted()) + QmlGraphicsPaintedItem::hoverMoveEvent(event); +} + +void QmlGraphicsWebView::keyPressEvent(QKeyEvent* event) +{ + page()->event(event); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyPressEvent(event); +} + +void QmlGraphicsWebView::keyReleaseEvent(QKeyEvent* event) +{ + page()->event(event); + if (!event->isAccepted()) + QmlGraphicsPaintedItem::keyReleaseEvent(event); +} + +bool QmlGraphicsWebView::sceneEvent(QEvent *event) +{ + if (event->type() == QEvent::KeyPress) { + QKeyEvent *k = static_cast(event); + if (k->key() == Qt::Key_Tab || k->key() == Qt::Key_Backtab) { + if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? + page()->event(event); + if (event->isAccepted()) + return true; + } + } + } + return QmlGraphicsPaintedItem::sceneEvent(event); +} + + + +/*! + \qmlproperty action WebView::back + This property holds the action for causing the previous URL in the history to be displayed. +*/ +QAction *QmlGraphicsWebView::backAction() const +{ + return page()->action(QWebPage::Back); +} + +/*! + \qmlproperty action WebView::forward + This property holds the action for causing the next URL in the history to be displayed. +*/ +QAction *QmlGraphicsWebView::forwardAction() const +{ + return page()->action(QWebPage::Forward); +} + +/*! + \qmlproperty action WebView::reload + This property holds the action for reloading with the current URL +*/ +QAction *QmlGraphicsWebView::reloadAction() const +{ + return page()->action(QWebPage::Reload); +} + +/*! + \qmlproperty action WebView::stop + This property holds the action for stopping loading with the current URL +*/ +QAction *QmlGraphicsWebView::stopAction() const +{ + return page()->action(QWebPage::Stop); +} + +/*! + \qmlproperty real WebView::title + This property holds the title of the web page currently viewed + + By default, this property contains an empty string. +*/ +QString QmlGraphicsWebView::title() const +{ + return page()->mainFrame()->title(); +} + + + +/*! + \qmlproperty pixmap WebView::icon + This property holds the icon associated with the web page currently viewed +*/ +QPixmap QmlGraphicsWebView::icon() const +{ + return page()->mainFrame()->icon().pixmap(QSize(256,256)); +} + + +/*! + \qmlproperty real WebView::textSizeMultiplier + This property holds the multiplier used to scale the text in a Web page +*/ +void QmlGraphicsWebView::setTextSizeMultiplier(qreal factor) +{ + page()->mainFrame()->setTextSizeMultiplier(factor); +} + +qreal QmlGraphicsWebView::textSizeMultiplier() const +{ + return page()->mainFrame()->textSizeMultiplier(); +} + +/*! + \qmlproperty real WebView::zoomFactor + This property holds the multiplier used to scale the contents of a Web page. +*/ +void QmlGraphicsWebView::setZoomFactor(qreal factor) +{ + Q_D(QmlGraphicsWebView); + if (factor == page()->mainFrame()->zoomFactor()) + return; + + page()->mainFrame()->setZoomFactor(factor); + page()->setViewportSize(QSize(d->pagewidth*factor,-1)); + expandToWebPage(); + + emit zoomFactorChanged(); +} + +qreal QmlGraphicsWebView::zoomFactor() const +{ + return page()->mainFrame()->zoomFactor(); +} + +/*! + \qmlproperty string WebView::statusText + + This property is the current status suggested by the current web page. In a web browser, + such status is often shown in some kind of status bar. +*/ +void QmlGraphicsWebView::setStatusText(const QString& s) +{ + Q_D(QmlGraphicsWebView); + d->statusText = s; + emit statusTextChanged(); +} + +void QmlGraphicsWebView::windowObjectCleared() +{ + Q_D(QmlGraphicsWebView); + d->updateWindowObjects(); +} + +QString QmlGraphicsWebView::statusText() const +{ + Q_D(const QmlGraphicsWebView); + return d->statusText; +} + +QWebPage *QmlGraphicsWebView::page() const +{ + Q_D(const QmlGraphicsWebView); + + if (!d->page) { + QmlGraphicsWebView *self = const_cast(this); + QWebPage *wp = new QmlGraphicsWebPage(self); + + // QML items don't default to having a background, + // even though most we pages will set one anyway. + QPalette pal = QApplication::palette(); + pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0)); + wp->setPalette(pal); + + wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager()); + + self->setPage(wp); + + return wp; + } + + return d->page; +} + + +// The QObject interface to settings(). +/*! + \qmlproperty string WebView::settings.standardFontFamily + \qmlproperty string WebView::settings.fixedFontFamily + \qmlproperty string WebView::settings.serifFontFamily + \qmlproperty string WebView::settings.sansSerifFontFamily + \qmlproperty string WebView::settings.cursiveFontFamily + \qmlproperty string WebView::settings.fantasyFontFamily + + \qmlproperty int WebView::settings.minimumFontSize + \qmlproperty int WebView::settings.minimumLogicalFontSize + \qmlproperty int WebView::settings.defaultFontSize + \qmlproperty int WebView::settings.defaultFixedFontSize + + \qmlproperty bool WebView::settings.autoLoadImages + \qmlproperty bool WebView::settings.javascriptEnabled + \qmlproperty bool WebView::settings.javaEnabled + \qmlproperty bool WebView::settings.pluginsEnabled + \qmlproperty bool WebView::settings.privateBrowsingEnabled + \qmlproperty bool WebView::settings.javascriptCanOpenWindows + \qmlproperty bool WebView::settings.javascriptCanAccessClipboard + \qmlproperty bool WebView::settings.developerExtrasEnabled + \qmlproperty bool WebView::settings.linksIncludedInFocusChain + \qmlproperty bool WebView::settings.zoomTextOnly + \qmlproperty bool WebView::settings.printElementBackgrounds + \qmlproperty bool WebView::settings.offlineStorageDatabaseEnabled + \qmlproperty bool WebView::settings.offlineWebApplicationCacheEnabled + \qmlproperty bool WebView::settings.localStorageDatabaseEnabled + \qmlproperty bool WebView::settings.localContentCanAccessRemoteUrls + + These properties give access to the settings controlling the web view. + + See QWebSettings for details of these properties. + + \qml + WebView { + settings.pluginsEnabled: true + settings.standardFontFamily: "Arial" + ... + } + \endqml +*/ +QmlGraphicsWebSettings *QmlGraphicsWebView::settingsObject() const +{ + Q_D(const QmlGraphicsWebView); + d->settings.s = page()->settings(); + return &d->settings; +} + +void QmlGraphicsWebView::setPage(QWebPage *page) +{ + Q_D(QmlGraphicsWebView); + if (d->page == page) + return; + if (d->page) { + if (d->page->parent() == this) { + delete d->page; + } else { + d->page->disconnect(this); + } + } + d->page = page; + d->page->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : -1, -1)); + d->page->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); + d->page->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); + connect(d->page,SIGNAL(repaintRequested(QRect)),this,SLOT(paintPage(QRect))); + connect(d->page->mainFrame(),SIGNAL(urlChanged(QUrl)),this,SLOT(pageUrlChanged())); + connect(d->page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString))); + connect(d->page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged())); + connect(d->page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SLOT(contentsSizeChanged(QSize))); + + connect(d->page,SIGNAL(loadStarted()),this,SLOT(doLoadStarted())); + connect(d->page,SIGNAL(loadProgress(int)),this,SLOT(doLoadProgress(int))); + connect(d->page,SIGNAL(loadFinished(bool)),this,SLOT(doLoadFinished(bool))); + connect(d->page,SIGNAL(statusBarMessage(QString)),this,SLOT(setStatusText(QString))); + + connect(d->page->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT(windowObjectCleared())); +} + +/*! + \qmlsignal WebView::onLoadStarted() + + This handler is called when the web engine begins loading + a page. + + \sa progress onLoadFinished() onLoadFailed() +*/ + +/*! + \qmlsignal WebView::onLoadFinished() + + This handler is called when the web engine finishes loading + a page, including any component content. + + \sa progress onLoadFailed() +*/ + +/*! + \qmlsignal WebView::onLoadFailed() + + This handler is called when the web engine fails loading + a page or any component content. + + \sa progress onLoadFinished() +*/ + +void QmlGraphicsWebView::load(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation, + const QByteArray &body) +{ + page()->mainFrame()->load(request, operation, body); +} + +QString QmlGraphicsWebView::html() const +{ + return page()->mainFrame()->toHtml(); +} + +/*! + \qmlproperty string WebView::html + This property holds HTML text set directly + + The html property can be set as a string. + + \qml + WebView { + html: "

This is HTML." + } + \endqml +*/ +void QmlGraphicsWebView::setHtml(const QString &html, const QUrl &baseUrl) +{ + Q_D(QmlGraphicsWebView); + page()->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : width(), height())); + if (isComponentComplete()) + page()->mainFrame()->setHtml(html, baseUrl); + else { + d->pending = d->PendingHtml; + d->pending_url = baseUrl; + d->pending_string = html; + } +} + +void QmlGraphicsWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) +{ + Q_D(QmlGraphicsWebView); + page()->setViewportSize(QSize( + d->preferredwidth>0 ? d->preferredwidth : width(), height())); + + if (isComponentComplete()) + page()->mainFrame()->setContent(data,mimeType,qmlContext(this)->resolvedUrl(baseUrl)); + else { + d->pending = d->PendingContent; + d->pending_url = baseUrl; + d->pending_string = mimeType; + d->pending_data = data; + } +} + +QWebHistory *QmlGraphicsWebView::history() const +{ + return page()->history(); +} + +QWebSettings *QmlGraphicsWebView::settings() const +{ + return page()->settings(); +} + +QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType type) +{ + Q_D(QmlGraphicsWebView); + switch (type) { + case QWebPage::WebBrowserWindow: { + if (!d->newWindowComponent && d->newWindowParent) + qWarning("WebView::newWindowComponent not set - WebView::newWindowParent ignored"); + else if (d->newWindowComponent && !d->newWindowParent) + qWarning("WebView::newWindowParent not set - WebView::newWindowComponent ignored"); + else if (d->newWindowComponent && d->newWindowParent) { + QmlGraphicsWebView *webview = 0; + QmlContext *windowContext = new QmlContext(qmlContext(this)); + + QObject *nobj = d->newWindowComponent->create(windowContext); + if (nobj) { + windowContext->setParent(nobj); + QmlGraphicsItem *item = qobject_cast(nobj); + if (!item) { + delete nobj; + } else { + webview = item->findChild(); + if (!webview) { + delete item; + } else { + item->setParent(d->newWindowParent); + } + } + } else { + delete windowContext; + } + + return webview; + } + } + break; + case QWebPage::WebModalDialog: { + // Not supported + } + } + return 0; +} + +/*! + \qmlproperty component WebView::newWindowComponent + + This property holds the component to use for new windows. + The component must have a WebView somewhere in its structure. + + When the web engine requests a new window, it will be an instance of + this component. + + The parent of the new window is set by newWindowParent. It must be set. +*/ +QmlComponent *QmlGraphicsWebView::newWindowComponent() const +{ + Q_D(const QmlGraphicsWebView); + return d->newWindowComponent; +} + +void QmlGraphicsWebView::setNewWindowComponent(QmlComponent *newWindow) +{ + Q_D(QmlGraphicsWebView); + delete d->newWindowComponent; + d->newWindowComponent = newWindow; +} + + +/*! + \qmlproperty item WebView::newWindowParent + + The parent item for new windows. + + \sa newWindowComponent +*/ +QmlGraphicsItem *QmlGraphicsWebView::newWindowParent() const +{ + Q_D(const QmlGraphicsWebView); + return d->newWindowParent; +} + +void QmlGraphicsWebView::setNewWindowParent(QmlGraphicsItem *parent) +{ + Q_D(QmlGraphicsWebView); + delete d->newWindowParent; + d->newWindowParent = parent; +} + +/*! + Returns the area of the largest element at position (\a x,\a y) that is no larger + than \a maxwidth by \a maxheight pixels. + + May return an area larger in the case when no smaller element is at the position. +*/ +QRect QmlGraphicsWebView::elementAreaAt(int x, int y, int maxwidth, int maxheight) const +{ + QWebHitTestResult hit = page()->mainFrame()->hitTestContent(QPoint(x,y)); + QWebElement element = hit.enclosingBlockElement(); + QWebElement parent = element.parent(); + if (maxwidth<=0) maxwidth = INT_MAX; + if (maxheight<=0) maxheight = INT_MAX; + while (!parent.isNull() && parent.geometry().width() <= maxwidth && parent.geometry().height() <= maxheight) { + element = parent; + parent = element.parent(); + } + return element.geometry(); +} + +/*! + \internal + \class QmlGraphicsWebPage + \brief The QmlGraphicsWebPage class is a QWebPage that can create QML plugins. + + \sa QmlGraphicsWebView +*/ +QmlGraphicsWebPage::QmlGraphicsWebPage(QmlGraphicsWebView *parent) : + QWebPage(parent) +{ +} + +QmlGraphicsWebPage::~QmlGraphicsWebPage() +{ +} + +/* + Qt WebKit does not understand non-QWidget plugins, so dummy widgets + are created, parented to a single dummy tool window. + + The requirements for QML object plugins are input to the Qt WebKit + non-QWidget plugin support, which will obsolete this kludge. +*/ +class QWidget_Dummy_Plugin : public QWidget +{ + Q_OBJECT +public: + static QWidget *dummy_shared_parent() + { + static QWidget *dsp = 0; + if (!dsp) { + dsp = new QWidget(0,Qt::Tool); + dsp->setGeometry(-10000,-10000,0,0); + dsp->show(); + } + return dsp; + } + QWidget_Dummy_Plugin(const QUrl& url, QmlGraphicsWebView *view, const QStringList ¶mNames, const QStringList ¶mValues) : + QWidget(dummy_shared_parent()), + propertyNames(paramNames), + propertyValues(paramValues), + webview(view) + { + QmlEngine *engine = qmlEngine(webview); + component = new QmlComponent(engine, url, this); + item = 0; + if (component->isLoading()) + connect(component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(qmlLoaded())); + else + qmlLoaded(); + } + +public Q_SLOTS: + void qmlLoaded() + { + if (component->isError()) { + // ### Could instead give these errors to the WebView to handle. + qWarning() << component->errors(); + return; + } + item = qobject_cast(component->create(qmlContext(webview))); + item->setParent(webview); + QString jsObjName; + for (int i=0; isetProperty(propertyNames[i].toUtf8(),propertyValues[i]); + if (propertyNames[i] == QLatin1String("objectname")) + jsObjName = propertyValues[i]; + } + } + if (!jsObjName.isNull()) { + QWebFrame *f = webview->page()->mainFrame(); + f->addToJavaScriptWindowObject(jsObjName, item); + } + resizeEvent(0); + delete component; + component = 0; + } + void resizeEvent(QResizeEvent*) + { + if (item) { + item->setX(x()); + item->setY(y()); + item->setWidth(width()); + item->setHeight(height()); + } + } + +private: + QmlComponent *component; + QmlGraphicsItem *item; + QStringList propertyNames, propertyValues; + QmlGraphicsWebView *webview; +}; + +QmlGraphicsWebView *QmlGraphicsWebPage::viewItem() +{ + return static_cast(parent()); +} + +QObject *QmlGraphicsWebPage::createPlugin(const QString &, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) +{ + QUrl comp = qmlContext(viewItem())->resolvedUrl(url); + return new QWidget_Dummy_Plugin(comp,viewItem(),paramNames,paramValues); +} + +QWebPage *QmlGraphicsWebPage::createWindow(WebWindowType type) +{ + QmlGraphicsWebView *newView = viewItem()->createWindow(type); + if (newView) + return newView->page(); + return 0; +} + +QT_END_NAMESPACE + +#include "qmlgraphicswebview.moc" diff --git a/src/declarative/graphicsitems/qmlgraphicswebview_p.h b/src/declarative/graphicsitems/qmlgraphicswebview_p.h new file mode 100644 index 0000000..6852bb0 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicswebview_p.h @@ -0,0 +1,250 @@ +/**************************************************************************** +** +** 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_H +#define QMLGRAPHICSWEBVIEW_H + +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +class QWebHistory; +class QWebSettings; + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) +class QmlGraphicsWebViewPrivate; +class QNetworkRequest; +class QmlGraphicsWebView; + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebPage : public QWebPage +{ + Q_OBJECT +public: + explicit QmlGraphicsWebPage(QmlGraphicsWebView *parent); + ~QmlGraphicsWebPage(); +protected: + QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); + QWebPage *createWindow(WebWindowType type); + +private: + QmlGraphicsWebView *viewItem(); +}; + + +class QmlGraphicsWebViewAttached; +class QmlGraphicsWebSettings; + +//### TODO: browser plugins + +class Q_DECLARATIVE_EXPORT QmlGraphicsWebView : public QmlGraphicsPaintedItem +{ + Q_OBJECT + + Q_ENUMS(Status) + + Q_PROPERTY(QString title READ title NOTIFY titleChanged) + Q_PROPERTY(QPixmap icon READ icon NOTIFY iconChanged) + Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) + Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) + Q_PROPERTY(QString statusText READ statusText NOTIFY statusTextChanged) + + Q_PROPERTY(QString html READ html WRITE setHtml) + + Q_PROPERTY(int preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged) + Q_PROPERTY(int webPageWidth READ webPageWidth WRITE setWebPageWidth) + Q_PROPERTY(int pixelCacheSize READ pixelCacheSize WRITE setPixelCacheSize) + Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + + Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) + Q_PROPERTY(QAction* back READ backAction CONSTANT) + Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) + Q_PROPERTY(QAction* stop READ stopAction CONSTANT) + + Q_PROPERTY(QmlGraphicsWebSettings* settings READ settingsObject CONSTANT) + + Q_PROPERTY(QmlList* javaScriptWindowObjects READ javaScriptWindowObjects CONSTANT) + + Q_PROPERTY(QmlComponent* newWindowComponent READ newWindowComponent WRITE setNewWindowComponent) + Q_PROPERTY(QmlGraphicsItem* newWindowParent READ newWindowParent WRITE setNewWindowParent) + + Q_PROPERTY(bool renderingEnabled READ renderingEnabled WRITE setRenderingEnabled) + +public: + QmlGraphicsWebView(QmlGraphicsItem *parent=0); + ~QmlGraphicsWebView(); + + QUrl url() const; + void setUrl(const QUrl &); + + QString title() const; + + QPixmap icon() const; + + qreal textSizeMultiplier() const; + void setTextSizeMultiplier(qreal); + + qreal zoomFactor() const; + void setZoomFactor(qreal); + + int preferredWidth() const; + void setPreferredWidth(int); + int webPageWidth() const; + void setWebPageWidth(int); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + QString statusText() const; + + QAction *reloadAction() const; + QAction *backAction() const; + QAction *forwardAction() const; + QAction *stopAction() const; + + QWebPage *page() const; + void setPage(QWebPage *page); + + void load(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, + const QByteArray &body = QByteArray()); + + QString html() const; + + void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); + void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); + + QWebHistory *history() const; + QWebSettings *settings() const; + QmlGraphicsWebSettings *settingsObject() const; + + int pixelCacheSize() const; + void setPixelCacheSize(int pixels); + + bool renderingEnabled() const; + void setRenderingEnabled(bool); + + QmlList *javaScriptWindowObjects(); + + static QmlGraphicsWebViewAttached *qmlAttachedProperties(QObject *); + + QmlComponent *newWindowComponent() const; + void setNewWindowComponent(QmlComponent *newWindow); + QmlGraphicsItem *newWindowParent() const; + void setNewWindowParent(QmlGraphicsItem *newWindow); + +Q_SIGNALS: + void preferredWidthChanged(); + void preferredHeightChanged(); + void urlChanged(); + void progressChanged(); + void statusChanged(Status); + void titleChanged(const QString&); + void iconChanged(); + void statusTextChanged(); + void zoomFactorChanged(); + + void loadStarted(); + void loadFinished(); + void loadFailed(); + + void doubleClick(int clickX, int clickY); + + void zooming(qreal zoom, int centerX, int centerY); + +public Q_SLOTS: + QVariant evaluateJavaScript(const QString&); + void heuristicZoom(int clickX, int clickY); + +private Q_SLOTS: + void expandToWebPage(); + void paintPage(const QRect&); + void doLoadStarted(); + void doLoadProgress(int p); + void doLoadFinished(bool ok); + void setStatusText(const QString&); + void windowObjectCleared(); + void pageUrlChanged(); + void contentsSizeChanged(const QSize&); + +protected: + QmlGraphicsWebView(QmlGraphicsWebViewPrivate &dd, QmlGraphicsItem *parent); + + void drawContents(QPainter *, const QRect &); + + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void hoverMoveEvent (QGraphicsSceneHoverEvent * event); + void keyPressEvent(QKeyEvent* event); + void keyReleaseEvent(QKeyEvent* event); + virtual void geometryChanged(const QRectF &newGeometry, + const QRectF &oldGeometry); + 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(); + virtual void componentComplete(); + Q_DISABLE_COPY(QmlGraphicsWebView) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsWebView) + friend class QmlGraphicsWebPage; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsWebView) +QML_DECLARE_TYPEINFO(QmlGraphicsWebView, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QAction) + +QT_END_HEADER + +#endif -- cgit v0.12 From c018f8a4013861b4a4bdd354406aa61fdcd8d412 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 30 Oct 2009 19:20:55 +1000 Subject: Missing file --- src/declarative/qml/qmlglobal_p.h | 91 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/declarative/qml/qmlglobal_p.h diff --git a/src/declarative/qml/qmlglobal_p.h b/src/declarative/qml/qmlglobal_p.h new file mode 100644 index 0000000..dc282bc --- /dev/null +++ b/src/declarative/qml/qmlglobal_p.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** 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 QMLGLOBAL_H +#define QMLGLOBAL_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +#define DEFINE_BOOL_CONFIG_OPTION(name, var) \ + static bool name() \ + { \ + static enum { Yes, No, Unknown } status = Unknown; \ + if (status == Unknown) { \ + QByteArray v = qgetenv(#var); \ + bool value = !v.isEmpty() && v != "0" && v != "false"; \ + if (value) status = Yes; \ + else status = No; \ + } \ + return status == Yes; \ + } + +struct QmlGraphics_DerivedObject : public QObject +{ + void setParent_noEvent(QObject *parent) { + bool sce = d_ptr->sendChildEvents; + d_ptr->sendChildEvents = false; + setParent(parent); + d_ptr->sendChildEvents = sce; + } +}; + +/*! + Makes the \a object a child of \a parent. Note that when using this method, + neither \a parent nor the object's previous parent (if it had one) will + receive ChildRemoved or ChildAdded events. +*/ +inline void QmlGraphics_setParent_noEvent(QObject *object, QObject *parent) +{ + static_cast(object)->setParent_noEvent(parent); +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QMLGLOBAL_H -- cgit v0.12 From d01db18696a7729b0d54af76f5224aed6750f3bb Mon Sep 17 00:00:00 2001 From: mae Date: Fri, 30 Oct 2009 10:50:34 +0100 Subject: added missing include for template instantiation (in qDeleteAll) --- src/script/api/qscriptengine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/api/qscriptengine.h b/src/script/api/qscriptengine.h index 2fc8afe..de4dc02 100644 --- a/src/script/api/qscriptengine.h +++ b/src/script/api/qscriptengine.h @@ -56,6 +56,7 @@ #include #include #include +#include QT_BEGIN_HEADER @@ -67,7 +68,6 @@ class QDateTime; class QScriptClass; class QScriptEngineAgent; class QScriptEnginePrivate; -class QScriptProgram; #ifndef QT_NO_QOBJECT -- cgit v0.12

"; out() << ""; + if (!qpn->isWritable()) + out() << "read-only"; generateQmlItem(qpn, relative, marker, false); out() << "